

Rarest language? Objective-C has highest job posting to developer activity ratio - robfitz
https://generalassemb.ly/blog/the-biggest-opportunity-of-2012-learning-objective-c

======
droithomme
Ah, that is a horrible analysis. They are wanting to estimate the number of
people with these skills by searching on hashtags, but they search only on the
term "objective-c" when what they really should be searching on is Cocoa,
iPhone, iPad, iOS and other terms that require one to be working in
Objective-C. There's not so much to Objective-C itself that there's a lot of
discussion about the language itself compared to what it is used in.

Also, in general I don't buy into these methodologies where someone spends a
few hours doing searches on internet boards for certain keywords as a way to
estimate the number of people with various skills. It's not been shown to be a
valid way of getting accurate data.

------
padobson
Java's Ratio: Slightly less than 2 Obj-C's Ratio: Slightly more than 3

Let's see, I can learn Java and get a job building Android apps or a job
building web apps or a job writing mainframe software or writing desktop
software or writing server software or building web services or making video
games...

...or...

I can learn Objective-C and get a job building iOS apps.

If you need a job and you're deciding between the two, Java should be a no-
brainer.

Objective-C is a nice tool to have in your toolbox, but it shouldn't be the
one you take out the most.

~~~
teej
"I can learn Objective-C and get a job building iOS apps."

...And make $250/hr contract rates. There is ludicrous demand for iOS work. I
know several enterprising devs who got into Obj-C over Java purely because the
pay is insanely good.

And give me a break. What serious companies are doing web apps or video games
in Java in 2012? Sure, Facebook and Twitter are using Java internally, but
only for really specific technical challenges forced on to them by scaling.
Objective-C is way more fun from a product perspective because you're close to
the user. That is desirable for many.

~~~
bitcracker
> And make $250/hr contract rates. There is ludicrous demand for iOS work.

I don't buy this. Any links?

How many developers can expect such rates in face of more than 250,000 apps in
competition? I think only some big publishing houses would pay this big money
because in the long run they would get their money back.

Smaller companies would never pay this rate because AFAIK the average income
for even very good apps is the range of some thousands or some ten thousand
dollars. In case of say 10.000 dollars, all the money would be lost to the
developer for just 40 hours of work, that's four days :-)

~~~
MatthewPhillips
Consulting work for enterprise companies. They aren't selling their app
anyways, it's just a checkbox their sales people use to sell the real product.

------
joezydeco
Okay, so everyone wants to hire an iPhone developer for whatever awesome app
idea they have. Most experienced iPhone developers are already pretty busy.

Does that pretty much explain it?

~~~
jbooth
Yeah.

A further explanation would include the fact that a lot of those people who
have a great idea and just need a developer to code it up for them have no
idea how the software process works, and the gig will likely involve them
stiffing you on the last month's pay and feeling like you ripped them off
unless you're pretty experienced at contracting and managing upwards.

~~~
markrickert
_> a lot of those people who have a great idea and just need a developer to
code it up for them have no idea how the software process works_

They also don't realize how insanely expensive it is.

"I want a mobile app. That's like $500 bucks, right?" \- Client

------
zalew
How are Twitter mentions a reliable source of data about the job market??

~~~
robinwarren
The tweets in question were from the #Code2011 hash tag where devs were saying
what languages they used in 2011 and from tweets collected by my site
<http://jobstractor.com> which tries to find people hiring devs on Twitter.
Hope that sounds a bit more sane :)

~~~
zalew
I read that. Surveys are fun, but such data shouldn't be taken for measure.

Number of job postings vs average number of offers submitted is one of the
first factors that come to mind when seeeking a supply/demand number on the
job market, not twitter popularity contests.

------
tehjones
The issue with learning objective c is the lack of portability. Yes the
language runs on everything via the use of gnustep, but on first appearances
its is nextstep ported to modern hardware.

As a disclaimer objective c is my language of choice, my plan this year is to
make the code portable.

~~~
kstenerud
If you want to make your code portable to Android, consider helping the effort
to port Objective-C to it (specifically, enough to get cocos2d running).

Some info here: <http://www.cocos2d-iphone.org/forum/topic/25414>

~~~
zbowling
Don't port objective-C to android for Cocoas 2D. Cocoas2D is a fluster-cuck
enough on iOS.

~~~
stuaxo
Thats insane, why not just port cocos2d itself (I think there might have been
an effort before) - after all the original cocos2d was python, so it's been
ported across languages before.

------
zefhous
The solution? MacRuby!

Take the surplus of enthusiasm for Ruby, combine it with the high demand for
iOS developers, and there you have it!

Now if only Apple would make MacRuby a first-class language for developing iOS
apps...

~~~
laconian
It'd be second class in terms of performance. Native code execution speed is
one of iOS device's strongest selling points vs. Android, which has a few GC
hiccups here and there. Apple is probably more inclined to push the tool that
yields the best performance for its users, perhaps even at the expense of
developers' productivity.

