Tuesday, September 21, 2010

The Perfect Programming Language, will there ever be?

Is there a Perfect Programming Language?

Any programming language could be the best depending on you and what you want to use it for. Reading user reviews of different programming languages or using their killer apps would make you think every language is the best.

Imagine a newbie thinking of a programming language to start with then finding out Facebook and Yahoo are mainly PHP, he will think PHP is the best. Google uses Java and Python, the all-popular Twitter is written in Ruby, MSN and Hotmail are ASP.NET, Mozilla Firefox and OpenOffice are both written in C++, the multipurpose Netbeans & Eclipse IDEs are Java apps to mention a few.

There is still a question of 'can't I just choose the best and learn it?'. But which is the best of the programming languages. My own answer is NONE. None of them is perfect. Each programming language solves problem(s) and leaves/creates other(s).

Looking at a language like C++, it is statically-typed and runs fast. But you'll write several lines of codes, you can sleep and wake and still meet your program compiling (if you've built a large C++ program from source before, you'll notice this), there is need to build your program on the target platform before it can run on it and so on.

Java brought a new dimension. You can write once and run everywhere, it provides a cross-platform UI (User Interface) toolkit, it is statically-typed. But there are still some problems. It runs in the JVM (Java Virtual Machine) which leads to slight reduce in speed, you still write lots of code, your program's maximum capability is the JVM's and so on.

Then the interpreted languages like Ruby, Python, Javascript e.t.c solved some issues. No need to wait for compilation, you write shorter codes, easy to learn. But the fact that it doesn't compile leads to unnecessary runtime errors that could be checked during compilation and slower runtime.

There are also some JVM based languages like Scala, Groovy e.t.c. They also solve some problems but the fact that they are JVM based still leaves the JVM issues above unfixed.

October last year(2009), Google released a programming language named Go. It is statically typed, has fast runtime, shorter codes, lightweight inheritance with the use of interface, cross compilation (can build a program targeted for Windows on a Linux PC, even targeted for a 64bit on a 32bit PC) and so on. Apart from these features, I'm also a Google fan so I tried the language. One thing that is painfully missing is a fully functional UI toolkit, most apps written in Go uses Javascript and HTML as fronted which is viewed through a web browser. It may be available later in the future but right now it is not available.

Mozilla is also working on a language called Rust. Knowing Mozilla as a company that has written popular desktop apps (Firefox and Thunderbird to mention a few), Rust should have a functional UI toolkit but I believe something will still be missing, we can't know that till it is released.

So, will there ever be that perfect programming language? A programming language that is cross platform with a fully functional cross-platform UI toolkit, fast runtime, easy to learn, clear syntax and shorter codes? Hmmn, time will tell.

But till then, you just have to use the language that best fits the job.

I'm still waiting and hoping for that Perfect Programming Language, I just pray and hope my wait will not be eternal.


  1. never knew u were good at writting articles, this is good.

  2. We could consider writing the perfect programming language too...aren't we programmers? Nice article BB!!! Nice one!

  3. @Tosin u are right, we could consider writing it when we have the resources. Nothing is impossible.

  4. I'm starting to think too much time is spent obsessing about language syntax and features, and not enough time spent thinking about real world practical applications and the actual run-time mechanics of the language.

    For instance, we should have a modern language by now that does not rely on static processes, so as to scale well in shared hosting environments - that compiles on demand, so as to facilitate a quick and intuitive development-cycle, and that runs and caches native machine-code, so as to maximize the use of system resources.

    There are so many new languages with great features and great syntax, but where is THAT language?

  5. Casinos and Slots to Play with Real Money
    Real money slots are fun and attractive as they offer 공주 출장마사지 some of the most exciting online 남양주 출장안마 casino slots games to play. 안양 출장샵 We list all 충주 출장마사지 slots 하남 출장안마 at Mr. Red Dog Casino!

  6. Also referred to as "Vegas slots", class III video games make use of an RNG that randomly selects random numbers similar to predetermined payouts. You play class III slots by inserting a wager and telling the game to take an instantaneous snapshot of the present RNG random number and show the payout it represents. The payline is a line that extends from one aspect of the slot window to the other. When the wheels cease spinning, the icons beneath the payline should match in a specific order. Unlike the earliest versions of slot machines, nonetheless, the fashionable slot machines don't simply have a single center payline that runs straight throughout the face of the 1xbet window. The payline can have many various geometric shapes, zigzagging throughout the screen via the three icons.