Comments by "Anony Mousse" (@anon_y_mousse) on "Falling In Love With Gleam" video.
-
3
-
The only thing good about it is the concurrency because it uses BEAM. It's literally a less effective Rust. I wonder how long he had been working on it because I'm still not ready to release my language, but mine will have function overloading and allow using whatever Unicode characters you want. And I still take issue with the fake inference that modern languages have. let as a keyword to define an object, is just dumb. It's basically a weaker version of the auto keyword in C++ because now you're asking for permission. In my language you can infer by just doing foo := bar; The only reason for the : notation in setting a value in my language is to tell the compiler to create something there. It's just a way of catching mistakes, so you won't be likely to do foo = bar; and later baz = foO; and get a value or error you don't expect. It also works as a conditional guard so you don't accidentally set the value in a conditional.
I also take issue with the import systems for every modern language, even C++. If I'm importing a library I expect it to be immediately accessible. So import io; and everything in the io subsection of the library is accessible, but you can also do import io as io; and keep it in its own namespace or import io as fluffernutter; if you want. I also took the approach of inferring meaning in cases where the context tells me what you're referring to, such as enum Color { Red, Green, Blue }; Color c = Green; instead of requiring Color:Green to explicitly get at the namespace, though you can still be explicit if you want.
I did the same for switch. switch c { Red: foo(); break; Green { bar(); baz(); } Blue { print( "Green doesn't fall through because it enclosed the case in braces.\n Red does fall through because it designates a section.\n" ); } }. I also avoided the Java style keyword duplication by allowing a modifier to enclose a block or start a section. So say you want to make a group of functions public, just do public: and everything until the next section is public, and you can stack them. I still don't understand why everyone wants to copy Java and JavaScript for function syntax. No need for a keyword, just use a regular pattern.
2
-
2
-
1
-
1
-
1
-
1
-
1