I think this guy is mistaken. There are clearly other great Java engineers out there—look at Joshua Bloch, for example. There are also many companies which get a tremendous amount of work done using Java. See Palantir, for example.
I’m not sure when this fellow last used Java, but I think it is a lot more pleasant to work in than he thinks, especially because of improvements such as the guava. Eclipse in some ways turns into a DSL, at higher levels of use. I never spent long enough working in Java to do this, but the experts whom I knew in Java had extensive templates for Java, where they would type a few characters, generate the scaffolding that they needed, type another few characters, generate more scaffolding, and then write in the actual beef of the code in a mostly functional style using guava. Although I’m an admitted Java apologist, I definitely prefer to use a language where you don’t have to do backflips to make things immutable, writing DSLs is a joy instead of a pain, has first class functions, and is at least halfway to a real type system.
I think that with respect to language, he is confusing correlation and causation. The people who use Java use it because they were taught in college, and don’t really know any other languages, or else have just floated along the different mainstream languages their entire lives, not that curious. People who use Scala or Clojure are people with relatively high pain tolerances for situations where the documentation is the code, and don’t mind learning to think in a different way than they were taught in school. This means that the most curious people are using the weirdest languages. I think that if Scala gains mainstream appeal, we’ll begin to see more people coming out of the woodwork, misusing Scala, and the curious will migrate to the next hot thing, which will be the next sign for who is curious about engineering and who is not.
The system otherwise makes sense. I think that one interesting problem is figuring out when you should stop writing new programming languages and start just building with the libraries you currently have. Probably part of being something like a 2+ is being able to write a new DSL for every problem you run across, but also the self control not to.
I think one of Scala’s biggest cons is its potential complexity. Like C++, there are some dark corners of the language that you should avoid. You don’t need to go there, but you should be careful. These are pointy, sharp languages. Java has most of that pointy-ness filed down (threading is a notable exception).
I agree the author severely understates the number and contribution of great Java programmers.
I like the description of the point scale, however.
I think this guy is mistaken. There are clearly other great Java engineers out there—look at Joshua Bloch, for example. There are also many companies which get a tremendous amount of work done using Java. See Palantir, for example.
I’m not sure when this fellow last used Java, but I think it is a lot more pleasant to work in than he thinks, especially because of improvements such as the guava. Eclipse in some ways turns into a DSL, at higher levels of use. I never spent long enough working in Java to do this, but the experts whom I knew in Java had extensive templates for Java, where they would type a few characters, generate the scaffolding that they needed, type another few characters, generate more scaffolding, and then write in the actual beef of the code in a mostly functional style using guava. Although I’m an admitted Java apologist, I definitely prefer to use a language where you don’t have to do backflips to make things immutable, writing DSLs is a joy instead of a pain, has first class functions, and is at least halfway to a real type system.
I think that with respect to language, he is confusing correlation and causation. The people who use Java use it because they were taught in college, and don’t really know any other languages, or else have just floated along the different mainstream languages their entire lives, not that curious. People who use Scala or Clojure are people with relatively high pain tolerances for situations where the documentation is the code, and don’t mind learning to think in a different way than they were taught in school. This means that the most curious people are using the weirdest languages. I think that if Scala gains mainstream appeal, we’ll begin to see more people coming out of the woodwork, misusing Scala, and the curious will migrate to the next hot thing, which will be the next sign for who is curious about engineering and who is not.
The system otherwise makes sense. I think that one interesting problem is figuring out when you should stop writing new programming languages and start just building with the libraries you currently have. Probably part of being something like a 2+ is being able to write a new DSL for every problem you run across, but also the self control not to.
I think one of Scala’s biggest cons is its potential complexity. Like C++, there are some dark corners of the language that you should avoid. You don’t need to go there, but you should be careful. These are pointy, sharp languages. Java has most of that pointy-ness filed down (threading is a notable exception).
I agree the author severely understates the number and contribution of great Java programmers.
I like the description of the point scale, however.