Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Reputation for overcomplexity, loss of users. Becoming the next C++ or Haskell.

I think Rust is already there. It's a concern, but I'm not sure you can or should try too hard to avoid this.

What you can do is look to make simplifications as you add complexity.

And sometimes innovations can have simplifying effects. For example, the various "effects" libraries for Haskell simplify I/O code compared to not having them.



It's quite difficult to simplify an existing language, even when adding a feature could theoretically simplify a language. For instance, higher kinded types are simple in principle: it's just removing an arbitrary restriction about what you're allowed to pass to a type constructor. However, when adding them to an existing language it doesn't always work that way. In the limit of removing type system restrictions you end up with dependent types, which are very simple in terms of the number of type system rules that they require, but try adding them to Java and you'll get a monstrously complicated beast.


You're not wrong. Rust is a very fluid language though, and now is the time to get these things right for Rust. Java feels like a lost cause.


There are only two types of languages, those that are too complex and those that aren't yet.


There is at least one language that evolves in the opposite direction. The philosophy of Oberon is that "Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away."


And sadly lost its opportunity to Java in the late 90's.

So whatever Wirth has done was quite of interesting in terms of language research for the language geeks among us, but hardly with any market relevance.


If you are interested, I can recommend the Oberon compiler OBNC: https://miasap.se/obnc/


Thanks for the heads up, I am quite aware of Oberon's ecosystem though.

You can check Oberon's history on my website.


So we should be using Forth then, got it :)


Rust 2018's non-lexical lifetimes are a good example of this.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: