Employers Want JavaScript, But Developers Want Python, Survey Finds (infoworld.com)
An anonymous reader quotes InfoWorld:
When it comes to which programming languages are in demand by employers, JavaScript, Java, Python, C++, and C -- in that order -- came out on top in a recent developer survey. Developers, however, want to learn languages like Python, Go, and Kotlin. A survey of developers by technical recruiter HackerRank, conducted in October, found no gap between languages employers want and what developers actually know, with JavaScript barely edging out Java...
HackerRank also found gaps in JavaScript frameworks between what employers want and what developers know. The React JavaScript UI library had the biggest delta between employers and developers, with about 37 percent of employers wanting React skills but only about 19 percent of developers having them... [But] problem-solving skills are the most-sought by employers, more than language proficiency, debugging, and system design.
The survey involved 39,441 developers, and concluded that "Python ruled among all age groups," according to Application Development Trends, "except for those 55 years or older, who narrowly prefer C."
HackerRank also found gaps in JavaScript frameworks between what employers want and what developers know. The React JavaScript UI library had the biggest delta between employers and developers, with about 37 percent of employers wanting React skills but only about 19 percent of developers having them... [But] problem-solving skills are the most-sought by employers, more than language proficiency, debugging, and system design.
The survey involved 39,441 developers, and concluded that "Python ruled among all age groups," according to Application Development Trends, "except for those 55 years or older, who narrowly prefer C."
Companies want flashy pretty webpages. Developers prefer to produce something else.
I only look for jobs that use Simulink, Matlab, and embedded C/C++. But that's because I have no desire to ever be near the web front end. I know nothing professionally about TCP/IP but have CAN memorized.
Yep, my employer is starting a new project in nodejs because they want to attract "top talent" so there is a big pool of nodejs developers, over my objection that the "top talent" isn't actually in that pool in the first place (and suggested Go, as there is also a performance requirement).
Your bragging skills need some polishing
I would have answered the survey with the majority.
Personally I learned and started using both Python and Javascript late in my career that goes all the way back to writing assembly language on the CDC 6000 and I can't remember how many languages I used. (DIBOL anyone? APL?). As with most software engineers I read Javascript seems to be one of the most unprofessionally crafted languages ever put into wide use.
The updates to Javascript (ES5/ES6) go a long way to fixing things. However I have often wondered how much the world would be different had Python been used as the in-browser programming language rather than JS (ECMAscript) from the start.
The only problem I think Python would introduce is its dependence on white space as a syntactically significant element. That seems like a small compromise. Anyone else think this?
I don't mind javascript as language. The problem is the DOM, CSS, cross browser incompatibilities, and all the rube goldberg machines like jquery and select2.
The russian doll that is modern web programming is a nightmare. Things like jquery remind me of script kiddies who think they are cool when they use a source filter and/or operator overloading to completely redefine a language.
The hacking that has gone into things like jquery is impressive but it should never have become the standard for production code. It should have stayed in the "that's a cool hack" category.
Most important finding in the survey. ... Gets popcorn ... Where is everyone? ...
Guess I'm getting old.
Why is that relevant? Dynamic typing is retarded and every single popular statically typed language has implementations that are far faster than V8.
Why?
A web application done today makes total sense, a desktop app only makes a certain sense.
Pros of a web app: dynamic multi user interaction is baked in, most apps require real time updates when another user performs an action or something server side changes. Web applications are free from operating system requirements, operating system environment requirements, and hardware requirements (if it runs a browser it will work). You can run it on a cellphone, raspberry pi, best desktop, linux, mac, windows etc. Web pages do not require the user to download and run mysterious patch executable programs, instead you just update the website and everyone who logs in next is on the new updated version. Web pages will also exist forever more or less, they don't break because the operating system goes to a newer version, or you installed new anti virus, or you even dropped your computer down an incinerator chute (just hop on the next computer available and all your work is still there on the site).
Cons: it isn't as powerful, though its generally speaking powerful enough.
All that said, employers who prefer javascript and are moving towards this type of architecture are certainly not deserving of a bullet in the head but rather a hearty handshake for being so logical about a core business system.
For morons.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
Javascript is just a terrible language. Once, in the browser you had no other viable choice, today you compile to Javascript or web assembly.
There is only one, somewhat logical, reason to use Javascript on the server: It's the only language you know. I can't think of one worse suited for the job, perhaps COBOL.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
I'll be 65 next month and I like Fortran, or FORTRAN as we knew it back in the day.
Javascript has the problem that you can type obj.typo = 5 and it will run just fine, and you won't ever be notified of your typo unless there are some behavioral issues. Whereas many languages will catch that typo before you even run the code. Python, of course, has the same problem.
"First they came for the slanderers and i said nothing."
Because Javascript is a language that was designed for adding isolated behaviors with simple scripts to web pages. It was not designed to be a language used to build application logic with.
To make it roughly capable of implementing application logic it's been mangled into a giant, hacked together house of cards mess and it shows in all the things you mention and more.
And now idiots are trying to use it to build not just front end, but back end as well. Because they only know to to use a hammer, so everything looks like a nail to them.
Node.js is the abomination that is the result of this.
Your comment makes the core problem very clear: you have no marketable skills and aren't willing to learn them on yourbown so you have to make due with bottom of the barrel jobs.
Want better opportunities: acquire better skills.
This is still not an excuse for using the wrong tool for the job at hand.
Coming from the Objective-C and Swift world I get you. Coming into the language with no prior experience with it leaves a sour taste in your mouth. It didnt take me too long to figure out I would hate it with a passion. The languages is deceptive. DOM is deceptive and unforgiving for those that have never worked with. It sucks. Why do I have to install Typescript just so I can use Javascript?
Javascript has no classes (while at the same time, trying to pretend that it does). To your point about array, Javascript arrays aren't really arrays - that is, it's not a list of items. JS defines these as 'associate arrays', meaning that they can be whatever they dev wants it to be. You can also divide arrays by each other and there will be no compiler error or it might not even crash. You will still get an answer to what is in the 'array' but it won't be right. The program might crash 1,000 lines later but there is no way to trace the problem. How do you even debug a large application? I couldn't even find a method to see if an array contained a specific item, or to get the number of items in it or to test if it was empty. The " == " operator isn't what you think it is.
Where's the basic data structures? Classes? Not on your life. Inheritance? (of a different kind). Reading from and writing to files is awful. Especially when reading files other that contain other things such as data streams(i.e. pdfs, general binary data, etc).
They need to completely start over, get all the browsers to agree on a standard and force people to stop supporting older versions and upgrade to the new standard. Establish a consortium. Until then, I'm not trying again. I'll go back to Swift.
That is why the dynamic language ccrowd 'invented' (rediscovered, cough cough) unit tests and test driven development.
To bad they throw it on the staticc typed language crowed now as if we never had heared about compilers.
(For those who wonder: I only write integration tests and 'system tests' on the level of use cases, scenarios or stories. For real software, that means deployed applications, not 'libraries', ordinary 'unit tests' are in 90% of all cases complete pointless and a waste of time - in a compiled, strong typed language, that is)
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Stop yelling, grandpa!
https://www.eff.org/https-everywhere
First of all you said dynamically typed like that is a strength, it's easier but more bug prone. Secondly, Perl. I see lots of benchmarks showing Perl near the end of the row but that is because you if you don't speak Perl you'll end up using it's flexibility to code up a bunch of array based garbage written like it's C code and include 400 spam modules to "avoid reinventing the wheel." When you load a module just to get the PID of your script when there is a built in that contains the pid... you are definitely reinventing the wheel.
Web apps are fine, but the logic should be driven by the server side. The client javascript should be a minimal thing that handles updating dynamic content and does input prevalidation. If it's big enough to need a framework, you've probably already gone too far by half.
I wanted to learn Python a while back. So I bought a book on the language. All the pages were blank.
Have gnu, will travel.
Mod parent up. It's the programmer, stupid. You can be a shite-head in any language....or write good code in *some* of them.
Why guess when you can know? Measure!
Is there top talent anywhere that prefers dynamic typing?
Your ad here. Ask me how!
LISP and Smalltalk were early exemplars of functional programming and object oriented programming respectively. Dynamic typing had little to nothing to do with it.
Your ad here. Ask me how!
Or does the "top talent" in this area prefer static typing?
Yes.
My experience is that dynamically typed languages make you feel more productive but lower your productivity overall. It takes longer for a programmer to persuade a Haskell or C++ or Java compiler to accept their program. Python programmers interpret this as "satisfying the arbitrary whims of the compiler", where C++ programmers interpret this as "finding and squashing bugs before deploying".
If you don't mind deploying bugs because time-to-market is more important than software quality, that may not be a concern for you. But you won't attract "top talent" with that attitude.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
OK, I know C# isn't the most popular language on slashdot. But it is really popular with businesses. The fact that it's not even on the list makes me question the survey's methodology. Other surveys certainly include C#, such as http://www.codingdojo.com/blog....