Introduced to enterprise developers more than 10 years before Java, the Smalltalk language established key ideas of object-oriented language design and implementation.
It also committed the rarely forgiven sin of being ahead of its time, demanding memory budgets and processor speeds more often found on a high-end workstation than on a commodity PC before the mid-1990s.
At the critical moment when “Giga” became a mainstream PC prefix, applied both to clock speeds and memory capacities, Javas C-like syntax swooped in to seize developer mind share in areas where Smalltalk had first shown the way.
Once the darling of both the white-coated researcher and the white-shirted IBM salesperson, Smalltalk was relegated to a historical footnote—or, then again, perhaps not.
A developer who takes a casual look at Smalltalks current state of play might get an unfavorable impression. The Web site of ParcPlace Systems, spun off to commercialize the language following its development at Xeroxs PARC (Palo Alto Research Center), is an online ghost town; IBM will withdraw from the Smalltalk marketplace in April.
“VisualAge Smalltalk customers can discover and leverage the value of industry standards,” said the IBM end-of-life announcement on April 26 of last year.
That begs the question, though, of whats a “standard”: Smalltalk became an ANSI-standard language in May 1998, and the former ParcPlace VisualWorks development tools for Smalltalk—acquired by enterprise software vendor Cincom Systems in August 1999—continue to be refined.
Version 7.4 of VisualWorks became available at the beginning of this year, offered in both a supported commercial version and an unsupported but full-function noncommercial version that can be downloaded at smalltalk.cincom.com.
VisualWorks offers developers a capable tool set with a remarkably long list of contributed components and utilities that are supplied under varied license terms.
Versions of the 7.4 release on Microsofts Windows XP and Apple Computers OS X delivered a polished development experience in eWEEK Labs tests on both platforms, with well-paved pathways for interactive graphical interface development and efficient packaging of finished applications for convenient deployment.
All the traditional amenities of a Smalltalk development system are still present in VisualWorks, including the almost disconcertingly wide-open system browser that makes the entire run-time environment as accessible to modification as a developers own work in progress.
After one of the Labs past development “Shoot-Out” competitions, we reported that watching a Smalltalk developer recovering from an error was like watching someone perform brain surgery on oneself. But Smalltalk has since become somewhat safer for journeyman developers with the addition of such features as namespaces, as we learned from Cincom product manager James Robertson, in Cincinnati, during a conversation with the Labs late last month.
Robertson brings a developers perspective to his work. Hes better known to the open-source community as one of the lead developers of the BottomFeeder news aggregator client for the RSS and Atom protocols.
That project demonstrates the ability of VisualWorks to deliver an application both on Windows and on Macintosh OS X as well as many other Unix-family operating systems.
“Our virtual machine isnt as widespread as the Java virtual machine, so we dont feel as much of a need to lock it down. There have been some changes in the bytecode set,” Robertson said, and developers interested in using Smalltalk should therefore take care to keep users up to date in that regard.
On the other hand, Robertson said, Smalltalk retains the fully object-oriented character that other development languages such as Java and C++ sometimes struggle to simulate: The notion of data types thats found in most languages, he said, has impeded such improvements as the addition of generic capabilities to Java.
“Smalltalk has type, but you can add message signatures of any sort to any object. Making something generic, to a very large extent, just means cloning the API,” Robertson said.