Forgot your password?
typodupeerror
Programming PHP Python Ruby Stats News

2011's Fastest Growing Language: Objective-C 356

Posted by Soulskill
from the language-war-ammo dept.
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?"
This discussion has been archived. No new comments can be posted.

2011's Fastest Growing Language: Objective-C

Comments Filter:
  • The top 20 (Score:5, Informative)

    by danbob999 (2490674) on Friday January 13, 2012 @05:47PM (#38691854)

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

  • Re:Objective C (Score:5, Informative)

    by Goaway (82658) on Friday January 13, 2012 @05:50PM (#38691888) Homepage

    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.

  • by edxwelch (600979) on Friday January 13, 2012 @06:00PM (#38691988)

    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.

  • by Timbo (75953) on Friday January 13, 2012 @06:05PM (#38692058) Homepage

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

  • Re:Objective C (Score:4, Informative)

    by Anonymous Coward on Friday January 13, 2012 @06:14PM (#38692146)

    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.

  • Re:Objective C (Score:4, Informative)

    by 0100010001010011 (652467) on Friday January 13, 2012 @06:19PM (#38692204)

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

    Um. You mean the version that I downloaded with XCode?

  • Re:Objective C (Score:5, Informative)

    by LWATCDR (28044) on Friday January 13, 2012 @06:20PM (#38692214) Homepage Journal

    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 [stackexchange.com]
    and here
    http://iphonedevelopertips.com/cpp/c-on-iphone-part-1.html [iphonedevelopertips.com]
    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.

  • Re:Objective C (Score:5, Informative)

    by beelsebob (529313) on Friday January 13, 2012 @07:17PM (#38692842)

    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 [uiuc.edu] 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.com] Apple's Objective-C runtime too.

  • Re:C# (Score:4, Informative)

    by Noughmad (1044096) <miha.cancula@gmail.com> on Friday January 13, 2012 @07:47PM (#38693132) Homepage

    No, it's the real world that is out of touch with Slashdot.

  • Re:C# (Score:5, Informative)

    by Rubinstien (6077) on Friday January 13, 2012 @08:55PM (#38693814)

    Indeed this is so. You can also compile Objective-C using clang/llvm . See: http://clang.llvm.org/compatibility.html#objective-c [llvm.org] . 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 [corecode.at] ). 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/ [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 [blogspot.com] ).

    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 [gnustep.org] ), or the GNUStep Core packages ( http://www.gnustep.org/resources/downloads.php [gnustep.org] ) for other platforms. The Étoilé Project http://etoileos.com/ [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.

  • by jd (1658) <<moc.oohay> <ta> <kapimi>> on Friday January 13, 2012 @09:00PM (#38693854) Homepage Journal

    If you ignore the peaks and troughs, looking only at the general trend, it has been on a fairly steady decline since 2002 according to that graph. (I'm completely ignoring the specific values, for a graph like this you always want to plot a smooth curve that reflects the general pattern and not the individual data points.)

    Because the graph is based on what is taught, you're looking at a latency of 1-2 years - maybe more - to factor in the delay between the changes in demand and changes in the classroom. That would imply that the demand itself changed around 2000 at the latest. The steady decline also means that the 2003 and 2008 revisions to the standard have not significantly altered the trend - up or down - and that the problems originate with the C++ 1998 standard (the last one before the known start of the decline).

    My guess is that between 1998 and 2000, there would have been a rise in usage of C++ (standards make programming much easier), that it crested around that time and that the decline (which I'm estimating to have started midway between the first and second formal language specifications) came from better specialist tools. I honestly couldn't tell you when CORBA started dying as a standard, but it seems to me that it was around the same timeframe and for much the same reason as I'm giving for C++ (RPC is perfectly good for remote functions, sockets are perfectly good for streaming data, etc - you just don't need a top-heavy solution that can do anything adequately but nothing brilliantly).

    Likewise, I think that's part of why scripting languages are starting to suffer. A lot of them are becoming extremely top-heavy and whilst that might make programmers happy in the short-term (they don't have to mix languages right there and then), it makes programmers unhappy in the long-term (they do have to mix languages anyway, it's just more complicated to do so and they feel like they were promised they didn't have to).

    If I extrapolate from this, I'm going to say XML (which now requires a monstrous number of libraries to process in various ways) is going to fall out of favour. Architecture-neutral data storage can be done using NetCDF, a key/value database like QDBM is quicker to read/write than an XML database, precisely because XML is often processed as ASCII text it is not very good at handling UTF32 safely, and unordered data is a bugger to read. Specialist tools already exist to do all of the things XML is used for, so I would expect XML to lose ground to those tools once it passes the critical threshold of complexity. It does not appear to have hit that threshold yet, but it will if it continues to gain complexity with no obvious corresponding gain in usefulness. (XML is very useful for some tasks but it doesn't become more useful for those tasks because of XML-RPC or other rarely-used extensions.)

    Ada was once extremely popular, far more so than now, but lost a lot of ground because it also became extremely complex. There have been times when Ada has been the laughing-stock of programming because nobody could build a compiler capable of handling it. It was only partially implemented, which caused severe problems for portability but also for provability. (Ada was the flagship language of Formal Methods for a long time, but incomplete and overweight ships sink. It damaged the entire Formal Methods methodology to such an extent that it may never recover.)

    This pattern also explains the love-hate relationship with X11 and with other designs that got.... a little too flamboyant. My old Software Engineering instructor used to represent this with a picture of a tyre swing with three ropes holding the tyre up. Each rope functions perfectly as designed, but the result is unusable.

  • by fyngyrz (762201) on Friday January 13, 2012 @09:28PM (#38694094) Homepage Journal

    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.

    ...and that goes double for C -- can't think of the last time I had a C question I couldn't answer without even cracking a reference or prodding Google. I spend my time being productive with it, not talking about it, except I do tend to say something when the wags around here declare it's dead, etc., lol

  • Re:C# (Score:4, Informative)

    by Anonymous Coward on Saturday January 14, 2012 @01:27AM (#38695330)

    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.

Luck, that's when preparation and opportunity meet. -- P.E. Trudeau

Working...