On TechRepublic: Windows 7: Slower to boot than Vista?
BNET Business Network:
BNET
TechRepublic
ZDNet

September 21st, 2006

Programming language choices

Posted by Paul Murphy @ 12:15 am

Categories: Development, General

Tags:

Two programming languages, or actually development environments, dominate most current discussion: BASIC and Java. Whether used independently or within IDEs, Studios, or other marketing constructs, these are, however, out of place in any serious development context; and both for the same reason: no amount of marketing momentum and library accretion can help these products transcend their original design limitations.

BASIC was intended to help arts students understand a little bit about computers without requiring them to suffer the intellectual self flagellation that is Fortran or learn enough math to become comfortable with APL (then being invented). Java, in contrast, was invented as yet another byte code interpreter intended to isolate software developers from rapid change in hardware devices like set-top boxes initially and cell phones later.

Thus BASIC became a success driver for Microsoft again only after it dropped Xenix as its key OS offering in favor of Tim Paterson’s QDOS and focused on selling stripped down systems into volume markets -i.e. to those without systems training or computer science educations. Thirty years of development later, Microsoft’s BASIC appears quite powerful if used in the context of a Windows operating environment and a Microsoft database product -but that appearance is deceptive since value only exists within that proprietory environment and derives mainly from opaque external libraries.

Interestingly, Java became a huge success mainly because professionals trying to sell non Microsoft products into that Microsoft market saw it as an effective way of insulating their code from Microsoft’s tendency to change those same library APIs and other OS internals every time competing products started to gain market share.

So really, both product sets: BASIC and Java, are doing what they were intended to do: respectively supporting beginners and isolating third party software from platform change.

Great for them, but popularity is not itself an argument for using anything for Unix applications development. Try to look at them objectively, however, and you’ll see that BASIC is still just BASIC while Java can only really be used inside an utterly undisciplined furball of naming conventions, libraries, and co-products, that has grown so large, and so complex, that getting much beyond "hello world" requires both serious learning time and significant human and technological infrastructure.

So what to use?

Obviously it depends on the application. Ruby, with or without rails, is looking better for webapps every day, but so is PHP and both seem perfectly reasonable where the consequences of a successful attack on the server are considered largely immaterial - meaning that their relative security weakness may therefore be considered unfrightening too.

Combine either one with Apache, SQL, a decent data management package, and a browser client and what you get is a perfectly fine engine for developing production ready prototypes for most small business applications - but if security is a killer issue, performance is important, reliability under extremely heavy loads is a requirement, or you’re bent on developing one of the toolset systems groupings like LAMP rely on: the next Apache, a less brain damaged data retrieval and manipulation tool, or a better data manager, then you need something else.

And right now that leaves Perl for rapid prototyping and "C" for the final implementation with not much more out there to threaten more or less (i.e. more libs, less pointers) bog standard 1978 K&R C for an application to be released nearly thirty years after the book. That’s quite a tribute to the language originators, but it also suggests that a lot of the object stuff we’ve been talking about during most of that period has essentially been a detour to nowhere - and that’s bad news for an industry facing major hardware, and therefore software, change over the next few years.

Why? Because C as it stands today doesn’t quite cut it on Cell, on CMT, or for interval arithmetic - and there’s really nothing else out there just now that will.

Paul MurphyPaul Murphy (a pseudonym) is an IT consultant specializing in Unix and related technologies. See his full profile and disclosure of his industry affiliations.


Email Paul Murphy

Subscribe to Managing L'unix via Email alerts or RSS.

  • Talkback
  • Most Recent of 90 Talkback(s)
What CS luminaries had to say about Lisp
I found these at: http://www.paulgraham.com/quotes.html

