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 don't think 2016 is over yet, is it? Looks like someones pointer overflowed!
C is still the most portable language in the universe. The only real language that works on all phones, in particuarl (ok, C++ does too but C is where you get all the amazing well written, optimized libraries you'd want on most devices).
"Recursive bipartite matching"- try it!
C is still the most portable language in the universe. The only real language that works on all phones, in particuarl (ok, C++ does too but C is where you get all the amazing well written, optimized libraries you'd want on most devices).
It's not only the portability that matters, it's the software reuse. You write your nifty image recognition library in Java and that's pretty much the only language that can use it. Same for Python, C++, etc. Do a locate \.so | wc -l on your system - chances are that the libraries *not* written in C are a rounding error. Pick just about anything remotely useful - chances are it'd more more useful if written in C, because at the very least you can open the executable using dlopen/dlsym and invoke main() with the correct arguments.
If you stick to a C-only subset of C++ you can write your library in C++, but at that point why bother with C++ anyway?
I'm a minority race. Save your vitriol for white people.
Meaning there is a preference towards more lower level coding, allowing detailed and measured controls over each line of code, at the expense of maintainability and programming time.
I sorta agree with the rest, but this statement is dead wrong - if you want it reusable you write it in C. Anything written in Python/.Net/etc is only usable from a miniscule subset of languages, while the libzip.so on your system is reusable from everything. This is why the practical/engineering types write it in C - if they chose Python they'll have to rewrite it should they ever decide to use some other language. When they write it in C it need never be rewritten.
The problem with the software engineering/programming people is that they don't care about reusability, and it shows; once the project is done they move on to the next one. The people producing C libraries (like myself) are happily reusing the libraries we wrote two decades ago without having to rewrite them to use in another language. The people producing Python or C++ libraries abandon those libraries when they move to a new language - they don't have a choice.
I'm a minority race. Save your vitriol for white people.
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
No, as a pretty experienced C programmer too, it's *really* hard to find people who are even vaguely competent C programmers. You only need to set most people a completely trivial problem with vague exposure to pointers/memory management and they'll trip themselves up. "Implement memmov" usually is enough to catch out 95% of people.
Yep. What this article tells me is that
good programmers have always known
that c (and maybe c++) is where
real work gets accomplished,
and those that got addicted to
interpreted crap are starting to
realize they were wasting their
time on hard to solve problems
that they 'discovered' were
actually difficult to solve with
an interpreted language.
Then again, I may be completely
full of crap as I have only
have 40+ years of experience.
And clearly still use a 40 character wide terminal for everything.
Firstly, you can't safely cast pointers to unsigned long. Unsigned long isn't guaranteed to be big enough to hold a pointer value. Secondly, (dst - src >= len) is not even close to the correct condition for testing that the buffers overlap. Thirdly, the reason for not using a backward copy in all cases is that it corrupts the output buffer in 1 of the 2 overlapping cases. Those three huge errors aside, you make some good points.
I'd say that "good programmers" can and do learn a variety of languages, and will use the most appropriate one for the task at hand. There's nothing wrong with getting down to the metal when requirements call for it, but doing so is foolish for many types of projects where top performance isn't a requirement. I'm a game developer, so I live and breathe C++ of course. But I write my tools in C#, and our game's scripting language is in Lua.
Why C# for tools? Because it has reflection, and a fantastic library for all sorts of serialization, networking, and UI support.
Why Lua for game scripts? Because then we can recompile and reload our game scripts on the fly, without even stopping the game.
Which programming language is "best"? It's a stupid question to start with, because the only reasonable answer is "it depends on what you're looking for in a language".
Irony: Agile development has too much intertia to be abandoned now.