Play Nice. Perl v LISP & Smalltalk

Playing Nice - what Perl's got that LISP and Smalltalk lack blog

Two features of Perl have made it more successful than LISP or Smalltalk.

There's always been only one Perl; differing versions, sure, but you have never had to spend any time choosing whose Perl interpreter to use.

More importantly, Perl began with the assumption that it would not be the only tool in your toolbox: it set out from the beginning to play well with others. By contrast, there have always been many flavors of LISP and Smalltalk any of which have tried to be pretty much everything you ever need.

Smalltalk's weakness is at the boundaries: when you want to try to do some typical unix system maintenance, or interfacing with underlying C libraries, or something similar. As long as you're staying within the Smalltalk environment, it completely rocks. But it's definitely painful if you try to reach outside. And it's especially painful if you want your code to work with different Smalltalks.

What Perl got right was making it completely painless to integrate with its environment.

In some sense LISP wants to be on a LISP Machine and Smalltalk wants to be in its virtual machine, whereas Perl wants to go out and play with the other kids. The former languages are introverted and Perl is extroverted.

.

Lisp and Smalltalk wanted to be your language and your environment. Perl came from an environment that was already successful and didn't need to be hidden or replaced.

Unix hosted simple tools that did one thing well and could feed one another in a pipeline. Sed, grep and wc come to mind. Awk burst into this space showing that it could interpret small programs that combined all of these tools and ran faster too.

We all thought, if awk just had functions, it could do everything. Then perl showed up with functions and, yes, it could do everything.

Aside: I wrote an expense calculator in awk and later ported it to federated wiki to guild plugin development. See About Calculator Plugin