"the greatest single programming language ever designed"
- Al... (Read the rest)
Posted by: Mark Miller Posted on: 09/27/06 You are currently: a Guest | | Terms of Use
Nice summation  shadowjack@... | 09/21/06
Programming languages of the future  jonfernquest | 09/21/06
Something like PHP...  ju1ce | 09/21/06
Did you read the title of this blog?  Roger Ramjet | 09/21/06
Of course...  ju1ce | 09/21/06
Some of us think ASP .Net too complicated.  jplatt39 | 09/23/06
PHP is too slow?  bportlock | 09/24/06
What I find interesting with programming languages...  ju1ce | 09/21/06
Standing up to C  Roger Ramjet | 09/21/06
ada i sone of the many I don't have experience with  murph_zZDNet Moderator | 09/21/06
GCC makes an Ada compiler  Roger Ramjet | 09/21/06
Interesting I looked it up quickly...  ju1ce | 09/21/06
The Bible  D. T. Schmitz | 09/22/06
????  Erik Engbrecht | 09/21/06
What in the world does this comment mean?  kentfx_z | 09/21/06
Probably true  murph_zZDNet Moderator | 09/21/06
that you stop lying  code_Warrior | 09/21/06
The trouble with idiots is  Roger Ramjet | 09/22/06
The right tool  D. T. Schmitz | 09/21/06
Hey dietrich...  ju1ce | 09/21/06
Python  wolf_z | 09/21/06
But to move on further  jorwell | 09/21/06
What are we talking about?  Erik Engbrecht | 09/21/06
If you're developing apps for systems...  ju1ce | 09/21/06
Thingy orientated programming  jorwell | 09/21/06
OOP and Systems  Erik Engbrecht | 09/21/06
Jorwell and Murph on OO  Erik Engbrecht | 09/21/06
Thanks Eric  jorwell | 09/21/06
The book...  ju1ce | 09/21/06
You would have time to read the book  jorwell | 09/22/06
Well from my opinion....  ju1ce | 09/21/06
No, you don't need loops  jorwell | 09/21/06
I need examples...  ju1ce | 09/21/06
This should be obvious if you use SQL  jorwell | 09/21/06
Your response is to simple for a complex application...  ju1ce | 09/21/06
No, works in all cases  jorwell | 09/21/06
Be careful..  jorwell | 09/21/06
throw-away code (i.e. write once stuff)  murph_zZDNet Moderator | 09/21/06
2B or not 2B  D. T. Schmitz | 09/21/06
Don't you mean  jorwell | 09/21/06
Well think of it this way....  ju1ce | 09/21/06
I'll look again at python  murph_zZDNet Moderator | 09/21/06
The other thing...  ju1ce | 09/21/06
Just forgot to add...  ju1ce | 09/21/06
I don't "hate" loops  jorwell | 09/21/06
Perl to a point  Roger Ramjet | 09/21/06
I'll be the first to admit..  ju1ce | 09/21/06
Perl vs Cobol  murph_zZDNet Moderator | 09/21/06
Significance?  Anton Philidor | 09/21/06
Well the one thing Perl has...  ju1ce | 09/21/06
Roger that  D. T. Schmitz | 09/21/06
Ever heard of Perl golf?  Roger Ramjet | 09/22/06
Popularity  Erik Engbrecht | 09/21/06
Agreed - but so what?  murph_zZDNet Moderator | 09/21/06
HW Changing Language Requirements  Erik Engbrecht | 09/21/06
Java  Erik Engbrecht | 09/21/06
Question.  Anton Philidor | 09/21/06
define competent  murph_zZDNet Moderator | 09/21/06
Murph...  ju1ce | 09/21/06
The discipline is with the programmer, of course  jorwell | 09/21/06
Intellectual Flagellation  John L. Ries | 09/21/06
What's your point?  D. T. Schmitz | 09/21/06
I completely agree...  ju1ce | 09/21/06
or....  Erik Engbrecht | 09/21/06
I agree about logic  jorwell | 09/21/06
F77.. actually, yes - Sorry! (NT)  murph_zZDNet Moderator | 09/21/06
BASIC -- not just for beginners  jcg_z | 09/21/06
I think the first issue...  ju1ce | 09/21/06
VB.net - is powerful, but limited  murph_zZDNet Moderator | 09/21/06
True, but Mono is on it's way...  jcg_z | 09/21/06
JAVA  opensourcepro | 09/21/06
No way...  ju1ce | 09/21/06
This is not one of your better posts Paul  bportlock | 09/21/06
Speed of program and speed of programmer.  Anton Philidor | 09/21/06
The holy grail is flawed  bportlock | 09/21/06
A disappointing reality remains reality...  Anton Philidor | 09/21/06
C is a systems programming language  jorwell | 09/22/06
Good Coding Practices  D. T. Schmitz | 09/21/06
Of course, there's an obfusicated C contest too  murph_zZDNet Moderator | 09/21/06
Garbage! (collect it)  LouS | 09/21/06
Yawn  TonyMcS | 09/21/06
stop smoking weed!!!  jjgitties | 09/21/06
Unix philosophy, C and Java  Richard Flude | 09/21/06
It depends on what you're doing  Mark Miller | 09/23/06
Been wondering about LISP  murph_zZDNet Moderator | 09/24/06
Yes, look at Lisp  LouS | 09/24/06
Agree. P.G. convinced me to give it a 2nd chance  Mark Miller | 09/27/06
Meant to mention...  Mark Miller | 09/27/06
What CS luminaries had to say about Lisp  Mark Miller | 09/27/06
Xerox had Lisp hardware?  Mark Miller | 09/27/06

What do you think?

SponsoredWhite Papers, Webcasts, and Downloads

advertisement

Recent Entries

Archives

ZDNet Blogs

White Papers, Webcasts, and Downloads

SmartPlanet

  • Thought-provoking progressive ideas on diverse topics that intersect with technology, business, and life, and matter to the world at large. Visit SmartPlanet
  • More from IBM
  • Innovate your business' process model, play against the market, compete against others on our scoreboards and WIN! Try INNOV8 2.0: A BPM Simulator
  • Enabling Real-World Business Transformation through IBM Service Management Read the EMA Analyst Report
Click Here