Live data from Hacker News

Ask HN: Enterprise Java guy needs advice on what to transition to

news.ycombinator.com

31–40 of 57 posts

Re: Ask HN: Enterprise Java guy needs advice on what to transition to

#31

The future in the next 20 years is mobile development. Currently, for software on the actually device that means Objective-C for iOS(iPhone) development, or Java for Android. Of course, HTML5 and CSS3 are going to important for web pages viewed on the device. Find something you like in this area and stick with it!

I just wanted to reply "20 years?! Realy! Very bold prediction", but then I thught to myself - if someone said in 1991 that the future in the next 20 years would be web... he would have been right... interesting, isn't it.

Re: Ask HN: Enterprise Java guy needs advice on what to transition to

#32
post #4

Given that you know Java, you could consider transition to Android - it is a lot simpler than enterprise Java (because it has to run on a phone) and most of the APIs have been reworked. But then that is just me.

Seconded, and extended to languages for other mobile devices. Since most things are (unfortunately) web-centric nowadays, it's a relatively safe bet that knowing how to throw code for smart-phones and tablets will keep you employed (and entertained!) for at least the next decade.

Since most things are (unfortunately) web-centric nowadays

Disagreed. Theres much more that needs to be programmed. Think of devices, health information systems, traffic routing etc.

"Most things are web nowadays" is often said, but just wrong.

Re: Ask HN: Enterprise Java guy needs advice on what to transition to

#33

As a recovering java enterprise developer I'd say pick a small project you are interested in and another language you are not familiar with and try it out. I found ruby an easier transition from java than python, Go might be interesting for you if you are coming from c++. Just make a small app in your free time and realize that a ridiculous number of startups these days have code bases measured in thousands of lines…

> Go might be interesting for you if you are coming from c++

Go might be more interesting if you are coming from C. Go and C++ are pretty much antithetical.

For some reason Go also seems to interest people coming from Ruby.

Re: Ask HN: Enterprise Java guy needs advice on what to transition to

#34

Start with Scala. Then try Play! and such. Also look at GWT. And do iOS. Much better job market than Python etc. http://blog.getgush.com/ I'd stay away from Groovy etc. Also, please get over that "scaling" stuff. PHP scales just fine. Rails scales just fine. Python scales just fine.

Why stay away from Groovy?

Re: Ask HN: Enterprise Java guy needs advice on what to transition to

#35
"Enterprise" Java does not need to be the way you have experienced it. We are getting ready to release a fairly complex Java application that addresses a very significant pain point. The major components of the entire application are highly decoupled. Our team is currently two developers, and we do not envision it to grow over three. The whole development process took only 8 months.

So... don't blame Java for poor architects or poor engineering/business leadership...

