Whether these are VALID concerns I won't take a stance on - just saying these are the reasons I've seen cited.
> The only whitespace now allowed in code is ASCII space and line endings. Since you must use indentation to format PureScript code (unlike Haskell), we felt it was best to be more restrictive in what you can write instead of allowing potentially confusing behavior (implicit tab-width, zero-width spaces, etc). You can still use unicode whitespace within string literals.
I’m also wondering about the removed literals.
Lately, TypeScript has become more scalable across existing npm libraries and also introduced new advanced types. It looks like Microsoft guys learned a lot from C# and F# type system and feedback from their users
https://www.typescriptlang.org/docs/handbook/advanced-types....
Typescript is Javascript with a relatively advanced type system (mapped types, type guards, etc) on top, but is still very much constrained by Javascript fundamentals and syntax.
The type system evolution was primarily driven by the need to create valid typings for the existing JS ecosystem, and this noticeably shapes the capabilities.
This is the right choice for the language, but I can't see how it resembles the ML family much.
Typescript in the last couple of years introduced a nice way to compose types and ways to get rid of many other common JS gotchas. They have type definitions for almost all the usable npm libraries, which helps you jump-start the development.
ClojureScript == Lisp
PureScript == Haskell
Reason == ML
TypeScript == C#
But now Typescript 3.5 is also influenced by F# which is close to ML.
Just look at those advance types and their allowed composition which Typescript supports in its latest release and you will understand.
If you want ML, why not OCaml with js_of_ocaml or BuckleScript?
https://github.com/purescript/purescript/graphs/contributors
You can see some of our tutorials and open source projects here: https://www.lumi.dev
He still uses PS and chimes in on some issues, but doesn't really have time to work on the compiler anymore: https://twitter.com/paf31/status/941745900426215424
i'd tread very carefully and wisely before choosing any one of these paths.
it only makes sense imo if you come from Haskell, Clojure, or some other ML background to have an explicit interest in these languages.
Elm, PureScript, and Clojurescript are fundamentally different languages. Javascript today has bloated, and it keeps growing. Experienced developers tend to dislike it. Newbie developers struggle with it. It is no longer "a small language with a low entry barrier". ECMAScript specification is already bigger than Java's.
PLs of today and the next couple of decades will be striving for optimizing for programmer's productivity, performance, or correctness of the program. Javascript today does not fit in any of these categories. So it is only natural - the trend of using alt-js langs will only grow.