C Top Programming Language For 2016, Finds IEEE's Study (ieee.org)
IEEE Spectrum, a highly regarded magazine edited by the Institute of Electrical and Electronics Engineers, has released its annual programming languages list, sharing with the world how several languages fared against each other. To assess the languages the publication says it worked with a data journalist and looked into 10 online sources -- including social chatter, open-source code production, and job postings. The publication has rated C as the top programming language this year, followed by Java, Python, C++, and R. From their article:After two years in second place, C has finally edged out Java for the top spot. Staying in the top five, Python has swapped places with C++ to take the No. 3 position, and C# has fallen out of the top five to be replaced with R. R is following its momentum from previous years, as part of a positive trend in general for modern big-data languages that Diakopoulos analyses in more detail here. Google and Apple are also making their presence felt, with Google's Go just beating out Apple's Swift for inclusion in the Top Ten. Still, Swift's rise is impressive, as it's jumped five positions to 11th place since last year, when it first entered the rankings. Several other languages also debuted last year, a marked difference from this year, with no new languages entering the rankings.The publication has explained in detail the different metrics it uses to evaluate a language.
I find the results shocking. As most people I deal with struggle to write moderately complex C programs.
Also the use of the word "best" is highly subjective.
“Common sense is not so common.” — Voltaire
C and assembly are all you need to know. The rest is just syntactic sugar. If you disagree you must be some hipster that thinks that javascript is a good language just because it's the only one you know.
In the past I have spoken with many software people who did not really know the difference :-(
C is a small language, certainly compared to the others in the top of the list (Java and Python libraries are just huge). By using postings and general 'chat' about languages to gauge interest, i'm a little worried that people attempting to get their head around the larger language libraries will be taken as equivalent to what will most likely be more targeted chat about C. To me this would suggest that C is probably underscored, whilst larger languages will be overscored if using this sort of approach (not that i've dug properly into their methodology!).
I don't think 2016 is over yet, is it? Looks like someones pointer overflowed!
We measured the demand for different programming languages on the CareerBuilder job site....Because some of the languages we track could be ambiguous in plain text—such as D, Go, J, Processing, and R—we use strict matching of the form “X programming” for these languages.
So off to CareerBuilder and i typed in "C programming", with quotes. Result: electrical engineering positions, other non-developer positions and false-positives. Conclusion: C is used but seldom by developers.
I would agree with you except for the fact that Java, C++, C#, Objective C and even Javascript all have Object Orientated Programming aspects to them which is much more than "syntactic sugar" (which is a great term).
Unfortunately for some, C saddles the user with the dreaded pointer. I'm not sure how pointers are taught today, but "back in the day" when I was taught pointers in university, the approach taken was pretty sadistic with the goal of instructors to demonstrate their intellectual superiority over their students by showing (and testing) the most bizarre and unlikely combinations of * and &. I suspect that this is reason for the fear of C and pointers (when all you really need to know about pointers is how to pass data to and from methods and how pointers can be used with strings).
Mimetics Inc. Twitter
Being more devices and consumer goods probably have embedded programming in them, I suspect that accounts for most of the C increase, and it's probably being done overseas, where the manufacturing hubs are.
Keep that in mind before jumping on the C bandwagon.
I purchased a fairly basic electric fan, and it has a digital control for level and a timer. It's probably programmed in C. I even saw a toilet seat in one store that glows via an LED light that turns on when you sit on it, if the light is off. Could be C in that controller also. You may be sitting on C now and not even know it.
Table-ized A.I.
Embedded is getting popular right now, especially with IoT. Based on my experience, C is filling the role of Assembly for a lot of businesses. More importantly, this claim that C is the "top" language isn't very relevant to most developers because they won't be doing embedded work at the rate insinuated by this report.
Given the popularity of arduino and similar embedded devices that favor C I'm not really surprised at all to find C is still incredibly wide spread and popular
puhlease
Object-oriented is a fad!
So is IPv6!
I'm about to start a project for fun using C and I was wondering what the best version would be C89? C99? C11? It seems that nothing in C99/C11 is all that compelling and I'd like to have solid multi-threaded support (POSIX threads). Any reason to use anything other than C89 features?
wtf is R
The "winning" language was going to be Python, but a buffer overflow error caused C to be output at the top of the list.
Editor, A1-AAA AmeriCaptions
It's really very nice. closures, collections, "auto" type in for loops over collections
The downside is long compilation times and unintelligible error messages from template
classes.
Everything new that is cool is generally C++.
KDE is C++ and is great. Gnome is C and it sucks ass.
for example.
Bullshit.
Yeah, fuck Rust!
does this mean I can raise my rates? : p
As someone who has written substantial code in enough languages that I’ve lost count, I am sortof (but not really) baffled by some people’s attitudes toward programming languages. Some are fiercely loyal to a particular language, willing to spent time bashing other languages, usually in ignorance of what people like about those other languages. Some people know only one language and live in fear for their lives that their one language will go out of style or they’ll have trouble finding work in that language. In early 2012, I didn’t know Java at all. When I found out that the language I needed to learn for a particular project was Java, I just learned it over about a month, although I did spend the next few months learning the finer points, more APIs, etc.
The reason I’m not really that baffled is that I’m this way when it comes to video games. About the only one I would ever play was Age of Empires (all versions). Recently, I’ve picked up Minecraft, but I don’t want to get completely sucked in because I have other things in my life I have to do. That being said, I’m not fiercely loyal to AoE. I just like it and played it enough to get good at. And as a life-long Lego fanatic, Minecraft appeals to me. I don’t live in fear that I won’t be able to play my favorite games.
C is for Cows! Moooooooooooo....Mooooooooooo....Moooooo say the C programming Cows!!!!!
I almost fell out of my chair laughing. Highly regarded by whom? Science fluff nerds? Pictures are usually pretty though.
I would hire mysidia over you any day. The whole point of common library functions is someone writes something once, and make it perfect, and then re-use it until the end of time. A good programmer can re-invent the wheel. A great programmer knows where all the wheel stores are, and the pros and cons of each one. This isn't 1988 anymore where you have to write all your own header files from scratch in isolation.
HA! I just wasted some of your bandwidth with a frivolous sig!
... the people doing the research were all brought up on C, therefore it's the best. Just like everyone else's favourite language.
No, as a pretty experienced C programmer too, it's *really* hard to find people who are even vaguely competent C programmers.
Big deal. Try finding vaguely competent PHP programmers or LAMP Webstack programmers in general - that's a real drag.
Finding competent C programmers is probably compareatively easy, because whoever picked up C probably knows what he/her got him/herself into. At least after a week or so. So whoever voluntarily programms in C usually knows what problems they'll be facing.
We suffer more in our imagination than in reality. - Seneca
Underrated.
There's nothing "unsafe" about pointers. Compromises of safety occur as a result of using pointers *wrong*.
There's plenty unsafe about programmers who don't understand what they're doing, and/or are careless, and/or assume that libraries that are black boxes beyond the API level to them are inherently safe.
Unfortunately, the typical metric for hiring programmers is "do you have a degree" rather than "do you know what you're doing."
I've fallen off your lawn, and I can't get up.
I'm sure the sudden resurgence of C (don't call it a comeback, it was here all along) is because of the sudden Internet of Things craze. I work in embedded systems and there is a lot of interest in "smart" devices right now. All those micro controllers going into those "smart" devices are going to use C, and that's often your only option. So, it's no surprise to me that C is back on top.
I also like to point out that my favorite programming language is (quite often) the one your favorite language is written in ;)
It's a case of critical needs....
C -- memory mgmt/direct access (rigid -- ok, lots of freedom but you can get hurt quick)
Java -- Object oriented (OOA/D) (semi rigid)
Pyhton -- lose the type safety for ease of development (loose)
C++ -- utmost flexibility (looser)
And if you're "struggling" with "moderately complex" programs, perhaps what you learned about programming wasn't adequate. Maybe you're trying to make it be java.
Of course, I'm old school, and when I work on a moderately complex program, I flow chart it... and I can code directly from that.
mark
Look at LLVM as an instructive example. It's a large complex beast written in heavy C++, but there are bindings for every language you'd ever want to seriously write a compiler in.
Not a great counterexample - The LLVM C bindings are maintained by hand and all of the other bindings are machine-generated from the C bindings.
IIRC, you're involved with LLVM in some way, shape or form. How the heck do you regression test that hand-hacked stuff? I've come to realize lately that even the most trivial of refactorings can be dangerous. I suspect that the reason that the most trivial code changes are so dangerous is because when something seems trivial, we (or more accurately, I) lose perspective sometimes of the big picture and how far out things can be very loosely coupled. I'd be curious to know how you manage that kind of stuff on something that's so difficult to debug when it goes wrong and yet requires hand manipulation of certain things. Surely most of the LLVM guys are smarter than I am and I'm sure it would be automated if there weren't a darn good technical reason to have it that way.
If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.
I am working on http://c.happycodings.com/begi... to make c examples. I think C is the BEST