Slashdot Mirror


Lisp and Ruby

sdelmont writes "The developers of Rubinius, an experimental Ruby interpreter inspired by SmallTalk, have been discussing the possibility of adding a Lisp dialect to their VM. Pat Eyler collected some ideas and opinions from the people involved and it makes for some interesting reading. For many, Ruby already is an acceptable Lisp, and the language itself started as a 'perlification' of Lisp (even Matz says so) so it is perhaps fitting and might help explain why the whole idea feels right. Now, if someone added support for VB and gave it the respect it deserves, the world would be a better place."

13 of 336 comments (clear)

  1. Re:VB already gets the respect it deserves... by Timesprout · · Score: 4, Insightful

    Yeah, how dare MS make it easy for developers and even non developers to quickly create applications to fulfil their requirements.

    --
    Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
    What truth?
    There is no dupe
  2. wow, I have no idea what that just meant! by tommyhj · · Score: 5, Funny

    This is just one of those stories that us non-linux, non-programmers have absolutely no idea of what means! Which insidentally makes it rather funny to read :-) I mean, adding Lisp to Ruby's SmallTalk?

    1. Re:wow, I have no idea what that just meant! by kruhft · · Score: 4, Informative

      Lisp is the oldest, still in use, high level programming that exists today. It's the core of emacs, and was standardized into Common Lisp in the early 90's. It basically has no syntax other than words and nested parenthesis (() :-), has an extrememly powerful macro system, and a loyal following of elders that hang out in comp.lang.lisp on usenet. As well, the great Emacs is basically a lisp interpreter (or Operating System) that happens to have a text editor above it.

      Smalltalk is another high level language where everything is an object. It has syntax, supports many interesting high level concepts like persistance, and has some nice development environments and pseudo OS projects, one of which is called Squeak.

      Ruby is a newer high level language from Japan, that was designed to combine the high level concepts of Lisp, but added some syntax to reduce code verbosity and increase expressiveness. The Lispnicks say this is unnecessary complexity that reduces the power of the language; people that were raised on languages with syntax find the expressiveness more familiar, easy to use and powerful.

      I'm still undecided.

  3. Re:VB already gets the respect it deserves... by S.O.B. · · Score: 4, Insightful
    From a technical perspective it might suck but it works a lot of people (especially non-programmers) to get real work done.


    And when that program gets too big for them to maintain (or they just don't feel like it anymore) they dump it on their IT area and we're stuck maintaining or converting an app in a technology we wouldn't have chosen that looks like it was designed by a pack of drunken monkeys.

    Build a tool even an idiot can use and only an idiot will want to use it.
    --
    Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
  4. Re:Genuine question about perl vs ruby by JanneM · · Score: 4, Insightful

    To me, as an old Perl programmer, Ruby basically feels like what Perl 6 should have become: keeping with the idea of making things discoverable for the programmer and not having to work around syntax, but greatly cleaned up and with objects as an integrated part of the language, not so tacked-on as in Perl 5.

    Ruby still has some pretty significant drawbacks, of course; it's slow, and has little support for Unicode (not that surprising, seeing it's from Japan). The libraries aren't as mature yet either; Perl has many year's headstart there so again no surprise. All of these are improving, though.

    --
    Trust the Computer. The Computer is your friend.
  5. Re:Performance, anyone? by Lucas.Langa · · Score: 4, Interesting

    As funny as your comment is, it made me wonder... There is a very loud pro-Lisp community that tells everyone who is not using Lisp that they should since it solves most of the problems they have in the first place. OK, fair enough. But I have that strange feeling that assuming the developers to be usually very smart and very lazy, we would see them all convert to Lisp if it really was the ultimate answer [1].

    And what makes me think that Lisp was and still is widely ignored? There are a couple of points here but the most important is: we don't really see a large, consistent standard library for Lisp. So we could easily turn the Greenspun's 10th Rule backwards to say: any sufficiently complicated Common Lisp program contains an ad hoc, informally specified, bug ridden, slow implementation of half of Java's standard library.

    So, where's the catch? Why isn't Lisp popular if it's so 1337?


    [1] But we know it's 42.

    --
    Build a tool even an idiot can use and only an idiot will want to use it. -S.O.B.
  6. Re:Performance, anyone? by Wolfbone · · Score: 4, Informative

    "I mean, take Lisp and its performance. Compare it to Ruby's."

    Which Lisp? One which (as most implementations of Common Lisp do these days) appropriately and reasonably gets compared to the output of a C compiler?:

    http://www.lrde.epita.fr/cgi-bin/twiki/view/Public ations/200606-IMECS

    I wouldn't have thought that would be a very fair comparison to make for Ruby.

  7. Re:Genuine question about perl vs ruby by Jonathan · · Score: 5, Informative

    1) Object Orientation is consistent throughout the language. Perl provides ways to make objects, but none of the built in functions or datatypes are objects, making your code a schizophrenic mess of objects and non-objects.

    2) Consistency -- In Perl it is needlessly difficult to do ever simple tasks like making arrays of arrays or arrays of hashes -- you have use a weird syntax to get at references. I never could remember it and always had to look it up whenever I needed an array of arrays in Perl. In Ruby, everything is a reference to an object so you don't have to worry about it -- a[0] = [1, 2] does exactly what you want -- puts an array [1, 2] in the first element of array a.

    I used to be a big Perl fanboy -- I did most of my programming in Perl from 1992-1999. But when I discovered Ruby I went for it and never looked back. What's cool about it is that its syntax is so clean that it is basically a version of the pseudocode I have in my head. In the Ruby community there's a phrase for it -- "the principle of least surprise" -- things just work.

    Obviously, if you really like Perl, nothing is going to make you change. But if you are just keeping with Perl because of inertia, then you ought to look around at other scripting languages. Ruby is my favorite, but most modern scripting languages are cleaner than Perl.

  8. Because you'll end up at Lisp. by Anonymous Coward · · Score: 5, Insightful

    What most people don't realize is that Lisp is the inherent representation of virtually all programming languages. This is even true for languages like C, Java, Smalltalk, and Ruby. We can plainly see this by the very fact that basically every compiler or interpreter for those languages parses the language into an abstract syntax tree. And that's exactly what Lisp is: a textual representation of an AST. It is so powerful because it directly allows the programmer to access and modify what amounts to the AST of his or her program. This is something that a language like C isolates to the compiler, or at best the preprocessor.

    What fewer people realize is that Smalltalk is Lisp with a slightly different syntax. The concepts are basically identical, however. So suppose the Ruby developers do all the hard work needed to switch their language over to a Smalltalk-like syntax. Do you know what will happen next? They'll ask themselves what could be improved next. And the first thing that'll happen is a consideration of making the syntax and semantics of the language more Lisp-like. And that's just because Lisp represents the most inherent aspects of what a programming language is.

  9. Re:VB already gets the respect it deserves... by Iamthefallen · · Score: 4, Insightful

    That says far more about your circle of friends/co-workers than it does about the language.

    --
    Wax-Museum Fire Results In Hundreds Of New Danny DeVito Statues
  10. Re:Performance, anyone? by ravenlock · · Score: 5, Insightful
    If I build a new and presumably better (in my own opinion) programming language starting off with Lisp, and my implementation turns out to be less powerful and slower than an average CL implementation, is that progress?

    It is if it helps introduce the concepts behind Lisp to a lot of people who never would have dared to venture into Lisp otherwise. Ruby was the first language with functional constructs I tried (very much due to the excitement around Rails). Now I'm reading up on Lambda Calculus and learning Haskell, and I'm not at all sure it would have happened, were it not for Ruby.

  11. Re:VB already gets the respect it deserves... by hclyff · · Score: 4, Insightful

    This is exactly the kind of reply I would expect from a VB developer or "non developer". By "quickly create applications to fulfil their requirements" you probably mean "create a horrible unmaintenable mess which not even the original author will touch, and which has is almost certainly going to be rewritten by a developer at some point in future". Enabling non developers make production code is *NOT* a good thing, I think most people with some experience in the industry will agree with this.

  12. Re:I use Common Lisp because of its 'white hot' sp by Not_Wiggins · · Score: 5, Insightful
    The problem is that Ruby has very poor runtime performance.

    Not so much in response to the post, but to add to it...
    I'm not that old, but I remember the same being said for:
    • C++ compared to C
    • Interpreted compared to Compiled
    • Java compared to C++
    • Servlets compared to CGI
    The list could continue. Just wanted to highlight that "performance" is a short-lived reason to avoid a language. 8)
    --
    Diplomacy is the art of saying, "Nice doggie!" until you can find a rock.