~~~
ambertch
Dude, Laconian - iOS 5 already enables GC (a generational one at that), which
already came out for regular Cocoa in in obj-c 2.0

You can bet your socks a lot of devs for typical iOS apps will be using GC.

I dunno what GC algorithm is used for MacRuby, I don't see how the upper limit
of performance will be much different since obj-c uses dynamic dispatch the
same, and Google/Mozilla is making strides in type inference.

Dyanamically typed languages might be pretty close to static language
performance (with properly written code since the JIT is still dumb compared
to a human) pretty soon.

~~~
zbowling
What are you talking about? There is no GC in iOS 5. The only GC in the
Objective-C world is the one on the Mac and it's pretty much the off the shelf
Boehm one.

The only thing iOS has is ARC. This is a compile time reference counting
solution. This doesn't work with ruby in it's current form in any way.

------
cantankerous
Objective-C's outlook will be about as strong as the Apple platform will
continue to be for better or for worse. Yes, it does exist outside of the
Apple ecosystem, but only really in nominal form. What's more, Objective-C
work pretty much implies that you'll be doing Apple development...which people
may or may not want to get into for hangups. I'm not sure if the app dev craze
is a trend that can continue over the long term or not. Should be interesting
to see!

------
baltcode
But is the pre-eminence of IPhone apps going to last? Number of android phones
is catching up, but it seems the iphone app market has much larger revenues.
Source: [http://finance.yahoo.com/news/android-vs-iphone-economics-
ap...](http://finance.yahoo.com/news/android-vs-iphone-economics-
apps-160608285.html)

What do devs at HN think? Does it make sense to think the market for Obj C
talent is going to last?

~~~
zbowling
Android is full of hello world, copy cap apps, and junk that doesn't get
filtered as well as in the Apple app store. So quantity doesn't really amount
to much there.

------
peregrine
Objective-c is slightly strange compared to other languages but its really
just another language anyone can pick up if they put the time and effort into
it. Just like you decided to learn clojure or ruby or whatever put some time
in, and you can code in any language.

------
Zarathust
I do C++ for a living, do I get a pretty red line too?

------
whatthefish
Objective C is painful.

~~~
markrickert
Once you get to know it, it's the most beautiful and elegant (while verbose)
language you'll ever see.

I cringe now when I write PHP.

~~~
SoftwareMaven
I really like Objective C, but I don't know that I would call it the most
elegant. I agree it is an elegant solution to adding objects and messages to C
(especially when compared to C++), but it is still an extension of another
language, which makes it more pragmatic than elegant.

~~~
dgallagher
I find Obj-C elegant in the sense that it reads like an explicit english
sentence:

    
    
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:60.0];
    

If you've never used an NSMutableURLRequest object before, but know how
HttpRequests are made, you can figure out what's going on without having to
dig into any documentation.

Many languages I've seen (C in particular) hide that explicitness. You call
someFunction(arg1, arg2, arg3), but what do arg1, arg2, and arg3 do? Can you
pass a 4th or 5th argument too? Unless you've memorized what someFunction()
does, you have to dig into the docs, which makes the language harder to read.
Obj-C method calls always list "every" available parameter, regardless if its
used or not (e.g. nil).

\------------------------------

Obj-C takes up a lot of horizontal screen space. It works best on high-
resolution widescreen monitors, with a modern editor, and modern mouse, both
supporting vertical AND horizontal scrolling. Limiting lines to 80 characters,
or anything really, destroys its readability.

The most unreadable Obj-C code I've seen is usually formatted this way.
Google's Obj-C code is a nightmare to read; they limit it to 80-characters
([http://google-
styleguide.googlecode.com/svn/trunk/objcguide....](http://google-
styleguide.googlecode.com/svn/trunk/objcguide.xml#Line_Length)). Great for a
1980's terminal, not for modern 2560x1440 displays.

Frankly line-length should not be the job of the programmer writing the code,
but of the IDE/Editor displaying it properly on-screen. When you say "all code
must be 80 lines long", you've forced that upon every programmer regardless if
it's a good decision or not.

It's like decoupling the Model and View. The Model is the actual code written,
where the View is how it's displayed. Programmers should be able to customize
how their View looks using their IDE/Editor. When you hard-code the View into
the Model, you break decoupling, and force everyone to use the same View.

Most Editors/IDEs let you customize the view somewhat, like color-schemes and
"wrap text". But I haven't seen a "complete" decoupling of the model (code)
and view (how it's presented) yet, in any IDE/Editor. Someone please correct
me if one exists. This is a feature I'd "LOVE" to see in all IDE/Editors and
programming languages, as it will make verbose languages like Obj-C much
easier to read based on the programmers preference.

~~~
dcosson
This is more of a praise of Apple's naming conventions with the ios and Cocoa
sdk's (which I agree are very good, as is auto-completion in XCode) than of
Objective-C itself. Of course the quality of the framework is hugely important
in how pleasant a language is to work with, but I wouldn't say that Objective
C is an elegant language compared to everything else that's out there (IMO
Python and Haskell are both very elegant, but there are a lot of languages
I've never played with).

