Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Programming Technology

How Heraclitus would Design a Programming Language 577

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.'"
This discussion has been archived. No new comments can be posted.

How Heraclitus would Design a Programming Language

Comments Filter:
  • by Anonymous Coward on Wednesday February 09, 2005 @07:46AM (#11616999)
    Which fanboy are you?
    1. Windows

      You wear wraparound sunglasses, even indoors. You wish your mother would let you ride a motorbike. You tell your friends you're pulling in $50,000 a year and $2,000 a month "playing the stock market" but in reality you're only bringing in half that and your dividends from MSFT havn't been good in years. Your non computing friends all turn to you for help; you only charge $30 an hour. Your collegues talk about you behind your back. Your workplace nickname is likely to be "The Asshole". Unlike the Linux fanboys, you actually try to pick up dates in bars but women laugh at you.
    2. Apple

      ou think you're so cool you hurt. You have mirrors on every wall in your "loft apartment", which is really a grimy little apartment next to a guy who plays Guns 'n Roses at 3am. All of your furniture is from Ikea. You sometimes think that changing your name to "Steve" would be "pretty cool". When you go to bars you only drink Miller Lite. No body ever asks you for help with their computers because they know you don't know anything but OS X, even if you do tell them you "run Unix" now. Your friends openly laugh at you.
    3. Linspire

      You regularly give $10 bills to homeless guys because you have too much money. Computers baffle you, but you enjoy looking at pictures of naked women. You don't know what Linux is, but you continually bugged the IT guy at work about your computer he installed Linspire on your machine.
    4. Umbongo

      You shop at GAP. You probably used to use a Mac. When you saw the multiracial image used as a desktop picture and heard that this operating system came from the same country as Nelson Mandella, you knew it was for you. You meet with your friends in fair-trade coffee houses and talk about the eventual overthrow of evil corporations such as Microsoft and Starbucks. Like the Linspire user, you have very little real knowlege when it comes to computers but you would never use your computer to look at pictures of women degrading themselves.
    5. Gentoy

      You've been "into computers" for ohh, one or two years now and fancy yourself as "a bit of a hacker". Wouldn't know C from C++, or even Perl for that matter. Older Gentoy users may be building their homes from matchsticks. You've explained to all your friends that your matchstick house will have an "optimised floorplan". They've tried to tell you that your house violates every known building code and law in your area, but you've ignored them so far because you can't read those complicated regulatory documents.
    6. Linux From Scratch

      Much like the Gentoy user but you'd also be into sadomasochistic sex if you could get it. You're not just building a house from matchsticks, you're planing to grow the trees to make the matchsticks. You've cleared some land but don't know what to do next because you havn't read the books you've got, so you've posted to alt.arborists.newbie asking for help. It's been three days so far and no one has replied. You remain hopeful.
    • by TapeCutter ( 624760 ) on Wednesday February 09, 2005 @08:30AM (#11617171) Journal
      What about the VMS fanboy, we wear cardigans, hush puppies, tweed hats and smoke pipes. We don't normally "shop" but when the leather elbow patches can no longer hang on or the felt is just too floppy, we vist the church op-shop. We always have a pencil and pad in our pocket and a small cylindrical slide rule for a quick estimate. Tuesday trivia night is our social highlight of week and the hot chocolate and lamingtons are wonderfull. We have wives but have grown to realise sex is really just another sports activity and would much rather play with the train set in the shed.

      Whoever modded the PP a Troll needs to learn how to laugh at themselves.

      Viva-la-difference

      Disclaimer: I know jack-shit about VMS or French spelling.
    • Nelson Mandela isn't from the Congo.
    • by Anonymous Coward
      7. Amiga

      You are a bitter person, twisted by how unfair the world is to have ignored your choice of system and operating system. You still think it is the late 80s, and don't realise that everybody else has caught up, gone past and then lapped you. Oddly enough you hate your neighbour, also an Amiga fanboy, because they have a blue front door. You have a collection of Amiga t-shirts, including a XXXL Amiga Inc t-shirt sent out 3 years after you paid $50 to try and keep your platform alive. You current hard
    • by essreenim ( 647659 ) on Wednesday February 09, 2005 @09:13AM (#11617423)
      8. GNU HERD

      You don't really exist in the conventional sense. You are more an abstraction. So too is your operating system. Your imaginery friends call you all the time to arrange getting together to add on more features to your imaginery OS. You will always buy the fair trade bar of chocolate for $5 before the bag of smarties @ $0.50 but thats ok, because although the cost to your productivity by using HERD now runs into the tens of thousands, that is more than made up for by the imaginery dent you are doing to the Microsoft corrporation. You could be from anywhere but you might well be German and as you know very well, its dangerous to purchase proprietary software but it's ok to stone someone else to death for using it!

      : )

    • " All of your furniture is from Ikea."

      What? Are you spyin' on me from over the street?

      When you go to bars you only drink Miller Lite.

      Urgh ... assuming a Mac user drinks beer it should be at least Beck's.

  • by Anonymous Coward on Wednesday February 09, 2005 @07:47AM (#11617006)
    Hello Gentlemen,

    I'm a first year programming student at an Ivy League school and I've
    just finished my Visual Basic classes. This term I'll be moving onto
    C++. However I've noticed some issues with C++ that I'd like to
    discuss with the rest of the programming community. Please do not
    think of me as being technically ignorant. In addition to VB, I am
    very skilled at HTML programming, one of the most challenging
    languages out there!

    C++ is based on a concept known as Object Oriented Programming. In
    this style of programming (also known as OOPS in the coding community)
    a programmer builds "objects" or "glasses" out of his code, and then
    manipulates these "glasses". Since I'm assuming that you, dear reader,
    are as skilled at programming as I am, I'll skip further explanation
    of these "glasses".

    Please allow me to make a brief aside here and discuss the origins C++
    for a moment. My research shows that this language is one of the
    oldest languages in existence, pre-dating even assembly! It was
    created in the early 70s when AT&T began looking for a new language to
    write BSD, its Unix Operation System (later on, other companies would
    "borrow" the BSD source code to build both Solaris and Linux!)
    Interestingly, the name C++ is a pun by the creator of the language.
    When the first beta was released, it was remarked that the language
    would be graded as a C+, because of how hideously complex and unwieldy
    it was. The extra plus was tacked on during a later release when some
    of these issues were fixed. The language would still be graded a C,
    but it was the highest C possible! Truly a clever name for this
    language.

    Back to the topic on hand, I feel that C++ - despite its flaws - has
    been a very valuable tool to the world of computers. Unfortunately
    its starting to show its age, and I feel that it should be
    retired, as COBOL, ADA and Smalltalk seem to have been. Recently I've
    become acquainted with another language that's quite recently been
    developed. Its one that promises to greatly simplify programming. This
    new language is called C.

    Although syntactically borrowing a great deal from its predecessor
    C++, C greatly simplifies things (thus its name, which hints at its
    simpler nature by striping off the clunky double-pluses.) Its biggest
    strength is that it abandons an OOPS-style of programming. No more
    awkward "objects" or "glasses". Instead C uses what are called
    structs. Vaguely similar to a C++ "glass", a struct does away with
    anachronisms like inheritance, namespaces and the whole
    private/public/protected/friend access issues of its variables and
    routines. By freeing the programmer from the requirement to juggle all
    these issues, the coder can focus on implementing his algorithm and
    rapidly developing his application.

    While C lacks the speed and robustness of C++, I think these are petty
    issues. Given the speed of modern computers, the relative sluggishness
    of C shouldn't be an issue. Robustness and stability will occur as C
    becomes more pervasive amongst the programming community and it
    becomes more fine-tuned. Eventually C should have stability rivaling
    that of C++.

    I'm hoping to see C adopted as the de facto standard of programming.
    Based on what I've learned of this language, the future seems very
    bright indeed for C! Eventually, many years from now, perhaps we'll
    even see an operating system coded in this language.

    Thank you for your time. Your feedback is greatly appreciated.
    • You IDIOT! (Score:5, Funny)

      by ggvaidya ( 747058 ) on Wednesday February 09, 2005 @09:05AM (#11617376) Homepage Journal
      You have got it so backwards, I don't even know where to start! For starters, C++ is NOT older than C - it's C's f***ing descendant! C was invented in the 1980s by the Borland corporation (it was invented as Turbo C), which was competing with Microsoft's QBASIC. C++ was created by Microsoft as an attack on Borland - perhaps you've heard of Visual C++?? Have you *ever* heard of Turbo C++? But you probably haven't, cos you're such a screwed up newbie.

      Oh, and BTW - an *operating system* in C? Jesus, where have you *BEEN*! Don't you know that almost all the OS's existing today - Windows, SCO/Linux, even MacOS - have been written in C?? And that's why there's so many bugs in all of them - because C is practically *impossible* to write good code in. That's why Apple is now switching over to Objective C, which is kinda like Apple C++. I've heard that Windows XP was written in Visual C++. And SCO/Linux was going to be ported to Java, until Microsoft paid Sun off to kill the deal and IBM sued SCO for violating their big-company-with-major-trademarks-shoots-itself-in -the-leg patent.

      Thankfully, the field is being revolutionised by people like Richard Stallman, who wrote gcc (the GNU C compiler), gvim and gnome, among many other open source programs. Finally, an advanced programming language like Perl can be used FOR FREE. Without a shadow of a doubt, Perl is the language of the future, even though it's still pretty young and all.

      (And no, HTML is NOT a language. Go a learn a REAL programming language like Javascript, n00b).
      • Perl the language of the future?? *jumps out window*

        The HORROR! Perl may be good for some things, but they do not include anything that may ever need to be revised by anyone except the author. Maybe I should learn perl anyway... any book recommendations?

      • Respond to satire with even better satire, and what do you get? A bunch of idiots explaining to *you* what satire is.

        Either that or, best. troll. ever?
      • "You have got it so backwards, I don't even know where to start! For starters," - Sorry but I am incapable of reading your whole post, I keep falling of my chair crying with laughter.

        Are you aware of the fact, that you are the straight-man for the talented comic in the GP post?
  • Misleading headline (Score:5, Interesting)

    by Pan T. Hose ( 707794 ) on Wednesday February 09, 2005 @07:57AM (#11617041) Homepage Journal
    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 [slashdot.org] which makes implementing compilers 1000 times easier than ever before, not to even mention future interoperability and e.g. access to the entire CPAN [cpan.org] 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.
    • astounding hubris (Score:5, Insightful)

      by jeif1k ( 809151 ) on Wednesday February 09, 2005 @08:22AM (#11617140)
      I would suggest targetting Parrot [slashdot.org] which makes implementing compilers 1000 times easier than ever before,

      In light of more than half a century of dynamic language history, that's just astounding hubris. By comparison with systems like Lisp and Dylan, for example, the Parrot system is still enormously complex, limited, and cumbersome from the programmer's point of view. And compared to Smalltalk, Perl/Parrot isn't even in the same league when it comes to programming environments, browsers, and other tools (in fact, very little really is).

      Kay's example of Perl as a language that reinvents the wheel poorly is as appropriate today with Parrot as it was for earlier versions of Perl. The fact that Perl is useful in practice (I use it all the time) because it has lots of libraries and ports doesn't change the fact that its foundations are poorly thought out.
      • First, I'd like you to take a deep breath. Then put down the Bill Joy doll. Then go re-read his post and realize that it talked about how it made implementing compilers easier, and that Parrot has nothing to do with the end-user or programming environments. Smalltalk, while a nice language, relies entirely too much on it's own graphical environment to ever see widespread adoption, especially now when there a languages equally as powerful without the limitation. Lisps awkward syntax (yes, yes, I know "it's
    • by geoffspear ( 692508 ) * on Wednesday February 09, 2005 @09:24AM (#11617541) Homepage
      Actually, I'm fairly certain that Mr. Kay is more concerned with how we should design programming languages. If you ask him which language [idealized figure] would design, he'll almost certainly tell you that it's not one that's been designed yet, and he'd probably be willing to accept that he's probably not going to be the one to design it.

      I'm pretty sure that if you suggested to him that designing a language by following Perl's example was a good idea, he'd laugh at you, though.

  • by MosesJones ( 55544 ) on Wednesday February 09, 2005 @08:03AM (#11617060) Homepage

    I'd disagree that there aren't people who can design decent languages. The problem is that they can't market them, and that developers continue to go back to the brain-dead syntax of C as if looking like C was an aspiration for a language.

    Languages like Ada, Eiffel etc (which yes I have used commercially) are brilliant from a language perspective, especially for large projects. The trouble is developers would prefer to write something in 5 characters than 30 characters in a mistaken belief that they are being more productive and that typing is the longest task they undertake.

    When you get into more "esoteric" areas like goal driven programming or agents then the languages become better, because the people using them are more aware of the purpose of the language and aren't constrained by a belief that it has to look like C.

    C# and Java are great example of languages that took on that syntax and many of the constructs as its easier to get a language accepted when it looks like C than when a developer has to learn a new syntax that will in the long run be better.

    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.

    Smalltalk was okay, but I prefered Eiffel, Java and C# are both by comparison rubbish, but they have better GUI libraries and marketing departments.

    • by zerocool^ ( 112121 ) on Wednesday February 09, 2005 @08:16AM (#11617118) Homepage Journal
      C# and Java are great example of languages that took on that syntax and many of the constructs as its easier to get a language accepted when it looks like C than when a developer has to learn a new syntax that will in the long run be better.

      I've always felt that learning new syntax is relatively easy. By that, I mean, once you "learn how to program", as in figure out how to be in that zen position where you understand the flow of information and lines of code start leaking out of your fingers, applying a new syntax isn't too hard. It may take you a few days or weeks, and you may need to keep google / quick reference guide handy, but mostly, learning the first one correctly propels you into a scenario where you can learn other languages quickly.

      ~Wx

    • by jeif1k ( 809151 ) on Wednesday February 09, 2005 @08:27AM (#11617157)
      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.
      • by MosesJones ( 55544 ) on Wednesday February 09, 2005 @08:46AM (#11617265) Homepage
        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.
        • Why Ada is good (Score:3, Insightful)

          ...because it's not just "foreach n in X loop", it's "declare type Array_Bounds is Integer range 1 .. 5; begin for I in Array_Bounds'Range loop [...] end loop; end;".

          A proper type system is worth a heck of a lot more than a few characters saved typing!
    • I must protest (Score:2, Insightful)

      by Pan T. Hose ( 707794 )

      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.

      I strongly disagree. Not all of us are a bunch lazy idiots as you imply. If I didn't want to spend a week learning a new syntax for a loop I wouldn't have finished reading a second Perl 6 book [oreilly.com] yesterday, now would I? I have already spent man-months learning the language that is not even fully designed yet, so I woul

      • by kfg ( 145172 )
        I would tend to agree with you that most of people in general are incompetent idiots, I believe that Slashdot community is a rare exception to this sad rule

        I must protest.

        KFG
      • I wouldn't have finished reading a second Perl 6 book yesterday, now would I?

        Err yes, because you'd have picked a script derivative language. You agree that Java and C# are rubbish, but I assume from a position where Perl is good.

        That is like agreeing that a Dodge Cavalier is rubbish, while driving an Edsel.
      • by CamMac ( 140401 )
        Insightful? Did you read the post? Or where you simply dazzled by the Ph.D., some big words, and the ass kissing? Obviously someone's PHB has been let out of his cage and given moderator points.

        Pan Tarhei Hosé? Panty Hose? And how do you become a Ph.D. and not learn how to avoid run on sentences. Now maybe I'm just a little more critical of my sources than your average Slashdot reader, but when someone with the MeatWorld name of Panty Hose makes a statement, I tend to be a little bit skeptical. And Dr
    • I'm not a luddite, I just don't feel like typing an essay to make the computer do something simple.

      I used Eiffel in college, and didn't it find it to be all that great. To make your compiled program run at a decent speed, you had to 'freeze' it (melting IIRC was the quick & dirty no opimization compile) which would take hours. Hours if find if you are compling a huge project (say a kernel) but for a simple graphical poker game..ugh.

      I know terminology is probably something that held it back...freeze,

    • In terms of the raw totals of important and useful software written in a language, and how widely society in general uses and relies on code written in a language, C has been the most widespread, useful, and productive language in the history of computer science. From telephone switches to operating systems to video encoders and a million other places. There are far worse things to look to for inspiration.
    • by Cthefuture ( 665326 ) on Wednesday February 09, 2005 @09:12AM (#11617411)
      The C language itself my not be perfect but the syntax really is one of the best. That's why it's used so often and it has nothing to do with the language itself.

      Your examples don't make any sense because Ada and Eiffel have a very C-like syntax. As does Pascal, Visual Basic, and a ton of other languages.

      C is just a very concise version of the same syntax. This is why it's better than the others. It has power without extra fluff. It's a perfect starting point for making a more powerful language.

      Smalltalk does not use a C-like syntax though and that is one reason why no one uses Smalltalk. Its syntax sucks.

      The perfect language would have an extended C-like (or C++-like) syntax. The extensions to the syntax would make functional programming easier. They would allow things like heavy use of recursion without performance loss. Being able to choose between mutable and nonmutable variables would be good too (especially if the language made this very efficient).
    • I guess the explosive success and consequent social revolution of the affordable computer over the last three decades still hasn't convinced some people that C "works". However I have to agree, after spending well over half of those three decades figuring out what "works", I don't want to spend a week learning how to suck eggs.

      The revolution is over. Evolution is now firmly entrenched.

      "esoteric" - Sending modem strings to Mars.
    • I agree about C syntax. . . C is an excellent language, but the terse syntax makes it ugly and hard to read.

      One of my favorite languages was Amiga E. In the way it worked it was fundamentally similar to K&R-style C, with a few esoteric features added. The striking difference was how much more readable Amiga E was, mostly because it used more keywords than C.

      It also underscores that point about marketing, since Amiga E was never a commercial project, and was never ported from Amiga to any other sys

    • I used a fair bit of Eiffel last semester, and love the language. I do have a theory as to why it hasn't gotten a more mainstream acceptance than a lot of other languages though: ESTUDIO. That is one of the most painful IDEs I have ever used. I can't even think of what else to say... EStudio was one of the largest barriers for me doing my assignments, because there was numerous times I felt it was actually working against me.
  • Hey, I like Perl! (Score:5, Interesting)

    by gweihir ( 88907 ) on Wednesday February 09, 2005 @08:07AM (#11617077)
    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
    • Re:Hey, I like Perl! (Score:3, Interesting)

      by hattig ( 47930 )
      I wouldn't want to write Office in Perl, but yes, Perl is an excellent scripting language made extrememly useful by all the modules available for it.

      Would you spend ages writing a text parser in Java to get some text formatted data into a database, or would you do it in an hour in Perl? Especially if you are working on a remote system, any unix system is pretty much guaranteed to have Perl installed.

      It is all about choosing the best language for the task. If I was writing mobile phone games, I'd use Java
      • If I was writing for a mobile phone, I would most definitely not use Java. The reason that mobile phones use Java is because Java programmers are cheap and Java allows for very fast development. With most phone models having a lifespan of about 4 months, you can't afford to take an extra month to program using a better suited language like C or assembly. Phones have little processors that aren't very strong (or should if you want the battery to last a long time), and people don't like having to wait 3 mi
    • Re:Hey, I like Perl! (Score:3, Interesting)

      by geoffspear ( 692508 ) *
      Umm, that's his point. People use it as a general purpose language because they can. It started off as something useful for writing small tools, then got extended so you can do just about anything with it, without really being designed from the outset to be like that.

      If you're using it as a much more powerful replacement to sed, it's a great tool. If you're using it to replace C to develop complex application, you're proving Mr. Kay's point.

      • If you're using it as a much more powerful replacement to sed, it's a great tool. If you're using it to replace C to develop complex application, you're proving Mr. Kay's point.

        Exactly my point. However it is not the languages fault if it is misused. It is the fault of those misuing it. And there is a reason interfacing between Perl and C is possible in both directions and via the OS. I actually do this all the time: Longer pipe-chains with some components Perl and some components C. Interface between on
    • 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.

      It's not much good requiring an ee-fscking-normous interpreter to interpret your small tool, though. On my system

      • sed is 41Kb;
      • awk is 311Kb;
      • perl is over a megabyte.

      There's nothing you can do with perl that you can't do with awk and sed. perl is, let's face it, a collection of cheap hacks in a bag hung off the si

      • There's nothing you can do with sed and awk that you can't do in just plain sh. Having 656K for the shell and 311Kb for awk and 41Kb for sed when writing a small tool is ridiculous.
      • I'd dislike perl less if it were not the programming language of choice of the computer-illiterate.

        Good news. The vast majority of them have moved on to PHP :), leaving some very high-quality programmers. Many recent CPAN modules are case in point. There's Bryar and Catalyst, excellent Ruby-on-rails style MVC application platforms, just as one example. Template Toolkit, SOAP::Lite, Class::DBI (object/relational mapping) etc. are excellent tools to build upon.

        The advantage of Perl is not the Syntax. Hell,
    • Perl is a very powerful language to write small tools in the UNIX philosophy.

      IHBT, right?

      It was intended to subvert the Unix philosophy. More specifically, it was intended to subvert that part of Unix philosophy that said that every tool should do only one thing and do that one thing well. -- Larry Wall
  • by zerocool^ ( 112121 ) on Wednesday February 09, 2005 @08:11AM (#11617097) Homepage Journal
    Ah, perl poetry.
    < >!*''#
    ^"`$$-
    !*=@$_
    %*<> ~#4
    &[]../
    |{!,,SYSTEM HALTED
    or,

    Waka waka bang star tick tick hash,
    Caret quote back-tick dollar dollar dash,
    Bang star equal at dollar under-score,
    Percent star waka waka tilde number four,
    Ampersand bracket bracket dot dot slash,
    Pipes curly-bracket bang comma comma CRASH.

    Also: Isn't it odd that perl is the one language that hardly ever makes it past the slashdot lameness filter?

    ~Wx
    • by fanatic ( 86657 ) on Wednesday February 09, 2005 @08:36AM (#11617202)
      Isn't the idea of perl poetry that it is supposed to complile in perl? Your example fails that test. Of course, it fails most other tests, too.

    • String found where operator expected at ./poetry.pl line 2, at end of line
      (Missing semicolon on previous line?)
      syntax error at ./poetry.pl line 2, near "!"
      Can't find string terminator "'" anywhere before EOF at ./poetry.pl line 2.
    • I decided long ago that any language where '$|++;' is a complete line of code is not worth my time.

      For reference, that's a pipe, not an 'L' or a '1', and that line turns off output buffering. OBVIOUSLY.

      Perl is useful for a lot of different things, but so are a lot of other languages, and they aren't nearly so obtuse.
    • some real perl poetry:

      # If you awake and see the sunrise
      # bathing earth in red and gold,
      # As you gaze you'll somehow find
      # it brings a washing of the soul.
      #!/usr/bin/perl

      if (sleep(1) and @earth =($sunrise{red},$sunrise{gold})) {
      @soul = map {&wash(\@soul,$_)} (keys %sunrise,@earth);
      }

      and while not a poem in the strict sense, you do get a good rythm going when reading this next one. It's inspired by watching someone fail miserably at parallel parking.

      #!/usr/bin/perl
      sub out(@){join"",@_}sub in($;

  • Illuminatus! (Score:4, Interesting)

    by Tackhead ( 54550 ) on Wednesday February 09, 2005 @08:18AM (#11617128)
    ...it develops that Alan Kay is an agent of the Underground, which is called Dobbs' Lightning because of Heraclitus' idea that Dobbs first manifested Himself as a lightning bolt which created the world.

    It was in Dobbs' Lightning that I first read Tux Sneezed, which I still think is a rip-roaring good yarn. The scene where Atlanta Hope sees Niklaus Wirth and it's her old *ahem* "boyfriend" with the gaunt cheeks, and he said "I am Bob Dobbs", man, that's writing. The 103-page long speech afterwards, explaining the importance of strong typing and showing why all the anti-Heracletians are destroying civilization by destroying strong typing, certainly is persuasive, especially to me who's got three (going on four) contracts, each of which share the same include files. "Without strong typing there can be no civilization."

    Her nonfiction book, "Antitrust: The Unknown Ideal for the New Heracletian" is, I think, a distinct letdown, but the Dobbs' Lightning bumper stickers sure give people the creeps.

    I met Atlanta Hope at the time of the IEEE Committee Riots. I was in the thick of it (you have no idea how bizarre civil war gets when one side uses nerf weapons as a large part of its arsenal), and met Atlanta herself where the last stand was being made. She grabbed my right arm and howled something like "War is the Health of the State! Conflict is the creator of all things!"

    Seeing as how she was on a heavy Heraclitus wavelength, I quoted with great passion, "Men should fight for the Laws as they would for the walls of the city!" That won her, and I was Atlanta's personal lieutenant for the rest of the battle.

    (Epilogue: Heraclitus -- He was apt to say odd things. Once he even wrote that "Religious ceremonies are unholy." A strange duck.)

  • Perl (Score:5, Insightful)

    by The Famous Brett Wat ( 12688 ) on Wednesday February 09, 2005 @08:22AM (#11617141) Homepage Journal
    I like languages mostly for the way they challenge my established thinking on programming. Smalltalk wasn't that much of a challenge to me, because I learned it fairly late in the overall scheme of things, and had already learned some of its concepts from other, more recent languages. Eiffel taught me the joys of assertions and programming by contract, as well as the joys and limitations of the OO inheritance model. Haskell was fascinating for its lazy evaluation, and the possibility of infinite lists.

    But Perl! Ah, Perl! Such a bundle of contradictions! It violated every rule I held dear about language theory, and was a better language for it. Perl doesn't try to be a theoretically perfect language for any particular theory of linguistic perfection. It has principles, but it is not a slave to those principles. It has a degree of consistency, but never a foolish consistency.

    No language on Earth has made me rethink my concepts of "what makes a good language" more than Perl.

  • Lisp (Score:4, Insightful)

    by Anonymous Coward on Wednesday February 09, 2005 @08:25AM (#11617149)
    I kindof get the impression Kay hasn't looked at modern lisp as much as historic lisp - for starters, lisp has had structured data for, well, decades (no, lisp doesn't just do symbols and lists, okay?), and while us lispers applying lessons from compsci type theory piecemeal to practical lisp drives the static-typing bigots/purists into insane flamewars, the existence-proof of the applicability of such lessons that availability of type-inferencing lisp compilers such as CMUCL and SBCL shows that Kay's comments about lisp and types are again, while not exactly wrong, are mostly applicable to the lisp of yore (and with, lisp, we're really talking _yore_, compared to almost any still-used language around today except FORTRAN), not ANSI Common Lisp.

    So I don't particularly like his pigoenholing of lisp - he says there were three working extensible languages, and smalltalk was one of them, kindof not mentioning however, that lisp _wrote the book_ on extensible languages. Every good lisp program extends the vocabulary of the lisp language into the problem domain (a characteristic shared with good Forth).

    I confidently predict something vaguely recognisable as "Lisp" will outlast pretty much every other computer language on the planet. You see, new dynamic languages have a choice when they get to a certain point (a choice e.g. python is now facing) - do they add the remaining features of lisp and thereby "risk" being classed as a reinvented dialect of lisp, or refuse those features, maintain their independent identity, but forever cripple their language compared to lisp?

    • Re:Lisp (Score:5, Informative)

      by Stu Charlton ( 1311 ) on Wednesday February 09, 2005 @11:09AM (#11618610) Homepage
      So I don't particularly like his pigoenholing of lisp - he says there were three working extensible languages, and smalltalk was one of them, kindof not mentioning however, that lisp _wrote the book_ on extensible languages.

      I wouldn't be that hard on him.

      If you search him further you'll see he has probably done more to promote Lisp than most others whose speciality isn't _already_ Lisp.

      In his Turing award lecture this past October at OOSPLA 2004, he told the audience (paraphrased): "you owe it to yourself and your profession to seriously learn Lisp".

  • by betelgeuse68 ( 230611 ) on Wednesday February 09, 2005 @08:30AM (#11617169)
    But I think that's as much as a function of the fact that a developer today is standing on the shoulders of giants more than ever.

    To quote Isaac Newton, "If I have been able to see farther, it is only because I have stood on the shoulders of giants."

    Frankly, we've hit a point where there's a lot less "science" in Computer Science, or rather, the need for such training in many programming jobs.

    There's nothing wrong with a well rounded education but for some people they don't have the time or inclination to take on full engineering curriculums (as I did).

    While I don't mind have gotten a rounded education in light of where tech careers have gone, it's too bad I didn't follow my father... construction. Given his real estate holdings, I doubt I will reach his station in life (economically) if I stay on a pure tech track... highly unlikely.

    So if CS degrees are nowadays more about vocational training, so what. A tech degree of any kind, no matter how full of yourself you are, is not going to take you where it once might. That's reality. For all the noise we hear about a focus on math & science, it seems to me to be rendered somewhat moot since some Big Wig Biz guy is going to offshore such work anyway. So I ask, what's the point?

    Don't get me wrong, a good foundation in math is good, we just don't all need to become math majors...

    If you manage to learn and apply algebra, you can at least solve some practical math problems. But considering some of the stories of people who can't deal with fractions, well, obviously we're failing somewhere in the math department.

    Anyway, just rambling now...

    -M
    • A tech degree of any kind, no matter how full of yourself you are, is not going to take you where it once might. That's reality.

      And that's partly because no one did anything about it as degrees (of all sorts) were devalued in order to allow governments to crow about the fact that 60,70,80% of the population were getting degrees, and never mind the fact that the degrees were so easy as to be meaningless.

      When I was employing people a couple of years ago I quickly found that there was no point in filtering

    • On the contrary, I found that my CS education (bachelors, masters [Cornell University]) was very much NOT about vocational training. In fact, I can probably count on one hand the number of times that I've needed something for my job that I learned mechanically how to do in school. Learning a programming language on your own was par for the course. Classes were about theory.

      Of course, I graduated way back in 2001, so I'm sure the landscape has changed-- or maybe just in crappy cs schools.
      • Re:On the contrary (Score:3, Interesting)

        by sconeu ( 64226 )
        At UC Santa Cruz, we went through this back in the early '80s (83-84). In fact, the students even organized to protest the theory-based curriculum. (OT: Any old CISSA members out there?)

        Of course, we wanted courses in VAX Assembler and C. When I got out into the real world, it turned out that the theory that I had learned was of much more practical use than the so-called "practical" classes I took -- with the exception of C, which I learned on my own.
  • Perl (Score:4, Informative)

    by Anonymous Coward on Wednesday February 09, 2005 @08:32AM (#11617178)
    'Perl is another example of filling a tiny, short-term need, and then being a real problem in the longer term'

    Perl fills a 'tiny short-term need'? Is that why Morgan Stanley, RyanAir [ryanair.com], Amazon [amazon.com], Ticketmaster [ticketmaster.com] and even increasingly Google [google.com] to name but a few are using it for real, business-critical applications?

    I'm so sick of all this anti-Perl talk. I write powerful applications in Perl and they are definetly not 'write only'. If anyone writes a 'write only' program in any language then it is the programmer who is at fault. Perl assumes a bit of intelligence on the programmer's side, rather than adopting Java's policy of bondage. And contrary to what a previous comment said, Perl is a general purpose language (with excellent built-in data structures and regular expressions, and a convenient and expressive syntax).

    This guy might have an impressive [sic] resume, but he is badly showing his ignorance about Perl.

    • Re:Perl (Score:4, Insightful)

      by Viol8 ( 599362 ) on Wednesday February 09, 2005 @08:48AM (#11617283) Homepage
      "I'm so sick of all this anti-Perl talk. I write powerful applications in Perl and they are definetly not 'write only'."

      Your perl apps may be amazingly legible and easy to understand , but most I've seen are written by paid up members of the The Shorter The Better club. Usually resulting in a rats nest of complex regular expressions and obscure syntax making it impossible to get a clear understanding of whats going on without intensive study of the code. Other languages can allow obtuse code but only Perl makes it so easy it becomes 2nd nature.
    • Re:Perl (Score:4, Insightful)

      by geoffspear ( 692508 ) * on Wednesday February 09, 2005 @10:47AM (#11618365) Homepage
      Umm, I think the article went WAY over your head.

      Yes, businesses use perl for business-critical applications. Why do you think that proves anything about the theory of designing languages? Businesses used Windows 3.1, too. Does that prove that it's the perfect operating system, so no one should have bothered to develop any new ones?

      Businesses need to use some tool that exists now. Alan Kay, who is hardly ignorant about the subject, doesn't think there isany existing language that doesn't have some sort of problems, so saying that perl has problems isn't "anti-Perl" talk. He has the same sort of concerns about Smalltalk, which he invented himself. Getting upset about some quote about where your favorite language went wrong is just moronic. All languages have gone wrong, and that's the problem he's talking about.

  • by MattRog ( 527508 ) on Wednesday February 09, 2005 @08:42AM (#11617234)

    One could actually argue--as I sometimes do--that the success of commercial personal computing and operating systems has actually led to a considerable retrogression in many, many respects. ...
    So I think the lack of a real computer science today, and the lack of real software engineering today, is partly due to this pop culture.
    I'd call it "Fad-driven Development" more so than pop culture. But the lack of computer science/engineering causes fad-driven development and vice-versa. It's a feedback loop.
    ...the adoption of programming languages has...been somewhat accidental, and the emphasis has ...been on how easy it is to implement the programming language rather than on its actual merits and features. ... it started spreading Basic around just because it was there, not because it had any intrinsic merits whatsoever.
    HTML, XML are prime examples of this - and also fad-driven development. Verbose, tag-based, require parsing every time, etc. -- not a very good language in any respect. Yet, people can read it. No technical intrinsic merits push XML over some other format, yet here we are.
    All of these ideas could be part of both software engineering and computer science, but I fear--as far as I can tell--that most undergraduate degrees in computer science these days are basically Java vocational training.
    This relates back to the failure of CS and fad-driven development.
    • HTML, XML are prime examples of this - and also fad-driven development. Verbose, tag-based, require parsing every time, etc. -- not a very good language in any respect. Yet, people can read it. No technical intrinsic merits push XML over some other format, yet here we are.

      I use XML purely to store data files for my applications. Most of the time there is no DTD or schema or anything fancy like that. However, what makes it useful for me is that I can add new parts to my data storage and my old code will s
  • by Z0mb1eman ( 629653 ) on Wednesday February 09, 2005 @08:43AM (#11617238) Homepage

    If you look at software today, through the lens of the history of engineering, it's certainly engineering of a sort--but it's the kind of engineering that people without the concept of the arch did. Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.

    SF The analogy is even better because there are the hidden chambers that nobody can understand.
  • 'Perl is another example of filling a tiny, short-term need, and then being a real problem in the longer term,'

    Which is why for years people have been writing CGI, QA and Admin scripts in Smalltalk.

    • no, but people have been writing things in perl that perl simply wasn't meant for. desktop applications and any system that lends itself well to object oriented design falls flat in perl, yet perl is *still* used for these things. alan's criticizing the people who only have a hammer, and see every problem as a nail.
    • by Sique ( 173459 ) on Wednesday February 09, 2005 @10:27AM (#11618148) Homepage
      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.
  • by ajm ( 9538 )
    complaining that young people today just don't understand anything, and that music they listen to, well, in my day.....

    Yes, Mr. Kay puts forward some great ideas but the whole tone strikes me as whining. Smalltalk was great and as he says there are many new and interesting ideas out there now, why doesn't he implement them in an accessible way and drop the attitude that intellectual lighweights have ruined programming.
    • by Anonymous Coward
      Kay works a lot on new ideas, many of them being incorporated into Squeak [squeak.org] and Croquet [opencroquet.org]. The ideas are still rough, though, so in some cases I don't know if I'd say they were accessible yet. Such is the nature of research. (But even kids [squeakland.org] are using Squeak.)
  • by mi ( 197448 ) <slashdot-2017q4@virtual-estates.net> on Wednesday February 09, 2005 @09:12AM (#11617417) Homepage Journal
    A "write-only language"...
  • by Leadhyena ( 808566 ) <nathaniel DOT de ... T purdue DOT edu> on Wednesday February 09, 2005 @09:15AM (#11617445) Journal
    Maybe I didn't RTFA as thoroughly as most, but this guy comes off as exremely self-centered. First off, every language has its purpose, and just because some of these languages aren't as well designed as the author's languages (like the comments "Java could have been great, just look at Squeak"), that's not a good enough excuse to bash them.

    The reason Perl is so popular is because it is SOOO easy to throw something together in no time at all that can access databases, websites, and so forth, without all of the messy class coding of the other languages. Would I want to write something huge in perl? Heck no. Because Perl is made for scripting and not for large projects. Same thing for PHP and and all of those languages he likens to Egyptian pyramids made from brute force.

    Also, I don't know about him, but I know that at Purdue the CS degree requires the authoring of a compiler, some study of programming language theory, some classes about Database Theory (I can't remember the last time a vocational class taught tuple calculus and normalization), as well as some high level algorithm knowledge. I would consider at least that degree program a step above just some Java vocational classes, and his comment only highlights how egotistical he really is.

    Just because he's really smart doesn't give him the excuse to be a real jackass.

    • Alan Kay may come off as a jackass in your reading of the interview, but he's nothing like that in person. He's one of those people who is so smart it's hard to follow him sometimes, but he never really talks down to people. I think his enthusiasm and passion about these subjects is admirable.

      I would agree with Alan's comment about a modern CS degree being a Java vocational program. I've been trying to hire software developers lately, and every resume I see has nothing but Java and web apps on it, and no b
    • by dr.badass ( 25287 ) on Wednesday February 09, 2005 @02:19PM (#11621128) Homepage
      First off, every language has its purpose, and just because some of these languages aren't as well designed as the author's languages, that's not a good enough excuse to bash them.

      When someone like Alan Kay, with a very inventive and academic background, criticizes the workhorse stuff out in the "real world", he's pointing out where the ideas don't work, rather than the thing itself. Basically, he's thinking on another level than the one most of us are.

      He's not really saying Java just sucks. He's Java sucks insofar as it was founded on some bad ideas. That doesn't mean you can't or shouldn't do real work in it. It just means that there are limits to what you can do with it. Someone like Alan Kay can't really get over this, which is part of what makes him a genius.

      Paul Graham (who, of course, is a big fan of Lisp), has written quite a bit on language design. I think I would have reacted to this interview the same way you have had I not read The Hundred-Year Language [paulgraham.com], and others. I highly recommend them.
  • Alan did grep stuff popularizing OOPs and laptops (dynabook) in 1970s in Xerox PARC. But little of note in the 25 years after that. Does that justify perpetual geek worship?
  • by kahei ( 466208 ) on Wednesday February 09, 2005 @09:33AM (#11617609) Homepage

    LISP had it first, LISP did it better, and LISP is all you need. Let's look at why LISP is so good that it has to be mentioned ad nauseam whenever a language discussion comes up.

    1 -- LISP is simple and elegant. LISP has a pure functional design, without any of that procedural/imperative/OO junk that people use to actually write software that does stuff. LISPs purity and simplicity keep it in the lab, where languages belong.

    2 -- LISP is old. You name it, LISP implemented it way back when. Things like visual form designers, refactoring IDEs, regular expressions and the like don't count -- those aren't real language features, just modern rubbish that helps people do boring jobs.

    3 -- LISP is highly intuitive. I've used LISP for 70 years, man and boy, and that's why I realise just how intuitive LISP is. Starting off, some people find LISP a bit daunting, and they keep wanting to write 'a + b' instead of '(add a b)' just because it's "shorter" and "clearer". In fact, though, it only takes a few short years of practise with purely functional languages to find LISP completely intuitive.

    4 -- LISP is used by real professionals -- computer scientists, AI researchers from the 1980s, and Douglas Hofstatder. The post-LISP languages are used by hired help -- engineers and whatnot. I'm sorry to have to say it, but it's true. If you want to get _paid_ for programming, sure, use C# or PHP or something like that; _gentlemen_ will continue to use LISP.

    Well, I hope that's finished the 'debate' (if indeed there can be debate about what is self-evident). LISP is better, and that's that. Remember, it's not what you can _do_ with a language that matters; its how much you can _say_ about it.

    Incidentally, this post is a JOKE. LISP has exactly the strengths and weaknesses you would expect from a pure functional language. I just think it's weird that people always jump up and go 'LISP IS BETTER OH YES IT IS' when a language discussion comes round.

    • Can't say for the original LISP, but todays Lisps (Common Lisp, Scheme, etc.) are all but 'pure functional' languages. Sure they support functional programming style too, but its neither the only or even the most common style, Common Lisp doesn't even gurantee tail-recursion if I remember correctly:

      (defvar a 2)
      (setq a (+ a 5))
      (princ a)
      => 7

      If you add CLOS or Goops into the mix there there is even less functional programming. There is of course still a lot of functional programming in Lisp, due to it bei
  • by Anonymous Coward
    ...Alan Turing Award winner.

    Does that mean he passed the Turing test?
  • Fascinating (Score:2, Interesting)

    by chaoticset ( 574254 )
    Perl is another example of filling a tiny, short-term need, and then being a real problem in the longer term.

    Ah, like English. Or, for that matter, everything else ever invented or discovered, accidentally or otherwise. Fire burns down houses. Wheels are attached to cars that run people over and pollute the environment. Light bulbs enable light pollution.

    The quote is another example of stating something obvious in a way that seems profound.
  • by grumbel ( 592662 ) <grumbel+slashdot@gmail.com> on Wednesday February 09, 2005 @10:20AM (#11618082) Homepage
    So what are the lessions to be learned from languages written in the past?

    - API/Libraries are important, more important than the language itself, no matter how good your language is, if you don't have a bunch of libaries ready to use the common man will solve his problems faster and better in another language. (Perl/CPAN)

    - good syntax is important, do/end are no fun, {}'s are easier to read to the common man (C)

    - interoperability with other languages is important (C-libraries exported to scripting languages)

    At least for me that seems to be the points that make a language successfull, while not necesarrily beatifull. Most of the powerfull, but mostly failed languages, of the past (Smalltalk, Lisp) seem to either ignore most or all of these points, worse they come with their own VM, their own development environment and such, so unless you do it their way you are mostly (hard to write or ship a few ten-line long script, hard/impossible into a native-binary, etc.).
  • Too bad (Score:3, Interesting)

    by mattr ( 78516 ) <<mattr> <at> <telebody.com>> on Wednesday February 09, 2005 @12:46PM (#11619943) Homepage Journal
    I really liked the end of the interview and copied it to read again a few times. But felt a bit disappointed in that Kay is boosting Squeak and Lisp, dissing Perl, and yet seems to promote many ideas that are becoming mantra by perl people.

    Given that the interior of Perl is (at least used to, I don't know about now or Parrot) ugly, scary stuff, I would have liked to hear Kay's take on what Larry Wall and some other pretty bright people are trying to do with perl and parrot now, and whether he thinks their philosophies are great or slumbering. Might be a flame war to end all flame wars, but relatively untutored (well Niklaus Wirth's book was my beginning at a young age and according to Kay I've probably been damaged by it) I was excited to see all the ideas that were being stolen and discussed from other languages for Perl 6. Late typing, rebuilding the language from inside at a "meta" level, these all sound great. I'm also interested time and again with Haskell and perhaps it is because I subconsciously have an urge for cleanliness like the 1/2 page of Lisp.

    Would parrot written in Lisp be better? I've liked Perl and the libraries of course, but if I could do without them I wonder if Kay would recommend Squeak, something like Erlang (?), or what. The talk of the ancient computer that had 1000 times better "lost" technology than today was intriguing but there was too little about it, and it seemed to talk almost about the Cell processor there.

    I feel a great amount of warmth and wisdom from Kay and it is probably too much to ask him to light the way, but if he is going to go shooting down most of the world, even people who are seriously wanting something better and trying to build it, I think he has some responsibility to address it, or at least to mention how Squeak can solve all our problems. Well I guess I have a week of surfing to find my own answers. When I looked at Squeak the last couple of times a while ago I had to turn away from it (down the dark path?) but at the very least I'd like to be intelligent about my choices.

    To me perl and the people at perlmonks.org are interested in a language that assists creativity and the wild Larry juggernaught and the wizards involved in Perl 6 deserve more than Kay handed out. I hope this is not his last parting shot but the first of many challenging, wonderful discussions by Kay about how we can get to the next level.

Genius is ten percent inspiration and fifty percent capital gains.

Working...