Live data from Hacker News

The Lobster Programming Language

strlen.com

71–80 of 171 posts

Re: The Lobster Programming Language

#71
post #57

Earlier quoted context omitted.

Agreed, those are nice benefits. But there are also huge downsides, in the sense that you're writing all the glue code in the wrong language :) The amount of speed of iteration you get from having your entire engine + game's structure in a friendlier language is impressive (in my experience). Also doing savegames by just serializing the entire scripting VM may work in some cases, but can also be problematic, since yo…

My point is that having scripting VM that is explicitly designed for game logic allows you to serialize only the relevant state. And if the whole system is designed correctly you can also do checkpointing and streaming replication essentially of the game state for free. This buys you things like rendering thread that is decoupled from the simulation (just draw the snapshot of state that was current on the start of re…

I agree, for that level of integration you want a "gameplay scripting system", whereas Lobster is more of a general purpose programming language that happens to be a nice starting point for simple games & engines. I don't think in its current form it is a great language for a large AAA team anyway, because of its heavy reliance on type inference and lack of separate compilation.

The language could of course be adopted to these use cases, it simply hasn't, so far.

Doing simulation on a separate thread from main/rendering is something it is already set up to do (multi-threading uses separate memory spaces so it is easy to ensure there's no data races between the two).

Re: The Lobster Programming Language

#72

Earlier quoted context omitted.

Agreed, those are nice benefits. But there are also huge downsides, in the sense that you're writing all the glue code in the wrong language :) The amount of speed of iteration you get from having your entire engine + game's structure in a friendlier language is impressive (in my experience). Also doing savegames by just serializing the entire scripting VM may work in some cases, but can also be problematic, since yo…

Also, you can never update your data structures without ruining all of your safrgames.

Good point. I actually made this with game serialization needs in mind originally: https://google.github.io/flatbuffers/

Re: The Lobster Programming Language

#73
post #13

I use Haxe which is a Haxe is an open source toolkit based on a modern, high level, strictly typed programming language, a cross-compiler, a complete cross-platform standard library and ways to access each platform's native capabilities. what would be the benefit for using Lobster since I can work directly with each OS with a great scripting language built in? https://haxe.org

Haxe can translate to an impressive set of languages and platforms, so if that is your main need, I'd say, stay with Haxe.

Haxe and Lobster are very different programming languages however, so you may prefer one over the other purely for the language design.

If you like portability, Lobster already runs on 3 desktop OSes, 2 mobile ones, and the web, using either VM, C++ or soon WebAssembly modes. While not as extensive as Haxe it is pretty good :)

Re: The Lobster Programming Language

#74

Earlier quoted context omitted.

This seems like a cool way to make an ad hoc dsl. I'm not a game programmer but I imagine it could be useful.

This seems like a cool way to make an ad hoc dsl. I'm not a game programmer but I imagine it could be useful Smalltalker here. Being able to pass in lambdas very casually is a great way of producing an ad hoc DSL. Imagine a custom control structure which does a database transaction. Just implement a function!

Yup, this style of programming I use all the time in Lobster.

Re: The Lobster Programming Language

#75

Earlier quoted context omitted.

You're reading too much into the keyword.. in Lobster, this does never include anything twice. Circular dependencies just work, without having to pre-declare anything. I should probably rename it.

I suggest people might pick up on that pretty quick, maybe no need to rename given some random comment. That said, maybe you want to have a gander through the various languages and see what words are used for what, and if there's a 'standard' go with that :) Cool language though. I love everything except for the name, sorry :)

Well, every time Lobster surfaces somewhere, I am always surprised how quickly people can superficially reject it because of some syntax issue, so yes, I agree, using predictable keywords where it makes no real difference matters. I've already made quite a few such changes.

The name.. I think people will quickly forget about the original meaning. Think of all the languages you know, and how you associate the name with the language, not some snake, a musical note, degraded iron, a french philosopher, etc. Some of these names are actually pretty silly.

Re: The Lobster Programming Language

#77
post #56

Earlier quoted context omitted.

That sounds more similar to Swift's approach, where the compiler does aggressive optimisation to elide reference counts were possible. Do you agree?

Yes, it is more similar to Swift than Rust. I guess people are more familiar with Rust.. since Swift hasn't actually implemented it yet? https://github.com/apple/swift/blob/master/docs/OwnershipMan...

The compiler has implemented a lot of the infrastructure for reasoning about ownership, and has had optimisation for eliding reference counting operations for a long time (but the ownership stuff makes them simpler).

Re: The Lobster Programming Language

#78

Earlier quoted context omitted.

I suggest people might pick up on that pretty quick, maybe no need to rename given some random comment. That said, maybe you want to have a gander through the various languages and see what words are used for what, and if there's a 'standard' go with that :) Cool language though. I love everything except for the name, sorry :)

Well, every time Lobster surfaces somewhere, I am always surprised how quickly people can superficially reject it because of some syntax issue, so yes, I agree, using predictable keywords where it makes no real difference matters. I've already made quite a few such changes. The name.. I think people will quickly forget about the original meaning. Think of all the languages you know, and how you associate the name wit…

Of course you're right. But 'Oort' or 'Ort' would be a good names as well.

Re: The Lobster Programming Language

#79
Is the first example's last line:

  var i = find [ 1, 2, 3 ]: _ > r
the same as?:

  var i = find ([ 1, 2, 3 ]) a: a > r
i.e. argument parantheses are optional for one argument; and _ is an implicit argument for a block.

Would multiple functions arguments be done just with parentheses, like this?:

  var i = find [ 1, 2, 3 ] (: _ > r), (: _ 
Seems like the syntactic generality of lisp or haskell, with the predictability of performance of C. EDIT I see it's as fast as non-JIT Lua... are there any features that prevent it from theoretically approaching the speed of C?

PS: small detail, but that's got to be the best for-loop I've ever seen.

Re: The Lobster Programming Language

#80

Earlier quoted context omitted.

I suggest people might pick up on that pretty quick, maybe no need to rename given some random comment. That said, maybe you want to have a gander through the various languages and see what words are used for what, and if there's a 'standard' go with that :) Cool language though. I love everything except for the name, sorry :)

Well, every time Lobster surfaces somewhere, I am always surprised how quickly people can superficially reject it because of some syntax issue, so yes, I agree, using predictable keywords where it makes no real difference matters. I've already made quite a few such changes. The name.. I think people will quickly forget about the original meaning. Think of all the languages you know, and how you associate the name wit…

Maybe it's not as superficial, but I tend to ignore all new languages that has significant whitespace. It takes a bit of effort to learn a new language, there are lots of other languages, and I might as well learn a new language that has things I like in it.
Post reply on HN