> What would it take for functional programming languages to cross the chasm?<p>> (eg Elm, Rescript, Haskell)<p>Here is what it would take:<p>- An actual use case. An answer to "why use Haskell instead of Java? Why use Elm instead of TypeScript?" "Superior in prod" is not enough, I'm sorry but it's just your opinion. I've used all of these languages, and IMO Haskell is definitely more fun, but I actually felt a lot less efficient and encountered harder-to-find bugs.<p>- A good IDE. This is a big reason why new projects use Java even though it's so verbose. I've used many IDEs for Haskell and none come close to JetBrains or VSCode Java/Kotlin/Typescript/C integration. The Haskell IDE even has spotty code completion - no matter how much faster and easier it is to write Haskell than Java, it's not really faster or easier if I build my project and get 20 spelling errors.<p>- Good OS support. Good libraries. JavaScript sucks as a language but it's the only language for the web, and it has NPM. Haskell actually has good libraries, although idk about OS support. But Elm doesn't and it's a walled-garden, which is a weird and IMO bad choice, especially considering that it competes with NPM / JavaScipt.<p>I'm sure there are more that I didn't mention, like a big company to adopt and promote your language.<p>Look at some of the new-era languages which <i>did</i> succeed:<p>- Rust. Rust is sometimes used for everything but it has a very specific niche: efficient, safe embedded programming. No well-known efficient languages (C, C++) compare to its safety, and no well-known safe languages (Ada, Java?) compare to its efficiency. Rust has <i>amazing</i> libraries, and an amazing package manager. Rust compiles to LLVM. And Rust has decent tooling (although IMO on this aspect it could be better, it's still decent)<p>- Kotlin. Kotlin compiles to the JVM, so it supports all Java libraries and targets. Kotlin has <i>amazing</i> IDE support from JetBrains. Kotlin is the official language of Android, which means people "have" to use it.<p>- Go. Go is a great language and has great libraries for web services. Try writing a service in C vs. Go. Go also has great IDE support.<p>- Julia. Julia is a typed scripting language, particularly good for data science. Its data science competitors, Python and R, are untyped. Also, Julia has good IDE support and it's starting to get good libraries.<p>- TypeScript. TypeScript is literally "JavaScript with types". No other language integrates with the web as well except for JavaScript. And TypeScript is better than JavaScript (for many people) because it has types.