From http://ioke.org: "Ioke is a folding language. It allows you to write highly expressive code that writes code. Ioke allows you to create abstractions at any level, and expressiveness is the ultimate goal of the language.
Ioke is a dynamic language targeted at virtual machines, currently the Java Virtual Machine and the Common Language Runtime. It's been designed from scratch to be a highly flexible general purpose language. It is a prototype-based programming language that is inspired by Io, Smalltalk, Lisp and Ruby."
Ioke was first announced in November of 2008, so it's a very new language. There are a few dedicated contributors led by the language creator Ola Bini. Not many people have heard of this language as of yet, so I thought I would take a step forward and bring it to the attention of DiC. If you ever wanted to contribute to a language, now's your chance. Ioke is still missing a lot of things, and there are some big holes in the standard library. You could help fill those holes.
Ioke is a pretty cool language, with a homoiconic syntax (like Lisp without s-expressions) and a macro system (sort of like Lisp...). Something you could play with in your spare time.
As an example, here is a simple Swing example I wrote a couple of days ago. Slap it in a .ik script and run it to see what it does:
import( :javax:swing, :JFrame, :JButton, :JLabel, :JOptionPane, :JPanel, :JTextField) import java:awt:event:ActionListener import java:awt:BorderLayout message = method( "Gets the message to display text based on the current text in textfield.",textfield, "Hello, " + textfield getText + "!" ) nameField = JTextField new("World", 10) button = JButton new("Press me!") do( addActionListener(fn(e, JOptionPane showMessageDialog(nil, message(nameField)))) addActionListener(fn(e, "button pressed" println))) panel = JPanel new do( add(JLabel new("Name: ")) add(nameField)) frame = JFrame new("My frame.") do( add(panel, BorderLayout field:CENTER) add(button, BorderLayout field:SOUTH) pack setDefaultCloseOperation(JFrame field:EXIT_ON_CLOSE) visible = true )
You can find more information at the Ioke website, including a guide to the language, and links to other relevant stuff such as API documentation.
This has been a public service announcement.
This post has been edited by Raynes: 07 March 2010 - 05:17 PM