Joe Gregorio wrote a short reaction to Beyond Java which I'll use as the starting point for my own reaction.
I got a review copy of Beyond Java some time ago. I feel a little bad because I didn't review it. Frankly it didn't hold my interest; I mostly got it because I was told I was referenced in it (it was a footnote link to this post). And of course it was an uphill battle for the book, since I have never used Java and am largely indifferent to the platform.
What the book lacked was any useful exploration of what is beyond Java. Instead it was essentially some email exchanges with people about what they thought the advantages of other environments were. Lots of the people referenced didn't have very strong backgrounds outside of Java, or didn't really speak as anything more than an advocate. I expect more measured and thoughtful responses out of a book; the web can provide me with whatever advocacy I desire. There should be some point to getting a book over reading blogs. I suppose it's not Bruce's fault that the blogs win out here -- I'll attribute that to the ever-increasing quality of discussion on blogs, and books just aren't keeping up.
There's a lot of material to explore when you venture beyond Java. It's not all good out here. There's whole new ways to mess up. And maybe the details are beyond the scope of the book, but it's a whole book, not a blog post that should try hard to stay under one screenful. There's room for some good details.
For instance, here's a bit of advice: using a new sexy technology can be a strategy to bring great developers to your shop. Often the new technology is a buyers market for the employer -- developers want to use it, but most employers aren't even considering it. But the new technology becomes less new, the novelty wears off, and the developers may very well notice that the work they are being asked to do sucks, and they will leave. Or to phrase it another way: you can pay a great developer enough and give them enough freedom to start on a lifeless soul sucking project, but you can't make them stay. Do you think your project is actually worthy of great developers? For a lot of Java shops that answer is probably no. (You can't get them to live in Detroit and work on payroll systems either, even with a cool language and hip development methodology.)
(As an aside, and as a Python developer: you can keep your dumb jobs, you can keep your proprietary community, you can keep your enterprise, because please don't come bother us with your boring enterprisey problems)
Beyond Java didn't really talk about stuff like this. I can't believe it's because of a lack of knowledge, wisdom, and experience around these issues either -- but this knowledge isn't (by definition!) in the Java community where Bruce Tate probably hangs out.
I was going to react to Joe's original post, not just the book, particularly whether Beyond Java asked the right question. But because I think that reaction is more interesting than this review I'll do that separately.
As an aside, and as a Python developer: you can keep your dumb jobs, you can keep your proprietary community, you can keep your enterprise, because please don't come bother us with your boring enterprisey problems)
Mmmmm. Flamebait. Yummy.
The bit about "proprietary community" is unfair. Java has a large, active open source community around it and Sun is slowly openning up the core language too. The rest of it is arguable.
Yeah, flamey I'll admit. However, I'm not talking about Java developers particularly; I didn't really mean to say anything against Java. Just because boring jobs call for things like Java doesn't mean Java is necessarily a bad language. And honestly, someone has to do those jobs and build those systems. Using exciting technology to build boring products eventually becomes old, and in an open source community it doesn't just become old for the people building the systems, but the boring trickles out into the rest of the community. No fun. Proprietary development tends to support boring programming jobs better than open source. Some people might like to get something for nothing from the F/OSS community, but that doesn't always work.
I guess I really was saying: it doesn't always work, and I personally have no incentive to make it work or offer ideas on how to make it work.# Ian Bicking
Well, Ian, I really admire your stuff, and appreciate your dedication to Python as a web development language. However, if the job isn't in Detroit, and isn't a payroll system , the simple fact that the job description may include "Python" experience can have exactly the effect you described earlier, of attracting coders. Even if it is about "boring enterprisey problems." In other words, it seems to me that the opportunity to address SOA, ESB, etc. with Python opens the door to building clean, lightweight, flexible, extensible, maintainable, and evolvable tools. Once you get that, the boring part is much less of an issue, IMHO.
Another point that you might consider. Maybe some folks don't get bored so easily, and really enjoy the ongoing challenge of keeping a system running with clean, efficient code, while avoiding bloat, one-offs, etc. I guess what I'm saying is that I think garden variety coders deserve the chance to use Python too!# Jerry Spicklemire
What's interresting, is that I think you hit a point with java as a language for poor programmers (even if I think there are really good programmers in the java community, look at Hibernate for example or JBoss). But here in France most managers choose Java because they don't want to depend upon good programmers, they want to depends upon bad programmers. In fact buzz word here for managers is "Industrialization of software production" which sounds as "programmers are the new semiskilled worker" (Managers prefers when human beings just becomes non essential ressources). That's Why I prefer the term rationalization (which for me means better Q&A and realistic project management specific to software production).
Ok, there seems to be some division between Java communities. All in all, I do not have a problem with enterprise. Its how I make a living. Although; in regards to a programming language, things should be open and clear. I think JAVA belongs in business (As well as other places). But business does not belong in JAVA--or any real programming language, for that matter.