Employers Want JavaScript, But Developers Want Python, Survey Finds (infoworld.com) 222
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."
Different applications. (Score:3)
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.
Re:Different applications. (Score:5, Funny)
We're hiring right now. Do you know C++ one seven? Give me a call if you have at least 5 years experience.
Re: (Score:2)
He invented it, you insensitive clot!
Re: (Score:2)
Where are you located? Do you allow telecommuting?
Re: (Score:2)
If you've been using Boost for five years, you pretty much have five years' experience on the most recent standard.
Re: (Score:2)
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.
CAN! They sure did a good job putting security features into that protocol.
Re: (Score:2)
Security is not relevant for a CAN bus.
And: TCP/IP has no 'security' build in either, that would be on much higher levels.
IPsec ; IPv6 (Score:2)
And: TCP/IP has no 'security' build in either, that would be on much higher levels.
Actually, IPsec (initially developed as part of the requirements for IPv6, but back ported as an option of IPv4) *is* at the "Internet Layer".
(It sits at the "IP" part of "TCP/IP", right under the "TCP" / "UDP" transport layer).
But yeah, most other the other encryption is usually happening in the application layer (HTTPS, SSH, etc.)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
That seems more like something for Lua, or even Python, rather than Javascript. I definitely see Lua as the embedded scripting language in a lot of modern apps, particularly games, so there's something to that.
Re: (Score:2)
Re: (Score:3)
Re: (Score:2)
Re: (Score:2)
I doubt any scripting language would have let me do what I do in C++ re interrupts, real time, all kinds of cool multitasking and so forth - and still fit easily in cycles and memory.
Perl tends to
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Let me throw out a few more suggestions for you:
ChaiScript. A header-only library that implements an scripting layer for C++. If you saw the words "header-only library" and felt a warm glow, then this is for you.
GameMonkey Script. Essentially Lua, but easier to integrate as a scripting layer.
Squirrel. Similar to Lua/GameMonkey. It does have built-in OOP brain damage, though.
Pawn. The lightest-weight scripting layer you will ever see.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I mean "ubiquitous" as in it is much more widely known, and you are less likely to have to supply all of your clients with training in the extension language than you would if you used Lua.
Lua is a fine embedded script language, but I sincerely think Javascript is preferable simply because it is more likely that the end user is going to have a passing familiarity with it even before they see your product, and will thus find the notion of developing such extensions, if they are inclined to do so, less int
Re: (Score:2)
Companies want flashy pretty webpages. Developers prefer to produce something else.
My first thought was that I don't want to be anywhere near a potential employer who wants to use JavaScript or a potential colleague who wants to use Python.
Yep. (Score:3, Interesting)
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).
Re: (Score:2)
I'd probably hack something together using Python if it was a quick and dirty job. Maybe a combination of bash, sed, PHP, awk & sed if I had the luxury of doing it properly.
Re: (Score:2)
bash + sed + awk == Perl
Re: (Score:3, Insightful)
Why is that relevant? Dynamic typing is retarded and every single popular statically typed language has implementations that are far faster than V8.
Re: (Score:2)
People moved from assembly mainly to dynamic typed languages like LISP and Smalltalk.
Calling dynamic typed retarded only shows how new you are to programming and how less you have grasped so far.
E.g. write a DSL in a dynamic typed language and then the same in a statical typed one. Have fun :)
Re: (Score:3)
LISP and Smalltalk were early exemplars of functional programming and object oriented programming respectively. Dynamic typing had little to nothing to do with it.
Re: (Score:2)
Re: (Score:2)
Re: (Score:3)
Re:Static typing; sharing server logic with browse (Score:4, Insightful)
Re: (Score:2)
What widely used, dynamically typed, memory-safe language has a runtime faster than the V8 engine used in Node.js?
SBCL is pretty fast... So is LuaJIT.
Re: (Score:3)
Is there top talent anywhere that prefers dynamic typing?
Re: (Score:2)
I agree that top talent can use pretty much any environment. And that static vs. dynamic typing has never been (even close to) the most important decision point (or event a point that comes up unless you're writing a language).
I do also think that static typing is superior, and like to argue about it on the internet.
Re: (Score:3)
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
Re: (Score:2)
Did anybody else fall for your "client-side" and "[enforce] the rules" in the same sentence bit?
I have no idea what you're getting at. I said the authoritative validation runs on the server. I was referring to ensuring that the behavior of the pre-submission validation, which runs on the client, matches that of the authoritative validation, which runs on the server. Any mismatch causes a poor user experience, as users who want to enter data that is server-valid but not client-valid have to "hack" it in using Inspect Element.
Re: (Score:2)
Here, let me give you the email address of my competitor. Please take them down.
I'm 55plus (Score:2)
Guess I'm an outlier.
Re: I'm 55plus (Score:2, Funny)
Your bragging skills need some polishing
Re: (Score:2)
Well, I'm 60+ and I like Clojure.
I guess that puts me on Mars.
Comment removed (Score:5, Funny)
Re:I'm 55plus (Score:5, Funny)
Stop yelling, grandpa!
That fits with what I think (Score:5, Insightful)
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?
Re:That fits with what I think (Score:5, Informative)
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.
Well, yes, we'd probably all be using Python, but we'd have a Microsoft preprocessor called "PyScript" that let you use curly-bracket delimited blocks instead of significant whitespace , and which automatically converted Python 3 syntax to Python 2... :-)
Re: (Score:3)
In 1995, Netscape Communications recruited Brendan Eich with the goal of embedding the Scheme programming language into its Netscape Navigator.[8] Before he could get started, Netscape Communications collaborated with Sun Microsystems to include in Netscape Navigator Sun's more static programming language Java, in order to compete with Microsoft for user adoption of Web technologies and platforms.[9] Netscape Communications then decided that the scripting language they wanted to create would complement Java and should have a similar syntax, which excluded adopting other languages such as Perl, Python, TCL, or Scheme. To defend the idea of JavaScript against competing proposals, the company needed a prototype. Eich wrote one in 10 days, in May 1995.
Re: (Score:2)
Can you imagine if Netscape had won that battle, and all those web designers had to learn Scheme as their first programming language?
On the flip side, all the web scripting code would compress well, with all the pages of close parentheses at the end. Maybe they could compress it further by just dropping trailing close parentheses entirely. Imagine the kilobytes of savings!
Re: (Score:2)
It's almost as if we old guys who've done this a lot might have learned something, and are trying to help by telling it to everyone. We can all disagree about the minor stuff and be fine, but a disaster is what it is and there seems to b
Re: (Score:2)
Python seems... fine. But the language itself seems pretty meh. It doesn't seems any more compact than any other. The amazing amount of libraries, on the other hand, make it a language worth using.
Which means it would have ended up getting a lot of frontend JS-style libraries (and DOM control), and a lot fewer command and control style ones (
Re: (Score:2)
I couldn't care less about Python's whitespace handling. Once you accept it, it just fades away and you deal with it. I'm much more annoyed by Python's dynamic typing. I work at a place that has decided to use Python as a 'systems language' on an embedded platform. Navigating large Python codebases is difficult because you can't say what a function expects or returns without thoroughly examining it. I started my current job with a deep fondness for Python but now I'm less fond of it. Python, like many
Re: That fits with what I think (Score:2, Interesting)
I'm a deep fan of Python, but I think TCL didn't get enough attention and traction. I'm not sure why. Perl came along around then, Maybe that's why.
Re: That fits with what I think (Score:2)
I seem to recall that TCL isn't considered Turing complete. If true, that would prevent TCL from being used for a variety of applications.
Re: (Score:2)
He's actually right. TCLs core syntax has no branching or looping capabilities and thus is not turing complete. But you'll never encounter a TCL without those capacities and your ifs and thens and what not come in as part of the standard TCL command library.
Re: (Score:2)
TCL didn't seem to play nicely with larger codebases. It grew spaghetti properties like BASIC did.
Even the semiconductor CAD tools are switching to python these days.
At college, circa 1990, I took a look at PERL and Python, found PERL to be messy and I've stuck with Python as my main scripting language. 27 years later I don't think it was a bad choice.
Re: (Score:2)
Perl of course was awesome. Provided you never had to look at someone else's line noise, errr, script.
Re: (Score:2)
Python falls down because efficiency is not a first class member of the project culture, and because significant whitespace is idiotic. It is also incredibly stupid that it should have its own parallel set of libraries and package manager, so that implementation language is far from transparent to the user. Python, now at the height of its popularity, is doomed to be overtaken by more sensible projects like Go.
Re: That fits with what I think (Score:2)
Python already has been overtaken by Go, at least in terms of developer mindshare. No one is starting new, cool protects in Python today.
I will be curious to see if Kotlin starts to catch up with Go. In many ways it's a better language, particularly its null safety features. And it's blessedly free from the authoritarian "code of conduct" Google undemocratically imposed on the Go community.
Re: (Score:2)
Well, for one thing, the white space wouldn't minify very well.
White space should never be a syntactic element of a language. It's a testament to Python it is a good language in spite of its white space rules.
Javascript isn't the problem. It's the browsers. (Score:5, Interesting)
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.
Re: (Score:3)
Re: (Score:3)
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 compil
Re: (Score:2)
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
Chances are that this is an observation of status quo, not of potential. Tests catch problems with logic and types, with the latter in a sense being a subset of the former. Type systems only catch problems with types. Type systems extended to handle problems with logic become non-decidable and therefore aren't used in general practice. By the way, I assume you meant strong static typing rather than merely strong typing. And I'd also remark that decent compilers of dynamically typed languages still catch man
Re: (Score:2)
That is why the dynamic language ccrowd 'invented' (rediscovered, cough cough) unit tests and test driven development.
Oh, no. You can thank the Extreme Programming Gurus (now known as "Agile") for this.
The system that I work on now is an API, so unit testing it is necessary. For external APIs, you absolutely need to know if any user-visible behaviour has changed.
For internal APIs, the main job of unit testing is to make refactoring sufficiently expensive that it will never happen.
Re: (Score:2)
That's why companies want JavaScript. They have huge piles of the stuff, mountains of spaghetti code, a mishmash of frameworks and Stack Overflow copypasta.
Meaningless statistics (Score:2)
37 percent of employers wanting React skills but only about 19 percent of developers having them
37% of employers may need developers with React skills, but they don't need 100% of their developers to have React skills. Statistics like this are nonsense. I really doubt that 37% of all unfilled developer positions need React skills. I doubt 19% of all unfilled developer positions need React skills. The whole article is full of garbage like this.
Re: (Score:2)
Also if you can program in JS you are most likely capable to use the React framework in a day.
JS and Python (Score:2)
Re: (Score:2)
Re: JS and Python (Score:4, Informative)
For morons.
Re: (Score:2)
For morons.
What issues do you see with node.js?
Re: JS and Python (Score:4, Informative)
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.
Re: (Score:2)
You should not judge about languages you are not fluent in. ... and that again is mainly M$s fault.
COBOL e.g. is an excellent language for business programming.
JS is a very fine language, too. The only problem is type coercion with 'primitive' types to strings and similars things.
People writing their hate here sinply mix up JS with how it is integrated into browsers
Re: (Score:2)
Hangs head in shame: I actually have coded professionally in COBOL. Decades ago. It is just _terrible_. Then spent a few years replacing COBOL sideshows with networked PC database systems under Netmare.
Javascript is just a mess. Enjoy your debugging.
Re: (Score:2)
What did you dislike about COBOL? :) I only use it to script other apps, hu hom, like debuggers,
I don't develop in JS
Re: (Score:2)
Incredibly long winded.
Tied to CICS.
Pic statements, basically storing BCD data in a print buffer. Typically find many functions for the same task, based on how many digits past the decimal. This is prone to failure in strange ways, change a rounding method, add a digit, the other end of the system starts giving wrong answers. Every pic statement is a global that controls how rounding works for that variable.
It was built to do accounting, adapting it to anything else _sucks_. Even for beancounting, th
Re: (Score:2)
And you shouldn't post things from the first hit on Google about languages you've never used. Because nobody who's actually used it for actual fucking work(tm) likes it. Certainly it has a few features - packed decimals and file/record handling that are useful. But it's verbose in the extreme and its modularisation and control flow suck big time.
Re: (Score:2)
I used COBOL, did about 1MLOC Y2k reengineering.
I use JavaScriot regularily as scripting language, but not as a web language in a browser.
Next try?
Re: (Score:2)
I actually really love typescript. It takes a language that is frustrating for a variety of reasons and accentuates all of its best qualities. I feel like the simplicity of JS is the reason it's ended up in this transpiler hell. It's like a boilerplate language.
JS with types feels very much like Go (very interface driven, language has very simple design patterns for you to follow), and is still pretty damn fast. Like if I wanted more features, swift, C#, rust, but for 90% of stuff these are really good
Re: (Score:2)
My reason to use JS when I must is this: the people signing my paycheck want it used, and I enjoy GETTING paid rather than the alternative.
Re: (Score:2)
Also. All that fanaticism about type checking is misplaced.
No, really it isn't.
Sure it's nice to have a compiler detect such errors at compile time. But if you are doing things right you have unit tests and integration tests in place. They will find your silly mistakes fast enough.
Writing unit tests is boring. I'd rather just write tests that prove my code meets the specification than also have to write tests that prove I have added two numbers together rather than concatenated a string and a number.
Next you'll be saying it's nice to have a debugger. But, if you are doing things right you have debug logging...
Re: (Score:2)
Re: JS and Python (Score:2)
Dependency hell. This is not so much an issue with Nodejs itself, as with the culture of Node programmers.
A quick example: My company is currently developing an internal API in Node. It's really a very simple application. Yet node_modules has 954 subfolders. That's a *lot* of dependencies for not very much functionality.
From my perspective in devops, it's no harder to deploy a Node app than anything else. But I thank the gods daily that I don't ever have to hack on that nasty codebase.
Re: (Score:2)
*cough* nodejs *cough*
It's why I said "usually". Winter is cold, get your pills.
Re: JS and Python (Score:2, Insightful)
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.
Re: JS and Python (Score:2)
Then just quit, man. If they don't pay any better than working at Starbucks then by all means go pour coffee for a living. You'll have a lot more fun. 100% serious.
It's Decided. VIM Beat Emacs! (Score:4, Informative)
Most important finding in the survey. ... Gets popcorn ... Where is everyone? ...
Guess I'm getting old.
Re: (Score:2)
Language choice is complex (Score:2)
Sometimes, it's strictly about the tech. One language is superior to another for the job being done
Other times, it's about the team. If the entire team is expert at a language, there needs to be a really, really good reason to change
Other times, it's about the tools, or the libraries
Unfortunately, some times it's driven by clueless management, who have no idea how to program but still have strong opinions
Individual programmer preference is only important for personal education or hobby projects
Re: (Score:2)
That is why in my world the management usually does not decide about languages. ...
The developers do
Very funny (Score:2)
Yeah. Try getting your resume past HR if you've had 15 years of problem-solving experience in a dozen different languages but not the one their shop uses.
Python over JavaScript - how shocking (Score:2)
I've written Python (2.7) and Jython in the past for scripting out IBM WebSphere administration stuff for WebSphere Admins who were to lazy to learn how to script their stuff. Been writing my JBoss/Wildfly stuff in Python 3.4 now - I would NEVER use JavaScript on the server side - much less on the Client side. It's all a giant steaming pile of shit! Consider the whole language was written in what 10 days? Even Netscape who wanted that language couldn't implement it right in their browser. I've used Perl to
rat's ass (Score:2)
That's what I give about what developers want.
Sample bias...no C#, really? (Score:4, Informative)
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... [codingdojo.com].
Re: (Score:2, Insightful)
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
Re:employers need a bullet to the head (Score:5, Interesting)
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.
Re: I couldn't get Javascript at all (Score:2, Insightful)
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 everythin
Re: (Score:3)
Javascript has no classes (while at the same time, trying to pretend that it does). To your point about array, Ja
Re:Fuck Python And Its Whitespace (Score:4, Funny)
I wanted to learn Python a while back. So I bought a book on the language. All the pages were blank.
Re: (Score:2)
Of all the stupidity that Python requires and encourages, significant whitespace is by far the least objectionable.
FORTRAN had significant whitespace. Occam had significant whitespace. Haskell has significant whitespace. Makefiles have significant tabs for Knuth's sake. We're grownups and we can cope.
The main problem with Python is literally everything else.
Re: what does it matter? (Score:2)
Dr Pangloss, what a pleasant surprise to see you here!