Cross train or jump ship...?
August 18, 2011 9:29 AM   Subscribe

It looks like my webdev employer has decided to move from PHP to JSP. Is it time to learn a new language or time to move on...?

The small developer I work for in the UK has been looking for new PHP developers for a while and can't find any that seem to actually know what they are doing - everyone seems to be very raw and green or that special kind of nerd who is convinced you can replace HTTPS with his own 'uncrackable' ajax encryption system.

My boss has decided to tap a seam of JSP developers, and has announced that the two big projects coming our way this year are both going to be written in JSP - and is wanting me to do significant parts of the work.

The thing is - I'm a damned good PHP developer (hell, I'm a god compared to the interviewees I've seen) but I know nothing at all about JSP and my few interactions with Java have left me completely cold. A large part of me is screaming that I'd instantly go from being a good PHP guy to the rawest, greenest JSP guy on the team.

(I'll be honest - the project I'm working on for them right now is so JavaScript heavy that I can't work out how much of JSP is Java and how much is JavaScript. The arguments I've heard Java people use against PHP have always seemed to be an order of magnitude worse in JavaScript)

I know nothing about the international popularity of JSP vs PHP. Does the hivemind lean toward learning a new language or putting my CV/resume out there?
posted by anonymous to Work & Money (15 answers total)
If you're a damn good php developer, I'd jump ship and look for another job. *Good* (and i stress good) web devs are in high demand right now. I'd maybe consider sticking around for the opportunity to work in a newer, more in-demand language (python or ruby), but JSP? Blech.
posted by cgg at 9:39 AM on August 18, 2011 [2 favorites]

Well, before you decide, read up on JSP a little, maybe grab the nutshell book or something. I only suggest this because developing JSP apps need not involve Javascript at all, so it sounds like you don't know the tools that well. (Of course it's possible that the boss will tell you to incorporate JavaScript into the project, but as you can see, that happens with PHP as well.)

Other than that, I think the answer depends on how much you like your job but for this new choice of languages. Do you get along well with your coworkers? Does management respect you? Could you see yourself transitioning into a management role at some point? If so, it seems like you might want to stick around and accommodate this request - you won't necessarily jump into another position like that, even if you find a shop that uses more "in demand" tools.

If you're very concerned about getting pigeonholed as a JSP developer, try to keep at least one PHP project going on so that you keep up your skills. Frankly this shouldn't be a problem if you are the one good PHP programmer in the house and they still have some ongoing commitments to the existing apps. Have a talk about it with your boss, though, see if that will be true going forward.
posted by Joey Buttafoucault at 9:47 AM on August 18, 2011

Move on. PHP's greatest strength is also its greatest weakness - anyone can do it. As your employer has just found out - good php developers are very hard to come by.

I started freelancing 5 years ago and was self-sustaining within a couple of months. Almost all my business has come from word of mouth from my first couple of clients.
posted by missmagenta at 9:54 AM on August 18, 2011 [1 favorite]

One thing to know about JSP is that it's not just about JSP. I have been programming in Java for 10+ years and it never ceases to amaze me all the layers upon layers of additional bullshit that sneaks into a project. It's not necessarily bullshit, but depending on the environment your boss wants to cultivate you could be learning a lot more than just JSP including app frameworks, data object tools, xml, different IDs, testing tools, etc, etc, etc. While many of that stuff has its place in enterprise-level apps, I hate it when they end up in low-volume, simple web apps that could just as easily be built in PHP.

So if you're up to the challenge of learning JSP you should also be up to the challenge of these other things, which indeed are valuable to know and an asset in your future job search. You can find Java/JSP jobs virtually anywhere if you are willing to add it to your skill set. That's the plus.
posted by thorny at 10:28 AM on August 18, 2011 [1 favorite]

I actually really like coding in Java/JSP. If I were in your shoes, I'd try to learn it. But if you're a skilled PHP developer and there's opportunity for you, you might as well take it. The Java/JSP ecosystem is large and complex, the labour pool is crowded and judging by your comment, you're at the bottom of the learning curve.

Your life will probably be more fun if you keep doing what you know. Besides, a more natural progression would be towards Python or Ruby. Both of which give you the "real" programming language experience without the insanity of Java.
posted by klanawa at 10:30 AM on August 18, 2011

As a programmer, I feel that getting paid to learn new technologies is always worthwhile. It can show up on your resume later to show you're versatile. I say stay and pick it up. But you'll need to know better programming techniques than what PHP can teach you and there's going to be stuff on Java that are foreign unless you know the syntax.
posted by DetriusXii at 10:43 AM on August 18, 2011 [2 favorites]

Javascript != JSP. Apples and oranges.

