Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I was reading the following article: Great Hackers

The following part grabbed my attention:

"When you choose a language, you're also choosing a community. The programmers you'll be able to hire to work on a Java project won't be as smart as the ones you could get to work on a project written in Python. And the quality of your hackers probably matters more than the language you choose. Though, frankly, the fact that good hackers prefer Python to Java should tell you something about the relative merits of those languages."

I would like to apply his advice on a commercial web application I am building (I am a strong believer in culture and community), yet this article was written in 2004, and python has increased in popularity in the recent years.

How can I decided a language when taking in consideration its community, rather than the popularity? Any recommendations?

Is there any language community that show dedication and passion for developing, rather than learning a language to get a Job and a paycheck?

share|improve this question
    
I dont think question is very clear here, could you rephrase it? Seem like you need to make a decision about choosing a language, but its no clear wheter you need information about communities or a criteria on how to value each one –  guiman Dec 6 '11 at 1:49
add comment

7 Answers

up vote 6 down vote accepted

Paul Graham usually says some pretty insightful things, but the specific advice in this quote regarding the quality of programmers you hire is rubbish - you can usually find great programmers in any sufficiently large community. Remember, if you are hiring intelligently you will hire from among the best not the average from your target group so the level of average ability is irrelevant.

Even if there are a lot of bad Java programmers, I doubt you'll find any difference between the best Java programmers or the best Python programmers. In fact, I suspect you'll find more truly great programmers in the Java community just because of sheer community size. For example, the Google Code Jam statistics show the top finalists choosing C++ and Java as the two most common languages over the past few years.

Anyway, if you are after a language with a great community I'd recommend checking out Clojure.

  • It's a Lisp. Lisps are a good place for great hackers (I agree with Paul Graham on this one!)

  • The mindset is "pragmatic" and "get things done" - you won't see any NIH attitudes, the tendency is to embrace different approaches.

  • The community is constantly innovating - seems to be a new library or tool announcement every couple of days. Nearly all of this is open source on GitHub.

  • It's production ready - since it's a JVM langauge, the underlying platform is extremely robust and you get all the production-quality Java libraries and tooling for free. This is a massive win over other languages that don't have access to this kind of ecosystem, and as a result there are plenty of startups choosing Clojure.

  • Very active IRC channel, Google Groups, development site etc.

  • Perhaps most importantly, the people in the community are passionate about what they do and always willing to help newcomers - the linked story is a touching example.

share|improve this answer
11  
You hardly ever hire the best from your target group. At best, you hire the best from the target group that happen to be in the market for a different job at the time you are looking. –  Marjan Venema Dec 6 '11 at 8:35
add comment

Hire the best programmer you can find and after they understand what your web application needs to do, let them pick the language. If you need to find more programmers that understand the language of choice, this person should be able to find them.

share|improve this answer
add comment

This is one webpage that resumes pretty well what you're looking for (it just presents a classification without any backup explained, but I think is still a good resource)... just search for the question that contains the word "community" in there http://therighttool.hammerprinciple.com/browse

share|improve this answer
add comment

While there is truth in what Paul Graham said. However, it is more important to realize is that Hackers is not what you always want!

Before i see people fuming on such a statement, let me tell you what my interpretation of the word. For a simple example you can see The International Obfuscated C Code Contest. You will see a great many folks who are greatly talented to solve serious puzzles. However, there are times when you write software brevity is not always the first thing you are looking for.

Same is true if you find a lot of quality C programmers from embedded systems; however, when you put them on a larger scale enterprise applications you will start that many habits that helps them to be lean on those platform, begins hurting projects of different type.

I am not making any judgment about individuals, it is true that quality of individuals matters a lot; however, when you are choosing the language or platform is a larger business decision and many more factors count.

share|improve this answer
add comment

Choose a language that is designed to solve the problem you have. Then hire people who know that language and like solving that kind of problem. then you will have the right people doing the right job with the right tools.

share|improve this answer
add comment

While "community" is important, I think you should look at the language used in your problem "domain". Utilities bill using COBOL, geologists analyze seismic results using fortran, Quants game the market using C++, bankers hold on to your money using a combination of COBOL and Java etc. etc.

For web applications its overwhelmingly php or Java. A small (but growing) percentage of web applications use Python; maps.yahoo.com being the poster child, but there are very few exmaples of top ranking/famous name sites developed completely in Python!

So this makes it a tough decision. I myself have recently taken the plunge and decided that I will use "web2py" for any development (assuming I have a choice!). This is after several years of doing serious stuff in J2EE and lesser tasks in PHP. I just plain hate the overkill inherent in all the Java APIs along with the sheer tedium of the coding involved, I actually like developing in "php" but there is always a "flared trousers and Hawaiian" shirts feel about it -- its fast, it works but its not elegant.

With Python one of the difficulties is choosing your framework Zope, cherrypy, pylons etc all have very different design philosophies and a Zope hacker cannot help you with your Pylons problems. So pick the framework that suits and you will find a small community of excellent hackers to help you out, which is probably better than a Superbowl of full of amateur php coders.

share|improve this answer
add comment

If you're hiring locally, go to meetup groups for software developers who specialize in the languages that you're choosing from. The best way to check out the "community" is to do field research.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.