I have a very real need for programs to treat other programs as data because I do a lot of work in program-writing programs, or “metaprogramming”, for CAD applications. I've done this sort of programming in Python and in C++, but I'm increasingly finding the Lisp family of languages to be the power tool I have always wanted. Recently, I was very pleasantly surprised with the power and features of MIT Scheme Release 7.7.0, released in March 2002.
Scheme is now more than 20 years old but is very robust, containing numerous concepts only now being seen in late-modern languages, such as C++ and Java. For instance, Scheme has continuations, where the state of a computation becomes in essence a controllable object. This powerful and general facility is useful for concurrency, modeling, multithreading and arbitrary control flows.
MIT Scheme's library, SLIB, contains support for working with getopt, HTML, relational databases and other functionality similar to the Python or Perl libraries. There is a very powerful Scheme Object System OOP library, which has features similar to the Common Lisp Object System (CLOS).
Scheme seems to have a close kinship with Common Lisp. However, MIT Scheme is not only GPLed, but feels more approachable, with a simpler syntax than Common Lisp. For my work, Scheme's scoping model and use of namespace are somewhat better than Common Lisp programs.
To get started with MIT Scheme, see the project home page: www.swiss.ai.mit.edu/projects/scheme. Scheme resources are available at www.schemers.org. See also The Scheme Programming Language: ANSI Scheme, Second Edition, by R. Kent Dybvig, ISBN 0-13-454646-6.
Q1 What company started in 1938 from a garage at 367 Addison Avenue, Palo Alto, California with a resistance capacity audio oscillator as its first product?
Q2 It could have been: Calex, Elcal, Calecom, Elcom, Calcomp, Digicom, Tronicom, Comptek, Computek, Esscotek or Ectek. What name was finally chosen for this startup?
Q3 Incorporated as Computing-Tabulating-Recording company in 1911, it formally changed its name in 1924. What is the company called today?
Q4 The story goes that the campus of the University of California, Berkeley had a machine, called Ingres, connected to the ARPAnet and another machine, called Ernie Covax, that was home to the Berkeley UNIX Project, which was connected to a network known as BerkNet. These machines were interconnected, but there was no way of moving mail from one network to another. Eric Allman wrote a software program to transfer mail between these two networks and later went on to found a company. Which?
Q5 Many talented programmers, unhappy with what was going on at Fairchild Semiconductors left to create their own startups. Intel and AMD are just two examples of semiconductor companies that arose out of Fairchild Semiconductors. What did the press dub these startups that arose from Fairchild?
By the time you read this, Free Radio Linux (radioqualia.va.com.au/freeradiolinux) will be about a quarter of its way through a reading of the Linux kernel by a digitized voice. The voice is a creation of r a d i o q u a l i a (radioqualia.va.com.au), an “on-line radio station aiming to open an electronic portal into the eccentricities of antipodean radio space”. The site explains,
r a d i o q u a l i a is engaged in the exploration of sound and media within the context of philosophical speculation. Informed by the discrete discourses surrounding science, art and philosophy, r a d i o q u a l i a is attempting to simulate the introspectible and seemingly monadic properties of sense-datum, through sound.
Since Free Radio Linux's kernel (they don't say which version) contains 4,141,432 lines of code, the reading is expected to take 14,253.43 hours, or 593.89 days. Transmission began on February 3, 2002, the fourth anniversary of the Open Source Initiative. You can listen in through Ogg Vorbis.
- Give new life to old phones and tablets with these tips!
- Readers' Choice Awards--Nominate Your Apps & Gadgets Now!
- Memory Ordering in Modern Microprocessors, Part I
- Tech Tip: Really Simple HTTP Server with Python
- diff -u: What's New in Kernel Development
- RSS Feeds
- Returning Values from Bash Functions
- Security Hardening with Ansible
- Non-Linux FOSS: AutoHotkey