4 ms·
> sometimes a PL has to go down an unconventional path to make something new. Absolutely, just look at Haskell as an example. > most important part is figurin
by grumpyprole 3y ago
> sometimes a PL has to go down an unconventional path to make something new.
Absolutely, just look at Haskell as an example.
> most important part is figuring out who is going to use the PL and what problems they are solving.
Completely agree. Rust and Go have received a lot of criticism over the years, but I think that is often down to them not being as general purpose as many people try to claim. The creators had particular users and use cases in mind.
- prmph 3y agoMaybe people just like to use general purpose languages. It should not be too hard to marry the good parts of major language families
- nyssos 3y ago> It should not be too hard to marry the good parts of major language families It is. Language features generally aren't isolated modules that you can add and remove freely: they interact, and "the good parts" are only good because they play nicely with everything else. You can't have Lisp macros without Lisp (or otherwise homoiconic) syntax, or Haskell's concurrency without its effect tracking, or global type inference with Java-style inheritance.
- rob74 3y agoI think Rust and Go have received that criticism also because they precisely "dared" to take an unconventional approach: Go is very opinionated and uses a radically simplified syntax without inheritance, exceptions and other things people are used to from other languages, which leads to many people trying to bend Go to their style of programming and getting frustrated; Rust has its focus on performance ("zero cost abstractions") and being memory safe without using GC, which leads to its famously steep learning curve. But I agree with OP: if you are going to start a new programming language today, you'd better try to bring some new ideas to the table, otherwise you're just crowding an already crowded space even more.
- randomdata 3y ago> I think that is often down to them not being as general purpose as many people try to claim. Is that the claim actually that they are general purpose, or do people not understand the claims made? Go has been very explicit that it is designed for systems programming. The Rust camp seems to hold a similar position. "Systems" implies that it is not designed for all tasks. But I'm not sure "systems" is properly understood by a lot of people.
- fho 3y agoFun fact: Haskell was established by a committee based on best practices from a jungle of ML-type languages.