February 9, 2011
Computer languages become widely used if they are good at solving particular problems.
There have been several new or existing languages that have gained enormously in popularity over the past 15 years because they were well suited to solving problems related to the Internet:
Perl is an *interesting* language with verbs like “die”, “croak”, “confess”, and “bless”. It is not *elegant* (like Pascal) but it certainly is *useful*.
Same thing for PHP which can mix HTML and code in very creative ways.
And Python (after “Monty Python”) with its minimal syntax and lots of time-saving shortcuts.
These three languages are hugely popular and share several things in common:
- they were created for solving *real world* problems
- they were originally created by single programmers, not committees
- they are open source
- they developed new programming styles to fit new environments
- they weren’t afraid to experiment and evolve
Smalltalk enthusiasts want their language to become more popular.
IMHO, the secret to doing this is finding the correct problem to be solved – a problem that can be solved better by Smalltalk than any other programming language.
Consider how the Internet is evolving. Starting in 1969, solutions were developed for connecting large networks of machines (IP, TCP/IP, FTP, etc). Then, after 1989, the “World Wide Web” introduced several innovations that made the Internet usable for much larger numbers of people (DNS, URL, HTTP, HTML, CSS, etc).
Now, in 2011, the W3 “page-oriented” model is becoming outdated:
- users want real-time interactivity
- users want graphical, interactive interfaces
- there are new types of devices like smart-phones and iPads with different form factors
- many users want to share some data with friends (social networking)
- interfaces are becoming much more complex (work collaboration, etc)
So, I propose a new model for developing user applications which I call “Object-Oriented Networking”.
In O2N, serialized Smalltalk messages are exchanged amongst clients and servers. And we can specify standard ways to transmit and receive objects – say NetIn and NetOut (like UNIX).
The list of challenges (1-5) above are much easier to address in Smalltalk than any of the other currently available solutions.
New environments require new solutions – or old solutions (like Lisp and Smalltalk) that have been rediscovered.