Open Source High-level Languages in Your Neighborhood
One seemingly bankable trend is that every day computer languages become easier to understand, and become more like human languages. The concept that easier to understand languages could lead to less error prone and more rapid development was the basis for Fortran II way back in 1958, and the foundation for the high-level languages of today. Since the 50s, however, numerous high-level languages have propped up. You've heard and worked with most of these. Fortran is still used in engineering, and general programming problems are often solved with C, C++, Java, and Perl, which are all considered high-level.
But what about the more obscure high-level languages? Dozens of paradigms have propped up, and every day there seems to be a new language on the block. Here is a handful of popular modern high-level languages, what they are being used for, and where they are hiding in the industry today.
Eiffel, released by Bertrand Meyer in 1986, is considered a modern high-level language. Eiffel is implemented as C pre-processor and has all the typical features of a high-level language (object oriented, automatic handling of bug prone acts like garbage collection, built in interface routines that allow team work with other languages, etc). Its been used as a teaching tool for programmers in many universities, but also sports a number of recent development thrusts making it an extremely viable language for many development projects (see the resources section at the end of this article for links to these projects listed in this article):
- Eiffel has a .NET interface
- Eiffel also has an opengl wrapper called Eiffel OpenGL
- Eiffel has been ported to the Palm OS
Some fun Eiffel projects include:
- A strategic level Wargame called Strategic Command: European Theater (PC) which got some recent press on Gamespy
- The MAS (Open source Market Analysis System) is a software tool for doing market analysis and available on Sourceforge
Lua was developed by the computer graphics technology group at the Pontifical Catholic University of Rio de Janeiro in Brazil (TeCGraf). Lua was built with a simple syntax in mind, and also has automatic memory management, garbage collection, object-oriented mechanisms, and is very extendable. Like Eiffel it is meant as an extension to C.
The Lua Projects List (http://www.lua.org/uses.html) sports a pretty impressive resume, in particular the Smithsonian Astrophysical Observatory (one of NASA.s 4 big observatories) as part of their Advanced X-ray Astrophysics Facility (AXAF). Ron Bessams developed a Windows automation tool called Girder with Lua that demonstrates it.s extensibility, taking any sort of input, be it network, keyboard, DVD player or remote, and turning it into an action on your PC. You can also see that Lua has been involved in several game and graphic development projects by folks at Bioware, Lucas Arts, and Disney Studios.
Smalltalk and Squeak
Created by the Software Concepts Group (i.e. Xerox) Smalltalk is considered the quintessential object-oriented language. True to it.s name, Smalltalk has a pocket version for the Palm OS (http://www.pocketsmalltalk.com/), and is also the father of another language making strides, Squeak.
Squeak is a Smalltalk implementation. The core development team resides at Disney, who helped develop the language, but is also backed by IBM and Paul Allen.s Interval Research Lab. Squeak is unique in that it has three authoring environments. The first is aimed at five year old children, a second for adults, and third for deep programmers. who want to fiddle with the inner workings of the language.
Disney has used Squeak to build a few children.s applications, but the language itself is open source. Other folks who play with Squeak include UIUC, Georgia Tech, The Create project at UCSB, INRIA in France, and the Univ. of Magdeburg. When researching Squeak be careful, there is another language with same name used for mice communication.
Python isn't really that obscure anymore, it gets plenty of airplay and has been plenty busy. Python was developed by Guido van Rossum at the National Research Institute for Mathematics and Computer Science in the Netherlands (otherwise known as CWI) and was originally intended to be an extension of C or a prototyping language. Python was designed to be highly readable, uses English keywords frequently where other languages use punctuation, has fewer syntactical constructions than other languages, and is renown for it's use of white space since it uses space to delimit program blocks.
Python is likely popular because it is very portable, supports object-oriented programmers in a number of ways, and easily integrates with other languages. Perhaps it's greatest strength is within its libraries, which are expansive, very portable/cross platform, and cover everything from CGI, to graphics, to math, to string handling.
Python's list of user projects (http://www.python.org/psa/Users.html) is also very impressive, with highlights including:
- The Programming for Everybody project, who uses Python as their language of choice
- Several major web portal companies, including Yahoo! Groups, Infoseek's commercial search engine Ultraseek, and much of Google.s spider search engine
- The Johnson Space Center (NASA) who uses Python as a standard scripting language
- The Linux Redhat Install procedure
- IBM who use Python for factory tool control
- RealNetworks who developed a Python binding for their RealMedia client for load and feature testing, and uses it in their build and bug tracking system
- BATS, short for Blind Audio Tactile mapping System, a map navigational software package for the blind developed as a software engineering class project at UNC. BATS has now been funded by Microsoft
- Patrick Ball, the deputy director of the Science and Human Rights program at American Association for the Advancement of Science, used a Python program as part of a prosecution witness at the trial of Slobodan Milosevic, a former Yugoslav president accused of war crimes. He used the program to show that Milosevic's Serb army caused the death and displacement of Albaniuans in Kososvo, by mapping out the locations of the deaths and the patterns of the refugee flows of in 1999.
Ruby was created by Yukihiro Matsumoto in 1993 and is considered THE pure, modern, object-oriented language. Ruby has a very simple syntax and is considered to be very readable, maintainable, and clean, with few special syntactical situations. Ruby is highly portable and runs on almost anything. Its popularity is most likely due to the fact that Ruby is obect-oriented from the ground up. Every bit of data in ruby is an object, even basic types. In fact there are no Ruby functions, only method calls. Ruby is currently gaining a lot more traction in Japan than in the US, but looking at the Ruby project page (http://raa.ruby-lang.org/) you see a lot of integration with XML, WWW, and text processing. Ruby utilities available include everything from simple backup systems, to cron schedulers, to web application servers.
References / Resources / Links
The Eiffel Home Page: http://www.eiffel.com/general/
Eiffel on Sourceforge: http://eiffel-mas.sourceforge.net/
The Eiffel international consortium: http://www.eiffel-nice.org/
Eiffel for the PalmOS: http://epalm.sourceforge.net/
Eiffel OpenGL http://eifogl.sourceforge.net/
Msdn Eiffel for .NET: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/pdc_eiffel.asp
The MAS (Open source Market Analysis System): http://eiffel-mas.sourceforge.net/
Gamespy's review of Strategic Command: http://www.gamespy.com/reviews/august02/scet/
LuaLua Language Page: http://www.lua.org/
Lua Projects Page: http://www.lua.org/uses.html
Lucas Arts: http://www.lucasarts.com/
Smalltalk and SqueakSmalltalk Homepage: http://www.smalltalk.org/
Squeak Homepage: http://squeak.org/
Pocket Smalltalk (for the Palm OS): http://www.pocketsmalltalk.com/
PythonThe National Research Institute for Mathematics and Computer Science in the Netherlands (otherwise known as CWI): http://www.cwi.nl/
Python users: http://www.python.org/psa/Users.html
The computer programming for everybody project: http://www.python.org/doc/essays/everybody.html
Yahoo! Groups: http://groups.yahoo.com/
Infoseek Software: http://software.infoseek.com/
Real Networks: http://www.real.com
RubyThe Ruby Homepage: http://www.ruby-lang.org/en/
The Ruby Application archive: http://raa.ruby-lang.org/