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

140 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 biryokumaru · · Score: 3, Informative

      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!
    5. 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

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

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

      The winner and still champion: Fast-food worker.

      I could take standing and waiting on people all day. I might even be able to handle the low pay by shacking up with 10 other people in El Barrio. The shrill BEEEEEEEEPs would push me over the edge. Ditch-digging would be a dream. Maybe somebody suggest a worse job.

    8. Re:Really? by n0ahg · · Score: 2, Funny

      VB

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

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

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

    12. 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!*

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

    14. Re:Really? by SpryGuy · · Score: 3, Interesting

      Actually, no it doesn't. .Net is a decent platform, C# is a very good language, VS+ReSharper is a great development environment, and ASP MVC is a decent web development environment.

      Of course, if you're looking at classic ASP.NET, I can see how you'd think it sucks. But dont' judge the entire stack because of that.

      --

      - Spryguy
      There are three kinds of people in this world: those that can count and those that can't
    15. Re:Really? by Daengbo · · Score: 3, Interesting

      Two months after taking a job teaching math at the worst high school in the district, making $42k and working 7:30 - 7:30, I walked by a Wendy's posting wanted signs for a manager at $55k. Sigh.

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

    17. 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.
    18. Re:Really? by BasilBrush · · Score: 2, Insightful

      There's a curious contrast between your username and the sentiment in your post.

      He's not going to be out of work if he chooses not to use .NET languages. There's plenty of other work. But if he does get a job programming using a tool he despises, then that's going to negatively affect the quality of his work - and that could be really career limiting.

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

    20. 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
    21. 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.

    22. 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.
    23. 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.
    24. Re:Really? by Tacvek · · Score: 2, Interesting

      There are large companies out there that tell you to avoid the STL portions of the standard library whenever possible.

      That is usually based on an edict from back in the day when many compilers had issues with templates, and certain uses of the supplied STL would actually choke the compiler. On old compilers, even when the STL worked, the optimizer did a terrible job on templated code, so the code was far less efficient than code that avoided it.

      It also stems in part in many places from the fact that the average coder with an associate's degree may never have even touched the STL in any class. I mean I went to very good private four year college, and the level of C++ taught there was not great, considering all that should be taught.

      I've learned the intricacies of templates, how to prperly handle const-correctness, and other "advanced" topics outside of school, in my case mostly thanks to the Cline's C++-FAQ-Lite, and my following of the comp.lang.c++, comp.lang.c++.moderated, and comp.std.c++ newsgroups for several months. Oh yeah, Meyers' Effective C++, More Effective C++, and Effective STL were also critical in developming my undertsanding of some of the more dark corners of C++.

      --
      Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
    25. Re:Really? by rtb61 · · Score: 2, Insightful

      Don't discount the outdoor trades so readily. The only reason I went office was at that time there was a glut of trades and an absence of office, so building estimating etc. rather than carpentry or electrical. Of course the office enabled me to get on early on computing that was the only real benefit.

      As for shit coding environments and good coding environments, that is tied to creativity and that has a real impact upon performance. If someone hates M$ and .net then it will cripple the creativity and their productivity will be terrible, fact of life.

      As for computer languages learning the new hotness is always a good idea so ruby and ruby on rails seems to be gaining popularity catch with that is, it's gaining popularity because it is easy to learn.

      Sometimes the older archaic languages can be more profitable (not many people left to maintain existing systems) but the reality is simply check the adds wanted and see where the demand is. A bit more geeky thing might be to check past history for the last 6 months to see how demand has changed. The other thing is location, some languages work better in some locations than others ie company type locations.

      The question seems to be more which language will replace Java and trust of Oracle zeroes out as they kill the language by having clumsy fools trying to monetise it.

      --
      Chaos - everything, everywhere, everywhen
    26. Re:Really? by oldhack · · Score: 3, Funny

      They really should file a class-action suit against Larry for all the gross mental anguish, you know. It's a crime against nerds, really.

      --
      Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
    27. 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.
    28. 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.

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

    30. Re:Really? by oldspewey · · Score: 2, Funny

      The question seems to be more which language will replace Java and trust of Oracle zeroes out as they kill the language by having clumsy fools trying to monetise it.

      I don't know about everybody else, but my money is on Esperanto.

      --
      If libertarians are so opposed to effective government, why don't they all move to Somalia?
    31. Re:Really? by bhcompy · · Score: 3, Insightful

      No one ever said teaching was rewarding from the start. The reward is the public retirement, the overall benefits package, the job security, etc. I know plenty of teachers that have spent their whole lives teaching in one school or one district and are set for life whenever they choose to retire(and a lot of times they do not because they enjoy their work). I know absolutely no one that has worked their entire career at one company as an non-owner/non-founding employee. That's the benefit of being the 42k math teacher working 12 hours a day for 9months a year. And your wage is more than I made working the same hours doing entry level tech support 10 years ago. 42k isn't a "bad" wage, even in Los Angeles, especially in a profession where wages grow by union contract

    32. 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
    33. 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.

    34. Re:Really? by Billly+Gates · · Score: 2, Insightful

      Try working a shitty job and being broke and destitute. I have done that ... and close to that right now.

      Believe me you wont care what language it is as long as you are out of that horrible situation. Be happy you have a job in a nice air conditioned office. Wanting respect and earning a paycheck can bring great happiness, creativity, and great productivity. What you acomplish is more important than the language you love. People are so spoiled today and a reality check for those unemployed from 2008 when the economy tanked to today will show it. I bet these out of work Linux programmers would drool to work in an office using VB.NET and not have to sell printers at Best Buy.

    35. Re:Really? by thoughtsatthemoment · · Score: 2, Insightful

      SO you are saying C++ was wrong before the inclusion of STL?

    36. Re:Really? by IICV · · Score: 3, Insightful

      You do realize that there are other things teachers do outside of classtime, right? Like, say, meeting with parents, staff meetings (you know those things? The same kind of bureaucratic meetings you have in an office? Teachers have those too - they don't just disappear as soon as school ends), meeting with students, and of course someone has to run detention though you can grade during that.

      And then you're assuming that it takes a trivial amount of time to grade homework. It seriously doesn't. Most classrooms nowadays are pushing 30 students. Assuming he teaches five periods worth of class per day, that's 150 pieces of homework to grade. Assuming each piece of homework takes two minutes to grade (tip: it doesn't*), that's a full five hours of grading to do once a week, again assuming there's only homework once a week (in a lot of classes it's assigned more often than that)

      And then there's all of the bureaucratic busywork to do. There's all sorts of continuing education, advancing education (a lot of teachers are working on a masters in something or other, since free tuition somewhere is often one of the few perks of the job), and God only knows what else the administration comes up with.

      And then, when you're done with all that, you need to go over your lesson plan for tomorrow one last time, just to try and teach them a little bit better.

      *it probably averages more like five minutes even for simple math assignments - sure, marking something right is easy, and marking something wrong is easy, but what about partial credit? What about bad handwriting? These are kids who've just barely learned how to write a few years ago scribbling shit down in the few minutes between classes because they forgot to do it last night - it doesn't lead to legible handwriting

    37. Re:Really? by elbobo · · Score: 3, Insightful

      I worked doing manual labour, and really heavy stuff at that, for maybe five years in my late teens, early twenties. It was, on balance, just as enjoyable, if not perhaps more enjoyable at times, than being a programmer. It just doesn't pay well enough.

    38. Re:Really? by BeanThere · · Score: 2, Insightful

      C# is not a beginner or medium level language. It requires great skill and some of the best C# programmers I know were originally C, C++ and Java developers.

      Sigh, you didn't really read what I wrote properly, or you don't understand the complexity differences. Being *good* at C# requires great skill, sure. I'm not taking that away, and I have met some very good programmers who simply liked .NET. Being mediocre at it requires very little skill though. The entry level is much lower than C++. That's the whole point of it, it's by design. It's easy to ignore some of its more advanced features, like reflection. You don't have to understand things like pointers to start writing applications. My main language is C++, but I am doing a project in .NET at the moment. Sorry, but it is an absolute breeze compared to C++.

      While it true that there are plenty of bad C# developers; that is pretty much the same in all languages.

      Nope, the proportions ARE different for the simple reason I stated, C++ is far less *forgiving* to newcomers. With .NET, you can open the development and start coding without much difficulty. With C++, unless you know what you are doing, you will struggle to get your programs to compile, and this will continue for a long time until you become good. The typical 'first experiences' in C++ are 'I can't get anything to compile', even for someone good at another language, like .NET. Whereas if you are good at say C++, it's all downhill from there; a good C++ programmer will get up and running quickly in .NET. A 'bad C++ programmer' won't last at all. And to be a good C++ programmer, you practically have to have an understanding of what assembly language the compiler generates. C++ has been jokingly referred to at times as 'the most advanced assembly language'.

    39. Re:Really? by terjeber · · Score: 2, Insightful

      You're not "standing on principle" unless you're willing to risk important things

      At the same time, there is a huge difference between standing on something on principle and being a hard-headed ignorant religious fool. He is a hard-headed ignorant religious fool.

    40. Re:Really? by man_of_mr_e · · Score: 2, Insightful

      Not to mention, nobody ever says "Someone has a case of the mondays". Shit, no, man. I believe you'd get your ass kicked sayin' something like that, man.

    41. Re:Really? by ScrewMaster · · Score: 3, Insightful

      get real and face a few facts.

      Something .NET proponents seem unable or unwilling to do. Most .NET apps would be better written as web apps and the remainder in C, C++, ObjC or something like Vala (I think Mono can do AOT compilation -- yet it's still a poor choice). Welcome to the real world where few except "pompous asshole" "language bigots" are placing long-term bets on the .NET platform.

      I wasn't promoting .Net, and in fact I'm not a .Net proponent. I was just saying that limiting one's knowledge of one's own field isn't always a winning move. That's especially true when economics are a factor. I'm glad that you are able to work in the language(s) of your choice, and maybe don't have any real economic considerations to deal with. The rest of us don't live in that perfect world (I know I don't ... I have people whom I care about, and who depend upon me.) And, as others have pointed out, .Net is, like it or not, popular in the corporate world and if what you need is a job, you do what you have to do. Maybe, if you're a Unix/Linux/Solaris guy you get to work in an environment that suits your personal preferences/prejudices. Or, maybe you have bills to pay ... and you don't. That's life. It's not right or wrong, it's just the way things are.

      There are a lot of people that have decided that their way of looking at the world is the only one, and don't accept that their might be another way. Maybe not a better way, necessarily, although "better" is a loaded term at best. That's true of any of the major camps: .Net, LAMP, you name it. If you took anything away from my post at all, it's that I believe that steadfastly refusing to look at what the other side has to offer is nothing but self-justified, willful ignorance. Even if after studying another approach you still find it wanting, well, one should know thine enemy.

      --
      The higher the technology, the sharper that two-edged sword.
    42. Re:Really? by ultranova · · Score: 2, 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.

      If you have the strength for it, digging ditches is fine. You spend the whole day outside, get plenty of exercise, and have an SI-standard unit (meter) to measure your accomplishments. You're also free to let your mind wander anywhere you please while your body moves on autopilot.

      That said, if you don't want to dig ditches, cranking out .NET code might not be the smartest career move, since the skills you acquire are tied to a single company and their fortunes and decisions. Microsoft does not deal in good faith. If they invented .NET, they did it only to tie people to their platform. If they allow Mono, they allow it only to snare people to a trap before they spring it (sue Mono to oblivion). If you've spent the last 5 years cranking out .NET code when they do, you're going to have serious problems competing against the guy who's spend them doing Python or C++.

      Now excuse me, but my shovel needs polishing.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  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.

    2. Re:Looking in the wrong places by diskofish · · Score: 2, Insightful

      Makes sense. With the explosion of the web and internet, where do you think most of the jobs are? EVERY company needs to be on the web, and many companies need custom software for internal or external use.

  4. To counter a shrinking job market? by Cidolfas · · Score: 3, Insightful

    80% or so of all web-backend postings I see are PHP/Java/.NET or the like. The other 20% are all Python (usually Django, though I prefer Pylons myself) and Ruby. If you want to pick up another language just so you can be future-proof, go with Ruby. I haven't learned it yet (I do javascript myself, and use PHP or Python when I do backend), it seems to be a more common request than any of the others you listed.

    --
    I am become /dev/null, destroyer of data.
    1. Re:To counter a shrinking job market? by sir+lox+elroy · · Score: 2, Interesting

      And some of us still love using Perl for our web backends, or other projects, even today. :-)

      --
      Kosh: "Understanding is a 3 edged sword, your side, their side, the Truth."
  5. FORTRAN by betterunixthanunix · · Score: 2, Interesting

    Same as above.

    --
    Palm trees and 8
  6. What jobs? by wilfie · · Score: 4, Insightful

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

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

  8. There's your problem by Pinhedd · · Score: 2, Insightful

    .NET development is taking off whether you like it or not. With oracle serving up a shitstorm over Java it's only going to gain more traction. Omitting an entire language and framework simply because it's developed by Microsoft is a pretty poor reason especially when it's gaining use in the very type of work you're looking for (web-based back end stuff). Honestly if you're looking for a job, consider learning C# and familiarizing yourself with the .NET framework

    1. 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.
    2. Re:There's your problem by Anonymous Coward · · Score: 2, Informative

      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

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

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

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

    --
    Nate
    1. Re:Just a thought by sthomas · · Score: 2, Funny

      Yes, they should "do the needful."

  10. Chinese by asnelt · · Score: 5, Insightful

    I would go for Chinese.

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

    Try Finnish, Oracle hasn't bought Finland yet.

    1. Re:How about by indeterminator · · Score: 3, Funny

      Unfortunately, Finnish is only effective for instructing ~0.1% of world's population. It is particularly inefficient when yelled over Skype to an Indian outsourcee.

  12. Desperate for a Job by hinchles · · Score: 3, Insightful

    I've deliberately omitted .NET — I have no desire to do the Microsoft languages.

    Poster obviously has no desire to be employed either. Love it or Hate it C# is pretty much the only langauge in demand by big business these days in the UK unless he's perfectly happy doing small freelance jobs etc which PHP is fine. Other languages he's mentioned are all pretty much unused apart from in the domain of nerds but certainly not by the majority of the companies recruiting. Ironically enough I reskilled from C# and other .NET oddities to PHP a few years ago purely out of personal preference.

    1. Re:Desperate for a Job by Angst+Badger · · Score: 3, Interesting

      Poster obviously has no desire to be employed either. Love it or Hate it C# is pretty much the only langauge in demand by big business these days in the UK unless he's perfectly happy doing small freelance jobs etc which PHP is fine.

      I've seen people make remarks like this -- apparently in all sincerity -- for the last twenty years, and they're generally wrong, usually because they're generalizing from personal experience, which is almost always narrower than you think.

      The fact is that if you aren't too picky, there are always openings for programmers in about a dozen languages. The proportions vary from time to time and by industry and company size, but no language commands more than a modest plurality at present. There are still openings for people to write new code in COBOL and RPG if you know where to look.

      The key is not being too picky. If your main concern is making as much money as you can, your choice of languages and platforms is going to be constrained by that requirement. If you're content with making a comfortable but not fantastic middle-class income, you can count on finding a job coding in all but the most obscure languages. It will just take longer to find and probably pay less than the latest high-demand stuff. On the bright side, there will be less competition for the job.

      In the end, it just depends on what matters most to you.

      --
      Proud member of the Weirdo-American community.
    2. 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.

  13. Objective C by drumcat · · Score: 3, Insightful

    Last I checked, being able to create apps with native hooks on the Mac platform is the hottest shit steaming right now.

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

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

  15. 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 Anonymous Coward · · Score: 2, Informative

      k&r

    2. Re:Just C. by daeley · · Score: 2, Informative
      --
      I watched C-beams glitter in the dark near the Tannhauser gate.
    3. Re:Just C. by wootest · · Score: 5, Funny

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

  16. Scala, Haskell by j1m+5n0w · · Score: 3, Interesting

    If you want to learn something new without throwing away all your java experience, you might try Scala. I've heard good things about it (though I have no personal experience with it myself). As functional languages go, I prefer Haskell [1] as my default problem-solving language. You might have trouble finding a Haskell job, but it will teach you things that will be relevant in other languages.

    Erlang is an interesting language. I view it as kind of a one-trick pony, but for distributed systems I've not seen anything better.

    [1] Learn you a Haskell for great good

  17. Ruby and Node.js (Javascript) by kainosnoema · · Score: 3, Interesting

    The fastest growing, hottest languages on GitHub right now are Ruby and Javascript. Partly that's due to the amazing Node.js server-side platform that runs on Google's V8.

  18. Think carefully. Do you want to be close to MS? by Anonymous Coward · · Score: 2, Informative

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

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

    2. Re:Think carefully. Do you want to be close to MS? by thePowerOfGrayskull · · Score: 2, Insightful

      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.

      Look, I'm not fan of .net (or the company) either - but dude, it's been around for a decade now; usage isn't declinging and just like any actively developed product every couple of years brings new improvements. It's great to say th ere will be "impossible problems" - but if we're realistic, we see they will be no more impossible than any others. As far as de-compilation: wait, I thought information wanted to be free. Yeah, I know that was a straw-man - it just slipped in. Anyway... you could say the same about any language that compiles to bytecode -- singling out Microsoft because you don't like their practices is just silly. (It's no harder or easier to decompile .net than java -- though interestingly the tools to decompile .net are more mature, it's true -- stilll obfuscation goes a long way.)

      A full, complete version of Microsoft's operating system, Windows 7, costs $300, about half the cost of some laptops.

      And an OEM version - readily available - costs < 100, so what's your point again? That some of the tools we use cost money? And this is a reason not to use them?

      Eventually Microsoft's abusiveness will cause an Enron-style breakdown, in my opinion.

      First BP, now Enron. Dude, really? I suppose I should be thankful you didn't throw a couple of "M$"s in there. Perhaps you could next detail a breakdown of what or the type of impossible problems we should be expecting. Until then, you're just a troll. And one that I'm feeding, at that.

    3. Re:Think carefully. Do you want to be close to MS? by smash · · Score: 2, Insightful

      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.

      Your point being? If you're billing your time at $150/hr, that is 2 hours of work.

      People harp on about the cost of Windows, etc but in the real world it is often irrelevant if it saves a couple of hours of time.

      --
      I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
    4. Re:Think carefully. Do you want to be close to MS? by Jeremi · · Score: 3, Insightful

      Most of Microsoft's own software is NOT written in .NET. There is a reason for that.

      Is it because most of Microsoft's own software was written before .NET was released?

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    5. Re:Think carefully. Do you want to be close to MS? by lz2pt · · Score: 2, Informative

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

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

    Lisp already exists.

  20. Snobs don't get jobs by ThatMegathronDude · · Score: 2, Insightful

    You need to drop the Microsoft hate if you actually want to be employable.

    1. Re:Snobs don't get jobs by grcumb · · Score: 2, Insightful

      You need to drop the Microsoft hate if you actually want to be employable.

      Bullshit. I stopped supporting Microsoft servers in 1999, and I've never been without work. More to the point, all the best jobs I've ever had came after that point in time.

      It's not hate to want to be able to control all of the environment you're coding in. It's not hate to become sick of telling clients that they'll have to live with a bug until the next product cycle, because $VENDOR doesn't want to fix it just for them.

      It is most definitely not hate to want to take pride in the work you do, and to be able to be sure of that, because it's source code all the way down.

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
  21. 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.

  22. Don't pick just one by Anonymous Coward · · Score: 2, Informative

    You're asking the wrong question.

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

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

    2. Re:Don't pick just one by Bozzio · · Score: 2

      Yes, thank you.

      I'm surprised it took so long for someone to say that.

      If you're a professional developer it shouldn't take you very long to pick up a new language anyhow.

      Make a list of languages in demand, pick a small project for each (bigger than "Hello world") and spend a weekend on each one.

      I did that with Python, C, C++, and C# a while ago and it really paid off. My work with C# caught someone's eye and I got recruited.

      --
      I just pooped your party.
    3. Re:Don't pick just one by melonman · · Score: 3, Insightful

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

      I know people who take the same approach to natural language. After all, Spanish and Italian are very very similar, aren't they? The reality with natural languages is that "all languages are the same" thinking enables you to abuse several cultures without actually understanding any of them.

      And I think that to a large extent the same thing goes for programming languages. For example, if one of your "paradigms" is "object-oriented", does learning Smalltalk really prepare you for making best use of OO in Java or C++? Or vice versa? The inventor of Smalltalk and OO certainly doesn't think so.

      I spent some time a while back trying to explain Scala to a Java programmer. His response was "It's just like Java." Well, Scala *is* just like Java, as long as you ignore the huge and central features that are not like Java. When I started to show him those features, generally in a "replace a page of code with one line" sense, his response was "I don't like it", and that was the end of the conversation. That, in practice, is what "learn 7 languages in 7 weeks" looks like.

      My defining experience in this context was observing a government contractor whose preferred language was FORTRAN, who was told he had to code in Lisp. I would not previously have believed that it was possible to write Lisp as if it was FORTRAN, but that contractor proved me wrong. And, to be fair, I find that I have to make a conscious effort not to write C++ as if it is Lisp, eg "everything on the stack and screw the efficiency".

      "7 languages in 7 weeks" only works if you stick to programming with the features that can be found or kludged in just about every language. Nowadays that's going to mean procedural code with loads of variables and a bit of OO for accessing libraries. It works, but it's a recipe for terrible, terrible code. But, hey, it will be equally terrible in 7 different languages!

      --
      Virtually serving coffee
  23. Re:What about SQL? by royallthefourth · · Score: 2, 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...

  24. I've deliberately omitted .NET by nurb432 · · Score: 2, Insightful

    Then you have just limited your career. But don't let me stop you, the rest of us want jobs too.

    --
    ---- Booth was a patriot ----
  25. Re:The one to rule them all by Shikaku · · Score: 3, Funny

    You mean Haskell right?

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

    1. Re:You're asking the wrong question by minkie · · Score: 2, Informative

      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.

  27. .NET by Chaseshaw · · Score: 2, Insightful

    If you knew .NET I'd have a job for you right now. Love it or hate it, MSSQL is still the fastest kid on the block, and its .NET reporting tools aren't going anywhere anytime soon.

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

    1. Re:The problem is outsourcing not language by Bengie · · Score: 3, Interesting

      hah, outsourcing... horrible idea. well, you get what you pay for.

      The job I recently came into had some outsourced internal tools to India. These were tools that could save us time and offer useful functionality, but were not central to our job. Over time, some of these programs became fairly common. Well, these programs had a long turn around on added features and the code was huge. Easy to read, well documented, but lots of it.

      Eventually, with the market down turn, my company dropped the India team. Someone else had to pick up fixing bugs when found and adding features. Eventually that person moved on and the job got passed down to me. I decided to start from scratch because the logic was hard to follow. The code was clean, but the logic was horrible.

      They typically took 2-4 weeks to add features or fix bugs. In 1 week, I flow charted the program and reduced the logic to something more flexible and natural to follow. In 1 month, I had a re-write that I could debug every bug so far in under 15 minutes and added new features in under a day. The code scales crazy better to. A small dataset runs about 250 times faster, a larger dataset runs about 1200 times faster and the memory allocation is about 1/5-1/10 the amount. The server admin likes that the app doesn't bog down the servers anymore. From 45min down to 10 seconds. My code is C# .net and their code was VB .net.

      Well, that's my experience anyway.

  29. Chinese by microbee · · Score: 2, Insightful

    You should learn Chinese.

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

  31. think about the client side of the web by hedrick · · Score: 2, Informative

    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.

  32. Seconded... by SanityInAnarchy · · Score: 3, Informative

    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!
  33. 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?

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

  35. 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.
  36. Numbers of jobs. by Rufty · · Score: 3, Informative
    Quick, crude search on Monster.
    • 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!

    --
    Red to red, black to black. Switch it on, but stand well back.
    1. Re:Numbers of jobs. by the+eric+conspiracy · · Score: 2, Informative

      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.

  37. Why be language specific? by gstovall · · Score: 2, Insightful

    I've always been puzzled about the focus on languages. A language is just a tool or a palette. The important thing is being able to design software in a clear and efficient manner. Languages can typically be picked up in a very short period of time. I understand that the people who only understand buzzwords are blindly seeking a particular match, but if they were smart, they would look instead for a person who was a skilled designer of software, rather than a person who knew a particular language.

    In my career so far (I'm sure that many others have a much broader list), I've had to write software in: assembler (IBM mainframe, 6052, 8085, Z-80, 8051, Z-8, 68K, X86), BASIC, FORTH, FORTRAN (4, 66, 77), RATFOR, lisp, C, C++, PASCAL, PROTEL, perl, tcl, python. Java I've written a couple of example programs in, but have never written in it professionally. But I presume it is no harder to become proficient at than all the others. ADA is a good language; people are starting to realize the value of the rigorous protections it applies. But yeah, we were writing ADA code back in 1995, and it didn't seem widespread outside the military at the time.

  38. Decide what you want. by CFD339 · · Score: 3, Insightful

              If you want to be another common fish in a huge ocean, learn C# and sharepoint development. If you want to be hip and cool, but are willing to compete with low price coders from developing countries, go with LAMP development. If you want to be a big fish in a small pond and can self promote and communicate well enough to pull it off, pick something painful but useful to corporations ( Rational / Websphere / Oracle / Siebel / SAP development ).

    I do most of my client based work using Lotus Domino as a back end server and data platform. The development IDE is freaking horrible compared to visual studio or pure eclipse. The documentation is poor at best. There are a lot of workarounds you have to know. In many respects, it's a terrible thing to have to learn. HOWEVER, I've been doing it for a long time and am very very good at it. I'm never short of work, and I can accomplish things with it for my clients in less time and at less cost than any other platform I've ever found. I also use visual studio to build desktop applications, c++ to write custom modules for my Asterisk servers, javascript for web front end stuff, bash shell scripts for linux back end stuff, etc etc etc.... Right tool for the job and all that.

                  I know by writing that I'll draw a bunch of crap from cool kids that hate the platform I use to make a living, but I'm willing to bet most of them would trade annual incomes with me in a heartbeat if I gave them the chance. I've managed to have my own business for close to 18 years by focusing on what works rather than what's cool -- and by never letting myself be just another commodity programmer among a giant pool of people with similar (and frankly better) skills.

    --
    The problem with quotes on the internet, is that nobody bothers to check their veracity. -- Abraham Lincoln
  39. The best language to learn: by ohiovr · · Score: 2, Informative

    Mandarin

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

  41. Please check your vitamin D levels... by Paul+Fernhout · · Score: 3, Informative

    ...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.
  42. Re:What about SQL? by Kjella · · Score: 2, Interesting

    I don't know about the market for developers with/without SQL but there's definitively room for people on the reporting/BI/data warehousing side that know pretty much only SQL and the procedural variants like T-SQL, PL/SQL and so on. If you have a proper OLAP server then MDX is a must but it'll translate from SQL quickly. Throw in integration services or business objects too and you got plenty in that area, just look out so you don't become the one fixing up the layout on the TPS report.

    --
    Live today, because you never know what tomorrow brings
  43. Lots of Android jobs by OrangeTide · · Score: 2, Interesting

    Lots of jobs doing Android work, so Java will still be around for a while.
    And if Java does go away, those already in the Android industry will just learn whatever it replaces it (Go or who knows). The language syntax would change for them, but the overall system architecture wouldn't be much different.
    And there are a fair number of Android C programming jobs, if you get in on the device side working for one of the phone manufacturers (I think everyone but Nokia) or a mobile chips vendor (TI, Qualcomm, Freescale, NVIDIA or possibly Marvell). Those companies have a presence on the west coast (California and Oregon mostly), Texas and a few of them on the east coast as well. And there are areas for Android development outside of the US too, too many to name.

    --
    “Common sense is not so common.” — Voltaire
  44. Mandarin by grikdog · · Score: 2, Funny

    Of course.

    --
    ``Tension, apprehension & dissension have begun!'' - Duffy Wyg&, in Alfred Bester's _The Demolished Man_
  45. 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!"

  46. Java is safe. Dalvik is in trouble though. by aristotle-dude · · Score: 2, Informative

    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.
  47. Re:The MS stuff is cool by symbolset · · Score: 2, Insightful

    This is what happens when I omit the tags. Sorry. No, I'm not interested in Miguel de Icaza's attempts to get Microsoft's patent-encumbered technologies into Linux - always one generation behind. That's not cross platform, it's just porting the chew-your-leg off environment to Linux so you can have that fun experience over there too. I'm starting to believe that stupid is contagious. No wonder why he doesn't want to learn the Microsoft stack. He doesn't want to catch it.

    --
    Help stamp out iliturcy.
  48. Re:I avoided MS and work as .NET dev by FutureDomain · · Score: 2, Interesting

    Great post, and I'd like to add a couple of other points.

    Instead of just downloading the compiler, download Visual C# Express. It's a great way to get introduced to Visual Studio and it has a lot of tools and features that make it better than hand typing it into Notepad. I'd still recommend learning what's going on under the covers (use ILdasm, Reflector, and check out the x.Designer.cs files), but if you're going to do any .NET programming in the enterprise setting Visual Studio is going to be used.

    It's good to be a jack of all languages, but you also need to master at least one. I've learned assembly, C, C++, Java, VB 6, VB.NET, C#, ASP.NET (WebForms and MVC), SQL, Ruby, Perl, Python, and PHP, but I still picked my favorite (C#) and mastered it and it has given me most of my paid jobs.

    Whatever you decide to do, don't tie yourself down. Learn as much as you can about different languages and what's going on behind the abstractions. Pick your favorites and any that you need for work and master them, but don't get too hung up on a particular language.

    --
    Hydraulic pizza oven!! Guided missile! Herring sandwich! Styrofoam! Jayne Mansfield! Aluminum siding! Borax!
  49. None... by billybob_jcv · · Score: 2, Informative

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

  50. Get in bed with Oracle by mikein08 · · Score: 2, Informative

    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.

  51. Re:Definitely Scala by M.+Baranczak · · Score: 2, Interesting

    Scala looks nice, but it runs on top of a JVM. If Oracle manages to destroy the Java platform (which is a real possibility), then Scala programmers are fucked. Remember, this is one of the reasons why the guy said he wants to get away from Java.

  52. It depends...on a lot by jwthompson2 · · Score: 2, Interesting

    I'm a Ruby developer in New Orleans, LA and I wouldn't want it any other way here in this city. My skills are in high demand, but that is the state of things here in New Orleans. There is demand for other language developers, mostly PHP, but not nearly the quality of jobs as what is available for a Ruby developer. I suspect that the right answer to this question is highly contingent on the place where one wants to live and work. In San Francisco I know the situation is even more exaggerated than it is in New Orleans with Ruby developers being even more highly in demand.

    The answer to this question is always to look around and see what is needed where you are. If you want to move then look at what is in demand where you'd like to move to. In either case, answer the market by adapting your skills. And why choose one language when you could choose multiple. Be a polyglot and pick up Python, Ruby and Erlang. Paired with a knowledge of C/C++ and Java those five languages should keep you in demand in most major markets. PHP developers are a dime a dozen, and the pay reflects that. Only the best PHP developers make good money, and even then I've found it more lucrative to know Perl, than PHP.

    But that is just what I know.

    --
    Even if I knew that tomorrow the world would go to pieces, I would still plant my apple tree. -Martin Luther
  53. There's no such thing as shrinking job market by melted · · Score: 3, Insightful

    Where I work, I currently do one interview a week. I only said "hire" twice in the last year or so. Truth is, 95% of people I have interviewed so far couldn't write decent code on the whiteboard if their life depended on it, in _any_ language. Your fear is misdirected. No decent employer gives a shit about languages in a job interview. They care about whether you can write the fucking code, in the laguage of your choosing, and whether you have experience in the areas you're applying for. I.e. if you bill yourself as a backend dude, they'll want to see if you know e.g. distributed systems, and have the backend mindset. If you're a frontend guy, that's another set of skills entirely, but still very little (if anything) depends on the language. You can learn the syntax in two days. You can learn the libraries and language-specific idioms / patterns in 2-3 months (if you're proficient in at least a couple other languages). It's not that hard.

    And if the employer makes the assumption right away that you _can't_ learn e.g. Ruby on Rails, to hell with them. You wouldn't like working there anyway.

    1. Re:There's no such thing as shrinking job market by FlyingGuy · · Score: 2, Insightful

      Well said; however, the problem is the HR weenies who write job descriptions and then do all the "box checking" before you even see a resume more then likely.

      Someone who has programed in several languages for a long time can figure out pretty much any of the C clones that keep popping up like so many mushrooms on the lawn after the rain starts

      The best way I have found to just sus someone out is to take them to a conference room with a big white board and ask them to logically block diagram a system that has a database and a front end that imports raw data from outside sources, parses it into a standardized data model, manipulate the data and render it back in a form that is intelligible to Frank over in accounting. Making someone write actual code on a white board does have some value but the logic process that someone displays is far more important.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
  54. Re:Python or Perl? by wonkavader · · Score: 2, Insightful

    "but you'll need to learn python"

    What's to learn? You can teach yourself to be functional in it in no time.

    Languages have gotten so boring, these days. I know, the languages are the same, it's just the fact that we've learned all the new concepts and the only thing really novel in most of these languages is syntax. Know some lisp, some fortran, some pascal, some java, some groovy, some ruby, and what's left? Anything new under the sun? Any real new concepts? (Not just ranting here -- anyone with some suggestions?)

    We should be telling this guy to learn ARM assembler. At least that'll challenge him.

  55. 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.
    1. Re:I changed my attitude completely. by Billly+Gates · · Score: 2

      If people all quit then people would have less money to buy things which in turn gives these same corporations a reason not to hire Americans.

      You can't win. If your job is nice but they use a bad language be happy you have a job. Trust me it is much much worse on the other side with the havenots. There are bad jobs at Walmart and and any fast food restaurant as these are the new 21st century jobs.

      If you do find a good employer that treats you semi well and has you work only 50 hours a week be happy and not whine over the fact its Windows based. That is what I am saying. Reality is these evil corporations run the rules of the game. This is not going to change as must as I wish it would.

    2. Re:I changed my attitude completely. by Deadplant · · Score: 2, Informative

      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.

  56. Re:The one to rule them all by bidule · · Score: 2, Insightful

    Lisp already exists.

    If Lisp did not exist, it would be necessary to invent it.

    --
    ID: the nose did not occur naturally, how would we wear glasses otherwise? (apologies to Voltaire)
  57. Re:I avoided MS and work as .NET dev by shutdown+-p+now · · Score: 3, Informative

    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.

  58. Re:The one to rule them all by shutdown+-p+now · · Score: 3, Funny

    That's a queer way to spell Erlang.

  59. Re:What about SQL? by EoN604 · · Score: 2, Interesting

    Yes, a LOT of web programmers highly overestimate their SQL skill. I've worked at a couple of companies who place a lot of importance on it. At my last workplace, if an interviewee couldn't make sense of (for example) a 50 line T-SQL query with, 5 inner joins, 5 left joins, a sub query, some case statements, grouping, ordering and a COALESCE() function here or there, they wouldn't even be considered. Almost all web programmers are able to "interact with a standard relational database" at a basic level. But they're completely unskilled at the more advanced stuff. I've seen this time and time again at work, and on irc & forums - even people who are very smart/efficient with their language of choice, can be really poor with SQL, and they don't even know it. The reason they don't know it is because you can "get by" with minimal sql knowledge, by writing inefficient round-about, bad code to deal with the data and achieve the same end result (but just with far uglier, less efficient code)

  60. Re:ObjC is not purpose specific by Concerned+Onlooker · · Score: 2, Informative

    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/
  61. 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.

  62. Show some interest in something by abulafia · · Score: 2, Insightful

    Pick a direction.

    If you like web dev, don't look at a language, look at a path. If you want to stay relevant in the front-end coding, Javascript, getting good with HTML5, and one or more of the various things that feeds both (Python, Ruby) is good. Do it via learning some widely used package of functionality. Write something missing, and release it (Django tagging system, with a Canvas tag cloud?) Having released code makes you much more employable. On the back end, well, Python or Ruby + knowing the oddities of one of the NoSQL tools is nice. (And by "knowing", I don't mean read the O'Reilly book, I mean put them under pressure and see how they fail.)

    If you want to become a better programmer, learn Lisp. Really, no shit. It changes how you look at things.

    If you want to become a better programmer, but don't want to invest in Lisp, pick pick up a functional language, like Haskell or ML. But do Lisp first.

    If you hate the idea of either of the above, get better with your current language of choice. Write an ORM, or a templating language. Nobody will care, but you'll learn why everyone hates but still uses the ones we have.

    Learn Objective C, or the Android API, and write something for a phone. We're just past the "here's my todo list, here's my Tetris clone" phase, and it is new territory, and one of the few genuinely interesting things to come about since the mid-90s. If you show some initiative, you can land a safe spot doing this. By about '15, I expect most folks to have a smart phone and be sorted as to expectations, so that's about three years to get good at things and maybe do something interesting to set yourself apart, at the most.

    If all you care about is shooting for the center of mass, learn either Microsoft or get good with PLSQL + the weird crap Oracle makes you do to bundle Java up for database deployment. I don't know what Microsofties do, but if you get good with server-side Oracle code, know your shit with performance issues, memorize various oerr codes, and can parrot back whatever whitepapers Oracle released recently about X And The Enterprise (you know, Private Enterprise Cloud Computing, or whatever), you're very employable. Bonus if you've lived a clean enough life to get a security clearance. Check your ego with the receptionist and pee in this cup, please.

    --
    I forget what 8 was for.
  63. Re:Get out of Programming! by obarel · · Score: 2, Insightful

    And syntax isn't everything.

    Recently I had to look at some Java - I can deal with the syntax, but I was absolutely sure that there's something that already does what I needed to do. The Java library is huge, so it's not just a case of "how to write a loop". If I want to connect to a database, I need to read what's the common way to do it. Of course there will be 3-5 different ways, with proponents claiming that each way is the right way. So you have to start reading articles and blogs, play a little with the code, and form an educated guess (and after a day of looking at the language, it's almost certain that you can't even tell if the examples you're looking at are sane or not).

    I could read a Java book and pass an exam about the syntax, but I would not pass a (reasonable) job interview without a few years of learning the libraries and the idioms.

  64. Puzzling by tthomas48 · · Score: 2, Insightful

    I'm puzzled by what you mean by "drying up". I'm constantly seeing Java and PHP jobs. Granted I'm in a tech hub (Austin), but there are tons of unfilled jobs. The fact that Android runs a java variant puts Java even more in my demand. I'd suggest adding Objective-C and Javascript and you'd have pretty much every current desirable tech skill.

    Have you considered that the problem isn't your technological skills, but where you live?

  65. Re:Python on Appengine by FlyingGuy · · Score: 2, Insightful

    You cringe? Interesting... It is ONE char and only one.

    When I am coding I there are times when I just drop a quick test into the left hand margin because it is visually a "sore thumb" that sticks out and is unmistakable as something that should not be there and if it IS there then it requires immediate attention.

    While Python is a very nice C Clone they really fucked it up with this bit of stupidity.

    --
    Hey KID! Yeah you, get the fuck off my lawn!
  66. Re:Python on Appengine by FlyingGuy · · Score: 2, Insightful

    ...despite not strictly needing to!

    Hit the nail right on the head my friend.

    All the dogma about dynamic languages giving the programmer the freedom to build like their imagination wants to goes right down the drain when the language designer imposes their layout style on the people who would use the language.

    I wonder how many lines of cruft could be removed from the parser if it did not have to manage indentation?

    Python is no more nor no less elegant then C since it is just a C clone. I like you have been doing this shit for too damn long but I gotta say I have never really had a problem returning to well written and well commented C code.

    --
    Hey KID! Yeah you, get the fuck off my lawn!
  67. Re:Are you looking to start a flame war or for adv by fahrbot-bot · · Score: 2, Insightful

    Your comment doesn't make much sense. Python and Perl really are sort of on the same level in functionality/performance characteristics...

    Agreed (from what I've read about Python). Perl is a bit more prevalent and has a longer history, meaning there may be more people/places using it and there's more code out there (not just CPAN).

    From a functional point, if you know one you don't need the other, but if you don't know either, I'd suggest Perl. I know there's a little religious waw between the two, but it seems silly. That said, I think the white-space delimited block syntax in Python (and other languages) is really stupid. I know you Python people will chomp at the bit about that, but I'm right about this, Guido is a snob about this, and you know it - let it go. Anyone who's had their Makefile blown because of a lost tab, or bitched because X converted tabs to spaces in a copy/paste knows what I mean - and yes, get off my lawn :-)

    --
    It must have been something you assimilated. . . .
  68. False choices and short-term thinking by SuperKendall · · Score: 2, Interesting

    I'd still rather go back to that than compromise my principles by supporting a closed language.

    First of all, there are no closed languages. I don't like C# because (a) I think it's under a potential patent cloud from Microsoft, and (b) I think they stole ten years from the computer industry by competing with Java in parallel, instead of working with the JCP to make Java, and Java tools, stronger. But even C# is not a closed language - it is an ECMA standard, however much the direction is obviously driven by Microsoft.

    All that said, even if for some reason you have to compromise principals to work with a language - well the practical reality is you will never have to, it's a false choice. There will always be enough variety of languages and work in them that it's easy to make a statement like that, because you'll never have to face it.

    Lastly though, even if for some reason only a "closed" language was left, I would still work against my principals in that language, keeping strong in it so that I could turn support to something that I did agree with when it came along and show a clear migration path from the old to the new. There's a lot to be said for being a mole, at the right place at the right time.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  69. Poor excuse based on flawed principles by LostMyBeaver · · Score: 2, Interesting

    It's like saying I will only buy a car made in America by American labor, I'll buy a GM. You'd have been better off buying a Toyota. First mistake was saying American, that includes Canada, Mexico... hell the entire North and South American continents. But if you're looking for a car made in the U.S. by U.S. citizens, then you'd buy a Toyota, though if you wanted to play it real safe, you'd actually research it first and find out there are a handful for U.S. brands actually producing IN the U.S.. Otherwise you might end up with a car which is 95% manufactured in canada, mexico or china and the assembled in the U.S. by machines.

    C# is a programming language. From a programmer with nearly 20 years of system level (meaning real code, none of this database and web stuff :)) programming experience, I can say that as a language C# is wonderful, I'd love to have a job programming in it if I could just find a company that isn't scared of it being a "microsoft language". .NET is another beast. It's big, it's nice, it's beautiful. I have written high bandwidth real-time video packetizers and even an H.261 CODEC in it using C#. I LOVE IT. It's fast as hell, it's efficient and it's just overall, a well written system.

    There are of course two major problems with it.

    1) It's made by Microsoft.
    I can live with this, there's mono and other environments.

    2) Any piss-prick who can move a mouse and type their name can use it to pretend they're a programmer. Then they can go out and say "Hi I'm a .NET programmer" when in fact, they couldn't tell the difference between a linked list and a john deere tractor. There's a terrible reputation that builds when there's a programming language which anyone can use.

    The fact is, a programmer doesn't need to know a specific language. He/She should find a job working for a good company with good people and a nice environment. The language shouldn't make much of a difference.

    As for learning how to do programming for web back-ends on a specific platform, well that's a different story. It takes time and experience to learn how to do these things. You need to understand how the web works. But it's not rocket science. It's more important that he knows how to write good stored procedures, triggers, etc... glue languages (possible with the exception of Perl) are all the same. PHP is good language with the worst set of libraries ever. Perl is... bah... Python is just another language with a gazillion features... Ruby is well, it's a religion as opposed to a language, but it's ok for most things, C# and .NET is a very pleasing experience, but it's Microsoft. There's just no ideal solution.

    The important thing though, is that ideals are great if you're looking to get a job like "Let's try and work at Red Cross so I can help suffering people around the world.", it's just sad and lame when it's like "I don't want to program for this bank because I'd be falling into a Microsoft trap".

    Get real. Get a life.