Does it still make sense to become a Java developer, or should I migrate to PHP or .NET?
-
Hi guys, I am planning on a career in IT and this is my final year in college. I visited a few companies with a view of becoming an intern, and the companies said I could be trained in either Java/J2EE, PHP, or .NET. I recently heard about the security flaw in the Java Virtual Machine that hackers the world over are exploiting. The US government of defense has adviced us all to disable Java. A security expert warns us that it could take up to two years for the flaw to be fixed. Others call for all programs to be shifted to languages other than Java. I have been reading Java for a long time and this has got me worried. Is there a future for me as a Java developer? Or should I migrate to PHP or .NET? I've heard people say that PHP is going really strong right now. But the elegance of Java makes me hesitant to withdraw from in it in its entirety. Could you experts please chip in with some career advice in this regard?
-
Answer:
It sounds like you need to expand your horizons a little further. The best programmers I know these days aren't working solely in Java, PHP or .NET - they may use one those languages, but they'll also be getting stuck in to dynamic languages such as Python, Ruby, JavaScript or Scala. If you take a look at the most popular languages for projects on GitHub you'll see that JavaScript and Ruby are in the lead, with Python neck-and-neck with Java and PHP in 6th place: https://github.com/languages Here's a general piece of career advice: try to avoid thinking of yourself as a "Language X programmer". Learning new languages is a great way of improving your skill as a programmer - learning Python will also have a big effect on how you program in C# or Java for example. The best programmers can pick up pretty much any language in a couple of weeks. It's also worth focusing on picking up related skills: SQL, HTML, unix administration, web security, network programming and version control for example. All of these are skills that will greatly enhance your career and help you land the most interesting development jobs.
Simon Willison at Quora Visit the source
Other answers
Java has, probably, the strongest ecosystem for serious server-side system implementation. The JVM has unparalleled performance combined with monitoring and management. The security problems you mention, are exploited on client side, in the browser. It's not commonly used there. The challenge with Java is lack of language features. If not Java, but its ecosystem has, probably, the best future. I would recommend to stay with Java and look at . Scala has a great combination of object-oriented and functional language. Scala uses the JVM, so it can utilize all Java libraries. In addition, Scala has great ecosystem by itself.
Sergey Zelvenskiy
Even in the hypothetical scenario that everybody abandoned further Java development tomorrow, the sheer inertia of legacy code should suffice to keep good Java developers employed for decades. It's much riskier to identify what kind of developer you are with a language. I think it still makes sense to become a Java developer, but that it may not be necessary to swear fealty to a toolchain - you can learn PHP, .NET and others without forgetting how to write Java.
Jan Christian Meyer
The security flaw you mentioned is unlikely to have any major impact on the future of the language in any significant sense. However I would advise you to be a little bit more careful and have a reasonable idea of what kind of programming you like and therefore attempt to choose internships which are consistent with the kind of software you would like to work with (either in terms of languages or in terms of nature of work eg. web, networking, data processing etc.). And yes, kindly move forward from I have been reading Java for a long time to where you've worked with a few programming languages, written quite a few programs and formed a few opinions of your own.
Dhananjay Nene
Here is my take on this. 1. Java is the main choice for all emerging platforms/products Eg. Cloud platform, Google's Android, Hadoop/Big-Data, Google App Engine etc 2. Except in Microsoft world, all other enterprise software is primarily based on Java. So between Java and .NET I suggest going with Java. Coming to Java versus PHP... PHP is used only in web applications. Not necessarily to develop complex back end logic. Eg. Insurance claims processing or content management or supply chain management. Where is Java is used both in backend as well as for web application development. PHP environments tend to be fast moving open source based start ups providing portals Java environments tend to be process oriented large corporations. So you need to choose not only based on the future prospects, but also based on what suits your style/culture. We some time overlook the importance us choosing a job based on the culture of company ....That's what ultimately makes you a happy employee or not. If you like open source, fast moving startup environment go with PHP/Rails/Python... If you like a steady job in large corporation go with Java.... ( There are lot of start ups using Java as well...But I am just generalizing based on majority usage) Good luck...
Srini Koganti
Best programmers around today are polyglots (use multiple languages depending on the problem and available libraries). You should learn how to program, not a language... As an answer above said "Use the tools, don't be one." A good programmer should have no problem switching a language anytime. Sure, there is always some learning curve (mostly in getting to know the tools and libraries of the new language), in some cases steeper (moving from functional to OO comes to mind), but eventually (usually quite quickly) you are able to start working with the new one. Sometimes a project would benefit from using several languages (for different problems) in combination (Javascript for front-end, Java for back-end, SQL for database, python for Deployment, whatever). Just educate yourself in understanding Data Structures, algorithms and understanding problems - once you know the important things, the specific programming language becomes just another tool in your toolbox (one of many).
Moshe Eshel
Look at your area , where you will work? ask around , speak with people on companies you think you may want to work for, what is the language most of them use? Are you willing to move to work? then expand your horizons , look at the next bigger city, your state, your country ,which are the languages most used there? Which are the ones you most like? take all those things into account and focus on the one you believe you'll be working with , but DON'T limit yourself to that, I really think you should study JAVA, .NET, PHP, Ruby, Python, Scala, haskel... HECK learn fortran! in the end is not about the language, is about the programmer... I say this because I've worked with all the three languages you mentioned and others to varying extents, I prefer .NET and C# over the three and for some years sucessfully earned a decent living from .NET, today i use PHP on my day job , and I've chosen that because Amazingly In my area a Senior PHP Developer earns more than a .NET Developer and a Senior Delphi developers earns more than a Java Developer (Delphi is everywhere here) and I'd rather bit of my toes then have to program Delphi again - so I've chosen the better for me, the middle road, I love web development as a whole not matter the language... So in the end it's a balance of what you like, what you want and what is available to you...
Jonny Desans
The vulnerability you're talking about is just a tiny hole and that too just at the client side only which I guess would be filled soon, so don't bother about it. And as far as learning a new technology is concerned, it is advised to learn one language or a technology every year once you're graduate/2-3 years of work experience or at the peak of your career. So why not learn python, its fast, open source, google's language with plethora of included batteries finding its use in web development, scripting and several other fields. Also python is in great demand in the emerging cloud computing technology.
Aman Mundra
Related Q & A:
- Should I study civil engineering or building engineering to become a developer?Best solution by Yahoo! Answers
- What does it take to become a web developer or designer?Best solution by webdesign.tutsplus.com
- Want to become a genetic engineer.What should I do?Best solution by Yahoo! Answers
- How much does a software developer make?Best solution by money.usnews.com
- How to become a database developer?Best solution by eHow old
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.