The New Age of Programming
June 23, 2004
This article was contributed by Joe Klemmer
A long time ago in a Galaxy far, far away I was a programmer by profession. This was in the days of Mainframe COBOL programs. Over the years I have gradually found myself becoming a Systems Administrator. While I do less "real" programming now, I have picked up a number of different languages like perl, php, shell, C/C++, etc. Recently I have found myself thinking about the differences in programming languages and it seems to me that there are two basic kind of languages. For lack of better terms I'll call them "Standards Based" and "Internet Based". These two branches have some interesting differences that might not be apparent at first glance.
What do I mean by Standards Based languages? These are languages that are generally defined by ISO standards committees. For the purpose of this piece we'll consider the following languages to be in this category: Ada, C, C++, COBOL, Pascal and SmallTalk. As for Internet Based languages, we'll use Java, Perl, PHP, Python, Ruby and Tcl/Tk. So what is the significant differences between these two camps? What are the advantages and disadvantages of using one or the other?
One of the advantages of the Internet Based languages is the fact that they are languages that have grown up and proliferated on the Internet. Being designed and built to work in the online world, they can easily do things that other languages can't, or must be shoehorned into doing. Even though C and C++ are quite capable of dealing with the 'Net, they aren't as at home as, say, Java. With the Internet Based languages you can develop and implement a system or application in a much easier fashion than with the others. The developers of these languages also had the advantage of being able to learn from the older languages, making what had previously been difficult much simpler. There are also some down sides to the Internet
Based languages.
The most noticeable one is, ironically enough, one of their considered strengths; the speed with which they evolve. The language definitions for PHP, Python, Ruby and even Perl and Java are done at light speed. It's lucky if a language lasts for a few years before being massively updated. While this is fun for developers doing small, cutting-edge work and those doing R&D, it's not so good if you need to build an application for a large production system. I've been involved with a massive online system that's been built in Java. The application works fine, but the amount of work that the developers have to do to maintain and enhance it with older versions of Java is not insignificant.
With the older languages there's much more long-term stability. You don't find major changes in the language definitions happening at such a fast pace. A program written in Ada or C++ twenty years ago will still compile and run on today's platforms. These languages are not stagnant, however. The current C standard is C99 and it may surprise you to know that the most up to date language is COBOL with the current standard dated 2002. Standards Based languages, by definition, are standardized and stable. This does make for slow adaptation to changes in the IT/IS world, such as the development of WiFi and other new technologies. This adaptability/stability aspect is, as I said earlier, both an advantage and a disadvantage for each of the different models of languages.
Programming languages are tools. Different languages have their own
strengths and weaknesses. Most seasoned developers have an idea of these issues. However, the speed of a language's evolution is often an overlooked aspect. Sometimes, slow and steady is better than fast and new.
Comments (18 posted)
System Applications
Audio Projects
Planet CCRMA Changes
The
latest changes from the
Planet CCRMA audio utility packaging project include
updated versions of Libsndfile, Specimen, Blop, and the addition of
apt and configuration file links for Fedora Core 2.
Comments (none posted)
Database Software
Glom 0.8.3 announced
Version 0.8.3 of Glom, a database table definition GUI, is out.
This release features bug fixes, improved documentation, and an
updated German translation.
Full Story (comments: none)
PostgreSQL Weekly News
The PostgreSQL Weekly News for June 22, 2004 has been published.
"
With 7.4.3 now out the door, all eyes have really turned to finishing
up 7.5 development. The biggest progress in that regard was the committing of
the long awaited tablespaces patch."
Full Story (comments: none)
PyORQ 0.1 released
Version 0.1 of PyORQ, a Python Object-Relational binding, is out."
With PyORQ you can use Python expressions to write queries which are
automatically translated into SQL and executed by the backend. This
leverages the search capabilities of RDBMSs in an object-oriented
programming environment.
PyORQ 0.1 is a technology demo. It's purpose is to demonstrate the
possibility to translate python expressions into SQL queries and to
solicit feedback on this approach and its implementation".
Full Story (comments: none)
ZODB 3.2.2 (final) released
Version 3.2.2 (final) of ZODB is available.
"
As promised with the ZODB 3.2.2b1 release last week, the tests for the
unsupported Berkeley-based storages are now disabled in 3.2.2. In addition,
a small but critical bug in FileStorage.restore() was identified and
repaired. This bug didn't affect the Zope core, but is critical for sites
running ZRS."
Full Story (comments: none)
Mail Software
bogofilter 0.91.4 released (SourceForge)
Version 0.91.4 of bogofilter
has been announced.
"
This release fixes a minor bug that could result in an "err: 17, File exists"
message. The bogofilter package implements a fast Bayesian spam filter as
suggested by Paul Graham in "A Plan For Spam"."
Comments (none posted)
milter-bcc/0.2 (alpha) is available
The 0.2 alpha release of
milter-bcc
is out.
"
This is a Sendmail utility milter that can add to the recipient list of any inbound and/or outbound message one or more blind-carbon-copy recipients (Bcc) depending on the MAIL FROM: and/or RCPT TO: addresses for any given message. This is particularly useful for mail hosts that manage several domains, such as an ISP."
Comments (none posted)
Sendmail 8.13.0 released
Version 8.13.0 of Sendmail
has been announced.
New features include the ability to query maps via tcp/ip sockets,
connection rate control, LDAP enhancements, message quarantining,
support for certificate revocation lists, experimental MTAMark
support, and more. See the
release notes
for more information.
Comments (none posted)
Printing
LinuxPrinting.org news
The latest news from
LinuxPrinting.org
includes the release of version 3.0.1 of the Foomatic printer
database, and the release of a number of Okidata PPDs under the
GPL. On Foomatic 3.0.1:
"
Most important new features are: CUPS drivers can be used with any spooler, better compatibility of the PPDs to the Adobe specifications and to Windows, better PJL support, workaround for bug in OpenOffice.org 1.1, LPRng improvements, clean-up of Perl scripts, enhancements on *BSD compatibility."
Comments (none posted)
Security
Filtering IDS Packets (O'Reilly)
Don Parker
explains how to filter network packets on O'Reilly.
"
Anyone who has worked with an intrusion detection system knows that it can produce an enormous amount of data. For many network security analysts this vast ocean of packets flagged for further inspection quickly becomes an unruly beast to tame. How then to tame the beast?"
Comments (none posted)
Web Site Development
Project/Open 2.0
Version 2.0 of Project/Open has been announced.
"
Project/Open is an open-source web-based "project resource planning"
system (Project-ERP) with project rooms and tools for managing
clients, invoices, time and cost. It is designed for companies in
the consulting, advertizing and translation sectors."
Full Story (comments: none)
Quixote 1.0c1 released
Version 1.0c1 of the Quixote web development platform has been
released. The
changes include bug fixes and more.
Full Story (comments: none)
Miscellaneous
POE 0.29 Released (use Perl)
Version 0.29 of POE, A Perl-based networking and multitasking framework,
has been announced.
"
POE 0.29 is released after three months and hundreds of
human-hours of hard work. Thanks go out to everyone who helped make it
possible. This release includes a substantial performance increase in I/O
intensive programs. It improves portability to Solaris, Windows, and Mac OS
X."
Comments (none posted)
Announcing Wasabi 0.2
Version 0.2 of Wasabi, a log file monitoring application, has been
released. Changes include support for multiple files, performance
improvements, improved signal handling, and lots more.
Full Story (comments: none)
Desktop Applications
Audio Applications
Muine 0.6.3 is available
Version 0.6.3 of Muine, a music playing application, is available.
"
This release works with mono beta 3."
Full Story (comments: none)
CAD
Sixteenth release of PythonCAD now available
PythonCAD release sixteenth is out.
"
Due to packaging problems in the fifteenth release, and a code snafu the
bit the Cocoa interface, I'm releasing the sixteenth version of
PythonCAD. The missing Cocoa files have been added, and a patch
addressing the Layer problems on Cocoa have been applied."
Full Story (comments: none)
Electronics
XCircuit 3.2.22 released
Version 3.2.22 of XCircuit, an electronic schematic drawing
application,
is available. This version adds a new tcl parameter selection mechanism.
Comments (none posted)
Financial Applications
KMyMoney 0.6 released
KDE.News
announces the availability of KMyMoney 0.6. This version supports double-entry accounting, multiple account types, a new XML file format, and more.
Comments (3 posted)
SiGeFi 0.1.1 released
Version 0.1.1 of
SiGeFi is out.
"
SiGeFi is a Financial Management System, with focus in the needs of the administration of the money in each personal life and house. It's written in Python/Tkinter, so it'll run in every system that supports Python."
Comments (none posted)
Games
Exult Version 1.2 released (SourceForge)
Exult Version 1.2
has been announced.
"
After two years of development, we are pleased to Version 1.2 of Exult, the
multi-platform engine for playing the classic game Ultima 7. This release
contains many bug fixes and gameplay enhancements."
Comments (none posted)
gnome-games 2.6.2 released
Stable version 2.6.2 of gnome-games is available with
backported bug fixes.
Full Story (comments: none)
Spineless game engine 0.0.1
Version 0.0.1 of the Spineless game engine has been announced.
"
Spineless is a generic 3D game engine implemented in Python with C++
optimizations. Focus is on clean design and ease of use, not pure speed.
It is still very incomplete and not really useful yet for serious use,
but I would appreciate feedback, comments and suggestions."
Full Story (comments: none)
WoodPusher 0.1 released
Version 0.1 of WoodPusher, a chess application written in C# under
Mono, is out. This is the initial release.
Full Story (comments: none)
GUI Packages
New FLTK software
The latest new software for
FLTK,The Fast Light Toolkit,
includes SPTK 2.2 beta 2, vtkFLTK 0.6.0, and Table 040621.
Comments (none posted)
gtkglextmm 1.1.0 is out
Unstable version 1.1.0 of gtkglextmm is available.
"
gtkglextmm is C++ wrapper for GtkGLExt, OpenGL Extension to GTK.
C++ programmers can use it to write GTK+-based OpenGL applications using
gtkmm 2."
Full Story (comments: none)
gtkmm and glibmm 2.4.3 are available
Version 2.4.3 of gtkmm and glibmm are out with minor improvements.
"
gtkmm provides a C++ interface to GTK+. gtkmm 2.4 wraps additional API in GTK+ 2.4.
gtkmm 2.4 installs in parallel with gtkmm 2.2, so you can have both installed at
the same time. glibmm is now a separate module, for use in non-GUI software."
Full Story (comments: none)
LTK 0.8 released
Version 0.8 of LTK, the Lisp ToolKit, is out.
"
LTK (The Lisp Toolkit)
is a portable "Common Lisp binding for the Tk graphics toolkit".
Unlike other similar bindings, LTK provides a high level interface and
does not require any knowledge of Tk."
Full Story (comments: none)
Imaging Applications
ImageProcess 0.4 released
Version 0.4 of ImageProcess, a cross-platform image processing tool,
is available. New features include remote processing, undo/redo,
and a toolbar.
Comments (none posted)
Interoperability
Wine 20040615 released
Release 20040615 of Wine
has been announced.
Changes include a major winedbg rewrite, a new Wine preloader,
audio support improvements, and bug fixes.
Comments (none posted)
Wine Traffic
The June 18, 2004 edition of
Wine Traffic has been published. Take a look for the latest
Wine project news.
Comments (none posted)
Music Applications
BLOP LADSPA Plugins 0.2.8
Version 0.2.8 of the BLOP LADSPA Plugins are out.
"
After way too long, a new release of the BLOP LADSPA Plugin set.
Orginally named Bandlimited LADSPA Oscillator Plugins, but there's more
than oscillators... they're more useful in a modular host, such as
Spiral Synth Modular, gAlan, Alsa Modular Synth etc."
Full Story (comments: none)
gmorgan 0.23 released
Version 0.23 of gmorgan, an organ synthesizer, is out.
"
This release is a bugfix version and solve
compilation problems."
Full Story (comments: none)
mcontrol 0.0.01 released
Version 0.0.01 of mcontrol has been released.
"
mcontrol is a ALSA MIDI sequencer client and brings the possibility to
assign up to twelve "simultaneous" MIDI control messages for each controller
in your MIDI keyboard (Modulation Wheel, Breath Controller, Foot Controller,
Pitch Bend and After Touch)."
Full Story (comments: none)
TAP-plugins 0.6.0 +more
Version 0.6.0 of the TAP-plugins is available. The initial release
of the TAP Reverb Editor is also out. New features include the
TAP Fractal Doubler, the TAP Reflector, and the TAP Pink/Fractal Noise.
Changes have been made to the reverb section as well.
Full Story (comments: none)
News Readers
Liferea 0.5.0 is out
Liferea Version 0.5.0 is available with bug fixes, new translations,
and more.
"
Liferea (Linux Feed Reader) is a fast, easy to use, and easy to install
GNOME news aggregator for online news feeds. It supports a number of
different feed formats including RSS/RDF, CDF, Atom, OCS, and OPML."
Full Story (comments: none)
Office Suites
OpenOffice.org 1.1.2 released
OpenOffice 1.1.2 is out. "
OpenOffice.org 1.1.2 introduces the FontOOo Autopilot, which downloads
and installs fonts from various sources. In addition, this release
provides improved support for dBase database files, additional language
support, and improved XML export facilities." Click below for the
details.
Full Story (comments: 4)
Web Browsers
Galeon 1.2.14 "End of the Line" released
Version 1.2.14 of Galeon
has been announced.
"
Well, after far too long, here's a new 1.2.x release to coincide with the Mozilla 1.7 release.
It's also significant because I'm not planning to try and keep up with mozilla beyond 1.7. AA font support is no longer supported for gtk1 builds of mozilla 1.8, making it pretty clear that it's viewed as deprecated so this seems a good point to stop."
Comments (none posted)
Mozilla 1.7 released
Mozilla 1.7 is out. New features include improved popup blocking, the ability to extract passwords from the password manager, numerous mail improvements, better performance, and more; see
the "what's new" document for details.
Comments (none posted)
Wireless Applications
gnome-bluetooth 0.5.1 and libbtctl 0.4.1 are available
New development releases of gnome-bluetooth and libbtctl
are available.
"
gnome-bluetooth is a suite of tools for managing Bluetooth devices and
sending/receiving data under the GNOME desktop.
libbtctl is a GObject-based library for the Bluetooth and OBEX
operations on Linux. It comes with Python and Mono language bindings."
Full Story (comments: none)
Miscellaneous
First release of gamin
Version 0.0.1 of Gamin is available.
"
Gamin is a file and directory monitoring system defined to be
a subset of the FAM (File Alteration Monitor) system."
Full Story (comments: none)
Hydrogen 1.0 released
Hydrogen 1.0 is out; click below for the details. Hydrogen is, perhaps,
the first offshoot of the recently-freed Ximian Connector; this project,
sponsored by Sun, enables Evolution to work with the Sun Java Enterprise
System Calendar Server.
Full Story (comments: 12)
GNOME Phone Manager 0.3 development release
Development version 0.3 of GNOME Phone Manager is available.
"
Phone Manager allows you to send and receive text (SMS) messages from
the desktop, connecting to your mobile phone via Bluetooth, serial or
IrDA.
It's finally here! A version of Phone Manager that works with the
latest gnome-bluetooth code. This release is feature-wise exactly the
same as the 0.2 release, but more or less completely rewritten
underneath. The user interface is a bit rough, in particular."
Full Story (comments: none)
xtopdf v1.0 announced
The xtopdf project aims to provide a tool for conversion from
various file formats into .pdf form. The current version can read
plain text and .DBF files as input.
Full Story (comments: none)
Languages and Tools
Caml
Caml Weekly News
The June 8-22, 2004 edition of the Caml Weekly News is available
with another round of Caml language information.
Full Story (comments: none)
Java
Introduction to Jena (IBM developerWorks)
Philip McCarthy
introduces Jena on IBM's developerWorks.
"
RDF is increasingly recognized as an excellent choice for representing and processing semi-structured data. In this article, Web Developer Philip McCarthy shows you how to use the Jena Semantic Web Toolkit to exploit RDF data models in your Java applications."
Comments (none posted)
Perl
Perl's Special Variables (O'Reilly)
Dave Cross
shows how to work with Perl internal variables in an O'Reilly article.
"
One of the best ways to make your Perl code look more like ... well, like Perl code -- and not like C or BASIC or whatever you used before you were introduced to Perl -- is to get to know the internal variables that Perl uses to control various aspects of your program's execution.
In this article we'll take a look at a number of variables that give you finer control over your file input and output."
Comments (1 posted)
This Week on perl5-porters (use Perl)
The June 14-20, 2004 edition of
This Week on perl5-porters is available with more Perl 5 news.
"
Maybe it's due to the conferences, but this week was a low-traffic one."
Comments (none posted)
PHP
PHP Weekly Summary for June 21, 2004
The
PHP Weekly Summary for June 21, 2004 is out. Topics include:
Reflection API testers required - and php.net to go live with five!
Comments (none posted)
Python
Weave a neural net with Python (IBM developerWorks)
Andrew L. Blais
describes a Python-based neural network on IBM's devloperWorks.
"
Hot things cool, obviously. The house gets messy, frustratingly. In much the same way, messages are distorted. Short-term strategies for reversing these things include, respectively, reheating, cleaning, and the Hopfield net. This article introduces you to the last of these three, an algorithm that can, within certain parameters, undo noise. A very simple Python implementation, net.py, will show you how its basic parts fit together, and why a Hopfield net can sometimes retrieve a pattern from its distortion."
Comments (none posted)
Python-dev Summary
The May 1-31, 2004 python-dev Summary is available with a summary of
the python-dev mailing list traffic.
Full Story (comments: none)
Python-dev Summary
The June 1-15, 2004 python-dev Summary is out with more Python language
information.
Full Story (comments: none)
Dr. Dobb's Python-URL!
The June 21, 2004 edition of Dr. Dobb's Python-URL! is
online with the latest Python language articles.
Full Story (comments: none)
S
SLgtk 0.5.9 and Vwhere 1.2.2 released
New versions of SLgtk and Vwhere are available.
"
The SLgtk package binds the Gtk2 and GtkExtra widget sets to the S-Lang
scripting language (www.s-lang.org). SLgtk wraps more than 2200 functions
from Gtk2 and its constituent libraries, includes over 4000 lines of
sample code in 40+ working guilets, and bundles a code generator (SLIRP)
which can be useful for building additional S-Lang modules."
Full Story (comments: none)
Tcl/Tk
Dr. Dobb's Tcl-URL!
The June 22, 2004 edition of Dr. Dobb's Tcl-URL! is available with
the latest Tcl/Tk article links.
Full Story (comments: none)
Editors
Conglomerate-0.7.14 Released
Version 0.7.14 of Conglomerate, an XML editor, is available.
"
This is still an unstable release; there are still some known repeatable
crash bugs. Please download it and test that no new bugs have been
introduced!"
Full Story (comments: none)
IDEs
Eclipse 3.0 announced
A press release has gone out announcing the June 30 availability of the Eclipse 3.0 release.
"
With release 3.0, Eclipse now extends its
sophisticated object-oriented development technologies to support a
rich-client platform (RCP) that enables construction of desktop
applications."
Comments (none posted)
Java Development on Eclipse, Part 2 (O'ReillyNet)
O'Reilly has published
part two in a series about Java on Eclipse by Steve Holzner.
"
In this conclusion of a two-part series of excerpts from Eclipse, author
Steve Holzner provides still more examples of how Eclipse makes it easier to
create Java code from scratch. This week he covers creating Javadocs,
refactoring,
adding certain skills to your Eclipse toolbox, and customizing the
development environment."
Comments (none posted)
Miscellaneous
Associative Array Usage in Python, Perl, and awk (Unix Review)
Ed Schaefer
explores
associated arrays on Unix Review.
"
Associative arrays are a staple of Unix productivity tools, as well as the modern ksh-style shells, ksh, bash, zsh, etc. This month, Charles Leonard discusses associative array usage in Python, Perl, and Awk."
Comments (none posted)
Code Improvement Through Cyclomatic Complexity (O'ReillyNet)
Andrew Glover
analyzes code by looking at its cyclomatic complexity on O'Reilly.
"
Overly complex code is dangerous, hard to maintain if not already buggy. But
what do we mean by "complex"? The metric of cyclomatic complexity helps show
where the most complex code is. As Andrew Glover illustrates, finding the
complex code is also the first step to refactoring it."
Comments (none posted)
Page editor: Forrest Cook
Next page: Linux in the news>>