Ask HN: possible Java contract, what alternatives to suggest?
I used to be a Java consultant and my past keeps haunting me. Since I haven't earned money for a while, I did not say no immediately to a recent consulting request. It is a startup by someone I have worked with before (who is a business guy). So far I only talked to his partner, and the project does sound quite nice. Some perks for me would be that there would be a chance to bring one of my best friends on board, and we would be developing the code from scratch together (the two of us). This would give me some additional confidence because he is much more of a Java geek than I am. I haven't coded in Java for over a year now, and it would be nice to work with somebody who is more up to date with the latest developments.

But Java is also the problem: I really never wanted to do another Java project again, ever. I had some hopes to suggest Scala instead, but to my surprise my friend was against it. And it is actually reasonable: his argument is that it would cost us time to learn a new language and framework. Actually I have dismissed Scala twice before, too (from rather superficially reading the "how to get started" tutorials), but it is the only compromise that I could think of that a die hard Java person might take serious.

Also, I have now noticed that there does not seem to be a lot of online documentation about Lift, the Scala web framework. I am also not sure I really like constructs like "LongKeyedMapper" - again, a very superficial evaluation, but at first glance it just doesn't look that pretty.

Anyway, I am not sure what to do. I think by default the client was thinking Java, but they might not be hard set for it. But what else is there? I am not really good at any other web frameworks yet. I am not 100% happy about Rails (ActiveRecords, Migrations - bleah), and not about Django either (RESTful URLs???). I suppose any alternative would have to be statically typed to convince my Java friend. Also, this startup will do money transactions, so it is more down to earth than fancy, and performance DOES matter.

I guess I should just suck it up and do it in Java, as it is "only" about 4 months anyway. But I have been extremely unhappy in some previous Java projects. Or just say no to the project after all. It is also probably mostly standard web develepmont, a ka boring. I was hoping that learning a new language along with it could prevent my brain from completely shutting down during the process, but it seems unprofessional to burden the client with the additional risk.

Personally my best hope for the near future is JavaScript all the way down (perhaps with node.js), but I don't think I could suggest it to a client just yet. Maybe F# would be an option, too, but I have zero experience with .NET (is it possible to develop and run it on Linux - Mono?)

I am aware of Clojure, but I think it would be too big of a leap for my Java friend, and I am not certain that Compojure would be to my liking (don't think I dig the the HTML builder with square brackets, for instance) - yet another superficial evaluation, no less.

Perhaps there is some approximation to a fast turnaround Java web framework? I just know that if confronted with another service oriented architecture that requires me to change 10 files just to change one word on a web site I might end up getting writers block and unable to get any work done (Service, ServiceImpl, DAO, DAOImpl, Controller, ControllerImpl, jspx... ok just 7 so far, but I might have forgotten some... ah, perhaps messages.properties, application-context.xml, hm...perhaps a FormObject + Impl?).

Maybe I could say no and tell them to find a more dedicated Java developer. If they absolutely can't find anybody, I could suggest a fancy language of my choosing as a compromise and feel less bad about it because at least I would not be guilty of having prevented them from choosing the "safe" Java route :-/