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

Java proves that limiting language features for "simplicity" just pushes the complexity somewhere else and generally much worse.

C++ is usually taken as a language with too many features but really it just has a few very flexible features and people abused those features to do all kinds of metaprogramming. As C++ has been adding more native metaprogramming idioms it has actually been getting simpler to code in.



The only thing Java proved about language design is that popularity and good language design have zero correlation.

If you want to see simplicity that stood the test of time, look at Smalltalk or Lisp.


I appreciated Smalltalk for a while but it is simple only on the surface and once you peel below that it's extremely complicated. Simple syntax doesn't necessarily lead to simple designs.

Lisp's limited syntax allows everyone to create their own "language" and that's arguably worse than the fixed set of statements that exist in other languages. I'd even argue that Lisp is inhuman because it's brutal compared to natural languages.

This is probably why neither language is more than an intellectual curiosity. COBOL, Fortran and BASIC have also all "stood the test of time".


>I appreciated Smalltalk for a while but it is simple only on the surface and once you peel below that it's extremely complicated.

Not really. Definitely not compared to C# or Java. Smalltalk simply has more system-level code accessible to the user.

I've worked with Java environments that tried to replicate the visual programming features of Smalltalk. They were about 10X the size of a modern Smalltalk distribution (Squak or Pharo), had at least 100 times slower startup time and you still needed an external IDE to get anything "serious" done with them.


If good language design doesn't lead to more people using your language, maybe we haven't defined good very well.




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

Search: