Slashdot Mirror


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."

52 of 897 comments (clear)

  1. Really? by r0ach · · Score: 5, Insightful

    I mean, I don't see php or C++ going anywhere anytime soon....

    --
    -- www.RoachMcKrackin.com
    1. Re:Really? by dreamchaser · · Score: 5, Insightful

      Yep, I still see lots of posting for people skilled in those languages. Also, if the submitter were serious about wanting to stay relevant and employable he wouldn't just automatically discount the .NET languages. There are more and more jobs available for skilled .NET coders. Tying one's career to ideology isn't always a smart thing to do.

    2. Re:Really? by Anonymous Coward · · Score: 4, Insightful

      Yes, but being honest about your preferences can be helpful. I don't want to do .Net development myself either, or dig ditches, or clean toilets. There may be jobs in all three fields, but that doesn't mean they're for me.

    3. Re:Really? by bhcompy · · Score: 5, Insightful

      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. It's not like he's avoiding assembly because it's too difficult to learn or doesn't have the greatest job prospects. He's just cutting off his nose to spite his face.

    4. Re:Really? by bmo · · Score: 5, Interesting

      Ditch digging is shit labor and shit money?

      Have you _seen_ what a unionized heavy equipment operator gets?

      Or how about up in the frozen North where they dig for oil? $2K/Week TAKE HOME (canadian, worth more than USian now) just for digging a great big ditch.

      Yeah, I'll take digging a ditch right about now.

      --
      BMO

    5. Re:Really? by BeanThere · · Score: 5, Interesting

      Speaking of staying relevant. While there are certainly languages that are way down there in terms of jobs, I take the general view that if you keep yourself *good* at whatever language you choose, you will have a job. That is certainly true of PHP, of C++, and probably will stay true of Java for a long time. Still, I suppose not everyone can be motivated enough to stay top of their game.

      Submitter also doesn't seem to realise .NET isn't a language, it's a platform (more akin to an API than a language), and you can code for .NET using many different languages, and you can't code "in .NET", since there isn't such a language. I presume he made the common beginner mistake of conflating "C#" with ".NET", and I'll infer he meant C#.

      As anti-MS as I am, it seems odd to me to avoid C# if you like Java though, given it's probably more similar to Java than anything else. Also, from what little I know of it, technically it seems like quite a decent language (and the API much better than the old Win32 .NET replaces), with quite a decent development environment too. It didn't really replace the C++ 'niche' though, it replaced the VB segment ... C# is basically "the new VB"; rapid medium-skilled and medium-complexity development with a broader pool of (on average) less highly-skilled programmers to choose from (not dissing the good C# programmers that do exist, but it's certainly a more forgiving environment to less technically skilled programmers than say C++).

      If you're really good at what you do, then you can afford to be picky about your "ideology" and avoid a particular language. If not (which I more suspect to be the case here) then I would recommend to the question asker to best keep more options open. Otherwise it just seems more like a bad carpenter blaming the job environment.

      Me, I love C++, and I haven't noticed jobs drying up, on the contrary, my C++ skills continue to open interesting doors for me, I can literally go almost anywhere in the world.

      There are lots of C# jobs out there, and lots of C# programmers; while you can be an excellent C# programmer, I'd say it's probably slightly easier to 'distinguish yourself' in the C++ world.

      PHP is still also massive though, and will be for a long time.

    6. Re:Really? by wootest · · Score: 5, Insightful

      Okay, I'll bite: C# is a good language that makes more progress and is more eager to grow modern capabilities than Java is. None of the two will go away overnight, and C# isn't the very best thing ever, but I don't think people would have any problem giving it the credit it does deserve if Anders Hejlsberg worked somewhere else than Microsoft.

      I personally mostly prefer to code in other languages than C#, like Ruby, but I'd much rather work in C# than in Java and that's not for a lack of trying. I use and love ASP.NET MVC, which is open source, patterned on Rails and all about the code, with no "insert control here" wizards in sight.

      I know that there's a lot of people who drag a grid view onto a Web Forms canvas, hook up the data bindings, bill you the licenses of everything in the server stack and three weeks' work and then can't actually fix anything because they don't know how to code. Aside from conceding that Microsoft has largely traditionally gone out of their way to supply these people with software, I call Sturgeon's Law. Just please don't let that fool you into thinking that everyone who has touched or developed for a Microsoft product has the coding skills (and chair propelling propensity) of Steve Ballmer. If that's all they were capable of, I would be right behind you.

    7. Re:Really? by hal2814 · · Score: 5, Insightful

      I've dug ditches for a living and built houses for a living and done grunt work for a kitchen installation company. Whoever is considering sitting around in an air conditioned office and cranking out .NET code "shit labor" has a severe reality deficit disorder.

    8. Re:Really? by EastCoastSurfer · · Score: 4, Insightful

      I take the general view that if you keep yourself *good* at whatever language you choose, you will have a job.

      I agree with this, but in an even more general sense. If you are a good programmer then you'll always have a job. Language is largely irrelevant once you get into the larger groupings of languages. A good programmer is a good programmer regardless of the current tool they happen to be using at the time.

    9. Re:Really? by dreamchaser · · Score: 5, Insightful

      No, he is simply deciding that these particular principles are more important to him than a slightly better job prospect.

      Oh I have no problem with that, I was just musing that it can bite you in the ass. In this economy if you're worried about your prospects it's probably best to keep one's options open. I can respect someone who stands on principle, but principle doesn't pay the mortgage. It's not like every time you code in C# God kills a kitten.

      Or...does he! *eeeek!*

    10. Re:Really? by Anonymous Coward · · Score: 5, Insightful

      I've worked in various office enviroments for years as relatively unskilled labor, leaving for work in the dark, getting home in the dark, spending the entire day inside of a cold flourescent-bulb light enviroment that is always teedering on the edge of "full blown flu pandemic". Whoever is considering working outside preforming good honest work "shit labor" has a severe reality deficit disorder.

      Newsflash: the grass is always greener on the other side.

    11. Re:Really? by NFN_NLN · · Score: 4, Insightful

      I've dug ditches for a living and built houses for a living and done grunt work for a kitchen installation company. Whoever is considering sitting around in an air conditioned office and cranking out .NET code "shit labor" has a severe reality deficit disorder.

      Try debugging poorly written Perl code - there is such a thing as "shit labor" even in an air conditioned office.

      If those are the only criteria used, then by your definition solitary confinement in prison would be a sweet gig.

    12. Re:Really? by Bozzio · · Score: 4, Informative

      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.
    13. Re:Really? by Kagetsuki · · Score: 4, Insightful

      Wow, I'm not a big Microsoft guy but even I have to admit .NET is pretty damn clean and has some insanely good business app tie-up stuff. Look at what .NET offers you and really think about how much time it will take you to re-code that in PHP and JS - then consider how much more flexible the .NET interface will be. Unless your client is using something that really wasn't fitting to .NET in the first place you may be digging yourself a very large hole.

      And if you know ASM then just learn some basic C and go into embedded development. Particularly ARM native highly optimized software is in extremely high demand and capable developers are far fewer than most other breeds.

    14. Re:Really? by SuperKendall · · Score: 5, Insightful

      I don't like .Net much. But I'm going to back you up and say you have a great point, and that obviously none of the other people have REALLY had to do full time manual labor for work. I have before college, and it was a huge motivator to finish a CS degree... All the people here are imagining frolicking outside on a 70 degree day carrying a single 2x4, and forgetting that pretty much everywhere has summer and winter too, and that a construction worker these days is going to be hard-pressed to find a job at all.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    15. Re:Really? by Kagetsuki · · Score: 4, Informative

      Expensive? http://www.mono-project.com/Main_Page
      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.

    16. Re:Really? by afidel · · Score: 4, Insightful

      Shit labor is anything that makes you unhappy and/or fails to pay the bills. So long as you are happy and have your health, a roof over your head, and a full belly then the rest of it is just noise.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    17. Re:Really? by ScrewMaster · · Score: 5, Insightful

      No, he is simply deciding that these particular principles are more important to him than a slightly better job prospect.

      Oh I have no problem with that, I was just musing that it can bite you in the ass. In this economy if you're worried about your prospects it's probably best to keep one's options open. I can respect someone who stands on principle, but principle doesn't pay the mortgage. It's not like every time you code in C# God kills a kitten.

      Or...does he! *eeeek!*

      I agree. And there's nothing wrong with doing work that's not optimal in your opinion, but at least keeps the lights on, while simultaneously keeping an eye out for work that is more to your liking. It's not as if coding in .Net is amoral or illegal or something, not like selling your body to pay the rent (although some purists seem to believe that.) This is just his personal preference, a preference that he may very well find that he cannot afford. I'd rather not be doing Windows work myself, but you know what? I'd rather be employed than not, and besides, there are other aspects to a job besides the language you write in. In my case, I'm fortunate enough to have a great bunch of coworkers and a company that has good health benefits and retirement policies. Those count for a lot as well: a good coding gig is a complete package, not just your personal choice of programming language.

      Having been in this business since before it was a business, I tend to look more at results. Is the end product of what I'm doing worth the effort? Am I proud of what I've accomplished? Does my work benefit others in addition to me and mine? Maybe that's because I started out coding for the likes of the Rockwell PPS4 and the MCS6502, and have been through a lot of different projects, in different industries, on different operating systems in a multitude of programming environments. I also spent the better part of fifteen years working as a contact programmer, and in that world you take what comes along. You never know when the next contract will be approved, or if, so if you're wise you don't get too stuffy about it. Still, it did help that after establishing a reputation as a reliable developer, I had some of my bigger corporate customers designate me as their preferred custom software vendor for industrial projects: they would pass all incoming RFPs to me for evaluation first, and I got to pick and choose. That was kind of a high point in my career actually, but I had to work very hard to get there. The point is, if I had told them "I only work in these languages", I wouldn't have gotten that far.

      All languages have interesting aspects to their behavior, nifty features, unique drawbacks, and some are better tools for certain applications than others. I mean, I don't think of a screwdriver as being intrinsically superior to a pair of tweezers. For what each does, it does it well, and it doesn't hurt the user to know how to use both. The submitter sounds like something of a language bigot: I don't pay much attention to such people. "Oh, I wouldn't be caught dead working in that language. I couldn't possibly." If you love coding, you'll find something interesting in virtually any language, any project. A friend of mine once worked with a number of what he called "C bigots." These were guys that would spend three weeks hacking C just to put up a command button, and felt that that was only reasonable because, after all, the only real programming language was C. They wouldn't even consider anything else, and would laugh at the mere suggestion. Then C# came out ... suddenly they were huge fans of RAD and visual form design. My friend's comment? "Welcome to VB, you pompous assholes."

      A language is just a tool, something to be learned, and you can accomplish significant things in pretty much any language. So maybe it's harder with language 'x" vs language 'Y': think of it as a challenge.

      --
      The higher the technology, the sharper that two-edged sword.
    18. Re:Really? by Hadlock · · Score: 4, Informative

      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.
    19. Re:Really? by Anonymous Coward · · Score: 5, Insightful

      Digging ditches can be honest, rewarding work. Coding in any programming language can give one a sense of purpose. Answering phones and filing documents can be a good job. They can also be personal hell shit jobs... it all depends on the people you work with. If you enjoy the company of your coworkers and would at least go up and say "Hi" if you saw them out of work rather than try to hide, that's a good sign. If you can trust that you'll get proper credit if you help someone with their work, chances are you'll enjoy working there. If you are given enough tools, time and freedom to finish the job, but also paced out with a workload that keeps you interested, it doesn't really matter what the task at hand is. If your boss is incompetent, chances are none of the previous will be satisfied. Inadequate management leads to a higher emphasis on short term gains than long term growth, so a corporate culture of backstabbing and cutting corners develops whether you are performing brain surgery, digging ditches, programming in widgetfu, stocking shelves or designing nuclear reactor safety procedures.

      That being said, learning another language just to put it on a resume is easy. Reportedly once you know a couple programming languages adding another is just a matter of a week or two to learn the fine points of the syntax and how to navigate the libraries. What you want as a prospective programmer is a portfolio of projects you have worked on. Don't just learn a language to have another bullet point on the resume... show that you can apply it to solve a real life problem. More importantly, try to take on a moderately difficult project with multiple specialized parts... team leadership experience will get you further than any three or four languages. The project doesn't even have to come to full fruition if you can show that your skills were improved and you learned lessons in the process. This doesn't necessarily mean that you have to shoot for a management position, but you may become qualified for a job where you are given the freedom to show just what you can do, rather than a boss breathing down your back interrupting you from the coding zone every 25 minutes, changing specs last minute and then yelling at you when you can't release on schedule.

      That being said, it is up to you as an individual to determine what, if anything, requiring programming in .NET actually means about the kind of company you will be working for. And you might think you would be willing to take a $10,000-$20,000 pay cut to work at a place where your input is valued and you are given the tools that allow you to succeed, but really you end up making more money at those kind of places than you would if they were cutting corners left and right... because salaries and raises are one of the easiest things to cut off if they don't respect and value you anyways.

    20. Re:Really? by shadowofwind · · Score: 5, Insightful

      I can respect someone who stands on principle, but principle doesn't pay the mortgage.

      You're not "standing on principle" unless you're willing to risk important things, such as the mortgage, to do that. Otherwise you're choosing expedience over principle, and any stated regard for principle is mostly posturing.

      Not that there's anything wrong with that. And of course even a principled person has to make choices between important things, and may reasonably choose the mortgage, particularly if they have children.

      But sometimes its better for kids to grow up in an apartment with honest parents than in a house with people who will trade their society's future economic health for temporary comfort.

    21. Re:Really? by shawb · · Score: 4, Insightful

      The ones I've talked to always seem to be in good spirits... I think that's because after a week you get used to the smell and realize what society forced you to forget when you were in about second grade: poop is funny.

      I might go with veterinary technician at your local pound. Their job is pretty much to take care of abandoned pets for somewhere between a few days and a couple weeks. Make sure their medical needs are attended to. Advocate for individual animals to try to facilitate adoption... and in the end humanely euthanize about half the animals that come in the shelter. All while receiving derision from activists and the public at large, being attacked by the animals you are caring for, and making about as much money as someone on the Geek Squad. Oh, and that vet tech will also be cleaning up feces, looking at it through a microscope, and even learning to identify certain diseases by the smell. And then once summer comes... you start with the maggots and cuterebra larvae. And numerous litters of newborn kittens with no fosters available to feed them. And the countless extremely friendly, people pleasing, perfectly socialized dogs that will never be adopted because the media has spread the idea that pitbulls are inherently vicious.

      --
      I'll never make that mistake again, reading the experts' opinions. - Feynman
    22. Re:Really? by jbengt · · Score: 4, Funny

      I've worked in various indoor and outdoor environments, picking up dog droppings, surveying leaky plumbing systems, cleaning up after broken sanitary drain pipes. Anyone considering work not involving fecal matter "shit labor" has a severe reality deficit disorder.

  2. COBOL by Anonymous Coward · · Score: 5, Insightful

    Still in demand and it will not die.

  3. Looking in the wrong places by GaryOlson · · Score: 4, Insightful

    Industry constantly tells the Universities they need more C/C++ programmers for industrial systems. If all you are looking at is web based development, you are seriously limiting your options. I suggest a less restrictive filter on your search parameters.

    --
    Every mans' island needs an ocean; choose your ocean carefully.
    1. Re:Looking in the wrong places by royallthefourth · · Score: 4, Informative

      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.

  4. What jobs? by wilfie · · Score: 4, Insightful

    "What language makes the most sense now to get the jobs?" What jobs?

  5. Tiobe Index by bradgoodman · · Score: 4, Interesting
    See the Tiobe index:

    http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

    Java (as much as I hate it) - and C++ (as much as I lothe it) aren't going away or drying up - but they have flatlined

    You can see the "fast risers" like Ada (WTF?), Objective-C (i.e. iPhone/iPad), etc. - but these are generally very vertical (specfic-purpose) languages.

  6. Just a thought by RNLockwood · · Score: 4, Insightful

    Have you thought about one of the languages spoken on the Indian sub-continent?

    --
    Nate
  7. Chinese by asnelt · · Score: 5, Insightful

    I would go for Chinese.

  8. How about by Aggrajag · · Score: 5, Funny

    Try Finnish, Oracle hasn't bought Finland yet.

  9. Legalese by El_Muerte_TDS · · Score: 4, Insightful

    Win or lose, either way you'll earn money.

  10. Just C. by Anonymous Coward · · Score: 5, Insightful

    No language is more universal. No language is more direct. It will never die. It transcends trends. It is the only decent language to me, having tried way too damn many in my life and always left wanting until I return to C.

    It is the perfect language. People might gripe that it's somehow "obsolete" or missing "modern" features, but to me, that's part of its appeal -- you get to do with it exactly what you need to do, and that is the essence of programming to me. Leaving too much to the language makes me feel powerless and less in control.

    I love C. If it was legal, I'd marry it.

    1. Re:Just C. by wootest · · Score: 5, Funny

      I'll have what he's having. I could use a good high.

  11. Re:The one to rule them all by Patrick+May · · Score: 5, Funny

    Lisp already exists.

  12. Are you looking to start a flame war or for advice by Aron+S-T · · Score: 4, Interesting

    As someone who has worked in software development in various capacities for over thirty years, I find your comments puzzling and your concotenation of those three languages even more mysterious. If you are talking about the corporate world then please be aware change comes exceedingly slowly. COBOL and Fortran were king into the nineties. Now Java and C++ have replaced those two and aren't going anywhere- Java for enterprise business applications (with or without a web front end) and C++ for anything where performance is of the essence. Microsoft tried ton replace Java with .net and failed. Nonetheless, it still is the number two platform in the corporate world. So having skills in the enterprise version of Java and/or being a c++ wizard guarantees you a programming job for the next 20 years. I don't know where you have been looking, but jobs haven't fallen off in those two domains and won't.

    PHP is a whole different animal and really shouldn't be mentioned in the same breath as the other two languages. PHP was the choice language for web development for mom and pop sites (yea, yea I know, yahoo) and startup quick and dirty websites. Ruby became the platform that "cool" web developers came to prefer, so yes if you aren't interested in the corporate world, learn ruby and rails. Of course, since I pay less attention to that sector, maybe there is something newer and cooler these days.

    Python should be in every programmers tool set because it is such a versatile tool. Unfortunately it's not enough in most cases for a guaranteed job.

  13. You're asking the wrong question by Sarusa · · Score: 4, Interesting

    First, you're limiting yourself far too much. This seems like a 'narrow the parameters down so far that when I fail it's not my fault' question.

    A good programmer can pick up any similar language in short order. I won't say it's easy for a C++ programmer to pick up one of the LISP-likes, or vice versa... it's not. But a C++ programmer such as myself has little problem with Java other than the API bloat. I prefer Python to Ruby or Perl but can work in any of those. And PHP is the retarded brother of C, $so $that's $doable $it's $just $syntax $issues.

    You want to limit yourself to web backends? Fine, go Ruby and PHP, but what you really should be doing is just picking a language and learning the /algorithms/ and interfaces to actually solve real problems and learn how to work with third party things like PostgreSQL or memcached. And learn JavaScript. You can't do well on the backend if you don't understand what's going on with the frontend. It's all an ecosystem, and the interactions are far harder than the mere syntax of a language and its APIs.

  14. The problem is outsourcing not language by Billly+Gates · · Score: 4, Interesting

    Not to sound assholish, but if I were a PHB why would I want to pay you $40,000 a year to make intranet and internet sites when I can go to Vietnam or India and get the same job done for a few hundred bucks? Go to elance.com? They are filled with people paying $100 for formally $15,000 worth of work and people are dying to take these.

    Intuit offers customers a website for only $29.99 and $15 a month. Why hire you or your employer to write it?

    Do what is needed here at home which deals with business processes. Go back to school and get a supply chain management endorsement on your computer science degree and specialize in business process programming. This has been outsourced but is coming back because you can not outsource business processes duh. A business or software analysist is nice if you get an MBA. I would aim for that route. This is the new global economy and management positions are the only jobs left that are white collar and safe.

  15. From the 2009 OSCON language panel by Krishnoid · · Score: 4, Interesting

    One interesting point that stuck with me was that the Python evangelist sitting on that panel suggested learning JavaScript, by pointing out that it runs on something like a billion devices. It can even run on the back-end, using node.js -- watch near half-way through to see how it can even provide the same interactivity whether JavaScript is enabled or not, by converting client-side interactivity to server-side POSTs.

  16. D and Scheme by turgid · · Score: 4, Interesting

    I'm a C/C++ developer (mainly C) and I enjoy it. I don't enjoy C++, but I'm paid to use it, so use it I do.

    I've been dabbling with scheme for fun. It's very different to C, C++ or any of the other languages you mention, but a couple of hours reading about it and playing with it will really open your mind and be a bit of fun.

    By ignoring the .NET languages, you are obviously intelligent and discerning; you don't merely want to follow the heard into a boring, run-of-the-mill job. Good for you. 15 years ago I started to learn Linux when everyone was laughing at it (and me for using it) but I'm in a great position now.

    The other language I'm about to try is D which was deliberately designed to address many of the shortcomings of C++. It's a lot simpler and much more pragmatic that C++, by the looks of it. For a start, it doesn't pretend to be backwards-compatible with C, bit it is ABI-compatible. It has a clean syntax, fast compile times and some interesting concepts borrowed from ruby and python.

    Ruby is the scripting language I'll be looking at next. I learned PERL a while back for work, and it is a nightmare, but a very useful one. Ruby is much less of a nightmare and much better than PERL at what PERL was intended (notice I didn't say designed) for.

    Whatever language you choose next, pick an interesting one... How about creating your own for a challenge?

  17. Re:I avoided MS and work as .NET dev by b4dc0d3r · · Score: 4, Insightful

    I intentionally tried to avoid MFC, and learned it anyway. I avoided .NET like the plague, and work moved me right back to the plague.

    Since .NET 2.0 it's been a stable API, and if you're going to do web or web/desktop development, it's a good thing to have in your back pocket. And I'm saying this as someone who intentionally avoided it.

    I picked up Prosise's MFC book so I'd know what MFC was doing behind my back, and I dropped wxWidgets once it became clear it was an MFC "port" - if you don't believe me read the wx history. I intended to stay classic MFC all the way, and learn something else - anything else (but Java, that's my ideology and just as unfounded). Qt and... whatever the dominant web language was in 2001.

    I write .NET for a living. If nothing else, you can be read-only with .NET like I am with Java. I can search for an algorithm and find a public domain or otherwise compatible implementation, and if it's Java I can port it in a few minutes and have what I need - whether it's .NET or C/C++, which is where I prefer to work.

    Learn .NET, even if you are working in a full open source shop. There are lots of open source programs available only in .NET, and a free compiler (not the GUI, just command-line).

    I don't have mod points, so I'm just backing up dreamchaser (49529). I can write x86 assembly (att or intel), C (K&R, C89, C99), C++, VB5/66, VB.NET/C#, ASP 3, JavaScript, VBScript (cscript and IE), SQL (MS and Oracle) and lots of others less proficiently... so it's not like you can't learn multiple languages. In fact, the more you know the better. I write better .NET code because I think in assembly when performance matters. I write better ASM code because I think in OOP when code clarity matters. Yes, I probably need mental help, but the more you know the better you will be. The more ways you can think about something, the more solutions you can weigh when you have to actually implement something.

    Here's the best part. Learn what .NET does *wrong* and avoid implementing that in your apps, or avoid using constructs like that in whatever language you get paid to use. Learning .NET has made me a better C++ programmer, far more than any other experience in my life. Both for the good parts and the parts that could be better.

    You'll want to learn to use ILdasm if you go this route, no question. Obviously my vote is .NET.

    Search sourceforge for stuff in .NET languages, C# is probably going to be more familiar, download the free compiler from MS, compile, make changes, and start reading.

  18. I loathe Microsoft. I program in .net languages. by gestalt_n_pepper · · Score: 4, Insightful

    Seriously. My life is made hell by one stupid microsoft idiocy after another day after day (I manage a server farm of Microsoft VMs). The fact that they treat their development community like crap (Classic VB, f'rinstance) and abandon products with... abandon doesn't help much.

    Despite this, that's where the jobs are and all the crabbing of myself and the development community hasn't changed that. I hated MS in 2000. I hate it in 2010. I expect to hate it in 2020. And it's not going anywhere. Profits are up. Like the air, it exists. And I'll still be cranking out C#, ASP.net, or VB.net or whatever is called for.

    --
    Please do not read this sig. Thank you.
  19. Re:Don't pick just one by indeterminator · · Score: 4, Insightful

    +1.

    Don't learn the languages. Learn the the paradigms.

    Once you know a paradigm, picking up a new language under that paradigm will be just "yet another language", and you can learn one in a week (or 7 in 7 weeks). Of course, it will take more time to actually become fluent in language specific idioms, standard libraries etc, but those are not rocket science either.

  20. Re:There's your problem by Anonymous+Brave+Guy · · Score: 4, Insightful

    .NET development is taking off whether you like it or not.

    Sure it is, just like it was last year, and the year before. Get back to us when Microsoft actually rely on .Net and related technologies for their own flagship products like Office, so you know they won't declare those technologies obsolete when they want you to upgrade to the Next Big Thing like they did with Visual J++, Visual Basic 6, almost every database access technology they have ever published, almost every GUI API they have ever published, etc. The web technologies are looking like the next victims, given all the recent chatter about Silverlight and the resounding silence from Redmond where the defensive press releases are supposed to be.

    There are many languages you could choose to learn today. History teaches us that almost all of the good ones that don't come from Microsoft will still be around tomorrow. In fact, Microsoft are pretty much the only player in the game that does actively kill off popular mainstream technologies that are still in widespread use.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  21. Re:Desperate for a Job by HappyEngineer · · Score: 4, Insightful

    Don't get so emotionally fanboy about it.

    You only need one job. Web developers are needed by practically every company. I don't know what percentage of all that is Java vs C# but as a Java programmer I know that Java jobs are trivially easy to come by.

    In any case, objecting to C# is likely not an objection to C# itself. I personally think it looks like a great language. It's really objecting to all the stuff that's likely to come along with C# like Windows servers, IIS, VB scripts, IE only sites, Microsoft SQL Server, the attitude that cross platform development doesn't matter and a bunch of other crap that some of us don't want to have to deal with. If you don't have a problem with any of that stuff then that's your business. Don't blame anyone else for your eventual ulcers though.

  22. FORTRAN vs 4chan by gatzke · · Score: 4, Funny

    Mentioned FORTRAN to a student the other day and he thought I was talking about 4chan.

    Definitely Not. The. Same.

    1. Re:FORTRAN vs 4chan by Tumbleweed · · Score: 4, Funny

      Mentioned FORTRAN to a student the other day and he thought I was talking about 4chan.

      Definitely Not. The. Same.

      Yeah, one of those is full of people writing something that looks really perverted and gross, in all caps, and the other is 4chan.

  23. Re:Think carefully. Do you want to be close to MS? by turbidostato · · Score: 5, Funny

    "Do you really want people easily de-compiling your code?"

    Not!!! That's why I program in Perl, so people can't decompile even my *source* code.

  24. Re:ObjC is not purpose specific by bradgoodman · · Score: 5, Funny

    Yea, but saying "Objective-C isn't purpose specific - you can do iPods, iPads, iPhones *and* Macs" - is sort of like saying "We play *all* kinds of music - Country *and* Western!"

  25. Re:There's your problem by the-matt-mobile · · Score: 4, Insightful

    Get back to us when Microsoft actually rely on .Net and related technologies for their own flagship products like Office

    Nice little straw man you've built there. Sun never built Open Office or Solaris in Java, but you can''t be foolish to think that that was a vote of no-confidence in the future of Java. I'll judge .NET's success on two factors - employment opportunities and continued innovation and development from Microsoft. And let's face it - while a lot of copying and catch-up was done for the first few iterations of .NET, that was over and done with after the 2.0 release and ever since then MS has been blowing past everyone else out there. Visual Studio is arguably the best IDE out there, Linq was a total game changer, and ASP.NET MVC fixed the travesty that was the past decade of Webforms. The future looks really bright for .NET, and not so much for Java. But, things change quickly and I'm hoping that the Java community can pull itself together because MS does better when they are forced to compete.

  26. I changed my attitude completely. by gillbates · · Score: 4, Insightful

    The thing this recession taught me more than anything is that corporations have no morals, no ethics, and really, no just claim to fair treatment. They are not humans, and not deserving of anything more than that for which they pay. Not a dime.

    Corporations - particularly large, publicly traded ones - routinely use "the recession" as an excuse to treat their employees like dirt. Get off your high horse - bowing down to your corporate masters so you can "have a job" only screws yourself and your fellow employees. Do us all a favor and stop working - or at least demand the respect that you, a human being, deserve.

    The fact that the economy is in the toilet doesn't change the fact that you're a human being and deserving of the respect due a human being. If you think otherwise, well, you're just as much a part of the problem as the companies which exploit the poor economic situation.

    --
    The society for a thought-free internet welcomes you.
  27. Re:What about SQL? by Cytotoxic · · Score: 4, Insightful

    I think it's typically assumed that if you know how to program, you ought to be able to interact with a standard relational database. There's almost no prospects out there for someone who does SQL and nothing else...

    They actually have titles and everything. They are called DBA around my shop. The good ones are like old-school unix guys who wax poetic about their favorite shell script and kernel optimizations.

    If you are a PHP or other front end developer who creates SQL to power it, you are very, very likely not a SQL master. A good programmer with experience can create SQL databases and queries that work well. His code will be amateurish and inefficient to a good DBA. They do the same thing OS programmers do, delving into the deep inner-workings of the database engine to find all the little tricks, optimizations and security gotchas.

    Good DBAs tend to be more math oriented personalities than the larger developer population. Probably because they have to live in a world dominated by set theory and complex logic.

    BTW, if your experience with DBAs is a bunch of Microsoft Certified Professionals who are proud that they can create a stored procedure to fill a ticket - then you haven't been working with a good DBA. Those guys are the equivalent of the "web developer" who can use the GUI development environment to put a couple of forms together. A good DBA will take that query that you spent two days optimizing to get from 15 minute run times to 2 minute run times and get your results in milliseconds. Often the optimizations they make won't even seem logical to the untrained - until you watch how much faster they run. They are able to do this because they've spent years focusing on one platform.

      Still don't buy it? Ok, a quick example. One of my analysts was faced with a set of tasks that was taking too long and causing application timeouts. These tasks involved importing and parsing millions of rows and then joining to many tables of tens or hundreds of millions of rows in a highly transactional environment. After banging his head against the limitations of the database engine for a week or so, he finally decided that he needed to expand the functionality of the engine. So he added a couple of customization DLL's to the engine (written in C#) to add two new commands with the features he needed. He was able to get an already well-optimized run time of two minutes down to about 35 milliseconds. Oh, and my team is already finding lots of other places to use the new features he added, knocking a few percent off of the CPU load on the server and improving response times.