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

12 of 255 comments (clear)

  1. Outlook negative by incripshin · · Score: 5, Insightful

    Ola Bini has no beard. The only proof you need that this language will fail?

  2. Lisp Syntax by mechsoph · · Score: 4, Insightful

    People think that s-expressions are a poor syntax. These people are wrong.

    Seriously, if you give yourself the change to wrap your head around it, s-expressions are both elegant and powerful. Representing your code as a data structure is what makes lisp lisp. Take that away, and you might as well just use ML.

    1. Re:Lisp Syntax by grumbel · · Score: 4, Insightful

      Seriously, if you give yourself the change to wrap your head around it, s-expressions are both elegant and powerful.

      Elegant and powerful? Sure. But Readable? No way.

      I like S-Expressions as XML replacement a lot, since for representing simple structured data its quite nice. But it just doesn't lead to very readable code when it comes to programming, even after some years toying around with Scheme, I still find "a = 5 + b" a hell of a lot more readable then "(set! a (+ 5 b))". The first paints a visual picture with clear symbols, the other is just token soup, it might be easy to parse for a computer, but very definitvly not for a human. Array access and a lot of other basic stuff is just a total mess in s-expressions.

  3. Re:Try Io by Smauler · · Score: 4, Insightful

    New languages are announced every week or so in different places... it doesn't change the fact that the language that most big projects rely on now is one of the old guard. C is, despite it's incarnations (or deformations, depending on who you believe) still king, and it was designed in 1972.

  4. Oh boy! by jjohnson · · Score: 4, Insightful

    Another pocket language with idiosyncratic design choices that seem just right to the understimulated nerd looking for fame.

    --
    Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    1. Re:Oh boy! by Maian · · Score: 4, Insightful

      He's announcing it way too early. He has practically nothing to show. There's only one tiny code example that I can see to gauge its merits.

  5. Re:Try Io by MrNaz · · Score: 5, Insightful

    The idea of these new languages (Python, Java, Ruby, and presumably ioke) is to abstract very common functions to increase the speed of development.

    Every layer of abstraction increases the "power" of the language from a development point of view, allowing developers to do far more than they could with a single line of code, trading off flexibility, and performance.

    The idea of a new language is to deliver as much "quick access" functionality as possible (saving the developer having to implement their own low level functionality such as string classes, array handling and perhaps memory management) while compromising as little as possible on flexibility and performance.

    If ioke delivers a best-yet mix of these trade offs, then it stands a chance to become the Next Big Thing. Personally, I think that Python is the state of the art when it comes to highly functional development languages that still deliver good performance and flexibility. It's not quite fast enough to write an operating system in (although there was an effort called Unununium which tried but never took off), however it is vastly superior, both in overall design and performance, to other languages that provide a similar level of abstraction such as PHP.

    --
    I hate printers.
  6. Re:Awesome another langauge by ABasketOfPups · · Score: 4, Insightful

    Not one single soul in the world who was ever going to make a language, is now not going to, because of that rant.

  7. So... by julesh · · Score: 4, Insightful

    the same kind of power they get with Lisp and Ruby, combined with a nice, small, regular syntax

    So, it's Lisp then?

    Seriously... in terms of small regular syntaxes you don't get smaller and more regular than Lisp:

    s_expression = atomic_symbol \
                                / "(" s_expression "."s_expression ")" \
                                / list

    list = "(" s_expression ")"

    atomic_symbol = letter atom_part

    atom_part = empty / letter atom_part / number atom_part

    letter = "a" / "b" / " ..." / "z"

    number = "1" / "2" / " ..." / "9"

    empty = " "

    (source).

    Next smallest and most regular syntax for a useful language is probably smalltalk, but that's too long to post here. It's worth noting that smalltalk (particularly its first-class statement blocks) was a heavy influence on ruby. Smalltalk also gets close to hitting the 'nice' requirement, which IMO Lisp is a long way from.

  8. Re:Try Io by julesh · · Score: 4, Insightful

    [Python]'s not quite fast enough to write an operating system in (although there was an effort called Unununium which tried but never took off)

    Unununium's kernel was, I believe, written in C. The user interface, userspace applications and drivers would have all been written in Python.

    Unununium didn't take off because its developers had no clue about OS design. They apparently spent most of their time boasting about how their operating system didn't have a kernel (it did; its kernel was a slightly modified Python interpreter[1]) and how it was such an innovative design (when all it did was replicate some of the achievements of traditional language-based systems that were popular in the academic research community in the 70s and early 80s, cf. Smalltalk-80, which although now generally considered just as a language was originally considered by its developers and users as an operating system, or the earlier CMU Hydra system which was built around similar principles), and not enough time actually writing the damned thing.

    [1]: The issue seems to be one of understanding what a kernel is. The unununium developers seemed to believe the defining factor of a kernel is that it provides inter-process protection by allocating different memory spaces to the different processes. Under this view, many modern OSs don't have kernels, including Singularity and JX. Also, some older ones, including 16-bit Windows and Amiga.

  9. Re:Per-function optimization by Haeleth · · Score: 4, Insightful

    Yes, people often don't see the point of things they've never tried, or of features that are missing from their current favourite language.

  10. This already exists by Reverend528 · · Score: 5, Insightful

    We already have a programming language with a simple syntax and the strengths of Lisp and Ruby. It's called Lisp.