2011's Fastest Growing Language: Objective-C
mikejuk writes "Every January, it is traditional to compare the state of programming language usage as indicated by the TIOBE index. So what's up and what's down this year? The top language is still Java, but it's slowly falling in the percentages. Objective-C experienced the most growth, followed by C# and C. JavaScript climbed back into the top 10, displacing Ruby. Python and PHP experienced the biggest drops. If you like outside runners, then cheer for Lua and R, which have just entered the top 20. However, I have to wonder why Logo is in the top 20 as well. I know programming education is becoming important, but Logo?"
Objective-C's growth in popularity coincides with the Flurry Analytics study that showed most mobile developers targeting iOS, with support for Android dropping by a third over 2011. C# will probably continue to see increasing interest because of WinRT. Lua is unsurprising because of its popular use in games, and they just released 5.2 last December. What I find most interesting is that plain old C is set to overtake Java.
Of course, if you don't take the Tiobe rankings seriously, than all of this is moot, but I guess it's something to talk about on a Friday.
How is the real story not that C# is 3rd up from 6th!
Has fallen out of even the top 50. Good riddance.
Objective C is only popular because iOS requires it. It's like reporting that orange jumpsuits are the hot fashion trend in prison.
Have you ever noticed that people can sorta hijack Slashdot threads by simply posting a reply to the first post? This makes them the irrevocable second post in the thread.
To show your appreciation of this "feature," please reply to this post with something completely different.
Two words: Big Brother (tm)
Why was this modded funny? This is the truth -- obj-C is popular because of iOS, not because it is some kind of programming language panacea.
Palm trees and 8
Any language that was created in 2011 experienced more growth.
An infinite percentage of growth to be exact
My IT friend in 1993.
Time to find him on facebook.
https://www.accountkiller.com/removal-requested
Fastest growing language is the one you invent yourself.
Java
C
C#
C++
Objective-C
PHP
(Visual)
Python
Perl
JavaScript
Delphi/Object
Ruby
Lisp
Pascal
Transact-SQL
PL/SQL
Ada
Logo
R
Lua
Interesting. Objective-C up (presumably because of iPhone usage), C# passes C++, and Python in a screaming dive.
The languages that are on the way down suffer from mismanagement. The C++ committee went off into template la-la land years ago, focusing on features used by few and used well by fewer. Python had a "Perl 6" experience - von Rossum pushed the language to Python 3, which is only marginally better, no faster, and incompatible. That seems to have hurt the language's market share.
The languages on the way up are rather similar. They're strongly and explicitly typed, compilable, memory-safe (mostly), and have garbage collection. That describes Java, C#, and Objective-C, and even Delphi. The only exception on the way up is Javascript, which has progressed from being an awful language to a pervasive although mediocre one. Javascript does have the advantage of fast implementations, unlike Perl and Python.
These stats, of course, are based on what people are blithering about on blogs, not what's implemented in them.
I've seen logo used a lot in multi-agent systems research. It just lends itself well to that, with every turtle being an agent.
Anyone here want to comment on Lua? It's now provided with LaTeX to help provide a bit more oomph, but I'm torn between learning it and seeing what other scripting languages are added in.
Objective C and C# are not terribly surprising but given that there are plenty of C-based languages that never even made the top 20, I find it curious as to which C-based languages are thriving and which are not. If it were on the merits of the language alone, then you'd expect usage to reflect specific features, and I was assured repeatedly in the discussion on Java that languages were not (as I'd claimed) popular due to promotion. Surely not all those people could be wrong, could they?
Logo's popularity is puzzling as this is far too recent a survey to reflect the UK's demand to switch from learning about office supplies in IT to learning about writing software and starting off on 2D graphics applications. However, precisely because of that switch, I'd expect Logo's popularity to rise at least a little bit more. It is, after all, a language designed to start people off on writing 2D graphics applications.
Pascal, Delphi and Ada get mentions, but Modula-2 and Modula-3 do not. Nor does Eiffel. Not a terrible shock, but again it does say a lot about perceptions in regards to usage. I'm no fan of Modula-2 or Modula-3, but there are bound to be cases where they're more appropriate choices but the others are used instead.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
I'm not sure I understand how it matters why it's popular. The index isn't a listing of strictly general purpose programming language.
Fallen out of the top 50 into obscurity where it belongs.
Tiobe generates the rating by the search results of google/bing, etc. So basically, it's just measuring how many web pages mention a particular language. It does *not* measure the actual usage of the language in applications.
With all these countries losing their subjective AAAs, it's quite logical that the objective C gains interest.
In many cases they can't even remotely accurately detect what language they are looking at described in a web page.
...is obviously because of iOS. More specifically it's because when Steve Jobs rejoined Apple in 1996 he brought with his a lot of NeXTStep tech, including Obj-C. That's why many of the system types have the 'NS' prefix. History lesson aside, it's rather a shame as it's (in my opinion) a rather poor and outdated language. If I'm ever asked by people who aren't familiar with it what it's like I say that it's the anti-sibling to C++. By this I mean that it has the same parentage as C++, but where C++ went down one path, Obj-C took the other. The fact that most well regarded modern languages have more in common with C++ than Obj-C should indicate that they made mistakes in its design. Obj-C's biggest failing is its tendency to fail at runtime rather than during compilation. This is mostly down to its weak type system.
Don't get me wrong, I think C++ is getting pretty creaky too. I'm quite fond of D; in a fantasy world, some big commercial player will start using it and make it popular.
You need to show a bunch of six-year-olds how to program in an hour? Here's LOGO. Here's your turtle. Type FWD 20, watch it move forward. Five minutes later, the kids know all the basic commands. Put a maze in front of them, let them figure it out. Congrats - they're programming with a computer.
LOGO was my first programming language, back on an Apple II with a big honkin 5 1/4" floppy disk drive. It was the eye-opening "OMG these things do more than Oregon Trail?!?!?" moment.
I hate the "fastest growing" statistic...If you only have 2 users and manage to get 2 more you've OMG DOUBLED your users!
nuf sed
Table-ized A.I.
Love to see it soldiering on. No advertising, no vendor lock-in, no World Wide Whatever Conventions, and yet there's no-one moving it off the top 10. Congratulations, to all the devs and monks.
Objective-C is none of those things: it is dynamically typed, has gaping type holes both in its C and in its OOP interfaces, it isn't "memory safe" (since it has pointers), and it has "automatic reference counting", which isn't the same as garbage collection.
While I have not been doing any serious coding since quite a while, it's encouraging to see that the four programming language I learned many years ago, are still in this top 20 list, and have not changed position since last year: Java, C, Pascal and.. BASIC :)
Wait, I forgot one: where's FORTRAN!?
"The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
Why does it matter why a programming language is popular?
Suppose increasingly popular embedded systems require C programming; does that make C growth any less valid?
Suppose increasingly popular financial systems require Cobol; does that make Cobol growth any less valid?
Suppose increasingly popular Web browser apps require JavaScript; does that make JavaScript growth any less valid?
Your job security and desirability as a programmer is more about domain knowledge than anything else. C++ and engineering knowledge will still carry you much much further than C# and fuck all.
Seriously, if you know C++ and you're thinking it might be outdated, by all means start looking at more modern languages, but the one thing that will ensure your success is to know more about the field you're working in.
I wonder where CAML figures in this list!?
TIOBE is an astonishingly dumb keyword scraper, and I suspect 99% of the uses of the word "Logo" are probably things like "Logo design" and "Corporate logo".
When they say that PHP, Python, etc, all are falling that may not be true. Since this shows percentages . . . Objective C and C# are growing, it doesn't mean that the other languages are actuall declinine in use, but their percent of the 100% Tiobe shows has to drop. They could actually be steady or growing in raw numbers even thought Tiobe shows a drop.
Most game development studios that are supporting iOS tend to use the minimal amount of Objective C required to access the underlying system libraries and features. The rest of the code is either C / C++. This is not only true within my workplace, but it seems to hold true for new hires relating their experience with the Objective C language.
For programmers used to reading C++ code and languages derived primarily from C, the Objective C syntax is an eyesore that makes figuring out the code at a glance much more difficult. While the language has some very compelling features, the atypical syntax makes using those features more of a chore.
END COMMUNICATION
I feel there's a "your mom" joke hidden somewhere.
Who is General Failure and why is he reading my hard disk?
Oracle will tell you the language is free, then sue you when you use it. Just ask Google.
PHP has stopped growing so much because it's reached a level where it can't grow exponentially anymore. It's used everywhere. Imagine how many more things that use php it would take for it to be 'the fastest growing' again.
As a simple example pretty much every videogame is written in it (C++ usually). On Windows it is almost always Visual C++, in particular because for the 360 that is what you have to use. The PS3 doesn't use VC++, of course, but it does use a C language for processor programming and nVidia's CG for programming the GPU (if you need more fine control than OpenGL ES offers). Go look at any posting for a programmer for a game company, see what language they are asking for.
Now obvious to anyone who's looked around that games are HUGE. Lots and lots of development going towards videogames. It's a large and profitable market.
In terms of pure C, that still reigns supreme in the embedded world and man is there a lot of that going on. we have tons of embedded devices, in things you'd never even think of.
The problem is as you note these guys use the "What are people chattering about," method, as do many people on Slashdot. They think because there's a lot of buzz about something that means it is in heavy use. Not really. There's no buzz about C++ because it is well established, but that doesn't mean it isn't getting used. It means the people using it don't feel the need to go on about it.
Surely Modula-2/3 are not used anymore. I used to be a big modulan, but now-a-days I gladly prefer perl and Ruby. Others would prefer Java or python.
Similarily with Eiffel, except that it was even less popular. This summer I tossed out all my books by Bertrand Meyer.
For the past decade the majority of programmers came out of college knowing how to wire together modules in Java, and that's about all they know. What we're seeing now is a huge shift to languages used on mobile devices. Native apps on Android aside, what TIOBE saw this year is an entire generation of programmers trying to learn a second programming language.
Knowing full well that the plural of anecdote is not data...
I write a lot of Python, it's my preferred scripting language. We use 2.x, looked at 3 when it came out, determined it was thoroughly incompatible and that translation and testing of our existing codebase wasn't practical, and proceeded to ignore it completely, no harm done. Now, one relevant point is that we don't generally use a lot of externally written python -- frameworks, etc -- so we don't have to worry about who is migrating, or not, etc.
What keeps me with Python (aside from familiarity) is the broad functionality available within the basic language distribution itself; the elegance of the language; an appreciation for the indent mechanism (I know others hate it, my point is I like it) and a certain perceived readability that may be the result of a personal quirk more than anything else.
Also... the more I learn about the functionality that is part of the base 2.x distribution, the more comfy I get with the whole thing.
The seemingly random mix of I and we in the above is the result of there being a programming team, but I get to make the key decisions. :)
I've fallen off your lawn, and I can't get up.
R is a, very large, library of Mathematical and Statistical libraries usually written in Fortran glued together by a scripting language. Maybe the popularity of R means that Fortran is becoming more popular, via the "back door".
BTW, check out Fortran '08. OO, fast, native parallel capability[*], supports 30 year old legacy code, and easy to learn. I've been hobbying with it. As the saying goes "It ain't your grandpappy's Fortran".
[*] Which is mind bending enough I haven't tried it, yet.....
putting the 'B' in LGBTQ+
StackOverflow is a great general purpose site, but was started by two guys VERY heavy into Microsoft and .Net technologies. As such, the C# guys jumped on it en masse, and so they are significantly over-represented here - there were already a lot of sites discussing Java and it takes time to migrate people over.
Objective-C users really had no other great public forums so StackOverflow quickly became a major hub for Objective-C information.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
It would be interesting if they listed in a column the last update for the specific language. Cause development cycles do exist.
According to wikipedia....
Java (2011, version 7) .Net4)
C (1999, C99)
C# (2010,
C++ (2007, really 2005, version TR1)
Obj-C (2007, Xcode)
PHP (2004, PHP5)
Really in the end, C is an exception since most OSes and their hardware drivers are written in C. Once you get an OS and device drivers written in a higher level language like C# or Java, you will see C drop off a cliff.
People forget that Logo is not only about the turtle-animation and drawing.
It is parent to Lisp and has list-processing primitives that make it quite good at processing streams of information.
Its actually a lot like Java; procedures can dynamically generate procedures as they run.
Its syntax is so simple, a child can learn it but you can easily program recursive algorithms with it.
I say all this from experience. My very first programming job, I was an apprentice at a place that did the books and business-accounting of about 30 client companies, all in Logo.
This Logo was running on a micro and we had 8 terminals hooked up to it. This logo had NO turtle, it was text-only. (M.I.T. Experimental Logo #53 or something like that)
I don't know the meaning of the word 'don't' - J
Any language that choose to let compile time errors through (because it might work at run time) is fundamentally broken and not suitable for non-toy projects.
Any language insufficiently flexible to allow this is fundamentally broken and not suitable for large scale projects.
Seriously though, just because that can happen doesn't mean it becomes a problem. There are very few problems that arise in practice from this flexibility. And the improved static analyzers catch a LOT of potential issues along those lines.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
It is when you realize that for every other platform with even a microscopic amount of market-share the price is $0. ;)
I will keep my "expensive" $99/year development platform over the "free" platform that requires I buy $1k worth of devices every six months for proper testing.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
If they eliminated the need for separate header files (including getting rid of the declaration/implementation divide), added keywords to get rid of the need for the CPP, added autoboxing, and improved runtime errors; it would be a world class language (again).
I'm not saying those would not be nice but they are not not really an issue.
While they were not doing those they were working on things like ARC, blocks and Grand Central Dispatch as well as many other areas of the core frameworks (which are to modern languages every bit as important as the core language itself). I know which I would rather have! The only thing I would actually say I still miss and desire to some degree is some kind of namespaces.
As an aside Cocoa is a wonderful and powerful class library, with one major flaw: needlesslyLongAndOverSpecific method names.
After working on Obj-C full time for many years now you can pull my veryLongButActuallyDescriptiveMethodNames from my cold, dead fingers. I prefer code that says what it does vs. comments that LIE. Always.
The lamdbas are nice though...
Between that and ARC I am not minding the continued need for header files one bit...
The thing is you are looking at it wrong. It's not that other languages really surpassed Objective-C, its just that it took a very different path. It's like a Steampunk language, full of advances that simply made lots of different choices than the mainstream languages but still ended up with advanced technology that is hard to appreciate until you really get into it.
Sure the core language may have spent a while seemingly not changing before iOS but all that while Apple was growing a VERY excellent set of frameworks and development tools to complement the language.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
A cruise ship ran aground off Italy: http://www.bbc.co.uk/news/world-europe-16558910 OK, I had to add something to the subject to spice it up, else no-one will click it.
Excuse me, but please get off my Pennisetum Clandestinum, eh!
Considering what you can do in c it is not strongly typed either as you can just tell the compiler to cast the type to something completely unrelated and it will do so happily.
However all these languages support compile time variable types which helps to reduce the number of runtime errors. Of course you are free to exclusively use id for Objective-C, void* for c or Object for C# and java just don't complain about type errors in the production system.
$99 isn't all. You also have to buy a mac. The 30% fief at the App store hurts too. iOS == GITMO as far as I'm concerned. I have no desire to go there.
Your job security and desirability as a programmer is more about domain knowledge than anything else. C++ and engineering knowledge will still carry you much much further than C# and fuck all.
Very well said, couldn't agree more.
Incidentally, this also applies to just about every language on the list other than C.
C++ and Ada have ISO standards as well. That makes 3 out of 20 (Pascals ISO standard expired) so I guess you are right.
To lazy to look up the exact place but last I saw Fortran it was between 20 and 30.
Comment removed based on user account deletion
Just to show my own little pet peeve with TIOBE, it does a terrible job of handling ColdFusion. It looks for "CFML", which basically nobody uses when describing the language. Stackoverflow.com doesn't even have a CFML tag. However, if you add up the ColdFusion-related tags, you get:
Unanswered: 417 / 3,712 = 11.23%
TIOBE puts Lisp as #13, but "CFML" as somewhere between 51 and 100. If you go strictly by Stackoverflow.com questions (which I don't recommend either), ColdFusion is more than twice as popular as Lisp.
www.clarke.ca