Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
The Ioke programming language (ioke.org)
60 points by albertzeyer on Oct 16, 2013 | hide | past | favorite | 8 comments


Be aware that the project is untouched for 3 years and in no way production-ready.

That said, I've seen Ola speak about Ioke at a conference and found many aspects of it very intriguing. Every programming language nerd should at least read the very extensive guide: https://ioke.org/wiki/index.php/Guide


Damn, I thought it getting posted here meant it was active again.

That said, at least Io, which Ioke is partly based off of, is somewhat active: https://github.com/stevedekorte/io


The homepage is also mirrored on GitHub (in case the original link is down): http://olabini.github.io/ioke/

The GitHub repository: https://github.com/olabini/ioke

GitHub group: https://github.com/Ioke

Game of life example: https://github.com/maryrosecook/gameoflife


He also announced another language, Seph, which was supposed to be a more production friendly version of Ioke. It looks like it might also be defunct. http://en.wikipedia.org/wiki/Seph_(programming_language)


Well... "Seph is a language experiment for the slightly crazy lunatic" (README)

I respect his way of openly experimenting with such things. They are a great read, if only just for inspiration.


Ola's a super-smart dude and the language is well worth exploring––I learned a lot from playing with Ioke. One of the coolest parts of it is his experiments with translations––in a language with zero keywords and a very small core, creating user translations into (say) Hindi becomes extremely straightforward. There's a rarely-explored opportunity there to bring programming to non-English speakers around the world.


for what is worth, VBA has had keyword translations for decades, and I've actually seen people use SE..FINE SE.

Interestingly enough, ALGOL68 already supported localized keywords.

The problem is you need to translate all the core language, not only keywords, e.g. list map(root) fold(plus) -> elenco mappa(radice) ripiega(più).

Supporting localized keywords in a parser would be relatively straightforward and a much smaller job than translating the whole standard library in something intelligible, I believe.


I like his idea of something he calls "folding language":

> Ioke is a folding language. This means it folds in on itself. You can create new abstractions covering any of the existing abstractions in the language. You can abstract over these, over and over again, until you have a language that lets you express what you want to express in a succinct and readable way. Ioke allows you to fold your code.

But I'd love to see more: language that could eventually unfold into other language source code. It would allow coding in high level languages where just using other compiler is rather not possible.

For example OpenCL - adding good abstractions would make GPU programming much easier. Or generating Java code - so one could write code in something more concise, without having whole team to do the same or even adding other language runtime JRE.

There could even be common abstractions for many target programming language, allowing to write algorithm once and then just translate it (browser + server data validation anyone? there are attempts to use translations to JavaScript from various languages, but why try emulating existing languages complex behaviour in JS instead of creating language specifically designed for translation?).

Related term is probably Concept Programming [1], with interesting presentation slides [2] in external links.

[1] http://en.wikipedia.org/wiki/Concept_programming

[2] http://xlr.sourceforge.net/Concept%20Programming%20Presentat...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: