Hi, So, I promised that I would write up a description of ioke, so here goes. This is mostly tentative right now, since the implementation is not at all finished, and I'm finding myself yak shaving all the time.
ioke is a language for the JVM. It takes influence mostly from Io, Smalltalk, Lisp and Ruby, in that order. The goal is to retain the Io promise of no keywords and an extremely regular syntax. Everything is message passing, and the object system is prototype based. If you are familiar with Io, the major changes from Io will include these things: - Totally different core/standard library (ioke's libraries will be heavily influenced by Ruby) - More flexible syntax for handling operators (including support to make []= and equivalent possible) - Syntax for CL-style macros - Tight Java integration - All syntax translates in a simple, predefined way to equivalent message passing operations. Even "abc" will actually translate into a message call to Core string. The implementation will initially be extremely inefficient, mostly because all metaprogramming will happen at runtime. The macros will not really be CL style macros, but rather syntax that translates into expansion and then call. This will give large amounts of flexibility at the cost of performance. I have high hopes that speed can be fixed after the implementation works as I'd like it. I have several things I want to achieve with the language - I want it to be the ultimate extension language for Java applications and I want it to be a language that makes it very natural to write internal DSLs, in the manner of Lisp little languages. The core of the language is implemented in Scala, and uses Antlr for the lexer and parser. The goal will be to make the language as self hosting as possible, and because of the regular nature of the language, it probably won't be too hard to make a ioke program that translates ioke code into Scala or Java code, so there is a distinct possibility of making it completely self hosting. I have not announced this project yet, because it's not really ready enough to run anything yet. As soon as the core is there, I will announce it and blog about it and so on. I will also send updates here with information about what challenges I find on the JVM and so on. The language will have Emacs support initially, since that's what I work in. Cheers -- Ola Bini (http://ola-bini.blogspot.com) JRuby Core Developer Developer, ThoughtWorks Studios (http://studios.thoughtworks.com) Practical JRuby on Rails (http://apress.com/book/view/9781590598818) "Yields falsehood when quined" yields falsehood when quined. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=en -~----------~----~----~----~------~----~------~--~---
