Discouraged Developer
tbray.org
tbray.org
My inclination is towards the idea of learning what you need, and learn enough about it to make/code something valuable.
But look like developers (at large) fight with Java-like bureaucracy instead of replace it.
For example, In https://news.ycombinator.com/item?id=8048014 is discussed how great could be the use of Nimrod, but the lack of ecosystem kill this for a lot of people. The energy on build it is hard. However, the energy of battle against the complexity of a ecosystem like Java is bigger... so weird, not?
I think the general rule is that complexity will inflate to about the point where a person with moderately high IQ can't understand it any more. So if you start with a beautiful simple language (say, Python or Java) people will immediately use their free mental "bandwidth" to start adding layers on top of that complexity, and they won't stop until they basically can't understand it themselves any more. Then we will go through another cycle of simplification where someone invents a new language or approach and everyone flocks to it because it is simple and they can understand it and start assembling complexity on top of that ... (Gradle, which Tim refers to, btw, is a perfect example of that ...).
Can be argued that the problem is that everyone keep grinding until is too late to simplify it, ie, the activity of simplify stuff must be done more often.
Also, make things worse than complicated stuff is now a huge legacy and then even if you have a better/simple tool is necessary to mess with them.
Unfortunately, Gradle chose Groovy for its programming interface, and Groovy was designed to be complex so its backers could sell conferences, courses, and consultants. Thankfully, it looks like Gradle's going polyglot soon, their Gradle 2 roadmap [1] talks about a configuration-on-demand build model which could expose an API usable by any scripting language, like with vertX.
[1] http://forums.gradle.org/gradle/topics/revolutionary_new_gra...
I post comments about and replies to stuff that interests me such as Groovy, including the org.codehaus.groovy implementation. You mentioned your take on Gradle and the simplicity/complexity cycle, and I was giving my opinion on it.
Gotta know your linux, your scripting, vagrant, docker, salt, git, testing, continuous integration, editor(evil + emacs in my case), algorithms, datastructures, best practices, libraries you are currently using, sql, how servers work, how the web works, memory management, and on and on and on.
On top of that, synthesize all of the above into something usable and maintainable, then maintain it. I'm starting to suspect the day I have a good grasp of the basics is the day I become a master.