Number of Jobs by Programming Language
The Viking writes "I was curious about which programming languages are hot with employers, so I did an informal search of several job search engines. The results are interesting (to me, at least). Are these numbers relevant? We can certainly debate whether or not the online job search engines are representative of the actual employment landscape."
forth use = if unemployed then
"Everyone is entitled to their own opinion, but not their own facts."
That was quick. Here's the important part (without the table tags):
Number of Job Listings by Programming Language (January 3, 2003)
monster.com hotjobs.com dice.com %
Java 2739 1000* 1957 27.82%
C++ 2103 1000* 1534 22.65%
Visual Basic 2070 969 1127 20.35%
Perl 955 517 577 10.01%
Javascript 925 455 498 9.17%
C# 290 235* 183 3.46%
Ada 384 175 57 3.01%
Fortran 124 68 48 1.17%
Scheme 39* 138* 46* 1.09%
Python 58 43 33 0.65%
Smalltalk 42 27 32 0.49%
Lisp 12 4 9 0.12%
9741 4631 6101
* hotjobs.com changes a search of "C#" to a search of "C", so I averaged monster and dice.
* hotjobs.com limits the number of results that a query can return to 1000.
* Searching on the term "scheme" may result in false positives.
Tarsnap: Online backups for the truly paranoid
I work for a computer consulting company which deals with mainly Fortune 500 companies. Java is the most requested language with VB/ASP coming in next. .NET is starting to grow and we anticipate it will continue next year. It seems to be that companies are moving from VB to .NET, not that Java developers are moving to .NET.
Where is it? PHP has become the defacto standard for developing new websites. There are certainly more PHP jobds then Python ones. It would also be interesting
to learn about employment oportunities for ppl with older skills like Cobol, Fortran, Assembler.
US-UK-Israel: The real Axis of Evil
If only we had some numbers on the average pay for each position, I'de be willing to bet that while Java is real popular, you would get much higher pay for fortran.
Maybe the price of the programmers is also affecting which language people are hiring for.
This isn't offtopic, it's research into the right buzzwords to get a job. Do you know even one serious programmer who can't code in any language if presented a pocket reference guide? Citing specific languages in a job search is all about buzzwords for resumes.
Gee, typical.
Lets broaden the search to languages commoningly used in minis and mainframes. Perhaps the results will be more relevant?
* Winners compare their achievements to their goals, losers compare theirs to that of others.
Perl is a scripting language too, and its up there.. it takes a bit of programming knowledge to write good scripts.
Furthermore, the searcher omitted C. C is still a very popular language for embedded applications. Everybody I know around here that got hired recently got hired to write C or assembly for hubs, cell phones, TVs or printers. I program almost entirely in C for work but I program in Java for fun.
These job sites are not the way to go. I'd say a survey of recent CS grads, and people that recently got new jobs would give much different results. Even a slashdot survey saying "Which language do you use most at work?" would be better.
It h-has become a disturbing trend in recruitment circles to advertise jobs you don't actually have, in order to mine résumés for potential employer contacts. I know that this is especially common in the UK. I'd bet that less than half of these jobs are real.
Another worrying trend is that I know people who've responded to job ads, and even gone for interview, and have been told that the job doesn't exist, but that they wanted a healthy batch of résumés on file for when the economy picks up(!!)
Th-th-the best people to ask are the freelance workers, the people actually here on Slashdot. What languages are most in demand?
In the main, as a programmer myself, I find that specific, er, languages are not demanded so much. People want solutions, unh, not languages. That said, from the REAL ads I see (I'm in numerous freelance work groups), PHP and MySQL are way way way at the top of the tree, followed by Java.
mogorific carpentry experiments
Seems to me its more important to know algorithms, data structures, how to implement parsers, how to optimize databases(or knowing when its better to use a custom data structure rather than a database), etc.
But the job ads almost universally ask for knowledge of the specific language. I've worked with C++, Java, VB, Perl, SQL, XML, Javascript, and others, but in my experience knowing what to do with these languages far outweighs knowing the language itself. Why don't recruiters see this?
No, Thursday's out. How about never - is never good for you?
I strongly disagree with that approach.
I've picked up a working knowledge of many languages over the years but I'm not to say that I am an expert, or even proficient.
Expertise in a language implies you know the compiler and runtime environment very, very well. It also implies that you know the common pitfalls, strengths concerning the langauage and you know how to deal with them.
It's all vague "proficient", "expert", "knows". I'd say what you discribed wouldn't pass for more than "familar", ie. "familar with language x"
I am very wary of people that list 20 different languages on their resume, or suggest that they know these languages otherwise. Not that I'm in a position to make hiring decisions right now though.
Based on upvotes, Ageism is the only "-ism" Slashdotters care about and think isn't SJW
PHP is the defacto standard used by newbies and children who don't want to learn a real language like perl or Java. PHP is shit.
I think PHP has a valid niche in building throwaway code for demos. Things I've used it for include:
- extremely low cost web sites with limited functionality. A person looking to get a site on the web with a concept can build a php site and put in on a shared server for $10/mo in hosting fees.
- prototyping - some times it's necessary to put together a prototype of an idea to show to a client in a hurry.
For serious work, I agree with you.
That depends on the environment and what objects it exposes for scripting. There are a lot more implementations out there than you'd think:
There are doubtless other examples.
Il n'y a pas de Planet B.
As for regular C... I don't think anyone out there goes "I only know C, I don't use C++ because I hate OOP and all the new extensions and improvements and such."
I do. Inheritance breaks encapsulation. If I want to pass around function points, I'll pass around function pointers; I'll not have the compiler doing it behind my back.
Tarsnap: Online backups for the truly paranoid
Well, as somebody who writes it for money I thought I'd answer...
.NET, or C. I'd say that at about 50000 lines it starts getting very annyoing.
Yes, VB is very basic, although some quite impressive stuff can be done with it. It's perfectly possible to write enterprise management stuff with it for example. If your app only needs to be a pretty interface for a database then VB is a quite good tool for that job. However, it's got a lot of problems.
There's always important functionality missing. MS has some really incredible knack for releasing a new version of VB that adds 2 or 3 features that you'd find really useful... but still hasn't found time to add unsigned types in VB6.
Lots of working around is needed. The experts in VB learn to do tricks with undocumented functions like CopyMemory, and calling the WinAPI. There's no way in VB to make a window appear on top of all the others, for example.
It's hard to use with source control tools. CVS is quite usable though, but not perfect. Just opening a project and closing it changes files, for no good reason.
And then there's the bug from Hell that sometimes makes it forget about an OCX you included and forces you to muck with project files by hand to fix it.
But, even regardless of all that people use it. I guess it's because it's really easy to do small things with it. If you need to do a quick tool that queries a database and prints a few reports then it's almost perfect. But if you're planning anything large I'd use anything else instead. Maybe Delphi, or
Since after all, the whole point of signing up for Monster is to start getting INCREDIBLE amounts of spam. That's what happened to myself and the whole department I was in when we got laid off and we'd all signed up with Monster.
Forth:
9 (Monster, search may be incorrect)
12 (dice)
Pascal:
28 / Delphi: 158 (Monster)
17 / Delphi 58 (dice)
PHP:
189 (Monster)
31 (dice)
LISP:
12 (Monster)
9 (dice)
ADA
(search inconclusive)
Fortran
123 (Monster)
49 (dice)
Assembler
10 (Monster, search inconclusive)
Algol
0 (Monster)
2 (dice)
==================
Also:
COBOL
601 (Monster) !
547 (dice) !
Visual-Studio related jobs
299 (Monster)
142 (dice)
Linux-related jobs
881 (Monster)
400 (dice)
====
Software Developers total
3901 (Monster, 2106 "programmer" +1795 (software developer)
Becoming a language guru will inevitably involve deeper issues anyway, as true language gurus often delve into the implementation tools (compilers, VMs) for their given language.
"Big thinkers" on the other hand, tend to be just that. Lots of talk and little action. The bottom line is that you are trying to push out code to make money.
No, I'm sorry I have to agree with the guy above (as well as you). It's true that *really* knowing how how to program is more valuable on the whole than being an expert in a particular language... however, on a specific project, and with certain languages (perl is a fairly good example), prior deep experience with the specific language can make a HUGE difference.
[Just so you understand that I'm not talking out of my ass, I've been programming for 20 years, broken down for the large part (with some overlap) as about 9 C/C++, 7 FORTRAN, 5 BASIC , 4 assembly (various) and 4 Perl (plus a bunch of other pedagogical languages like scheme and so on).]
I would consider someone a hell of a lot more valuable if they had a lot of experience with several different programming languages, because, as you said above, they are more likely to understand the fundamental concepts of programming. However, I'm working in a Perl shop right now (and unlike these other posters, I DO make hiring decisions), and at this stage, I wouldn't consider anyone for a senior position who didn't have consierable experience with Perl. There are a lot of reasons, but one of the biggest ones is: 3 months to get up to speed or 6 months? Consider how much they're being paid, and the opporunity cost of 3 more months, and its just not worth it.
Perl is definitely derived from C (as well from shell and various others), but a guy with C and Java and COBOL and whatever else is just NOT gonna be able to run with Perl that quickly, period. Perl is too different in terms of the tools that you actually use (I'm not talking about syntax or silly little idioms and all of the magic variables in Perl). I mean, if you're programming in Perl, and you're not thinking "how would regular expressions and/or hash tables (for example) make this easier?" then you're probably just not doing it right (whatever "it" is). If you're really convinced that isn't how you should be using Perl for this situation, then you probably shouldn't be using Perl anyway. (I love Perl, but it's not the answer to everything).
Ugh, I'm rambling now... anyway, I'd say that what you said is *mostly* true, but almost every language has things about it that separate it and make partiular expertise valuable (in at least some situations). Hire someone to write C/C++ because they know Java, C#, Perl and Basic? But they've never used a pointer!!!! Hire someone to write Java because they've used C/C++, Fortran, and PHP? But are they really thinking about threads from the get-go? Etcetera... I hope you see my point.
:Wq
Not an editor command: Wq
One of the nice things about knowing and using a number of languages is that you get to pick the right tool for the right job. People like you, Kunta Kinte, seem to believe it's a good thing to limit tools; sometimes just because you have a hammer doesn't mean that everything should resemble a nail. Ever tried to write a compiler in FORTRAN, for example? Ever listen to an MSCE extoll the virtues of a certain company's products for every conceiveable problem?
Now, on my resume I list the "languages" LEX and YACC (lately more Flex/Bison), because I have found that applications-specific scripting languages can improve quality and make maintenance far easier than trying to do everything in, say, C. Many of the projects I work on are tools, not end-user apps, so providing a scripting language suited for the task makes it easy for my customers to concentrate on their jobs instead of how to get my software to do something they really want to do. Even when the scripting language is used exclusively internally, I have found that the quality of the resulting program is far higher because I've removed opportunities to screw up by using a level of abstraction. C++ and other object-oriented languages try to create a one-size-fits-all version of this, but sometimes it's just easier to think about the problem with a more free-form syntax without worring about inheretance issues, constructor/destructor conflicts, garbage collection, and the other baggage that seems to come with now-"traditional" OO programming.
How many environments do you work in? I'm equally at home in the embedded space, personal-computer applications, Web applications, secure e-commerce applications, network stuff, and man-rated programming. Each area has its own set of tools -- why shouldn't I mention them as I'm versed in using them?
Or perhaps you are of the school of "jack of all trades, master of none"? Sorry, I like challanges. I may be 50, but I can still write code. Maybe not as fast, but I'll stack the quality of my code against any person here.
New poll topic! But I don't think very many would vote for Visual Basic in this site..
A few months later, in a PHB-meeting: "Apparently there's an innovative language called 'Cowboyneal' that's been very popular.."
What time is it/will be over there? Check with my iPhone app!
Do you want your compiler saving registers and setting up stack frames behind your back?
[Set Cain on fire and steal his lute.]
This is a common argument, and there is obviously some element of truth to it, but it's still flawed for two big reasons.
If you think you can take a Java programmer, even one with several years of experience, and get him to program industrial strength C++ with a good book and a couple of weeks of on-the-job practice, I think you're mistaken. He'll write code that compiles, but it won't use the RAII idiom to avoid resource leaks, base classes won't have empty virtual destructors, large class hierarchies won't be divided into a sensible arrangement of files resulting in hideous dependencies at build times, he'll pass random boolean parameters to functions where enumerations are appropriate, etc.
Similarly, you try taking a guy who's used to C and getting him to write functional code using high-level functions, currying and lazy evaluation. The mindset just isn't there, and takes time to develop, not a copy of Learn This Fab Language In 30 Seconds.
The experience issue just isn't as straightforward as some (mostly theoretical, with a heavy CS background) people make out. Experience with general programming technique is very important, but experience with the actual tools still counts for a lot, too.
And before anyone flames, be aware that I'm a professional developer with experience using several diverse languages, and a CS qualification from a well-regarded university, so I don't have any axe to grind against CS here.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
The people posting the jobs are insane, incompentent, idiotic or all of the above.
Favorite post:
Must have Exchange 2000 on Solaris 8.
This
Ever occured to you that perhaps the language(s) used are part and parcel of the results? If you write your code in Haskell, and I write it in Java, assuming identical end functionality and other end-user quality metrics, which is better? The Java codebase. Why? Maintenance. It is *really* dumb from a business perspective to depend on any one person being in any one position. If the Haskell-codebase's maintainer died, quit, got sick for six months, shaved his/her head and became a Hare Krishna dropout, where does this leave the company? Searching desperately for a Haskell programmer, which may take a long time given that the number of really good Haskell developers is epsilon small compared to, say, the number of really good Java developers. [I'm using Haskell and Java as comparative examples here, you can sub in any(rare|common) couplet of languages you want.]
News for Geeks in Austin, TX
PHP 189 224 31 2.12%
Which would put it somewhere between Fortran and Ada.
Tuus crepidae innexilis sunt.
You should quickly share your insights with the folks over at Yahoo!
Yahoo is doing some very strange things. They evaluated a bunch of web development technologies, decided J2EE was the best, and then chose to use PHP because FreeBSD has very bad support for threads.
Now to me that is putting the cart before the horse. First you choose what software you want to run, then you choose the platform you run it on.
jobs by OS on dice: Windows 2229 Solaris 685 Linux 399 AIX 367 AS/400 or OS/400 287 HP/UX 191 Novell 165 VMS 61 Mac or MacOS or System 7 58 RTOS 58 VM 31 IRIX 18 BSD 18 OS/2 13 SCO 8 Darwin 6 BeOS 0 CHORUS 0 MINIX 0 HURD 0
Java is just the buzzword that almost all IT managers think that their applicants should have.
I have seen dozens of job postings for positions like System Administrator and Database Administrator that had NOTHING to do with Java, and yet, somehow, Java finds its way onto the list of requirements. I've seen several of my managers post job openings requesting Java experience while our department did absolutely no Java work whatsoever.
And, right there, you have an explanation of why most software teams fail, most commercial software products suck, and so many people keep buying junk development tools: software teams in industry don't have a clue what they are doing. They are just plugging together a bunch of library routines. They don't know whether to use quicksort or mergesort. They are mystified by what a garbage collector does and how to tune code to perform well. They have no clue what happens when they write "new object". TCP/IP might as well be ESP.
Thank you for demonstrating this point so clearly for us all. PS: Would you mind telling us where you work, as a warning?
Problem is, no CS graduates do know this.
Absolute hogwash. I've been in this business for 20 years and interviewed developers for probably 100 openings. When I see no formal computer science education I put that resume on the bottom of the pile. Not all entry-level CS majors are ready to hit the ground running but at least you know that they have been exposed to a broad range of programming and software engineering topics. And in my experience, it's the physics and EE folks that I have had the most problems with.
I believe the biggest problem in our industry today is bad IS management. In my experience, IS managers without formal CS education are the reason that IS fails to meet business expectations. And I sense a lot of 'tude from the poster...probably does not have a CS degree and wants to get back at those who do.
I want to be alone with the sandwich
The old Citran, Joss, Cal, or whatever time-sharing interpreted language was written in Fortran. (About 5k lines of Fortran II, I think) It was much better than its competitors of the day, ie Basic and Xtran.
Then, for the real fans of serious programmer cajones, consider this: Realia wrote their COBOL compiler in Realia COBOL, which was a take-no-prisoners, unmitigated, unextended, minimum standard COBOL, ie 1974 version more or less.
That last one bothers me a lot. It means you *have to* become part of the problem in order to get noticed. Being honest on your resume means not getting any calls. Employers assume you are exaggerating whether you are or not, so if you don't exaggerate they picture you being a lot less qualified than you are. At least that's the way it seemed the last time I was looking to change jobs, which admittedly was over six years ago so things may have changed.
Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.