Comment by JackMorgan
1 year ago
My initial reactions:
The good:
- network-crossing actor model, but with private addresses and built in routing and security capabilities
- object component security
- null means null
- immutability
- AWK-like pattern DSL
- functino is a cool way to have your infix operators cake and eat it too as prefix functions
The bad:
- no type checking on variables, parameters, record fields, record shapes, actor messages, etc
- practically need to buy a new keyboard to type all the symbols like '≈', '≠', 'ƒ', etc
- null punning seems great until you're looking at a null three function calls later and have no idea where it came from
Unsure:
- No reserved names means it's very easy to accidentally overwrite a primordial with no warning, I suspect someone will instantly build a linter that makes that a rule because this just looks like a foot-gun
Ultimately, this looks like JavaScript without all the foot-guns. Add in some modern features like actors, immutability, and a pattern matching DSL. Add in some new foot-guns like primordial renaming and null punning.
If I could snap my fingers and today be able to write Misty in the browser, I'd definitely use it for performance intensive code alongside Typescript until TypedMisty came out, then I'd probably switch for good.
However, I'd be absolutely shocked if any major browsers ever support Misty. So it'll probably remain a server side scripting language, which I definitely do not need. Why would I use this on the server for scripting over F#, Clojure, Elixir, or Go?
> - practically need to buy a new keyboard to type all the symbols like '≈', '≠', 'ƒ', etc
You just need to configure a Compose key. I encourage everyone to learn how to do this, it opens up a huge character repertoire that can be easily remembered how to type.
This. Although the most ergonomic compose key sequences tend to be assigned to accented characters rather than symbols, so IMO not very convenient for programming.
On Windows I use Capslock (and/or the right Shift key) as a custom-defined modifier to combine with character keys to enter my most frequently used unicode characters for programming personal projects.
Lots of fun characters available for use even when you're dealing with a language where identifiers are limited to ID_Start and ID_Continue (e.g. Javascript), for example:
Fair enough, but having to always remember to configure that on all my work machines is kind of a pain. Although I do use an ergodox with QMK firmware a lot so I suppose I could support that inside the keyboard.
But then my 5 work laptops all need the same thing configured for working on the train
Here's hoping someone talks him into just supporting normal ASCII symbols.
I see it as part of the suite of tools that one ends up installing on all client machines anyway. Most people don’t use just a stock OS installation without any additions.
Also, some editors have this built in, like Vim with Ctrl+K [0], and a Misty IDE presumably would have some equivalent.
ASCII is quite limiting, so it would be nice if we could move a little bit out of that lowest common denominator.
[0] https://vimhelp.org/digraph.txt.html
> symbols like '≈', '≠', 'ƒ'
He can not be serious, can he? I thought those were just ligatures. Is he typing on an old APL keyboard?
Other languages that make heavy usage of non-ASCII Unicode characters (such as Lean) often have tooling support such that one can type '\' along with some combination of ASCII characters to generate characters like '≈', '≠' and 'ƒ'. Along with searchable documentation for the whole mapping of shorthand codes to the mapped Unicode values, of course.
Code is read more than written, so I have grown to appreciate programming languages that lean into non-ASCII characters for semantic clarity :)