(And, btw, I'd love to talk to you if you are in the Boston area.)

Re: Ask HN: Enterprise Java guy needs advice on what to transition to

#36
ruby/rails, unless you have anything specific in mind.

everything you've heard about it is true. its great, and the learning curve for someone who isn't a cut-and-paste coder is small. i made the same switch a while ago, java/c to ruby, and it was like a weight lifted off my shoulders.

Re: Ask HN: Enterprise Java guy needs advice on what to transition to

#37
post #35

"Enterprise" Java does not need to be the way you have experienced it. We are getting ready to release a fairly complex Java application that addresses a very significant pain point. The major components of the entire application are highly decoupled. Our team is currently two developers, and we do not envision it to grow over three. The whole development process took only 8 months. So... don't blame Java for poor ar…

good point. Unfortunately, I have ended up working on big apps that were written early 2000's during the big Java migration which means Jsp/Struts 1/EJB 1&2. The apps tended to be developed under a short timeline by a lot of developers so the lack of clear direction really shows.

Sorry I'd like to meet up but in sunny South Carolina (go gamecocks !)

Re: Ask HN: Enterprise Java guy needs advice on what to transition to

#38
Would you be willing to elaborate a little more on what you hate about Java? You mentioned "complexity and over engineering", which is what I hate about it these days too.

The thing is, I used to like Java. While I've been mainly interested in Ruby/Rails for personal projects, I've had to keep coding in Java for my work, and I've started to hate it too. But there are a lot of things I still like and miss about it, including moments when I think I'd actually still choose to use Java for a project.

Looking back, I think my enjoyment of Java ended around 2005, which was when Servlets and JSP were replaced with Struts, Spring, and Hibernate. I know a lot of people felt this was a huge improvement over the original EJB, but personally, I was astonished that people thought Spring, Struts, and Hibernate were "lightweight" (I never even bothered with EJB). While these frameworks have improved greatly and aren't nearly as hard to use as they were a while back, but I still don't like coding in them.

I think I miss the "recipe" approach prevalent prior to 2005, where you stuck closer to the "low level" servlet/jdbc approach, and you either brought in a new library for a specific task, or decided to write the code yourself. It was a bit laborious, but there wasn't much you couldn't do if you were willing to do a lot of typing. This approach seems to be an evolutionary dead end now - people generally start their projects in a framework (rails, django, spring), and stay within it for the remainder of the project. So there isn't really any point to a servlet "cookbook" anymore. It's either a Spring cookbook, or a Struts cookbook...

I think some new technologies have made Java more enjoyable - especially Maven, but I felt that Spring made Java far less enjoyable. It's a personal opinion, but to get a sense of it, I recommend you try working through the SpringMVC tutorial on the SpringSource site. Like I said, this is pretty much just a personal preference of mine - if, after doing the tutorial, this seems like a great way to write web apps, then by all means, go for it. But personally, I can't stand it.

I've been wondering if maybe there's a niche out there for people who like to use java at the low level. The funny thing is, I obviously do like frameworks, since I'm pretty enthusiastic about Rails. I think that it's just that if I'm going to use Java instead of Rails, then obviously there's a reason, and it's probably because my tasks are taking me outside the normal operations of a framework.

I think this comes down to wanting to be either at a very effective and efficient high level of abstraction, or wanting to get down into the grit of the problem and be able to do anything. While there was a time that it would have seemed funny to refer to anything Java related as "low level", pure servlets and jdbc seem to be taking that role in the middle tier (not just within SpringMVC or JPA/Hibernate, even non-java languages seem to be compiling to Java to run on the JVM).

Ok, this is a long rant, maybe it should have been a separate post completely. It just seems like we're in the same spot, and I want to ask you - do you think you might enjoy Java more if you dropped back from the enterprise-framework thing and started using it where (in my opinion) it still excels, the "low-ish" level of the middle tier? I wonder if other people are starting to feel the same way I do about this - that Java has its place, but when it does, your probably going to want to be going in as low level as you can with the language - otherwise, you'd be using something else.

Re: Ask HN: Enterprise Java guy needs advice on what to transition to

#39

I couldn't agree more. For most projects today, Java is severe overkill where a more high level language is better suited. While I'm not a fan of the Java language, the Java platform is rock solid and we can all agree it's not going away anytime soon. I'd recommend taking a look at JRuby. It works nicely with Java libraries and loading Java classes. You don't have to deal with dependency injection. Variables aren't t…

I've been thinking about DI in Ruby, and I've been trying to think of how I'd deal with the absence of DI in Rails. Here's a scenario...

Suppose you have two different ways of gaining information about a logged in user. Let's say one goes to LDAP, and the other goes to an RDBMS. You'll be using one or the other depending on where the software is installed.

So in Java, you create an interface that defines the methods you'd need to identify and retrieve a User, and you write an LDAP and an RDBMS implementation. The code deals only with the interface, never the implementation directly. So if you want to switch them, you just create a setter (assuming we're using setter injection) and notify your DI container of which implementation should be injected.

I definitely get it that in a language with duck typing, there's no need for the interface/implementation gymnastics. You can just pass whatever class you want, and as long as it responds to those method calls, you're golden. So in that sense, DI isn't really an issue.

But what about the nice decoupling you get - is there any easy way to swap out a particular implementation in Rails? I'm trying not to think too much in Java here, it's more of a general problem, definitely doesn't mean I'd necessarily want to force DI onto a language that takes a completely different approach to things...

Sorry to get so technical here, just seems like you might have some insights into this.

Re: Ask HN: Enterprise Java guy needs advice on what to transition to

#40
post #38

Would you be willing to elaborate a little more on what you hate about Java? You mentioned "complexity and over engineering", which is what I hate about it these days too. The thing is, I used to like Java. While I've been mainly interested in Ruby/Rails for personal projects, I've had to keep coding in Java for my work, and I've started to hate it too. But there are a lot of things I still like and miss about it, in…

Sure. First I like Java the language. I dislike Java the enterprise platform. I don't like XML as another programming language, I don't like having to fire up a giant container to test a piece of code (looking at you weblogic). Now things are probably moving in the right direction - I did try EJB3/JPA and it was ok. But I'd hate to be a new programmer coming to Java and being confronted with Spring, EJB, Hibernate, JSF and an app server just to shove some data in and out of a database.
Post reply on HN