Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Objective-C Comes of Age

Soulskill posted more than 2 years ago | from the late-bloomers dept.

Programming 437

New submitter IdleThoughts writes "Sometimes it takes a long time to spark a revolution. Long the ugly duckling of programming languages, iOS' Objective-C passed C# in the 'TIOBE Programming Community Index this month and seems on a trajectory to overtake C++ in the next few. It was invented in the early 1980s by Brad Cox and Tom Love, with the idea of creating 'Software Integrated Circuits' and heavily influenced by Smalltalk — yet another legacy from Xerox PARC, along with desktop GUIs, ethernet and laser printers. It was adopted early on by Steve Jobs' NeXTStep, the grand-daddy of all that is now OS X. It had to wait, however, for the mobile device revolution to have its day, being ideally suited to the limited resources on portable devices. It's still being actively developed by Apple and others, sporting the new automatic reference counting and static analysis in the Clang compiler. It turns out it has supported dynamic patching of code in applications all along. What more surprises does this venerable language have up its sleeve?"

cancel ×

437 comments

Sorry! There are no comments related to the filter you selected.

New features (5, Informative)

bonch (38532) | more than 2 years ago | (#39969463)

What more surprises does this venerable language have up its sleeve?

Clang recently added literal syntax for collections and boxed numbers:

// Old way.
NSArray *array = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
                                            @"bar", @"foo",
                                            @"post", @"first",
                                            nil];
NSNumber *num = [NSNumber numberWithInteger:42]; // New way.
NSArray *array = @[ @"one", @"two", @"three" ];
NSDictionary *dict = @{
                                              @"foo" : @"bar",
                                              @"first": @"post"
                                            };
NSNumber *num = @42;

Properties will also be synthesized by default, so you won't have to write @synthesize statements anymore, and corresponding ivars will be synthesized with an underscore prefixed name.

Objective-C is interesting to follow because it's a language that was once considered totally niche and almost completely irrelevant, but the frameworks were beloved by developers, and the language's keepers kept at it long enough for the world to see how useful the language is. It also has historical significance as the tools used for creation of the original WorldWideWeb program as well as the development of Doom and Quake. John Romero wrote [rome.ro] about he and Carmack simultaneously editing the same map in DoomEd thanks to distributed objects.

It's still verbose and Smalltalk-ish, but the language as a whole has improved drastically since the transition to Clang. According to the mailing list, Apple has more engineers allocated to the language than ever before, and a lot of it has to do with the move away from GCC.

I hear that GCC is working toward being easier to modify, so the competition from Clang has been good for everybody, and it's all open source.

Re:New features (0, Troll)

