Which Language To Learn?
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."
".NET languages"
.NET. There is a reason for that.
Do you really want to be a monkey for Microsoft? Most of Microsoft's own software is NOT written in
"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.
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."
When you're afraid to download music illegally in your own home, then the terrorists have won!
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.
You're asking the wrong question.
Here is part of the right answer.
http://pragprog.com/titles/btlang/seven-languages-in-seven-weeks
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.
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.
Don't thank God, thank a doctor!
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!
Red to red, black to black. Switch it on, but stand well back.
k&r
k&r
Googling...
http://en.wikipedia.org/wiki/The_C_Programming_Language_(book)
Cool, thanks.
I watched C-beams glitter in the dark near the Tannhauser gate.
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
I just pooped your party.
Expensive? http://www.mono-project.com/Main_Page .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.
Look, I don't use
Mandarin
...if you work so much indoors: http://www.vitamindcouncil.org/treatment.shtml
Adequate vitamin D may help prevent the flu, too.
A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
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.
moox. for a new generation.
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
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.
Jesus was a compassionate social conservative who called individuals to sin no more.
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?"
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.
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
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.
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.
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."
http://www.rootstrikers.org/
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.