Slashdot Mirror


Ioke Tries To Combine the Best of Lisp and Ruby

synodinos writes "Ola Bini, a core JRuby developer and author of the book Practical JRuby on Rails Projects, has been developing a new language for the JVM called Ioke. This strongly typed, extremely dynamic, prototype-based, object-oriented language aims to give developers the same kind of power they get with Lisp and Ruby, combined with a nice, small, regular syntax."

7 of 255 comments (clear)

  1. Try Io by QuantumG · · Score: 4, Informative

    http://www.iolanguage.com/

            Io is a small, prototype-based programming language. The ideas in Io are mostly inspired by Smalltalk (all values are objects, all messages are dynamic), Self (prototype-based), NewtonScript (differential inheritance), Act1 (actors and futures for concurrency), LISP (code is a runtime inspectable/modifiable tree) and Lua (small, embeddable).

    --
    How we know is more important than what we know.
    1. Re:Try Io by Anonymous Coward · · Score: 2, Informative

      Good lord, you haven't done a damn thing at the low level, have you? First, the instruction set argument is complete nonsense -- there's no such thing as a "BYTE code" instruction set, it's a format for compiled code, and the code becomes x86 before it runs on your CPU.
      Second, what you're running on should never relate to language choices unless you're running on an embedded platform. Java code is compiled to the CPU just like everything else, it's just done at runtime.
      You miss the point: people use C because it's a battle-hardened language, not because of some machine restriction you seem to think exists.

  2. Re:Yet another wannabe Lisp minus macros by Maian · · Score: 2, Informative

    *sigh*

    It would help if you actually read the rest of the article:

    Just like Lisp, Ioke provides syntactic abstractions. They take two forms, the first one is macros, which is basically like method calls with lazy arguments that can be evaluated in special ways. The other form is syntax, which works a lot like Common Lisp defmacro. These together provide the possibility of creating new control structures and define new abstractions. The language is powerful enough to allow you to create your own method types, for example. If you don't like keyword arguments, you can define a new method type that doesn't have them. The DefaultMethod currently in Ioke could be implemented purely in Ioke, using macros.

  3. Clojure by slasho81 · · Score: 4, Informative

    If you're looking for a modernized lisp on the JVM, check out Clojure: http://clojure.org/
    All the goodies of lisp, the JVM, and functional programming without all the bad outdated stuff. It's a very cool language.

    1. Re:Clojure by slasho81 · · Score: 2, Informative

      Slides and code for the 5th screencast about Clojure linked in the parent message.

  4. No surprise by Sycraft-fu · · Score: 4, Informative

    That's because C deals with how computers actually think. All this new stuff with languages is wonderful, and often has some uses in various cases, however none of it relates to how a computer actually works. C is a good "mid level" language. By that I mean it does a good job of structuring programs in terms of how they actually work on a processor, while still being fairly easy for a human to work with.

    A lot of people get caught up in their "flavour of the month" language and forget that none of this relates to how computers actually work. For example yes, pointers are confusing and you can get in to trouble with them. However, that is actually how a processor handles things. It has registers that are pointers to memory locations of things it needs (like a pointer to the instruction to execute). So while more restrictive, managed references might be nice, they've nothing at all to do with how the processor works. That means you have to implement additional code overhead to deal with that sort of thing, and that you are losing the ability to optimise in certain ways.

    Basically C is likely to remain strong until we just have more CPU power and memory than we know what to do with on all platforms (embedded included). Until then there is the need to generate optimised programs. To do that, you need to be able to write a program based on how the computer thinks, not on how you do.

  5. Re:"Best"? by Raffaello · · Score: 3, Informative

    underscores? in lisp? are you mad!!?

    (best-part-exists-p lisp)

    i.e., hyphens as separators, p for predicate rather than the schemish question mark of you parent, and no need to quote lisp which is clearly being treated as a variable pointing to a language entity here, not a raw symbol in need of quotation.