Does your boss understand your lack of JSP skills? It would be completely foolish to jump ship without first checking out JSP. If you like it, great. If not, you've at least been paid to learn the fundamentals. It will hopefully open your eyes to a new style of developing software, which if you're curious about things like .NET/Mono, Python or Ruby will be really helpful.
posted by mkultra at 10:47 AM on August 18, 2011

I think the answer to this question lies in how realistic your current employer is about how long this transition will really take for the team. Do they understand how significantly different these languages/technologies are and are they ready for to account for this? If they're willing to train you, awesome. I'm not a fan of JSP but getting paid to learn is the bomb.

One other thing I'd recommend: get "Javascript: The Good Parts" and "Java: The Good Parts" Great way to avoid some common pitfalls and also, really, you need to understand the difference between these two very different languages if you're going to be effective at making this transition...
posted by johnnybeggs at 10:50 AM on August 18, 2011 [1 favorite]

Err, didn't mean my comment in a snide way, what mkultra said is spot on, Javascript and JSP/Java are very, very different.
posted by johnnybeggs at 10:52 AM on August 18, 2011

JSTL is ridiculous xml insanity. This is how you do an if/else:

<c:when test="${something == true}">
something else
posted by the jam at 11:15 AM on August 18, 2011

JavaScript started out as LiveScript but then Netscape wanted to jump on the then java-is-new-and-exciting bandwagon. So they renamed it JavaScript without actually doing much to make it a scriptable Java.

JavaScript is better called ECMAScript.

As for JSP/Java Servlets, I like it a hell of a lot better than PHP, but I do both. And I also think that any good programmer will be able to pick up new languages and paradigms without much trouble. Give it a shot.

Now, if your employer decides to rewrite old projects in Java... run for the hills. Project rewrites rarely go well.
posted by sbutler at 11:20 AM on August 18, 2011

I've programmed both but more recently I spend a lot more time in the PHP world. They are both good systems and if you enjoy learning new things then take this as an opportunity to do so. You really have very little to lose.

I would however say that your boss is trying to solve a recruitment problem the wrong way and this concerns me. I've recruited for PHP and Java/JSP developers and making good hiring decisions is hard. I'm highly skeptical that changing the language requirement will yield a better pool of candidates. As you determine if you want to stay on board try to judge whether the work atmosphere will become sour if the transition to JSP isn't all rainbows and unicorns that this boss thinks it may be. Heck, even people who code in Ruby on Rails have projects that suck, so the language isn't the holy grail of success.
posted by dgran at 11:43 AM on August 18, 2011

I've worked in both.

I prefer PHP for web scripting, especially compared to JSP in Tomcat. Web applications are not well-suited to a strongly typed strongly OO language.

That said, it can't hurt to learn something new; you can always move on later if it becomes intolerable.
posted by contrarian at 3:04 PM on August 18, 2011

"The thing is - I'm a damned good PHP developer (hell, I'm a god compared to the interviewees I've seen) but I know nothing at all about JSP and my few interactions with Java have left me completely cold. A large part of me is screaming that I'd instantly go from being a good PHP guy to the rawest, greenest JSP guy on the team."

JSPs are Java Server Pages. They're templates that are compiled into Java Servlets. They're also only a fraction of what you need to accomplish anything in Java. To give you an analogy you might understand, JSP is like Smarty.

But if you can't identify JavaScript files from things that are not JavaScript, I'd call into question your "damned good PHP developer" credentials. My advice is to never be the smartest guy in the room. Stick around, learn some new tech, and you'll be able to bill yourself as a manager who knows when to use lightweight scripting tools and when to break out the Enterprise Java toolchain. And being trained more platforms is better than fewer -- having more jobs to plausibly take helps in salary negotiation and your overall career trajectory.
posted by pwnguin at 6:01 PM on August 18, 2011

If your boss is prepared to keep you on for this big transition, knowing that it will take at least six months to get up to full speed...then go for it! It's a free education!

Probably half the "seam" of JSP programmers your boss found aren't that great at it either...Java is a very easy language to pick up and a very difficult language to master, so a lot of "expert Java programmers" really only know 10% as much as a true seasoned old hand.

PHP is great, but depending on it and it alone for your livelihood is a bad idea. Who knows, maybe a huge unpatchable security hole in PHP will be found tomorrow and ruin its reputation forever, or maybe someone will sue every PHP user into the ground for software patent infringement. Or something. It's always good to diversify. Plus, knowing Java gives you a foothold in business object applications or client/server applications or even Android programming, if the Web development business doesn't work out for you.
posted by miyabo at 9:00 PM on August 18, 2011 [1 favorite]

« Older It's time.   |   Help my workouts away from home! Newer »
This thread is closed to new comments.