Top

An iPhone Rant

February 11, 2009

It’s been a good bit since I’ve contributed anything to Stromcode.  Been busy lately, but I do plan on writing some more tutorials, and it looks like a number of them might be on iPhone development.  For those looking to get into building apps for the iPhone, a really great resource is icodeblog.com.

At any rate, I would like to rant a bit.  First off, let me say I’ve been really excited to get rolling on the huge list of iPhone app ideas I’ve been sitting on since I bought my iPhone.  And I did expect developing for it to be a bit of a change up for me — I’ve been developing for Windows for over 10 years, and building web apps for about 5, but I’ve never done any Apple development at all (save for my college assembly language course, which was inexplicably taught against Motorolla processors on the Mac).

Objective-C, and the whole iPhone platform, is inexcusably dumb.

Let’s start with Apple.  Do you guys realize the number of really talented programmers that exist out in the world who would be more than willing to work on small, cheap apps in their spare time?  The vast majority of programmers out there are either working in Java, C++, or C# (or PHP if you want to count web developers).  And yet you didn’t bother to offer support for any of those languages?  Really?

Instead, you decide to go with Objective-C — a language that Mac developers know, but no one else has any good reason to know.  Who’s decision was this?  I have no problem with supporting Obj-C to make things easy for existing Mac developers, but couldn’t you have at least offered C++ as an out-of-the-box option as well?  One of Microsoft’s greatest strategies has been to not tell developers what language they should or shouldn’t use, but rather to support as many languages as possible.  Granted, Microsoft loves to suggest which language we should be using, but they are always there with options.

And speaking of Microsoft: Apple could really learn a thing or two from Visual Studio.  VS is an absolute dream to work with.  XCode, on the other hand, is an unmitigated nightmare of windows and hidden messages.  Why must Apple insist on popping up 4 new windows whenever you want to make a small change somewhere?  And why aren’t errors and warnings displayed in a frame in the main window?  Didn’t any of the beta testers complain about spawning a new window to view the error list?  Good God I hate XCode.  It’s one of those programs that just makes you feel like it’s deliberately crippling you.

And Objective-C.  Where to begin?  What an idiotic language this is.  What, pray tell, were the designers of this language thinking when they decided to rename everything?  True/False?  Nope, YES/NO.  Null?  Nope, nil.  Class?  Nope, interface.  Oh, and good going on that one.  Not only did you change the name of something from what every other language calls it, you gave it a new name that has a totally different meaning in every other language.  Brilliant!

I’m totally down with learning a new language.  But every time I have learned a new language, there has been an immediate and apparent benefit to that new language — some advantage over what everyone used before.  PHP made web development infinitely easier than working with CGI and Perl.  C# built on C++ to add garbage collection and true OOP.  Java added a virtual machine and again true OOP.  What exactly does Objective-C bring to the table?  I’m baffled.  It’s like a giant leap backwards.

End rant.  I’m still plowing my way through this whole mess, but my first (and second, and third) impression is that Apple has made this much harder than it needed to be.

Comments

2 Responses to “An iPhone Rant”

  1. flegelleicht on February 12th, 2009 2:04 am

    I’m sure you looked really really hard to solve your Xcode problem… if not, here’s a tip for you: Xcode -> Preferences -> General -> Layout: All-In-One

    And yeah, Objective-C… what a dumb language… a compiled language that is so incredible dynamic? With the id type? With the message sending? And the adding of new methods to existing classes at runtime (like in ruby)? And the… I think you get my point. What’s up with that? I don’t think anyone would use that!

    Sure, Objective-C is not perfect… but if you start comparing C++ and Java to it (and forget that Objective-C brought “true” OOP before Java while being around for 29 years)… I cringe and get the urge to comment.

    Have fun!

  2. converse all star on August 30th, 2010 7:40 pm

    Good post.Thanks for your sharing.
    http://www.conversewu.com

Got something to say?





Bottom