10 Replies - 3004 Views - Last Post: 08 March 2010 - 02:48 PM

#1 Raynes  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 611
  • View blog
  • Posts: 2,815
  • Joined: 05-January 09

A new language I'd like to bring to your attention: Ioke

Posted 07 March 2010 - 05:16 PM

From wikipedia: "Ioke is a dynamic, strongly-typed, prototype-based programming language targeting the Java Virtual Machine and the Common Language Runtime. It was designed by Ola Bini, a developer of JRuby. It has a very simple homoiconic syntax, somewhat similar to Io."

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. :D

This post has been edited by Raynes: 07 March 2010 - 05:17 PM


Is This A Good Question/Topic? 2
  • +

Replies To: A new language I'd like to bring to your attention: Ioke

#2 dom96  Icon User is offline

  • D.I.C Regular

Reputation: 4
  • View blog
  • Posts: 256
  • Joined: 29-December 08

Re: A new language I'd like to bring to your attention: Ioke

Posted 07 March 2010 - 05:25 PM

Hmm, intriguing, i will play around with it when i have some time.
Was This Post Helpful? 0
  • +
  • -

#3 X@MPP  Icon User is offline

  • 僕わ馬鹿ですね?
  • member icon

Reputation: 36
  • View blog
  • Posts: 1,014
  • Joined: 20-February 09

Re: A new language I'd like to bring to your attention: Ioke

Posted 07 March 2010 - 05:28 PM

Cool i like the way the code is formatted and everything
me not even knowing the language can tell what it should do
i hope this takes off ^^
Was This Post Helpful? 0
  • +
  • -

#4 Locke  Icon User is offline

  • Sarcasm Extraordinaire!
  • member icon

Reputation: 521
  • View blog
  • Posts: 5,596
  • Joined: 20-March 08

Re: A new language I'd like to bring to your attention: Ioke

Posted 07 March 2010 - 05:54 PM

View PostRaynes, on 07 March 2010 - 06:16 PM, said:

nameField = JTextField new("World", 10)


That code is back-ass-wards. :lol:
Was This Post Helpful? 0
  • +
  • -

#5 Raynes  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 611
  • View blog
  • Posts: 2,815
  • Joined: 05-January 09

Re: A new language I'd like to bring to your attention: Ioke

Posted 07 March 2010 - 05:55 PM

This biggest issue that the language will ever have, I suspect, is performance. Ioke is a pretty slow language, and the author has been very explicit that performance will eventually improve /some/, but that Ioke will never perform well. It's still designed to be a general-purpose language, but because it strives for expressiveness, it gives up performance in some places in order to be more expressive.

Whether that matters depends on what you want to do. I'm sure the speed of the language can be increased significantly, but that's not what's being focused on (for good reason) at this point.

@Locke: Haha. Yeah, Ioke doesn't use dots to separate messages; it uses whitespace. It kind of looks like a postfix language because of it sometimes. I think it looks pretty cool.

This post has been edited by Raynes: 07 March 2010 - 05:58 PM

Was This Post Helpful? 0
  • +
  • -

#6 X@MPP  Icon User is offline

  • 僕わ馬鹿ですね?
  • member icon

Reputation: 36
  • View blog
  • Posts: 1,014
  • Joined: 20-February 09

Re: A new language I'd like to bring to your attention: Ioke

Posted 07 March 2010 - 06:03 PM

heh i see Ioke and i think oke like in okewood i dont know why :/
Was This Post Helpful? 0
  • +
  • -

#7 Raynes  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 611
  • View blog
  • Posts: 2,815
  • Joined: 05-January 09

Re: A new language I'd like to bring to your attention: Ioke

Posted 07 March 2010 - 06:04 PM

I'm not sure of the exact meaning of the language name, but I'm sure it's a pun on the Io language.

EDIT: Oh wait, I remember. http://en.wikipedia..../Hurricane_Ioke

This post has been edited by Raynes: 07 March 2010 - 06:05 PM

Was This Post Helpful? 0
  • +
  • -

#8 erik.price  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 485
  • View blog
  • Posts: 2,690
  • Joined: 18-December 08

Re: A new language I'd like to bring to your attention: Ioke

Posted 07 March 2010 - 06:16 PM

That looks like an interesting concept for a language. I can't speak for the Io, Smalltalk, and and Lisp influences, but you can definitely see how the language borrowed some of its form from Ruby :)
Was This Post Helpful? 0
  • +
  • -

#9 X@MPP  Icon User is offline

  • 僕わ馬鹿ですね?
  • member icon

Reputation: 36
  • View blog
  • Posts: 1,014
  • Joined: 20-February 09

Re: A new language I'd like to bring to your attention: Ioke

Posted 07 March 2010 - 07:02 PM

View PostRaynes, on 08 March 2010 - 12:04 AM, said:

I'm not sure of the exact meaning of the language name, but I'm sure it's a pun on the Io language.

EDIT: Oh wait, I remember. http://en.wikipedia..../Hurricane_Ioke

Oh my.....
Was This Post Helpful? 0
  • +
  • -

#10 Raynes  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 611
  • View blog
  • Posts: 2,815
  • Joined: 05-January 09

Re: A new language I'd like to bring to your attention: Ioke

Posted 07 March 2010 - 07:12 PM

View Posterik.price, on 07 March 2010 - 05:16 PM, said:

That looks like an interesting concept for a language. I can't speak for the Io, Smalltalk, and and Lisp influences, but you can definitely see how the language borrowed some of its form from Ruby :)


Ola Bini, the creator of Ioke, is actually one of the lead developers of JRuby (or was).
Was This Post Helpful? 0
  • +
  • -

#11 programble  Icon User is offline

  • (cons :dic :head)

Reputation: 49
  • View blog
  • Posts: 1,315
  • Joined: 21-February 09

Re: A new language I'd like to bring to your attention: Ioke

Posted 08 March 2010 - 02:48 PM

Doesn't really spark my interest...
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1