News for hackers. Stuff that matters.
Re:Non-constant constant-expressions in C++ by sz4kerto on Sunday April 26, 2015 @04:57PM (#9443229)
Interestingly, this is because -- after reasonable amount of C++, C#, Java coding I have just settled with Clojure (or Lisp in general). I really enjoyed writing clever C++ template stuff like class hierarchy generators and so on until I became old enough to think that good!=clever, good==maintainable&&it works.

Too much syntax and cleverness is bad for the industry as usually it attracts a lot of smart people who end up writing C++ (or Scala) -- but the problem is that they use a set of patterns+language subset that is unique to the team/company. Therefore knowing C++ does not mean you can just start at a company using C++, you have to learn their way.

Notable exceptions are Java and C#. Java is so simple and verbose that you can't write unreadable code unless you're really evil, it's a shame that the complexity and cleverness is moved to the frameworks (there aren't many "Java programmers", most of them are Spring, etc. specialists). C# works well because MS dictates the patterns (and those patters are usually quite good) while the language itself is very readable and intuitive, without crazy rules.

And there's Lisp/Clojure where there are only a handful simple rules, and cleverness is usually local, e.g. macros or tricky 'functional' data manipulation stuff; but for me that 'local' cleverness is the most understandable.

Re:Non-constant constant-expressions in C++ by evincarofautumn on Sunday April 26, 2015 @06:32PM (#9443564)
I find it very difficult to read Java code because it tends to be so long-winded and many-layered.
Re:Non-constant constant-expressions in C++ by userbinator on Monday April 27, 2015 @01:50AM (#9444539)
Java is easy to read at the "micro" level, i.e. the bodies of methods usually don't contain much code; but I think that is precisely what makes it hard to understand at the macro/system level, because that small amount of code depends on a much larger amount throughout the rest of the system, spread across multiple files in different deeply-nested directories. That's when you have to start following chains of method calls, object creations, and class hierarchies.
Re:Non-constant constant-expressions in C++ by Latty on Tuesday April 28, 2015 @12:19PM (#9453376)
Java is proof that worse is better. It's never completely unreadable, but it's never pleasantly readable either.
Re:Non-constant constant-expressions in C++ by m0th87 on Sunday April 26, 2015 @06:19PM (#9443516)
What is "local cleverness"? And how does lisp's metaprogramming capabilities avoid cleverness run amok?