Linux Programmer

sinck@corp.quepasa.com sinck@corp.quepasa.com
Thu, 25 May 2000 09:12:21 -0700 (MST)


\_ Python is an elegant language where VB and
\_ Perl can be really ugly "mutter".

I bet, for any language, you can construct an arbitrarily ugly
example, where ugly is either in readability, maintainability,
obfuscation, abuse of concepts, or a combination thereof.

Sure, perl is spooky because 

($`)=(@_[0]=~m;/($_)+/;);

is, in fact valid.  But that doesn't mean that real programmers code
that way on purpose.  

Consider as well, one of my *favorite* C constructs:

#define private public

Or the horrific:

#define define ....

Show me a language you can't somehow abuse, and I'll show you a
language that has only marginal usefulness or is only functional in
one area.  (Or you could prove me wrong and I'll gladly recant.)

\_ Perl and VB allow for people to do some sloppy programming.  
Ah, the much touted 'do the right thing' functionality.  [Now if we
could only get a politician to have that...]  It depends, I guess, on
what you think a programming language is for and how you rate it and
what you're trying to do with it.  

If you're trying to get Dan Quayle to program, you're gonna have to
give him some leeway and pass his code through s/[eE]\b//g;.  But more
than likely, given the right language, he could right a runnable
program that he thought was marginally useful in not too much time.
Whether other people thought it was useful is another horse.

If you want a senior programmer to write maintainable code, give him
time, caffiene, and probably money or ego-stroking.  The hardware, os,
and language will not make a difference to the quality of code
produced, only on irritation level and time-to-market.  

FWIW, I have four categories of programming:

1) Trivial.  Simple is as simple does.
2) Moderate.  Can be complex, but is maintainable.
3) Spaghetti.  Can be simple, but poorly thought out.  Typically
	       moderate level of difficulty or higher with poorly
	       thought out steps.
4) Gordian Knot.  Don't ask questions as to why I have a category 4.

And my last comment on languages...I'm beginning to think that if a
language doesn't have an 'eval' function then it is not complete.

David