Anonymous Coward | more than 2 years ago | (#39969595)

Sad sad day. Objective-C sucks! C# rocks!

Re:New features (-1)

Anonymous Coward | more than 2 years ago | (#39969645)

Where's XCode for non-Mac? Not everyone wants to get $500 in redundant hardware to run software.

Re:New features (4, Informative)

Anonymous Coward | more than 2 years ago | (#39969755)

Ignorant comment. You don't need Apple to do objc. The compilers are open source. (Both gcc and clang.) There is also the GNUstep project, which implements many of the NS* classes.

Re:New features (1)

Anonymous Coward | more than 2 years ago | (#39970673)

Sounds a lot like the Mono vs .NET debacle. There's absolutely nothing that says that Apple won't just come around and sue everybody elses buts off for unlicensed use of Objective-C and Apple's copyrighted APIs.

Re:New features (0, Flamebait)

Anonymous Coward | more than 2 years ago | (#39969765)

Piss off, troll. Developers have always had to shell out for tools to program on their chosen target platform. Nothing's free.

I'm sure someone just handed you a free PC when you decided to program for Windows or Linux.

Re:New features (5, Funny)

Sarten-X (1102295) | more than 2 years ago | (#39969973)

I'm sure someone just handed you a free PC when you decided to program for Windows or Linux.

My last Linux dev box was pulled from a dumpster by a friend, and was handed to me. I wiped the Windows XP installation off, installed Debian, and happily started coding, so, um... yes.

Re:New features (3, Informative)

Anonymous Coward | more than 2 years ago | (#39970329)

STFU whippersnapper, when I was a kid we cut punchcards out of coke boxes and punched them with our teeth -- and we liked it.

But seriously -- if you don't have a computer to run your programs on, it doesn't much matter whether you have one to write them on or not. There was a day when every computer came with the usual set of programming tools (granted, for much of this period the programming tools, at least on home machines, were rather minimal and essential to using the computer as well). So even if you only ever ran other people's programs, you had a BASIC interpreter right there if/when you took up programming. I understand why few people have any use for development tools these days, but you'll note all the main consumer OSes/OS vendors provide a free development environment for that platform, even if it's not installed with the OS -- almost every Linux distro packs GCC, Apple offers Xcode, and Microsoft offers a stripped-down version of Visual Studio. Lucky for GP, there's also free Objective-C compilers for pretty much all platforms -- it seems more likely that he didn't know of them (due to everyone's retarded focus on Objective-C only w/r/t iOS) than that he's trolling.

Re:New features (5, Insightful)

gwking (869658) | more than 2 years ago | (#39969937)

You don't need Xcode to use Obj-C. Clang and gcc are open source and you can use them on Linux and Windows. You can even use clang in Visual Studio! If you mean that you want to develop OS X or iOS applications then yes, you should at least have one of those around to test on. And please hold any more complaints about Xcode being Mac-only until MS releases Visual Studio that isn't Win-only.

Re:New features (-1)

Anonymous Coward | more than 2 years ago | (#39969955)

You don't want XCode even on mac. It's just a piss poor piece of crap. Even if iOS was considered as 'intuitive software', XCode is the exact opposite of that... files opening in 'random' windows, retarded debugging tools, totally useless code completion, etc...

Seems like Mac is a win ... (1)

Anonymous Coward | more than 2 years ago | (#39970021)

Where's XCode for non-Mac? Not everyone wants to get $500 in redundant hardware to run software.

You save $500 on hardware but spend $500 on Microsoft Visual Studio Pro. So its a wash. However when you consider that the hardware lets you dual boot Mac OS X or Microsoft Windows the Mac seems like a win. Especially when you consider Mac OS X offers you a really nice Unix environment if one is so inclined.

Re:Seems like Mac is a win ... (1)

VGPowerlord (621254) | more than 2 years ago | (#39970143)

You save $500 on hardware but spend $500 on Microsoft Visual Studio Pro. So its a wash. However when you consider that the hardware lets you dual boot Mac OS X or Microsoft Windows the Mac seems like a win. Especially when you consider Mac OS X offers you a really nice Unix environment if one is so inclined.

I do? You mean I'm not supposed to download it from my work MSDN account for my personal use? :P

Re:Seems like Mac is a win ... (1)

Anonymous Coward | more than 2 years ago | (#39970185)

You know, or get the Express version that does everything a hobbyist needs for free.

Re:Seems like Mac is a win ... (3, Informative)

Anonymous Coward | more than 2 years ago | (#39970701)

You know, or get the Express version that does everything a hobbyist needs for free.

Emphasize hobbyist, actually only some hobbyists. No 64-bit code for Express. No Microsoft Foundation Classes, MFC really simplifies Windows use interface coding and it is very commonly used in Windows apps. No profile guided optimization. No remote debugging. No resource editors.

Re:Seems like Mac is a win ... (0)

Anonymous Coward | more than 2 years ago | (#39971017)

Express would not be the equivalent version with respect to Xcode. Pro would be the corresponding version.

Re:New features (4, Interesting)

flakas (2637233) | more than 2 years ago | (#39969685)

Sad sad day. Objective-C sucks! C# rocks!

In many ways this is true, but then again, they aren't the same kind of languages. I absolutely love C# syntax and the easy readability of the code. .NET libraries are also wonderful, and in general I would rather use C# than Objective-C because of this.

But Objective-C is closer to C and C++ than C#. I would however hope that Apple brings something like C# to OS X and iOS. I would start developing with them right away.

Re:New features (5, Informative)

gwking (869658) | more than 2 years ago | (#39969871)

The readability is a bit clearer in C#, but Apple is already fixing that in Obj-C with changes like auto synthesizing properties and making the declarations of common objects simpler like the initial poster showed (with code examples). But aside from simple things like that, the readability of the code depends a lot more on the programmer than on the language.

If you haven't used Obj-C, at least not on an Apple platform, then that's why you don't know that Apple provides excellent frameworks very much like MS provides .NET. Check out: https://developer.apple.com/library/mac/navigation/#section=Frameworks [apple.com] Almost anything you want to do, Apple provides the foundational building blocks to help you build the application, and not waste time implementing a queue, list, or talk to a webserver.

Re:New features (-1, Flamebait)

oh_my_080980980 (773867) | more than 2 years ago | (#39969917)

Are you kidding me? C# is the fisher price of programming languages. Windows programmers can't code without their gui widgets in Visual Studio. If it isn't drag and drop, they can't code it.

Re:New features (1, Troll)

Richard_at_work (517087) | more than 2 years ago | (#39970155)

Let me guess, a Windows developer killed your dog, slept with your wife, read your Sports Illustrated and ruined your birthday party?

Or are you just the type that holds a stupid trollish opinion about something you obviously have no idea about?

Re:New features (5, Funny)

Dishevel (1105119) | more than 2 years ago | (#39971045)

Let me guess, a Windows developer killed your dog, slept with your wife, read your Sports Illustrated and ruined your birthday party?

Worse.
A Windows developer developed Norton.
Another Windows developer got drunk one night and had all of his humanity removed and wrote Mcafee.
Then there was the infamous Windows developer that did Internet Explorer. I heard he started his career of terror by writing THIS [wikipedia.org] program.

Re:New features (1)

PlastikMissle (2498382) | more than 2 years ago | (#39970195)

You do realize there's more than GUI building to C#, right?

Re:New features (0)

Anonymous Coward | more than 2 years ago | (#39970207)

It is simple enough to prove your statement false with a single example of a "Windows programmer" writing C# code without a GUI drag and drop. I am no Windows zealot but give me break. That is an absurd statement.

Re:New features (1, Funny)

binarylarry (1338699) | more than 2 years ago | (#39970345)

Yeah but it's not even original. It's a bad knock off of Java.

So it's like a Soviet Russian knock off of fisher price where instead of safe plastic, you get sharp rusty metal that give you AIDS and locks you into a lifetime treatment program to survive.

Re:New features (0)

Anonymous Coward | more than 2 years ago | (#39970519)

It's a superb knock-off of Java. In fact, it is such a good knock-off that it is better then the original.

Re:New features (1)

spiffmastercow (1001386) | more than 2 years ago | (#39971005)

By GUI widgets are you referring to the drag and drop windows forms crap? Because I don't use that. On the other hand, if you're talking about intellisense, that feature is a freaking godsend and has reduced the amount of time I spend looking at API reference manuals to almost zero.

Re:New features (1)

PlastikMissle (2498382) | more than 2 years ago | (#39970095)

C# is already available on both MacOS and iOS through Mono.

Re:New features (2)

aceboomblain (830620) | more than 2 years ago | (#39970489)

What you are referring to has been around longer that C#, it's called Java. <g>

Re:New features (1)

Maury Markowitz (452832) | more than 2 years ago | (#39969873)

"Clang recently added literal syntax for collections and boxed numbers"

Oh thank your deity. Long overdue IMHO.

bonch is a corporate shill for Apple (-1)

Anonymous Coward | more than 2 years ago | (#39970019)

Notice how bonch, a notorious shill for corporations such as Apple and Microsoft and with an openly anti-google agenda, happens to post a verbose comment, with source code examples and all, right at the exact same time this piece of Apple propaganda is published on slashdot.

If you mod this shill acount up, you are granting the marketing corporation behind it mod points which they can use to upmod posts made by themselves, which grants them the ability to manipulate discussions and modbomb critics.

If you want a cleaner slasdot, free from shills, mod this astroturfing account down.

Re:bonch is a corporate shill for Apple (1)

X0563511 (793323) | more than 2 years ago | (#39970257)

What the fuck does this have to do with Apple?

Re:bonch is a corporate shill for Apple (0)

Anonymous Coward | more than 2 years ago | (#39970281)

You are delusional. You see shills everywhere. You accuse everyone who says anything good about Apple or Microsoft of being a shill. You have called Mac/iPhone developers Microsoft shills when they fairly point out something Microsoft did right.

You are just a cyber-stalker with a hard on for a couple of posters. You are not a crusader. You are just a silly spammer with a weird hobby. Get over yourself.

Re:bonch is a corporate shill for Apple (2, Insightful)

Anonymous Coward | more than 2 years ago | (#39970471)

Notice how bonch, a notorious shill for corporations such as Apple and Microsoft and with an openly anti-google agenda, happens to post a verbose comment, with source code examples and all, right at the exact same time this piece of Apple propaganda is published on slashdot.

The asterisk next to his name means he's a subscriber, dumbass. Subscribers see articles before non-subscribers. You can write a reply in the box and submit it when the story goes live.

Re:bonch is a corporate shill for Apple (-1)

Anonymous Coward | more than 2 years ago | (#39971161)

bonch isn't just a subscriber. It's a shill account used to shovel industrial levels of corporate propaganda onto blogs like slashdot. The bonch account is responsible for a continuous torrent of pro-apple/ms, anti-google article submittions, as posts pushing the corporate messages they represent.

slashdot.org/comments.pl?sid=2818773&cid=39841165

Re:New features (-1)

imthesponge (621107) | more than 2 years ago | (#39970111)

Objective-C literally looks like vomit.

Re:New features (0)

Anonymous Coward | more than 2 years ago | (#39970757)

It _literally_ looks nothing like vomit, but feel free to assert that it looks like vomit, speaking figuratively.

Re:New features (1, Funny)

omfgnosis (963606) | more than 2 years ago | (#39970927)

You should see a doctor!

Comes of age? (1)

V. P. Winterbuttocks (2246736) | more than 2 years ago | (#39969585)

By my figuring it was legal in the mid-to-late 2000s.

Re:Comes of age? (4, Funny)

MightyYar (622222) | more than 2 years ago | (#39970093)

In software years, one does not come of age until his 30s, and only then because he finally accepts prostitution.

Yes but (2, Insightful)

Anonymous Coward | more than 2 years ago | (#39969593)

Its recent success has obviously been tied to one gigantic hit platform, for which it is the only natively supported PL.

Re:Yes but (1)

Anonymous Coward | more than 2 years ago | (#39969695)

Similar to C#/VB and the other .NET languages...

Re:Yes but (2, Interesting)

Galestar (1473827) | more than 2 years ago | (#39970025)

Similar to C#/VB and the other .NET languages...

Not in the least. Windows is not tied to a language (you can use whatever you like), where iOS is. Now I can't comment on what languages are available for Windows Phone 7, or Windows 8 has/will have, but they do not have the platform adoption that iOS does. C# usage is based on its merits, where Objective-C usage is based on Vendor lock-in.

Re:Yes but (0)

binarylarry (1338699) | more than 2 years ago | (#39970399)

.NET like it's inspiration, Java, is heavily tied to it's primary language.

The generated stack-oriented intermediate code is very, very similar to C# for .NET and the Java language for the Java platform.

Re:Yes but (1)

spongman (182339) | more than 2 years ago | (#39971113)

none of the ms languages use all of the clr features. while c# and vb are getting closer over time, c++ and f# have significantly different requirements.

Re:Yes but (5, Insightful)

maccodemonkey (1438585) | more than 2 years ago | (#39970549)

And just like iOS, it's impossible to do an Android app without using Java. Sure, just like iOS, there are abstraction toolkits, support for C/C++, etc. But you can't do an Android app without Java.

Yet I didn't see any complaining about Google forcing "Java vendor lock in" in your posts, and complaining about that being unfair.

Re:Yes but (1)

Billly Gates (198444) | more than 2 years ago | (#39970729)

.NET and the win32 api is the tie in. MS was just nice to invent a MSIL so other languages can use it with a .NET api as a wrapper layer for the internal COM/win32 api.

Java is tie in too with its own api. Its just that platform runs inside others but its hard to leave it.

I do wonder what would of happened if Gore were elected and split up MS into 3 distinct corporations. .NET would not be tied to Windows as much as it now is and we might of had the whole .NET api and VS for the Mac and Linux. That would have been interesting. Perhaps Gnome 3 would be .NET based instead in that alternative universe? Since Java is as good as dead now thanks to the mismanagement of Sun and now the evil of Oracle it really blows. That leaves C#.net for enterprise web apps and portals unfortunately.

Objective-C like mono is free. You can write linux apps with it. However the real api's are made for Apple just like C#.net.

Re:Yes but (0)

Anonymous Coward | more than 2 years ago | (#39971019)

I'll just leave this here:

http://www.rubymotion.com/

Also, HTTML5.

Objective-c only required for user interface code (4, Informative)

perpenso (1613749) | more than 2 years ago | (#39970541)

Its recent success has obviously been tied to one gigantic hit platform, for which it is the only natively supported PL.

To be clear, objective-c is only required for iOS user interface code. An iOS developer is free to use c/c++ elsewhere, free to use posix rather than iOS for many operating system services, etc.

Re:Yes but (3, Informative)

beelsebob (529313) | more than 2 years ago | (#39970679)

Uhh, C, C++ and Javascript are all supported on iOS... notably, one of those is below Obj-C on the list, and another is looking like it'll soon fall below obj-c.

TIOBE? (0)

Anonymous Coward | more than 2 years ago | (#39969615)

TIOBE Again??

Method Syntax (2)

Jackmon (170028) | more than 2 years ago | (#39969637)

Fine language in many ways but I call 'Boo' on the method syntax.

Re:Method Syntax (2)

kthreadd (1558445) | more than 2 years ago | (#39970379)

I'm not doing anything in Objective-C but I actually like the method name syntax. Code becomes much easier to read and hardly any harder to write if written in a somewhat modern IDE with code completion.

Re:Method Syntax (3)

Jackmon (170028) | more than 2 years ago | (#39971001)

Here's my problem with it:

        -(void) what: (int) kind of: (int) bullshit isThis;

IMO, that is very difficult to read. And try doing a multi-file search for calls to it.

IDEs can overcome the search problem, but the readability problem remains.

Just another extension (5, Insightful)

aaaaaaargh! (1150173) | more than 2 years ago | (#39969691)

Look, I understand that people who use their tools daily want to advertise them and it's a goosd thing if you like what you're using, but let's face it: Objective-C is just another unsafe, hopelessly outdated extension of C as C++. It's great to get things done and sucks less than C++, but it's not in any way a modern language nor is it based on a great language design.

Before people start flaming me, please consider that programming languages are tools and you choose the right tool for the right purpose and platform, and the availability of libraries is often more important than the language itself. There is no doubt that Objective-C has its place and is useful, just don't try to sell it as the latest great new thingy. Even Apple's own old Dylan was a more interesting and innovative as a language than Objective-C.

My 2 cents. Now let the language flamewars commence.

Re:Just another extension (4, Interesting)

Maury Markowitz (452832) | more than 2 years ago | (#39969935)

"Even Apple's own old Dylan was a more interesting and innovative as a language than Objective-C."

Agreed. I loved the multi-interface stuff. Why doesn't anyone else pick that up? It would be particularly easy to implement in Bundles. But...

"the availability of libraries is often more important than the language itself"

Bingo. Lets be honest, is any native library set even *remotely* as good as Cocoa out of the box? With the exception of Delphi I've fiddled with them all, and the answer is a resounding "no!". All you have to do is compare the basic text editing widget across libraries and you can draw your own conclusions.

Re:Just another extension (2)

Arker (91948) | more than 2 years ago | (#39970735)

MMM Delphi.

Now that brings back memories. Objective Pascal with Borland libraries. I hated high level languages back in those days, until I met Delphi.

Borland is long gone, it would be cool if there were a free software clone out there to use though. It might even inspire me to try programming again sometime.

Re:Just another extension (1)

PCM2 (4486) | more than 2 years ago | (#39970987)

Well, it's not free software and it's not even all that cheap, but there's always this. [embarcadero.com]

Re:Just another extension (1)

pjabardo (977600) | more than 2 years ago | (#39971133)

I haven't used it but there is a Delphi clone: http://www.lazarus.freepascal.org/ [freepascal.org]

I read somewhere that .NET and C# were developed by the guy that developed Delphi.

Re:Just another extension (0)

Anonymous Coward | more than 2 years ago | (#39969949)

You commenced them yourself, but were stupid/smart enough to contradict your first paragraph in your second, so now no one knows what to say.

Yes, they are tools, and if you really have no idea what Objective-C's place is (hint: iPhone & Mac) you don't have enough breadth of experience to comment on this topic.

Re:Just another extension (0)

Anonymous Coward | more than 2 years ago | (#39970325)

You commenced them yourself, but were stupid/smart enough to contradict your first paragraph in your second, so now no one knows what to say.

Yes, they are tools, and if you really have no idea what Objective-C's place is (hint: iPhone & Mac) you don't have enough breadth of experience to comment on this topic.

Of course I know that Objective-C is used for Cocoa programming and you can safely assume that everyone on /. knows that. What kind of moron are you?

Also, perhaps you should learn the actual meaning of terms like "contradiction" (hint: take an elementary logic course) before using them.

Re:Just another extension (0)

oh_my_080980980 (773867) | more than 2 years ago | (#39969983)

All the report does is start the marketshare for Objective-C. You went of on a rant. Perhaps you should take your own advice.

FTFY (2)

mveloso (325617) | more than 2 years ago | (#39970073)

Look, I understand that people who use their tools daily want to advertise them and it's a good thing if you like what you're using, but let's face it: C is just another unsafe, hopelessly outdated extension of assembly. It's great to get things done and sucks less than fortran, but it's not in any way a modern language nor is it based on a great language design.

Re:Just another extension (4, Insightful)

maccodemonkey (1438585) | more than 2 years ago | (#39970263)

Before people start flaming me, please consider that programming languages are tools and you choose the right tool for the right purpose and platform, and the availability of libraries is often more important than the language itself.

Not only does Objective C have an extremely rich set of libraries from both Apple and the community (UIKit and Foundation are arguably the best mobile development APIs out there), but Objective C is compatible with all C and C++ libraries.

So I'm not exactly sure what the point is. I suppose if you have to use a C library one could say "Well see, you have to use C anyway!". But at least for me, the important part is while I'm using C, I'm still encapsulating that code in Obj-C.

How is it not modern? Obj-C has modern libs... (5, Insightful)

SuperKendall (25149) | more than 2 years ago | (#39970287)

Objective-C is just another unsafe, hopelessly outdated extension of C as C++.

Why do you claim it is "unsafe"? Almost all work done in Objective-C is very "safe", by any measure - mostly you are never using C arrays or the like. Just because they are there does not make the language inherently "unsafe" if that's not how real people use the language.

consider that programming languages are tools and you choose the right tool for the right purpose and platform, and the availability of libraries is often more important than the language itself.

Objective-C currently has some of the most advanced libraries for any platform. It already had great string support and other strong frameworks even before iOS, but with iOS and the Mac taking off the framework support for really advanced animations, database work, networking, etc. as good as or better than any other platform. I came from a Java world and am missing nothing for libraries... not to mention a really good set of open source libraries that offer other abilities in addition to the core frameworks.

In fact, I would go so far as to say the range and quality of design of the frameworks are THE reason to use Objective-C.

People like you just look at when Objective-C was developed and think because of its age it cannot be "modern". What you don't realize is that Objective-C was developing over all that time, just in a fairly parallel path to other languages - I like to refer to it as a "Steampunk" language. It is modern but just not quite the same as other things you are used to, coming from an alternate reality.

You're going to have to come up with real reasons for Objective-C not being "modern", most of which are probably quite out of date by now. Before we can flame you, there need to be specifics which we can skewer...

Re:How is it not modern? Obj-C has modern libs... (3, Insightful)

Anonymous Coward | more than 2 years ago | (#39970635)

Why do you claim it is "unsafe"? Almost all work done in Objective-C is very "safe", by any measure - mostly you are never using C arrays or the like. Just because they are there does not make the language inherently "unsafe" if that's not how real people use the language.

There is a common consensus in the CS community that pointers as opposed to references, pointer arithmetics, direct type conversion ("memory overlays") etc. are unsafe, and a language that makes it easy to use them is "inherently unsafe". (That doesn't have anything to do with actual programming practise. Obviously, you can write "safe" programs in any language, even in machine code, as long as you're very careful.) As a comparison, take Ada, Eifel, Java, Haskell -- these are all much safer.

As for "modern": Perhaps you haven't seen any modern programming languages yet? Because otherwise you should know what I mean. Relatively modern features are e.g. automatic type inference, automatic parallelism, contracts, a concurrent garbage collector -- things like that.

Re:How is it not modern? Obj-C has modern libs... (2)

Sponge Bath (413667) | more than 2 years ago | (#39971035)

Why do you claim it is "unsafe"?

He may be using unsafe in the same way as Microsoft. See this [microsoft.com] .

From that page:
... code that makes low-level API calls, uses pointer arithmetic, or carries out some other unsavory operation, has to be placed inside blocks marked with the unsafe keyword.

Heh, "unsavory". Personally, I think pointer arithmetic is delicious!

Re:Just another extension (1)

cpu6502 (1960974) | more than 2 years ago | (#39970339)

Assembly.

The "modern" Kolibri OS is written in assembly and fits on a floppy. Assembly is the way to go. Just kidding. WHAT do you recommend as a modern language we should all learn?

Re:Just another extension (0)

Anonymous Coward | more than 2 years ago | (#39970689)

Why it it "not a modern language"? Why is C++ not a "modern language". Your comments smack that you're completely out of touch with the latest C and C++ standards.

If you honestly believe C and C++ and not modern, I honestly believe you have no clue about the subject matter.

This Trend is Interesting (0)

Anonymous Coward | more than 2 years ago | (#39969769)

This trend is interesting because it kind of dovetails with the fact that fewer and fewer developers are choosing GNU-based/FOSS licenses for their work -- this and the fact that iOS is attracting developers in droves away from pure FOSS pursuits. While Linux and FOSS are interesting and while I do use quite a bit of it, at least iOS is not balkanized. Walled-in garden, whatever. It just works the vast majority of the time and Sally Secretary could give a damn about software license politics -- and that's what they are. The four freedoms are nice, but in the real world, no one but the zealots cares. And even if you do care, if you're not a coder with mad skills, you cannot do anything anyway. That's like saying "yeah, you can buy this Ferrari -- if you have the $250,000 it takes."

I've been in IT now for 15 years and there have been maybe two times where the license issue matered and that was simply because I needed to install a single piece of software on about 30 machines. I chose a FOSS solution because of fiscal concerns.

iOS, Objective-C and Clang are now the interesting bets.

Re:This Trend is Interesting (4, Insightful)

Electricity Likes Me (1098643) | more than 2 years ago | (#39970091)

This seems more likely to be due to the easy money currently seeming to be in iOS apps. It's a big installed base, there's a delivery system, and the consumers have been trained to expect to pay some money for just about everything on it (whereas the usefulness of free 'droid apps generally seems to be way higher - in my, admittedly limited, experience).

I mean, if you have an idea, then the thing you want to do is try and get a few hundred thousand people to buy it for a $1, so that's what everyone is currently doing. I don't think it really says anything beyond that.

Re:This Trend is Interesting (1)

Anonymous Coward | more than 2 years ago | (#39970255)

You might be right -- in fact, I think money is the lion's share of the reasons why people are moving to develop for iOS. Look at the guys who wrote Angry Birds. They went from obscure guys in the EU to millionaires overnight with royalties on products from posters, plush toys, t-shirts, et al. Developers see themselves as they next big thing.

Re:This Trend is Interesting (3, Interesting)

gwking (869658) | more than 2 years ago | (#39970787)

I find Android apps are not nearly as useful as similar iOS apps. They are usually slower, uglier, and buggier - free or not.

Given the choice between a free Android app that is a turd, and a great iOS app that costs $1, I'll gladly pay the $1.

Also, for developers, I think there is more to it than just the money. With iOS you can test a reasonable amount of the devices on the market and the screen sizes they use. With Android? Not unless you happen to have a few hundred Android devices kicking around and a few months to test your app on all of them. Take into account the absolutely terrible hardware on the currently selling low end Androids that can barely keep up with the iPhone 3GS, the problems with having an app on the SD card instead of on the builtin memory, and then all screen sizes and aspect rations. Ugh.

TIOBE Index (5, Insightful)

PCM2 (4486) | more than 2 years ago | (#39969835)

Seems like every few weeks someone writes another story about the amazing "trends" in the TIOBE Index. As far as I can see, the real trend is: Languages go up in popularity, they go down, they move around, one month it's the First! Time! Ever! that a language has made the list, the next month it's gone again, and C, C++, and Java are always at the top (in varying order). Such variable results suggest that TIOBE's sampling method isn't all that reliable or accurate to begin with, but I think we all have a pretty good idea what languages people are really using and for what.

Re:TIOBE Index (2)

cpu6502 (1960974) | more than 2 years ago | (#39970115)

Thanks for giving clarity. If we went by popularity, we'd all be listening to Rihanna or Gotye (both hit #1) or watching FOX (#1 on cable, #2 on broadcast) or reading Alex Jones infowars.com (routinely 1 or 2 in the webnews index). Popularity is interesting to note but doesn't mean much otherwise.

Re:TIOBE Index (1)

jpapon (1877296) | more than 2 years ago | (#39970561)

Hey! Gotye isn't THAT bad... Someone I used to know is pretty catchy.

Re:TIOBE Index (1)

Anonymous Coward | more than 2 years ago | (#39970805)

TIOBE is simply running various google searches, e.g. "java programming", and recording the result count.

But, if you try this from three different computers on three different days, Google will give you three different numbers because their indexes are never in a constant state. Also, this is probably heavily biased towards student or newbie programming questions.

Plus things like Javascript declining in popularity 2009-2011 simply don't reflect the real world.

BARF! (0, Informative)

Anonymous Coward | more than 2 years ago | (#39969843)

And I mean extreme barfing! A terrible language with terrible syntax, semantics, and protocols.

What a waste of time for programmers everywhere!

Re:BARF! (0)

Anonymous Coward | more than 2 years ago | (#39970107)

add to that a terrible tools/ide (xcode) and bunch of 'designers' who doesn't care about code readability or usefulnes, as long as 'app' looks good.

Re:BARF! (1)

kthreadd (1558445) | more than 2 years ago | (#39970469)

So use Vim then. Nothing stops you. aptitude install gnustep-devel and start working.

NeXTStep the grand-daddy of all that is now OS X (1, Insightful)

cpu6502 (1960974) | more than 2 years ago | (#39969971)

Don't you mean the "daddy" of OS X? I thought OS X *is* the Next OS but overlaid with the Mac desktop.

Also why is it called iOS Objective C? Is objective-C only available through Apple?

Re:NeXTStep the grand-daddy of all that is now OS (3, Informative)

Arker (91948) | more than 2 years ago | (#39970431)

OSX is NOT the NeXT OS with the Mac GUI. That would be much better.

In fact it can be claimed to be a lineal descendent of NeXT, but it's been greatly modified, and the new UI is a regression from either the Mac or NeXT GUIs.

Also iOS - Obj C is obviously referring to the proprietary dialect of ObjC used in Apple mobie devices. (Nothing to do with Cisco iOS either, why cant they think of their own names for this stuff?) There are other dialects, notably the GCC version, which is much more widely applicable.

Re:NeXTStep the grand-daddy of all that is now OS (1)

cpu6502 (1960974) | more than 2 years ago | (#39971011)

>>>the new UI is a regression from either the Mac or NeXT GUIs.

So you're saying OS X GUI is actually inferior to the Classic OS 9, or the old NeXT computer's GUI? Interesting. I jumped from OS 8 to OS 10.2 and didn't really notice any major differences in the desktop (except the new tab bar at the bottom). Maybe I just didn't use it enough. Why do you think OS 10 is inferior?

Re:NeXTStep the grand-daddy of all that is now OS (2)

dan325 (1221648) | more than 2 years ago | (#39970443)

Not entirely limited to Apple:

http://www.gnustep.org/ [gnustep.org]

Re:NeXTStep the grand-daddy of all that is now OS (2)

kthreadd (1558445) | more than 2 years ago | (#39970523)

Objective-C is not exclusive to Apple platforms, they just happen to be one of it's most prominent supporters. As a matter of fact the GNU project has actually for long time been a supporter of the language due to its use in GCC and through the Gnustep project.

you fail 1t?! (-1)

Anonymous Coward | more than 2 years ago | (#39969987)

fanatic knAo3n

Does it ... (-1, Flamebait)

Anomalyst (742352) | more than 2 years ago | (#39970011)

Restrict access to only Apple approved code?
Take 30% of a codes CPU for the privilege of using aforementioned Apple approved precious?

Re:Does it ... (1)

kthreadd (1558445) | more than 2 years ago | (#39970439)

Of course not, it's just a programming language. Sort of like C. Actually, it is C, well sort of, with some things added but down there you have C, even the parts that C++ removed from it.

Well done microsoft (0)

Anonymous Coward | more than 2 years ago | (#39970177)

Microsoft's previous pronunciations on the future of windows programming (all HTML 5, no place for .Net) has driven people away from C#. Look at the graph details and they match with the initial platform announcements on Windows 8. Uncanny.

Messaging has never been their strong suit.

Re:Well done microsoft (0)

Anonymous Coward | more than 2 years ago | (#39970437)

C# is only shrinking in relative numbers to HTML5. Just like how people say "the PC is dying". It's not dying, it's just not growing nearly as fast or has as large of a potential market as tablets+smartphones.

ObjC sucks (5, Informative)

dbrueck (1872018) | more than 2 years ago | (#39970365)

I dev in ObjC on iOS almost every day, and the language sucks. I think it sucks less than C++, but I'm not sure that says much. The Xcode IDE (which also sucks) and the bolted-on features help, but overall the language hasn't aged as well as plain old C - i.e. while coding in it, you are constantly reminded that it is not a modern programming language. Anytime a language gets in your way, it's a bad thing, and that happens an awful lot with ObjC.

(And before the flames start: yes, I fully recognize that nobody is forcing me to dev for the iOS platform, it's a choice I've made because I make gobs of money off of it. But that doesn't make ObjC suck any less, it just makes me willing to tolerate the suck and grumble about it on /.)

Re:ObjC sucks (0)

Anonymous Coward | more than 2 years ago | (#39970415)

And before the flames start: yes, I fully recognize that nobody is forcing me to dev for the iOS platform

Actually, the flame I was thinking of was that you made a hard hitting critique without any examples to back it up.

Re:ObjC sucks (2)

pauljlucas (529435) | more than 2 years ago | (#39971069)

I dev in ObjC on iOS almost every day, and the language sucks.

Please give examples why.

Which PR agency does IdleThoughts work for? (1)

hobb0001 (989441) | more than 2 years ago | (#39970393)

His writing sounds like it came straight out of a USA Today puff piece. I guess he hasn't yet learned to change the tone of his writing when posting informally online. (See http://www.paulgraham.com/submarine.html [paulgraham.com] )

Surprise (4, Funny)

StikyPad (445176) | more than 2 years ago | (#39970409)

What more surprises does this venerable language have up its sleeve?

Theres only one way to find out, and it involves wading through extraordinarily long, unintuitive, and overly verbose object, property, and method names until, Surprise!, you find yet another feature of limited utility.

Unobjective remarks on objective c (5, Insightful)

Anonymous Coward | more than 2 years ago | (#39970435)

When I evaluate a language the first thing I do is look at a random block of code and say to myself is this what I really want to be writing?

When I look at lisp all I see is endless streams of ()()())))) and my brain instantly reboots in a violent seizure.

jquery would be a decent system if only I could get over the rediculous hackish syntax needed to workaround underlying JS environment.

ASP and close neighbors were always a turnoff due to the weird escape sequences you needed to plaster absoultely everywhere more recently razor cleaned that up somewhat.

Objective c has too many perlish @ symbols and a rediculous number of [] [][][ ][][][] [] contraptions all over the place. I know this sounds and is shallow but when I look at code I really need to see the code not have to look under layers of syntatic nonsense existing only for convenience or compatibility/interop purposes.

Give me a capable clean language not hacks upon hacks.

Given enough time any language can be made useful... this does not mean I would ever willingly choose to use it. I'm instantly wary of languages with only one killer app (iphone) unless it is heavily domain specific.

Re:Unobjective remarks on objective c (4, Funny)

Arker (91948) | more than 2 years ago | (#39970937)

When I look at lisp all I see is endless streams of ()()())))) and my brain instantly reboots in a violent seizure.

Sounds like a hardware problem to me. I advise getting a professional neurologist on the job ASAP.

Obj-C is up because Apple devices are up (4, Insightful)

gestalt_n_pepper (991155) | more than 2 years ago | (#39970615)

I mean, that's the simple explanation. If Apple wasn't having a resurgence, would anyone be paying attention to Ojective-C?

On Apple hardware only, thank you (1)

Corson (746347) | more than 2 years ago | (#39970723)

What is the percentage of software projects being developed for Mac OS X? iOS, on the other hand, currently dominates the smarthphone market and development on this platform is mainly done in Objective-C, which explains the statistics. But it's a "dynamic" situation, as we are all aware.

That's not what the data is saying (2)

sl4shd0rk (755837) | more than 2 years ago | (#39971175)

Tiobe's data is an indicator of how active internet based discussions on each programming language. Even Tiobe says it themselves:

"What programming languages are hot in the Internet discussions? "

and

" Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written." (http://www.tiobe.com/content/paperinfo/tpci/index.html)

All the graph on that link above shows is there's been an increase in the amount of discussion on Objective C. You can say it's due to an increase in adoption, or you could say it's due to people being absolutely fitful with learning it. There's no way to tell what the data means. You may as well google " sucks" and count the results.

I think the author/submitter is being very hopeful in the way they have construed the data.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>