

The RedMonk Programming Language Rankings: January 2014 - puredanger
http://redmonk.com/sogrady/2014/01/22/language-rankings-1-14/

======
soup10
It's interesting to see the meteoric rise of objective-c due to apple forcing
it down developer throats. As someone who had to learn it to do iPhone dev, I
find it objectively terrible compared to all the old favorites(C,C++,Java,C#).
Partially because the language syntax sucks, but also because apples standard
library sucks.

See with C you know what your getting, fast code, manage your own memory,
standard conventions for method calls and returns.

Same with Java and C#, except memory is managed for you, and code is slower,
but importantly, standard conventions are still there. The standard libraries
are also very solid(and often better than obj-c).

C++ sucks and has similar hybridization problems that obj-C has, but at-least
it's fast and it's standard libraries are fast, and it has lots of 3rd party
library support.

Then there is objective-C. With it's ugly hybrid memory management model,
awfully slow standard libraries. Numerous competing conventions for library
design(partially due to the hybrid memory management model), not to mention
there is also the vanilla C standard libraries which are often easier or
required to be used. Poor 3rd party library support(seriously, a handful of
people write objective c libraries, and most of it sucks because it's based
off the apple obj-c libraries which suck). Which means... that it's super
common to use C++ libraries anyway. So now your program is gobbledy gook mess
of C/Obj-C/C++/Objective-C++ instead of one unified C or C++ codebase.

Basically I'm pretty sure nobody would use objective-C if apple didn't
strongly push it on iOS and OSx developers. And i'm pretty sure they wouldn't
have done that if they didn't want to lock developers onto iOS/OSx and make it
more difficult for them to port.

tl;dr Apple is evil, obj-c sucks. if you program for iOS or OSx, save yourself
the trouble and use as much portable C++ as you can.

~~~
coldtea
> _It 's interesting to see the meteoric rise of objective-c due to apple
> forcing it down developer throats. As someone who had to learn it to do
> iPhone dev, I find it objectively terrible compared to all the old
> favorites(C,C++,Java,C#). Partially because the language syntax sucks, but
> also because apples standard library sucks._

Yes. And yet, Objective-C, for application development, pisses all over most
of the "old relatives". Saner than C++, can drop into C for close to the metal
performance or be high level with a GC and all, and is more dynamic than Java
(which admittedly is not hard).

But even you personally don't like its hybrid syntax, to even state that
"Apple's standard library sucks" make your comment loose all credibility.
Cocoa and Foundation are among the nicest and more feature complete libraries
and framework collections there exist.

From the way you describe it, it sounds like you wanted something like the VB6
or .NET ecosystem of third party libraries...

> _Basically I 'm pretty sure nobody would use objective-C if apple didn't
> strongly push it on iOS and OSx developers._

You pretty sure, but also pretty wrong. Adoption might be quite smaller if
there wasn't a huge potential market in the form of iOS users, but Objective-C
was (and is) quite well regarded as a programming language and has always had
hardcore fans. People who program in it (not just because they had a couple of
assignments for iOS apps in 201x) tend to love it.

Heck, even back in the day, the first browser was developed in it, as well as
the first true first-person-shooter. And nowadays, one of the most advanced
GUI userlands, and the more cohesive mobile app platform.

~~~
pjmlp
My first contact with the language was in 1998, when I had to port a particle
simulation engine done with Objective-C/Renderman to C++/OpenGL. From a dying
NeXT Cube to then raising Windows 95 mainstream systems.

Objective-C has a nice appeal given its Smalltalk semantics for OOP.

However I don't like:

\- lack of modules, using prefixes is so 70's!

\- @ in all keywords and Objective-C literals

\- manages to have method names even longer than Java enterprise frameworks do

\- the way properties are declared

> Heck, even back in the day, the first browser was developed in it, as well
> as the first true first-person-shooter.

Historical accident, as these were the systems those developers had available
to them.

~~~
coldtea
> _However I don 't like: \- lack of modules, using prefixes is so 70's! \- @
> in all keywords and Objective-C literals_

No disagreement there. Though those are historical baggage, like C has. I see
Apple fixing the module issue at some point though.

> _manages to have method names even longer than Java enterprise frameworks
> do_

Not true, most method names are short. Except if you also count the parameter
names -- but then that's another story, and it has other benefits (knowing
what every parameters does and self-documenting your code for example).

> _Historical accident, as these were the systems those developers had
> available to them._

Not true, in fact they had to get out of their way to have these machines
compared to the standard unix workstations of the day or PCs. Carmack has
access tons of other machines at the time. And both TBL and Carmack waxed
about the NeXT / objective-c environment afterwards.

~~~
pjmlp
> Not true, most method names are short. Except if you also count the
> parameter names

Parameter names are part of the method name.

> Not true, in fact they had to get out of their way to have these machines
> compared to the standard unix workstations of the day or PCs.

CERN had quite a few NeXT stations available to them. When I worked there,
there were workstations collecting dust.

Carmack used C, not Objective-C, the NeXT advantages were mainly due to
tooling

[http://www.gamasutra.com/php-
bin/news_index.php?story=21405](http://www.gamasutra.com/php-
bin/news_index.php?story=21405)

------
ternaryoperator
I've never liked Redmonk's choice of Github only. It's just one OSS host,
albeit an important one. Why not use Ohloh's numbers (which they do
reference), which cover a larger swath of the OSS community? By choosing to
use GitHub only, projects that have been around a long time are not included--
such as many of the active projects on SourceForge, Google Code, etc. Not to
mention other currently popular hosts like BitBucket.

~~~
_random_
Omission of BitBucket is a big miss. Not sure if both publish stats of private
repo languages.

~~~
dsberkholz
Not for public repos. Scroll on down to the "hosting provider" section of some
research I did on forges to get a better idea
([http://redmonk.com/dberkholz/2013/04/22/the-size-of-open-
sou...](http://redmonk.com/dberkholz/2013/04/22/the-size-of-open-source-
communities-and-its-impact-upon-activity-licensing-and-hosting/)).

------
olenhad
As a clojure fanboy, I'm quite pleased to see it do well.

~~~
auvrw
ditto. lisp will never die, but to see that a lisp is the fastest growing
language on the list is heartwarming.

------
_random_
Seems more accurate than other ratings.

------
thinkpad20
Surprised how highly ranked Haskell is, given its position in TIOBE. I wonder
what accounts for the discrepancy.

~~~
Avshalom
tiobe is roughly a measure of how active the visible job market is

this is roughly a measure of how active the visible community is

~~~
dons
tiobe is a measure of "search engine results" for the query "$language
programming".. including on YouTube.

So it is neither a measure of community nor job market.

------
davyjones
My interpretation of the graph is this:

Overall, things that rank high on SO and low on GH are more "corporate-y".
Things that rank high on GH but lower than the line are "startup-y".

We have some ask HN questions like which tool I should pick-up, employable
skillset, etc. Purely based on this graph, I would say pick the top-right
points that lie close to the line. That should strike a decent balance.

~~~
nl
I think the "corporate-y things rank high on SO" is actually "Microsoft-
platform things rank high on SO" (note the high rankings for C#, VB.NET and
Delphi).

I suspect that has a lot to do with the MS-centric seed audience that grew up
around Stackoverflow (because of the backgrounds of the founders).

------
beat
Javascript, Java, and PHP right up there at the top.

Yep, we're doomed.

------
joemaller1
I wish we could see a breakdown of Python2 vs. Python3.

~~~
frostmatthew
It wouldn't make sense to do that for Python unless also doing it for other
languages. That would a) be difficult with the methodology used and b) make it
harder to determine a language's popularity in relation to other languages.

