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.'"

577 comments

  1. Which fanboy are you? by Anonymous Coward · · Score: 5, Funny
    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.
    1. Re:Which fanboy are you? by Anonymous Coward · · Score: 0, Insightful

      LOL - i like it :)

    2. Re:Which fanboy are you? by Anonymous Coward · · Score: 2, Funny

      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 hardware uses a 5 year old VIA southbridge, and you need to use a PCI card IDE controller because of it. You don't really know how computers work despite having used one for nearly 20 years. You still think that PCs have no custom chips and use the original x86 instruction set.

    3. Re:Which fanboy are you? by essreenim · · Score: 4, Funny
      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!

      : )

    4. Re:Which fanboy are you? by karniv0re · · Score: 0, Troll

      7. OpenBSD

      You walk around feeling incredibly secure, since you're supposed to be secure by default. Then, because you didn't take the time to understand the OS and did something stupid, you realize that you've been walking with your fly down the whole time. Of course the girls you tried to pick up at the bar called you out right away with your smug attitude, lack of "features", and that "Puff" t-shirt you thought was cool. Once you realize your mistakes, you desperately post to misc@openbsd.org begging for help. You get laughed at by other people just like you, only of a higher caliber. But hey, you don't care, you're secure... right?

    5. Re:Which fanboy are you? by Anonymous Coward · · Score: 1, Insightful

      Funny? Geez, it's more like:

      Amiga. You suck. (tech detail). You really suck. (obscure tech detail). You are the sux0rz. (painfully detailed examination of technology). Suck suck.

      Did you notice that the grandparent was all metaphor and didn't even mention computers? There's a reason that's funny and this one isn't.

    6. Re:Which fanboy are you? by Anonymous Coward · · Score: 0

      Apple fanboys "only drink Miller Lite"?! That should be "When you go to bars you only drink $12 microbrews that you insist are 'better than that mass-produced piss' because nobody else has heard of them."

    7. Re:Which fanboy are you? by ThousandStars · · Score: 1
      9. BSDs

      People look through you when you walk outside, and you're not sure whether this is because of your insignificance, or because you've become so pale from sitting inside that sun shines through you. You shop exclusively at second-hand places. To out-man the Linux guy, you mined your own metal and set up your own chemistry lab to get the raw components necessary to build simple chips, which you program in binary with a switch. The experience taught you to be more efficient, and the lack of an Internet connection makes your programs more secure anyway. You wonder understand "sadomasochistic" but wonder what "sex" means.

    8. Re:Which fanboy are you? by Anonymous Coward · · Score: 0

      Someone's bitter.

    9. Re:Which fanboy are you? by Anonymous Coward · · Score: 0

      As the author of the first post I'd like to say that he's exactly right. The Amiga and HURD ones miss the point entirely. The BSD gets the point but still needs work to make it funny.

    10. Re:Which fanboy are you? by Anonymous Coward · · Score: 0

      Wow! Somebody hunt down the AOL user with mod points.

      More insight: "Me too!"

    11. Re:Which fanboy are you? by Anonymous Coward · · Score: 0

      Did you notice that the grandparent was all metaphor and didn't even mention computers?

      "No body ever asks you for help with their computers"

      "you continually bugged the IT guy at work about your computer"

      "when it comes to computers"

      "You've been 'into computers'"

  2. Not C++ I hope by Anonymous Coward · · Score: 4, Funny

    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.

    1. Re:Not C++ I hope by Eravnrekaree · · Score: 1

      HTML of course can be relatively simple to use, but problems arise when Microsoft begins "embracing and extending" it with all of its proprietary extensions, and no one else supports those extensions. In fact, this is a greater problem with Javascript, some are thinking of Javascript when they refer to HTML, the incompatable DOMs and extensions to Javascript that Microsoft has added is what can often make working with these things rather complex.

    2. Re:Not C++ I hope by Ohreally_factor · · Score: 1

      So, what are you trying to say here? That javascript would be a good language for writing an OS? I heartily agree.

      --
      It's not offtopic, dumbass. It's orthogonal.
    3. Re:Not C++ I hope by crgrace · · Score: 1

      Probably the funniest thing I've ever read on Slashdot. Here Here!

    4. Re:Not C++ I hope by Anonymous Coward · · Score: 0

      Sarcastic.

    5. Re:Not C++ I hope by Eravnrekaree · · Score: 1

      Indeed, that is a groundbreaking new concept. I am sure Microsoft would be very interested in this as its core technology on which to build its next generation OS. We have to keep our CPUs fully utilised and this is an increasing challenge for Microsoft, how to make sure that the OS uses as much resources as possible so those resources dont go to waste on other less worthy tasks, for instance writing documents, serving up webpages, and other such worthless uses.

      Seriously, though, embracing and extending can be okay, as long as you make the software open source and provide excellent open source documentation, try to follow an existing implementations interface if possible, and with the realisation that when the extension is standardised it is the responsibilkity of the producer of it to support the new standard fully. I say this for this reason: if we waited for standards organisations to standardise something before we implemented it, I dont know if any innovations or advancements would ever be made or they would happen at a far slower pace than they do now. Standards organisations are slow, and also imperfect meaning they can also leave out important features. The need for a certian feature might not be foreseen when a standard is ratified. The incompatability between netscape and IE was mutually each parties fualt, since each one refused to support the others extensions.

    6. Re:Not C++ I hope by Anonymous Coward · · Score: 0

      Aww, nothing warms the heart more than nice hot cup of a shameless ripoff..

    7. Re:Not C++ I hope by guuyuk · · Score: 1

      ...and remember: C# is just C++++
      Two more pluses, so it's GOT to be GOOD!

      --
      We're sorry, the phone number you have reached is imaginary. Please rotate your phone 90 degrees and try your call again
    8. Re:Not C++ I hope by Anonymous Coward · · Score: 0

      When you agree with what you "hear," the expression is "hear, hear!"

      "Here here" would be a request for people to move towards you.

    9. Re:Not C++ I hope by daiakuma · · Score: 1
      int C = 42;
      printf("Result:%d", C++++);

      ___

      >Result: 42
      Could it be that C# is no improvement on C?
      --

      ~~~ Centigrade 233 ~~~ yaku, yaku, yaku!

  3. Re: I had Heraclitus once by Black+Parrot · · Score: 3, Funny


    > The itching wasn't so bad, but the burning drove me nuts.

    Sounds like Hera shared more than her clitus.

    --
    Sheesh, evil *and* a jerk. -- Jade
  4. except by Anonymous Coward · · Score: 0

    nobody really knows how to design a good language.'

    Kernigan and richies C language being an exception.

    1. Re:except by Anonymous Coward · · Score: 0

      I dont know about those two, but Brian _Kernighan_ and Dennis Richie seem to be two oldschool guys that know what they are doing :)

    2. Re:except by Anonymous Coward · · Score: 0
      So does Dennis _Ritchie_.

      (Somebody was going to do it; might as well be me.)

    3. Re:except by Anne+Thwacks · · Score: 1

      You obviously dont know about Algol68

      --
      Sent from my ASR33 using ASCII
    4. Re:except by Anonymous Coward · · Score: 0

      Far be it from me to offer parenting advice, but Dennis Richie really dropped the ball when he was raising his daughter Nicole. In fact, I'd guess that he dropped the ball on her head repeatedly.

    5. Re:except by Anonymous Coward · · Score: 0

      You obviously dont know about Brainfuck.

    6. Re:except by hunterx11 · · Score: 1
      When I first learned that arrays in C are really pointers to an address, and that the elements are indexed by their offset from that address, I was a bit confused. I mean the concept wasn't too complex, but it seemed to me that there was really nothing preventing you from accessing data at an offset beyond the length of the array, which certainly didn't belong to the array.

      Of course, I assumed that there was some more advanced topic that I was not yet familiar with that negated my concern. After all, nobody would be stupid enough to let you arbitrarily access memory you didn't allocate.

      Whoops.

      --
      English is easier said than done.
    7. Re:except by Xyrus · · Score: 1

      Just because someone gives you gun doesn't necessarily mean you should shoot yourself in the foot.

      C was designed to be a better programming language than assembler, while not taking away anything from it's raw power.

      It seems you have never done any system level programming (hardware drivers and such). Or had the the need to take advantage of such a feature for optimization purposes (self-modifying code on a bank switching memory device at a constant address).

      Keep in mind as well, programs in the early days could not afford the spare cycles for bounds checking, let alone garabge collecting. They could scarcely afford memory for storing a 4-digit date (a.k.a the Y2K problem).

      Your response sounds more like something I would expect from someone who has only programmed in managed languages.

      Before you start dolling out the stupid label, do yourself a favor and read up on some history. It also wouldn't hurt to get some exposure to the lower level programming taht goes on under the hood.

      ~X~

      --
      ~X~
    8. Re:except by hunterx11 · · Score: 1

      I'm not trying to malign C--it's probably the most useful programming language I know. But saying that C is the only well-designed language, as the parent to my original post claimed, is a bit ludicrous. If C were the One True Language (which it doesn't claim to be) you would expect it to have bound checking, or else it wouldn't be categorically better than everything else.

      --
      English is easier said than done.
    9. Re:except by Xyrus · · Score: 1

      Sorry, I missed the parent. :P

      I agree that C is definately NOT the One True Language. I don't really think there is such a thing, at least not yet.

      I do think that C/C++ has pretty good syntax structure. But like most languages nowadays, it can definately be abused. The Obfuscated C code contest is a prime example.

      Some characteristics of the One True Language that I think would be necessary:

      1. The power of assembler.
      2. The speed at least to match a compiled language.
      2. Grammatical simplicity.
      3. Memory management (garbage collectors and such).
      4. Security.

      Some of the above are mutually exclusive.

      It's still a matter of what you're trying to accomplish. Choose the right tool for the task.

      ~X~

      --
      ~X~
    10. Re:except by daiakuma · · Score: 1
      The above are not mutually exclusive. Modula-2 has:
      1. The power of assembler.
      2. The speed to at least match C.
      3. Greater grammatical simplicity than C.
      4. Better memory management than C.
      5. Much better security than C or C++.

      I think the only things that kept Modula-2 from taking over the world were (a) not a rich enough standard library, and (b) keywords in upper case (annoying to type, and ugly on the screen), and maybe the fact that it was from Switzerland.

      Although Modula-2 has faded into proglgang history, Delphi is heavily based on it, and other languages are influenced by it.

      I hope D becomes big, because it has all the features you describe, which I agree are desirable. It also has syntax that is very similar to C and C++, and is compatible with C libraries, so the majority of working programmers will find it easy to transfer their skills to D. The simple grammar and module system of D, plus the fact that it has such things as hash-maps natively built into the language, mean that D could become the language of choice for all applications, wherever it is available (replacing even scripting languages).

      About D: http://www.digitalmars.com/d/index.html
      --

      ~~~ Centigrade 233 ~~~ yaku, yaku, yaku!

    11. Re:except by Anonymous Coward · · Score: 0

      anything from it's raw power

      "its".

    12. Re:except by jay-be-em · · Score: 1

      Except arrays are NOT pointers.

      They syntatically behave in a similar fashion under certain circumstances, but not all.

      --
      "Orthodoxy means not thinking--not needing to think. Orthodoxy is unconsciousness." --Eric Blair
  5. 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."
    1. Re:Misleading headline by Anonymous Coward · · Score: 0

      Grammar nazis making spelling mistakes. I love this place.

    2. Re:Misleading headline by Threni · · Score: 1, Insightful

      > but rather "What Programming Language Would Heraclitus Design

      Or even "Which...."

    3. Re:Misleading headline by nuance9 · · Score: 1

      Good ol' slashdot, one second we are complaining about incorrect grammar...

      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."

      And the next we are talking about how to desing a programming language.

      On the other hand if you are wondering how should you desing and implement a programming language
      --
      what?
    4. Re:Misleading headline by Anonymous Coward · · Score: 0

      I would suggest targetting Parrot which makes implementing compilers 1000 times easier than ever before
      ... said entirely without hyperbole, no doubt. Are you sure it isn't a million billion skillion kajillion times easier than ever before?
    5. Re:Misleading headline by dAzED1 · · Score: 1
      its amazing how freaking terrible grammar nazi's are at being correct here on slashdot. One would think they'd pass secondary English courses before they'd make a public attempt, but nOOooOo...

      Three cheers for the anti-grammar nazi Threni!

      Now, lets police our ranks and make sure we only do this to people who are attempting to do it to others. After all, this IS informal writing for the most part....until someone opens the can of worms by "correcting" someone else's post desings their post.

      And geeze people...perl solves real needs for sysadmins. Better than freaking python or some crap, and can do things that are awkward in any shell. And, as others have pointed out, there are all the mods that are available... only an academic could say perl is "a real problem in the long term."

    6. Re:Misleading headline by geoffspear · · Score: 3, Insightful
      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.

      --
      Don't blame me; I'm never given mod points.
    7. Re:Misleading headline by Threni · · Score: 1

      > nazi's

      A grocer's apostrophe! Priceless!

    8. Re:Misleading headline by dAzED1 · · Score: 1

      bad Threni! I wasn't making claims to grammar-correctness. Other direction! Informal writing! Heel, heel!

  6. No decent langauges... by MosesJones · · Score: 5, Insightful


    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.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
    1. Re:No decent langauges... by zerocool^ · · Score: 3, Insightful

      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

      --
      sig?
    2. Re:No decent langauges... by gnuLNX · · Score: 1, Informative

      "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."

      I could not agree more. In fact we use some software with an internal scripting langauge...it is vector based and the company lures people in by say you need 30% less lines of code...to which I respond...so what. Frustrating. I don't care how many lines of code it takes as long as the flow is meaningful and understandable.

      --
      what?
    3. Re:No decent langauges... by plague3106 · · Score: 3, Interesting

      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, pebbles, etc.

      It was wordy and too strict style-wise. Why the hell should i have to type a : when doing an assignment? From ... until ... loop ... end? Why do I need all that just to specify a loop? Why is for( init ; condition ; increment ){ } harder?

      Having to type all that extra stuff does add up, and while typing isn't the largest task, when it does finally come time to code, I don't wnat to spend my day writing extra, unnessary crap to make the program work.

      Please explain why C# or Java is rubbish compared to Eiffel? I'm all for learning a new syntax if it buys you something new...but Eiffel's syntax doesn't, I just takes more typing and requires you to remember even more keywords.

    4. Re:No decent langauges... by Anonymous Coward · · Score: 0

      t was wordy and too strict style-wise. Why the hell should i have to type a : when doing an assignment? From ... until ... loop ... end? Why do I need all that just to specify a loop? Why is for( init ; condition ; increment ){ } harder?

      Having to type all that extra stuff does add up, and while typing isn't the largest task, when it does finally come time to code, I don't wnat to spend my day writing extra, unnessary crap to make the program work.

      Because code is easier to write than it is to read. And most code spends most of its life in maintenance - that is being tweaked by people other than the person who originally wrote it.

      So Smalltalk, or Eiffel (or even Delphi) - languages that are verbose and designed to read something like English - are aimed for maintenance programmers, not the initial development.

    5. Re:No decent langauges... by photon317 · · Score: 1


      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.

      --
      11*43+456^2
    6. Re:No decent langauges... by Cthefuture · · Score: 3, Insightful

      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).

      --
      The ratio of people to cake is too big
    7. Re:No decent langauges... by mysticwhiskey · · Score: 1

      Same here. Uhhhh, I have nothing more to add though. Okay, it's a "ME TOO" post...

      --

      Stuck down a hole! In the middle of the night! With an owl!

    8. Re:No decent langauges... by plague3106 · · Score: 1

      But if the maintanier knows the syntax also, and the code is properly commented (which all code should be), how is it easier?

      Does
      for( i = 0 ; i 10 ; i += 1 ) {
      myObj.doSomething();
      }

      really need more words to describe it?

      When i've done maintence, what's helped me is knowing the OTHER objects the code is calling. If i dont' know what doSomething does, i probably don't know why it needs to be called 10 times.

      Those languages are aimed at beginners, not maintainers. VB should be in that list...and we know what BASIC stands for...Beginners All Purpose...

      In fact, thats why Eiffel was the first language RIT exposed thier CS students too; it is simple. But at some point you need something more advanced (and more widely used), which is why halfway through the year they switch to 'pure' C++ (i.e. we were NOT allowed to do ANYTHING the C way).

    9. Re:No decent langauges... by Zobeid · · Score: 1

      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 system, and thus was doomed to obscurity.

      Despite my gripes about C syntax, I still think it's hugely successful for good reasons. C doesn't attempt to introduce any exotic concepts. It's simply an interface to a microprocessor. In a way, this leads me to question Kay's whole assumption that ever-more-advanced comp-sci concepts should be reflected, or embodied, in programming languages.

      If all you have is a hammer, all your problems start to look like nails. If all you have is LISP, all your problems start to look like recursion.

    10. Re:No decent langauges... by |<amikaze · · Score: 2, Interesting


      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.

    11. Re:No decent langauges... by avandesande · · Score: 1

      try that with APL

      --
      love is just extroverted narcissism
    12. Re:No decent langauges... by ratboy666 · · Score: 1

      MosesJones:

      The hallmark of "beauty" in a programming language is being able to express youself.

      Of course, Kay doesn't KNOW everything about programming, and thus what to express. Which is where the comment about designed decent languages comes from.

      Ratboy.

      --
      Just another "Cubible(sic) Joe" 2 17 3061
    13. Re:No decent langauges... by Anonymous Coward · · Score: 0

      "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."

      I do prefer the minimalistic way. It's not the typing that bothers me. It's reading back the code. I love Pascal/Ada/Eiffel for the advantages they have over something like Java. But I always feel they drown the true essence of the code with all the verbiage.

      "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."

      Again, life is too short to get used to a new syntax every time a new language is introduced. Unless the new constructs offer something that cannot be achieved by the popular notation, stick to the polular styles. I really don't want to learn 10 different ways of writing for loop when most of them do the same in the end.

    14. Re:No decent langauges... by Anonymous Coward · · Score: 0

      If all you have is a hammer, all your problems start to look like nails. If all you have is LISP, all your problems start to look like recursion.

      It simply isn't true that lisp forces you to do everything recursively. Common Lisp has a well documented iteration facility through the LOOP and DO macros. These macros have existed for decades. And yes, they are real iteration, not recursion.

      Common Lisp also supports object oriented programming natively through the use of generic functions. Yes, it's a bit different from message passing architectures like C++ and Java, but it is much cleaner and natural than say Perl's bastardized OOP concepts.

      And yes, I Lisp daily.

    15. Re:No decent langauges... by Anonymous Coward · · Score: 0
      C syntax "one of the best"? C syntax is CRAP!

      For example, consider this valid C statement:
      (foo)(bar)(baz);
      Without looking up the definitions of foo, bar, and baz, you can't even tell how to parse that, since even the associativity changes depending on whether bar is a type or a function.
    16. Re:No decent langauges... by bluGill · · Score: 2, Insightful

      Saving lines is useful because you can fit only so many lines on screen at once, and the eye can only scan so many at a time.

      The more code I can understand at a time, the easier it is for me to understand the program and fix the bugs. If you know the language well, and the style is good, you don't need real words (which are just representations of something anyway) where a symbol will do.

      Note that I said understand. Sometimes adding lines makes code easier to understand, othertimes subtracting lines makes the code more readable. Sometimes that means a if/else sequence using at least 4 lines, othertime the ?: on one line. Depends on what you want to do, and what needs to be understood.

      I care that the code is understandable in most cases. In a few rare cases you must sacrifice understandability for performance, but that should be well documented, and very rare.

    17. Re:No decent langauges... by Ludd's+Brudder · · Score: 1

      That's not fair. APL is always a conversation killer in any discussion about programming languages.

    18. Re:No decent langauges... by homerjs42 · · Score: 1
      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

      Just a little pedantry here, but Pascal is 1 year older than C, which would seem to mean that C has a Pascalish syntax, rather than the other way around. (Other than that, I'm inclined to agree with you)

      Language Timeline

      --dw

    19. Re:No decent langauges... by HiThere · · Score: 1

      Well Ada definitely has it's points, and is better than C++, and Eiffel could have been even better, except that the designer(s) have a few personality problems.

      E.g. Ada95 doesn't include a garbage collector. It could, and there are even specifications as to just how to attach it. But it doesn't. And appearantly neither does Ada2005. Also there's something about the design of Ada that tends to make at least small programs about 4 times larger than equivalent C programs. Ugh! I still prefer Ada, but not by nearly as much as I could.

      Eiffel doesn't have a great many libraries, and has trouble acquiring new ones. So the most recent syntax change breaks many of the current ones. When the library designers complain about this they are essentially told "Tough!". This lack of backwards compatibility is justified on grounds of language purity.

      OTOH, I'm rather enthused about D (Digital Mars D, dmd -- with a gcc compatible fork called gdc [or gcd?]). It doesn't have all possible good features, but it has many of them. It is more like C than like C++, but it is Object Oriented, though it doesn't insist on it (rather like Python). Again there is the problem with not enough libraries, but in this case it's because the language is new. It has variable sized arrays and hash tables built in. Etc.

      I can't emphasize strongly enough how important libraries are to a language. It's a pity that it seems to be so hard to do an automatic conversion of C libraries into something accessible by another language. SWIG is a noble attempt, but calling it automatic is laughable.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    20. Re:No decent langauges... by HiThere · · Score: 1

      Saying that the syntax is like English is....absurd.

      OTOH, it's definitely easier to read. You don't, e.g., have wild pointers floating around pointing who knows where. It may have been obvious when it was being written, but it sure isn't now.

      The compalint about freeze, etc. is specific to ISE Eiffel. Other Eiffels don't do things the same way. (That said, if you can afford it ISE has a pretty good system.)

      OTOH, I do wonder what computer was taking hours to compile a simple class project in optimized form. I never had a similar experience with either Visual Eiffel or SmallEiffel.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    21. Re:No decent langauges... by Anonymous Coward · · Score: 0

      It's valid, but nobody would write code like that.

    22. Re:No decent langauges... by Pikewake · · Score: 1

      Using your argumentation for the syntax of C, you could also claim that English is the best natural language. The fact that a lot of people have learned the syntax, and therefore have an easier time adapting other languages with a similar syntax, doesn't say anything about the quality of the syntax. The only conclusion you can draw from this is that programmers are lazy and can't be bothered to learn new languages.
      If you really want a language that is the "perfect starting point for making a more powerful language" I'd recommend Forth ;)

    23. Re:No decent langauges... by Bastian · · Score: 1


      Saving lines is also useful because it saves you time. The thing that annoys me most about programming in languages like Java, C++, etc. is the immense amount of time I have to spend just building scaffolding. Plus, I honestly believe that the fewer lines of code I have in a program, the fewer bugs I will have to root out.

      When I write a C++ or Java program, I end up devoting the first few days to a mix of building classes for simple things, defining interfaces, etc., and more scaffolding to handle typing issues, and more scaffolding to taking the data structures and such in the standard libraries and subclassing the living hell out of them until I get something that fits my needs.

      In ObjC I can save a mess of time by customizing libraries using categories instead of subclasses - and another mess of time not having to worry about remembering to add code to convert objects returned from the standard libraries into objects of equivalent classes that have the features I want.

      When I'm using Lisp, I hack out some lists and such on the first day, slap together some functions on the second day, glue it all together on the third day, and spend the rest of the week and most of the next helping the Java programmers track down typing issues.

      And I don't want to hear any babble from the C people about performance. This is the 21st century, we aren't working on PDP/11s anymore, and programmers are far more expensive than CPUs and RAM these days.

    24. Re:No decent langauges... by Anonymous Coward · · Score: 0

      "Brain dead syntax of C"..is just too flagrant.
      Perhaps you could suggest a simpler, more
      reasonable alternative to:
      a = 1 + 2;
      or even
      *a = 1 + 2;
      .

    25. Re:No decent langauges... by dreadway · · Score: 1
      Smalltalk does not use a C-like syntax though and that is one reason why no one uses Smalltalk. Its syntax sucks.

      Smalltalk is wonderful if you give it a chance. You're right in saying that it's not "C-like."

    26. Re:No decent langauges... by Coward+Anonymous · · Score: 1

      I would disagree with your assertion that the C syntax is braindead.
      C syntax is the cleanest syntax I've seen in that it strikes a near perfect balance between uniformity and simplicity (essentially the number of syntax rules that need to be memorized by the programmer) and allowing him/her to create maintainable code. It won't hold your hand but it will not get in the way either.

      Other languages are either too cryptic ala ((((()))())) or have so many syntactic idiosyncracies that they are simply a pain to use. Perl, Applescript, SH and other shell variants for example.

      C has its drawbacks but syntax is not one of them.

    27. Re:No decent langauges... by podperson · · Score: 1

      C has several glaring flaws that other languages, such as Pascal and even Basic lack.

      1) It promotes unreadable or easily misread code. The classic example is:

      if (a = b) {
      }

      2) Case sensitivity for names allows idiotic things such as:

      thisVariable
      ThisVariable
      Thisvariable
      thisva riable

      to be distinct. It adds suble bugs and achieves no positive purpose.

      3) braces { } may be easy to type, but make it easy to lose track of which block they are closing. Pascal's "begin" and "end" are no more useful, but Modula-2 and modern Basics have block closures that make it easier to figure out where you are.

      4) the preprocessor may be neat, but the ways it create problems are legion.

      If you go back to Kay's observation that a programming language is, in essence, a user interface for functionality, c is a lousy user interface -- it's easy to make mistakes and hard to find and correct them.

    28. Re:No decent langauges... by plague3106 · · Score: 1

      No...i think VB is more like english (that was one of its goals).

      I agree pointers can be tricky...but hopefully your skill will mitigate that to some extent, and you'll have good tools to help also. Finally, complex pointer operations should be avoided whenever possible. You can avoid pointers for the most part..but they are a powerful tool when used correctly too.

      I wasn't aware there were other eiffels out there. I think ISE was the only one at the time (96 - 97) I used it...or maybe thats just the wrong impression i got from my college.

      The computers we used I believe were Ultrasparc 2s (or maybe 10s...its been a while...i do miss those labs though), with SunOS 10? Something like that anyway. I don't think it ws the machines fault, because C++ compiled very quickly.

    29. Re:No decent langauges... by crazyphilman · · Score: 1

      English is an excellent language. It has absorbed the best features of the languages its users have been exposed to. Consider the combination:

      A 26-character alphabet which can be combined into phonemes to express virtually any sound humans are capable of making (and some we aren't), which enables people to express virtually any thought by constructing it from more primitive chunks;

      A spoken form that is driven heavily by context so that a limited number of words can express a much broader number of meanings, with extremely subtle variations possible based on body language and tone;

      A format that can accept any foreign word or concept merely by converting the sounds into english phonemes, growing constantly, never becoming obsolete...

      English is really something. The reason it's used so widely is that it's so good it's almost viral.

      --
      Farewell! It's been a fine buncha years!
    30. Re:No decent langauges... by Anonymous Coward · · Score: 0
      If all you have is a hammer, all your problems start to look like nails. If all you have is LISP, all your problems start to look like recursion.

      ...and if all you have is C, all your problems start to look like a for(;;) loop.


      C may map nicely to the machine, but it doesn't map well to real-world problems, and a language has to do both if it is to be maximally productive. That's why C++ was invented, and why it has become dominant, despite its complexities and its quirks. It is also, I think why it will be replaced. Perhaps D will be the replacement.

    31. Re:No decent langauges... by Anonymous Coward · · Score: 0
      Lots of languages have much simpler grammar than C. Some of them are based on Pascal. The Delphi compiler is famously fast partly because the grammar of the language is so simple. Functional languages are even simpler. I'm not talking about Lisp, which many people find unnatural, if not unreadable, but languages like Miranda and ML.

      Here's an example of a generic Miranda function that implements quicksort using recursion:
      qsort [] = []
      qsort (a:x) = qsort [b | b<-x; b<=a] ++ [a] ++ qsort[b | b <- x; b>a]
      (From here: http://www.cs.oberlin.edu/classes/dragn/labs/strea ms/mirandaexamples.m )

      I doubt you could do that more tersely in C, and yet even if you're unfamiliar with the language, it is at least fairly readable.
    32. Re:No decent langauges... by Pikewake · · Score: 1

      I should have known better than to use that example on a forum where everyone writes in English, and a majority seem to be native anglophones :)
      English is a very versatile language and, to add to your list of qualities, it can be used both to get precise information across and to write beatiful prose and poetry.
      So, please replace "English" in my first post with "Spanish", "French", "Russian" or "Mandarin Chinese".

    33. Re:No decent langauges... by Anonymous Coward · · Score: 0

      It was wordy and too strict style-wise. Why the hell should i have to type a : when doing an assignment? From ... until ... loop ... end? Why do I need all that just to specify a loop? Why is for( init ; condition ; increment ){ } harder?

      I feel the same way about C. Why the hell should I have to type an extra = when doing a comparison? "int i; for (i = 1; i = 10; ++i) {}"? Why do I need all that just to specify a loop? Why is "For I = 1 To 10: Next" harder?

      Please explain why Visual Basic is rubbish compared to C? :p

    34. Re:No decent langauges... by Anonymous Coward · · Score: 0
      C syntax is the cleanest syntax I've seen . . . Other languages are either too cryptic ala ((((()))()))

      C is clean, but Lisp is cryptic? Yet the following line is legal C...
      (foo)((bar)((baz)((quux)(quuux))));
    35. Re:No decent langauges... by Anonymous Coward · · Score: 0

      And I don't want to hear any babble from the C people about performance. This is the 21st century, we aren't working on PDP/11s anymore, and programmers are far more expensive than CPUs and RAM these days.

      This is not actually true. I know of major corporations that are still basing new systems on COBOL, because Java is too slow and it's cheaper to hire graduates and train them to monkey in COBOL than it is to throw hardware at the problem.

    36. Re:No decent langauges... by Bastian · · Score: 1

      I think the main issue there is not how fast or slow Java is (although I would certainly believe that Java is slower), so much as the costs involved in taking a huge pile of code that has been developed over years or decades and throwing it out the window.

      Java would have to be one sweet language (which it isn't) in order to justify that cost.

    37. Re:No decent langauges... by Coward+Anonymous · · Score: 1

      Read the entire comment. C will let you do what you want. If you want to write cryptically, write cryptically. If you don't want to, you don't have to. Lisp is embarassingly cryptic regardless of what you do.

    38. Re:No decent langauges... by baruz · · Score: 1
      It's valid, but nobody would write code like that.

      Ha!

      --
      He was a verray parfit gentil knight.
    39. Re:No decent langauges... by baruz · · Score: 1

      Sequence doesn't imply causation.

      They are both descendants of Algol-inspired languages.

      Clicking your link...sheesh, it's even in there!

      --
      He was a verray parfit gentil knight.
    40. Re:No decent langauges... by MosesJones · · Score: 1

      Your examples don't make any sense because Ada and Eiffel have a very C-like syntax

      I know its well after the fact on this and no-one will ever read this.

      But you sir are a clueless muppet with about the same level of experience in Ada and Eiffel as my son, actually even HE could spot the difference between them and he is 18 months old.

      Fuck me there are some ill-educated computer cretins out there. AOL has a lot to answer for.

      --
      An Eye for an Eye will make the whole world blind - Gandhi
  7. 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.
    1. Re:Hey, I like Perl! by Anonymous Coward · · Score: 0

      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

      Hey, why'd your post cut off? Did your Perl post that for you? AHAHAHAHAHA!

      More relevantly to the topic, though, PHP is the only generally the best programming language. It's just that simple.

    2. Re:Hey, I like Perl! by Anonymous Coward · · Score: 0

      I like Perl too. And though I recognize it's not for everyone, many languages others use aren't for me either. There is no one-size-fits-all here, or anybody who can say something is right or wrong in every situation.
      That's why I'm skeptical when people like this highly acclaimed person with an "impressive resume" comes out and pretends to know it all. He doesn't, he hasn't experienced everything, only a very very tiny subset of reality.

    3. Re:Hey, I like Perl! by hattig · · Score: 2, Interesting

      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 because most modern phones have Java. If I was writing a Windows application for general release, I'd use C/C++/C#. In-house GUI application - Java because it is quick, easy and maintainable, and hopefully would run on any Unix systems too.

      There is an advantage to using a popular language - if you have a problem, it is far more likely you'll find a solution online.

      Also, you are restricted by the languages you know and project timescales. Java might not be ideal, but lots of people know it and it may not be perfect, but it works for lots of tasks. Likewise I know Perl, but maybe you know Ruby or Python and can do stuff in those instead. Oh, and knowing a language isn't about knowing the language structure, it is about knowing the APIs with it, which is the time consuming task.

      Oh, and maybe American universities might be churning out Java programmers from their Computer Science courses, but that wasn't what I experienced in the UK. Okay, it was Cambridge, but Java was 1 course out of dozens, and we also did ML and Modula3 (although that has now been dropped and replaced by another Java course, I was on the crossover year I think). The C course was a 6 lecture course of where you could fuck up with C, they assumed you would learn C yourself.

    4. Re:Hey, I like Perl! by geoffspear · · Score: 2, Interesting
      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.

      --
      Don't blame me; I'm never given mod points.
    5. Re:Hey, I like Perl! by plague3106 · · Score: 1

      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.

      Having used perl, I think, from a strickly text parsing angle, that i'd rather use snobol..

    6. Re:Hey, I like Perl! by Anonymous Coward · · Score: 0

      I work fulltime in perl.

      Without perl, my work would in Ruby or Python, and far far easier.

      Eivind.

    7. Re:Hey, I like Perl! by Anonymous Coward · · Score: 0

      Come on, do you really see people writing really complex applications in C anymore? Other than OS kernels and a few daemons, the majority of the world has moved on to other languages that allow faster prototyping and easier maintenance. Perl happens to be one of those languages, and despite what he may say, it works wonders for many businesses. Substitute Java for Perl and the same applies, more or less.
      All I got from this story is that some researcher isn't too much in tune with the realities of life. A lot of places simply don't have time to write perfect code in a perfect language. Sorry, it just isn't possible. So we do the next best thing, we use general purpose languages (and yes, Perl fits the bill, it can do a lot, and is extensive and embeddable) to accomplish our tasks, get our paycheques, and then move on to the next project.

    8. Re:Hey, I like Perl! by CastrTroy · · Score: 1

      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 minutes for their cell phone to boot. I think cellphones were much better when they just had text interfaces.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    9. Re:Hey, I like Perl! by hattig · · Score: 1

      If you are writing mobile phone games (which seems to be a sizable market in the UK at least for some unknown reason considering how awful mobile phones are for gaming), then mobile Java is the best option. I think it is that for a couple of months of work, you can have a game that is roughly early 90s in style and charge £5 for it, an easy way to make a few tens of thousands anyway.

      I wasn't talking about the phone's operating system, etc! Most people don't write stuff for that area, and C/C++ are better options for this area.

    10. Re:Hey, I like Perl! by CastrTroy · · Score: 1

      Most new phones appear to have the entire operating system and user interface written in Java. This is done more often then is necessary and a big pain for the users. And off all the games I've seen on the cell phone, the ones i actually enjoyed playing were very simplistic, and probably were better off programmed in C.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    11. Re:Hey, I like Perl! by Anonymous Coward · · Score: 0

      Yes, please, use PHP. The botnets cannot continue without it.

      All your holes are belong to us.

    12. Re:Hey, I like Perl! by otis+wildflower · · Score: 1

      Without perl, my work would in Ruby or Python, and far far easier.

      Yeah, but cutting and pasting between xterms would _SUCK_... ... At least in Python.

      And yeah, as long as people whinge about Perl's flexibility, I will counterwhinge with an equally obnoxious and stupid Python indentation wisecrack.

    13. Re:Hey, I like Perl! by otis+wildflower · · Score: 1

      If you're using it to replace C to develop complex application, you're proving Mr. Kay's point.

      Define complex.

      Control software for the Space Shuttle? Perl, not so much.

      Anything handled in a web browser? Indubitably.

      How many Space Shuttle control software implementations do we need vs the demand for web-based apps?

    14. Re:Hey, I like Perl! by otis+wildflower · · Score: 1

      PHP is the only generally the best programming language. It's just that simple.

      Ohh, the comedy!

      *knee slap!!!*

      BTW, how's that function overloading coming along? Still byzantine stupid and unpleasant?

    15. Re:Hey, I like Perl! by Simon+Brooke · · Score: 1
      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 side of a kluge. It's an embarrassment to anyone who values elegance in software.

      Yeah, I know, flamebait. I suppose it is. I'd dislike perl less if it were not the programming language of choice of the computer-illiterate. I've even written some reasonably clean, well structured code in perl myself (because a customer required it). But I've very rarely seen a programming problem to which perlwas the right solution.

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    16. Re:Hey, I like Perl! by otis+wildflower · · Score: 2, Insightful

      And off all the games I've seen on the cell phone, the ones i actually enjoyed playing were very simplistic, and probably were better off programmed in C.

      Which API?

      J2ME is constant across all mobile envs (symbian UIQ/Nokia, M$, Linux). What C-based phone multimedia API is?

    17. Re:Hey, I like Perl! by hattig · · Score: 1

      Any thoughts about 3rd party software, and if using a Java sandbox on a mobile phone is better than giving the software full access to the system, in a possibly cut down OS that might not have memory protection, etc?

      But indeed, the interface should be fast, and having it in Java ain't great. Anyone seen the nasty interface on LG's 3G phones in the UK? Ugh.

      I always thought that AmigaOS would be a nice fit for a low-CPU power device like a mobile phone or PDA. Well, 3-5 years ago anyway, now of course it is too late.

    18. Re:Hey, I like Perl! by gweihir · · Score: 1

      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 text level for easy debugging and replacement of a component with one in a different language. I also find that prototyping smaller high-performance tools in Perl and then porting them to C when the algorithm works is often far more effective that debugging language issues and algorithmic issues in a direct implementation in C.

      I also run into claims that by now Java was as fast as C from time to time. Strangely all evidence cited is on stuff that can be easily implemented in Java. And things like start-up time is ignored. And memory consumption is ignored. And other aspects are ignored or claimed to be unimportant. However from personal experience I can say that C is unmatched both in efficiency and competence level required in the language user. I get the strong impression that the Java folks just want to believe they are the equal of people with multi-language capabilities and strong algorithmic and OS background. They are not. And they never will be. Wishful thinking will not change that.

      The bottom line is just this: To be a tool user you must not restrict yourself to one tool, but you need to have reasonable widespread skills in a class of tools, here programming languages and concepts. After all a hammer is very useful and essential for many tasks, but you would not use it to cut a board. If somebody does this, it is not the hammer's fault at all! And it does not make the hammer a bad tool. It does however make the person that tries to use the hammer on anything an incompetent fool.

      In my opinion an one-trick pony like a java-only programmer does not deserve a computer-related engineering or scientific degree and will find him-/herself out of a job as soon as the trend changes and easily replaced by somebody else before that.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    19. Re:Hey, I like Perl! by Cmdr+TECO · · Score: 2, Insightful
      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
      --
      echo 33676832766569823265328479713269.8639857989Pq | dc
    20. Re:Hey, I like Perl! by Anonymous Coward · · Score: 0

      Yes, sed and awk will take over the world. God knows shell script syntax is easily understood by all (not). Keep on programming in this inefficient model, my friend. I will gladly be payed contract rates to clean up the mess you've created.

    21. Re:Hey, I like Perl! by CableModemSniper · · Score: 3, Insightful

      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.

      --
      Why not fork?
    22. Re:Hey, I like Perl! by Black+Perl · · Score: 2, Insightful

      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, if it was, everyone would have moved on to Python by now :). The advantage is CPAN. Any application you want to write is 80% done already.

      --
      bp
    23. Re:Hey, I like Perl! by Zphbeeblbrox · · Score: 1
      Come on, do you really see people writing really complex applications in C anymore?
      Yes. I contribute to a complex application written in C. Blender uses C for almost all of its code. It works and it works well. How else do you get a 5meg application that does the work of commercial 30meg applications. C gives you a lot of bang for your buck. Don't assume that just because you don't see it everywhere you look, it's not being used.
      --
      If you see spelling or grammatical errors don't blame me. I tried to preview but IE here at work borked the CSS
    24. Re:Hey, I like Perl! by gweihir · · Score: 1

      It was intended to subvert the Unix philosophy.

      Obviously a case of a good tool despite the intent of its creator. I don't mind, as long as it is a good tool.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    25. Re:Hey, I like Perl! by Anonymous Coward · · Score: 0

      If I was writing mobile phone games, I'd use Java because most modern phones have Java.

      As someone who writes mobile phone games, trust me, you don't have a choice. Depending on carrier, you MUST use Java or you MUST use C/C++. If you want good market coverage you use both, for the same games. (Technically, you can use other languages that compile to the same stuff, but there's no API support.)

      And you can't compare the languages in this environment on their own merits alone. Java usually has jar size limits (among other things) which really restricts your coding techniques, and C/C++ have Qualcomm.

    26. Re:Hey, I like Perl! by Anonymous Coward · · Score: 0

      Perl is the glue that holds together the gears of our socie-- servers.

    27. Re:Hey, I like Perl! by Anonymous Coward · · Score: 0
      It's an embarrassment to anyone who values elegance in software.

      I value functionnality over elegance.

      Advocating elegance and talking about sed|awk in the same paragraph is definitely an embarrassment, though.

    28. Re:Hey, I like Perl! by Anonymous Coward · · Score: 0
      Define complex.

      typedef struct { float r, i; } complex;

      <rimshot> Thank you, I'll be here all weekend.

    29. Re:Hey, I like Perl! by Anonymous Coward · · Score: 0

      Yeah. But it sucks. ;)
      Let's be honest it's a feature critter without
      a conceptual core designed by an ex-sysadmin to address problems that he wasn't patient enough to
      learn how to fix: just because he could.

      I don't like how it mutilates fork(), I don't
      like how it's 'enhancements' to the posix regexp
      core introduce yet another regexp protocol and
      it's own problems. I don't like how it's practitioners use it, and are encouraged to
      use it, as a shell/gawk/sed/system surrogate.
      I don'tlike that it has been made so widely prolifiterable via concepts like cpan that
      all you need to do is use a tool to create
      mass havoc.

      No,really. Perl is a real problem when used badly.
      But it's just a personal prejudice. Hell, I like
      tcl and it's easily as bad. I don't issue blaise pronouncements like the smallcock dude without
      qualification.
      If you like perl, and you don't hurt me..more power to you.

    30. Re:Hey, I like Perl! by Anonymous Coward · · Score: 0

      Really?
      You better compare authors,interfaces and pedigrees when you do compaisons like that.
      You DO know what awk stands for right?
      And you DO know what perl is written in and
      why it was right?

      Show me here that you know (g)awk and I might take you seriously, otherwise you are standing in a
      crowded bus in a cloud of your own exhaust.

    31. Re:Hey, I like Perl! by AnxiousMoFo · · Score: 2, Insightful

      I've had to fix bugs in shell scripts written using awk and sed - you know, shell scripts that consist of a long chain of pipes from one awk script to the next? Man, anyone who bitches about how perl is write-only should try fixing awk pipe chains. Or shell scripts in general, really. There's a reason that there's a whole section in Unix Power Tools about nothing but the quoting rules in bash.

      There's a lot that I can do with perl that I can't do with awk and sed: uncompressing flate-encoded streams in PDFs (using Compress::Zlib), parsing XML, controlling desktop apps using Win32::OLE, etc.

      I have been on the receiving end of a big pile of spaghetti code written in Perl, chock full of bad things like subroutines that modify global variables and file manipulations that depend on chdir() calls 200 lines back. It's extremely easy to write incredibly crappy code in Perl, but as you mention yourself, it is possible to write clean, structured code in Perl.

      I've found Perl to be a good solution to problems too complex to be resolved by a 10 line shell script, but simple enough not to require a C or C++ project. That includes the UI for an internal web application, the photo album CGI for my personal web site, and tons of relatively small tools that I use every day. I wouldn't call the language perfect, but it (and CPAN) gets the job done.

    32. Re:Hey, I like Perl! by CastrTroy · · Score: 1

      I have an old Palm Pilot, M100. This things only runs C code. All the programs play well together. Then again, I don't run every program under the sun, because some ad filled site said it was cool.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  8. sed'ing by mirko · · Score: 1, Insightful

    nobody really knows how to design a good language
    s/good/universal/
    PHP is good for web programming
    Perl is good for system scripting
    Java is good for object manipulation
    C++ is good for GUI
    ADA is good for secure stuff
    Regexp is good for substitutions
    ARM/Assembly is excellent for embedded apps (depending on your platform)...

    --
    Trolling using another account since 2005.
    1. Re:sed'ing by PoopJuggler · · Score: 0

      im not sure id agree with the gui part. c++ and java work very well for embedded apps

    2. Re:sed'ing by jallen02 · · Score: 2, Insightful

      I do think you have a good point about some languages being good at different tasks. I think its even better to just look at computation from a more generic perspective to get a true picture. Computer programs are written to solve problems for the most part. Most problems will have a "problem domain" so to speak. The problem, and problem domain, are key factors in choosing a language.

      System Automation - For a quick and easy automation task on a server I administer I choose a light-weight and dynamic language that lets me very expressively accomplish some task.

      Big Business - Automating a 10,000 person brick and mortar company with virtually no technology. Things like ERP, CRM, and B2B (god forgive me for the buzzwords) are what are on your mind then. You need to integrate payrolls, manage sales, and integrate with other businesses and resources out there. Your problem domain is so large that multiple languages and tools will be used to fill the gap. And.. depending on your business you may even get into domain specific languages *or* invent new domain specific models of computation that are better at solving your particular problem.

      So you can look at the most simple thing to a very large task and see that there are enermous differences in scope and scale, yet we are solving a problem, or a series of problems. Each problem and facet of the problem must be addressed and solved (correctly). Some of the time your model and business domain may not fit anything very well . Some of the time it will.

      We have learned that OO programming tends to work reasonably well at modelling most problems in the business domain. As a system administrator you know that something like Perl or Python is quite good at solving problems in the system administration domain. As an embedded programmer you know that assembler can be used to solve problems when efficiency is absolutely required... but the point is that if you take things one level hire and look at the domain of the problem you are solving certain types of tools tend to work better than others. By knowing the TYPES of tools out there, not just one languages implementation of a concept, you can remain more flexible. If the problem is large enough and has enough scope, using a domain specific, possibly in house created/project specific, language to model the problem can be acceptable. It all just depends on the problem you are solving :)

      Jeremy

    3. Re:sed'ing by Anonymous Coward · · Score: 0

      Bastard, its HIGHER, not hire.

      *sighs*

    4. Re: sed'ing by Black+Parrot · · Score: 4, Insightful


      > ADA is good for secure stuff

      Actually, Ada [sic] is for big, complicated software systems that you want to be able to maintain.

      Of course, maintainability is a key component of security, and Ada does offer built-in resistance to buffer overflows, but I don't think security is the primary reason for choosing Ada [sic].

      > C++ is good for GUI

      That claim isn't so much wrong as... baffling.

      --
      Sheesh, evil *and* a jerk. -- Jade
    5. Re: sed'ing by mirko · · Score: 1

      That claim isn't so much wrong as... baffling.
      not sure I understood this, was it irony ?

      anyway I argument : object programming is good but I have to say I was more impressed by using C++ operators when coding GUI apps using the Qt library than I've been trying Java/Swing...
      Might be the event-slot paradigm which is mroe optimal but even so, operators are what make me think c++ is really cool.

      --
      Trolling using another account since 2005.
    6. Re: sed'ing by jone1941 · · Score: 1

      Ugh...

      You don't have any idea what you are talking about. Please, others reading this, ignore the parent. They clearly have no experience and are attempting to sound intelligent. They are not describing C++ but instead QT. Stop posting comments before you convince someone with even less knowledge than you that you are right.

      --
      Fear trumps hope and ignorance trumps both
    7. Re: sed'ing by mirko · · Score: 1

      They are not describing C++ but instead QT.
      Operators are a typical C++ feature.
      But I was also describing Qt.
      Maybe it was too difficult for you to get both of my (abbreviated, I admit) points about this language.

      --
      Trolling using another account since 2005.
    8. Re: sed'ing by BobRooney · · Score: 1

      Ada has one great supporting factor: its the officially recognized standard language for Department of Defense Software projects.

      I learned Ada as my first language in the Air Force and despite its verbosity, its got some great features and a lot of proprietary or "classified" DoD tools for working in it.

    9. Re: sed'ing by Anonymous Coward · · Score: 0

      I use GTK+ with C therefor C is "good for GUIs".
      Actually, I use Ruby with Fox therefor Ruby is "good for GUIs".
      Just kidding, I use Motif with C++ therefor C++ is, provably, NOT good for GUIs.

      I think the grandparent's point is that while Qt may be a decent GUI library it's "goodness" is independent of the C++ language.

      And, finally, IMHO I think Java or, god forbid, even C# are better "GUI languages" becuase they have a standard GUI library so that for long term maintenance you have a nice big pool of people who know how your GUI was created and lots of books on the shelf explaining how the GUI was created, etc., etc.. Oh, and no buffer overruns...

    10. Re: sed'ing by am+2k · · Score: 1

      qt and gtkmm have different workarounds for an issue that's in the basic C++ design (I'm talking about libsignal and moc). C++ sacrifices usability for speed on too many places to be usable/maintainable for large GUI projects.
      In addition, each and every library implements their own autopointers, wtf?
      If you want to know how to do it right, take a look at the AppKit (now part of Apple's Cocoa). It's much easier to code, all of the tedious stuff is done without any code whatsoever! That's simply not possible in C++ (b/c you can't call methods by name at runtime).

      operators are cool as long as you don't have to use other people's code, b/c you don't know the side effects of those operations. (For example, you could try writing (*blah).xyz() as blah->xyz(), but that might actually call a different method!)

    11. Re: sed'ing by mirko · · Score: 1

      most languages are "good" for some things, according to some people.
      Had I mentioned these were "best" I'd have added "for me".
      Now, I really had the biggest fun coding Qt GUIs in C++ because of both Qt and C++ features.
      But I'm sure other languages could be prefered by other such as you ... As well as I am sure thatr it'd be impossible to create a language that everybody would definitely prefer to any other to accomplish any programing task.

      --
      Trolling using another account since 2005.
    12. Re: sed'ing by Sentry21 · · Score: 1
      C++ is good for GUI
      That claim isn't so much wrong as... baffling.

      I concur. I would put forth that for GUI work, the best option is Objective-C (using GNUStep/OpenStep/Cocoa). With the Interface Builder, it's absurd.

      A few years ago, I would have said that C++ is good for systems that actually deal with the interaction of objects - gaming I guess, daemons, and so on - but now that Java's performance and power has improved dramatically, it's getting to the point where I wouldn't use C++ for anything anymore. Hmm...
    13. Re:sed'ing by julesh · · Score: 1

      PHP is good for web programming

      Tell that to ACM:

      Fatal error: Call to undefined function: message_die() in /var/www/acmqueue.com/htdocs/db/db.php on line 88

  9. I got your perl right here. by zerocool^ · · Score: 5, Funny
    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
    --
    sig?
    1. Re:I got your perl right here. by Anonymous Coward · · Score: 0

      Dude, I write code for a living, a lot of it in Perl, and have never seen anything as attrocious as that. If somebody on my team submitted that garbage I'd laugh in their face. Just like if somebody submitted C code with obvious buffer overflows.
      For that matter, much of the Perl code I've seen looks basically like C, with some $@% signs. If those 3 symbols confuse people to no end, I think they're not cut out for the coding business. ;-)
      And of course, regex aren't exclusive to Perl, even though Perl is very good at them. But there's such thing as commenting complex patterns and using whitespace...

    2. Re:I got your perl right here. by fanatic · · Score: 3, Funny

      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.

      --
      "that's not encryption - it's a new perl script that I'm working on..." - from some Matrix parody
    3. Re:I got your perl right here. by bitswapper · · Score: 2, Funny


      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.

    4. Re:I got your perl right here. by Sentry21 · · Score: 2, Insightful

      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.

    5. Re:I got your perl right here. by Anonymous Coward · · Score: 0

      Since when are "waka"?

    6. Re:I got your perl right here. by The+Unabageler · · Score: 2, Interesting
      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($;){pop}$/=in out
      *,="Just another Perl hacker";open IN,$0;$OUT
      =in <IN>;$|=1&& $OUT=~/((OUT)?.(.). IN.+)/is;
      @_=out qw|R 5 V : C % & : @ P F < E ! % ( R 5
      & : T ] F ; A ! " = S 5 G 2 8|; for $ward( in
      reverse@_){push@for,$ward,in reverse}print in
      unpack out($3), in out reverse in out reverse
      in out reverse out @for,$ward, reverse; close
      IN and kill 9,in $$ or eval in out in out $1;
      --
      perl -e '$_="\007/4`\cp%2,".chr(127);s/./"\"\\c$&\""/gees; print'
    7. Re:I got your perl right here. by Anonymous Coward · · Score: 0

      That's pretty stupid.

    8. Re:I got your perl right here. by Ohreally_factor · · Score: 1

      Yeah, but it scans.

      --
      It's not offtopic, dumbass. It's orthogonal.
    9. Re:I got your perl right here. by dr.badass · · Score: 1

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

      Yeah, but the lameness filter *is* perl.

      --
      Don't become a regular here -- you will become retarded.
    10. Re:I got your perl right here. by Lord+Omlette · · Score: 1

      Did you write that? (Just curious, so when I repost it, I can attribute properly...)

      --
      [o]_O
    11. Re:I got your perl right here. by zerocool^ · · Score: 1

      nope, nope, it's been floating around the intarweb for a few years now. I googled it and found it on google groups, i think.

      --
      sig?
    12. Re:I got your perl right here. by Anonymous Coward · · Score: 0

      Back when your parents were your age, there was a popular video game called "Pacman". Pacman's mouth -- which was most of him -- looked like < and Pacman sounded like "waka waka waka".

    13. Re:I got your perl right here. by http · · Score: 1

      If trying to compile it halted the system it would be fair to forgive that lack.

      --
      If opportunity came disguised as temptation, one knock would be enough.
      3^2 * 67^1 * 977^1
  10. Re:Ins't he the one ... by huntse · · Score: 1

    That gui is nothing more or less than Computer Associates "CA UniCenter TNG", which is a systems management thingummybobber. I remember going to a demo for it in 1998 (or was it earlier?).

  11. Mod this funny by Anonymous Coward · · Score: 0

    ^laughed my ass off

  12. First one was better by Anonymous Coward · · Score: 0

    but still funny

  13. Illuminatus! by Tackhead · · Score: 3, Interesting
    ...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.)

    1. Re:Illuminatus! by teknomage1 · · Score: 1

      Too bad there's no "+23 illuminated" modifier. Oh well I guess 5 is somewhat auspicious.

      --
      Stop intellectual property from infringing on me
    2. Re:Illuminatus! by CableModemSniper · · Score: 1

      23 Skidoo!

      --
      Why not fork?
    3. Re:Illuminatus! by BorgCopyeditor · · Score: 1
      Heraclitus -- He was apt to say odd things. Once he even wrote that "Religious ceremonies are unholy."

      He said that the processions in honor of Dionysus, in which people carted around giant phallic symbols that were explicitly understood to be symbols of the phallus (you know ... great big cocks), those processions would be unholy if they weren't in honor of the god, which implies that he did think they were within the bounds of piety.

      --
      Shop as usual. And avoid panic buying.
    4. Re:Illuminatus! by Ohreally_factor · · Score: 1

      That was so brilliant I nearly ruptured. I think you should look at this new language I'm developing. I call it Objectivist C.

      --
      It's not offtopic, dumbass. It's orthogonal.
    5. Re:Illuminatus! by Anonymous Coward · · Score: 0

      > I call it Objectivist C.

      Let me guess, it only allows reflexive assignment, as in A = A?

    6. Re:Illuminatus! by primigenia · · Score: 1

      f u n n y

  14. This must be flamebait by Anonymous Coward · · Score: 0

    yes or the most refined troll this week

  15. astounding hubris by jeif1k · · Score: 5, Insightful

    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.

    1. Re:astounding hubris by Anonymous Coward · · Score: 1, Informative

      Yeah, but Larry Wall says that hubris is one of the three chief virtues of a programmer, so it's okay.

    2. Re:astounding hubris by arkanes · · Score: 1

      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 not awkward, it's minmal!") will probably prevent it from ever really seeing mainstream use as well, although many of the concepts it pioneered are realized in other languages today.

    3. Re:astounding hubris by Anonymous Coward · · Score: 0
      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.

      Um....you do realize that Parrot is just a virtual machine, designed specifically for dynamic languages, and on top of that there are implementations of Python, Ruby, and Scheme, among others?

    4. Re:astounding hubris by jeif1k · · Score: 1, Troll

      Then go re-read his post and realize that it talked about how it made implementing compilers easier,

      So was I. Go read up a little on Lisp and trying using it, then you'll see why.

      Lisps awkward syntax (yes, yes, I know "it's not awkward, it's minmal!") will probably prevent it

      Coming from someone who advocates Perl-related technologies, that is a ridiculous statement. Perl is a stellar example of how even the worst syntax can't keep a language from being used.

      Then put down the Bill Joy doll.

      The only thing I would be doing with a Bill Joy doll is put needles in it; Java sucks about as badly as Perl, although in completely different ways.

    5. Re:astounding hubris by johnnyb · · Score: 1

      I'm a scheme fan, but I must say as a programmer I _love_ Perl's syntax. You may think I'm crazy, but Perl seems to have all of the tools a programmer needs for day-in-day-out tasks. I _like_ list vs scalar context. I _like_ multiple return values (though scheme has that through a SRFI). I _like_ the regex syntax embedded into the language. I _like_ the transmutation between the different scalar types. Why? These are all the little things that allow me to write killer programs in just a few lines of code.

    6. Re:astounding hubris by johnnyb · · Score: 1

      "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."

      I think that it's useful in practice because it makes the job easier on the programmer. It also allows the programmer to bend it to his style. I can put the "if"s wherever they make sense, rather than having every statement look the same.

      In fact, I can even ust use the latin language instead of writing Perl. Remember, Perl was developed by a linguist, not a computer scientist. Larry is an expert in how people think and communicate, and thus his language reflects that quite well.

    7. Re:astounding hubris by jeif1k · · Score: 1

      I agree that you can argue that Perl syntax is convenient for writing "killer programs in just a few lines of code". But there are two other considerations: is it easy to learn, and is it error prone? That's where it falls short IMO.

    8. Re:astounding hubris by arkanes · · Score: 1
      So was I. Go read up a little on Lisp and trying using it, then you'll see why.

      Are you seriously telling me that boostrapping a lisp environment (ie, writting a lisp implementation from scratch) is easier than targetting a VM?

      Coming from someone who advocates Perl-related technologies, that is a ridiculous statement. Perl is a stellar example of how even the worst syntax can't keep a language from being used.Parrot doesn't have anything in common with Perl syntax. What the hell does "perl-related" have to do with anything?

    9. Re:astounding hubris by grumbel · · Score: 1

      ### 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.

      Well, Parrot is a virtual machine for interpreted languages, and as such rather language neutral, ie. we most likly see Python, Perl and Ruby programms running ontop of Parrot, good thing IMHO. While Lisp is nice and interesting, its also rather limited in terms of choice, you either have to do it the Lisp-way or don't do it at all and well, most people don't seem to like the Lisp-way all that much. So I don't really see how Lisp is in any way superiour to the Parrot way. And Guiles concept of 'translating all languages to Scheme' hasn't been all that successfull either, I think there is some Basic translator now, but thats it, nobody really seemed to be interested in that concept. If Parrot turns out well it might end up uniting all the scripting languages out there, while from an academic point of view maybe not the most interesting thing ever, practically it might make a lot of peoples lives much easier, something that cannot be said about Lisp and Smalltalk.

      ### 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).

      I kind of agree on that, but again Perl and friends offer you choice about the environment, which Smalltalk doesn't all that much, which in turn is IMHO one of the major points why Perl is successfull while Smalltalk is not so much. People like freedom, people like doing it there way. Smalltalk and Lisp simply force far to much into doing things their way.

      PS: Dylan is just Lisp+CLOS with the () removed, but still hardly readable, since the CLOS syntax for defining classes is really rather unreadable and all but elegant.

    10. Re:astounding hubris by Wolfkin · · Score: 1
      (defclass new-class-name (parent-class)
      ((one :initarg :keyword-arg-for-ONE :reader one)
      (two :initarg :keyword-arg-for-TWO :reader two)
      (three :initarg :keyword-arg-for-THREE :reader three)))
      (two (make-instance 'new-class-name :keyword-arg-for-ONE 1 :keyword-arg-for-TWO 2))
      => 2
      Unreadable? How so?
      --
      Property law should use #'EQ, not #'EQUAL.
    11. Re:astounding hubris by grumbel · · Score: 1

      ### Unreadable? How so?

      Far to much redundance in there, why not just:

      (defclass new-class-name (parent-class)
      one
      two
      three))

      I really don't understand why you need to have a seperate name for the slot, for the keyword, for the getter and for the setter, while in the end you end up naming all of them the same anyway.

    12. Re:astounding hubris by Wolfkin · · Score: 1
      You don't *have* to have a separate name for the slot, keyword, and accessor (getter and setter), but it's nice to know you can. If you typically never do that (I do, but I can see the argument for usually not doing so), then you could trivially wrap defclass:
      ; untested
      (defmacro def-grumbel-class (name parent &body fields)
      `(defclass ,name ,parent
      ,(mapcar (lambda (field)
      `(,field :initarg ,(intern (string-upcase (symbol-name field)) :keyword) :accessor ,field))
      fields)))
      ...and have exactly what you want.

      Of course, if you decide you need to have more than one reader, writer, or accessor for a slot, you can do that with DEFCLASS instead of DEF-GRUMBEL-CLASS.
      --
      Property law should use #'EQ, not #'EQUAL.
    13. Re:astounding hubris by grumbel · · Score: 1

      ### then you could trivially wrap defclass

      Sure, being able to wrap everything is nice and cool, however that was not the question. The question was why I have to define everything seperatly and can't use the slot name for everything in the first place, still don't see any use for that.

      The throuble with Lisp is that its 'ugly at default', defclass is just one of the many areas where it is simply quite a bit more ugly then necesarry.

    14. Re:astounding hubris by Wolfkin · · Score: 1

      It isn't that it's uglier than necessary to have all the flexibility and options it has, but that it's uglier than necessary to have the particular subset of those features that you want to use. It's just that other people (me, in this case!) often have a different subset. In a way, this is reminiscent of the "bloated" feature count of MS Word: sure, there are lots of features unused for any particular person, but each feature is (presumably) part of some group's subset, and even though thye'd all prefer a Word-like app that had all those unnecessary features pared away, there's no agreement on what features are the unneceesary ones...

      --
      Property law should use #'EQ, not #'EQUAL.
    15. Re:astounding hubris by Anonymous Coward · · Score: 0
      Perl was developed by a linguist, not a computer scientist. Larry is an expert in how people think and communicate, and thus his language reflects that quite well.

      Bearing that in mind, how do we explain the huge number of people who hate Perl specifically because of its syntax?


    16. Re:astounding hubris by Anonymous Coward · · Score: 0

      > > Perl was developed by a linguist, not a computer scientist. Larry is an expert in how people think and communicate, and thus his language reflects that quite well.

      > Bearing that in mind, how do we explain the huge number of people who hate Perl specifically because of its syntax?

      Perl's syntax is complicated. It is context-sensitive, with a lot of shorcuts, every single ASCII punctuation have at least three or four meanings, everything can be done in lots of ways. Perl gives you enough rope to shoot yourself in the foot. It is hard to learn and until you learn it it is hard to write and especially hard to read. Perl 5 syntax is explained on a 1100-page book. C syntax is explained in a 200-page book. The 1100 book is only syntax, without explaining the CPAN modules. Perl is like Japanese, it is hard to learn, more complicated than Lojban, but it is damn expressive. That is why some (Lazy) people love it, and that is why some (lazy) people hate it.

    17. Re:astounding hubris by Anonymous Coward · · Score: 0

      Larry is an expert in how people think and communicate, and thus his language reflects that quite well.

      $Yes, %we = $all;
      communicate in !£"$!"%£%£%"(!!!___~~~~---

    18. Re:astounding hubris by Anonymous Coward · · Score: 0

      it's own graphical environment

      "its".

      Lisps awkward syntax

      "LISP's".

    19. Re:astounding hubris by jeif1k · · Score: 1

      While Lisp is nice and interesting, its also rather limited in terms of choice, you either have to do it the Lisp-way or don't do it at all

      Lisp has historically had many syntactic frontends, and it would be easy to put a Perl or Python parser in front of it. In fact, Lisp started out using M-expressions, a vaguely Algol-like notation. Why aren't people using those? Because anybody who spends any time using them quickly comes to the conclusion that it's easiest just to use S-expressions.

      Parrot turns out well it might end up uniting all the scripting languages out there,

      The goal itself is flawed.

      but again Perl and friends offer you choice about the environment,

      You mean the choice of editing Perl in Notepad and editing Perl in vi? Where is the "choice" in that?

      People like freedom, people like doing it there way. Smalltalk and Lisp simply force far to much into doing things their way.

      And what "freedom" does Perl give me? The "freedom" to choose among three different ways of accessing arrays or objects, none of which make much sense? Perl's "freedoms" are meaningless syntactic variations; Lisp gives you real control over both syntax and semantics.

    20. Re:astounding hubris by grumbel · · Score: 1

      ### Why aren't people using those?

      Because there arn't any solid implementations around? Well, maybe there are somewhere, who knows, but nothing that I can just 'apt-get'. Guile tried to provide different language front-ends, but completle failed with that, maybe because Guile itself wasn't much of a good Scheme implementation who knows.

      ### it's easiest just to use S-expressions.

      S-Expressions really have little to no advantage for most problems. Sure its cool that I can write my own language inside Lisp, but truth to be told, this is completly useless for 99% of the cases. Back then when I used Guile a bit more I ended up using macros to fix language defects and missing things (lack of for-loop construct and the like), it was cool that the language provided the power todo so, but if the language wouldn't miss so many day-to-day things, I wouldn't have needed to fix it in the first place. Rubys blocks for example solve basically the same problems which I solved with macros in Scheme or Lisp, sure they are not as powerfull, for most problems they are more then enough and far more elegant to use. S-Expressions are really the biggest problem of Lisp, sure they are also what makes Lisp so powerfull, but being forced to even write simple stuff in S-Expressions really makes the language as a whole rather hard to read and to write.

      ### The goal itself is flawed.

      Don't see much flaw in this, for most part APIs are all the same, no matter what language you use, differences are really small. So having all of CPAN available in Python might be quite a cool thing.

      ### You mean the choice of editing Perl in Notepad and editing Perl in vi? Where is the "choice" in that?

      I can use the languages like I want and am not forced to first learn how to start the VM, how to launch the editor and what else. With Perl, Python, Tcl/Tk and all other popular languages its easy hand over 10 lines of script to demonstrage their strength. Its also easy to add them as scripting languages to a programm. With Smalltalk, Lisp and Co. this is a whole lot more difficult. If there are any 10 line programms that show the true power of the languages, how to embedd them, how to script with them, etc and are only an 'apt-get' away, I would like to know.

      ### And what "freedom" does Perl give me?

      The freedom to get the job done. Smalltalk and Lisp are good for writing Smalltalk and Lisp programms, they havn't been all that good at solving the common mans problems, either due to lack of APIs/libraries, due to being to difficult to install, VM overhead or whatever.

      Don't get me wrong, I like Lisp and often whish I had the power of Lisp at my hands when writing code in other less powerfull languages, however that power has such a high price in reduced readabilty that for most tasks I prefer to not use Lisp.

  16. Perl by The+Famous+Brett+Wat · · Score: 4, Insightful
    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.

    --
    proof, n. A demonstration that a conclusion is implied by certain premises and axioms.
    1. Re:Perl by gnuLNX · · Score: 0

      Not to start a flame ware here...but No langauge has made my life maintaining old code more miserable than Perl.

      But you are correct....it has rules...but no officers to enforce those rules. It is like living in a world of anarchy....but with rules....that you don't have to follow.

      For me perl will remain a language for very quick and dirty tasks. If it is something that I will have to look at again in a month...forget it.

      --
      what?
    2. Re:Perl by Viol8 · · Score: 3, Insightful

      "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.

    3. Re:Perl by Anonymous Coward · · Score: 0

      You can't read code after a month has passed?
      I've no idea what, but you're doing /something/ wrong (only you can figure out what that is). I can read the stuff I wrote 5 years ago and not be confused. Then again I don't try to be overly clever, and comment anything remotely complex. And every function gets at least a few lines to describe what it does and why.

    4. Re:Perl by 0x461FAB0BD7D2 · · Score: 1

      A lot of coders are beginning to write in a obtuse or obfuscated syntax, in order to keep them at their jobs.

      This is getting increasingly common with outsourcing and a large number of CS graduates taking over the market.

      The major benefit is that it's not inherently legal, because most PHBs don't realize what's going on.

    5. Re:Perl by IpalindromeI · · Score: 1

      it has rules...but no officers to enforce those rules.

      This argument gets paraded out so often, people have just accepted it and don't realize how ridiculous it is. There are officers to enforce the rules, and they are called Standards. Programming style is a social problem, not a technical one. If it's getting out of hand, your company (or department, or team) needs to develop a set of standards and make people use them. Instead, you would rather make the language itself so limited and inflexible that bad style is curtailed.

      For me perl will remain a language for very quick and dirty tasks.

      And you will never understand how a programming language can mold to suit you, rather than molding yourself to suit the language. Frankly, I would rather the language make all things possible, so that I can choose what to do, not have the language choose for me.

      --

      --
      Promoting critical thinking since 1994.
    6. Re:Perl by Anonymous Coward · · Score: 0

      Well put.

    7. Re:Perl by innerweb · · Score: 1
      I have code from seven year ago that I still use and once in a while add something to. It is well written, documented, uses white space and easy to maintain. It is also in perl.

      I have some other people's code from this past summer that I am going through to find a few bugs. It is hard to read, not very well commented and spaghetti like. It is written in C.

      This is more about blaming the language for the shortcomings of an individuals ability to communicate than it is anything to do with a language. It goes in the same category as any written language from English to French. If you are not able to clearly communicate your ideas, people will not understand what you are saying or what you are doing.

      The programmer makes the code readable. The language does not make the programmer readable. If you have had a harder time reading things done in perl, then it is because those who have written in perl had not taken the time to learn how to program or how to program in perl. Same problems exist with Java, C, C++ et al. I agree, some of the worst code I have seen is in perl in the obfu contests (which come from C IIRC), but some of the best code I have also seen in perl.

      InnerWeb

      --
      Freud might say that Intelligent Design is religion's ID.
    8. Re:Perl by Eravnrekaree · · Score: 2, Informative

      I agree completely. I have used Perl and it is one of the eisiest to use languages I have found, and it does not encourage one to write bad code. If someone is going to write bad code, they will write bad code in any language they use, they will find a way. Creating a restrictive language actually I believe can make the language worse, by placing a lot of arbitrary limitations on what can be done, the language can be made much more difficult for the programmer to use when they really do need to do something unusual, probably increasing the chances of an ugly hack. Perl makes simple things simple but if you need to do something more complex and demanding it doesnt make those things more complex than they need to be by saying, to borrow a phrase from 2001, "Sorry, I can't let you do that, Dave", placing a bunch of limitations on you.

      I have written very readable Perl applications and I have found that when I show and teach other people Perl they too also write well written and readable applications, its quite natural, Perl makes writing well written applications that are clear quite easy, in fact, to me, it is eiser to read and understand a Perl program than it is a C or C++, far eisier in fact.

      Perl also gives me a powerful environment that allows me to easily write powerful and large applications which are yet still maintainable, easily and quickly with minimal fuss.

      Perl does things a bit differently than some other languages, especially in regards to its OO usage. But just because something is different doesnt mean it is bad. Some people it seems automatically if something is different they automatically think it is bad. However, i think perls OO system is actually very elegant and useable, at least as much so as the OO systems in Ruby, Python etc.

      Perl, to me anyway, is powerful, rich, easy to use, and in which it is quite natural to write readable code, and has allowed me to write better code faster.

    9. Re:Perl by gnuLNX · · Score: 0

      I do agree with you...but i find complex regular expressions very hard to read and maintain. Perhaps it is because I am not an expert with regexps. I totally agree about C/C++ having ugly syntax, but everyone is forced to use the same ugly syntax which means when I go to read my own or someone elses code it is in the same syntax. I know that a variable is an int because it say's so.

      Perl is an extremely powerful language and I am certainly not knocking it, but for me it is harder to maintain...maybe I have just been writing C for to many years now.

      --
      what?
    10. Re:Perl by geoffspear · · Score: 3, Insightful
      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.

      --
      Don't blame me; I'm never given mod points.
    11. Re:Perl by Anonymous Coward · · Score: 0
      Use extended regular regex syntax (/x). You can then add arbitrary whitespace inside your regex, which makes it easier to structure and comment.

      You can also use any character for pattern match quotes, not just '/'. If you use a paired character like '(', '[' or '{' the matched pair ends the pattern.

      Example:
      m{
      \w+, # Match a word and a comma
      \s # Match a whitespace character
      \w+ # Match a word
      $ # Match end of line
      }x;
    12. Re:Perl by justins · · Score: 1
      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?

      In a word, yes. And lucky for all of us their business isn't making heart-lung machines or something, and they're only using it on their webpages.
      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
    13. Re:Perl by gnuLNX · · Score: 0

      Cool Thanks for the info.

      --
      what?
    14. Re:Perl by abigor · · Score: 1

      It's good for parsing log files and stuff. But that's about it.

      If you're going to write something big, that needs to be developed by a team and maintained by who knows who, then you need something with a clear syntax, proper objects, and so forth.

      In short, you need Python.

    15. Re:Perl by dcam · · Score: 1

      Perl is a terrible language that happens to be quite useful.

      --
      meh
    16. Re:Perl by StormyMonday · · Score: 1

      Perl is an example of an "application specific language". It's optimized for one thing -- schlepping text around.

      The reason Perl is so popular is that something like 80% of all programming is code to schlep text around.

      --
      Welcome to the Turing Tarpit, where everything is possible but nothing interesting is easy.
  17. Lisp by Anonymous Coward · · Score: 4, Insightful

    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?

    1. Re:Lisp by Stu+Charlton · · Score: 4, Informative

      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".

      --
      -Stu
    2. Re:Lisp by XNormal · · Score: 1

      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?

      Sheesh. The amount of arrogance in that sentence is almost making me reel with dizzyness.

      Do you actually imagine that all the smart people behind languages such as Python are ignorant of lisp's other features and that's the only reason they haven't adopted them yet? It is absolutely possible to learn certain things from lisp while rejecting others with well thought-out rationale.

      BTW, Python is on its way to become somewhat LESS lisp-like. For example, functional programming builtins such as map, filter and reduce are going away. Functions would remain first-class objects, of course, and it is trivial to write your own version of these functions or import them from some backward-compatibility library. But it will not be in the builtins because it's not easy to read this kind of code. List comprehensions are much more straightforward than map and filter. They are readable the first time you encounter them without explanation. And reduce is barely used for anything but calculating sums anyway.

      --
      Stop worrying about the risks of nuclear power and start worrying about the risks of not using nuclear power.
    3. Re:Lisp by Anonymous Coward · · Score: 0
      I really don't see your point - python has chosen the "forever cripple" path, is all.

      Oh, and list comprehensions? You think having list comprehensions makes something less lisp-like??? The basics of list comprehensions are literally a few lines to implement in lisp and would traditionally be a roll-your-own job if you needed them. Even so, a comprehensive package (weighing in at a whopping 413 lines) exists so you don't need to bother: http://user.it.uu.se/~svenolof/Collect/

      And remember, it's lisp, so it appears seamlessly as part of the language:
      (collect list ((list x y))
      (in x '(1 2 3 4 5))
      (in y '(1 2 3 4 5))
      (when (< x y)))
      ((1 2) (1 3) (1 4) (1 5) (2 3) (2 4) (2 5) (3 4) (3 5) (4 5))
      (Check out the README for the package for more complex examples...)
  18. Re:Ins't he the one ... by MetaMarty · · Score: 1

    That GUI was a standard GL demo on every Silicon Graphics workstation. It is called "buttonfly" and it's basically a 3d file manager. Nothing special about it.

  19. 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
    2. Re:language developers disconnected from reality by drxenos · · Score: 0

      I assume you mean "for", not "foreach" as Ada has no such keyword.

      --


      Anonymous Cowards suck.
    3. Re:language developers disconnected from reality by Anonymous Coward · · Score: 0

      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.

      I don't know if that was intended to be derogatory or not, but it's kind of true in my case. I know a half-dozen languages or so, and in several major paradigms, so it's not like I'm not flexible in languages. My favorite (and the one I've programmed most in) is really C. You have to be very specific with it, but you get what you want. When I was learning Python, I was constantly bothered by the places where I couldn't (or wasn't supposed to) specify what I wanted, because the language would just do the right thing. In my case, it rarely did. I had to jump through a lot of hoops to force it to do what I wanted. I was probably doing something wrong, but I still haven't learned to think like Python.

      Before you say it, I use several dynamically typed languages. I don't have any problem with the others. They just don't seem to be as 'helpful', so I know what they are doing.

    4. Re:language developers disconnected from reality by MosesJones · · Score: 1

      Good point. My memory must be failing

      "for i in range 10 .. 100 loop"

      As opposed to

      "for (i = 10; x = 100; x++)"

      How the hell is C more readable ?

      --
      An Eye for an Eye will make the whole world blind - Gandhi
    5. Re:language developers disconnected from reality by jejones · · Score: 2, Insightful

      I'm no fan of C, but...

      1. I'm sure you meant to write "for (i = 10; i <= 100; i++)"

      2. C's for loop construct is one of its good points, as it lets one put loop control in one place for a far broader range of loops than just iteration over an arithmetic sequence, e.g.

      for (ptr = head; ptr != NULL; ptr = ptr->next)

      becomes immediately recognizable as an idiom for iterating over a linked list.

    6. Re:language developers disconnected from reality by Anonymous Coward · · Score: 0
      Well, it Ada this would become something like below:
      ptr := head;
      while ptr /= null loop
      -- do stuff
      ptr := ptr.next;
      end loop;
      (sorry about the lack of indentation)

      In general, the example you gave is to me an annoyance in C: you can freely alter the loop variable, which hinders the analysis of the code. I for one want to know how many times my for loop is going to iterate.

      I think many C idioms exist just to boost the ego of the coder, by generating code whose purpose is not immediately evident to someone who hasn't encountered the 'idiom' before.

    7. Re:language developers disconnected from reality by jeif1k · · Score: 1, Insightful

      I have to disagree here, the team that designed Ada for instance REALLY understood about application domains and the challenges of developing languages,

      In my opinion, Ada is a good example of academic masturbation, coupled in that case with a good deal of practical programmer stupidity, and DOD megalomania. The language is unnecessarily cumbersome, unnecessarily hard to implement, and fails to make good safety guarantees. Eiffel, too, was hugely flawed when it started out (for starters, its type system was just broken), and it took far too long to fix its problems for it to make much of a dent in the market (today, Eiffel is an OK language, but has been obsoleted by other languages).

      Your complaints about C are uninformed; C's design was not driven by some kind of macho attempt to save keystrokes, it was driven by trying to squeeze a useful compiler onto a tiny machine. Unlike Ada or Eiffel, which have never in their entire history been a reasonable solution to anything, C was a reasonable choice for its time and purpose; it's just that its time ended about two decades ago.

      Of course, even languages as rotten as Ada or Eiffel greatly reduce the potential for errors relative to C, but that really isn't saying much. But there were actually decent, well-designed, practical languages around even in the mid-1980's--there was no need ever to use Ada or Eiffel.

    8. Re:language developers disconnected from reality by Anonymous Coward · · Score: 1, Interesting
      Any benefits of C's for loop construct are entirely coincidental; it has the form it has solely because it's trivial to translate to machine code.
      for (initialisation, condition, increment) {
      body
      }
      just becomes
      initialisation
      .LOOP
      CMP condition
      BZ .END
      body
      increment
      JMP .LOOP
      .END
      As for convenience when iterating over a linked list - I have to say, personally I think
      for each x in container {
      use x
      }
      is considerably easier to read than
      for (x = container; x != NULL; x = x->next) {
      use *x
      }
    9. Re:language developers disconnected from reality by Anonymous Coward · · Score: 0

      I'm sure you meant to write "for (i = 10; i <= 100; i++)"

      I suspect he did but didn't escape the less-than and it got misinterpreted as HTML.

    10. Re:language developers disconnected from reality by crgrace · · Score: 1

      I'm very interested. What language do you think is good for today? Python? I mostly program in C, VHDL, and MATLAB but I'd like to learn a new general purpose language.

    11. Re:language developers disconnected from reality by Anonymous Coward · · Score: 0

      And misinterpreting as HTML changes "i" to "x" how, exactly?

    12. Re:language developers disconnected from reality by tim256 · · Score: 1

      I think the reason Ada didn't catch on is because it doesn't come with a good supporting API and although Ada is a very safe language it does require a lot of extra typing and does not have the memory management/system programming facilities like C/C++. Although, Ada did have a big influence on Oracle's PL/SQL, and it's used by the US DoD a lot.

    13. Re:language developers disconnected from reality by jeif1k · · Score: 3, Informative

      If you want a quick and simple answer, you can't go wrong learning Python and/or C#: they are good, useful compromises between language design and practicality and if you do anything with computers, you'll probably find a use for them at some point. And they support and teach what are generally considered good mainstream programming practices. (Python has excellent numerical support, by the way, and may be a reasonable alternative to MATLAB if you don't depend on toolboxes that aren't available for Python yet.)

      It is perfectly fine, though, to stick with C and MATLAB as long as they work for you; programming languages are a means to an end, and everybody's needs are different. I was using MATLAB for many years even though I thought the language sucked, and I stopped using it only when the language actually started getting in the way too much.

    14. Re:language developers disconnected from reality by HiThere · · Score: 1

      Excuse me, but C? Memory management?

      Ada has much better memory management techniques than C, and it has a thoroughly documented API...which was a part of the problem.

      When Ada was released it's documentation was something like 10 times as much as C++ had. C++ is larger Ada's NOW, and Ada hasn't changed. (Partially this is because C++ originally had poor documentation, and partially it's because the C++ specs repeatedly needed to be expanded.

      C++ caught on for the very simple reason that you could write C code and compile it with a C++ compiler, and claim you were writing C++. Then you could slowly start adding C++ isims, like constant instead of #define, or comments starting with //.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    15. Re:language developers disconnected from reality by poot_rootbeer · · Score: 1

      they didn't focus on providing elements like DB connectivity or GUI frameworks as standard

      Hmm, sounds like maybe they didn't understand application domains all that well, after all.

    16. Re:language developers disconnected from reality by Anonymous Coward · · Score: 0

      The for construct is not one of C's good points. Like most features of C, it is that way probably because that was the easiest way K&R could think of implementing it at the time. BCPL had proper for loops. The C version is not really a structured statement, since almost anything can (and often does) go into each of the three sections inside the parentheses. That has two consequences: first, a lot of errors occur in the declaration of C for loops, and, second, it is difficult to optimize a C for loop, because the compiler has a hard time knowing what you're trying to do. Therefore an Algol-style for loop (as in Ada, Pascal, etc.), which restricts what you can put in the statement to ordinal values is better, both for the programmer and for the compiler. Better still is foreach. Foreach is as efficient (even if not optimized) as any for loop you can write, is clear in its meaning (both to the human reader and to the compiler) and is guaranteed not to produce a typical for loop error (such as buffer overflow).

    17. Re:language developers disconnected from reality by Anonymous Coward · · Score: 0

      Ada is... unnecessarily cumbersome, unnecessarily hard to implement, and fails to make good safety guarantees.


      The same can be said of C++, the dominant systems programming language of today. Indeed, if anything, C++ is even more difficult to implement, and quite certainly makes even fewer safety guarantees. Still, C++ does work. I don't think its a coincidence that the more software is written in C++ rather than C, the less it crashes...

      ...and there's not much in the world that matches Java for disproportion of bloat to actual utility, though Perl comes close, since it has more grammar rules than you can shake a stick at, but is still just a text-processing script utility, and it is somewhat sucky even at that, as anyone who has grappled with its unicode support will know.

      But there were actually decent, well-designed, practical languages around even in the mid-1980's--there was no need ever to use Ada or Eiffel.

      Yes, Modula-2. In fact, Modula-2 is still better than most of the languages out there. Delphi programmers know I'm right, because Delphi and Modula-2 are almost the same language.


    18. Re:language developers disconnected from reality by Anonymous Coward · · Score: 0

      Unlike Ada or Eiffel, which have never in their entire history been a reasonable solution to anything
      [snip]
      Actually, the primary U.S. Army artillery fire control system is written in Ada.

      (I totally agree with all your comments especially regarding Lisp et al., but there actually is a quite important piece of software in operation today written in Ada).
    19. Re:language developers disconnected from reality by Anonymous Coward · · Score: 0

      The same can be said of C++, the dominant systems programming language of today.

      Yes. ...and there's not much in the world that matches Java for disproportion of bloat to actual utility,

      Yes.

      Yes, Modula-2. In fact, Modula-2 is still better than most of the languages out there.

      I was thinking Modula-3.

    20. Re:language developers disconnected from reality by jeif1k · · Score: 1

      Actually, the primary U.S. Army artillery fire control system is written in Ada.

      If you throw enough money at it, you can write anything in almost any language. People managed to do this in Ada, but that doesn't mean that Ada was a "reasonable" choice. Depending on their requirements, I would argue that there were almost certainly simpler, cheaper, and better-supported options than Ada.

      (Mind you, I don't think everything in Ada is bad; the language is a bit safer than C++, but Ada really does look like Pascal's $5000 toilet seat.)

    21. Re:language developers disconnected from reality by Black+Parrot · · Score: 2, Insightful


      > When Ada was released it's documentation was something like 10 times as much as C++ had. C++ is larger Ada's NOW, and Ada hasn't changed. (Partially this is because C++ originally had poor documentation, and partially it's because the C++ specs repeatedly needed to be expanded.

      Ironically (in the popular sense of the word), one of the reasons often cited as a reason to use C++ over Ada now ("Ada doesn't have standard class libraries") is the same reason often cited for not using Ada when it first came out ("there's way too much stuff in this language").

      --
      Sheesh, evil *and* a jerk. -- Jade
    22. Re: language developers disconnected from reality by Black+Parrot · · Score: 1


      > Your complaints about C are uninformed

      And you are a good illustration of the fact that the most vehement complaints about Ada come from the people who know the least about it.

      > Unlike Ada or Eiffel, which have never in their entire history been a reasonable solution to anything

      Hope you're just trolling, 'cause otherwise you're making one heck of a fool of yourself.

      --
      Sheesh, evil *and* a jerk. -- Jade
    23. Re:language developers disconnected from reality by Anonymous Coward · · Score: 0
      If you throw enough money at it, you can write anything in almost any language. People managed to do this in Ada, but that doesn't mean that Ada was a "reasonable" choice. Depending on their requirements, I would argue that there were almost certainly simpler, cheaper, and better-supported options than Ada.

      (Mind you, I don't think everything in Ada is bad; the language is a bit safer than C++, but Ada really does look like Pascal's $5000 toilet seat.)
      No doubt; again I'm in agreement with you. I was just pointing out that there is a real, large, critical system written in Ada, it's not just vapor. No matter how horrible the task was or the code is.

      (Just to give you an idea of how advanced this software is...it interfaces with Air Force traffic control systems and calculates firing solutions to avoid friendly flight trajectories in real time; i.e. preventing friendly fire even as the weapon commanders are pressing their buttons).
    24. Re:language developers disconnected from reality by Nevyn · · Score: 1
      C's for loop construct is one of its good points

      In your opinion, I write a lot of C and never write for() directly ... most of the "for loops" in linux actually look like "foo_foreach(head, p) {".

      for (ptr = head; ptr != NULL; ptr = ptr->next)
      {}

      And then someone adds free(ptr); at the end of the loop (which is three pages down) ... and once a month everything goes to hell (and it takes man months, at least, to fix it). Compare this to the "obvious" while() code...

      ptr = head;
      while (ptr)
      {
      /* code */
      ptr = ptr->next;
      }

      ...which is then changed and is much easier to spot (the ptr change is near the last usage), and can easily be changed to...

      ptr = head;
      while (ptr)
      {
      Foo *ptr_next = ptr->next;
      /* code */
      free(ptr);
      ptr = ptr_next;
      }

      ...and let's not forget someone putting a "continue" in, without checking what the for() loop does automatically.

      --
      ustr: Managed string API with ave. 44% overhead over strdup(), for 0-20B
  20. The Java vocational training quote rings true by betelgeuse68 · · Score: 5, Insightful

    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

    1. Re:The Java vocational training quote rings true by nagora · · Score: 1
      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 based on qualifications and instead just wrote a short exam paper to see which applicants really did know some computer science. Degrees are just junk bonds now.

      If you don't need to be a math major then don't be one. But don't stand around saying it doesn't matter if no one is anymore because every course is aimed at people that feel like you. It does matter because that path leads to stagnation. The world needs Java programmers, sure, but it also needs people that understand computer science and can go on to advance the subject for the rest of us and future generations. A Micky Mouse degree course will not provide that.

      Now I'm ranting.

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
    2. Re:The Java vocational training quote rings true by Magnusite · · Score: 1
      Rant on my brother, Rant on.

      I have been noticing for some time that the level of knowledge required by CS degrees has been dropping. But this is not just a matter of devaluation of all degrees, CS programs everywhere lowered the level of educational requirements when the ".com" revolution was occurring in the late 1990s. Colleges saw the opportunity to bring in large new revenue streams from corporate "sponsors" and new (naive) enrollments who wanted to get rich overnight.

      My newest rant is the number of "night course" programs that have popped up recently to teach *everyone* how to "learn to be a computer technician and make lots of money" in "just six months". I have worked around these people, and usually, I get picked by management to "help" them with their code problems. Don't get me started on what I found there.

      Alright already, enough curmudgeoning...

      Constructive advice to new CS students:

      Don't take the easy classes, take the hard ones. If given as an elective the choice between "Object Oriented Workshop" and "Theory of Compiler Design", guess which you should sign up for? And you won't have any trouble finding a seat!

      Computer science is more tightly wound up with mathematics that almost *any* other course of study. (The exception being of course, mathematics). Don't just stop at the math you are given, read up on math that you see being used in engineering as well.

      Many CS degree programs have physics as a requirement for graduation. Don't wait until the end of your coursework to take it. It may not help you pass "Java 101", but you'll have a better understanding of scientific programming when you get into the later CS courses.

      Check out the CS section at the college library! Not only will you find a wealth of material to answer your questions, you will find *lots* more to give you entirely *new* questions. The difference between a college library CS section and the Barnes & Noble CS section is beyond credulity.

      Ok, ok, end rant.

      Moderators - Please mod parent up

    3. Re:The Java vocational training quote rings true by The+Desert+Palooka · · Score: 1

      I would def agree... Degrees are becoming quickly devalued... More about training tools than developing intellegence. This is esp true in CS and Graphic Design degrees... More and more I'm finding out that a lot of school are focusing more on the tools of the trade, and less on the things that drive those tools; the theory of it all. Which is why I came back to school.

      It's really really sad when my minor in CS has A) Taught me more about *why* we do certain things in my profession of the last eight years than all the degree holding people I've worked with and for and B) That the core classes I as a minor must take may actually contain more theory and science than many CS majors in the world right now...

      So far we haven't touched Java, have covered Assembly (then built an assembler, and then a compiler), touched on Algorithm analysis (there's an entire class for it if you'd like), Datastructures, and will be going into Discrete Math, and the deeper things of OSes, Languages and datastructures in the future... Then again, maybe this isn't the science many speak of, and I'm clueless... *doh*

      We're seeing this in Graphic Design right now too... Because of all the cheap tools and computers there's these Mickey Mouse programs like "New Media" and what not that seem to concentrate more on a specific set of programs than the creativity and good form behind them. So far I've been impressed that my art school forces everyone including Photo Majors to spend a year in Drawing, Color Theory, Design Theory, and 3D Design (think sculptures) as well as a base of Art History. From there the majors start working their specifics. In Visual Communication (graphic design) the last year or so of the program is even medium non-specific. Really what ever solves the problem for the customer you can use - they want us to use the base tools and knowlege to execute the best plan possible, not jam the problem into our Java box, or rather in this case our Dreamweaver box.

      This is something I feel should be emphasised in CS programs, and Knuth had absolutely right. Teach the theory of something, the why and what for and then all the tool make sense and can be used to their best possible end. I'm scared we're losing that, and I too fear for the masters, and phd programs as a result - Even they're starting to look vocational. *sigh*

      Ok, now I'm ranting too.. haha..

    4. Re:The Java vocational training quote rings true by otis+wildflower · · Score: 1

      The world needs Java programmers, sure, but it also needs people that understand computer science and can go on to advance the subject for the rest of us and future generations.

      Guess who the real world needs more of?

    5. Re:The Java vocational training quote rings true by The+Desert+Palooka · · Score: 2, Insightful

      Guess who the real world needs more of?

      People who know what their doing, and why, instead of, as I said in my post, shoving everything in their Java Box.

      Java isn't always the best solution, or even possible, on every platform.

      Actually you can say that about every language... But there is one thing that is always true, on every platform, and that's the theories of Computer Science.

    6. Re:The Java vocational training quote rings true by nagora · · Score: 1
      Guess who the real world needs more of?

      My point was that the current system assumes that there is no need for the scientist at all. That's not true, even though it is a smaller need than programmers (in whatever languages).

      Undergraduate courses are not the place for vocational training no matter how good the stats look for the government.

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
    7. Re:The Java vocational training quote rings true by otis+wildflower · · Score: 2, Insightful

      But there is one thing that is always true, on every platform, and that's the theories of Computer Science.

      However, to be quite honest, they relate very little to the needs of most mundane business IT requirements. Or, rather, the ones that do are pretty much handled by the first two years of a decent undergrad CS program. Everything beyond that is really only applied in software businesses (like Google, iD, MSFT, etc) rather than the majority of corps that are software consumers (Home Depot, DaimlerChrysler, etc..) Let's face it, a CS grad would come out of a good program looking to build stuff in all her favorite languages and paradigms, but lo and behold, there's legacy code, greybeards who swear by C, managers demanding that you code to standards so new hires can read your stuff.... All the things that didn't matter really back in the academy but are cruelly part of computing in private industry.

      Most modern IT is building software that incorporates business practices and logic, or glues disparate systems together. In the real world you need a limited number of designers (who needn't be CS PhDs) to build a coherent design, and a bunch of codemonkeys to build, document, test, debug, wash, rinse, repeat.

      The reality of corporate computing in most real-world applications (where IT and software development are a cost center not a revenue generator) is undoubtedly dull and boring to enthusiastic CS grads. As it is, the US really doesn't have much in the way of an analogue to German 'meister' vocational programs, excepting in guilded apprentice trades (like plumbing, carpentry, etc), that get much in the way of respect..

    8. Re:The Java vocational training quote rings true by otis+wildflower · · Score: 2, Interesting

      Undergraduate courses are not the place for vocational training no matter how good the stats look for the government.

      OK then, what is?

      The US doesn't have a German-style 'meister' crafts system for coding or other IT functions. BA in CS is as close as it gets, or you could go for an EE degree to swap Sun FRUs and be completely stupid overkill.

      You have a point in that undergrads are not the place for vocational training, but my response is that we really don't have any current workable alternative that has the interview-respect of a guild-style system or a meister system.

      If your goal is to build CS into a taller ivory tower, fine, but not until there's a legitimate alternative that can give people, say, two years of all the theory that's going to be used in the real world today and a couple years of practicum (building infrastructure, doing documentation, coding, internship) that will garner some form of vocational accreditation that people will accept.

      Frankly, for most of the work I do (sysadmin hardware/software, networks, etc) I would rather have someone who had 2 years in CS foundations and 2+ years doing labs with 'standard' stuff like Solaris, Linux, VxVM/VCS, EMC gear, etc. from a legit institution than a newly-minted BSCS or BSEE.

    9. Re:The Java vocational training quote rings true by nagora · · Score: 3, Interesting
      Let's face it, a CS grad would come out of a good program looking to build stuff in all her favorite languages and paradigms, but lo and behold, there's legacy code, greybeards who swear by C, managers demanding that you code to standards so new hires can read your stuff.... All the things that didn't matter really back in the academy but are cruelly part of computing in private industry.

      But that's not a "good" program, that's a bad one. A good program would teach algorithms, design, and team working and at least three languages, one of which should be Lisp, just because it lets them know there are other paradigms out there. That will teach flexibility and allow students to cope with legacy and oddball systems. Learning Java is simply not good enough. Indeed, I would say that learning C and Smalltalk would give anyone the tools to walk into a Java post with a week's notice, and many other posts too.

      Get them all doing assembler, that what I say. Assemble some sense into 'em!

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
    10. Re:The Java vocational training quote rings true by The+Desert+Palooka · · Score: 1

      I agree very much with your statements... While I fear there'll be a lack of theory taught I also know there's a lack of structured, team based, professional practice classes. A program needs both. In art the first two or so years are all the basics, making us a good artist, and creator, then the next two years are integrating those theory concepts into professional practice with real client, and also developing our ability to research.

      I think there's a disconnect somewhere in many CS programs... It's like they want to teach you the flavor of the month languages, but then don't teach you the why and what for... Or how to appropriately work towards a common goal with a team. Or maybe they teach all of these things but don't bring it all together into application, leaving many in their first jobs feeling that theory is crap and useless, or that school is was a waste of time...

      I guess what I'm saying is, you need team classes, you need theory, and you need technology classes (languages, programs)... (I'd say technology last as that's going to change the quickest and the most often) But you can't just toss the classes out there and expect that students are going to put it all together on a consistent basis, it needs to be brought together, tightly bonded for maximum results.

      Make the classes block classes so you have the same people in each class, work as a team moving from subject to subject, teach the team theory, teach them team management skills, and let them apply all this towards real world goals as well as concept exercises. Make sure the teachers from whatever semester/year they teach are in very good communication with the other teachers from that year/semester so they all know what is being taught and can hook into it in their respective classes.

      I'm finding a lot of theory classes are very useful in the Real World because I'm stepping away from my career to study, but I hear other CS students saying things like "Why do we need to do this?" I'd say to some degree it's a failure of CS programs that they don't show you why things are important, you know, show them in application at various corps and institutions. MBA programs do this with Case Studies and what not, why not CS to some degree?

    11. Re:The Java vocational training quote rings true by The+Desert+Palooka · · Score: 2, Interesting

      Frankly, for most of the work I do (sysadmin hardware/software, networks, etc) I would rather have someone who had 2 years in CS foundations and 2+ years doing labs with 'standard' stuff like Solaris, Linux, VxVM/VCS, EMC gear, etc. from a legit institution than a newly-minted BSCS or BSEE.

      Actually there's programs that address this need now. At the institution I'm at it's called "Computer Technology" and it focuses on application, and existing and emerging technologies. It's lighter on math, lighter on theory, and heavy on applications and administration. Truthfully it could be replaced by a mentoring program, or just some good work experience.

      The CS program on the other hand, is pretty much the opposite... It's more science heavy, and math heavy (two classes from a minor in math), and less about applications (though you can use those as electives... well, a few, most don't count for credit in CS).

      It's interesting to see all these vocational style programs popping up in academia... But I'm fearing that there's starting to be misconceptions about what a degree means and what a university education means... Personally I never thought it meant being taught Visio or Dreamweaver MX 2004.

      I hope that we can have an Apprentence, Journeyman, Master type thing for more grunt-like work where the why doesn't matter in the near future... But while we don't have that I hope that we don't destroy our research and academic infastructure in CS trying to accomodate a lack of good job training, or just a lack of good Techology Associate Degree programs.

    12. Re:The Java vocational training quote rings true by GryMor · · Score: 1

      3 is often not enough, though it differs from person to person, I went through, Basic, C, MUDDLE, x86 assembler, Pascal, C++, VAX assembler, Smalltalk, Fortran, Lisp, Moterolla assembler, ML, Scheme, Icon, Java and several toy/experimental languages in my climb up the mountain. It wasn't untill ML that I managed to well and truely disassociate the particular language from the concepts and thought models it was being used to demonstrate and apply then to working in any of the languages.

      Of course, then came the all consuming Perl, my little darling language that everything seems to flow more easily into.

      --
      Realities just a bunch of bits.
    13. Re:The Java vocational training quote rings true by Anonymous Coward · · Score: 0

      > Frankly, we've hit a point where there's a lot less "science" in Computer Science

      Oh nonsense. Some of the best research into type theory is being done these days in CS, it's finding real application in computer languages, and much of it is being taught to undergrads. Maybe the division between vocational and science is broadening, but there's certainly room for both.

    14. Re:The Java vocational training quote rings true by nagora · · Score: 1
      You mean you haven't used FORTH!?!

      It's hard to put a lot of languages into one course; I think 3 high-level and an assembler language is as much as I would want to pack into a degree. The important part is to take them from different families, rather than get hung up on the simple size of the language count.

      TWW

      --
      "Encyclopedia" is to "Wikipedia" what "Library" is to "Some people at a bus stop"
    15. Re:The Java vocational training quote rings true by Anonymous Coward · · Score: 0

      This sounds like one of the best ideas I've come across for CS programs. Based on all the talk I'm reading here it seems I was somewhat fortunate in my program as it focused very little on current technology and mostly on theory and math. Java was an elective.

      Unfortunately, as students nearing graduation we began to realize most hiring companies didnt care much (if at all) about all the theory we knew. They wanted us to know current technology and have proven/demonstrable skills. They didnt have the time or care to invest the money in training us. They needed us to be productive right out of the box. (Unless of course you went to work for a mega-corp who could afford to train you.) They didnt care if we could discuss in low-level detail varying memory management techniques.

      Where my program suffered was in the area of professor communication and quality instruction sometimes. Most classes seemed to have little connection with one another. The material didnt translate from one class to the next. To my great annoyance oftentimes classes were teaching some of the same material. All the math we were forced to take didnt seem to ever show up in the CS classes. A lot of professors didnt really care too much (see research, tenure) and would just read PowerPoint slides to us that were just selected bits copied out of the textbook. Also, we often couldnt understand why it was worth learning a bunch of theory nonsense. It was extremely rare if a professor ever tied any of the theory to real-world situations and examples.

      I was able to see the value in case studies (such as in business programs as you mentioned) when I finished my CS undergrad and enrolled in a MIS grad program. I was tired of the theory and I wanted to understand more of the business end and how it related to the technical world. I also wanted to expand my career path options and not be pigeonholed into a cube-living-code-monkey job for the next 20 years. This proved well as it provided me with alot of teamwork experience and an actual two semester project in the real world with a local company where we had to apply project mgmt and system development experience (all the way to writing the code). This proved invaluable for me. I also derived great humor from listening to classmates from a far easier MIS background complain about "tough" classes.

      All this and more is why I strongly agree with you. I would only add that CS programs should put greater emphasis on having at least one summer internship before graduation. They need to coordinate with various local and national companies in order to place students in internships. It should probably be mandatory for a degree. This will give the student some actual real-world skills so they dont have to worry about adding another elective like Java on top of their already full schedule. They also should expand to a 5 year program. Too many CS programs are only 4 year programs. This often forces students to cram too much material into their semesters. The result is that the student doesnt care as much about actually learning as they do just passing the class. Just get the grade and move on.

    16. Re:The Java vocational training quote rings true by kaedemichi255 · · Score: 1

      Being a second semester 4th year Computer Science student at UC Berkeley, I always cringe at the sight of the mention of the "devaluation" of Computer Science degrees. Without trying to stray from sounding elitism, I think a lot of this hype about the dime-a-dozen "programming" (another term I hate) degrees is due to changing market forces and lower-tiered educational institutions. As technology improves, more and more individuals are empowered to utilize the newer tools to do more powerful things. This makes the ITT/DeVry credited student just as valuable (on a superficial level) to a corporation as a graduate from one of the top 4 CS schools (UC Berkeley, Stanford, CMU, MIT). Personally, I think the best way to distinguish yourself from being a cookie-cutter CS student is to take on the harder things. In the beginning of my curriculum, I too was victim to the phobia of "hard theory" and instead took as many application courses as possible (ie. graphics, databases, AI). Lucky for me, almost all of UC Berkeley's CS courses are heavily theoretical and less about teaching you how to become a Java guru. But looking back, I do regret not having attempted to take the "hardcore" CS courses, especially on CS theory. Ultimately, it is a form of self-improvement, regardless of it's pragmatic value. Plus, it makes you feel good about yourself and sets you apart from your co-workers who know every language under the sun, but don't understand much about the science behind Computer Science.

    17. Re:The Java vocational training quote rings true by Kalani · · Score: 1

      I agree, and I'd go as far as to say that those three languages ought to be functional Scheme (or Haskell), C, and Prolog. These represent the most common models of real-world problems.

      I think that a great kind of tour de force CS project would be to implement in C (or C++) a parser generator, which is used to generate an SQL parser, from which the generated syntax trees are processed by an embedded Scheme interpreter to transform them into tiny Scheme programs which make the necessary queries against a Prolog database, which finishes the job of implementing a little relational database system.

      I'm considering creating a little CS program for high school kids based on this project.

      --
      ___
      The ends are ape-chosen, only the means are man's. -- Aldous Huxley
    18. Re:The Java vocational training quote rings true by otis+wildflower · · Score: 1

      But while we don't have that I hope that we don't destroy our research and academic infastructure in CS trying to accomodate a lack of good job training, or just a lack of good Techology Associate Degree programs.

      I figure in the short-to-medium term, the answer will be "bone up on your GREs".

    19. Re:The Java vocational training quote rings true by Poeir · · Score: 1

      As an Iowa State undergraduate in computer science and computer engineering, these discussions always surprise me. The computer engineering program requires C, C++, MIPS assembly, and Verilog (for implementing a pipelined processor). The computer science program requires C++, MIPS assembly, Verilog (for implementing simple gates), and Scheme. Several courses assume you know Java, even though it's not a prerequisite. Along the way I've also dabbled in Perl, but that was purely recreational and I find I didn't prefer it compared to the above languages. At any rate, there are programs out there that barely pay attention to Java in favor of other languages.

      --
      Sigs are like bumper stickers.
  21. None of the above. by TapeCutter · · Score: 4, Funny

    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.

    --
    And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    1. Re:None of the above. by Anonymous Coward · · Score: 0

      Viva - two syllables, Spanish

      Vive - one syllable, French

      Vive la différence

      (Posted from the foothills of the Jura mountains)

    2. Re:None of the above. by Raffaello · · Score: 1

      Just to pick nits, final vowels in french words are actually pronounced but almost swallowed. To the english speaker's ear "vive" sounds as if it vere "veev" but it is actually closer to "VEEVe" - where caps indicate louder sounds.

      So there is actually a second syllable in "vive" - it's just very subtle.

    3. Re:None of the above. by TapeCutter · · Score: 1

      Thank you to all the cunning linguists. As another post pointed out you have to almost swallow the words. The sentiment somehow just doesn't roll off the tounge in English.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    4. Re:None of the above. by Anonymous Coward · · Score: 0

      Ever try to find a cylindrical slide rule? I haven't run across one in any antique shop I've looked in.

    5. Re:None of the above. by Anonymous Coward · · Score: 0
      > ...lamingtons...

      Ha! An Australian!

    6. Re:None of the above. by Anonymous Coward · · Score: 0

      Twat

    7. Re:None of the above. by TapeCutter · · Score: 1

      Onya m8.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
  22. Hilarious. Classic by Anonymous Coward · · Score: 0

    Best satire on the uninitiated CS newbies I have read. It is obvious that the author has a grunge with these newbies' existence in the Ivory League schools --- himself probably being a staff or senior there, or has encountered such persons during conference or at the workplace. A very lucid probe of the post-tech-bubble-era game-playing wanting-to-make-it-big-without-the-out-of-date-the ories young-CS-punk mindset.

    In any case, do write more!

  23. Perl by Anonymous Coward · · Score: 4, Informative
    '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, Amazon, Ticketmaster and even increasingly Google 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.

  24. I must protest by Pan+T.+Hose · · Score: 2, Insightful

    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 yesterday, now would I? I have already spent man-months learning the language that is not even fully designed yet, so I would appreciate if you kindly exclude me--and most of Slashdotters--from your hasty generalization, for even though 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, or otherwise we wouldn't be so enthusiastically discussing the possibility of designing a Heraclitean programming language with its roots in the philosophy of ancient Greece--which nota bene would be an interesting addition to postmodern languages we already have. But even though I disagree with your premiss, I fully agree with your conclusion that Java and C# are rubbish, that of course is undeniable. But this conclusion by itself is quite useless unless we answer the question why they are the way they are. Why does the competence of your proverbial marketing department is nearly without exception reversely proportional to the technical advantages of the technology in question? When we answer this question, a lot of other answers will become clear.

    --
    Sincerely,
    Pan Tarhei Hosé, PhD.
    "Homo sum et cogito ergo odi profanum vulgus et libido."
    1. Re:I must protest by kfg · · Score: 3, Funny

      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

    2. Re:I must protest by MosesJones · · Score: 1

      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.

      --
      An Eye for an Eye will make the whole world blind - Gandhi
    3. Re:I must protest by Perl-Pusher · · Score: 1

      The Dodge Cavalier is not rubbish, because it doesn't exist. But the Chevy Cavalier was real crap.

    4. Re:I must protest by MosesJones · · Score: 1

      Apologies, I'm in the UK and I couldn't remember the brand. The other option was the uber-rubbish Pontiac Grand-Am the other car that I always get dumped with by rental companies.

      --
      An Eye for an Eye will make the whole world blind - Gandhi
    5. Re:I must protest by MrResistor · · Score: 1

      Why does the competence of your proverbial marketing department is nearly without exception reversely proportional to the technical advantages of the technology in question?

      The term is "inversely proportional", but aside from that, this is really a very simple question to answer: there is only so much money in the budget, and it costs money to get good people. Either that money gets spent on getting good technical people, or it gets spent on getting good marketers.

      It's much like how a man's body only contains enough blood to properly use one head at any given time.

      Anyway, which is chosen depends mostly on the background of the person making the decision. Which group is more likely to rise to positions of decision-making power I will leave as an excercise.

      --
      Under capitalism man exploits man. Under communism it's the other way around.
    6. Re:I must protest by Anonymous Coward · · Score: 0

      It's much like how a man's body only contains enough blood to properly use one head at any given time.

      Anyway, which is chosen depends mostly on the background of the person making the decision.


      I tend to choose my big head when programming and my little head when browsing pr0n. How about you?

  25. Re:Ins't he the one ... by Anonymous Coward · · Score: 1, Funny

    the one the little girl was playing like with a video game (first geeky girl I saw... frightening)...

    I find scary that:

    1. You talk of her as if she wasn't a fiction character.

    2. In Jurassic Park, with all those dinosaurs around, you found the little girl frightening.

  26. Minor quibble by pjt33 · · Score: 1

    Nelson Mandela isn't from the Congo.

    1. Re:Minor quibble by erhnamdjim · · Score: 1

      Neither is Ubuntu

      --
      Specialisation is for insects
  27. Lots of good quotes. by MattRog · · Score: 4, Insightful

    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.
    --

    Thanks,
    --
    Matt
    1. Re:Lots of good quotes. by sapped · · Score: 2, Insightful

      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 still read the file correctly and will simply ignore any tags that it doesn't recognise. The new version will obviously be able to read the full file. That ability alone makes it worthwhile to use for me.

      In the past I had to version number my data storage and provide conversion tools back and forth so that my customers could upgrade and degrade the files gracefully.

      Now, obviously, I could have implemented such an idea myself, but we now have XML parsers and viewers all over the place, so much of the hard work is done for me already.

    2. Re:Lots of good quotes. by 21mhz · · Score: 1

      No technical intrinsic merits push XML over some other format

      Name one, please.

      --
      My exception safety is -fno-exceptions.
    3. Re:Lots of good quotes. by cogitolv · · Score: 2, Insightful

      I'll go a little further with this pop-culture thing. There is a law of software development that states: any technology that takes more smarts or attention than is available to the programmer, that programmer will classify it as 'stupid' and will claim it as only a product of good marketing or a mass duping of a large group of gullable people (pop culture). Alan's point is there are many in the field that don't have the background or intellectual rigor to understand what good programming languages provide, thus [my interp] those people will label those languages or features as 'stupid' or unuseful. I'm worried that your opinions of HTML and XML fall into this category. So, sir, you may be in that pop culture that Alan complains about. The only way to be sure you are not is to provide some good arguments supporting you position.

      --
      Well, sometimes you eat the bear, sometimes the bear eats you.
    4. Re:Lots of good quotes. by Anonymous Coward · · Score: 0

      S-expressions. There's a 1-to-1 mapping, and the S-expression is less verbose. Just as easy to parse. Only "technical" distinction is that the end-tag doesn't re-state the start-tag, so some errors won't be as obvious.

      SGML is another format. No, XML is not quite SGML. SGML does not depend on angle brackets; you can use a different concrete syntax. However, SGML is far more complex than XML.

    5. Re:Lots of good quotes. by Abcd1234 · · Score: 1

      S-expressions. There's a 1-to-1 mapping, and the S-expression is less verbose. Just as easy to parse. Only "technical" distinction is that the end-tag doesn't re-state the start-tag, so some errors won't be as obvious.

      Wait, so it's just as hard to parse, has the same expressive power, and certain classes of errors are *harder* to track down. And it's only advantage is that it's less verbose, in a day when memory, processing power, and bandwidth continue to increase. Okay...

      SGML is another format. No, XML is not quite SGML. SGML does not depend on angle brackets; you can use a different concrete syntax. However, SGML is far more complex than XML.

      So this is *worse* than XML...

      I think you maybe missed the point of the grandparent's request...

    6. Re:Lots of good quotes. by ta_relax · · Score: 1

      " ...it started spreading Basic around just because it was there, not because it had any intrinsic merits whatsoever. .."

      While reading this I have realized that nothing in the real world is there because it has any intrinsic merits in the idealistic sense.
      Things just evolve over time and we humans and especially some intellectuals get surprised why our values did not match with the ones of the nature.

      A funny analogy is socialism, which has noble idealistic goals in theory. In practice it was beaten by evolving capitalism which is theoretically inferior but obviously works ``better" in practice.

      Being there and functioning ``efficiently" is a merit in itself. I am close to getting my PhD and from experience I can tell that many abstract so called merits mean nothing in the real world. Maybe they are not that important merits after all?

    7. Re:Lots of good quotes. by 21mhz · · Score: 1

      Wait, so it's just as hard to parse, has the same expressive power, and certain classes of errors are *harder* to track down.

      It doesn't even have a 1-to-1 mapping, contrary to what the grandparent states, at least not immediately.
      XML has attributes with enforced map-like semantics along with children that can represent lists. And there is a standard and mandatory way to specify character encoding for an XML document. S-expressions seem to be always specified in some externally-imposed character set.

      --
      My exception safety is -fno-exceptions.
  28. Favourite quote by Z0mb1eman · · Score: 3, Funny

    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.
    --
    ClutterMe.com - easiest site creation on the Net. Just click and type.
    1. Re:Favourite quote by kamagurka · · Score: 1

      Actually, it's quite a stupid quote, as the pyramids obviously have enough structural integrity to still be standing today; they're also known to be an amazing feat of engineering (it's still not really known how they did it with the methods and tools available at the time), so the "brute force" comment falls flat, too.

    2. Re:Favourite quote by Anonymous Coward · · Score: 0

      How to build a pyramid: 1) cut block 2) stack block Not that amazing. They did not reinvent the wheel to do it.

    3. Re:Favourite quote by kamagurka · · Score: 1

      Yes. Way to disqualify yourself as having absolutely no clue. Lucky you clicked the "Post Anonymously" box, eh?

    4. Re:Favourite quote by francisew · · Score: 0


      That's a cute one.

      I wish I didn't think it true.


      Proceedural, object-oriented, and self-learning (AI style) code all tend to feed on bloat.


      QUESTION: Is it really true that a reasonably useful piece of software must be so complex as to encapsulate functions in dozens of architectural layers, which the end-developer usually knows little of? Are the problems we face truly so complex that we can't contain them entirely in our minds? Must everything be broken down and solved as piecemeal problems?



    5. Re:Favourite quote by igny · · Score: 1

      like an Egyptian pyramid

      Let us hope it is a Babylonian tower.

      --
      In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
    6. Re:Favourite quote by Anonymous Coward · · Score: 0

      > it's still not really known how they did it with the methods and tools available at the time

      Only people who believe that UFO's built them don't know, but it's clearly demonstrated that they hauled the blocks up and around using large ramps made out of dirt and cedar planks. They had to import lots of that cedar from lebanon. The great pyramids are all late-dynasty -- before they had that source of planks, they preferred to build mastabas, which were lower and made out of plain ol bricks.

  29. Minor correction by Anonymous Coward · · Score: 0

    PHP is good for web programming
    Java is good for object manipulation
    C++ is good for GUI
    ADA is good for secure stuff
    Regexp is good for substitutions
    ARM/Assembly is excellent for embedded apps
    Perl: All of the above.

    1. Re:Minor correction by Anonymous Coward · · Score: 0

      perl for embedded apps? HAHAHAHAHAHAHHAHAHAHAHAHHAHAH. yeah, because i need to do so much string processing on my 8051. good luck fitting perl into a 64K flash chip.

  30. memorable quotes ? by TTL0 · · Score: 2, Funny
    '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.

    --
    Sanity is the trademark of a weak mind. -- Mark Harrold
    1. Re: memorable quotes ? by OmniVector · · Score: 1

      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.

      --
      - tristan
    2. Re: memorable quotes ? by otis+wildflower · · Score: 1

      Perl bindings to native toolkits (QT, GTK) work pretty well once you learn them. Perl5 is as OO as a programmer forces herself to be (or not to be).

      Perl isn't a hammer, it's an atomic swiss-army knife that has very very sharp blades for the unwary to gore themselves on.

    3. Re: memorable quotes ? by Anonymous Coward · · Score: 0

      Perl is a swiss-army knife on which all the pointy bits have been opened to various angles and then rusted stuck.

    4. Re: memorable quotes ? by otis+wildflower · · Score: 1

      And Python is one where the blades won't open unless you hold it _just so_...

      (And C is one which you assemble from kit parts, bunging in small ikea shelf pegs to replace the hinge pieces that fell out of a corner of the box it came in..) ;)

    5. 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*
    6. Re: memorable quotes ? by Anonymous Coward · · Score: 0

      Being able to implement the language in itself does not do any good for day-to-day programming. Perl has a very complex, context-dependent syntax you have to parse, and offers a lot of syntactic sugar - unlike lisp that is basically s-expressions.

      I don't know lisp enough to be sure, but i would guess that original lisp can be expressed in a couple of pages of perl. You may also try to implement perl in lisp...

    7. Re: memorable quotes ? by sleepingsquirrel · · Score: 1
      (Non-ANSI, but original) Lisp is a language that is implemented in itself in about half a letter page.
      See also, The Roots of Lisp.
    8. Re: memorable quotes ? by Sique · · Score: 2, Insightful

      Now we are at the point where the good design of Lisp really shines :) You can implement Lisp very easy in every language. This makes Lisp highly portable. Once you get the Lisp-in-Lisp implementation running in any environment (which is easy, because the Lisp-in-Lisp is so short), you can be assured that your Lisp implementation works exactly as all the other Lisp implementations everywhere, because you have only one program that has to be tested for compatibility. All the other Lisp programs you can run inside the Lisp-in-Lisp environment.

      And if you change the Lisp environment (by adding extensions to the language), you will surely implement them in Lisp, and magically they run everywhere you originally got Lisp-in-Lisp running. Differently in Perl, where extensions to the Perl language core are implemented in C, and use hundreds of files which have to be ported to a new system. A compatibility test for Perl has to check lots of features of the underlying system libraries for C, and because from system to system they differ slighty, you have such subtle differences like those documented in FAQ Part 8.

      In comparision a compatibility test for Lisp just checks if the Lisp-in-Lisp is running smoothly. If you get half a page of Lisp running correctly, you get Lisp running correctly. This opens a lot of other possibilities: You can optimize your Lisp interpreter for your system without fear of losing the compatibility to any Lisp code you may get from other people. You can do profiling and selfoptimizing without fearing to stumble at obscure or esoteric features seldom used by anyone, but just a single library you depend on, which in turn creates nearly non trackable Heisenbugs (once you know in which part they occur, you don't know at which data, and once you know the data that triggers the bug, you don't know in which part of your software they occur) with your specially optimized version of Perl.

      All together: The big advantage of Lisp is that it is completely self contained. Quite differently to Perl, which is contained in a somewhat POSIX compliant C based environment.

      --
      .sig: Sique *sigh*
  31. There is hope yet by Anonymous Coward · · Score: 0

    The comment that computers have improved 50,000 times and benchmark performance has improved only 50 times agreed with my experience. When we had feeble machines, we had to be efficient or our stuff wouldn't work. Now, we just write any old thing that works no matter how bloated.

    There is one place where you will find people who can program efficiently C. These would be the people who program things like DSPs and micro-controllers and even the humble PIC. Our college produces such people and they are in high demand. If you want a playground where new and innovative ideas about programming will be welcomed, it would be the embedded world. Given that you can produce any architecture that you want on an FPGA the hardware shouldn't be a barrier to good design.

    I am curious about the Burroughs machine mentioned in the interview. Can anyone give me an overview of it?

    1. Re:There is hope yet by Cmdr+TECO · · Score: 2, Informative
      I am curious about the Burroughs machine mentioned in the interview. Can anyone give me an overview of it?
      a. The Architecture of the Burroughs B5000 - 20 Years Later and Still Ahead of the Times?
      b. Early Descriptor Architectures in Capability-Based Computer Systems (nice book -- great to see it available again)
      --
      echo 33676832766569823265328479713269.8639857989Pq | dc
    2. Re:There is hope yet by SonOfGodfrey · · Score: 1
      >I am curious about the Burroughs machine mentioned in the interview. Can anyone give me an overview of it?

      ClearPath Plus Server Libra Model 580 & 590 Level Epsilon Architecture Support Reference Manual

      Available at http://www.app1.unisys.com/bookstore/

      Yes, it lives!

  32. too easy by UtSupra · · Score: 1

    How Heraclitus would Design a Programming Language

    Err.... I don't know... It's all greek to me!

  33. Mod parent funny (n/t) by Anonymous Coward · · Score: 0

    Mod parent funny!

  34. Nitpick by kamagurka · · Score: 1

    The guy's name was Heraklitos, for Zeus' sake. He was Greek, not Roman.

    1. Re:Nitpick by geoffspear · · Score: 1

      You're wrong. His name contains none of those Roman letters you typed it in.

      --
      Don't blame me; I'm never given mod points.
    2. Re:Nitpick by kamagurka · · Score: 1

      Oh God. I guess I set myself up for that one, didn't I?

    3. Re:Nitpick by cogitolv · · Score: 1

      'Hericlitus' is the correct english transliteration. http://www.iep.utm.edu/h/heraclit.htm I haven't seen the 'Heriklitos' transliteration before. If one want's to nit pick, even the name as it is spelled using Attic Greek letters found in your ancient greek class were actually created in the middle ages, to disambiguate the Greek language as written by Plato, Aristotle, et. al.

      --
      Well, sometimes you eat the bear, sometimes the bear eats you.
    4. Re:Nitpick by nicomachus · · Score: 1

      "Herakleitos" is a little closer (neglecting the facts that you haven't differentiated between eta and epsilon in your transliteration, apart from worries about whether you should be writing that consonant out front when his name, as spelled in the Ionian alphabet, begins with a vowel).

      Nobody who works with this stuff professionally would have any reservations about calling Heraclitus "Heraclitus": it's a Latinization, but well understood. Or would you insist on "Platon", "Aristoteles", "Achilleus", "Alexandros"?

      If you want to be precise in plain ASCII, use TLG Beta Code: H(RA/KLEITOS

    5. Re:Nitpick by nicomachus · · Score: 1

      cogitolv says:

      'Hericlitus' is the correct english transliteration. http://www.iep.utm.edu/h/heraclit.htm

      Well, no: that first `i' corresponds to an alpha. You can use `Herakleitos', Heracleitus', `Heraclitos', `Heraklitos', but not `Heri-' anything. The web page you link is wrong (that page also refers to Pythagoras as `Pythagorus', which to a classicist sounds extraordinarily dumb).

      By the way, the `Attic alphabet' (actually the Ionic alphabet, though it was the standard alphabet in Athens, where they spoke Attic Greek, from 403BCE) is pretty much the same as the alphabet taught in ancient Greek classes and, for that matter, used for modern Greek. The forms of the capital letters are the same as in Plato's time, though the forms used for lower-case letters developed much later. None of this has anything at all to do with `disambiguating' Plato or Aristotle: there's no better example of an Attic Greek writer than Plato. You may be thinking of the accents used in writing ancient Greek. These were introduced by Aristophanes of Byzantium in about 200 BCE as an aid in teaching non-Greeks how to pronounce Greek, and their use eventually became standard; there are some instances where a word can be disambiguated by a choice of accent. None of this, however, was developed in the middle ages. Perhaps you're thinking of all the recopying of older manuscripts from uncials to cursive letters that took place in the late Byzantine empire?

  35. +1 Funny by Anonymous Coward · · Score: 0

    Yoohoo, moderators!

  36. Two Grumpy Old Guys by ajm · · Score: 1, Insightful

    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.

    1. Re:Two Grumpy Old Guys by Anonymous Coward · · Score: 2, Informative

      Kay works a lot on new ideas, many of them being incorporated into Squeak and Croquet. 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 are using Squeak.)

  37. Re:Ins't he the one ... by Anonymous Coward · · Score: 0
    first geeky girl I saw... frightening

    They're the greatest... and so rare.

  38. You IDIOT! by ggvaidya · · Score: 5, Funny

    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).

    1. Re:You IDIOT! by agraupe · · Score: 1
      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?

    2. Re:You IDIOT! by drunkennewfiemidget · · Score: 1

      Would now be a good time to mention that he was joking, and you completely missed the boat on that one? *cough*

    3. Re:You IDIOT! by Anonymous Coward · · Score: 0

      I can't believe that someone took that post seriously. I guess there still are some n00bs hanging around /.

    4. Re:You IDIOT! by Anonymous Coward · · Score: 0

      I can only assume this is a joke, but it's a really, really obscure one.

      Kudos.

    5. Re:You IDIOT! by Aldric · · Score: 1

      I can't work out whether you are being funny or are truely clueless. Please clarify?

    6. Re:You IDIOT! by allanc · · Score: 1

      Would now be a good time to mention that *he* was joking, and you completely missed the boat on *that* one? ;)

      (Read it again)

    7. Re:You IDIOT! by Breakfast+Pants · · Score: 1

      Dude read his again, *he* was joking. Wait, are you joking?

      --

      --

      WHO ATE MY BREAKFAST PANTS?
    8. Re:You IDIOT! by sgt_doom · · Score: 1

      As a past member of the development team (at ancient IBM) created the original markup languages which HTML is a subset of - we PROGRAMMED them in assembler, later ported to C. Last I heard, HTML is still a markup language - not a programming language. Technically ignorant - most definitely.

    9. Re:You IDIOT! by drunkennewfiemidget · · Score: 1

      Maybe he was joking about me joking about him joking about the joke?

    10. Re:You IDIOT! by Anonymous Coward · · Score: 0
      Perl is the language of the future.
      -- Leonard Cohen
    11. Re:You IDIOT! by Anonymous Coward · · Score: 0

      He was definitely joking. Borland inventing C and Microsoft responding with C++? Learn a real programming language like Javascipt? Has to be jokes.

    12. Re:You IDIOT! by Ohreally_factor · · Score: 1

      This dude I know was reading a Perl book. I think it had goat on the cover.

      --
      It's not offtopic, dumbass. It's orthogonal.
    13. Re:You IDIOT! by mizhi · · Score: 1

      Would this be an instance of recursive joking or iterative joking?

      I want to know what the punchline is, but if there's going to be a stack overflow anyway, I might as well not bother.

      --
      Humorless sig goes here.
    14. Re:You IDIOT! by mizhi · · Score: 1

      I almost made it to the second paragraph without laughing.

      Brilliant.

      --
      Humorless sig goes here.
    15. Re:You IDIOT! by gardyloo · · Score: 1

      Perl is the language of the future.

      -- Leonard Cohen
      ...and it always will be?

    16. Re:You IDIOT! by Anonymous Coward · · Score: 0

      This thread is turning into a joke.

    17. Re:You IDIOT! by alienmole · · Score: 1

      If you're worrying about stack overflows because of recursion, you've been using the languages mentioned in this thread too much. Try a language which performs tail-call optimization, like ML, Haskell, Scheme, OCaml, and recurse to your heart's content -- forever, if the power holds out that long!

    18. Re:You IDIOT! by Anonymous Coward · · Score: 0

      Uhhhhh, this post was a joke. There is enough detail in the facts to clearly point to the content being tongue-in-cheek. The person who wrote this was extremely funny. Therefore, I surmise it is you who is the idiot.

    19. Re:You IDIOT! by prophecyslides · · Score: 1

      Dude, jokes on you man. Classic pot calling the kettle black...

    20. Re:You IDIOT! by sgt_doom · · Score: 1

      Of course I take it serious, after all, hasn't the Ive League bestowed upon us the likes of Dick Cheney (regardless of the number of times he flunked college), George Bush and a host of other nimrods. Try naming the number of tech geniuses to have sprouted from such academic environments in the last 15 years???????

    21. Re:You IDIOT! by hisstory+student · · Score: 1

      Oh, hardy har har. This is truly a classic. Oh! my ribs hurt.

      --
      Heard any good sigs lately?
    22. Re:You IDIOT! by minotaurcomputing · · Score: 1

      "Thankfully, the field is being revolutionised by people like Richard Stallman..."

      Oh please, he's the one who invented the GPL (General parasitic license) which gives him ownership of all software even if he didn't write it. It's because of the GPL that Windows keeps getting viruses that send the Windows source code from your computer to hackers systems over the internet using an underground (highly secretive) technique called P2P, which stands for pilferer to pilferer.

      -m

    23. Re:You IDIOT! by AnxiousMoFo · · Score: 1

      Your post, and the parent post, are just so beautiful I could cry. You are the wind beneath my wings.

    24. Re:You IDIOT! by Anonymous Coward · · Score: 0

      YHL

    25. Re:You IDIOT! by Anonymous Coward · · Score: 0

      FYI

    26. Re:You IDIOT! by Anonymous Coward · · Score: 0

      First off, the original poster was JOKING. Secondly, if YOU are joking, then it's pretty lame.

      C was NOT invented by Borland, but by Kernighan & Ritchie at Bell Labs and is a direct decendent of BCPL. C was created circa 1972.

      C++ was NOT invented my Microsoft, but by Bjarne Stroustrup at AT&T. C++ was created circa 1983

      "Revolutionised by people like Richard Stallman"... Stallman's a god-damn freak still trying to live some new-world order Hippie life-style while pushing an a thinly-veiled communist business model (OSS) on the industry.

      I'm not even going to get started on the rest of your rant as I'm still not entirely sure you weren't "joking".

    27. Re:You IDIOT! by Anonymous Coward · · Score: 0

      First off, HTML is a language, but it's just not a programming language. It's a markup language, which is basically used for typesetting.

      Second, If you look closely at the grandparent's article, you may realize that YHBT. Note the false authority that he tries to project: "I'm a first year programming student at an Ivy League school" well, so what. A freshman in college? And due to the competition between Ivy League schools, very few blue blooders would actually say "at an Ivy League school" as much as they would say "at Harvard, at Yale..."

      Further proof of GP's trolling: Visual Basic??? How many stereotypical /.ers have any respect for VB at all?

      OOP != OOPS

      , glasses != classes

      Note the anonymous coward posting??? Although I'm gonna give the GP props. Once you realize this is a troll, it's actually really funny. Especially the "Your feedback is greatly appreciated" at the end of an AC post. That's just brilliant. Hook, line and sinker.

  39. Just ever so slightly negative? by ngtni · · Score: 1

    This guy needs to chill out a bit. The whole article is one long rant about how he believes nothing progressed the way it should have.

    There is even a point where he writes, " I don't spend time complaining about this stuff"... quite funny considering he's just told us "There should be a half-life on software so old software just melts away over 10 or 15 years."

    He even calls users stupid, he uses the word "unsophisticated" to describe the masses! A bit pretentious if you ask me!

    On page 3, the last six paragraphs are basically him repeating over and over "Java sucks... Java sucks... Java sucks...".

    Then he lays into C++... "well-meant idea went wrong"...

    Does Alan Kay see anything of merit in today's world?

    1. Re:Just ever so slightly negative? by Anonymous Coward · · Score: 0

      He has arguments to support his positions. Where are yours?

    2. Re:Just ever so slightly negative? by Anonymous Coward · · Score: 0

      He even calls users stupid, he uses the word "unsophisticated" to describe the masses!

      Hell ya... What holy stone have you been living under... Users suck!

      A bit pretentious if you ask me!

      No, we didn't ask...

    3. Re:Just ever so slightly negative? by kronocide · · Score: 1

      Hell ya... What holy stone have you been living under... Users suck!

      The coolest thing is: tools that don't have users don't need to have uses either. They can just be theoretically impressive. It's teh w1n!

    4. Re:Just ever so slightly negative? by refactored · · Score: 1
      Man you should hear me then. I really think Java sucks. :-))

      I can also pan C++ for an hour or two.

      Nah, he's not negative. Just been around long enough to understand the Dilbert Principle properly. "People are Stupid."

      You, me, Alan Kay, Gosling, Einstein, stupid, stupid, stupid, the lot of them.

  40. My professor on Perl by mi · · Score: 3, Funny

    A "write-only language"...

    --
    In Soviet Washington the swamp drains you.
    1. Re:My professor on Perl by francisew · · Score: 1

      you forgot an important portion of that quote:

      It's a write-once only language.

      Authors of Perl script often have trouble modifying their own code.

    2. Re:My professor on Perl by mi · · Score: 1

      Being a "write-once only" follows from write-only. Because if you can't read, what's written, you can't modify it.

      My quote is more general. It not only accuses Perl (programs) of being unmodifiable, but also of being unreadable.

      --
      In Soviet Washington the swamp drains you.
    3. Re:My professor on Perl by Anonymous Coward · · Score: 0
      A write-only language? No, that's APL, or J.

      The Game of Life:
      life=. (]+.&(3&=)]-[)(+1&|.+_1&|.)("@[.)1

      (stolen from here)

      Prime number generator:
      (2=0+.=T&#8709;.|T)/T&#8592;&#953;N

      (stolen from here ... the HTML entities didn't quite make it through the Slashdcode though...)

      I heard of a magazine code-cracking contest (Byte? DDJ?) where one of the submissions was a 4-line APL decrypter... APL code is also known as "indistinguishable from line noise".
  41. Correction by Anonymous Coward · · Score: 0

    Java is good for object manipulation

    Java is not good for anything.

  42. Egotism in its purest form... by Leadhyena · · Score: 3, Insightful
    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.

    1. Re:Egotism in its purest form... by bighoov · · Score: 2, Insightful

      Maybe the Purdue CS degree is above average. He did say "most", not "all". My sense is that the spirit of his comments are right. Industry expects a certain set of skills for entry level jobs, which unfortunately has lead many real CS programs to shift their focus from science to skills training. Alan Kay has earned his place as a leader in computer science. I'd suggest listening to what he has to say instead of dismissing him as a jackass.

    2. Re:Egotism in its purest form... by Anonymous Coward · · Score: 0

      Egotism in its purest form is you and the other whiners on here sounding off like children with a bruised ego when told by an adult that what they are doing isn't that great.

    3. Re:Egotism in its purest form... by soundofthemoon · · Score: 2, Insightful

      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 breadth of experience. In my career I've programmed in assembly, microcode, Pascal, Smalltalk, C, C++, LISP, HyperTalk, PostScript, Java, PERL, PHP and a bunch of languages most people reading this wouldn't recognize (anyone know Mesa?). I've worked on GUI apps, productivity tools, virtual machines, object persistence, web apps, app frameworks, development tools, etc. etc. I'm not trying to be a braggart here - I'm just saying that from my perspective someone who has spent their whole carreer writing web/database apps in Java is barely competent as a software developer. I'd consider them more of a software technician, which isn't necessarily a bad thing, but it's quite different from having the kind of skills and experience that make one a master in the field. And from Alan Kay's perspective, the view must be much more disappointing.

    4. Re:Egotism in its purest form... by maggard · · Score: 1
      You're right, I don't think you read the article very closely. It is one that deserves that close reading because there are lots of ideas, and opinions in it, many of which are worthy of consideration.

      Your point that Purdue, and other schools, requires classes in specific applications of CS, is part of what Kay is talking about. There seems to be very little discussion, hence education, at undergraduate level, of the more fundamental questions of languages as directives, how they shape thinking, what strategies are implicit in their design.

      As to "every language has it's purpose" true, but it's a legitimate question as to how many meet their purpose, how many do so well, or efficiently, or supportably, or by any other metric. As the article points out there are only a few 'important' languages that have any real impact, much of the rest is variations on themes. Besides Kay isn't talking individual languages so much much as the themes they embody, using them as examples.

      (That the fanboys are coming out in defense of slights to their favorite language, or picking on another, shows just how trivial sound-bite oriented many folks are. Picking those out of the article is akin to the Farside comic What Dogs Hear: "blah blahblah blah Ginger blah blahblah Ginger blahblah blah" but with their own hot-button nouns inserted.)

      As to arrogant, in this article he seemed quite honest, even humble, in recognizing other's insights and his & others missed opportunities. He does keep coming back to SmallTalk because he is an authority on SmallTalk, it is a good example of many of his points, good and bad, and familiar to many readers. He even refers to his opinions as trivial and opines that nobody has done a really good language yet by the terms he's discussing.

      Finally, that he is able to make declarative statements (Xerox not "inventing the GUI") is testament to his having been there, and involved, in these topics for 40 years. His is a first person knowledge of the tropes he talks about over the years is why the interview happened and he & his opinions are being sought. That's not ego, that's being interviewed.

      --
      I don't read ACs: If a post isn't worth so much as a nom de plume to its author then I wont bother either.
    5. Re:Egotism in its purest form... by ratboy666 · · Score: 1

      Leadhyena

      Its easier to "throw something together in no time at all that can access databases, websites, and so forth" in Smalltalk.

      Really. LOOK AT SQUEAK. A web browser is "built-in". Written completely in Smalltalk; standard part of the language. So is an email client. So is sound synthesis, voice synthesis, 3D, standard GUI, multi-threading, networking. Note that Kay does NOT consider Smalltalk good. Maybe "so-so".
      And, if you do a web server in Squeak (I imagine its already there), the "scripting" language you would NATURALLY use would be Smalltalk. Why? its there, and it works. Indeed, Squeak is WRITTEN in Squeak, and translates ITSELF to C to target a new platform.

      Also, he reported that quite a few people thought that undergrad programming ed was becoming vocational: I tend to agree. Implementing a compiler? Not difficult, tuple calculus and normalization? Yes, I consider these things "vocational" if someone has an undergrad degree.

      My questions tend to be more like: "What do you consider the WORST feature of Java, and why?". Or (in a database realm): "Please discuss the importance of idempotent designs in multiuser databases".

      And yes, I /am/ a real jackass.

      Ratboy.

      --
      Just another "Cubible(sic) Joe" 2 17 3061
    6. Re:Egotism in its purest form... by Leadhyena · · Score: 1
      I agree with you that there is a large trend in CS to create a lot of "blue-collar" IT jobs. Heck I'm working a hybrid of one of those jobs myself. And his comment is not off base in that regard. My only concern is that his interview makes him sound more like a whiner than someone with constructive criticism.

      Alan Kay has earned his place as a leader in computer science. I'd suggest listening to what he has to say instead of dismissing him as a jackass.

      One of the most renowned logical fallacies is an appeal to authority, and no matter how smart or famous a person is, that doesn't make the words that come out of his/her mouth legal tender and above question. One must always appeal to reason before authority.

    7. Re:Egotism in its purest form... by stinerman · · Score: 1

      Indeed, Purdue among the best CS/engeering schools in the nation. I might even say it is the best state-sponsored in the Midwest.

      Unfortunately, it seems the more theoretical the classes are, the less real programming is done. In my database class at Wright St. U., we do talk at length concerning theory, but the only programming done is an option of designing a trivial database or simulating hashing performance using C/Java/etc.

      We might have all the theoretical knowledge in the world, but we never actually have to "use" any of it, which will surely hurt on the job market.

    8. Re:Egotism in its purest form... by Anonymous Coward · · Score: 0
      I've been trying to hire software developers lately [....]
      For what, if I may ask? (And where, if it matters.)
    9. Re:Egotism in its purest form... by Anonymous Coward · · Score: 0
      Where are my mod points when I need them?

      (That's a rhetorical question; obviously I lost them for promoting posts like yours.)

    10. Re:Egotism in its purest form... by Anonymous Coward · · Score: 0

      > Maybe I didn't RTFA as thoroughly as most, but this guy comes off as exremely self-centered

      This is Alan Kay. He believes nothing has progressed in the state of the art since the Age Of Alan, when the Great Kay came down like Prometheus and gave mankind the Gift of Smalltalk. He's been told he's a god for so long by legions of fanboys, that he's come to believe it.

    11. Re:Egotism in its purest form... by dr.badass · · Score: 3, Informative

      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, and others. I highly recommend them.

      --
      Don't become a regular here -- you will become retarded.
    12. Re:Egotism in its purest form... by Anonymous Coward · · Score: 0

      Well, it takes a lot of ego to bother to comment.

      What makes you think you're qualified to comment?

      Just kidding around, let's all go chase some chicks or something, eh?

    13. Re:Egotism in its purest form... by Eneff · · Score: 1

      There's a simple answer:

      That's where the jobs are!

      The majority of custom business software is database-driven with a web interface. When I look at what jobs are out there, that's what I see.

      Sure, I'd rather be working on more interesting software in my professional life, but there isn't as much of a demand.

    14. Re:Egotism in its purest form... by guet · · Score: 1

      One of the most renowned logical fallacies is... One must always appeal to reason before authority.

      There's a reason people often appeal to the authority of a particular speaker - it doesn't mean they are infallible, it just means you should not dismiss their ideas lightly, as you appear to have done. 'Logical fallacy' or not, this rule of thumb can often be useful - personally I find it more useful than attempting to judge all ideas with no context.

      'Whiners' don't write languages or define a field. Alan Kay is not a whiner, he just doesn't agree with a lot of choices made in mainstream languages - many of which are built from historical accidents rather than being carefully constructed idioms.

      Isn't it strange that many very modern languages are going back to Lisp and Smalltalk (Ruby, Objective-C, C# etc)?

    15. Re:Egotism in its purest form... by PantsWearer · · Score: 1
      Actually, in the article, Kay stated that Smalltalk wasn't what it should've been and that he'd fought against it's spread in the 70s because he realized what its problems were.

      His argument was that languages really haven't continued to progress. In fact, his example of Squeak almost seemed to be a stopgap measure rather than an actual progression. More like a "language done right" using the ideas of a number of existing languages.

      I generally agree with him. There hasn't been any major changes in the landscape in the last 20 years. All of the languages created lately are generally just features of already existing language ideas glued together with a particular syntax (generally the syntax is borrowed as well). For example, Java is Smalltalk objects and garbage collector and Objective-C "interfaces" (as a way around the multiple inheritance problem) using a C-like syntax.

      --
      Be glad life is unfair, otherwise we'd deserve all this.
    16. Re:Egotism in its purest form... by Anonymous Coward · · Score: 0

      Now you're talking down on the database developers. Imagine what Oracle employees are thinking about you? I even bet some of them have a fair share more education and experience than you.

    17. Re:Egotism in its purest form... by crazyphilman · · Score: 1

      1. You are simply claiming that the appeal to authority IS valid, not refuting the parent poster's argument. Thus, I can use the appeal to authority to claim that YOU are wrong, by saying that virtually all important philosophers agree with the parent poster and you shouldn't dismiss their opinions lightly.

      2. You are saying that whiners don't write languages or define fields; therefore, in your view, if I write a language or define a field, I cannot be a whiner. Obviously, this doesn't work. I suspect that it is entirely possible to do something great and then, turn around and be a whiner. For exhibit A, I present... The "Great Man" himself! Who whined for three pages about Java. Despite his achievements. Hmm...

      3. C# is based largely on Java; it is a knock-off. I suspect you haven't used it.

      Tag! You're it.

      --
      Farewell! It's been a fine buncha years!
    18. Re:Egotism in its purest form... by crazyphilman · · Score: 1

      I think you're overlooking something.

      There are two kinds of programmers. The first kind is all over the place, with a dozen languages on his resume. He believes he "knows" all these different languages, and he uses the one he thinks is suitable for a specific job. Often, this sort of programmer believes he can learn any language in a couple of weeks. But as a jack of all trades, he's the master of none... Because he's always jumping around, he'll always be a newbie no matter WHAT language he's using. And newbies make lots of mistakes.

      The second kind specializes in a specific tool he's using at a given point in his career (Java, for example). He takes the time to learn all the libraries, best practices, common pitfalls to avoid, all the little gotchas that can gum up the works... He masters ONE tool, and maybe, understands enough about a few others to make good use of them. He knows that all you can learn in a few weeks is basic syntax, so he takes his time and builds knowledge over a few years. He's not a newbie, he's seasoned, because he stuck with ONE tool. He's more trustworthy.

      I would rather hire the specialist any day. His code is going to be cleaner, more effective, easier to maintain over time... He won't make silly mistakes because he'll really understand how things are supposed to work. His knowledge is DEEP.

      Breadth is overrated. Depth is much more useful in practice.

      --
      Farewell! It's been a fine buncha years!
    19. Re:Egotism in its purest form... by soundofthemoon · · Score: 1

      I'd say there is a third kind of programmer, and that is the one who is flexible enough to learn new languages (and problem domains), but applies himself well enough to become expert or close to it at each thing he does. I spent a year coding a VM in microcode, over seven years working in Smalltalk, a year in LISP, a few years in C++, a few years in Java. I have breadth not because I jump around, but because I've been around a while. It's called experience. Once you have a good solid foundation in a few different kinds of languages, picking up a new one is easy because there aren't that many new concepts. Compared to learning a language, it's probably harder to pick up a new problem domain: GUI, embedded, database, real-time, language implementation, networking, security, etc. And let me tell you, having broad experience is quite valuable. I can walk into a new job and pick up a new domain in short order because I have so many things to correlate it to. I may not be an expert right away, but it doesn't take me years to get there.

      In interviewing candidates, I've been shocked at how clueless most are. I am looking for web developers who can do everthing from HTML/CSS to JSP to servlets to database stuff, and who know about scaling, robustness and high-availability. And I get a lot of candidates who look good on paper and have been doing that kind of work for years. But then they can't answer basic questions like what is the difference between a linked list and an array, or why you would put something in an element instead of an attribute in your XML schema design. These kind of one-trick-pony developers maybe be fine for very focused kinds of work, but I'd never hire one except for a very junior position; the minute the parameters of the job changed, they'd be either be useless or need training.

    20. Re:Egotism in its purest form... by crazyphilman · · Score: 1

      I think you're confusing poseurs with specialists. They're not the same thing. I've had to vet a few resumes in my time, too, and I've seen some pretty ridiculous stuff, like the guy who claimed ten years of experience in .Net development... In 2003!

      Don't get me wrong, I'm not saying a programmer will only know one tool during his career. The case you describe is actually my second case. You spent seven years doing Smalltalk; that's specialization, just as I described. I started out in college doing C and C++, then spent a year doing really dopey crap with a specialized database (boring), then a couple of years doing Java and Perl (same environment, two parallel tasks), then a few years in a Microsoft shop... In every case, I stuck with the same tool long enough to get really good at it.

      In my experience, a programmer can learn syntax in a few weeks, and he gets relatively good at a tool within a couple of months. Within a year or so, he's great at it. Additional years make him better. Knowing the basics of computer science isn't anywhere NEAR enough; you have to know your working environment, too. You have to know how to build your interface, how to work with your middleware, your database, how to handle transactions and security... There's a mountain of stuff nobody seems to get in school.

      Expecting to jump into a job and be useful right away just because you've done a bunch of different things over the years is going to get you into trouble. You've got to expect a bit of a learning curve, and to spend some time honing your skill before you *really* are any good.

      --
      Farewell! It's been a fine buncha years!
    21. Re:Egotism in its purest form... by guet · · Score: 1

      Full marks for pedantry.

      1. Our arguments are about the premise, not the logic, so there's no 'refuting' to be done.

      Arguments are not often simply about the semantics, much as you'd like them to be; it's not algebra. 'The appeal to authority' (there is only one?), is valid in a world in which people betray their intentions and motives far more often through their actions and achievements than their 'logical' arguments (sophistry!). People can use an appeal to authority and be wrong, or they can use it and be right. It's often wrong when the authority is unjustified (or the authority strays beyond their field) or when it encourages uncritical acceptance. On the contrary it's justified when the authority has worked for years in a field and you haven't.

      If you want to talk about it in philosophical terms, I don't believe this was an example anyway - the parents weren't saying Kay says X, therefore it's so, but Kay says X, you should listen more carefully to what he says because of his background... The reason it was used in this case was that the original speaker didn't seem to have paid any attention to the person he was analysing, dismissing him as a grumpy old man.

      2. I was overstating the case. Actually if you've read the article you'll know that he doesn't whine at all, just offers constructive criticism of a few points of Java he doesn't like, mingled with criticisms of his own pet language. But I'm sure you know this and are feeling pedantic, and if you don't, and aren't, I can't help you : )

      3. An appeal to non-authority? I should have put Lisp in my list of original languages...

      I've blethered enough already

  43. Re:Which fanboy.../Great pre-prepared post but... by Hynee · · Score: 1

    How the hell is this on topic?

    --
    Damn, I already moderated this topic. Now I'll have to log in with my sock puppet to comment.
  44. Bob Metcalfe syndrome? by otis+wildflower · · Score: 1

    Methinks I sense another cranky curmudgeon?

    1. Re:Bob Metcalfe syndrome? by Anonymous Coward · · Score: 0


      If being curmudgeon means I can hang out on a yacht with a crew of nearly naked Sweet Young Thangs when I'm well over 50, hell, sign me up.

      Go Bob!

  45. Brain Dead? by TapeCutter · · Score: 1

    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.

    --
    And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
  46. Apple by Udo+Schmitz · · Score: 1
    " 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.

    1. Re:Apple by Anonymous Coward · · Score: 0

      What will they drink next week when Beck's commercials are passe?

  47. For the humor impaired. by Anonymous Coward · · Score: 0

    It was a satire. Read the other responses before hitting "submit". And drink a couple of cups of coffee, I think you need it.

  48. Herakleitos by menace3society · · Score: 1

    Herakleitos would design a non-deterministic programming language. It would be entirely unlike him if he built one that did the same thing every time.

  49. What have you done since 1980? by peter303 · · Score: 1

    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?

    1. Re:What have you done since 1980? by Anonymous Coward · · Score: 0

      Does that justify perpetual geek worship?

      You obviously never used a Apple Pee Cee.

    2. Re:What have you done since 1980? by NullProg · · Score: 1

      But little of note in the 25 years after that. Does that justify perpetual geek worship?

      We haven't heard anything from Babbage in while either, but we still geek worship him.

      Most militaries still worship Sun Tzu even though he has been dead for a couple of thousand years.

      Have you read any of his research? Did you invent a "kernel of intelligence"? Since when did ideas come with a EOL date?

      Enjoy,

      --
      It's just the normal noises in here.
    3. Re:What have you done since 1980? by twray · · Score: 1

      http://www.viewpointsresearch.org/
      Read. Understand.

      --
      Fine, I'll build my own moon base! With blackjack...and hookers...in fact, forget the base! - TripMaster Monkey (862126)
  50. I know a vast amount about computer science by kahei · · Score: 4, Funny


    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.

    --
    Whence? Hence. Whither? Thither.
    1. Re:I know a vast amount about computer science by grumbel · · Score: 1

      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 being based on lists, but an average Lisp programm doesn't look all that much more functional than a C++ with STL, Python or Ruby programm, especially when compared to Haskell and the like.

    2. Re:I know a vast amount about computer science by Anonymous Coward · · Score: 0

      Despite not being even remotely purely functional at all. Hmm...

      Then again, anyone who writes "LISP" (note case) in 2005 is a tad out of date.

    3. Re:I know a vast amount about computer science by ab762 · · Score: 1

      XSLT is capable of being even more intuitive than LISP. What a fun language.

    4. Re:I know a vast amount about computer science by DylanQuixote · · Score: 1
      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.

      I'm not a lisp programmer, but... Lisp is not purely functional. Prodecural/imperative programming is possible. In addition, Common Lisp has objects and object oriented programming. Lisp isn't a pure language. :)

      Other than that, I'd mod you +1 Funny if I had mod points.

    5. Re:I know a vast amount about computer science by Anonymous Coward · · Score: 0

      Slashdot editor people: Can you add an actual tag or something so people stop feeling the need to post stuff and throw in "Disclaimer: This is a joke blah blah blah" at the end?

    6. Re:I know a vast amount about computer science by rsheridan6 · · Score: 1
      OK, sure, Lisp advocates are arrogant assholes. I get the joke. But your erroneous statements show that you don't know a damned thing about Lisp itself (I'm not going to go into details, but what you said is analogous to complaining that C has slow garbage collection). So you shouldn't be making misleading statements like "LISP has exactly the strengths and weaknesses you would expect from a pure functional language." Maybe Lisp advocate are so over the top because they're right. Maybe it's because they were dropped on their heads as children. You wouldn't know, having never studied the language.

      If you want to attack Smug Lisp Weenies, by all means, go ahead, reading slashdot is enough to qualify you for that. But if you want to pontificate on the strengths and weaknesses of Lisp, or any other language, learn it first.

      Damnit.

      --
      Don't drop the soap, Tommy!
    7. Re:I know a vast amount about computer science by rsheridan6 · · Score: 0
      Being modded down "overrated" on a comment that has never been modded up has got to be a first.

      Stupid mods.

      --
      Don't drop the soap, Tommy!
  51. What a shame. by MarkGriz · · Score: 1

    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?

    --
    Beauty is in the eye of the beerholder.
    1. Re:What a shame. by ggvaidya · · Score: 1

      :D Thanks! I kinda expected this post to vanish into Slashdot obscurity - (Score: -1, Writer needs his sense of humour replaced) - but apparently it wasn't meant to be. Ah, well.

  52. RSI by Anonymous Coward · · Score: 0

    I prefer not to type 30 characters when I can type 5 chars, chiefly because of RSI, or rsi, because using the shift key can make your fingers stretch too far. Having fewer lines of code is also a boon, even with a folding editor, since the scroll-wheel gives you rsi faster than anything else out there. You can make the text smaller to get more on screen, but past the optimum size my eyes start to hurt. Plus, more characters means more chance for errors.

    I accept you should spend more time designing than coding, but often you (well maybe just me) tend to spend 80% of your time, tinkering with 20% (or less) of the code trying to get it to work, especially when trying to use poorly documented interfaces.

  53. Alan Turing Award winner? by Anonymous Coward · · Score: 2, Funny

    ...Alan Turing Award winner.

    Does that mean he passed the Turing test?

  54. Heraclitus by Admiral+Ag · · Score: 1

    What does any of this have to do with Heraclitus? Are programmers setting themselves on fire in frustration? Have they been listening to Britney instead of the logos? If this is something to do with "all things constantly change" then Heraclitus doesn't really say that - although it is mistakenly attributed to him by later authors

    --
    "by that I mean people who don't sit on slashdot all day wondering why everyone else isn't building robots" DECS
    1. Re:Heraclitus by cogitolv · · Score: 2, Insightful

      It appears Hericlitus did have something to say about all the perl-lisp-c++-java flamewars!
      Hericlitus said that the universe was nothing but conflict and strife. What was experienced was illusion. What there is is a constant incessant flux, a raging fire. What is real is the logos (the binary code), that which lies beneath the fire. http://n4bz.org/gsr/gsr7.htm

      --
      Well, sometimes you eat the bear, sometimes the bear eats you.
  55. I must protest, too by CamMac · · Score: 1, Insightful

    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. Pan Tarhei Hose doesn't smell right.

    Get a clue people. Read before you moderate. Lets use some of those critical thinking skills we claim to have.

    --Cam

    --
    All jocks think about is sports. All nerds think about is sex.
    1. Re:I must protest, too by DarkSarin · · Score: 1

      Sadly, it is NOT that hard to get a PhD and not know how to avoid run-on sentences or how to avoid making aggregious grammatical and syntactical errors.

      I have to agree, though, the name is fishy.

      --
      "We don't know what we are doing, but we are doing it very carefully,..." Wherry, R.J. Personnel Psychology (1995)
    2. Re:I must protest, too by geoffspear · · Score: 1
      Go to your nearest university library and browse through some PhD dissertations. You'd be amazed.

      And it's not even just the technical fields; even in the humanities people can't write. I've seen philosophy dissertations where the grammar is so bad that it's impossible to tell whether the author's argument is actually coherent or not, and it makes me think that no one on dissertation committees actually reads the damn things.

      --
      Don't blame me; I'm never given mod points.
    3. Re:I must protest, too by BorgCopyeditor · · Score: 2, Funny
      aggregious ... errors

      It's "egregious." I should know. I have a Ph.D. ;-)

      --
      Shop as usual. And avoid panic buying.
    4. Re:I must protest, too by DarkSarin · · Score: 1

      well, and I don't, so there. i'll try to keep the two separate in the futur.

      --
      "We don't know what we are doing, but we are doing it very carefully,..." Wherry, R.J. Personnel Psychology (1995)
    5. Re:I must protest, too by mrogers · · Score: 1

      Read them? Damn, I thought they just weighed them. I'd better buy some toner.

    6. Re:I must protest, too by sconeu · · Score: 1

      philosophy dissertations where the grammar is so bad that it's impossible to tell whether the author's argument is actually coherent or not

      That was the point! Especially in philosophy dissertations.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    7. Re:I must protest, too by magefile · · Score: 1

      Erm ... have you heard about the Sokal hoax? It explains a lot about academic communities that take themselves too seriously, to the point of assuming that incoherency is equivalent to sophistication.

  56. I think I've just pissed my pants by TapeCutter · · Score: 1

    "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?

    --
    And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    1. Re:I think I've just pissed my pants by alienmole · · Score: 1

      Try reading the "straight man's" post more carefully, beyond that first sentence... YHBT, HAND.

    2. Re:I think I've just pissed my pants by ggvaidya · · Score: 1

      I keep falling of my chair crying with laughter.

      Great! That was the whole idea :). Atleast I managed to get one person laughing, if for the wrong reason ...

    3. Re:I think I've just pissed my pants by TapeCutter · · Score: 1

      That is why I asked, so straight I couldn't quite tell if you were serious :)

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
  57. Joke indeed. by Anonymous Coward · · Score: 0

    LISP is, in fact, not a purely functional language.

  58. Pure functional languages. by Kickasso · · Score: 1

    LISP is everything but (setq anyone ?)

  59. Genius! [nt] by Anonymous Coward · · Score: 0

    nt = no text, laddie.

  60. On the contrary by scovetta · · Score: 1

    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.

    --
    Wer mit Ungeheuern kämpft, mag zusehn, dass er nicht dabei zum Ungeheuer wird. --Nietzsche
    1. Re:On the contrary by sconeu · · Score: 2, Interesting

      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.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    2. Re:On the contrary by stinerman · · Score: 1

      My CS eduation (Wright St. U.) is actually very theoretical and abstract compared with most other CS programs.

      I find this to be both good and bad.
      The good is that we won't crap our pants as soon as we stop using C/C++/Java. The bad thing is that we have nearly no real-world programming experience. I'm in my senior year, and I haven't programmed anything even remotely useful.

      Right now I'm working on implementing an expression evaluator in Java. It teaches grammars and parsing techniques, but mostly useless in real-world business settings. It seems funny that those with 2 year vocational degrees are often much better programmers than those with degrees in CS.

      Of course, it has been said that CS is as much about computers as astronomy is about telescopes, but there doesn't seem to be much use for someone who knows why a hash table is better than a linked list for searching operations but can't implement such a thing without taking up the better part of a day.

  61. Fascinating by chaoticset · · Score: 2, Interesting
    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.
    --

    -----------------------
    You are what you think.
    1. Re:Fascinating by Anonymous Coward · · Score: 0

      I think Kay's claim was that over the long run, Perl is more harmful than helpful. I don't think you could say the same thing for fire, wheels, light bulbs, etc.

    2. Re:Fascinating by Anonymous Coward · · Score: 0

      The quote is another example of stating something obvious in a way that seems profound.

      That quote is another example of stating something obvious in a way that seems profound.

    3. Re:Fascinating by chaoticset · · Score: 1
      Well, I think his claim is wrong. It sounds great, but it is inaccurate and even the intention -- that Perl is effectively a stumbling block, a well-intentioned bad idea, is incorrect. Makeshifts are important; prototypes are important. Mistakes, too, are important. Even if Perl is all three, it is vital merely in the sense that the void is fills would exist if it did not.
      If there is no struggle, there is no progress. Those who profess to favor freedom, and yet deprecate agitation, are men who want crops without plowing up the ground. They want rain without thunder and lightning...men may not get all they pay for in this world; but they must certainly pay for all they get.

      Of course, he goes on:
      Basically, a lot of the problems that computing has had in the last 25 years comes from systems where the designers were trying to fix some short-term thing and didn't think about whether the idea would scale if it were adopted.

      This is also a truism; most of the problems in anything stem from shortsightedness. Unfortunately, most progress also results from shortsightedness.
      --

      -----------------------
      You are what you think.
  62. Look at non-coded languages by Anonymous Coward · · Score: 0
    To say that nobody knows how to make a good language is somewhat misleading. The problem as I see it is that programmers don't want to think "outside the box" about their own workflow. I suggest looking at the modelling languages like UML, ERDAS and ESRI modelbuilders, and other graphical, non-coded languages as an approach to building a modern language. This would obviously require compilers that were FAR more sophisticated than most, but the payoff would be on the user end.

    Forget everything you know about programming and think "if I want to tell a computer how to do something, what is an efficient way to do that?" C++ and Java will NOT be what you come up with.

  63. Things people said. by TapeCutter · · Score: 0, Offtopic

    "An eye for an eye makes the whole world blind." - Ghandi.

    --
    And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    1. Re:Things people said. by Anonymous Coward · · Score: 0

      But who was it that said "None are so blind as those who cannot see." ?

  64. Here's why scientists and professors are better by solomonrex · · Score: 0

    Yes, we are so much more elegant and well-designed. We don't do any work but we know you're doing it wrong. We CAN dismiss 30 years of craftsmanship and progress as pooky-doo. If we weren't smarter, we wouldn't have summers off, would we? Oh, and by the way the monkey wrench is soooooo obsolete. We should all use rubber strap wrenches. But no one's made the perfect rubber strap wrench. Of course, I came waaaayyy closer than anyone else. So you'd better pay me to design a better one. That's right, HP Labs is doing another Java, so you'd better get behind me because it will make Java and C# look like flimsy made-for-TV marketing tools. Kneel before the majesty of my genius!

  65. Re: I had Heraclitus once by tinkerton · · Score: 2, Funny

    he probably had what Johnny Cash called "ring of fire"

  66. Lessions to be learned? by grumbel · · Score: 2, Insightful

    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.).

  67. You said heraCLITus !!!!! by Anonymous Coward · · Score: 1, Funny

    you said clit !!!

  68. Comp Sci Dept vs. Programmers by Anonymous Coward · · Score: 0

    Pascal was written by computer scientists as a teaching language and to demonstrate concepts. C and Perl were written by programmers who wanted to do stuff.

    Some of my personal experience of languages:
    C: great, I can do low-level stuff, but have to re-invent the wheel too often.
    C++: Bjarne Stroustrop thought there were too many C programmers and decided to write a more complicated language that would still be used on a large scale but ensure fewer programmers could earn more money. I never bothered to learn templates and I don't like MSVC++'s way of designing GUIs.
    Java: great, I can do OO stuff and small GUIs are a snap, but how many dots did that statement have? Tell me again, how many classes do I have to use and inherit for standard i/o and file i/o? The download is how big?
    Perl: My favourite, but tell me again, what is a 'bless'ing? The only problem is that the target machine needs Perl, lots of power and all the modules you use.
    Object Pascal: the Delphi IDE has some great features and GUIs are easy, but why are there no line numbers? Why do you have to tell the compiler everything twice?

  69. paul graham by Anonymous Coward · · Score: 0

    is that you?

  70. Greenspun's Tenth Rule of Programming by Anonymous Coward · · Score: 0

    "Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp."

  71. Don't forget GAWK by Medievalist · · Score: 1


    The GNU awk (which, unlike other awks, has sockets and fixed-length fields (if you don't know why fixed-length fields are important, go back to your ivory tower now please)) is superb for any process that has single input and output streams.

    If you have multiple inputs that can't be serialized, or output to multiple files or sockets, you'd probably be better off with perl or python.

    But within the limitations stated, GNU awk absolutely rules - concise, elegant syntax (with the exception of the string concatentation operator, which is the space - a stupid idea) and very very rapid development.

    I frequently write single-line gawk commands to replace entire programs...

    1. Re:Don't forget GAWK by Anonymous Coward · · Score: 0

      > I frequently write single-line gawk commands to replace entire programs...

      Could you post an example of such a command with a simple explanation? I've heard about awk but actually I've never seen a good example of its usage so I've never bothered learning... Is it worth to buy a book, like "sed & awk" from ora.com? Is it a good idea to learn awk if I know Perl and use it for text processing? Thanks. (I'm bookmarking this comment so I'll see your answer even though I don't have an account.)

  72. Talk about missing the point. by Anonymous Coward · · Score: 0

    The parent's point was that Parrot does not make implementing compilers easier. It makes it needlessly complicated. You do realize that you can actually output Scheme/LISP code from a compiler and get a sophisticated runtime with GC for free, right? Outputting Scheme/LISP code is trivial in comparison with almost anything else.

    (Of course, you might not even need to write a standalone compiler which outputs Scheme/LISP code as such... you would probably just implement a macro which parses the language you want and expands into the appropriate Scheme/LISP program.)

  73. Let's hear it for old quotable compuscience farts! by kronocide · · Score: 2, Insightful

    *sigh* I'm sick of listeing to these old academics whine about the real world.

    I mean, doesn't this say it all:

    Once you have something that grows faster than education grows, youre always going to get a pop culture.

    Oh yeah, because pop culture is bad. We don't want something to expand so fast we lose our academic control over it.
    Oh, looky here! ---> . That's the world's tiniest violine playing...

    Or:

    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.

    Whiskey Tango Foxtrot? So it would have been better if all these lusers (those not in academia) had never got their hands on computers? Or was U.C.L.A. supposed to supply them to us?

    I dont spend time complaining about this stuff, because...

    Uh, right.

    I have worked in the computer business as system technician, programmer, CTO, and product manager for about 15 years--have even been on some panels in academic seminars in connection with RDF and the Semantic Web. The reason these guys (and I do believe generalizations are in order) disagree with how things are done in the industry is simply because they don't understand it. It's really that simple. They are different areas of expertise.

    Computer science research has its own goals. Scalability, design-for-change, open interfaces, those kinds of things are what it's all about. In the private sector on the other hand, one thing rules: cash flow. Cash flow makes the world go 'round, and it will take precedence over scalability, modular design, and documented interfaces eleven days per week. It's not stupidity, it's really very rational. Cash flow is not about economy in the simplest sense: it would be cheaper for me to buy a one-year public transport ticket instead of buying one every month, but I don't have that ammount of cash lying around, so it's still better (in a completely rational sense) for me to get the more expensive monthly solution rather than take a loan or whatnot. That is the reason why quick fixes are sometimes the smartest way of doing things. Something else is almost always smarter than the "best" design. (Insert "cost of last 10%" rant here.)

    This is especially true about all small and medium-sized Internet companies that--recently burst bubbles notwithstanding--have created a huge new economy. They are employing millions of people around the world (directly or indirectly) and have introduced computer usage to pretty much every individual in the developed world.

    This did not happen because everyone was stupid and did everything backwards, and it's not "unfortunate."

    It also didn't happen because the academic institutions made it happen. Academia did not turn HTML into a de facto standard. In fact, if HTML had been as complex as RDF, and treated as strictly, there's a good chance the Web had never happened. The sloppyness of implementation that is a headache to most Web developers today may very well have been one reason why the Web grew so quickly. And there is still a good chance that RDF will never make it into the mainstream, it depends on how anal the developers of it plan to be. (Although even if it doesn't, it will probably still be used at 10 huge corporations around the world that are big enough to have their own in-house academic institutions.)

    Keep teaching us about scalability, and if you want to listen we will explain something about what makes mainstream businesses able to pay for systems development at all.

  74. I prefer Perl to perl, as a language. by BorgCopyeditor · · Score: 1
    I've even written some reasonably clean, well structured code in perl myself

    That's quite a trick. I thought it was necessary to use a computer language to write code, but apparently, according to you, one can also write code "in" an executable.

    :-)

    --
    Shop as usual. And avoid panic buying.
    1. Re:I prefer Perl to perl, as a language. by Anonymous Coward · · Score: 0

      That's quite a trick. I thought it was necessary to use a computer language to write code, but apparently, according to you, one can also write code "in" an executable.

      So you would argue that it sounds odd to say "I wrote a program in $EDITOR"?

      $ ln -s /usr/bin/emacs /usr/bin/perl

  75. Clarification by ggvaidya · · Score: 3, Interesting

    Well, I was trying to be funny, but obviously it didn't come off too well. But shush, don't tell anyone: I really love the ubercomplex discussions going on.

    1. Re:Clarification by Anonymous Coward · · Score: 0

      Your post, "You IDIOT!" is absolutely hilarious! I'm still cracking up.

      Best line: "C++ was created by Microsoft as an attack on Borland - perhaps you've heard of Visual C++??"

      genius! Bravo!!

  76. Re:Let's hear it for old quotable compuscience far by east+coast · · Score: 1

    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.

    Whiskey Tango Foxtrot? So it would have been better if all these lusers (those not in academia) had never got their hands on computers? Or was U.C.L.A. supposed to supply them to us?


    What? You didn't get the memo did you? It clearly states that computers were to remain nothing more than an intellectual venture and not meant for any practical use.

    I agree with you fully on this one. God forbid we waste technology in the persuit of leasure activities. I wonder what old man Kay does in his leasure time? Perhaps he makes his own thread from raw cotton by hand.

    --
    Dedicated Cthulhu Cultist since 4523 BC.
  77. Perl sucks, suck suck suck, suck the monkey by Anonymous Coward · · Score: 0

    Golf much? 'Cuz if ya did I'll love to bash you over the head with a 9 Iron.

    Take your fancy app, go to a fresh system, run a default install of perl, turn off internet access... I bet you a million bucks you used some crap lib, that needs another crap lib, that needs another crap lib.

    Fcuk Perl, One crap lib on top of another, All the apps out there are akin to Frankstein monsters with cancerous growths expounding into siamees twinage!

    And Fcuk CPAN for not letting us make a decent fcukin off line bundle I have to use a God Forsaken hack I pulled from a Sys Admin mag...

    No sir, you are an diet coke drinking slob and blind to your own toolset.

    Wield your one hammer you Norse god you because everything is a nail to you.

  78. how many successes does one need? by Stu+Charlton · · Score: 1

    Depends on your value system.

    Do you value a string of moderate commercial successes, two or three major commercial successes, or one or two major theoretical or scientific breakthroughs?

    Do musicians generate more great work as time goes on?

    Do programmers become more open minded and experimental in old age?

    --
    -Stu
  79. erhm by Stu+Charlton · · Score: 1

    So, if people suggest that the Vietnam and the cold war were unfortunate events, and things shouldn't have progressed down that path, you'd say they're in need of chilling out?

    Different domain, same principal. It's called social critique. It's a means of gaining some insight.

    --
    -Stu
    1. Re:erhm by snorklewacker · · Score: 1

      > So, if people suggest that the Vietnam and the cold war were unfortunate events, and things shouldn't have progressed down that path, you'd say they're in need of chilling out?

      Yes sir, there's a healthy sense of perspective. Why just yesterday, there was an anti-perl rally marching down the streets of my city, must have been 10,000 people.

      --
      I am no longer wasting my time with slashdot
  80. another one who missed the boat by Anonymous Coward · · Score: 1, Insightful

    I don't know why you're bitching at Perl when it lets you code in the style you want.
    1) with IO::Handle object:
    use IO::Handle;
    autoflush STDOUT 1; # or alternately: $io->autoflush(1);
    2) with English variable names:
    use English;
    $OUTPUT_AUTOFLUSH = 1;
    3) the terse way:
    $| = 1; # because ++ doesn't mean jack in this context

    1. Re:another one who missed the boat by Anonymous Coward · · Score: 0

      > $| = 1; # because ++ doesn't mean jack in this context

      $|++ lets you do a $|-- in the END block to set it back to whatever it was originally. Good for persistent environments, because you *are* mucking with a global.

    2. Re:another one who missed the boat by Anonymous Coward · · Score: 0

      Erhm, if you want something to change only the local copy of something, why not use local? E.G.

      local $| = 1;

      Or better:

      use English;
      local $OUTPUT_AUTOFLUSH = 1;

      Perl is ugly if you choose to make it ugly. Sadly, many really do choose that either out of ignorance or malice, and I suppose it doesn't matter which...

      But don't mind me, I just use those silly lines "use strict;" and "use warnings;" at the top of my scripts for some odd reason...

    3. Re:another one who missed the boat by cpeterso · · Score: 1


      sure, you can choose to write your Perl code in any of those styles, BUT you must understand ALL of them to read other people's code. 3x the effort.

  81. You can have my monkey wrench.... by Anonymous Coward · · Score: 0

    ...when you pry my cold dead fingers off it, youngster!

    Rubber strap wrenches make lousy hammers, but a good monkey wrench (like my excellent 100+ year old combination wrench) serves as hammer, crowbar, wrench, and LART.

    Perl makes a good LART too, come to think of it.

  82. lisp in perl by sleepingsquirrel · · Score: 1
  83. Re:I had Heraclitus once by Anonymous Coward · · Score: 0
    The itching wasn't so bad, but the burning drove me nuts.
    Why does every thread on this article have to be about Perl?
  84. another one who missed the boat by Anonymous Coward · · Score: 0

    You never heard of:
    1) PAR
    2) perlapp
    3) perl2exe
    Because these packaging tools handle all the library "bullshit" you're talking about. Which of course isn't something exclusive to Perl. Many times have I had to go looking for libs when compiling some good old fashioned C program (or sometimes they curse at me: h0h0 d00d ur gtk iz 2 old! u sux0r!).

  85. Crappy sig by Anonymous Coward · · Score: 0
    Anonymous Cowards filtered. If their words aren't worth so much as a nom de plume why should I value them any more?
    Yet apparently they're important enough to devote your entire .signature to? Strange.
    1. Re:Crappy sig by Anonymous Coward · · Score: 0

      >> Anonymous Cowards filtered. If their words aren't worth so much as a nom de plume why should I value them any more?

      > Yet apparently they're important enough to devote your entire .signature to?

      There are two things going on here, both borne out of academic philosophy. The first thing is a way for a philosopher to never be wrong. To start off with, philosophers start by defining the first rule to be: ``Everything is relative; there is no universal truth.'' Now it's impossible to be wrong. If you make a statement that turns out to be wrong, you just shift your frame of reference so that you're not wrong anymore. This positionless-position has a name: relativism. I'm not saying relativism is wrong. It's fine in a classroom setting where you're trying to train people to think. It's similar to a frictionless surface or spherical objects falling through a vacuum in physics, which is to say, it's good for a classroom setting where training is the objective, but useless anywhere in the real world.

      The second thing going on is a way to discount as many people as possible. Modern philosophers these days aren't the geniuses they were back in Plato's days, and in public discourse, it's highly likely they'll either run into someone smarter than them or they'll have to debate with someone who knows more about some subject than they (highly likely, as philosophers rarely know much about the topic they're debating). By discounting as many people as possible, they reduce the chances of meeting one of their betters: ``Hmph, you're just a {prole,black person,Anonymous Coward,Jew,Muslim,Australian,programmer,manager,wo man}. I'm a University trained philosopher; I don't have to listen to you.''

      This person is most likely either a philosopher himself or someone copying the I-can't-ever-be-wrong method of debating. It's something to be pitied, and useless to point out holes in his close-minded approach to things, as he's already discounted anything that could show him to be wrong.

      The truth of the matter (and there is a such thing as universal truth) is that if a comment can't stand on its own merits, then it's not worth making. Too often, philosophers and pundits appeal to their own authority to ``prove'' their comments, and it's damaging the value of debate on the Internet. Ideally, every comment would be completely anonymous, so that it would rise and fall on its own merits and nothing else, but then there'd be no value in a Philosophy degree, because you could never wave it in front of everybody to add weight to your comments.

  86. I shall take a contrarian stance. by Medievalist · · Score: 2, Insightful

    In the private sector on the other hand, one thing rules: cash flow. Cash flow makes the world go 'round, and it will take precedence over scalability, modular design, and documented interfaces eleven days per week. It's not stupidity, it's really very rational. Cash flow is not about economy in the simplest sense: it would be cheaper for me to buy a one-year public transport ticket instead of buying one every month, but I don't have that ammount of cash lying around, so it's still better (in a completely rational sense) for me to get the more expensive monthly solution rather than take a loan or whatnot. That is the reason why quick fixes are sometimes the smartest way of doing things. Something else is almost always smarter than the "best" design. (Insert "cost of last 10%" rant here.)
    Shortsightedness is not really the virtue you are painting it to be.

    Buy the monthly right now, then eat beans and rice however many months it takes to save for a yearly. Then buy the yearly, and use the money you would have spent on monthlies to make other cost-cutting investments (and a nice steak dinner reward, of course).

    For example, in my previous home I cut my water and sewer bills by 80% and my electric bill by 40% by investing in slightly more expensive appliances. Payback ended up being less than two years, because the cost of electricity and water has gone up faster than expected.

    The unwillingness to take a hit now (those rice and beans meals) for a payoff later is the downfall of many businesses. Optimizing investments is not as simple as you make it out to be, and cash flow is a simplistic meter that does not apply to all business situations.

    Substituting high liquidity for high efficiency is still over-generalizing; as people often say when discussing computer languages, every problem is unique and may require a unique solution. Every business likewise.
    1. Re:I shall take a contrarian stance. by kronocide · · Score: 1

      Yes, of course there are different ways of balancing long-term and short-term costs, whether it's of education, design, equipment, etc. But the bottom line is still the cash flow. Not in some highly abstract and theoretical sense, but simply in a day-to-day operations sense. I'm not saying that short-term benefit is always better, I'm saying that this is what the equation looks like--and that is basically never acknowledged by those who have dedicated their lives to inventing new algorithms. I love the work they do, but I resent their misconceptions about the "unsophisticated people" that are based on ignorance about how businesses need to do things. Even though they quite often sound as if they believe themselves to be experts at that as well.

  87. semantics by Anonymous Coward · · Score: 0

    ADA is good for secure stuff
    Actually, Ada [sic] is for big, complicated software systems that you want to be able to maintain.


    The "[sic]" goes on the bit you've reproduced that you know is incorrected, not the corrected version.

  88. Lisp has NEVER been a 'pure functional language' by alispguru · · Score: 1, Insightful

    You know, when you set out to make fun of something, it helps if you actually know something about what you're making fun of. I don't have the time to give your posting a full-scale line-by-line fisking, so I'll just hit the high points here:

    You name it, LISP implemented it way back when. Things like visual form designers, refactoring IDEs, regular expressions and the like don't count ...

    They don't count because Lisp did implement them "way back when". LOOPS (a Xerox PARC OO system, one of the predecessors of CLOS) had a visual forms designer and a refactoring IDE ... in 1985.

    I've used LISP for 70 years...

    Close, but no cigar. Lisp was invented in the late 1950's, so it's a little over 45 years old today.

    ... 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".

    I find "(+ a b c d e)" shorter and clearer than "a + b + c + d + e", myself.

    LISP has exactly the strengths and weaknesses you would expect from a pure functional language.

    One of the reasons Lisp is still around is that it isn't a pure-anything language. Check out those SETQs in the original LISP 1.5 manual.

    Lisp invented conditional execution (Fortran at the time had only computed GOTO when Lisp introduced COND), and over the years it has absorbed structured programming, IDEs, and object-oriented programming, usually by helping to invent or extend them.

    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.

    Yes, Grasshopper, it is good that you are learning to Question Authority. But, you should also Listen to Authority's Response, and if it turns out that Authority is Indeed Correct, you are obliged to Admit It.

    --

    To a Lisp hacker, XML is S-expressions in drag.
  89. obligatory simpsons joke by Anonymous Coward · · Score: 0

    some folks'll never design a lang
    and then again, some folks'll
    like heraclitus
    the slack-jawed yokel......

    well, there's always room for one...

  90. Comparison of Programming Languages by bitswapper · · Score: 2, Informative



    This article has an interesting comparison between C, C++, Java, Perl, Python, Rexx, and Tcl.

    1. Re:Comparison of Programming Languages by sleepingsquirrel · · Score: 1
  91. The "Java Vocational Training" thing is bosh. by JessLeah · · Score: 1

    I went to a major public University in the Midwest (with a huge National Merit Scholar program) in 1997. I left in 1999 because I couldn't hack it. Why? Because it was virtually 100% theory. It was absolutely not "Java Vocational Training". The overwhelming majority of what they forced CS majors to take simply to get a BS in CS had zilch to do with "vocational (read: practical) training".

    Examples:

    * FOUR (yes, count 'em, FOUR) levels of Calc.
    * Engineering Math
    * Discrete Math
    * Linear Algebra
    * Circuit Design

    All of this crap to get a BS in CS-- the degree considered "the standard" degree expected by clueless HR managers (the sorts who think "Linux", "Red Hat", "Unix" and "Solaris" are completely different skill sets, since they're different buzzwords on their little checklists) for aspiring Unix sysadmins or generic Perl/PHP/Oracle/PostgreSQL/MySQL/Java hackers.

    We spent more time discussing what Knuth was theorizing about creating optimizing belly-button-lint compilers using Ada or Algol in 1967 than about anything practical/vocational.

    Although I was a National Merit Scholar and had an SAT score of 1540 (800 Verbal/740 Math), I couldn't hack it, since (A) Math has given me nightmares ever since one particularly awful Calc teacher in HS, and (B) in 20 years of coding, I've never had a need for any math higher than Trig, and Trig only once.

    Put simply, it was so mind-numbingly theoretical, I couldn't stand it. I couldn barely even keep awake while listening to these men with thick Indian, Chinese and Russian accents babbling on about highly theoretical concepts I'd never use in my job in a billion years. Vocational? No, it was pure theory. It was pure, unadulterated, Knuth-worshipping, Algol-laced, IBM-hulking-giant, pseudocode-based theory.

    And at this school, you had to take so much flippin' math and theoretical gibberish to get a BS in CS, you automatically qualified as a Math minor. You simply had to go down to the office and fill out a form to get a Math minor.

    To this day, I have nightmares (literally) about Calculus. And now this joker trivializes the unfulfilling and impractical experience I had in college as "Java vocational training"?

    Maybe it is today... but it sure as hell wasn't when I tried to make my degree back in '97...

    1. Re:The "Java Vocational Training" thing is bosh. by Anonymous Coward · · Score: 0

      it is today, and it was in 2000

    2. Re:The "Java Vocational Training" thing is bosh. by Anonymous Coward · · Score: 0

      > FOUR (yes, count 'em, FOUR) levels of Calc.

      Which is pretty amazing, since I've used discrete math, linear algebra, and occasional trig all over the place in all my CS work, but have NEVER had to use calculus. Not one of Knuth's volumes requires anything beyond a year of discrete math concepts. None of the papers on citeseer make you know any calc, but if you don't know your linear algebra, you are hosed.

      But anyway, you're sort of making his point. The degree program from 8 years ago is not the degree program of today.

    3. Re:The "Java Vocational Training" thing is bosh. by nate+nice · · Score: 1

      I'm graduating with a CS degree this spring at a University in the Midwest and out curriculum is similar to what you designed, with some exceptions:

      Math: Yup, 4 calc classes. I never had calc in highschool but damn it I worked hard and it got easier with time.

      More Math: Yup, 2 more "elective" math courses. I took one where we built the Natural Number system from a foundation of Logic, set theroy etc. And a stats course which I skipped today.

      Physics: 2 Physics classes that are Calculas based. I found these to be a bit easier than the math. I guess with all the math I took, I got good at it.

      Theroy: Yeah, quite a bit of theroy. Discrete Math, Theroy of Computation, Digital Logic, Computer Architecture, Data Structures and ALgorithms, Programming Languages (a tour of different language designs, functional, oo, logical) and some more.

      Other: But Ialso got to take a class on compilers (wrote a full compiler for an OO language), Software Engineering, Testing, Programming, Graphics (Theroy and Application in open GL, Databases(Theroy and shit loads of design...this one hurt), Networks, which was theroy but then a networks lab which was all hands on, Operating Systems which was theroy you should know as well as having to proram multi threaded things, write schedualing algorithms, mutex's,etc. Plus a host of other neat courses.

      So yeah I have taken a lot of theroy and math but these things have helped me understand in a deeper way than before about software design, production and analysis. Maybe of these courses won't make you an expert at any one thing but they give you a taste of it and make for easier use of it when the need arrises.

      Not for everyone though.

      --
      "If you are a dreamer, a wisher, a liar, A hope-er, a pray-er, a magic bean buyer ..."
    4. Re:The "Java Vocational Training" thing is bosh. by Anonymous Coward · · Score: 0

      I see a lot of papers involving calc on citeseer in fields like statistical AI, kernel machines, image and speech processing, some graphics applications, etc.

    5. Re:The "Java Vocational Training" thing is bosh. by kaedemichi255 · · Score: 1

      Hmm which great university was this? UIUC? I don't know about you, but at my school (University of California, Berkeley), those "theory" courses you complained about where merely pre-requisite math courses that one had to take before applying for admission into the CS major. I really don't consider those courses to be theoretical in any sense. The real theory (and what I consider to be the valuable portions of a top-notch CS curriculum) are about efficient algorithms, intractable problems, combinatorics, discrete probability, computability, complexity, etc. A lot of these concepts drive the underlying mechanisms of the technology we all use. Then there are the more "practical" types of theory, such as the theoretical issues surrounding operating systems, compilers & programming languages, databases, graphics, and AI. I know this is already flamebait material, but I find it agonizing to read your comment about how you were a 1500+ SAT National Merit Scholar but couldn't get past the very basic math courses that precede the formal CS education! I myself scored much lower on my SATs, but have been able to succeed with flying colors in the CS curriculum in college. Bottom line is, don't trivialize CS theory as just consisting of (in my opinion) fairly introductory math courses.

    6. Re:The "Java Vocational Training" thing is bosh. by sirwired · · Score: 1

      It sounds to me like your school had a very solid CS program. A proper CS degree is NOT vocational training.

      The simple fact is that something over 90% of code written in the world is database applications, and database-driven applications. Business computing runs on databases. To prepare yourselves for that kind of IT, a two-year degree from your local comm. college is more than enough.

      A Computer Science degree is meant to teach you the many different ways of approaching problems that can be solved by computers. Personally, I have a Computer Engineering degree (1/2 CS, 1/2 EE). I also hated my Calculus classes, and I sucked at them. Like you, I have yet to touch an integral in my now 6-year technical career. I have not designed a single circuit, written a line of assembly, programmed a single UART, done higher mathematics of any kind, used an oscilloscope, calculated any truss loading, plotted light refraction, titrate any acids, been asked any questions on 20th Century social history, written any literary compositions, etc. In fact, I have not removed a single one of my old textbooks from my bookshelf at home, nor have I used directly a single thing I have learned in ANY of my college classes.

      Those that do not understand the point of a B.S. degree would look upon that list of "useless" classes I had to take and wonder why I spent 4 years doing all that.

      The point of a B.S. degree is to teach you how to solve a far wider range of problems than any course can cover. You are being taught to properly learn, and make your own contributions to the "state of the art". You cannot do that with a simple vocational program.

      Employers understand this. My first job in the IT industry was top-level network router support for a network equipment manufacturer. I was essentially the last line of defense between the customer and the developer who wrote the code. My job was to isolate the issue to determine which code module was causing the network problem. On my first day, I had never seen a router in my entire life. I had never read a protocol trace, nor was I at all familiar with the products I was expected to be top-level support for. In six weeks, I was taking calls of the queue and doing my job. Since I was in top-level support, there was no knowledge base to read, nothing to Google, all my issues that I dealt with were new problems. The problems were solved by reading, and understanding the specs for approx. 30 different protocols, and using my intuition to guess which ones were causing the failure. The "knack" necessary to do that properly, and quickly, can't be taught in any one class, but it CAN be taught by teaching you how to "think". THAT is what all those "useless" classes were for.

      Wise employers understand that a fresh CS grad, if properly taught, does NOT need vocational training. He/she does NOT need to have ever touched the language you are supposed to program in, or even recognize the hardware you are supposed to design. He/She is supposed to properly equipped to figure these things out on their own, and quickly.

      SirWired

    7. Re:The "Java Vocational Training" thing is bosh. by JessLeah · · Score: 1

      Employers don't understand squat. Employers feel that you need a CS degree to, for instance, implement a small e-commerce system, or install Apache, or upgrade a Solaris system. Employers don't know the difference between "Red Hat" and "Linux". Half of them don't even understand that "Microsoft", "Office" and "Windows" are not synonyms. (e.g. "Yeah, this computer runs Microsoft XP" or "Just open that Word file in the Microsoft.")

      Employers are always asking me "Wow, so did you learn all this stuff in school?"

      The mere fact that they ask such things ("Did you learn all this [really practical stuff] in school?") shows that they know absolutely zero about what actually goes on in school.

      They do not teach you in school how to quickly whip up a Perl script to solve an emergency need, or how to install OpenBSD on an old SPARC, or how to install VNC, or any of the other "more typical" computer-related tasks that I (and people like myself) actually do, both at work and at home, on a daily basis.

      They might teach you how to write a decent Algol interpreter for an IBM mainframe. (That was the sort of theoretical jibba-jabba my Profs were obsessed with in school.)

    8. Re:The "Java Vocational Training" thing is bosh. by TheReal_BarkMan · · Score: 1

      Although I was a National Merit Scholar and had an SAT score of 1540 (800 Verbal/740 Math), I couldn't hack it, since (A) Math has given me nightmares ever since one particularly awful Calc teacher in HS, and (B) in 20 years of coding, I've never had a need for any math higher than Trig, and Trig only once.

      This proves it! They've made the SAT easier. Back in the day, anyone who scored 700+ in Math on the SAT would have been eager and capable of tackling these classes,

      * FOUR (yes, count 'em, FOUR) levels of Calc.
      * Engineering Math
      * Discrete Math
      * Linear Algebra
      * Circuit Design


      Maybe, just maybe, some of your professors where trying to teach you how to THINK, not just memorize vocabulary and test taking skills.

    9. Re:The "Java Vocational Training" thing is bosh. by sirwired · · Score: 1

      If you expected to learn how to do system administraton, or other typical IT tasks from your Computer Science classes, you need an attitude re-adjustment.

      They call it a "Computer Science" degree for a reason. Just like they don't teach you how to repair cars in Mech. Eng classes, and don't teach you how to pour concrete when becoming a Civil Engineer, they don't teach system administration when taking Computer Scinece classes.

      The reason you took that extremely boring "Programming Languages 101" class was so you could understand the fundementals common to all computer languages so you could pick up Perl (or any computer language) with decent aptitude in a short period of time. If the jobs you want to apply for require Perl, or SQL, or BSD, or whatever, nothing is stopping you from picking these skills up on your own.

      Being able to learn extremely quickly on your own, and pick up skills you need without taking classes is fundemental to anybody who wants to have a career longer than ten years. A Computer Science degree helps you with the "knack" for practical tasks.

      Employers demand a Computer Science degree because they realize it's value. However, the shiny piece of paper does not exempt you, future employee, from picking up required practical skills on your own while you are in school. Yes, you could pick up the practical skills without school, (there are plenty of highly qualified IT folks out there without a college degree), but the degree really does make it easier in the long run.

      Prior to my graduation, I had seven job offers, all lucrative, despite a slightly below-average GPA. (2.94 when applying for jobs.) Why? Prior to my Senior year, I had:
      2.5 school years working the network helpdesk at my school
      1 summer job where I obtained DoD security clearance, while doing lightweight computer security and more PC helpdesk-type work.
      1 summer job doing lightweight Web DB front-ends
      3 summers (starting in high-school) supervising a staff of two for the retail store of a summer camp. (Don't laugh. Employers like people skills.)

      What clinched me that first job doing router support? Likely me telling my future employer how I had to go from being a hard-core Win 3.11 troubleshooter to doing Win95 registry hacking and network troubeshooting in three days, despite only having seen Win95 as a bunch screen shots prior to that.

      Initiative and self-learning, in addition to your piece of paper; that is what gets you good jobs.

      After less than six years out of school, I have co-authored two books, work sane hours in a low-cost of living part of the country, have a stable job for a well-established employer and clear over $90K/yr after bonuses.

      SirWired

    10. Re:The "Java Vocational Training" thing is bosh. by Anonymous Coward · · Score: 0

      I think something important comes to light(yes, on Slashdot!) from the conflict in this thread.

      Lots of people WANT "Java Vocational Training." That's why the degree tends to get devalued. True CS - such as the kind I see here at UC Santa Cruz(and eventually decided wasn't for me, going to History instead) is for people who really want a full range of computing knowledge, and all the skills you describe. It's a huge investment on the part of the student, it's not for everyone, and the result is, as you know yourself, a valuable, expensive employee that can go in, figure out the situation and fix problems or lead projects quickly and effectively.

      But my own interest in the CS courses was to pick up some programming skills with a little imposed practice so that I could go along to my true pursuit(independent game development). After two quarters of hard work in the intro classes I felt pretty satisfied. Meanwhile I tried to take the calculus - hated it - still hate it. I don't mind theory but the grind of problem solving is a bore and I knew it wasn't going to help me in what I wanted to do.

      I probably wouldn't be wrong to conclude that this is true of more than a few students - either they want to be a "computer guy" or they want a heavy load of practice in programming or hardware work to help them towards some other goal. And for that application, the theory is less than important. So there are really two kinds of degrees and they are more-or-less unrelated despite having the same title. No surprise that there's more demand for the lower-level one.

      It's people like me that depend on people like you to do all the heaviest, toughest work when the chips are down ;)

  92. Adendum by kronocide · · Score: 1

    Of course, as a CTO, I was the one arguing for the long-term investment in design, and against the quick fixes, with just the arguments you use now. you have to do that. But you also have to understand something about the general dynamics, and that things don't happen the way they do because people are dumb.

    Also, in case someone thinks I'm opposed to academia in general, I am currently studying for a degree in philosophy, and it doesn't get more academic than that (especially considering the etymology of the word). ;-)

  93. Interstate highway by RovingSlug · · Score: 1
    Alan Keys: Just as an aside, to give you an interesting benchmark--on roughly the same system, roughly optimized the same way, a benchmark from 1979 at Xerox PARC runs only 50 times faster today. Moore's law has given us somewhere between 40,000 and 60,000 times improvement in that time. So there's approximately a factor of 1,000 in efficiency that has been lost by bad CPU architectures.

    That's like saying the modern interstate highway system is poor because it provides little speed improvement for a horse and buggy.

    More likely answer: the benchmark is old and invalid on modern architectures (highways not cobblestone) designed for modern applications (cars not buggies).

    There's always co-design between architecture and applications. Over the past quarter-century, that benchmark was either insignificant or holding back optimizations for contemporary problems and applications.

    A very long list of credentials and achievements, but I didn't have an overall good impression of Alan Keys.

    1. Re:Interstate highway by Anonymous Coward · · Score: 0
      A very long list of credentials and achievements, but I didn't have an overall good impression of Alan Keys.
      Neither did I. Alan Kay, on the other hand, is a freakin' genius.
    2. Re:Interstate highway by RovingSlug · · Score: 1

      Sorry for the typos: s/Keys/Kay/g. But in that interview, like the offhand assertion he made about poorly designed modern architectures, he refuses to accept many of the things he dogs in context.

  94. [RMS] Lisp by Anonymous Coward · · Score: 0

    "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"."

    RMS recommended the same thing.

  95. Out of touch by Anonymous Coward · · Score: 0

    Sounds like someone is out of touch with modern computing and is content to rest on his laurels and talk about how everything was better in the Good Old Days (TM).

    It is too bad because if he actually understood the needs of modern software development, he might be able to do something more than continue to flog the dead horse of smalltalk.

  96. Minimum standards for humour by 2901 · · Score: 1

    A matrix multiply in Common Lisp looks like this:

    (defun matrix-multiply (a b)
    (assert (= (array-dimension a 1)
    (array-dimension b 0)))
    (let ((c (make-array (list (array-dimension a 0)
    (array-dimension b 1)))))
    (loop for i below (array-dimension a 0) do
    (loop for j below (array-dimension b 1) do
    (setf (aref c i j)
    (loop for k below (array-dimension a 1)
    sum (* (aref a i k)
    (aref b k j))))))
    c))

    You are trying to tease smug lisp weenies by saying that their language is a pure functional language. That doesn't have enough truth in it to sting or to amuse.

  97. Minimum standards for [Typing] by Anonymous Coward · · Score: 0

    Funny, but true. The only bad thing about programming is all the typing. That's one of the reasons Perl is popular. Although APL is much more compact (your matrix multiply would be on one line).

    1. Re:Minimum standards for [Typing] by Anonymous Coward · · Score: 0

      Although APL is much more compact (your matrix multiply would be on one line).

      In APL, a matrix multiply would be one CHARACTER. (Only slightly tongue in cheek.. I think it's something like A+.B.)
  98. What 60s GUIs is he talking about? by Medievalist · · Score: 1

    AK: PARC is incorrectly credited with having invented the GUI. Of course, there were GUIs in the '60s.
    OK, I'll bite. I don't remember any GUIs in the 60s... what were they?
    1. Re:What 60s GUIs is he talking about? by Cmdr+TECO · · Score: 1

      Off the top of my head, Sutherland's Sketchpad.

      --
      echo 33676832766569823265328479713269.8639857989Pq | dc
    2. Re:What 60s GUIs is he talking about? by Medievalist · · Score: 1


      Oooh, good one.

      Thanks!

    3. Re:What 60s GUIs is he talking about? by pHDNgell · · Score: 2, Interesting

      OK, I'll bite. I don't remember any GUIs in the 60s... what were they?

      check wikipedia (and update it if you find anything else)

      --
      -- The world is watching America, and America is watching TV.
    4. Re:What 60s GUIs is he talking about? by novus+ordo · · Score: 1

      I believe that back then they were called punch cards.

      --
      "You're everywhere. You're omnivorous."
  99. Slated for release. by Anonymous Coward · · Score: 0

    "Yes, Grasshopper, it is good that you are learning to Question Authority. But, you should also Listen to Authority's Response, and if it turns out that Authority is Indeed Correct, you are obliged to Admit It."

    Lisp is nice, Slate is better.

    1. Re:Slated for release. by Anonymous Coward · · Score: 0

      Haskell is the best.

  100. Re:Lisp has NEVER been a 'pure functional language by kronocide · · Score: 1

    Yet, no Lisp flavor has a feature that comes close to CPAN in saving time and money, and ensuring reusability of code and knowledge. ;-) The power of the language lies in the pragmatics, more than the semantics. That's why semantically deprived languages such as VB can still thrive.

    I find "(+ a b c d e)" shorter and clearer than "a + b + c + d + e", myself.

    That, of course, simply proves the point of the original post. People generally know infix notation, and would find the above unintelligible.

  101. Masterful! by alienmole · · Score: 1

    Didn't come off too well? Perhaps you didn't mean to craft the ideal troll, cleverly using the subject line and first sentence to sucker people into completely missing the actual content of your message, but you did it, and you should revel in the results! I hereby declare you King of the Trolls for today!

  102. Re:Lisp has NEVER been a 'pure functional language by kahei · · Score: 1



    I've used LISP for 70 years...

    Close, but no cigar. Lisp was invented in the late 1950's, so it's a little over 45 years old today.


    That is tragic.

    I knew there would be some hurt responses from the kind of people who can get stung deeply over someone else's disrespectful attitude to Lisp.

    But the above is truly, deeply, tragically tragic.

    Did I say it was tragic? I'll say it again.

    In all my years of reading /., I've never seen someone Not Get It like that -- and I've been reading /. for over 256,000 years.

    --
    Whence? Hence. Whither? Thither.
  103. Too bad by mattr · · Score: 2, Interesting

    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.

    1. Re:Too bad by Rick+BigNail · · Score: 1
      " (well Niklaus Wirth's book was my beginning at a young age and according to Kay I've probably been damaged by it)"

      You know Oberon? That's cool.

      Or you are like many people and learn Pascal first? That's uncool:)

    2. Re:Too bad by mattr · · Score: 1

      Hi!

      Thanks for the reply. I started with Fortran on a key punch machine, then Integer Basic and Pascal on an Apple II, and didn't get a taste of Oberon until I had a Macintosh (I think a 512K SE). Couldn't say I "know" Oberon exactly but it was extremely, extremely cool. Almost head bursting in fact but I was shielded from it by some cluelessness.

      Hmm maybe I'll look for it on linux.

      Best,

      Matt

  104. Huh? by Big_Mamma · · Score: 1
    most undergraduate degrees in computer science these days are basically Java vocational training

    I don't know how it is elsewhere, but here (in the netherlands), we are taught to use and understand all kinds of programming languages, the usual c/c++/java, scripting languages and functional/logical ones, haskell and prolog, and even a 100 hours assignment about powerpc asm.

    1. Re:Huh? by Anonymous Coward · · Score: 0

      I don't know how it is elsewhere, but here (in the netherlands), we are taught to use and understand all kinds of programming languages, the usual c/c++/java, scripting languages and functional/logical ones, haskell and prolog, and even a 100 hours assignment about powerpc asm.

      Fabulous. Did you also learn terms like "transitive closure" and "maximum flow", or did you just pick up a bunch of syntaxes?

      I guess you can't really learn haskell without picking up category theory though ;)

    2. Re:Huh? by kaedemichi255 · · Score: 1

      Um, just because you learn 10 more languages doesn't mean the statement doesn't apply to you. That's like a carpenter learning how to use 10 more tools and gadgets, but still not knowing how to efficiently design a sturdy piece of furniture or something. Go ahead, flame away... but I resent your comment as it seems like you're part of the major influx of i-know-100-programming-languages-so-that-makes-me- more-qualified-and-special programmers that the article was referring to.

  105. Lisp is multi-paradigm, not functional by Anonymous Coward · · Score: 0

    This is either a bad joke or a troll.

    Lisp is not functional. It is multi-paradigm, or as I like to call it, zero-paradigm.

    You can write using a functional, declarative, object oriented, imperative or any other paradigm in Lisp. It gives no preference to any of these styles. Nobody stops you from writing spaghetti code in Lisp even. It has labels and gotos too.

    'a + b' is just as functional as (+ a b) is btw. It is prefix notation you seem too be critisizing. Your example isn't even a good one. For simple expressions like these it is really just convention and habit. Prefix is problematic for complex mathematical formulas. An infix package is available for CL to solve that problem.

    Infix however has problems with operator preference. For C, you need to have the whole operator preference table in your head to decode things like these: (*a[i]++ >> --i). With prefix the order of evaluation is much more obvious.
    The main reason for prefix in Lisp is that it greatly simplifies the AST of the code. Simple ASTs allow one to treat code as data and thereby extend and adapt the language to the problem domain.

    1. Re:Lisp is multi-paradigm, not functional by Anonymous Coward · · Score: 0

      (*a[i]++ >> --i) /* ((*((a[i])++)) >> (--i)) */

      It's an undefined behaviour. i is both modified and accessed without a sequence point in between and this access doesn't happen for the sole purpose of determining the new value of i.

  106. Wow. Captain obvious to the rescue. [n/t] by mizhi · · Score: 1



    FILLER

    --
    Humorless sig goes here.
  107. On the contrary-ITT, DeVry. by Anonymous Coward · · Score: 0

    Hehe. And the funny thing is how people make fun of schools like DeVry and ITT. But in both you first learn the practical aspects (AS), and then if you want to move on to the theoretical(BS)? You can do so easily. Then after that you can get your MS in either a traditional school, or some other field of endevour (MBA). Maybe what you all need is a good dose of humility?

  108. Answer: Heraclitus by sharkey · · Score: 1

    Question: What is the super-strong being made of a cross between a half-man, half-god mythological character and a fictional part of a woman's body?

    --

    --
    "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
  109. Eiffel is great, ESTUDIO sucks by crimethinker · · Score: 1
    I'd have to agree 100%. (Does that make me an AOHeller? "ME TOO!")

    The Eiffel language has some very good design decisions, but the IDE was all right-clicky this, and drag that, and so on. If memory serves correctly, you set a watch on a variable by dragging it's textual name to a "watch" button. Retarded with a capital "tard." Also, I tried to find a way to compile from a makefile and command-line, being the junkie that I am, but couldn't and eventually gave up.

    Of course, I've always been required to use C/C++ (and assembly lately) in my job, never had a chance to even suggest an alternate choice of languages, and this seems to go back to the point of an earlier poster: we don't use something other can C/C++ on our projects because "nobody" else is using it on their projects.

    -paul

    --
    Pistol caliber is like religion: everyone has their favourite, and theirs is the only right choice.
  110. On giants.. by Anonymous Coward · · Score: 0

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

    Often misquoted. Really, he was griping that he wasn't able to extend his vision to subatomic particles, relativity, and the Grand Unification Theory. The actual quote was "If I haven't been able to see farther, it's only because giants were standing on my shoulders"

    :-)

  111. Shakespeare snobbery by gregalton · · Score: 1

    I was tempted to let all this go -with no strong opinion on compilers and all that- until I read that "But they forgot that you have to be more sophisticated and have more perspective to understand Shakespeare." This set me off. Wrong! The best thing about Shakespeare is not that you have to be sophisticated to understand it, but that every time you read Shakespeare (with more perspective, but not necessarily sophistication), you understand MORE. If it's done well, you always understand Shakespeare. You can just understand more or less of it. Sometimes sophistication helps, sometimes it gets in the way. Shakespeare was frequently bawdy, filthy, down-to-earth, and a number of other things, but often FUNNY. And often not in any particularly sophisticated way. It just gets better when you read more of it, with new perspectives. This kind of snobbery is what gives Shakespeare a bad name. And the parallels to computer languages seem, at least to me, to be obvious. Theatre and computers should also be accessible. A rich experience can include a "non-elegant" experience.

  112. Smarter than... by Mark_Uplanguage · · Score: 1

    me. If you RTFA you'll see that unless you were there in the 60's at PARC and other places - Dr. Kay has not only seen way more than you're average slashdotter (pardon the gross generalization I really don't know you that well), unless of course you received a Phd in 1969 and have continually headed some of the brightest technology think tanks in the U.S. I believe Dr. Kay's thoughts are fairly accurate (not that I know what I'm talking about either) and just prove the point that all programmers know - it's always about tradeoffs. Listen to what he says, and if you want to be a better programmer learn more about the history of computer languages.

    --
    "The difference between stupidity and genius is that genius has its limits." -- Albert Einstein
  113. Re:Lisp has NEVER been a 'pure functional language by Tiny+Elvis · · Score: 1

    but the prefix form also allows things like:

    (apply #'+ some-list-of-numbers) ; apply + to an arbitrary list of numbers

    or

    (apply #'< some-list-of-numbers) ; is list sorted?

    fyi #'+ is how we refer to the function '+'

    With infix notation you'd have to hack up some ugly loop..

  114. Minor copy editing by Anonymous Coward · · Score: 0

    its [It's, abbreviation of "it is"] amazing how freaking [fucking] terrible grammar nazi's [correct spelling: grammar Nazis; correct word: purists] are at being correct here on slashdot [Slashdot]. One would think they'd pass secondary English courses before they'd make a public attempt [incorrect tense], but nOOooOo [no]...

    Three cheers for the anti-grammar nazi Threni!
    [again, Nazi means "Nationalsozialistische" ("National Socialist") historically referring to NSDAP and has nothing to do with purism or linguistics]

    Now, lets
    [let's, abbreviation of "let us"] police our ranks and make sure we only do this to people who are attempting to do it to others. After all, this IS [typographical error, capitalisation instead of italics] informal writing for the most part....until someone opens the can of worms by "correcting" someone else's post desings [designs] their [one's] post. [hard to parse]

    And geeze
    [Jesus,] people...perl [Perl] solves real needs for sysadmins [should be e.g. solves problems of, et al.]. Better than freaking [fucking] python [Python--though that is a good point nonetheless] or some crap, and can do things that are awkward in any shell. [sidenote: Perl, awk, shell--good pun] And, as others have pointed out, there are all the mods [modes? modifications?] that are available... only an academic could say perl is "a real problem in the long term." [your usage of "academic" seem to imply pejorative semantics]

    1. Re:Minor copy editing by Anonymous Coward · · Score: 0

      Nazi means "Nationalsozialistische" ("National Socialist") historically referring to NSDAP

      To be perfectly pedantic, 'Nazi' is not an adjective at all (at least not in the orginal German) and refers to an NSDAP member.

      I do, however applaud your taking to task the unfortunate tendency of using the appellation in so trivial a context. One is reminded of Peter Gay's introduction to the English translation of Karl Dietrich Bracher's Die deutsche Diktatur, where he rages against the "facile abuse of the terrible words of the 1940s."

    2. Re:Minor copy editing by Anonymous Coward · · Score: 0

      > > Nazi means "Nationalsozialistische" ("National Socialist") historically referring to NSDAP

      > To be perfectly pedantic, 'Nazi' is not an adjective at all (at least not in the orginal German) and refers to an NSDAP member.

      Thank you, I didn't now that.

      > I do, however applaud your taking to task the unfortunate tendency of using the appellation in so trivial a context.

      I just hate it when people use words that they don't understand--this is just so ironic! ;)

      Cheers.

  115. I used to use Perl for serious apps by Julian+Morrison · · Score: 1

    Yes, you can write it legibly, but as I discovered that's not the problem. The real problem with Perl is that (a) its nonlinearities make it very nearly impossible to predict and intercept all failure modes of a (sub)program, and (b) it not merely fails to support, but actively subverts hard interfaces. In practise what this means is: you can never cleanly wall off a piece of Perl code and say "this is known to be correct and will fail informatively if misused". There is always some novel way for it to blow up, which will bite you in the ass when your program complexity rises above n (where n is actually quite small).

  116. Re:Nitpick (correction) by nicomachus · · Score: 1

    Well, I seem to have mixed up two different comments from cogitolv. It was a different comment that cited a web page with the misspelled versions of Heraclitus and Pythagoras: http://n4bz.org/gsr/gsr7.htm. Sorry.

  117. Re:Nitpick (correction) by geoffspear · · Score: 1
    GP poster actually introduced the spelling error in his comment; the page he linked to uses the "correct" spelling, insofar as there is a correct transliteration from any language into another.

    Of course, making spelling errors when correcting someone else's spelling is a good way to attract lots of meta-pedantic flames.

    --
    Don't blame me; I'm never given mod points.
  118. Economics of programming language design by 2901 · · Score: 1

    It started with great excitement. FORTRAN, LISP, BASIC, ALGOL, PASCAL,
    PL/1, FORTH, COBOL. The economic underpinnings were clear enough, and
    had three aspects:

    1)The early versions of these languages left plenty of room for
    improvement. That is to say, a new improved language offered cost
    savings to the ultimate users of IT services.

    2)The early versions of these languages were relatively simple. It
    hadn't cost too much money to develop the language that far. Those
    who wanted to start from scratch on a new language had to justify a
    relatively modest expense to duplicate what had already been
    achieved, and could point to the prospect of large savings to come
    under point 1.

    3)Compared to today the languages were not widely
    deployed. Businessmen did not have to think in terms of duplicate
    staffing, with one team skilled in the old language to maintain the
    legacy code base, while another team skilled in the new language
    work on duplicating the code base, and one day moving on to writing
    new code that will eventually save money.

    As the years rolled by languages got better. The benefits of new
    computer languages were hit by diminishing returns. The threshold
    cost, the money you must spend to get the new language competitive
    with the old language, rose and rose. The installed base grew, and
    with it the costs of change.

    A theoretical solution to these problems was the programmable
    programming language. Rather than start from scratch, reprogram the
    old language. Under the name "extensible programming languages" this
    idea had failed serveral times. Sticking points included:

    1)Extension mechanism not powerful enough (C #define)

    2)Extension mechanism too complicated(ALGOL68C,PROLOG)

    3)Base language too simple(FORTH)

    There is a three-way pull. The simpler the base language, the easier
    it becomes to make a powerful extension mechanism without it becoming
    too complicated.

    By 1990 it was becoming clear that the CL macro system made CL into
    the first fully practical programmable programming language. This
    revolutionised the economics of programming language design. Compare
    making a new language feature available by starting from scratch with
    programming it into a programmable programming language. The advantage
    of starting from scratch is that you can get the syntax "just so". If
    you want the cost saving of using a programmable programming language,
    you have to accept the syntax of the base language, and some mild
    constraints on the syntax of your added feature. But there are
    savagely diminishing returns in fiddling with syntax. That last 10% of
    getting the syntax just so saves what? 1% of programming cost,
    perhaps, if you are lucky and the new syntax really is an improvement.

    With a programmable programming language the "new feature" is simply a
    file a macro-definitions. All your legacy code still runs in the "new
    language". Your programmers simply have to learn the extra bit. No
    starting over.

    A fully practical programmable programming language destroys the
    economic rational for programming language design. The point of a
    computer programming language is to save money. The point of a new
    language is to save more money. There is no point in trying to save
    money the expensive way, rather than the cheap way.

    Very few persons have understood this. Programmers in other languages
    haven't. I don't think many CL programmers have realised either. CL is
    politics, not art. I think the reaction of most Lispers, to realising
    that not only has Lisp won, but specifically CL has won, is to say "Oh
    shit, if we had realised that we were going to be stuck with it for
    all eternity, we would have done a better job of designing it."
    Tough. The era of computer language design ended 13 years ago. Sorry
    you missed it.

    Now you are probably aware that computer language desig

  119. Right on the money... by rewt66 · · Score: 1
    But, see, Alan Kay is coming from an academic/research environment. He cares about creating the Perfect Solution in theoretical terms. People in business are much more pragmatic. They (mostly) aren't trying to sell computer languages, they are trying to find languages that are Good Enough to build what the business does sell.

    And it's all good. We need people like Alan Kay, because better languages are good for businesses, too. And we need the businesses, because stuff kept locked up where only the academics can admire the beauty of the Perfect Solution doesn't do the rest of us a bit of good...

  120. Why Ada is good by Julian+Morrison · · Score: 2, 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!

    1. Re:Why Ada is good by Anonymous Coward · · Score: 0
      A proper type system is worth a heck of a lot more than a few characters saved typing!


      Ironically, a proper type system will save you typing anyway. In the following:

      var x = 10;
      var y = {"hello", "bye-bye"};


      A compiler with a proper type system will be able to infer the type of x and y as soon as they are initialized, and act accordingly. Therefore, the programmer should hardly ever have to declare the type of a variable.


      When we look at a C++ template function, and find this:

      template<class T>
      int max(T a, T b) { return a > b ? a : b; }
      We might think we're looking at something cleverly terse, but in fact, we're looking at a lot of unnecessary verbiage. In a language with proper type inference, the same code would be written thus:
      int max(a, b) { return a > b ? a : b; }
      ...and it would be just as generic (more so, probably), and just as type-safe, but shorter than even the non-generic form in C or C++.
    2. Re:Why Ada is good by Anonymous Coward · · Score: 0
      To make the point clearer, the normal use would be something like:
      type Array_Bounds is Integer range 1..5;
      A : Array(Array_Bounds) of Integer;
      begin
      for I in A'range loop
      -- do stuff
      end loop;
    3. Re: Why Ada is good by Black+Parrot · · Score: 1


      > To make the point clearer, the normal use would be something like:

      type Array_Bounds is Integer range 1..5;
      A : Array(Array_Bounds) of Integer;
      begin
      for I in A'range loop
      -- do stuff
      end loop;
      Usually with a big gap between the declarations and the loop, or even with them in a different package.

      I like this stuff because it:
      a) expresses constraints on the state of the program, and
      b) makes it easier to concentrate on solving the problem at hand rather than worrying over the details of pre-declared abstractions. After I put a bit of thought into the design of my data structures, I end up programming at a "higher level" than I do in most other languages I've used.

      --
      Sheesh, evil *and* a jerk. -- Jade
    4. Re:Why Ada is good by Anonymous Coward · · Score: 0

      yes exactly. the compiler knows the bindings of the instance to the type - so why doesnt the syntax of the language support it? the type of thing you propose above would make so much code like the rediculous STL so much more managable. the STL iterators should be able to be inferred from the instance variables so a simple for loop doesnt end up reaching over 3 or more lines of code.

      why not templatize the for() loop control structure itself so that it would be possible to have a templatized foreach rather than having to test against the last element + 1 of the container structure for instance. its rediculous that something like this has not been implemented.

      jxxx

  121. burroughs b5000 by Anonymous Coward · · Score: 0

    Some good information I googled up on the system he talks about:
    http://byte.csc.lsu.edu/~durresi/7080/reading/B500 0.htm

  122. perl books by Anonymous Coward · · Score: 0

    Try these, in order:
    1. Learning Perl
    2. Effective Perl Programming
    3. Programming Perl (hard to read, but good reference)
    You might also have a look at the Perl Cookbook too, when you get past stage 1.

  123. Squeak language has non-GPL elements. by beachdog · · Score: 1

    Following older slashdot postings about Dr. Kay's Squeak language I decided not to download it because it is not GPL'ed.

    I hope Guido van Rossum and Larry Wall eagerly absorb Alan Kay's ideas (especially "write a language in itself") and move the ideas out into the accessible world of GPL'd free documentation, and programs.

    The non-GPL publication universe is a get rich quick lime pit.

  124. Now that's just plain wrong by Julian+Morrison · · Score: 2, Insightful

    It has memory management, quite a sensible sort actually. First, you can manually deallocate things (like "free"). Second, you can take complete control of the memory allocation of a type via "storage pools" - allowing tricks like mark-and-release or garbage collection. Third, it's clever enough to free the storage for everything of a particular type, when that type goes out of scope. All of which makes a lot more sense than C's rather brute-force "malloc" and "free".

    Also, Ada leaves C in the dust for bit-flipping. You can specify layout of data down to the byte-order and bit-width, the exact modulus of modular integers, the exact delta of fixed-point numbers, etc etc.

    Personally I think the reasons Ada didn't catch on much more are down to an early lack of good compilers, and a stagnant library (no standard way to access sockets? Is this the 1980s?).

    1. Re:Now that's just plain wrong by tim256 · · Score: 1

      The statement Ada does not have the memory management/system programming facilities like C/C++. is true as the memory management/system programming facilities in Ada are very different from that in C/C++. For example you don't have crazy things like function pointers and a lot of the generally unsafe features that C/C++ has to make system programming easier. Is it even possible to write a device driver in Ada?

    2. Re:Now that's just plain wrong by Minna+Kirai · · Score: 1

      makes a lot more sense than C's rather brute-force "malloc" and "free"

      Those aren't even part of C. They're function calls in an external library, and have nothing to do with the language itself.

      That's part of the reason C succeeded, and Ada failed. Ada made specific language concepts for things like memory management and threading, which C left for external libraries. That made porting Ada to a new platform difficult and error-prone, because capabilities the platform might not support were required to be reimplemented.

      You can specify layout of data down to the byte-order and bit-width,

      Replace "can" with "must", because what some view as a priviledge, others will find an obligation.

      Ada didn't catch on much more are down to an early lack of good compilers

      Which was a direct consequence of language overcomplexity. Writing a complete, minimally adequate C compiler is 6-month's work for a talented undergrad. Writing a complete Ada compiler...?

    3. Re: Now that's just plain wrong by Black+Parrot · · Score: 2, Informative


      > > You can specify layout of data down to the byte-order and bit-width,

      > Replace "can" with "must", because what some view as a priviledge, others will find an obligation.

      Except that it's not an obligation in Ada. It's an option available for when you need it. I almost never use it.

      > > Ada didn't catch on much more are down to an early lack of good compilers

      > Which was a direct consequence of language overcomplexity.

      Yes, Ada overchallenged the compiler technology of the time. That problem has long since been surmounted: you can now get the GPL'd source code for a compliant Ada compiler (GNAT), and you can get commercial support for it if you wish (Ada Core Technologies).

      > Writing a complete, minimally adequate C compiler is 6-month's work for a talented undergrad. Writing a complete Ada compiler...?

      Given that the compilers already exist and are freely available, that's hardly an issue when choosing a language for an application. I happen to prefer the language that lets me write minimally buggy, highly maintainable code quickly, even if it did take someone more work to create the compiler.

      --
      Sheesh, evil *and* a jerk. -- Jade
    4. Re: Now that's just plain wrong by Black+Parrot · · Score: 1


      > [...]as the memory management/system programming facilities in Ada are very different from that in C/C++. For example you don't have crazy things like function pointers and a lot of the generally unsafe features that C/C++ has to make system programming easier.

      Actually it does; I wrote an application that uses an array of function pointers so that the logic calls the appropriate function based on the index. (IIRC, the index was an enumerated type.)

      However, I suspect that it's still safer than in C/C++, because of the strong type checking on pointer usage.

      > Is it even possible to write a device driver in Ada?

      Here's the first thing Google turned up. (For those who don't have access to the ACM portal, the short answer is "yes".)

      Also, as someone else has already noted, the need for embedded systems was one of the key design considerations for the competition that produced Ada.

      --
      Sheesh, evil *and* a jerk. -- Jade
    5. Re: Now that's just plain wrong by tim256 · · Score: 1

      Yes, I was wrong about the funtion pointers. I never used them when had to write Ada code in college. I just figured it would be unlikely that they would exist. You'd think that code used to control things that blow up wouldn't have macros, memcopy-type functions, function pointers, and pointer arithimetic. But i guess function pointer aren't really unsafe, they just are unusual.
      I also find it hard to believe that one could write an entire Linux, Windows, Unix, or Mac OS device driver for a complicated device in any other language but C/C++. You could write parts of it in some languages, but don't you need the to link to the os header files for the device driver interfaces? But, as everyone has pointed out already several times, I'm not an Ada expert. I've always had better things to do than learn a programming language that you won't help me get a job or be more productive with my current job.

  125. Re:Lisp has NEVER been a 'pure functional language by kronocide · · Score: 1

    $sum += $_ foreach @list_of_numbers;

    @sorted_list = sort @unsorted_list;

    I'm not saying prefix isn't useful, just that the point in the first post was that it is not, to a vast majority of would-be users, clearer.

  126. Re:Lisp has NEVER been a 'pure functional language by kronocide · · Score: 1

    Btw, '$_' is perl's anaphoric pronoun. ;-)

  127. Re:Let's hear it for old quotable compuscience far by Art+Tatum · · Score: 1

    Oh, looky here! ---> . That's the world's tiniest violine playing...

    It is spelled "violin." Philistine!

  128. Re:Let's hear it for old quotable compuscience far by kronocide · · Score: 1

    lol I should have run the spell checker. My universal defense is that English is my second language. ;-)

    Or maybe I meant:

    Main Entry: violine
    : a moderate to strong violet :-D

  129. Re:Lisp has NEVER been a 'pure functional language by kronocide · · Score: 1

    Well, in the case above, it's actually cataphoric. (Appears before its referent.) :-D

  130. Re:Let's hear it for old quotable compuscience far by Anonymous Coward · · Score: 0

    The day you win an Alan Turing award is the day that I'll pay any attention to you. Besides his work on Smalltalk, Kay was one of the inverters of the window paradigm at Xerx PARC. I'm sure that you wrote your snide self serving remarks in an environemnt based on his work. You are a sad little fart who is dropping his pants and wagging is small little penis in order to make fun of adults. Go and masterbate on some IRC channel and leave Slashdot to people who actually have some functioning brain cells.

  131. Re:Let's hear it for old quotable compuscience far by kronocide · · Score: 1

    The day you win an Alan Turing award is the day that I'll pay any attention to you.

    Or perhaps right now is that day. :-)

    You are a sad little fart who is dropping his pants and wagging is small little penis in order to make fun of adults.

    And you are obviously not one of those adults.

    Go and masterbate on some IRC channel and leave Slashdot to people who actually have some functioning brain cells.

    It's "masturbate."

    Have a nice day! :-)

  132. Re:Let's hear it for old quotable compuscience far by Pikewake · · Score: 1

    I'm not sure we live in the same "real world".
    I agree with you on the point that some people who take an "academic" view tend to ignore the harsh economic reality of the real world. I have also learned from personal experience that the "best deisgn" is worthless if it isn't based on time/resources/cost factors.

    On the other hand, up to 90% of my time is spent on helping companies recover from these "quick fixes" that turned out to be neither quick nor a fix. I should be happy: I get paid well for this, but my clients are not as enthusiastic. I have seen many quick fix solutions and with one or two exceptions none of them have solved the problem on time and budget.

    In almost any other business, the people responsible for buying or delivering these solutions would be fired immediately for incompetence. But we are allowed to make the same mistakes over and over again without taking the slightest hint from our academic friends...

  133. Re:Let's hear it for old quotable compuscience far by kronocide · · Score: 1

    I hear you, and as I said below, as a CTO, it was my job to argue against the quick fixes.

    However:

    But we are allowed to make the same mistakes over and over again without taking the slightest hint from our academic friends...

    The funny thing is, a not insignificant portion of the people in the industry are compuscience majors. They know all these things. After a few years you start to suspect that things don't happen the way they do because people are stupid or ignorant, but because the day-to-day priorities are the way they are.

  134. Re:Lisp has NEVER been a 'pure functional language by lisp-hacker · · Score: 1

    Yet, no Lisp flavor has a feature that comes close to CPAN in saving
    http://www.cliki.net/asdf-install
    is a package, going that way. But You are insofar right, the community of Lispers is not that large to
    produce tons of halfbaked code...

    Martin

  135. Re:Let's hear it for old quotable compuscience far by Art+Tatum · · Score: 1

    Actually, I was just playing off your comments about Kay. It was a joke. :-)

  136. Definition of "good" by 21mhz · · Score: 1
    There are many aspects of what constitutes a good programming language for different people:
    1. Conceptually perfect and aesthetically beautiful.
    2. Effective at making the computer do stuff you want it to.
    3. Facilitates development of large projects by ever-changing teams of middle-to-good programmers.
    4. Has decent safety/security model.
    5. ...

    It seems that he values only the first of these qualities. So what if your favorite language can describe an interpreter for itself. Can it also describe system calls and threading primitives? Programs still have to run on silicon CPUs in operating system environments. There are no processors available that could grind S-expressions natively. It takes some translation to do that. If you know it might be otherwise, why not step down from your high horse and give some insights, instead of making witty remarks about the unwashed masses?

    Late binding and dynamic typing are good if you are doing little programs, or you've got that air of impeccability around you. Us mere mortals would rather thank the compiler for finding stupid mistakes at the translation time.

    Yes, admit it: the world is full of stupid people, and it is run by them. If there is a tool that fits the job, even if it doesn't require a science degree to operate, it shouldn't be frowned upon.

    --
    My exception safety is -fno-exceptions.
  137. PHP RuleZ by N8F8 · · Score: 0, Offtopic

    Kant...stop...self...must..post...stupid...comment

    --
    "God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
  138. Re:Lisp has NEVER been a 'pure functional language by kronocide · · Score: 1

    Lispers is not that large to
    produce tons of halfbaked code...


    Ouch, sour grapes. There is actually some decent perl code out there. And if you have to access an old FoxPro database because there is actually some real business need with a time limit involved, you will cry happy tears at finding an old v. 0.01 procedure-oriented library to do it.

    All this said, I am a big fan of Prolog, and liked what I saw of Scheme, and I certainly hope that those languages are used more and that the communities grow.

  139. PHP is a dog's breakfast by mfearby · · Score: 1

    PHP good for web programming? Sure, if you like using a dog's breakfast for a "language". PHP seems like an after-thought and there are no standards. It seems like it's a conglomeration of every bad programming construct it could find (as is the documentation, or should that be, IRC-logs-dressed-up-as-documentation?)

  140. Yes, you can do that, RTFM by Julian+Morrison · · Score: 2, Funny

    You can do all that stuff, but I'm not the manual, go read it. Don't forget Ada was amongst other things designed for programming on the bare metal, for embedded (military) apps.

  141. misplaced optimization by Anonymous Coward · · Score: 0

    Focusing on the programming language is a misplaced optimization effort.

    The correct focus is the whole development process from specifications to debug to evolution (all successful large software projects evolve to that from small simple successful software projects) and includes the human management aspect.

    Only the open source development process is even coming close to getting this right. See IBM's relationship with open source to see the right path, and see HP management practices to see how to screw up the process.

  142. Oh, please. by crazyphilman · · Score: 1

    Big deal. So Alan Kay thinks the languages we're all using are crap, that our computer science degrees aren't as good as his generation's, that we focus too much on practical skills rather than lofty theory, that the way HE and his generation did things is the One True Way... Yawn. Wake me up when something interesting happens.

    By the way, if Heraclitus was around today, he sure wouldn't be doing something practical and pedestrian like computer programming; he'd probably be panhandling in the park, surrounded by NYU students. FYI.

    --
    Farewell! It's been a fine buncha years!
  143. Smalltalk technique by tilrman · · Score: 1
    The technique that we had for Smalltalk was to write the VM in itself...

    ... but then when we compiled it, it optimized itself out of existence.

  144. Re:Snobbish LISP Advocacy by Anonymous Coward · · Score: 0

    Excellent, one less person to compete with me for jobs that require intelligence. Enjoy your visual basic/java, at least until you are instructed by the industry gurus that the next best thing (read: something one increment closer to LISP) has arrived and that you are now considered redundant.

    I realise you are incapable of recognising this but...

    C:
    myfunc(a, b)

    LISP:
    (myfunc a b)

    Can you count the paranthesis for me? Surely even you can do that. Oh, but you want to talk about operators like +, cause they arent real functions... Oh wait, yes they are.. C just has a special syntax for them. Yep, just another special case. Enough special cases, and you end up with Perl. Now whose syntax looks stupid?

  145. Re:Wow. Captain obvious to the rescue. [n/t] by Ph33r+th3+g(O)at · · Score: 1

    I think these references are from back when he was only Lieutenant Obvious, though.

    --
    I too have felt the cold finger of injustice.
  146. Complexity has a constant minimum by Julian+Morrison · · Score: 2, Insightful
    Those aren't even part of C. They're function calls in an external library, and have nothing to do with the language itself.

    That's part of the reason C succeeded, and Ada failed. Ada made specific language concepts for things like memory management and threading, which C left for external libraries.
    Which is, in its way, the reason C "failed", too. It seems to be a law of programming that the complexity required to implement a real-world useful language has a constant minimum. If you leave it out of the syntax, you'll have to include it in the library. And if you leave it out of the standard library, it will be implemented differently in each implementation's nonstandard library - trashing the language's supposed portability.

    In other words, C isn't really a language. It's a core upon which a language can be built. C plus the standard library plus posix is a language. And even that relies heavily on the preprocessor to mutate your code to match local implementation quirks.
  147. You are both idiots by Anonymous Coward · · Score: 0

    > > Lisps awkward syntax (yes, yes, I know "it's not awkward, it's minmal!") will probably prevent it

    > Coming from someone who advocates Perl-related technologies, that is a ridiculous statement. Perl is a stellar example of how even the worst syntax can't keep a language from being used.

    Insightful? You both completely fail to get the point. Lisp has NO syntaxt! That's the entire point! It is a syntax-less language, where you write a parse tree directly. Perl 5 has the most complex syntax than only Perl 6 will beat. Most of other languages have more syntax than Lisp but less than Perl. Perl and Lisp are two extrema. Your argument is as insightful as this:

    - Go is better because it has simpler rules!
    - I disagree. The stock market is better because the rules are more complex!
    - This is not true! Go has simpler rules!
    - Not true! The stock marker has more complex rules!
    - No!
    - Yes!
    - Nonononononononono!
    - Lalalalalalalalalalalala!

    Now you see why you both look like idiots to anyone who actually understands the most fundamental concepts of programming languages you are foolishly trying to argue about?

  148. Mod parent -1 clueless by pjt33 · · Score: 1

    If the great-grandparent post had correctly spelled Ubuntu that would be a sensible reply. However, Umbongo has much closer ties to the Congo than to RSA.

  149. Re:Let's hear it for old quotable compuscience far by Pikewake · · Score: 1
    The point I was trying to make is not that people are stupid or ignorant, but that they are allowed or even forced to behave in a stupid or ignorant way.

    People with degrees in CompSci are probably not as common here (Sweden) as where you are, but I have still worked with a lot of people who have a solid education in the fundamentals of computer science. Unfortunately, most of them have not have had a single chance to apply this knowledge since they left the university. Managers, sales people and clients usually have little or no knowledge about what the CompSci people can do, and therefore their skills are hardly ever needed.

    Our main problem is that there is no reason why a client should pay a consultant with a degree in CompSci to do a job, when they can get the same work done for a fraction of that cost if they hire a self-taught independent contractor or turn to a "code factory" in Lithuania or India. We can never compete on a market where the only commodity is "quick fix solutions".

    One thing I see happening right now is that both clients and the providers are getting aware of this situation and moving towards a more segmented market. On on hand you have the "skilled craftsmen" who can provide the quick solutions and repairs along with a solid experience with the tools neded to create these solutions. On the other hand you have the people with a more abstract or strategic approach to systems development, who can make sure that the contructed solutions satisfy customer needs and are efficient and easy to maintain. The CompSci people should not even bother with the first category, because they are overqualified in one sense and usually not specialized enough to be efficient in another. In a more strategic role, though, I really think that we can use our academic backgrounds to deliver value to our customers and that they are willing to pay for it.

  150. The difference between a computer scientist and .. by juggledean · · Score: 1

    a real scientist it that a real scientist is using yesterday's computers to solve tomorrow's problems and a computer scientist is using tomorrow's ...

    let the recursion continue ...

  151. Re: I had Heraclitus once by Black+Parrot · · Score: 1


    > he probably had what Johnny Cash called "ring of fire"

    Actually, I think Johnny was singing about eating p*ssy:

    I went down, down, down
    And the flames got higher.
    etc.

    --
    Sheesh, evil *and* a jerk. -- Jade
  152. A two-minute awk lesson by Medievalist · · Score: 1

    Let's think of a "real-world" situation...

    OK, let's suppose I've got a system running host tables for IP address lookup, and I want to convert it to using DNS on BIND.

    The host table will be in /etc/hosts and it will look something like this:

    10.1.1.1 nicebox
    10.1.1.2 naughtybox
    10.1.1.32 uglybox
    10.1.1.45 fancybox

    But let's pretend it has 654 entries in it, otherwise this is too trivial of a problem, you'd just use a text editor :^) .

    We want to translate this to a BIND zone file for use by the named daemon... so it needs to end up looking more like this:

    nicebox IN A 10.1.1.1
    naughtybox IN A 10.1.1.2
    uglybox IN A 10.1.1.32
    fancybox IN A 10.1.1.45

    The BIND format has a few other things that the hosts file doesn't, like SOA records and $TTLs, but those things are all in a couple of lines at the top of the file, so we'll add those later by hand. The place where awk is going to massively speed up the job is the bulk reformatting - remember, I said this file has 600 and some lines. I frequently use gawk on files with many thousands of lines; I've re-written 500+ line /etc/shadow files with it (on running systems) occasionally too.

    Here we go!

    awk '(NF=2){print $2 " IN A " $1;next}{print "#bogon " $0}' /etc/hosts >/var/named/zone1

    That will do 90% of your formatting for you and write the result to /var/named/zone1. Any strange lines (such as hosts with multiple aliases) will be converted into comments with the leading string "bogon" so you can find them easily.

    Pop into your favorite text editor, add SOA + NS records (and hand-format any bogons) and you are done.

    But you'll also need an inverse zone file... so we'll do that too:

    awk '(NF=2){print $1 " IN PTR " $2;next}{print "#bogon " $0}' /etc/hosts >/var/named/inverse1

    Awk is optimized for reading files (notice how there are no OPEN or CLOSE statements needed here) and splitting them into fields on a regex. By default, the field separator is whitespace ( something like /\w*/ I guess) and the record separator is newline ("\n" on *nix boxes). Both FS and RS can be easily redefined, and awk is far more capable than perl for this particular operation (according to Larry Wall, anyway) though perl has its own specialities where it is better than awk.

    All gawk programs are composed of one or more "rules" of the form:

    pattern {action}

    The pattern is typically a regex. The default pattern matches all input lines. The default action is print. The default thing to print is the input record, unmodified. There are few enough operators, functions and commands that the average programmer can memorize them all in two weeks or so - the language does not draw its strength from having a bazillion reserved words, instead it has a simple and (mostly) elegant grammar.

    The $1 variable contains the content of the first field, $2 the second, etc ad infinitum. $0 is the entire record, unmodified. NF is the number of fields in the current record, NR is the number of records read so far. The command "next" says stop processing and get the next input record (i.e. skip the rest of the program). Semicolons or newlines end rules, but there is a continuation character that allows multi-lined rules if needed.

    These example programs contain two rules each. If a program is going to have lots and lots of rules, or it is going to be used more than once, you should write it in a file instead of doing it on the command line.

    When I've actually done this particular conversion, I've used much more complex code than this - because I'm too lazy to hand-edit much, so I generate the SOA in a BEGIN rule and manage edge cases like comments and multi-homed hosts in the code. But I wanted thi

    1. Re:A two-minute awk lesson by Anonymous Coward · · Score: 0

      Thank you very much for your reply. This is a wonderful comment. I am bookmarking it and I think you should put it on the Web somewhere as a short "Is it worth learning awk?" article. Very good stuff.

      OK, so I've actually started to experiment with awk. It turns out that I have both mawk and gawk already installed on my system (Debian). I'm not sure what's the difference so I'm using the one originally symlinked to /usr/bin/awk, i.e. mawk. It seems like a great tool and I am already starting to love it.

      Yes, I remember reading some text by Larry Wall explaining that awk is better because it can use regex as a record separator, IIRC.

      I have done very similar things like those that you describe. Sed was not enough, Perl one-liners quickly started to get too complicated, and now I see that it was exactly a place to use awk. Also, I see that I will never suffer using cut again with its delimiter stupidity. :)

      The only thing that seems strange at first is the print syntax:

      print $1 " " $2 " " $3

      where I would prefer:

      print "$1 $2 $3"

      ala shell's interpolation, but I'm getting used to that awkward syntax. ;)

      I have written a simple benchmark. It pipes 1000-line text file through 100 piped instances of filters that swap the first two columns of input, using Perl and awk filters. The result on my system is that awk is always at least 3 times faster (even more so when it's not in cache because the binary is 7 x smaller). I'll post the code in another comment in case anyone would want to check it out.

      Once again, thanks a lot for you reply. It's exactly what I was looking for to get me started. I'll probably buy some awk book now. Thanks!

    2. Re:A two-minute awk lesson by Medievalist · · Score: 1

      You're welcome. Thanks for the flowers! :^)

      I think Arnold Robbins' latest O'Reilly covers the differences between awk, nawk, mawk, oawk, and gawk - I know the author of mawk wrote the introduction.

      I've heard that mawk is pretty good, but I don't think it has the network socket interface or the fixed-field processing feature of GNU awk yet. I could be wrong.

      As for the ugly string concatenation syntax, I agree with you - but for a different reason! I dislike the way languages like shell and perl want to translate variables within quotes, I prefer explicit concatenation (i.e. I will use print 'total is ' . $total . "\n"; in perl rather than print "total is $total\n";) even though it's longer to type. Awk's use of the space - a so-called "invisible" character - for string concatenation is even more annoying, and it's the reason for the mostly when people say awk has "mostly elegant syntax".

      It seemed like a good idea at the time. --Brian Kernighan

  153. $ cat awk-vs-perl-bench by Anonymous Coward · · Score: 0

    #!/bin/sh

    lines=1000
    columns=2
    pipes=100

    s hebang="#!/bin/sh"
    awkcmd="awk '{print \$2 \" \" \$1}'"
    plcmd="perl -anle 'print \"@F[1,0]\"'"

    cat << END

    awk vs perl benchmark
    See: http://developers.slashdot.org/comments.pl?sid=138 807&cid=11628006
    Copyright (c) 2005 Anonymous Coward. All rights reserved.

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    Input: $lines lines, $columns columns; filtered by $pipes filters.

    END

    echo -n "Preparing input in $0.in ... "
    for l in $(seq 1 $lines)
    do echo $(for c in $(seq 1 $columns); do echo line$l/column$c; done)
    done > $0.in
    echo Done

    echo -n "Preparing awk pipes $0.awk.sh ... "
    (echo "$shebang"; echo cat \
    $(for p in $(seq 1 $pipes); do echo "| $awkcmd"; done)
    ) > $0.awk.sh
    echo Done

    echo -n "Preparing Perl pipes $0.pl.sh ... "
    (echo "$shebang"; echo cat \
    $(for p in $(seq 1 $pipes); do echo "| $plcmd"; done)
    ) > $0.pl.sh
    echo Done

    echo -e "\nBenchmarking awk pipes:"
    time cat $0.in | sh $0.awk.sh | wc -l

    echo -e "\nBenchmarking Perl pipes:"
    time cat $0.in | sh $0.pl.sh | wc -l

  154. Re:$ cat awk-vs-perl-bench - correction by Anonymous Coward · · Score: 0

    There should be no space in "s hebang" and in the URL.

  155. Re:Snobbish LISP Advocacy by Anonymous Coward · · Score: 0

    Oh no! You're going to beat me out for all those high-payiing LISP jobs! What will I do!?!?

  156. Re:Lisp has NEVER been a 'pure functional language by 2short · · Score: 1

    Ahh, Lisp. So elegant. So deeply loved by it's admirers. So entirely unused outside academia.

    I won't argue the merits of Lisp, because (while Lisp fans probably disagree) I think the merits of a language are largely in the eye of the beholder. But I would be curious to hear a Lisp advocates explaination for why it isn't more popular. And don't tell me the rest of the world isn't smart enough, or I'll want to know why the smartest people in the world, using the best language, have not made a bigger impact.
    I've written Lisp. It's fun, it's interesting. But when I (and a lot of other people) want to get stuff done, we don't choose Lisp. Most of the people I know who do choose to write in Lisp, aren't trying to make a ship date. They're trying to think about a problem in the abstract (not that there is anything wrong with that, but I'm trying to make a ship date)

  157. Re:Snobbish LISP Advocacy by alienmole · · Score: 1

    One little factual error in your ideas about Lisp is that it's no longer used much in ivory-tower academia. The typed functional languages like ML and Haskell are much more prevalent, and Scheme (which is surprisingly different from Lisp) is the only Lisp-like language used for teaching.

    The major uses for Lisp today seem to be in things like scientific application development, some financial applications, and things requiring seriously complex algorithms, like airplane travel routing systems.

    BTW, have you ever wondered why you're so angry at Lisp? Does the condescension you're complaining about bug you because you secretly believe it's valid? Really, there's nothing to be afraid of. I recommending reading SICP (google for it) and opening your mind a little. It'll help your programming career.

  158. not my point. by Stu+Charlton · · Score: 1

    I wasn't trying to make light of war. I deliberately picked an exagerrated set of events to juxtapose a very small, local social critique (language wars) to an international and important social critique, both of which start from just a few voices. Progress occurs through critique and dissent. It's all politics, it's just a matter of what community you're dealing with.

    --
    -Stu
  159. Re:Snobbish LISP Advocacy by Loundry · · Score: 1

    BTW, have you ever wondered why you're so angry at Lisp?

    I'm not angry at LISP at all! I'm angry at LISP *advocates*, not some inanimate programming language.

    Does the condescension you're complaining about bug you because you secretly believe it's valid?

    I have far too much self-esteeem for a tactic like that to work on me. Try something else.

    Really, there's nothing to be afraid of. I recommending reading SICP (google for it) and opening your mind a little. It'll help your programming career.

    I'm not afraid at all. I think elitism sucks. And I have never met a LISP advocate that wasn't an elitist, holier-than-thou, condescending asshole. (The same goes for OpenBSD jackasses.) They deserve to be mocked for it since we all know that our fate is to be food for worms and bacteria and their stupid little programming language won't mean jack shit then.

    Furthermore, if I wanted to help my programming career, then I'd learn C++. Why would you reccommend LISP over C++ if your goal is to help me in my programming career?

    --
    I don't make the rules. I just make fun of them.
  160. Re:Snobbish LISP Advocacy by alienmole · · Score: 1
    Furthermore, if I wanted to help my programming career, then I'd learn C++. Why would you reccommend LISP over C++ if your goal is to help me in my programming career?

    For the same kinds of reasons that they teach languages like Scheme in universities. What I personally recommend is learning more about the basic principles of programming, which is why I mentioned SICP.

    But if you learn a language like Lisp or Scheme properly, you'll be exposed to many of the ideas covered in books like SICP, so learning the language isn't a bad substitute for studying the underlying concepts.

    The reason I would recommend doing that over learning C++ is that it provides a foundation for understanding any programming language - it'll be easier to learn and understand C++ afterwards. This has been studied in universities - students who go through the more theoretical introduction to CS concepts using Scheme do better on subsequent courses in Java and C++ than students who start out learning the latter languages (I can dig up references if you care).

    The foundational ideas I'm talking about help you to design better programs, even when you're using mainstream languages. To give you some idea of what I'm referring to, I recommend reading The Role of the Study of Programming Languages in the Education of a Programmer (PDF).

    One problem Lisp advocates face is, how do you explain to someone that learning Lisp will teach them important things about programming that they don't yet understand? People don't want to believe that, so they respond negatively, and things devolve from there because both sides are human.

    My personal experience is that I spent almost 20 years programming in languages like C, C++, Java, and various scripting languages. I developed some successful commercial products in C and C++. But when I read SICP a few years ago, I was intrigued enough to learn more about Scheme, and later some of the more functional languages like ML and OCaml. I only wish I had known about these languages, and the ideas behind them, a long time ago.

  161. Re:Snobbish LISP Advocacy by Loundry · · Score: 1

    The reason I would recommend doing that over learning C++ is that it provides a foundation for understanding any programming language - it'll be easier to learn and understand C++ afterwards. This has been studied in universities - students who go through the more theoretical introduction to CS concepts using Scheme do better on subsequent courses in Java and C++ than students who start out learning the latter languages (I can dig up references if you care).

    I want to care, but I feel very skeptical about such studies. Why? Because LISP advocates are such flaming, fucking assholes. They think they're better than everyone else (when they're really just bacteria food like everyone is), so everything they say and write is suspect. Likewise, most LISP advocates congregate and are spawned in MIT, and most of their evangelism comes from there as well. Are these references going to point to studies created by LISP evangelists? If so, then how do I know that such studies were not designed with an agenda (namely, to spread the gospel of LISP to the world)?

    One problem Lisp advocates face is, how do you explain to someone that learning Lisp will teach them important things about programming that they don't yet understand? People don't want to believe that, so they respond negatively, and things devolve from there because both sides are human.

    I think this is the misconception that LISP evangelists have about me: they think that I am resistant to LISP because I'm an ignorant dipshit who just isn't as smart and awesome as LISP evanglists are. They think that I respond negatively becuase of my ignorant dipshittedness. I repeat: I will not use LISP because its adherents are elitist assholes. I do not respond negatively because "I don't want to believe that LISP will teach me important things," but because I want to spite LISP evangelists who deserve it many times over. If LISP was really as awesome as LISP evangelists claim it to be, then it would not require the mountains upon montains of condescending bullshit that spews incessently from the lofty towers of MIT. It's awesomeness should be self-evident if it really is so great. Instead, we have to hear constantly about how "elegant" LISP is and how stupid everyone else is for not recognizing this "Eternal Truth."

    Do you understand what I'm trying to communicate to you? The elitism of LISP's evangelism is counter-productive! Until LISP evangelists learn to be more humble they will continue to be confined in their ivory tower.

    My personal experience is that I spent almost 20 years programming in languages like C, C++, Java, and various scripting languages. I developed some successful commercial products in C and C++. But when I read SICP a few years ago, I was intrigued enough to learn more about Scheme, and later some of the more functional languages like ML and OCaml. I only wish I had known about these languages, and the ideas behind them, a long time ago.

    You're the nicest LISP advocate I've met so far (though you did attempt to exploit my non-existent lack of self-esteem, which I forgive). What you write here about SICP is interesting enough to make curious, but not informative enough to make me attempt to embark upon it. I've heard many LISP jackasses claim that LISP is "a different way of thinking about programming" that isn't "immediately intuitive." If it is so fundamentally different, then how did it help your programming in C? It seems clear to me that LISP evangelists are very jealous and bitter that C won and LISP lost, so I'm confused that "the LISP way of thinking" would be helpful to "the C way of thinking." Aren't they competitors?

    --
    I don't make the rules. I just make fun of them.
  162. Hopefully less snobbish Scheme Advocacy by alienmole · · Score: 1
    I'm beginning to get the impression that you don't like elitist Lisp advocates... ;)

    You're the nicest LISP advocate I've met so far (though you did attempt to exploit my non-existent lack of self-esteem, which I forgive).

    Thanks. Perhaps it's because I'm not a pure Lisp advocate. In the Lisp family of languages, I far prefer Scheme, which is different enough from Lisp that many pure Lisp advocates like to complain that "Scheme is not a Lisp". Re my question about why Lisp advocacy bugs you, I seriously wanted to know if somewhere underneath it all you didn't wonder what the fuss was about, whether there might be some basis for it (although I'm not defending assholism).

    If it is so fundamentally different, then how did it help your programming in C?

    There are some answers, admittedly anecdotal, about how these ideas can help your programming, in C in the mex.pdf paper that I linked to in my previous post. Some of it might not be entirely clear because it talks about exploiting things like continuations.

    Here's how I would describe it: when you program in C and most ordinary languages, you're using a mental model that's driven by the design and limitations of real computers. Languages like Lisp, Scheme, and the functional languages like ML and Haskell use models that come from study of fundamental principles of programming and computing. These principles are much more general than any single programming language - a specific programming language like C is just a special case of these principles.

    The academic languages are more closely modeled on these principles, so learning those languages tends to teach you at least some of the principles. It's really these principles that are the big deal - languages like Lisp/Scheme/ML/Haskell are just embodiments of them. Learning these principles allows you to understand C and other languages on a different level, and can lead you to think about problems in different ways, and to solutions that you might not have thought of otherwise. Once you've learned some of these general principles, it's easier to learn other languages. It's much easier to apply generalized knowledge to a specific case, than it is to generalize from a specific case (like C).

    To take a concrete example, in C, functions normally return to their caller, because C only uses a single call stack per thread. However, there are times that it's useful for a function not to return to its caller, which is why setjmp & longjmp exist. But using setjmp and longjmp to do anything useful isn't the easiest thing in the world, because they're very low-level. By contrast, in some languages like Scheme and SML, there's a feature which allows you to manipulate the flow of control of a program more safely and easily, via the call/cc function. Here's a description and example of this in C terms. This is just a very specific implementation of the general concept of continuations, in C.

    The linked example shows that if you know how, you can do this kind of thing in C. But most C programmers wouldn't necessarily think to solve a problem that way, because it's not an obvious solution in C. If you're familiar with these concepts from elsewhere, though, and you find somewhere where they could be useful in a C program, then it just becomes a question of how you can implement it in C. There's usually a way, and often it's well worth it. Again, that mex.pdf paper describes some examples.

    Ideas from computer science and the academic languages have had a big impact on the mainstream languages: garbage collection, lexical closures, regular expressions, SQL, and many other things were developed in an academic context and eventually became mainstream. But the problem with this is that getting exposed to these features on a piecemeal basis doesn't give you the full picture of how they fit

    1. Re:Hopefully less snobbish Scheme Advocacy by Loundry · · Score: 1

      I'm beginning to get the impression that you don't like elitist Lisp advocates.

      I don't like elitism, period. I pick on Lisp advocates here on Slashdot because this is the loctation where they most frequently come to put down anyone who isn't they. I have met many elitist Christians, Leftists, OpenBSD advocates, Ph.D.s, the list goes on and on. I simply have no tolerance for anyone talking down to me anymore because in 100 years both they and I will be rotting in the ground. (Actually, I will have been converted to ash after my organs are harvested, but you get the idea.)

      To take a concrete example, in C, functions normally return to their caller, because C only uses a single call stack per thread . . . . The linked example shows that if you know how, you can do this kind of thing in C. But most C programmers wouldn't necessarily think to solve a problem that way, because it's not an obvious solution in C.

      What's the difference between setjmp/lngjmp and goto? It seems to be a way of interrupting the expected control flow, and I've heard more than one argue that such is indicative of bad design. I'm not doubting your claim that "there are times that it's useful for a function not to return to its caller." Instead, it appears to me that it's a different way of thinking that is not neccessarily worse or better, just different. This goes back to my question (which I now modify): How can learning Scheme benefit my C programming if it represents a fundamentally different way of thinking? The concrete example here seems to violate principles which are sacrosanct in "the C way" and would be labeled as "bad" by people who think in "the C way."

      There's an entirely different kind of benefit that the academically-oriented languages also have, which is that they tend to enable problems to be solved without worrying about low-level details.

      You lost me. In every job I've worked in, I have had to worry about the low-level details in one way or another. It all comes down to the fact that the computer science depends on hardware to run, and the hardware costs money. It behooves me to be familiar with how the software and hardware interact so that I can get more use out of the hardware, which means get more milage for my money. No business can survive without taking this into account, so what is this magical land where one can write computer programs while remaining completely and deliberately oblivious to the low-level details?

      The University. Yes, a university, which often receives plundered money from taxpayers, where there is no such thing as competition, and where professors who snooze lazily in the protective cocoon of tenure can follow their whim without being subjected to the vagaries of the market under which real folks like I must suffer.

      I read parts of the first chapter of SICP and I found it interesting and challenging. But it still begs the question: why is learning Scheme required to teach the lessons that are taught in the book? If they apply to general computer science, then why can't they be written in C (in which so much of the world's non-theoretical software is written)? I suspect that answer is, "Because we're MIT, and we're better than you. The reason you want it to be in C is becuase you're a stupid, ignorant dipshit. You're also a capitalist, so you especially suck."

      The author of SICP, probably not as forthcoming as I'd wish he'd be, tries to answer my question with this response:

      If Lisp is not a mainstream language, why are we using it as the framework for our discussion of programming? Because the language possesses unique features that make it an excellent medium for studying important programming constructs and data structures and for relating them to the linguistic features that support them. The most significant of these features is the fact that Lisp descriptions of processes, called procedures, can themselves be represented and manipulated as Lisp data. The importance of this

      --
      I don't make the rules. I just make fun of them.
    2. Re:Hopefully less snobbish Scheme Advocacy by alienmole · · Score: 1

      What's the difference between setjmp/lngjmp and goto? It seems to be a way of interrupting the expected control flow, and I've heard more than one argue that such is indicative of bad design.

      Goto and setjmp/longjmp are similar, although the latter provides more support for saving an arbitrary context to return to. Both are still very low-level features, and using them directly in a program isn't usually considered a good idea. However, setjmp/longjmp can be used to implement capabilities, like the one in the example I gave, which are perfectly safe and valid to use. The key is that the use of the low-level feature is encapsulated in a library of functions which places some constraints on their behavior and ensures that they get used safely.

      I'm not doubting your claim that "there are times that it's useful for a function not to return to its caller." Instead, it appears to me that it's a different way of thinking that is not neccessarily worse or better, just different.

      The CS concept of continuations is a more general concept -- goto, setjmp/longjmp, and ordinary function call/return are all just instances of applied continuations. Understanding continuations gives a foundation for dealing with control flow of all kinds -- including for example in web applications, where continuations have gotten quite a lot of attention lately, even in mainstream systems.

      This goes back to my question (which I now modify): How can learning Scheme benefit my C programming if it represents a fundamentally different way of thinking? The concrete example here seems to violate principles which are sacrosanct in "the C way" and would be labeled as "bad" by people who think in "the C way."

      You wouldn't necessarily choose a solution like the one in the example just to do some ordinary programming task. However, if you're solving a more complex problem, then expressing it using a declarative non-deterministic approach - which is what that example supports - can make the difference between a relatively simple solution and a very complex one. Part of the point is to expand your mental bag of tricks so that you can choose the most effective solutions to problems. In that mex.pdf paper, Friedman writes "Programming languages are the box outside of which most programmers, architects and managers cannot think." (Perhaps a bit condescending, but this gets back to the problem of how to communicate these things if they're actually true.) One way to think outside the box of a single programming language is to learn a number of different programming languages. However, if you're going to do that, you can get a lot of bang for the buck by learning a language which embodies very general principles that can be applied in the context of many other languages.

      ...enable problems to be solved without worrying about low-level details.

      You lost me. In every job I've worked in, I have had to worry about the low-level details in one way or another.

      Sure. But you no longer usually have to worry about details at the level of assembly language. A lot of people using languages like Java and Python no longer worry about manual memory management. Over time, as language technology has advanced, low-level details get automated away. The academic languages do a very good job of this - much better, in many respects, than most of the mainstream languages. That doesn't mean you can or should throw out the mainstream languages (yet!), but it's worth having some knowledge of what the possibilities are. The main reason I raised the point, though, is that the abstraction away from low-level details is helpful for understanding things at a higher level. Not that you don't ever need the low level, but they are different levels, and are each equally important in their own way. C is primarily geared towards low-level thing

  163. May I ... by Loundry · · Score: 1

    ... respond to you in e-mail? I want to take this relationship to the next level.

    (Yes, I'm trying to be funny, but I am serious about wanting your e-mail address so I may respond to you.)

    --
    I don't make the rules. I just make fun of them.
    1. Re:May I ... by alienmole · · Score: 1

      I've just emailed the yahoo address on your web page, at about 2:23 pm Eastern time. Respond here if that doesn't work.