hedgehog lab Bug Tracking, Defect Tracking, and Issue Tracking software for the enterprise.

If you are interested in a painless, user friendly, and powerful Bug Tracking Solution, that helps you write better software and deliver projects on time, check out fixx.
Sarat Pediredla Feb 02

Limiting programming language choice

As a company that wants to build the best environment possible for developers to flourish in, we have always encouraged freedom of choice in the tools and technologies they use. Our team currently uses a mix of Ubuntu (Simon), Mac OS X (myself), Windows XP (Mark) and Windows Vista (Ashley) as operating systems. We use these because they are the tools that allow the highest level of productivity for us as individuals (although how anyone can be productive on Vista, I am not sure).

Although the mix of systems causes a bit of trouble when it comes to system administration, the pros outweigh the cons and the productivity boost justifies the little extra time we spend in sys admin time. After all, the aim is to make the developers’ life easier!

Likewise, we all have different views when it comes to programming languages of choice with Python, Java and PHP all holding a special place in our hearts. Given that we have experience in using everything from C to Ruby to C#, this usually works to our advantage on the consulting side of our business, being able to provide any development service that clients require.

However, I was reading an interesting post last week on how standardising programming language choices has helped Google innovate with technology and it got me thinking on the advantages of limiting the choice of programming languages, especially for internal use in product development.

At hedgehog lab, we use 4 primary languages for both product and internal development.

  1. Java
    Java has always been our language of choice for product development despite many wise people frowning upon it. No other language polarises people so much as Java these days and no matter whatever the arguments, Java is still big in the enterprise and finding qualified people is relatively easier in today’s ultra competitive developer recruitment market.

    And the very fact that makes Java undesirable for many (it is not powerful enough or cool enough), makes it reliable for us to work with and the JVM and open source efforts behind Java make it an obvious choice.. Anyway, I am not here to start another debate on Java vs Others; that we use Java to build our products is a simple fact.

  2. PHP
    PHP is by far the most popular web development language that we have come across (every small business we speak to wants to use PHP) and like Java, it is easy to learn and recruit for. The evolution of some good frameworks has allowed us to develop some rapid internal applications and experiment with ideas.

  3. Python
    Python is our favourite language by far. It is so simple yet powerful and has an impressive cross platform record. With Django, there is now a compelling case for the use of Python to replace PHP (if not for the fact that every one of us knows PHP so well). Our new web site will be built on a custom CMS derived from the Django framework.

  4. Javascript
    Perhaps the most misunderstood programming language ever (I remember having many frustrating arguments with developers who insist it is a scripting language), is used in almost all of our UI code (fancy AJAX anyone?) and will even be making its debut in the back-end in one of our new R&D projects.

Given that the set of these 4 languages allow us to do everything from write parallel systems to sockets based servers to desktop systems, we have now decided to limit our set of programming languages to these. It allows us to build greater expertise in these 4 languages while enabling us to contribute back to these communities without spreading ourselves too thin. Given that Python can do pretty much everything PHP can do, we might even decide to reduce the list to 3.

Does this mean individual developers will be restricted from learning new languages? Absolutely not! Developers at hedgehog lab are always encouraged to learn new tools and technologies and we will constantly re-assess the programming languages to see what fits our purpose at any given moment of time. The same applies for client projects where we will still be working on a delicious cocktail of C#, Ruby and other technologies to fit into a client’s environment.

I will be posting again in 6 months to evaluate how things have progressed with our restricted programming language choice and lessons (if any) we learn.

posted by Sarat Pediredla on February 2, 2008 at 4:44 p.m.

Comments

Post a comment