Lil: A Scripting Language
beyondloom.com
Lil: A Scripting Language
1–10 of 29 posts
Re: Lil: A Scripting Language
#2I do regard casting not-numbers to 0 as a flaw. I've had plenty of bugs where I wished `nil` would automatically cast to to `""` in string position, or the empty list/dict: but I have never, once, wanted a missing number to cast to 0.
The number zero doesn't have the "semantics of emptiness" in programming. It shouldn't be treated as false, either, unless we're dealing with a "raw" language, in which case, one should have to at least cast to boolean to get the truthiness of anything.
Personally, I would promote this to an error, because the other option, 'NaN', is itself a source of confusion. But at least NaN-poisoning the calculation will eventually inform the user that "htree" isn't a number.
Re: Lil: A Scripting Language
#3[1] http://runtimeterror.com/tech/lil/
[2] https://www.little-lang.org/, https://news.ycombinator.com/item?id=26204218
Re: Lil: A Scripting Language
#4Noooooo, this is a terrible idea if you want this to be used at any non-trivial scale
Re: Lil: A Scripting Language
#5The 'soft, spongy' type system is nice to see. That kind of strong dynamism is a good choice for the application: it will do the wrong thing sometimes, but will throw fewer show-stopping errors, which are really disheartening for casuals. I do regard casting not-numbers to 0 as a flaw. I've had plenty of bugs where I wished `nil` would automatically cast to to `""` in string position, or the empty list/dict: but I ha…
One of the things I love about Python is that its type system is actually quite strong, in that implicit conversion is very rare in the standard library and somewhat frowned upon in general. Having "falsy" and "truthy" values that are not actually `bool` instances is maybe the only big exception.
Re: Lil: A Scripting Language
#6Did they consider them harder to learn in layers? Did they feel like some language features were lacking, or were unnecessary/undesirable? Were there problems with syntax that prevented Decker scripts from looking the way they wanted them to look?
Re: Lil: A Scripting Language
#7> Lil has a soft, spongy, dynamic type system in which values do their best to convert to a more relevant type as the need arises. Noooooo, this is a terrible idea if you want this to be used at any non-trivial scale
Re: Lil: A Scripting Language
#8> Lil has a soft, spongy, dynamic type system in which values do their best to convert to a more relevant type as the need arises. Noooooo, this is a terrible idea if you want this to be used at any non-trivial scale
This is a very domain-specific language, not designed to be used at a nontrivial scale. I think it's a good idea in this context.
Re: Lil: A Scripting Language
#9> Lil has a soft, spongy, dynamic type system in which values do their best to convert to a more relevant type as the need arises. Noooooo, this is a terrible idea if you want this to be used at any non-trivial scale
Lil is designed for an interesting, if a bit retro, reboot of HyperCard. The fantastic thing about HyperCard was the ability for a user to just... change stuff.
In a HyperCard system, users become developers whenever they want to.
They're going to make mistakes. A lot of mistakes. Mistakes you and I, as developers, won't understand.
What should the runtime do? Not break. "Attempt to index a nil value" is a cruel thing to tell someone who is trying to create a dictionary.
What this does: "oh, you're trying to index this value? Ok, it's an empty dictionary now". "Oh, you're trying to sort it into a drop-down list? Empty string, nothing happens".
HyperCard scale isn't dozens of developers working on a cadence, with branches and merge reviews. HyperCard scale is someone making something really cool, and dozens, maybe hundreds, of personalizations. Some shared, some not.
The distinction between, say, adding photos to a gallery, and adding a photo editor to the stack, is not sharp in HyperCard.
I'm very pleased to see this project, although I think the retro aesthetic might be self-limiting at some point. The loss of HyperCard was a real one, we're suffering from it to this day.
Re: Lil: A Scripting Language
#10To clarify for others who only follow the link titles, this is not the Tcl-inspired scripting language LIL[1] nor the other Tcl-based, C-clothing-wearing scripting language Little[2]. [1] http://runtimeterror.com/tech/lil/ [2] https://www.little-lang.org/ , https://news.ycombinator.com/item?id=26204218
Since the language is Tcl-like, i had some commands like "set", "get", etc to ignore arguments like "of", "the", etc for a HyperTalk-ish flavor :-P (obviously in practice the syntax is actually very different and that can be seen in the calculator video[0] below when it comes to expressions).
[0] https://www.youtube.com/watch?v=rshZHDDruAE (making a calculator, shows more LIL)
[1] https://www.youtube.com/watch?v=_8CYosAIIJw (making a telephone book, shows more painting)