C Beats Java As Number One Language According To TIOBE Index
mikejuk writes "Every January it is traditional to compare the state of the languages as indicated by the TIOBE index. So what's up and what's down this year? There have been headlines that C# is the language of the year, but this is based on a new language index. What the TIOBE index shows is that Java is no longer number one as it has been beaten by C — yes C not C++ or even Objective C."
Go C!
Doesn't a dying star expand into giant before it dies?
“Common sense is not so common.” — Voltaire
Am I the only person seriously wondering how Bash went from position 72 to 20? Bash is in the top 20 programming languages... Something is wrong with the programming universe
Java will come back to number 1 in a few years thanks to Android...
Video of some good progressive thrash music
thx, bye.
I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
...libraries for all those managed languages and platforms.
"His name was James Damore."
Specifically the platforms. The boom in mobile devices all having varied hardware requires C glue for each one to let the managed stuff run. The mobile boom has ironically been a new hardware boom causing an old software boom.
Is called PYPL (PopularitY of Programming Languages), and it ranked C# as #1 and C down in #5 based on a different methadology. Honestly, they both sound pretty silly to me.
https://sites.google.com/site/pydatalog/pypl/PyPL-PopularitY-of-Programming-Language
-- "So they told me that using the download page to download something was not something they anticipated." - Bill Gates
And why not C++? It has a number of advantages over C...
No sig today...
'C' is the lowest common denominator. With 'C' I can write code for anything and everything. Mainframes, embedded devices, mobile, etc. Objective-C just extends C so it is more "pure" than C++ which introduces additional notations with different semantics and implementations such as memory allocation. So I can code for iPhone mostly in 'C'. I can write 'C' libraries and link them in on applications for iOS, Android, mainframe COBOL, Mac OS/X, any *ix operating system, Windows (including .NET), etc. It's the one language that is highly performant, ubiquitous and interoperable with every platform and language I can think of. Its almost always available for free.
Very often, people confuse simple with simplistic. The nuance is lost on most. - Clement Mok
Using the TIOBE methodology, I deduce that the following activities are more popular that C Programming:
- Abduction by alien
- Going to prison
- Dying
Is anyone really surprised by this? C is the best overall language, it spans every platform I can think of, it's the most standarized language and above all of that simple to learn and use. C is the language for real programmers, if you can't do it in C then you just can't program.
Name three
Seriously, for the last fucking time, can we stop posting on Slashdot random shit picked up from TIOBE? The TIOBE index is so completely and utterly full of fail that I can't believe people are STILL clinging onto it as evidence of anything whatsoever.
It shouldn't be traditional to do anything with TIOBE, except perhaps laugh at it or set it on fire.
So once last time, one final fucking time I'll try and explain to the 'tards who think it has any merit whatsoever why it absolutely does not.
We start here, with the TIOBE index definition, the horses mouth explanation of how they cludge together this table of bollocks they call and "index":
http://www.tiobe.com/index.php/content/paperinfo/tpci/tpci_definition.htm
First, there is their definition of programming language. They require two criteria, these are:
1) That the language have an entry on Wikipedia
2) That the language be Turing complete
This means that if I go and delete the Wikipedia entry on C, right this moment, it is no longer a programming language, and hence no longer beating anything. Apparently.
The next step, is to scroll past the big list of languages, to the ratings section, where we see that they state they take the top 9 sites on Alexa that have a search option, and they execute the search:
+" programming"
Then weight the results as follows:
Google: 30%
Blogger: 30%
Wikipedia: 15%
YouTube: 9%
Baidu: 6%
Yahoo!: 3%
Bing: 3%
Amazon: 3%
The first problem here is with search engines like Google, I run this query against C++ and note the following:
"About 21,500,000 results"
In other words, Google's figure is hardly anything like a reasonable estimate because a) Most these results are fucking bollocks, and b) The number is at best a ballpark - this accounts for 30% of the weighting.
The next problem is that Blogger, Wikipedia, and YouTube account for 54% of the weighting. These are all sites that have user generated content, as such you could literally, right now, pick one of the lowest languages on the list, and go create a bunch of fake accounts, talking about it, and turn it into the fastest growing language of the moment quite trivially.
To cite an example, I just ran their query on English Wikipedia for the PILOT programming language and got one result. A few fake or modified Wikipedia entries later and tada, suddenly PILOT has grown massively in popularity.
The next point is the following:
"Possible false positives for a query are already filtered out in the definition of "hits(PL,SE)". This is done by using a manually determined confidence factor per query."
In other words yes, they apply an utterly arbitrary decision to each language about what does and doesn't count. Or to put it simply, they apply a completely arbitrary factor in which you can have no confidence of being of any actual worth. I say this because further down they have a list of terms they filter out manually, they have a list of the confidence factors they use, and it takes little more than a second to realise massive gaps and failings in these confidence factors.
For example, they have 100% confidence in the language "Scheme" with the exceptions "tv", and "channel" - I mean really? the word Scheme wouldn't possibly used for anything else? Seriously?
So can we finally put to bed the idea that TIOBE tells us anything of any value whatsoever? As I've pointed out before a far better methodology would at least taken into account important programming sites like Stack Overflow, but ideally you'd simply refer to job advert listings on job sites across the globe - these will tell you far more about what languages are sought after, what languages are being used, and what languages are growing in popularity than any of this shit.
Finally I do recall last year stumbling across a competitor to TIOBE that was at least slightly better but still not ap
Clearly C is more popular as more people complain about it sucking.
C sucks -- About 321,000,000 results
bash sucks -- About 7,500,000 results
Java sucks -- About 5,810,000 results
c++ sucks -- About 898,000 results
objective c sucks -- About 293,000 results
Join the Slashcott! Feb 10 thru Feb 17!
The bulk of my recent programming has been in Objective C but once I leave API calls my code quickly becomes pretty classic C with elements of C++. Yes I love the simplicity of a foreach type structure where it is brain dead to iterate through some set/hash/array of objects with little or no thought about bounds but once I start to really hammer the data hard I often find my code "degenerating" into c. Instead of a class I will create a structure. Instead of vectors I use arrays. I find the debugging far simpler and the attitude to what can be done changes. In fairly raw C I start having thoughts like: I'll mathematically process 500,000 structures every time someone moves their mouse and then I literally giggle when it not only works but works smoothly. What you largely have in C is if the machine is theoretically able to do it then you can program it. Good mathematics can often optimize things significantly but sometimes you just have brute manipulations that need to be fast.
.net to Java is that they often make the first 90% of a large project go so very quickly. You seem to jump from prototype to 90% in a flash; but then you hit some roadblocks. The garbage collection is kicking in during animations causing stuttering and the library you are using won't let you entirely stop garbage collection. Or memory isn't being freed quickly enough resulting in the requirement that all the users' machines be upgraded to 16Gb. Then that remaining 10% ends up taking twice as long as the first 90%. Whereas I find with C (or C++) you start slow and end slow but the first 90% actually takes 90% of the final time.
But on a whole other level my claim with most higher level languages ranging from PHP to
But where C is a project killer is the whole weakest link in the chain thing. If you have a large project with many programmers as is typically found in a large business system working on many different modules that basically work on the same data set that a safer language like Java is far far better. I am pretty sure that if the business programmers working on projects that I have seen were to have used C instead of Java that those server systems would crash more than once a minute. You can still program pretty badly in Java but a decent programmer shouldn't blow the system apart. Whereas a decent C programmer might not be good enough for a large project.
So the story is not if C is better than say Java but what is the best language for any given problem set. I find broad systems, like those found in the typical business, with many programmers of various skill levels are idea for Java. But for deep system where you layer more and more difficulty on a single problem such as real-time robotic vision that C or C++ are far superior. A simple way to figure out what is the best language is to not compare strengths and weaknesses generally but how they apply to the problem at hand. In a large business system where horsepower is plentiful then garbage collection is good and pointers are only going to be a liability. But if you are pushing up to the limits of what the machine can do such as a game then a crazy pointer dance might be the only possible solution and thus demand C or even ASM.
Lastly do you want your OS programmed in Java?
Those aren't clear advantages. Rather, they're a shortcut toward writing shitty code.
He meant name three advantages, not disadvantages and feature bloat ;)
The name of the fallacy you just demonstrated is "No True Scotsman".
Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
Your operating system, almost all shrink wrap applications such as MS Office or Photoshop, Your console's operating system, Your games, Your microwave's OS, Your car. C or C++ but even the C++ in most of the above systems is more C like than C++. Where people mistake the popularity of Java is that many of the jobs at hand such as the local phone company's new billing system will be in Java. But the code that makes the phones actually ring will be something more hardcore such as C or even erlang.
So most of the public will go through their day probably using C or C++ based code 99% of the time and a bit will be say the timesheet software running Java that they access through their C based browser using C based network drivers on viewed through a video card with C based drivers on a C based OS with their packets going through C based routers and switches after using a C based security system to get into the building where they used a C based elevator system to get up to work. Of course many of the above systems use a smattering of other bits such as scripting libraries but those are being run by a C library. The only other language that the average person might encounter would be some Objective-C on their iPhone or some Java on their Android; but again those OS's are basically C.
When they get home and browse the web they then get the full onslaught of servers running a dog's breakfast of PHP, Java, RoR, etc. But those servers are all programmed in.... you guessed it C.
Name three true Scotsmen!
-- I have a private email server in my basement.
Write "Hello World" or any other program you desire in C and in C++.
Now look at the executable size.
Run it through a profiler and see execution time.
Now ask yourself, which language would you want to use on a system that has very limited resources without breaking out the assembler?
It should be noted that for most programming languages, it is highly likely that the compiler and other code used for most if not all programming languages are written in C. If you're using Java, you're using C code. If you're using Perl, you're using C code. If you're using Python, you're using C code. And so on.
Sean Connery, Doctor Who, and the asshole who invented golf.
Boo-ya.
An enigma, wrapped in a riddle, shrouded in bacon and cheese
C haters: told ya so.
Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
the virtual machine that runs your Java code?
--
Stay tuned for some shock and awe coming right up after this messages!
Ok, think about the statement. Then tell me how many XBox GAMES are written in C#...
Xbox Live Marketplace has two separate environments. The Arcade environment allows C but is open only to established studios. The XNA environment, called "Indie Games" in the menu, is open to any startup with $99 per year but requires that all applications be compiled to verifiably type-safe, Emit-free, P/Invoke-free CIL, which in effect requires C#.
Encapsulation - the ability to hide functions inside classes is a far bigger feature of C++ than any of the above.
And how do you hide functions? You put them behind a "private" or "protected" access specifier, but you still have to show them in the class definition in the header file. That's not hiding. That's saying "look at all my nifty functions, none of which you can use, neener neener neener".
In C you prefix those functions with a "static" keyword, and they aren't visible anywhere outside the original source file. Once you compile them into a .o file it's as if they never existed. That is hiding.
C is a bad language to the extent that it lets do what you want, even if that means shooting yourself in the foot. A language that would marry C's strengths while providing safeguards against buffer overruns and other ills would be an oxymoron.
If you have a section of code that is particularly time critical, you could write it in assembly as many people do. I prefer to actually write it in C but check the assembly output from the compiler, and optimize the C source until I am happy with the result. In all cases I have been able to achieve my objectives this way without actually having to insert a block of assembly (not all compilers let you do that in-line). The resulting code is still very easy to read (for me down the road or anyone else) while being efficient.
C is not the Swiss army knife of software (even though if one language qualified, C would be the closest), but it has its areas of expertise. In the world of small embedded systems, there is simply no alternative worth considering (and few alternatives available.)
For desktop applications, not so great (and I speak of experience.)
Labeling a C function "static" makes it invisible outside of the source file, and uncallable from anywhere else in the program.
That's how we C programmers practiced encapsulation way back in the '70s.
C++ causes more problems than it solves.
Only if you are a poor programmer.
C++ gives you much more power than C. That power gives much more opportunity for use or abuse. If you abuse it, that's your fault for being a bad programmer.
And now I'm going to go back to writing very efficient progrmams using elegant, high level and efficient libraries in C++ of the sort that simply do not exist in C.
SJW n. One who posts facts.
Yes but which one is number zero?
Have gnu, will travel.
C programmers have an understanding of the machine they use that Java people will never be able to reach. The only advantage Java programmers have is that they are cheap. Or better, they look cheap to management. In fact they are hugely expensive because most will write code that sucks badly.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Be thankful. If it weren't for C, we'd still be programming in OBOL, BASI, and PASAL