Which Programming Language Should I Use?

Jan 29 2008

Nobody cares.

People talk about Mona Lisa and not the brush used.

People love Shakespeare for his works, not his pen.

Your product will win or lose because of its quality, and not because of the choice of tools used to build it. Programming languages affect the quality of your products only if you design the product based on the limitations of the tool.

Design your product first. With all its beauty. Then use the best tool to build it.

21 responses so far

  • Binny V A says:

    Wow – that was beautiful. Great advice.

  • http://www.codinghorror.com/blog/archives/000839.html this will add more points to the thought. I wish I had more time to write this comment.

    It depends on the application you are developing. If you are painting monalisa then it doesnt make any difference but if it is really huge then the language and paint does matter, scalability check is a big factor.

  • Niyaz PK says:

    AjiNIMC,

    I agree.. I was just pointing out the need of a good design.
    We should not make a compromise on the quality of the product because of the tool we use.

  • TheAnand says:

    ah…a point….but mona lisa looks good due to a good brush being used there…if it was a bad brush….it would not have been what it is today :)

    But an artist would have his interest on that brush…not the common folk like us…it all depends on the side of the coin you are looking at.

  • jason says:

    very good advice indeed.

    Programming Languages come and go and each have their benefits and drawbacks, best not to hang onto to one dogmatically.

  • Titannick says:

    “Design your product first. With all its beauty. Then use the best tool to build it.”

    Well .. yes and no.
    If you’re going to build something with wood, you will make a different design from the one you would make if you were building with steel.

    Some languages can graciously describe certain constructions, while another language may be terribly ungracious in its execution of the same construction.

    When you design, you should know the tools you’re using, and utilise their power to the max. Not just choose after you make a design.

    people tend to lean towards extremes too much…

  • Nirmal says:

    Nice thought! :-) and indeed true.

  • Niyaz PK says:

    Titannik, Nirmal,
    Thanks for giving your thoughts.

  • fivestar says:

    fivestar

    G6hnhuo5hfnvt5TyoD4bhQqAw

  • “People love Shakespeare for his works, not his pen.”
    Shakespeare’s tool was the English language, not his pen and people spend a lot of time talking about that.

    The final work of a programmer is not just the problem itself(if it was, then programming would be so much easier), it’s about how well the code can be adapted, improved or understood by other programmers.
    I imagine Shakespeare choose to use English because that’s the language his viewers understood.

  • Fabien says:

    @Jesse: English is the user interface part (the things users see). The tool used to build it is still the pen — something the user doesn’t see.

  • Alex says:

    I completely disagree. It often matters which software you use, not for the result, but for the ease of development / build time taken. If you are writing software that hooks in to a kernal, you best pick C over say Java or hell, PHP. If you’re going to manipulate strings, you best pick Java over C, otherwise you’ll spend a whole lot more time developing, testing, and debugging.

  • [...] There are a lot of programming languages out there and people are always confused about the programming language they should use to develop their applications. We see a lot of people asking the question “Which programming language should I use?“. [...]

  • Fill says:

    It drives me nuts when the client specifies the language/tools for a project.

    Some excuses we’ve heard:

    “Use Cold Fusion because we firmly believe it’s the future.” – client was a proprietary software vendor, we hired a CF developer to get the project done.

    “Use Microsoft ASP/.NET with SQL Server because our computers in the office are all Windows.” – RFP of a redesign of their site. They were a client for 10 years, we walked away.

    “Make the site static so we can maintain it with DreamWeaver” .. because it came with their Adobe creative suite.. same client as above

    “We finally had to fire the previous programmer because they wouldn’t finish, but since we’ve invested so much time and money on the project, we’d really like you to fix/finish it instead of starting from scratch.” – we’ve heard this a number of times over the years. Clients can have a tough time acknowledging that they’ve been throwing time and money away by choosing the wrong agency/programmer.

    “We want it to look and work like (insert a massive site of your choice here, such as eBay, Amazon, etc.).” – guess how much Amazon/eBay, etc. paid to create and maintain their site?!

    “Use ‘preloading’ to make the pages load faster.” – client was on a partial T-1, and the site (very heavy design, graphically) doesn’t have any ‘roll over’ images or anything like that which could be ‘preloaded’… not that ‘pre-loading’ would make the pages any lighter.

    “The site won’t let us ship via method XYZ to this address, can you please fix it?” – shipping provider doesn’t provide service to the destination with that method.

  • The beauty of software development is the amount of tools that we have at our disposal. Concentrating on the design and using the best tools possible for your idea is the best advice.

  • mixdev says:

    It only matters with a special brush that can slash the painting time by 60% and touchup work by 70%. We like to see more great paintings. Right?

  • Dez says:

    Thanks for the great post Sir,

    Just pondering over multiple options in an online testing facility (flash vs javascript + javascript vs CGI).
    This on top I am only seasoned in HTML :)
    Cheers,

    D

  • Hakoo Desai says:

    Hello All,

    As we know the platforms, those are .NET, Java, Python, C, C++ and much that we studied during Engineering. But always I wondered by looking applications like Antivirus(Kaspersky/ any one), Chess Software(Fritz / more), or any softwares (Messengers, OS..etc) developed by known companies. What do you think, in which language they would develop and how they develop UIs of such softwares?

    Dont you wonder by thinking this?

  • Drew says:

    If you’re creating your own project, this is simple and good advice.

    If you’re looking for a job, this advice doesn’t work, because you are most often supporting existing code.

Leave a Reply