Slashdot Mirror


How Heraclitus would Design a Programming Language

CowboyRobot writes "Developer of Smalltalk Alan Kay has an interview on ACM Queue where he describes the history of computing and his approach to designing languages. Kay has an impressive resume (PARC, ARPAnet, Atari, Apple, Alan Turing Award winner) and has an endless supply of memorable quotes: 'Perl is another example of filling a tiny, short-term need, and then being a real problem in the longer term,' 'Once you have something that grows faster than education grows, you're always going to get a pop culture,' 'most undergraduate degrees in computer science these days are basically Java vocational training,' 'All creativity is an extended form of a joke,' and 'nobody really knows how to design a good language.'"

5 of 577 comments (clear)

  1. Misleading headline by Pan+T.+Hose · · Score: 5, Interesting

    Notwithstanding the grammar mistake--I hope editors will have corrected it before I finish writing this comment--it is not "How [Would] Heraclitus ... Design a Programming Language" but rather "What Programming Language Would Heraclitus Design." On the other hand if you are wondering how should you desing and implement a programming language, I would suggest targetting Parrot which makes implementing compilers 1000 times easier than ever before, not to even mention future interoperability and e.g. access to the entire CPAN from the level of your own brand new language, effectively solving the most important problem of new languages: there are no libraries so people don't write anything, and people don't write anything so there are no libraries. Good luck.

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
  2. Hey, I like Perl! by gweihir · · Score: 5, Interesting

    Perl is a very powerful language to write small tools in the UNIX philosophy. It works very well. It requires some level of competence in the user, but so does every advanced tool. And it is not a general-purpose language.

    Frankly, without Perl my work would be far harder.

    I also like Eiffel. Guess I am one of those scary people that actually use different tools for different tasks and do not spam the world with simplistic, general and irrelevant statements. about

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  3. language developers disconnected from reality by jeif1k · · Score: 5, Interesting

    I'd disagree that there aren't people who can design decent languages. The problem is that they can't market them,

    No, the problem is that the people who know a lot about languages know little about application domains, and the people who know a lot about application domains know little about how to design languages (or at least don't spend much time on it).

    That's why languages like MATLAB dominate scientific computing and languages like Perl, PHP, and Java dominate web computing, and why languages like CAML, Haskell, Lisp, and Smalltalk have never ended up being good general purpose languages.

    The problem isn't language designers its us developers, we don't want to spend a week learning a new syntax for a loop, we want to use what we used before. In other words we are luddites.

    Programmers contribute to the problem. But while many people have syntactic hangups, even more of them just "don't get" a different approach to programming at all.

    1. Re:language developers disconnected from reality by MosesJones · · Score: 5, Interesting

      No, the problem is that the people who know a lot about languages know little about application domains, and the people who know a lot about application domains know little about how to design languages (or at least don't spend much time on it).

      I have to disagree here, the team that designed Ada for instance REALLY understood about application domains and the challenges of developing languages, and the people judging the competition to design Ada DEFINATELY understood the challenges of languages. The problem was that it wasn't "cool" like C, and they didn't focus on providing elements like DB connectivity or GUI frameworks as standard (understandable in the 1980s).

      I've worked on projects with Ada, and as a language it was superb. Same with Eiffel. The biggest problem that I had managing those teams were the malcontents who complained that writing

      "foreach n in X loop"

      with an "end loop;" at the end. This was FAR too much work apparently and coding would be much quicker writing

      "for(x = 0; x y; x++)"

      In the end around 20% of the code was written in C, and 80% in Ada. 95% of our bugs were in the C code.

      Keeps us in jobs though I guess, if we used better languages we wouldn't have to spend so much time fixing things.

      --
      An Eye for an Eye will make the whole world blind - Gandhi
  4. Re: memorable quotes ? by Sique · · Score: 4, Interesting

    You don't understand what his criticism for Perl is all about. You'll understand it once you try to implement Perl in Perl (as an exercise you could start to implement the Perl RegExp in Perl without using Perl RegExp).

    (Non-ANSI, but original) Lisp is a language that is implemented in itself in about half a letter page.

    Even Smalltalk can be implemented in Smalltalk in a quite compact manner.

    Perl needs a quite large compiler to turn Perl code into the runtime code. And every new feature in Perl is done in a way, that the compiler has to be changed and a formerly syntactically wrong line gets a semantic put on.

    Perl is fine for what it was thought out for: To crunch large amounts of similarily structured data into human readable reports. That's what most CGIs or admin scripts are about: filtering database entries or long logfiles and converting the results into webpages or other human accessible documents.
    (Or getting huge amounts of data and turning them into log file entries and data base lines.)

    It is still a Practical Extraction and Report Language. Alan Kay didn't dispute it. But it gets most of it's power as a language from what Alan Kay has called "an egyptian pyramid", a huge number of bricks and buildingblocks put together by brute force and thousands of slaves, but not from its inherent design qualities.

    --
    .sig: Sique *sigh*