Slashdot Mirror


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?"

43 of 356 comments (clear)

  1. Objective-C growth by bonch · · Score: 5, Interesting

    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.

    1. Re:Objective-C growth by Joce640k · · Score: 4, Insightful

      If all that index does is count web pages that mention a language then isn't it more likely to be a measure of how many problems people are having with a language? Languages which "just work" would get fewer hits than those which don't.

      --
      No sig today...
    2. Re:Objective-C growth by BasilBrush · · Score: 4, Insightful

      It's a good hypothesis, but it's pretty easy to test. The TIOBE Index searches the top search engines for the name of the language, followed by the word programming, as a phrase. e.g. "BASIC programming", "C programming".

      I've just searched Google for "Objective-C programming" and most of the results are related to language related books, web tutorials and other related resources. Not problems.

      The guys at TIOBE perhaps aren't so stupid.

    3. Re:Objective-C growth by AmbushBug · · Score: 5, Insightful

      Objective-C's growth in popularity coincides with the Flurry Analytics study [flurry.com] that showed most mobile developers targeting iOS, with support for Android dropping by a third over 2011.

      The Flurry Analytics study is flawed in that it only counts devs using Flurry. As others have pointed out, most Android devs use the free Google Analytics. This biases the Flurry study towards iOS.

    4. Re:Objective-C growth by Smallpond · · Score: 5, Interesting

      Let's compare it to the number of unanswered questions on stackoverflow.com for various language tags:

      c# 31971
      java 28099
      javascript 26978
      php 26755
      objective-c 11749
      python 9078
      c++ 8024
      ruby 5080

      C, Perl, Basic, Lisp, etc - none

    5. Re:Objective-C growth by Joce640k · · Score: 4, Insightful

      I'm not saying the list isn't accurate ... it's just that I can imagine too many plausible ways of skewing it.

      eg. Book publishers might be looking at that list when they decide what books to publish each year. This creates a feedback loop where their own books push a language up the list.

      --
      No sig today...
    6. Re:Objective-C growth by Smallpond · · Score: 4, Insightful

      I think it reflects the activity in the language and the number of new, untrained programmers starting out on it.

  2. C# by Anonymous Coward · · Score: 5, Interesting

    How is the real story not that C# is 3rd up from 6th!

    1. Re:C# by Nerdfest · · Score: 4, Insightful

      So the rosy future of software development directed and controlled by Microsoft and Apple? Awesome. I'm sure that will work out well for all involved.

    2. Re:C# by samkass · · Score: 5, Insightful

      I suspect that both C# and Objective-C market share will only continue - probably even taking the top spots. Windows Phone 7 uses mainly C# and so will Metro apps on Windows 8. Frankly, it is a really good language and beautiful to work with. Likewise Objective-C is strong because of iOS and OS X. Java is slowly dropping from enterprise usage and is being replaced by C#.

      Your argument about C# is spot-on on the client side, but I have yet to see any significant movement from Java to C# on the enterprise side. If anything, enterprises are continuing to build larger and larger installed bases of Java software that's further locking them in. In addition, I see a general distrust of Mono and a liking for Linux that biases them against C#.

      --
      E pluribus unum
    3. Re:C# by Bryan-10021 · · Score: 5, Interesting

      Java is slowly dropping from enterprise usage and is being replaced by C#.

      Really? Show me where C# is slowly replacing Java in the enterprise? On the server side Java has no competition. If C# is replacing Java then that would mean companies are also replacing UNIX with Windows as it's the only platform that supports C# (forget Mono). That's definitely not happening.

    4. Re:C# by Rubinstien · · Score: 5, Informative

      Indeed this is so. You can also compile Objective-C using clang/llvm . See: http://clang.llvm.org/compatibility.html#objective-c . The clang implementation is at feature parity with the Mac OS X 10.7 version of the language, and based on my limited understanding of some comments I've read in various announcements, supports some additional features as well. Use of those features requires the GNUStep Objective-C runtime (libobjc2), rather than the GCC runtime. A high degree of Cocoa compatibility is available using the GNUStep Base (Foundation) and GNUStep GUI (AppKit) libraries, for numerous Unix platforms as well as Windows. A version of CoreFoundation is also available which wraps GNUStep Base, with a rewrite coming very soon that implements CoreFoundation in plain C. Various other Cocoa and iOS-compatible libs are available in disparate states of implementation. As always, GNUStep could use more developers and more users. Companies wishing to port their MacOS software to other platforms are encouraged to investigate GNUStep; previous porting efforts have positively contributed to the project by discovering and reporting bugs and sometimes by providing direct improvements.

      GNUStep was recently used to port the Mac-only racing game CoreBreach to Linux: ( http://corebreach.corecode.at/CoreBreach/About.html ). Other visible examples of Cocoa/Objective-C applications ported to Linux from MacOS include the 'eggPlant' automated testing tool from TestPlant ( http://www.testplant.com/ ), and plenty of previously Mac-only Free/Open-Source software such as Bean.app ( http://1.bp.blogspot.com/_2qH5zqXu7wQ/TRi6sNiNZjI/AAAAAAAAADM/i8RwqzQ6OYE/s1600/bean-gnome-theme.png ).

      The parent is correct that you do not need Apple kit to develop in Objective-C. To work with most examples you will find, you will need Cocoa-compatible development libraries and tools, though. Interesting starting points include the Windows Installers, which include all of the components you would need to get started ( http://www.gnustep.org/experience/Windows.html ), or the GNUStep Core packages ( http://www.gnustep.org/resources/downloads.php ) for other platforms. The Étoilé Project http://etoileos.com/ is also interesting. Those of you in Europe who are interested and intend on attending FOSDEM should stop by and visit the talks and devroom sponsored by these projects.

    5. Re:C# by Anonymous Coward · · Score: 4, Interesting

      "I see NetWare and UNIX getting replaced with Windows. It's cheaper than either of those options"

      O rly?

      It's weird: I'm seeing Solaris and other Unices being replaced with Linux. Rock-stable solid and 100% free Linux distros btw.

      There are even entire *continents* now (cough, Europe, cough) where announcements are made that countries should favor open-source and free software over commercial OSes making $$$ fly to the U.S.

      Despite the fudged TCO studies sponsored by M$ and linked by astroturfing M$ shills here, lots of people deciding the IT budget are starting to realize that they do not have to pay the M$ tax.

      "The only area where Microsoft still hasn't won is in reliability" -- Add price, security and performances. And you may be on to something...

    6. Re:C# by bsane · · Score: 4, Insightful

      If you think JavaScript can or should replace strongly typed, compiled languages then you are severely deluding yourself.

      At present C, C#, Objective-C, and Java are still your best bets

      You realize that one of those four isn't strongly typed, and doesn't resolve method calls until runtime?

    7. Re:C# by Anonymous Coward · · Score: 4, Informative

      My observation has been the very opposite. I have seem very large windows deployments get replaced by Linux at several businesses especially with the movement to virtualization where one can get very lean headless Linux VM's that use minimal resources that allow better h/w scalability at much lower operating costs for running server software.

  3. Objective C by aahpandasrun · · Score: 5, Funny

    Objective C is only popular because iOS requires it. It's like reporting that orange jumpsuits are the hot fashion trend in prison.

    1. Re:Objective C by antitithenai · · Score: 4, Insightful

      Which doesn't change the fact at all, and only shows the importance of iOS.

    2. Re:Objective C by Anonymous Coward · · Score: 4, Insightful

      Actually, that would be the case if the news was "Objective-C is the most popular language for iOS development". If orange jumpsuits would be one of the most used form of clothing everywhere because they are used in prison, well, that would be newsworthy...

    3. Re:Objective C by SpinyNorman · · Score: 5, Insightful

      Of course it changes the facts - it's not Objective-C that's popular - it's the iPhone that's popular. If the language itself was popular then we'd see it being used where it was a choice, not a necessity.

    4. Re:Objective C by DanTheStone · · Score: 4, Insightful

      Different definition of popular. This is using it in the "most used" sense, not the "most liked" sense.

    5. Re:Objective C by nobodyman · · Score: 4, Insightful

      Actually that's not even remotely true. You always had option of using C and C++ in addition to Objective C, and ever since apple removed the language restriction you can use whatever language you wish so long as it compiles to native code, resides in the app bundle, and doesn't use undocumented API calls. In fact many games are written in C# using monotouch.

      But even if your statement was correct, I'm not sure it's relevant. There are lots of environments that *require* Java development, so do we then apply some sort of negative weighting to it's rank on the TIOBE index? If it's popular it's popular.

    6. Re:Objective C by Anonymous Coward · · Score: 4, Insightful

      And on that note, it really shouldn't be called "Objective-C" but rather "Apple's bastardized take on Objective-C."

      Objective-C is what ever Apple says it is since they for all intents and purposes owns it. They are only only people that make an Objective C compiler so they get to define the language.

    7. Re:Objective C by Goaway · · Score: 4, Informative

      Even GNUstep considers Apple's implementation the official one, and they try to follow it as closely as they can.

      When you run into problems porting, it is because GNUstep is lagging behind.

    8. Re:Objective C by GuldKalle · · Score: 5, Funny

      Were you popular in school?

      --
      What?
    9. Re:Objective C by ColdWetDog · · Score: 4, Funny

      Are you new here?

      --
      Faster! Faster! Faster would be better!
    10. Re:Objective C by Anonymous Coward · · Score: 4, Informative

      Yes, let's not, and point out that clang is BSD licensed.

      http://llvm.org/svn/llvm-project/cfe/trunk/LICENSE.TXT

      The exact same thing holds true for their "Objective-C" compiler. It may have had its roots in open source, but under Apple it most certainly is not now and never will be again.

      If clang started as open source that apple made proprietor, then why is the very first commit from Apple? http://lists.cs.uiuc.edu/pipermail/cfe-commits/2007-July/000000.html
      And why is the newest feature to come to Objective C being actively worked on Top of Tree by an apple employe. http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120109/051009.html

      So I stand 100% by calling Apple's compiler proprietary shit.

      Nope you stand 100% full of shit.

    11. Re:Objective C by LWATCDR · · Score: 4, Informative

      Actually IOS does allow you to develop in C++ if you want.
      http://gamedev.stackexchange.com/questions/11079/objective-c-or-c-for-ios-games
      and here
      http://iphonedevelopertips.com/cpp/c-on-iphone-part-1.html
      for examples.
      To be honest I have worked in C++ and Objective-C and I like Objective-C better. When I work on Windows or Linux I use C++ because that is the better supported language on those platforms. On IOS I use Objective C.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    12. Re:Objective C by VGPowerlord · · Score: 5, Insightful

      And on that note, it really shouldn't be called "Objective-C" but rather "Apple's bastardized take on Objective-C."

      Obj-C is a proprietary language, in a sense that it is unilaterally defined by a single entity. Said entity in this case was Stepstone, then NeXT, and now Apple. There's no ANSI or ISO Obj-C, nor any other standard, outside of the language spec that Apple publishes. So it's kinda silly to blame them for not toeing the line. If anything, you should blame GNUstep for not keeping up.

      Incidentally, this also applies to just about every language on the list other than C.

      Just to name a few: Java (Oracle), C# (Microsoft), JavaScript (Mozilla nee Netscape), PHP (The PHP Group), Ruby (Yukihiro Matsumoto), Python (Guido van Rossum)...

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    13. Re:Objective C by sourcerror · · Score: 4, Funny

      Then your were popular in the "most used" sense.

    14. Re:Objective C by beelsebob · · Score: 4, Informative

      Which means that Apple's version will never see the light of day.

      clang.llvm.org

      Clang was an internal apple project, open sourced by them here's the email in which Chris Lattener (an apple employee) open sourced the code that he had written on apple's time. The code has continued to be released by apple under the BSD license.

      For reference, here's Apple's Objective-C runtime too.

    15. Re:Objective C by fyngyrz · · Score: 5, Interesting

      I'm in the midst of a pretty large image processing project for OS X, and the UI "wrapper", which is minimal, is in ObjC, but everything else is in C, implemented as a library. So we barely code in ObjC at all.

      Seems to me that terms like "must" are being thrown around here without any real knowledge of the options available.

      --
      I've fallen off your lawn, and I can't get up.
  4. "Objective-C will be the next big language." by Sebastopol · · Score: 4, Funny

    My IT friend in 1993.

    Time to find him on facebook.

    --
    https://www.accountkiller.com/removal-requested
    1. Re:"Objective-C will be the next big language." by jockm · · Score: 4, Insightful

      My boss and I believed that in '87, it is (IMHO) far better than C++, and at the time it had a great chance. Obj-C was a great language for the time, probably the most advanced practical OO language of the time. Sadly it never got any traction until NeXT.

      Sadder still is the fact that it didn't keep up with the time. It is still state of the art for the late 80s/early 90s; but languages moved on and improved. 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).

      As an aside Cocoa is a wonderful and powerful class library, with one major flaw: needlesslyLongAndOverSpecific method names. Where Smalltalk was content with anArray getAt: someIndex NeXT decided to drive in the fact that you were getting an object: [anArray objectAtIndex: someIndex], despite the fact that a NSArray can only old objects. That is a mild example, but the power in the library is amazing.

      Sadly the stewards of Obj-C still seem to think the language is fine as it is, which is a shame. The lamdbas are nice though...

      --

      What do you know I wrote a novel
  5. The top 20 by danbob999 · · Score: 5, Informative

    Java
                    C
                    C#
                    C++
                    Objective-C
                    PHP
                    (Visual)
                    Python
                    Perl
                    JavaScript
                    Delphi/Object
                    Ruby
                    Lisp
                    Pascal
                    Transact-SQL
                    PL/SQL
                    Ada
                    Logo
                    R
                    Lua

    1. Re:The top 20 by Hatta · · Score: 5, Interesting

      Cheers for R! I didn't expect to see a statistical programming environment on this list, but I'm not surprised either. R is getting really big in bioinformatics, which is a burgeoning field right now. I used R myself more often in 2011 than in any previous year, and I'm sure I'll use it more this year. If you use Excel, especially if you use macros or VBscript, you should give R a look. Steeper learning curve, but far more powerful and rewarding.

      --
      Give me Classic Slashdot or give me death!
  6. Notes on the trends. by Animats · · Score: 4, Interesting

    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.

  7. Logo by LateArthurDent · · Score: 4, Interesting

    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.

  8. Yiobe's bogus metrics by edxwelch · · Score: 5, Informative

    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.

  9. The reason for its popularity... by Timbo · · Score: 4, Informative

    ...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.

  10. Explaining LOGO is easy by anyGould · · Score: 4, Interesting

    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.

  11. Most used. by Doctor+O · · Score: 4, Funny

    Then your were popular in the "most used" sense.

    I feel there's a "your mom" joke hidden somewhere.

    --
    Who is General Failure and why is he reading my hard disk?
  12. Ya people really underesitmate C/C++ by Sycraft-fu · · Score: 5, Insightful

    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.

  13. Issue with this metric too though by SuperKendall · · Score: 4, Insightful

    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