On 09/03/12 07:11 AM, Joe Pluta wrote:
People get Perl jobs too. :) But to use the trite observation, if you
were building an application today would you use PHP as your first
choice? I wouldn't.

Joe: You've made your choices very clear. But people choose programming language for many different reasons.

First, to be clear, few programmers have the choice. For the vast majority of us, the choice was already made by others, years ago, for reasons which may or may not have made sense at the time, and probably make even less sense now.

Why did I choose to learn PHP? Because I looked at what local companies were looking for. In December, I started a project in PHP, and within weeks, I got an offer to work as a PHP programmer. The job didn't work out (not because of my technical skills, BTW), so now I have some time again to do some more work on that project while resuming the job search.

But let's say you had carte blanche to choose a programming language for some new project. While language features would have been the primary consideration 25 years ago, there are a lot of other factors to consider these days. Here are some things to consider:

Compiled versus interpreted? That was certainly an issue 25 years ago. Today, performance can be safely ignored. CPU's are blazingly fast these days. For many shops, if performance is an issue, just throw a few more CPU cores into the mix. But what really gives the edge to interpreted languages these days are rich language features.

Frameworks? There are a plethora of rich frameworks to choose from. This is probably the most important criteria these days. Today, no application should be written without consideration of what the popular frameworks have to offer. Python, PHP, and Ruby all offer a dizzying choice of frameworks. Take CakePHP for example: It offers great support for MVC programming, and handles a lot of the housekeeping tasks that keep programmers busy in other languages. You don't have to write SQL code, even for queries with joins! (To be fair, that's pretty much true for PHP in general anyways. But CakePHP makes it easier.)

Platform? I've mentioned elsewhere that platform is pretty much irrelevant these days. PHP can run on pretty much all operating systems. Same is true with Python. (Perl can run on most, but outside the Linux/Unix world who cares?) These days, there's no reason not to choose a language that can't be deployed everywhere.

And on the issue of portability, interpreted language again have the edge. As long as the interpreter can be ported to a platform, programs can run pretty much without modification. It's harder to make that claim for compiled languages. And I would clearly avoid any language that runs on just one or two systems. That's a good way to lock yourself into a single-supplier situation, as well as limit employment possibilities. (Unless you're a clear expert within that domain!)

Type of application? I've said this before: As a rough first order guideline, you choose a compiled language for systems programming, and an interpreted language for applications programming. For systems programming, you're more than likely locked into one particular piece of hardware anyways. And you probably do care at least a bit about performance. For applications, you care about programmer productivity. If you're dealing with an interactive application, these days you're probably dealing with a web-based environment, and so web-based frameworks again become an important factor.

Support? That is, where do you go for help? Most programming languages have good on-line communities. RPG400-L is a good example! But also look at how well the language is supported by common tools, such a Komodo Edit. That's a free source code editor that runs on Windows and Linux, and has great features.

What would be MY first choice of programming language? I'd probably go with Python as my first choice. (No surprises there!) But I certainly wouldn't rule PHP out of that position. It's a gawd-awful ugly language, but it works.

Cheers! Hans

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2020 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].