Hacker News new | past | comments | ask | show | jobs | submit login
The RedMonk Programming Language Rankings: January 2014 (redmonk.com)
81 points by puredanger on Jan 22, 2014 | hide | past | favorite | 32 comments



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.


I think they just need more than two sources since there's more to program language popularity than they can two sources can show. Stack overflow naturally biases towards languages with worse documentation and those which cater to newer programmers. For example, it favors Visual Basic and disfavors Golang, resulting in VB having a rank of 19, with Golang ranking at 22 despite golang being far more popular on github.

Factors which this survey doesn't account for include what languages new programmers are being taught in, how much code is actually running in production, what type of developers companies are wanting to hire, and what those companies are writing in behind closed doors.


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


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


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.


"As someone who had to learn [Objective C] to do iPhone dev, I find it objectively terrible"

I see what you did there.


Cool story bro. Not really sure how critiquing Objective-C is relevant to this article. Objective-C has been a top 10 language for years on most programming language popularity lists. It's not news in this article that it's up there. I think you just wanted to take any chance to lambast Obj-C... It's not like I'm pimping Dart and how it slightly beat out TypeScript on this list... oh wait, there I go.


shrug not like anyone cares which programming languages are popular anyway, forgive me for adding semi-relevant content to this thread.


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


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.


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


> 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


Languages are being forced down developer's throats all the time, I don't see how Objective-C is an exception. Microsoft did it with C++ and later C#. Google does it with Java on Android. Netscape did it with JavaScript. I could continue.

Even if a platform can technically support other languages reasonably well, whatever the platform vendor favours tends to be the most popular and best supported choice.

I don't see any connection between how popular a language is and how well-designed it is.


> Microsoft did it with C++

Why do people keep repeating this urban legend?!

I was already doing C++ in MS-DOS (Borland), UNIX (vendor's compiler) and Windows 3.x (Borland), long before Microsoft compilers were any good.

ALL C vendors were pushing for C++.


It's quite evident that Microsoft was pushing C++, their tooling from that time was certainly focused on it, most prominently MFC I think. Plus they never bothered to support C99 in MSVC, literally forcing people towards C++.

Wasn't aware of anyone pushing C++ outside the Windows world, but I don't think it weakens my point.


Apple switched from Object Pascal to C++ with the Power Plant framework.

Borland had Turbo Vision for C++ in MS-DOS, Object Windows Library for Borland C++ and Visual Component Library for C++ Builder.

During MS-DOS days, Microsoft didn't had any C++ framework.

On the UNIX world, some people were using OpenInventor for 3D visualization, CORBA for enterprise communication, portable frameworks like Rogue Wave Tools.h++, or GUI related XVT-Power++, DiaViews++.

UNIX also has the birth place of C++ persistent databases like POET.

There was also the Taligent project from IBM and Apple going on.

IBM had SOM on OS/2.

Psion Epoch used C++ alongside OPL.

I can provide many more examples.

Microsoft was hardly the only responsible company for C++'s adoption.


Unix vendors didn't push C++-only platforms, nearly all the libraries were in C. Contrast to MFC, ATL, COM etc.

(Yeah COM was supported for VB too, but C-hostile)


Except for CORBA, ever tried CORBA with C?

UNIX enterprise programming was all about CORBA, not C related stuff.

That is how we eventually got into J2EE.


The GNOME guys built an entire desktop environment on top of CORBA and C...


I know, and Bonobo is as pleasant to use as COM with C.

While it is possible to do so, it doesn't mean it is sane to do it.

But GNOME guys always hated C++ with passion anyway, from what I remember in my GTKmm days.


Yes, just like how no one would use C# if it weren't for Microsoft or Go if it wasn't for Google.

There are a lot of people who like Objective C including myself. If people didn't the majority of iOS apps would be developed in straight C, C++, Ruby, C#, Delphi, or Actionscript.

http://www.embarcadero.com/products/cbuilder/ios-development

http://www.rubymotion.com

http://xamarin.com

http://www.embarcadero.com/products/delphi/ios-development

http://www.adobe.com/devnet/air/air_for_ios.html

If no one liked Objective C you wouldn't have people like Mattt Thompson taking time to write his excellent NSHipster columns.

http://nshipster.com

https://github.com/mattt

http://postgresapp.com

You not liking a language is not a benchmark of language popularity. If it were, my own biases would dictate that Javascript is a language no one likes, propped up by Mozilla and ECMA.


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


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


Seems more accurate than other ratings.


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


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


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.


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.


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


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

Yep, we're doomed.


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


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: