Share via


Programming Languages and the Free Throw

Choosing a programming language tends to involve an interesting intersection of what you need (i.e., requirements), what you know (i.e., past experience), and what you believe (i.e., bias and flexibility).  It's kind of funny to note that these are pretty much the same crieria one might apply to choosing a religion, but that's a topic for another day.  One holy war at a time.  Choice of programming language should depend on the project(s) at hand, the team(s) doing the work, and the business interests of those who will own the intellectual property.  There is no "best" programming language; the suitability of a language depends on the problem domain to which is it being applied and the people doing the appying.

Too often, however, developers go with what's cool or what they know.  Developers gravitate toward what is cool, with coolness being determined by what the alpha geeks are using or what the press is saying or simply what everyone else is doing.  And, once brought into a language fold, developers kind of stick there, trying to apply the same bag of tricks to whatever problem comes down the line.  There are also more practical reasons for language-lock, as it's easier for an organization to manage a code base that uses fewer languages, it's easier to get a job when one is good at the most popular languages, and learning new languages can involves a significant investment in (non-productive) time.  Despite this, I would argue that there is way more polarization around languages than there needs to be.

Rick Barry, the basketball Hall of Famer, famously used the "granny" style of underhand free throw shooting.  His argument was (and remains today) that the underhand shot is a mechanically superior approach to the problem of the free throw.  His lifetime 90% record of free throw success (#2 in NBA history) tends to give his argument some weight.  However, nobody uses that technique today, despite the fact that it may be mechanically superior.  Why not? For one, it's not cool.  Nobody wants to look like Granny Clampett on the court.  Secondly, it would be yet another type of shot that has to be learned and practiced, whereas the overhand free throw shooting technique makes use of the same mechanics as the jump shot.

Sometimes it's worth the investment in time to choose and learn the right tool for the job, whether you're writing software or shooting free throws.

Comments

  • Anonymous
    January 04, 2006
    > an interesting intersection of what you need
    > (i.e., requirements), what you know (i.e.,
    > past experience), and what you believe
    > (i.e., bias and flexibility).

    And what language(s) are already in use in the product.

    And how much the tools cost. An MSDN subscription doesn't even include the former MS Fortran, and Intel now charges more for just Fortran than an entire MSDN subscription might cost.

    And whether end users would be forced to download a runtime library or interpreter package before being able to use your product.

    And how likely you are to get murdered for choosing a different programming language than someone else chose. What, you don't believe me? Then see this :^)

    > pretty much the same crieria one might apply
    > to choosing a religion

  • Anonymous
    January 05, 2006
    Yeah, cost can be an important factor... that's part of what I meant by the business interests of those owning the IP.

    I consider runtime deployment issues part of the project requirements.

    I agree with you about Fortran tools.... they are expensive.

  • Anonymous
    June 13, 2009
    PingBack from http://quickdietsite.info/story.php?id=6418

  • Anonymous
    June 17, 2009
    PingBack from http://thebasketballhoop.info/story.php?id=760