16 ms·
The Io Language
- akritrime 4y agoIs there nothing on 70% of the page with contents only on the left side? Just making sure, wondering if it is supposed to load some web editor with code examples because without it, it is a bit confusing what am I supposed to do.
- elitepleb 4y agothose are sections to click https://iolanguage.org/about.html https://iolanguage.org/about.html https://iolanguage.org/guide/guide.html https://iolanguage.org/guide/guide.html https://iolanguage.org/tutorial.html https://iolanguage.org/tutorial.html
- fnordpiglet 4y agoSays development ended in 2008
- adamgravitis 4y agoBecause it was perfect…
- qsort 4y agohttps://github.com/IoLanguage/io https://github.com/IoLanguage/io last commit merged to master Nov 2022. It's not exactly the most active project in existence but not dead either.
- athenot 4y agoA code snippet showing a simple program right on the home page and "selling" whatever features makes it special would go a long way. It's quite off-putting to have to delve deep into a guide in order to get a feel for a language. Some examples done right: https://lfe.io https://lfe.io https://elixir-lang.org https://elixir-lang.org https://imba.io https://imba.io https://ocaml.org https://ocaml.org
- fictorial 4y agoI used this language in a game jam in 2005. It sparked joy. Here's some sample code I just put up on GH from back then. Enjoy. https://github.com/fictorial/wordster https://github.com/fictorial/wordster
- piva00 4y agoSeeing Io lang mentioned was a trip to memory lane, back in 2005/2006 when I started to rely much more on JS for frontend interaction and client-side rendering (AJAX/XmlHttpRequest was the new shit back then, kids!) I remember studying Io as another prototype-based language, as that concept was pretty new to me and I liked Io quite a lot at the time. Unfortunately there was no use for it whatsoever in professional-world and I dropped it quite quickly. I had completely forgotten about it until this popped up on HN so thanks for that.
- swah 4y agoSame... _why with his blog/book, Ruby, DSLs and small languages were the cool thing. Steve Dekorte with this project, Slava Pestov & a bunch of excited folks around Factor, Yegge blogging every week, LuaJit with Mike Pall, Guile development, Ola Bini was not famous yet...
- Zecc 4y agoPerhaps the least know language in the Seven Languages in Seven Weeks book by Bruce A. Tate. The others being Ruby, Erlang, Scala, Clojure, Haskell and Prolog.
- blowski 4y agoLearning about io from that book helped me understand JavaScript a lot better.
- CreepGin 4y agoThe fading is unnecessary.
- PedroBatista 4y agoThere is an implementation of Io for GraalVM: https://github.com/guillermomolina/graal-io https://github.com/guillermomolina/graal-io This guy started furiously implementing it at the beginning of the year but stopped at the end of February. ( My guess is he's got a new job ). There have been many attempts at implementing the language in a "more solid" base, ie. on top of "languages" that take care of garbage collection like JS, Go, Java/JVM. I suspect a complete and community supported Graal implementation will be the ticket for Io. It would be an incredible dynamic language paired with an incredible strong and robust VM and ecosystem( think libraries, tools, manpower, etc. ) I really hoped I had the chops at language implementation to make this a reality, but after watching the development I'm waayy out of this league.
- JonChesterfield 4y agoThe linked github looks like a compiler written in C to a virtual machine written in C to me. Slightly sad it isn't self hosted, sometimes you get a VM in C and the compiler in the language itself. Found some other implementations under https://iolanguage.org/links.html https://iolanguage.org/links.html. None claim to be complete or working, one link was dead :(
- wiremine 4y ago_why the Lucky Stiff [1] wrote a blog post about Io way back in 2008: http://web.archive.org/web/20080106163631/http://hackety.org/2008/01/05/ioHasAVeryCleanMirror.html http://web.archive.org/web/20080106163631/http://hackety.org... "Io is just an incredibly hushed secret. (Perhaps because it is impossible to Google stuff about it.) Did you know that Io’s introspection and meta tricks put Ruby to serious shame? Where Ruby once schooled Java, Io has now pogoed." [1] https://en.wikipedia.org/wiki/Why_the_lucky_stiff https://en.wikipedia.org/wiki/Why_the_lucky_stiff I once saw _why perform/present at a Ruby event. The coolest and weirdest thing I've ever seen conference in over 25 years of being in this industry.
- steveklabnik 4y agoHe also made a little language, Potion, which has some Io influnces http://web.archive.org/web/20090704033505/http://hackety.org/potion/ http://web.archive.org/web/20090704033505/http://hackety.org...
- munificent 4y agoIo was one of the inspirations that first got me interested in programming languages. It's a beautiful little language. For me, the syntax is a sweet spot of being extremely simple and elegant but no so simple that it gets awkward and verbose like Smalltalk and Lisp can. The semantics are equally beautiful and elegant. It's just a cool language. The main downside is that the semantics are so dynamic that it's virtually impossible to optimize.
- JonChesterfield 4y agoI think the "dynamic so had to be slow" assumption has been quite badly savaged by luajit and the various javascript engines. "Assume stuff doesn't change all that quickly and recover transparently if it did" goes a long way to statically compiling dynamic languages. Worst case the parts that actually do very dynamic things end up interpreted, but that's stuff you otherwise can't do without writing an interpreter.
- munificent 4y agoIo is way more dynamic than almost any other language you're thinking of. Yes, even Lisp and Smalltalk. Arguments are passed to methods as unevaluated syntax trees and a method can decide at runtime whether or not to evaluate the argument expression, or not, or introspect over it, or mutate it. It's like every function is a macro but macros can also choose at runtime to selectively evaluate some of their arguments.
- JonChesterfield 4y agoTcl has that. Early lisps did too, sometimes called fexpr or fsubr. More recently Kernel had the same. There's another esoteric lisp that does too but the name escapes me. That's a pretty compelling answer to why it doesn't need macros though. It's got the upgraded version built in. I believe that is amenable to the same style of speculative compilation found in jit compilers for dynamic languages. The above reference to graalvm does seem a good idea in that context. I can't point to an existence proof though. edit: someone is going to object to "upgraded macro", but nevertheless lisp macros are exactly the subset of fexpr that can be statically resolved at compile time, i.e. a subset of a more powerful facility.
- jedisct1 4y agoI discovered it in the "Seven languages on seven weeks" book, and was amazed by the clean and simple design of IO.
- alekratz 4y agoI am begging these language designers to show me what your language looks like right off the bat. It should be the first thing I see on your language's homepage. I shouldn't have to click through vaguely-named pages to see single-line snippets. Show me a full program!
- riku_iki 4y agoHope they will add this link on the site: https://github.com/IoLanguage/io/tree/master/samples/misc https://github.com/IoLanguage/io/tree/master/samples/misc
- stevedekorte 4y agoThanks for the suggestion. I've added a first pass at samples page and a link on the main page. https://iolanguage.org/samples/ https://iolanguage.org/samples/
- notThrowingAway 4y agoProbably best to have a monospaced font for the samples. A non-monospace font for code just feels... weird
- stevedekorte 4y agoYeah, good idea. I've updated it.
- thewakalix 4y agoTypo: The Ackermann function is misspelled as “Ackerman”.
- stevedekorte 4y agoFixed, thanks!
- JonChesterfield 4y ago
- cwbrandsma 4y agoWhat a horribly overdesigned web site. I shudder to think about having to use that to understand a programming language.
- politelemon 4y agoIt's like the website design was an exercise in trying to be as minimal as possible. Even the content is following this odd philosophy, it doesn't bother with explaining things.
- classified 4y ago> History: actively developed until 2008 So the language has been dead since 2008?
- boucher 4y agoOr, the language has been stable since 2008.
- cunningfatalist 4y agoIo was featured in the book "Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages", which I can recommend.