Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Education Java Perl Programming Python

Which Language To Learn? 897

LordStormes writes "I've been a Java/C++/PHP developer for about 6 years now. However, I'm seeing the jobs for these languages dry up, and Java in particular is worrisome with all the Oracle nonsense going on. I think it's time to pick up a new language or risk my skills fading into uselessness. I'm looking to do mostly Web-based back-end stuff. I've contemplated Perl, Python, Ruby, Erlang, Go, and several other languages, but I'll put it to you — what language makes the most sense now to get the jobs? I've deliberately omitted .NET — I have no desire to do the Microsoft languages."
This discussion has been archived. No new comments can be posted.

Which Language To Learn?

Comments Filter:
  • by Anonymous Coward on Saturday November 13, 2010 @07:33PM (#34218176)
    ".NET languages"

    Do you really want to be a monkey for Microsoft? Most of Microsoft's own software is NOT written in .NET. There is a reason for that.

    "Tying one's career to ideology isn't always a smart thing to do."

    Tying one's career to careful thinking is always smart. Do you really want people easily de-compiling your code? Microsoft is the British Petroleum of software. Eventually there will be impossible problems.

    A full, complete version of Microsoft's operating system, Windows 7, costs $300, about half the cost of some laptops. Eventually Microsoft's abusiveness will cause an Enron-style breakdown, in my opinion.
  • by Anonymous Coward on Saturday November 13, 2010 @07:33PM (#34218184)

    I'm also a former Java nerd.

    C# is a really, really nice language.
    In addition, if you're doing any desktop client development, WPF is a very, very easy way to do it.
    I think of it as Microsoft's answer to Flex. My productivity is probably 2x what it was in Java/Swing.

    The tooling isn't bad, the capabilities are great, the language is good. The only flaw is portability.
    And when you control 90% of the market, portability is really kind of a moot point.

  • Re:Really? (Score:3, Informative)

    by biryokumaru ( 822262 ) <biryokumaru@gmail.com> on Saturday November 13, 2010 @07:35PM (#34218190)

    Except that ditch digging isn't preferable because you make shit money and do shit labor. .Net is no different than any language he current programs in those terms.

    I think the whole point here is the definition of "shit labor."

  • by Anonymous Coward on Saturday November 13, 2010 @07:40PM (#34218214)

    There isn't a shit storm over Java. Multiple sources, including Oracle and Apple, have stated that the premium JDK stories were complete nonsense. However, Slashdot probably won't report that, because it prefers to rely on anonymous bloggers and misinterpreted "Tweets."

  • by royallthefourth ( 1564389 ) <royallthefourth@gmail.com> on Saturday November 13, 2010 @07:44PM (#34218240)

    When I graduated from college a little over 2 years ago, I couldn't find anyone hiring C programmers with less than 5 years of experience. Shops that work in PHP don't give a damn about anything (obviously), so that's where my career started and now web development is what I know how to do.

    Of everyone I knew in college and everyone I've met since then, only one of them actually has a job that uses C or C++ these days.

  • Don't pick just one (Score:2, Informative)

    by Anonymous Coward on Saturday November 13, 2010 @07:44PM (#34218242)

    You're asking the wrong question.

    Here is part of the right answer.
    http://pragprog.com/titles/btlang/seven-languages-in-seven-weeks

  • by Anonymous Coward on Saturday November 13, 2010 @07:53PM (#34218334)

    As much as someone might want to bash .NET, I find C# to be an excellent general purpose language. Plus you can use Mono. Everyday I'm finding more applications using the Mono Framework on a whole bunch of platforms: Android, iOS, Linux, etc.

  • by hedrick ( 701605 ) on Saturday November 13, 2010 @07:56PM (#34218364)
    You might want to spend some time on jQuery and other tools for building more interactive web UI's. While there are promising newer languages for the backend, it's not yet clear that they're going to take over from Java, PHP, and .NET. But the Javascript, client-based side of things is definitely growing and new tools are being developed.
  • by Anonymous Coward on Saturday November 13, 2010 @07:59PM (#34218390)

    People have been saying that for years, since .Net came out. And yet, .Net has never really taken off. Slowly growing, yes, but not at any point "taking off" as keeps being said year after year. It's sort of like saying this is the year of Linux on the desktop, it keeps being said but has never really happened.

  • Seconded... (Score:4, Informative)

    by SanityInAnarchy ( 655584 ) <ninja@slaphack.com> on Saturday November 13, 2010 @08:00PM (#34218396) Journal

    If all you care about is being the most employable, PHP/Java/.NET and JavaScript are your best options.

    As for something which has a future, I like Ruby. The mainstream implementations are all open source and (so far as we know) patent-free. I'd seriously consider deploying to JRuby these days, but it's reasonably compatible, so you certainly wouldn't be locked into Java.

    Python would be another good choice, but I think Ruby has it better in terms of the number of entirely distinct implementations. If Oracle sues JRuby out of existence, there's still the mainstream C implementation (MRI) with multiple interesting branches, MacRuby is looking interesting, and IronRuby strikes me as at about the stage Jython is.

  • Numbers of jobs. (Score:4, Informative)

    by Rufty ( 37223 ) on Saturday November 13, 2010 @08:23PM (#34218580) Homepage
    Quick, crude search on Monster [monster.co.uk].
    • 3727 Web
    • 2805 c
    • 2483 sql
    • 1441 Windows
    • 1115 .NET
    • 1069 c#
    • 1061 java
    • 985 javascript
    • 957 ASP
    • 812 linux
    • 745 C++
    • 666 unix(!)
    • 571 php
    • 426 flash
    • 365 embedded
    • 261 perl
    • 224 apache
    • 216 ARM
    • 193 python
    • 100 matlab
    • 65 ruby
    • 34 rails
    • 16 cobol
    • 16 fortran
    • 0 lisp

    So, don't bother with lisp. .NET is popular, but not enough to get over the M$ factor. And unix at 666 W.T.F.??? Looks like C and SQL, same as last decade!

  • Re:Just C. (Score:2, Informative)

    by Anonymous Coward on Saturday November 13, 2010 @08:26PM (#34218602)

    k&r

  • Re:Just C. (Score:3, Informative)

    by daeley ( 126313 ) on Saturday November 13, 2010 @08:41PM (#34218678) Homepage

    k&r

    Googling...

    http://en.wikipedia.org/wiki/The_C_Programming_Language_(book) [wikipedia.org]

    Cool, thanks.

  • Re:Really? (Score:5, Informative)

    by Bozzio ( 183974 ) on Saturday November 13, 2010 @08:42PM (#34218686)

    Yeah, I know this is a bit offtopic, but so is this entire thread.

    CAD is in fact still weaker than USD. It's almost tied, but not quite.

    For a shiny graph demonstrating this see:
    http://www.google.ca/finance?q=CADUSD [google.ca]

  • Re:Really? (Score:5, Informative)

    by Kagetsuki ( 1620613 ) on Saturday November 13, 2010 @09:12PM (#34218866)
    Expensive? http://www.mono-project.com/Main_Page [mono-project.com]
    Look, I don't use .NET either but it's a very very very capable tool for business apps and is one of the few things MS is really doing correctly. Choosing the right tool for the job is very important, and there are quite a few situations where .NET fits much more than most other packages.
  • by ohiovr ( 1859814 ) on Saturday November 13, 2010 @09:13PM (#34218878)
    Mandarin
  • Re:Numbers of jobs. (Score:3, Informative)

    by the eric conspiracy ( 20178 ) on Saturday November 13, 2010 @09:21PM (#34218932)

    Dice has a lot more programming listings than Monster.

    Java - 14824 .Net OR C# - 10496
    C++ - 5789
    Perl - 4664
    PHP - 2499
    Python - 2196
    Objective C - 1267
    Ruby - 1169
    Cobol - 638

    The fact is that regardless of what Oracle is doing the momentum behind Java is pretty strong and will take a lot to derail. It's also interesting that the C family of languages is utterly dominant.

    A good programmer will pick up multiple language expertise. If I was looking for a job I'd learn Java, C# and C++. I understand your aversion to Microsoft, but if it meant the difference between working or not working that sort of consideration has to become secondary.

  • by Paul Fernhout ( 109597 ) on Saturday November 13, 2010 @09:34PM (#34219030) Homepage

    ...if you work so much indoors: http://www.vitamindcouncil.org/treatment.shtml [vitamindcouncil.org]

    Adequate vitamin D may help prevent the flu, too.

  • Re:Really? (Score:5, Informative)

    by Hadlock ( 143607 ) on Saturday November 13, 2010 @09:42PM (#34219086) Homepage Journal

    One thing I've noticed (here in Texas anyways) is that bilingualism is rapidly becomming a requirement for retail/food management. Also, retail management is an ultra-high turnover job; after spending $20,000 to train a manager according to 150 exacting corporate guidelines, you want to recoup some of your investment. Paying them to keep from quitting their shitty job that you paid to train them for means paying them more than accepting a job at a better job with a better work environment. You at least get two months off each year.
     
    A friend of a friend makes 48K a year with full (including eye AND dental) benefits as an assistant manager with a HS diploma at a gas station, and this is in Dallas, with some of the lowest living costs in the nation.

  • by aristotle-dude ( 626586 ) on Saturday November 13, 2010 @10:09PM (#34219238)

    I don't see why you should worry about Java given that Apple and Oracle have both committed to the OpenJDK initiative.

    http://www.apple.com/pr/library/2010/11/12openjdk.html [apple.com]

    So this means that both cross-platform java desktop apps and web services are safe.

    I have to ask though, why the avoidance of .NET? If you are "working" for a living then you should be willing to work with whatever tools/languages are required. Leave zealotry at home and don't bring it into the workplace.

  • Re:Python or Perl? (Score:1, Informative)

    by zort ( 37229 ) on Saturday November 13, 2010 @10:28PM (#34219354) Homepage

    Im not going to discuss the technical differences between the languages. Because these dont affect if learning a language is a good career choice.
    The community of the language also can be a deciding factor, again i dont want to touch on that.

    However, I would like to touch on whats important about learning a language from a career point of view, and deciding where the right balance for you is in regards to...

    a. ease to find a job for that language (and location)
    b. how valuable that skill is in dollar terms
    c. what sort of company is using that language

    In the case of a. having thousands of available jobs in that language is both good and bad. On the one hand this means that there are lots of positions to apply for, it may also mean that there is competition for that skill - ie you get paid more. It may also be an indication that you will be an easily replacable monkey on a keyboard.

    The location of those jobs is a person decision. Obviously less jobs means less choice in this regard.

    The value of the skill is related to a. in that if there are lots of jobs and few skilled people, they will be valuable. However on the other hand, if there are lots of people and lots of jobs - again youve become a replaceable monkey on a keyboard, and if there are heaps of people you wont be getting paid much. This is basically what is happening with Java programmers.

    And jobs web sites list jobs, they dont list how many people are applying.

    ** So somewhere in the middle is the sweet spot for you. You want to have a skill thats rare enough to command more money, but not so rare that you cant find a job.

    Everyone is learning Java in uni, and Python is cool. Both those key words do well on job search sites. But will you just be another monkey?

    c. what type of company is hiring that skill?

    This can be important as well. Companies have a different culture which directly influences your happiness in life as you will have to be a part of it for much of your day.

    Now, Python is pretty hip currently. Its found a lot of interest with some large newer companies being very keen on it internally (ie Google, Facebook). The downside is that because everyone is coding Python, you become just another monkey with a typewriter. Just like Java programmers.

    Java is also hugely saturated. Plenty of programmers, plenty of jobs, not much pay.

    Infact, companies are intentionally choosing languages like Java and Python because they can get decent programmers very cheapily. Which is great for the bottom line and great for the share holder - but sucks for your mortgage.

    Im not exposed enough to ruby to comment on it. I think its popular in start ups, but im not aware of any who have really hit the big time. That doesnt mean that they wont or dont exist. However, keep in mind that the funk train of Rails has long since run out of steam. Every language has an MVC framework or 3, and they all copy each others features. Im going to go with some advice, that picking a career based on a framework's features is probably unwise.

    C will always do well. But you wont be programming web applications. Which you may perceive as a good thing :)

    Perl; there are lots of older companies with huge investments in Perl based infrastructure. Perl is out of fashion, but lots of Perl jobs are in places like Banks and Telecommunications companies. This may not appeal initially. But consider that a. these companies are going to be more stable long term, b. they are going to pay you more and c. youll have more choices. Perl has a very active community and has excellent documentation. Lots of jobs list 'perl or python' - but actually mean 'if you program perl thats cool, but youll need to learn python'

  • None... (Score:3, Informative)

    by billybob_jcv ( 967047 ) on Saturday November 13, 2010 @10:30PM (#34219368)
    You are thinking like a 20-something techie. Start thinking like a 40-something with kids. Learn how to be a leader, how to manage projects & customers and how the business operates. Look around your office and find the 45 year old developer grinding away in the corner - then ask yourself: "Do I want to be that guy in 20 years?"
  • by mikein08 ( 1722754 ) on Saturday November 13, 2010 @11:04PM (#34219518)
    If you want to assure your future, learn SQL, PL/SQL, Oracle Forms, and the Oracle report writers. And if you are so inclined become an Oracle DBA. Best is to learn all of it. You may not like the Microsoft products, but there's demand for it, so pickup .NET. Forget your anti-microsoft prejudices, they aren't helping your pocketbook one bit. Good luck.
  • by Anonymous Coward on Saturday November 13, 2010 @11:17PM (#34219578)

    That is a big Rock you've been hiding under. Microsoft moves more and more of their code base to .NET with each release. For example the latest visual studio had it's entire UI replaced with WPF (.NET) and it is the most responsive it has been since visual studio version 6. (Office and Windows get more .NET with each release too (have you seen windows 7?) .NET is Microsoft's future and they ARE eating their dog food.

    Watch Anders talk about the next version of c# with async moved into the language. This is going to make writing code that takes advantage of multiple cores etc so much easier and mistake free. .NET is so much more actively developed than Java its just sad (I loved Java).

    GP: The fact that you would throw it out based on some ridiculous ideology is crazy and decisions like that are what hurt peoples careers...

    Best of luck,
    J

  • by minkie ( 814488 ) on Sunday November 14, 2010 @12:29AM (#34219886)

    PHP is the retarded brother of C, $so $that's $doable $it's $just $syntax $issues.

    PHP and C are nothing like each other, beyond the most shallow typographic similarities of using curly braces and semicolons.

    PHP is a high-level (albeit, brain-dead) object-oriented scripting language. It has dynamic typing. Built-in strings with automatic memory allocation. Built-in hash tables and vectors (both bound up in some kind of bizarre composite container thingie they call an array). Exceptions. Run-time symbol lookup. Introspection. Built-in hooks to integrate with a web server front-end. In short, it's nothing like C at all in any way that matters.

    PHP is really Perl on steroids, with a marginally nice OO layer slathered on top.

  • by shutdown -p now ( 807394 ) on Sunday November 14, 2010 @03:19AM (#34220474) Journal

    Since .NET 2.0 it's been a stable API

    Not really. I mean, it is stable in a sense that things don't go away - kinda like AWT is still there in Java. But .NET moves on faster than Java, and every new major release adds brand new APIs, sometimes for the same thing.

    To be more specific: .NET 2.0 -> .NET 3.0: added WPF (supersedes WinForms), WCF (supercedes ASP.NET Web Services), and WWF. .NET 3.0 -> .NET 3.5: added LINQ as a feature; and boy it's a big one for someone not familiar with the concept from other languages! Added LINQ to SQL (partially supersedes ADO.NET). .NET 3.5 -> .NET 3.5 SP1: added Entity Framework, which supersedes LINQ to SQL; and WCF Data Services. .NET 3.5 -> .NET 4.0: added DLR (and "dynamic" keyword in C#/VB). Major updates to Entity Framework.

    That's without even mentioning ASP.NET MVC (because it's a separate product, not part of .NET) and Silverlight...

    You can keep using WinForms into 2011 if you want... but most new .NET projects I've seen use the new stuff, which is not surprising. This has both good and bad parts.

    The obvious good part is that the new stuff is usually better - often not right away (WPF was kinda meh when it was first released, though you could clearly see the potential), but eventually it matures. Due to .NET's faster feature cycle, you end up routinely using stuff which Java guys don't even dream of. It's literally 10 lines of C# code for the equivalent 100 lines of Java.

    The bad part is that you have to be able to keep up. If you fall behind the technology curve, you end up maintaining some legacy .NET 1.x project somewhere - which will pay the checks, but is usually quite boring as far as work goes. But then this isn't something that your average /. reading nerd would be worrying about, right?

    Anyway, it seems that the original question had an explicit "no .NET" request not because the guy has an ax to grind on the technical side, but because he does not want to support Microsoft; i.e. it's purely an ethical issue. And he is certainly fully entitled to that.

  • by Concerned Onlooker ( 473481 ) on Sunday November 14, 2010 @04:28AM (#34220710) Homepage Journal
    From Wikipedia: "Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Today, it is used primarily on Apple's Mac OS X and iOS: two environments based on the OpenStep standard, though not compliant with it.[2] Objective-C is the primary language used for Apple's Cocoa API, and it was originally the main language on NeXT's NeXTSTEP OS. Generic Objective-C programs that do not utilize these libraries can also be compiled for any system supported by gcc or Clang."
  • by lz2pt ( 1210056 ) on Sunday November 14, 2010 @06:57AM (#34221146)

    When I write in perl I can't even decompile the code I wrote myself 5 minutes earlier. It's eerie. It's like a one way hash for logic..

    Firstly, I'm not really a programmer, ok, I've done a bit of hacking around with Z80/6502/HC11/68K/PIC/FORTRAN/Algol/Pascal/Apl/Ada/C/Perl/Python and a whole bunch of other languages over the years, and am faffing around with Erlang to keep myself amused at present, but have done the occasional contract work (I *really* hate databases..)

    but Perl, ahh, great language to have some fun with.

    Best bit of weird Perl I ever wrote was a cgi beastie running on a LAMP server, same code handled both the GET and POST, tracked multiple sessions/whatever without using cookies, searched a database, displayed the results, usual sort of web BS.
    Main code was conceived over a couple of pints at the pub, written, tested, then up and running on a production system within four hours, a couple of minor tweaks in the first week of operation (mainly fixing html formatting snafus to fit in with the rest of the site), and that was it for something like three years.

    They want a modification done, they don't contact me but give the code to a wonk programmer who allegedly knew his stuff, I hear he spent a week trying to figure out what the hell the Perl code was doing, gave up, spent another couple of weeks reimplementing the same functionality on an IIS server with some MS thing (to this day, I still wonder why he didn't just use PHP). Btw, the code I supplied was documented, laid out fairly clearly and heavily commented, it was contracted.

    I'm perversely proud of this, even with comments and documentation, Perl can be a bitch if she wants..
    (I've a number of cron'd Perl scripts running on one of my servers as I type this, even though I wrote them, about two years ago now, I'm not quite sure I know *exactly* now what they're really doing - still, so long as they churn out the graphs and stats I require..)

  • by Deadplant ( 212273 ) on Sunday November 14, 2010 @02:26PM (#34223770)

    Begging for a job from a big corp is NOT the only option.
    It is not even a good option. It may seem like big corps run the economy but they do not! small business is bigger than big business.
    More than half of working americans work for small businesses and I would bet that they are the happier half.
    Don't settle for a job you hate, working for a faceless corp that doesn't give a sh*t about your welfare. If nobody offers you a job then make one for yourself.

"If it ain't broke, don't fix it." - Bert Lantz

Working...