Functionality Overload

What Jeff Atwood posted today is pretty much completely true. Amongst other things, I develop websites using PHP. And I frequently have to check the documentation to see how a function is called (because there’s no consistency indeed). But more: even if I know what it’s called (or I’m pretty sure of it), I still have to check how the order of the parameters is. Because there’s usually no consistency there, either.

Luckily there’s syntax highlighting in e so that I know I’ve got the correct function name:

Xvhostshuizenhttpdocsmodulesmapsmaps.module  - e (2)

versus:

Xvhostshuizenhttpdocsmodulesmapsmaps.module  - e (3)

(notice the coloring of functionexists vs function_exists).

I think I’d probably have the same problems in C# if Visual Studio didn’t have intellisense. Not so much with the language itself, but with the Framework associated with it. So what Jeff says is not only valid for PHP, but for all languages+frameworks these days: there’s so much functionality that it’s hard to get anything done without having to resort to some kind of documentation system (beit Intellisense, help files or the web). The days of (productively) developing something in just a plain text editor are over. And that is PHP’s problem: most of the PHP scripts are created using a simple editor. Why? Because the good tools come at a certain price (e.g. Zend Studio, or Visual Studio). And like Jeff says: most of the PHP scripts are written by basement-locked script kiddies, who can’t (or won’t) afford such an editor.

Visual Studio (and thus VB and/or C#) has a free express edition, which makes it the best choice to develop any .Net code in (unless you want/need the more expensive versions of Visual Studio). While those tools are probably available in one form or another for PHP too, the problem is migitated for Visual Studio because downloading Visual Studio is the preferred starting point to start .Net development. In fact, it’s harder to start developing without Visual Studio.

So there: it’s not only about (framework) inconsistencies, but also about toolset visibility and availability. A good (and readily available) toolset can migitate a lot of the deficiencies of the language/framework used.


About this entry