Been working on my programming language https://github.com/buzz-language/buzz for 4 years now (with some down periods).
Currently mainly working on the tooling: LSP, DAP and formatter.
Also managed to get fuzzing working with AFL++ and found a bunch of bugs with it.
When my son was in the last stages of leukemia, Bluey was on repeat all day. He was completely immersed in that world and we, his parents were there with him too.
Now, 5 years after his death, he's little brother is also in love with the show and we watch an episode at least once a day.
There will never be another TV show like this one for those personal reasons and also because it's just too good.
My wife and I watched the episode about infertility with our little niece who kept asking when she'd have a cousin. Despite its subtlety it completely broke me. It addresses the subject in the best of ways. Well here we are 7 IVF cycles later and still trying.
Can i take a moment to say I admire the strength that it takes to try 7 cycles. We gave up at 5, it became too heart breaking. Keep positive mate, I wish the best for you.
Author here. A few points make buzz a “scripting language” in my view:
- runs in a VM
- garbage collected
- high level
- “simple” meaning there’s only a handful of concepts to understand to use it
It’s true that we’re not used to scripting languages having a type system. But its a trend that is catching on: python has types, php too and typescript is at its peak in popularity to name a few.
Actually what made me not consider this a "real" scripting language is not any of those things but rather the existence of a non-optional entry point function. Scripting languages typically read code from top of file to bottom to decide what to execute
I think by the non-soft bits (I don't know what simple means) of your definition, Erlang, java, c#, go would be considered "scripting languages", which I think would be a hard sell.
Anyways I don't mean to take away from your work;. It looks very cool.
I'm not excluding the idea to allow the user to choose between the two. But the language must remain simple and relatively high level so I'm wary of going down that road.
The big problem I see with combining the two types is that it means that a user must always consider that the values they're using may have passed through imprecise floating point arithmetic, so the == operator is always potentially problematic. If you divide the two out into separate types, then the user can use == on ints without any concern, and it better reminds people to be careful with floats.
I definitely wouldn't break it out into int, long, float, double, and unsigned variants. That would be too low level for this kind of language.
I think it's fine to not offer all unsigned/signed variations, but in languages like TypeScript I often miss this distinction. Even Python differentiates between int and float where it is relevant, for example when indexing arrays. Sometimes you just don't want to mix the two.
Segmenting the two and performing conversions implicitly as necessary is fairly standard, the only thing that would be required is... exposing the current implicit behaviour.
Python, Ruby, or Lua do that. That's less "nonsense" than doing the same but hiding it from the user.
"num" also gives a false impression: before checking, I expected JS's (or Lua < 5.3) behaviour: everything is a double, and you only get 53 bits of integer precision (which is quite frustrating).
An alternative if you want
> simple and relatively high level
is to use decimals, at the cost of complicating the implementation.
If you want to make a strongly typed language and not repeat the mistakes of Javascript, you should make them distinct. In striving for simplicity it is much easier to accidentally arrive at simplistic.
I’m talking about the cognitive load of the language. Learning JS is a real complex task whereas learning Lua is not. Learning JS as is is hard since its moving so fast. I think nobody can deny the confusion surrounding the language. Lua is stable is the sense that 5 years from now you will still know how to use it even if you don’t keep up with the latest updates.
Also if you have ever dealt with any babel/webpack craziness recently you know what I’m referring to :)
You know those new concepts and complexities are optional? And backwards compatible? None of my jQueries broke when generators came out. And that's not even very fast at all. And people have been complaining for the longest time that JS didn't have those features.
But isn't modern PHP moving too fast though? They also break BC with a proper deprecation process. I don't know what you mean it's not a good argument, I've just been casually pointing out that your points are completely invalid. There's actually pretty good reasons to use lua over JS, you don't have to make up reasons.
Reading the sources I used to search for the correct term, I think I may have been fooled by ancient greek allophones. Ex. : ὁ ἄγγελος /ho áŋgelos/
Anyway like I said, too late to change now!
2018-03-05 23:47:38 assos in greek it pronounced fegari instead of fengari
2018-03-06 00:12:41 RhodiumToad assos: several modern greek dictionaries I checked give the "fengari" prononciation either alone or alongside "fegari" - are they wrong?
2018-03-06 00:31:44 assos RhodiumToad: after I checked you are right, the pronunciation depends based on the location in greek, the correct one is fengari. Btw, the word is a derivation of φεγγος which translates to light/brightness.
2018-03-06 00:31:53 assos in greece*