Live data from Hacker News

The Misty Programming Language

crockford.com

11–20 of 50 posts

Re: The Misty Programming Language

#12
post #3

After saying that it's a dynamic general-purpose, actor language, the introduction talks about spacing style, comment style, naming and purity. That's very lackluster. Show me a Fizzbuzz or an advent of code. Tell me a story of why it exists. Now the only discussion I can have is why are there no reserved words and can we call our functions and variables "set", "call" and "def" then?

This is the spec for the language Douglas Crockford (author of the book "JavaScript: The Good Parts", the JSON specification[1], JSLint[2]) had explained in his famous talk: "The Next Programming Language"[3].

The "big things" in the language are the Actor model, favouring immutability and capabilities-based security.

Presumably, there will be a flashy website later that actually motivates why you should use this language and what's cool about it. Notice this looks similar to the JSON spec website[4].

[1] https://en.wikipedia.org/wiki/JSON

[2] https://www.jslint.com/

[3] https://www.youtube.com/watch?v=R2idkNdKqpQ

[4] https://www.json.org/json-en.html

Re: The Misty Programming Language

#13
post #3

After saying that it's a dynamic general-purpose, actor language, the introduction talks about spacing style, comment style, naming and purity. That's very lackluster. Show me a Fizzbuzz or an advent of code. Tell me a story of why it exists. Now the only discussion I can have is why are there no reserved words and can we call our functions and variables "set", "call" and "def" then?

I think space-style nonsense was a great thing to have up front, because it immediately informed me that I will hate this language and never use it. Genuinely appreciate them saving me time.

Re: The Misty Programming Language

#15
post #3

After saying that it's a dynamic general-purpose, actor language, the introduction talks about spacing style, comment style, naming and purity. That's very lackluster. Show me a Fizzbuzz or an advent of code. Tell me a story of why it exists. Now the only discussion I can have is why are there no reserved words and can we call our functions and variables "set", "call" and "def" then?

I think space-style nonsense was a great thing to have up front, because it immediately informed me that I will hate this language and never use it. Genuinely appreciate them saving me time.

I don't get this.

Do you purposely 'not' indent your code, to obfuscate it?

Re: The Misty Programming Language

#16
post #7
post #3

After saying that it's a dynamic general-purpose, actor language, the introduction talks about spacing style, comment style, naming and purity. That's very lackluster. Show me a Fizzbuzz or an advent of code. Tell me a story of why it exists. Now the only discussion I can have is why are there no reserved words and can we call our functions and variables "set", "call" and "def" then?

And makes syntax choices (strictness of spacing that forces verbosity) that instantly guarantees that I will never consider the language.

If you choose language based on syntax instead of semantics you miss everything with useful semantics which doesn't happen to use syntax you're familiar with. That seems a terrible loss.

E.g. I deeply dislike the syntax of makefiles and xslt, but the declarative model is so good where it fits that it's worth dealing with the visual discomfort.

Re: The Misty Programming Language

#17
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?

Re: The Misty Programming Language

#18
> Functions are first-class values...

Good

> Functions can not be sent in messages to other actors

Oh, so not first class. Mutable closures are tricky to implement though, so fair enough.

> Function objects are immutable values.

Huh. That means you can easily send a function to another actor. Can even serialise it and send it over a network. That stuff is a real pain for closures over mutable state but totally straightforward for immutable values.

That seems like a implementation limitation turning up in the language spec instead of fixing the implementation.

Re: The Misty Programming Language

#19
post #14

Do we need more new languages? Will AI need a number of languages to complete the the task?

We need better languages than the current ones. In many dimensions. We need lots of new languages because the design tradeoffs are viscously difficult and the language design field is only really progressing by trial and error.

Even if you're hardcore obsessed with AI as the one true path to everything, having it write JavaScript is definitely not a global optimum.

Re: The Misty Programming Language

#20

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…

> symbols like '≈', '≠', 'ƒ'

He can not be serious, can he? I thought those were just ligatures. Is he typing on an old APL keyboard?

Post reply on HN