C Programming Language Hits a 15-Year Low On The TIOBE Index (businessinsider.com)
Gamoid writes: The venerable C programming language hit a 15-year low on the TIOBE Index, perhaps because more mobile- and web-friendly languages like Swift and Go are starting to eat its lunch. "The C programming language has a score of 11.303%, which is its lowest score ever since we started the TIOBE index back in 2001," writes Paul Jansen, manager of TIOBE Index. With that said, C is still the second most popular programming language in the world, behind only Java. Also worth noting as mentioned by Matt Weinberger via Business Insider, "C doesn't currently have a major corporate sponsor; Oracle makes a lot of money from Java; Apple pushes both Swift and Objective-C for building iPhone apps. But no big tech company is getting on stage and pushing C as the future of development. So C's problems could be marketing as much as anything."
Rust will be the new language everyone uses in 2020.
I don't need a corporate sponsor or a sexy advertising campaign to figure out that if I want something to run on most Linux distributions, as well as the BSDs with minor modifications, C is the obvious choice. Most of the languages being heavily promoted are garbage, that's why companies have to spend money to get anyone to use them. Robust languages don't need a marketing team.
It'll take 20 years, but I'm eagerly anticipating Rust to take over in C/C++ land.
From TFS, "c's problems": c doesn't have "problems"; programmers who don't use c have problems. Such as their code is slow, overweight, wasteful of resources, and uses only a fraction of the potential available at the low level.
But you keep holding that warm, safe hand. Momma will lead you right to the rubber room. :)
Or, you know. You could actually learn how to write good code at the most powerful level. That's a radical thought.
... C is running a hell of a lot more important applications, is the driving force behind nearly every operating system, and is undeniably the most used programming language in the history of life as we know it.
But, y'know, numbers, I suppose.
The more I can charge.
You can discuss why your favorite sports team or entertainment personality is better than the others on your own time.
There were significantly less programmers in the market and less demand for accessible languages in 2001. Learn some basic stats, eh?
C is great - love it and if somebody shits on it, even more so!
fuck C.
This really is a moronic article. Programming language choice is not about "popular" or "cool" - it's whatever tool gets the job done. The article also takes a whack at COBOL and Fortran. They might be old but they have been around a long time and are still in heavy use in many areas. The article also ignores things like microcontrollers, arduinos etc whose development tooling invariably uses C. The whole thing reads like it was written by a newly minted graduate.
It is 100% the problem of those 100% of developers who create exploitable bugs.
If these brogrammers don't detect the USG brainfuck, it is their fault. They had Algol, Pascal and Ada. But they fell for the NSA-Bell Labs brainfuck, because they are intellectual midgets.
You are fully right.
C, the Enabler Of The Cyber War Domain will stay with us. I now feel really good.
C has what problem? Lack of social media popularity with hipster morons? It's a programming language, not a popularity contest. This kind of shit lately on slashdot really starts getting old. Who runs this place?
Us C programmers have already written everything there is to write.
Feel free to reinvent the wheel in various toy languages if that is what makes you happy, I soon will retire and won't care.
“Common sense is not so common.” — Voltaire
Basically the calculation comes down to counting hits for the search query "language programming"
It doesn't matter if those results are positive or negative. All that matters is the number. If you make a language and get ten billion people to post on indexed sites about how badly your language sucks, your language would take the top spot on the TIOBE Index.
So... yeah. This is about as lame of an index as you could possibly come up with.
Yeah, it sucks, but, then, C not an easy programming environment.
Pointer arithmetic aside, I remember the days when you had to run a preprocessor to be able have a C program to query a database. As bad as the code we wrote had looked for consumption by the preprocessor, the code coming out the other end of it was barely readable and nearly impossible to debug and profile.
So we had to write stubs that return baked database data structures during development to keep our sanity and be able to even debug the thing. We'd defer the embedded SQL part until later in the implementation phase, and that mess introduces problems of its own, like stack overflows, buffer overruns, and mutual exclusion deadlocks (along with other multi-threaded problems which are another can of worms).
It was a cold, wet, hairy ball of pain and panic that I'm glad to see has gone away.
C++ is kind of better, Java and C# are simply amazing, and the newest scripting languages (am I still allowed to call them that?) are just phenomenal.
Kriston
Not everything needs to be written in C, of course. But being fluent in C before starting other projects in less demanding languages (memory management, pointers, ....) like Java offers some guarantees regarding the developer competences.
Slashdot, fix the reply notifications... You won't get away with it...
From TFS, "c's problems": c doesn't have "problems"; programmers who don't use c have problems.
That is actually what TIOBE measures. It counts Google searches. C programmers are smart enough that they don't need to search for answers on Google, or they use a better website, such as Stackoverflow.
We use neither google nor stack overflow, we have K&R on PDF.
But everything seems to propagate through it.
Java is the new COBOL. Given we need a language for that role, I actually think Java's pretty good.
As one of my professors once argued, its usually the accompanying libraries that make or break a language in more recent years. Java's advantage is simply a "more capable" "standard library".
Also we went recently through a phase in computer science education where people were really only taught java. Its the only tool in their toolbox.
Old FORTRAN code lives on behind the GUI or web interface. I once ported some old mainframe computational chemistry code for a very large international corporation. They wanted their legacy code moved from mainframes to MS Windows. At startup their legacy FORTAN code interactively queried for six parameters. I created a Windows front end in C that had a dialog box with six entry fields. After the user pressed the OK button and the six parameters passed verification in the C code they were plugged into the expected input variables in the legacy FORTRAN code and the computation went on its merry way.
Except for the interactive queries the FORTRAN code needed zero modifications. The port needed a few days, most of that testing before handing it off to the chemists. From their perspective it was just a native windows app.
Yeah, if it just works why re-invent.
It's not like C is going away anytime soon, but if there are fewer new C programmers coming online, maybe I don't have to worry about being put out to pasture?
"The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system."
While I think TIOBE is interesting, I'd never advise anyone to either take it too seriously, or base any of the above quoted decisions on it. Deciding on used languages based on search engine results - if you do that, I'd bet you don't advertise it during your interviews.
I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
The problem is not C's fault.
Some macro packages are indeed horrid. That's not C's fault. Its absolutely possible to beautiful APIs in C. The UNIX file descriptor API is probably one of the first examples of object oriented programming and polymorphism, yet nobody ever gives it credit.
You do have to be able to manage pointers and memory in C, and if you use threads you have to be able to deal with currency. This is not rocket science, but it requires diligence.
I am particularly fond of Golang's C "flavor", while freeing the programmer from worrying about those things. If you have to solve a problem that Python or Perl would be your tool of choice for, I'd reach for Go instead.
If you have to be in a kernel, or performance critical code, then C is your choice.
And if you think your code isn't performance critical, you should double check your assumptions. Outside of administrative UIs, almost all code (IMO) is performance sensitive and critical. Programmer inability to understand this is responsible for a lot of the carelessness and bloat that has resulted in UIs that struggle to run in gigabytes of memory, when we had perfectly functional programs in the past that ran in tiny fractions of that. (Yes, there is a cost to features, but I still see a *lot* of pointless bloat and programmer carelessness...)
If C dies, then there isn't anyone to update your kiddie script language.
You know your kiddie script language was written in C or C++, right?
I think Java is a well designed language for big, less widely bused software. Java allows lots of mediocre programmers to work to together build big software. That software is built on the libraries written by good programmers. There is a big market for mediocre software, and Java fits that niche quite well. It will not be able to beat specialized languages like PHP, or Matlab, but Java is a good general purpose language.
The market shares are always expressed in percentage. But what about raw numbers. I know several media and politicians are always complaining about the lack of programmers. That seems to hint to an ever growing number of programmers. With the recent rise of web applications and mobile applications I think that many non traditional languages have seen a growth in their raw numbers of users/programmers (for example swing, javascript, ...). But what about the traditional programming languages? When I look at the job market, there are still the job opportunities for C, C++ and even Cobol programmers. Java is both a traditional language and the language of choice for Android. So the number of old Java programming jobs might or might not be declining but there is a sharp rise in the number of Android-Java programmers. Could it be that despite lower market share, there have never been as many C programmers as today?
That lets me think about the market share of browsers and operating systems in the past. Mac OS, Linux and BSD were all dead because Windows / IE had a market share of +90%. But still Mac OS evolved to 8.5 to 9 to OS X. Linux became better and better and supports more and more hardware and is used as the primary and even only OS by many system admins and programmers. The reason why they survive while being declared dead is that Windows percentage were inflated. practically all PC's are sold with a Windows license. Many Windows PC's in the market share are no longer in use or are hardly used or are reinstalled with another OS. Even with only a market share of 1% on a billion device, Linux still has 10 million users. This is quite a lot, and there are enough users to make money. Market share doesn't say everything. The best cars in the world are also the most expensive and have a low market share. Yet during the crisis in the automobile industry it were mostly those expensive car makers that had no financial problems.
Out of curiosity, why do so many seem to have java so much?
Is it just because it can't compile to native code?
As a language I found Java quite nice to code in; The syntax is similar enough to C that I didn't have trouble getting into it, and object instancing and setup are so much nicer compared to C++, which just makes me want to stab myself in the hand whenever I have to touch it.
The lack of pointers means a lot of the dirty tricks I use in C can't be used, and tends to make code more complex than I'd like, but I like to think that just means the code is less likely to have a horrible flaw later...
The IEEE seems to have a much better methodology and ways to look at the data based on web, mobile, enterprise and embedded markets.
http://spectrum.ieee.org/stati...
It just seems that the TIOBE results are much easier to bias by things like universities using a language as a teaching language. There are far more online courses on things like java and languages commonly used for web work but that does not make them more commonly used just more common to have webpages written about them.
Computer modeling for biotech drug manufacturing is HARD!
If you asked Richie back in the early 70s whether he thought it would be a major language in 40 years time, I wonder what he'd say?
John_Chalisque
I am particularly fond of Golang's C "flavor", while freeing the programmer from worrying about those things. If you have to solve a problem that Python or Perl would be your tool of choice for, I'd reach for Go instead.
And then you hit some spot where go is not as flexible as any of those languages and you're forced to cobble together some hax.
Not worth much since I'm new to programming but when I began researching which language to start with it seems almost every language refers back to C or a variant of C. It just made sense to me to start with C and that it would be a valuable skill.
The hammer just passed the screwdriver again on the Household Tools Popularity List. Is it because the hammer has the venerable backing of large companies like Lowe's and Home Depot while the lowly screwdriver is still seen to be a hobbyist's tool unfit for enterprise adoption?
Stay tuned for next month's exciting random statistical variations and the inane commentary from bloggers desperate for clicks!
This TIOBE index relies on web queries for each programming language. Frankly, C programmers don't need to ask questions about the language itself since it is so simple.
I'm not questioning the popularity of the various languages but it seems to me that this metric favours the more complex languages.
Finally, in the embedded real-time space, there is still no real substitute for C.
Why are people still using Java in spite of having witnessed the BS case between Oracle and Google?
I keep seeing articles about what language is what rank on what index and I think "Who the fuck cares?". Language fanboyism is, to me, the mark of an inexperienced dolt who worries about the popularity of the one or two languages they really know because they're worried it will have impacts on their personal prestige or job opportunities.
To my mind, a Programmer is language agnostic. Sure, they may be more skilled with one language, or have a preferred language. At the end of the day, though, a proper programmer will have worked with enough different languages and environments that they can adapt to whatever they need to. Sure, I expect them to advocate for the use of an appropriate language on a project. But I also expect them to be able to adapt to a language they've never seen before should the need arise. To my mind, if you're a 'C programmer', 'Ruby programmer', or 'VB.Net Developer', you're a worthless one-trick pony.
Old-timer here.
In my time, I have programmed in assembly ( Intel, Motorola, and Apple II + ), C, C++, VB, VBA, Python, Java, javascript, amd more.
This smells like a popularity poll, and the newest and shiniest win.
The real winners are the HR people who read this to check for buzzwords.
As always, choose the right language for the job. If you don't know it, learn it.
( Just because you have orgasms in javascript does not mean it can be used everywhere - hammer/tool/nail - get more tools! ).
C and assembly for speed, and hardware interaction. C++ with C-subset for almost anything else.
Lisp for the ultimate obfiscation.
Java, Python, Perl, Ruby, javascript for web stuff.... and not always - if a web back-end could better be done using C++, then use it.
Of course, management always trumps practicality and intelligence - bummer.
And the sales people always lie.
>> more mobile- and web-friendly languages like Swift and Go are starting to eat its lunch.
Clearly you have no clue about how much embedded/realtime software programming is also going on out there, where using any garbage-collected language is simply not an option.
It's still #2. And twice the index score of #3.
mobile app development. ... The constraint that C object code should remain small and fast doesn't help here.
Huh? That seems like exactly the sort of area where small and fast would help immensely.
I still find it infuriating when I want to have half a second for this clunky program on my phone to do it's thing.
Moreover the C programming language doesn't evolve like the other big languages such as Java, C++ and C#. There is a "new" C11 standard available but this contains only minor changes.
The language being stable is a good thing. A shining feature. Unless you enjoy all your skills turning to dust as you have to adapt to an ever changing platform. Who likes to build a house on shifting sand?
Yet another reason why C is getting into trouble is that there is no big company promoting the language. Oracle supports Java, Microsoft supports C++, C# and TypeScript, Google supports Java, Python, Go, Dart and JavaScript, Apple promotes Swift and Objective-C, etc. but none of them supports C publicly.
Also kind of a good thing. Because it's "Oracle, where tech goes to die". And Microsoft, where they keep bloody changing everything because some minor boss somewhere gets a bonus if he can convince 9% of the MS developer base to register with SilverLight tools, or how Sharepoint is "the next big thing". And frankly, I was surprised that every Go project wasn't mandated to direct their users to go sign up for google+.
C is punk. Fuck corporate.
It's portable as all fucking get-out. Low enough that you can make it smokin' fast. And it doesn't play any games with magical crap you can't see. The code is truth in advertising (unless you fuck around with macros like an idiot), and that makes it easier to debug. And everything as C APIs, so if there's a library out there you want you can typically go hook into it. Every bloody language has weird quirks and nuances you just have to be aware of. The tools that help you use the language are where it's at. MVS, while run by Satan, is actually pretty decent. But the classic C tools of makefiles, gcc or clang, and vim are powerhouses of usability that have been refined for decades. It's not the best if you want to talk to browsers. Javascript is the defacto standard there. And it's not the best if you just want to make yet another GUI button clicker for clueless suit. And Bash or whatever script of choice glues together the solutions of yesterday. But C is what you whip out for the hard cases for real meaningful programming. And certainly for anything critical like life support, satellites, weapon platforms, or kernels.
Most performance-critical code should be written in C++, not C. It allows a programmer to be more productive, and reduces or eliminates several major causes of bugs in C programs.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Ah, a good old fashioned programming language pissing contest. Thanks Slashdot, I was starting to agree with the cynical "/. isn't for nerds anymore."
C is the first turtle. Most languages today have their implementations written in C.
Coder's Stone: The programming language quick ref for iPad
There is an entire branch of mainframes which runs on Algol68 and derivatives. From top to bottom. The fact that you do not know them just means you have a myopic world view.
And the science guys were always using Fortran.
C is a quick and dirty language and I hope it will die ASAP.