[HN Gopher] The Io Language
       ___________________________________________________________________
        
       The Io Language
        
       Author : snwy
       Score  : 79 points
       Date   : 2021-12-22 17:24 UTC (5 hours ago)
        
 (HTM) web link (iolanguage.org)
 (TXT) w3m dump (iolanguage.org)
        
       | PedroBatista wrote:
       | Last week tried to compile and run Io on the GraalVM but was
       | stopped by a
       | com.oracle.truffle.api.dsl.UnsupportedSpecializationException:
       | Unexpected values provided for LLVMNeNodeGen#1: [false, 0],
       | [Boolean,Integer] error.
       | 
       | coming from:                 at <llvm> CHash_at_(Unknown)
       | at <llvm> IoState_symbolWithUArray_copy_(../../../../Desktop/io/l
       | ibs/iovm/source/IoState_symbols.c:44:1123)             at <llvm> 
       | IoState_symbolWithCString_length_(../../../../Desktop/io/libs/iov
       | m/source/IoState_symbols.c:75:2141)             at <llvm> IoState
       | _symbolWithCString_(../../../../Desktop/io/libs/iovm/source/IoSta
       | te_symbols.c:79:2268)             at <llvm> IoState_retainedSymbo
       | l(../../../../Desktop/io/libs/iovm/source/IoState.c:245:8336)
       | at <llvm> IoState_setupQuickAccessSymbols(../../../../Desktop/io/
       | libs/iovm/source/IoState.c:251:8564)             at <llvm> IoStat
       | e_new_atAddress(../../../../Desktop/io/libs/iovm/source/IoState.c
       | :106:2910)             at <llvm> IoState_new(../../../../Desktop/
       | io/libs/iovm/source/IoState.c:240:8195)             at <llvm>
       | main(../../../../Desktop/io/tools/source/main.c:37:599)
       | at org.graalvm.polyglot.Value.execute(Value.java:839)
       | 
       | Waiting for the day when I can embed Io on Java projects.
       | 
       | It's a great dynamic language but suffers the same problems every
       | other language with a small user-base suffers.
        
       | Asraelite wrote:
       | That may be the least googleable language name I've ever seen.
        
         | area51org wrote:
         | I think it beats even Chef (a DSL, not a standalone language,
         | but still). When you google for that you get a mix of
         | automation documentation and links to Gordon Ramsey. But io??
         | The planet? The Italian pronoun? Good lord.
         | 
         | EDIT: thankfully, on a Mac with Homebrew, you can just 'brew
         | install io'.
        
           | throwaway894345 wrote:
           | I'll throw `Nix` in there. I always get things about unix or
           | linux. For a while when I would search "nix package manager"
           | the top result would be something like "congress manages to
           | nix stimulus package". Go should similarly be hard to search
           | for, but I just use "golang" and it gets it right every time.
        
             | yjftsjthsd-h wrote:
             | I've taken to using "nixos" even when I don't mean the full
             | OS.
        
               | throwaway894345 wrote:
               | Usually that gives me things about nixos. E.g., when I'm
               | trying to figure out how to install vscode plugins via
               | nix package manager, I specifically _don 't_ want the
               | nixos recipe because I'm not using nixos.
        
         | goda90 wrote:
         | I took a programming language concepts class and we had to
         | write an essay about some uncommon language and what made it
         | interesting. I chose Io and it was a pain for sure.
        
         | slmjkdbtl wrote:
         | Practically looks like it's not bad you can get it at #1 on
         | query "IO Programming Language"
        
         | wittenbunk wrote:
        
         | masukomi wrote:
         | "io" is a significantly less common word than "go"
        
           | Calavar wrote:
           | Yes, but searching stuff like "go programming" or "go
           | standard library" or "go web framework" will get you what you
           | want.
           | 
           | The problem with io is that it already means something in a
           | programing context, so adding extra programming related
           | keywords won't help to disambiguate the search.
        
         | raphlinus wrote:
         | And of course there is at least one other language by that
         | name[1], though very much a toy and designed by someone who
         | didn't really know what they were doing.
         | 
         | [1]: https://dercuano.github.io/notes/raph-io.html
        
         | omoikane wrote:
         | See also: https://www.mcmillen.dev/language_checklist.html
         | 
         | [ ] The name of your language makes it impossible to find on
         | Google
        
           | mmphosis wrote:
           | That's a great list!
           | 
           | WHen I search on a different web search engine for "c" with
           | my default web search engine that says it respects privacy, I
           | start getting results for the C language about 5 items down
           | from the top -- Pretty Good. When I search on said search
           | engine, the C language Wikipedia article comes up first --
           | Excellent. Said engine also auto-fills programming language
           | when I start to type that after io. My "respectful" web
           | search engine doesn't auto-fill quite as quickly. If my new
           | and extremely poorly named programming language is popular
           | enough, the web search engines are able to figure it out.
           | 
           | io is the 5th result even on https://search.marginalia.nu/
        
             | marginalia_nu wrote:
             | > io is the 5th result even on
             | https://search.marginalia.nu/
             | 
             | To be fair, it is quite heavily biased toward the tech
             | sphere. I try to make it balanced, but even so, not a
             | single result about the poor woman who caught the eye of
             | Zeus.
        
               | mmphosis wrote:
               | _it is quite heavily biased toward the tech sphere_
               | 
               | This is why I use your search engine. Thank you
        
         | flatline wrote:
         | It's worth noting that the language has been around for almost
         | 20 years now! Search engine relevance was virtually nonexistent
         | when it was named.
        
         | agumonkey wrote:
         | i think it's older than the domain name, which gave it a little
         | open window of acceptable googleability.
        
       | dang wrote:
       | Some past threads. Hard to search for. Others?
       | 
       |  _The Io Language_ -
       | https://news.ycombinator.com/item?id=22796409 - April 2020 (24
       | comments)
       | 
       |  _Io Programming Language (new website design)_ -
       | https://news.ycombinator.com/item?id=10605310 - Nov 2015 (73
       | comments)
       | 
       |  _Io language_ - https://news.ycombinator.com/item?id=8867575 -
       | Jan 2015 (40 comments)
       | 
       |  _Io language_ - https://news.ycombinator.com/item?id=2624097 -
       | June 2011 (35 comments)
       | 
       |  _The Io Language_ - https://news.ycombinator.com/item?id=1538835
       | - July 2010 (39 comments)
       | 
       |  _Io language_ - https://news.ycombinator.com/item?id=750830 -
       | Aug 2009 (4 comments)
        
       | wintorez wrote:
       | First read about Io in the fantastic book, Seven Languages in
       | Seven Weeks.
        
         | yakshaving_jgt wrote:
         | Same. In fact, I picked up that book as a PHP and JS developer,
         | and ended up becoming fascinated with Haskell by the end of it.
         | For the past several years now, I've been earning 100% of my
         | living from writing Haskell.
         | 
         | I enjoyed the Io chapter, and JavaScript's prototypal
         | inheritance made more sense to me after working through that
         | chapter's exercises.
        
           | djtriptych wrote:
           | Congrats on the switch to Haskell. I see a similar path when
           | I'm finally tired of big production web apps. I want to work
           | on some wonky functional system at some point.
           | 
           | Curious what sort of work you do!
        
             | yakshaving_jgt wrote:
             | I work at Supercede. We write a big production web app for
             | the reinsurance industry with Yesod and Servant, and a bit
             | of Elm.
             | 
             | We're hiring[0] also (and our team has grown a bit since
             | that last post).
             | 
             | [0]: https://news.ycombinator.com/item?id=28722397
        
       | phaedrus wrote:
       | The Io language is elegant both to program in and in the way the
       | design is built up from simple parts. In fact it was my first
       | introduction to dynamic typing after many years programming in
       | C++, C#, and (various) BASIC(s).
       | 
       | Io allows you to write only and exactly what you meant with the
       | least amount of non-essential complexity of any dynamically typed
       | language I know. The lazy evaluation also allows you to take full
       | advantage of code is data / data is code. That sounds like LISP,
       | but whereas there the primitive is the list, in Io the primitive
       | is the message.
       | 
       | My experience trying to write a larger project (a game, never
       | finished) in Io was that it allowed me to make enormous progress
       | initially, but suddenly reached a point in size of the project
       | where the lack of static checking was (IMO) impeding my progress
       | more than the elegance of the language was helping it.
       | 
       | (I also realized at that point I needed to re-implement some
       | things in C++ for performance reasons, not because of Io per se
       | but just because some things needed to be on the "native" side of
       | the fence because things they touched also were.)
       | 
       | When I reached this point in the project, I found there was no
       | clear path to translating what I'd developed into a static
       | language (C++) because many of the ideas and systems I'd created
       | in Io simply couldn't be expressed in C++ - or they made no sense
       | there.
       | 
       | For example I'd created an embedded DSL (something Io excels at)
       | for a data definition of the game objects. When I tried
       | mindlessly converting these Io prototypes into C++ classes, they
       | not only became too verbose they also lost all of the semantics
       | of prototypical inheritance where "take a copy of another thing
       | and tweak it" was my means of building up game objects by
       | incremental refinement.
        
         | dognotdog wrote:
         | Io was fantastic as a personal learning vehicle, over ten years
         | ago. I did have a game project that used it, right in the lull
         | where Lua's FFI was still a little rough and JS did not quite
         | break out of the browser.
         | 
         | Its simplicity also made it great to write an interpreter for,
         | including GC. However, nowadays the focus shifted to JIT,
         | mostly via LLVM, which leaves such free-form languages unable
         | to compete on performance, without significant effort.
         | 
         | I do fondly remember the endless explorative chats with Steve
         | Dekorte and the other language geeks on IRC!
        
           | quag wrote:
           | I also fondly remember those times.
        
       | ConanRus wrote:
       | history: created in 2002, actively developed until 2008
       | 
       | So it's old and dead? What's the point in posting this on HN?
        
         | Jtsummers wrote:
         | It piqued someone's curiosity.
        
         | zeckalpha wrote:
         | I contributed to it in 2015
        
       ___________________________________________________________________
       (page generated 2021-12-22 23:00 UTC)