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!
Ask HN: Enterprise Java guy needs advice on what to transition to
31–40 of 57 posts
Re: Ask HN: Enterprise Java guy needs advice on what to transition to
#32Given 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.
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
#33As 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 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
#34Start 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.
Re: Ask HN: Enterprise Java guy needs advice on what to transition to
#35So... 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
#36everything 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"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…
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
#38The 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
#39I 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…
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
#40Would 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…