5 ms·
Honest question: What are the main selling points of Io ? If I wanted to compare its strengths and weaknesses against Go, Rust or even a less popular language l
by wildmXranat 12y ago
Honest question: What are the main selling points of Io ? If I wanted to compare its strengths and weaknesses against Go, Rust or even a less popular language like Nim, where could I find that out ?
- adrusi 12y agoIt doesn't make much sense to compare it to any of those languages, it doesn't try to solve the same problems. Io is a minimalist's scripting language in the same space as Python, Ruby and Perl. It's also very suitable for embedding, like Lua. It aims for a performance profile similar to Python's, which sets it apart from some high-performing high-level languages like Lua, Javascript, Java, Scala and Go. Its incremental GC makes it somewhat suitable for game scripting. It uses a single OS thread with coroutines, like Lua, although it supports multiple VMs in the same process, so asynchronous message passing between two VMs on separate threads might be easy enough to hack together. It's good for people who like the minimalism and dynamic nature of the language and what it lets them accomplish, so long as their task isn't CPU-bound and doesn't require a rich library ecosystem.
- justincormack 12y agoLua supports multiple VMs in the same process too (there are no globals, you always pass the Lua state).
- vinceguidry 12y agoNew languages are research projects, not startups. They don't really compete against each other. Generally if you're asking this question then you should just stick with the more well-known platforms. Languages themselves don't have strengths and weaknesses. You need to compare everything else along with the language, the community, library support, stability of the implementation. And if you're looking for a comparison of these in a brand-new language, what you're looking for is not something it can offer. There is no community, libraries will be extremely spotty and not well documented. You also need to know the language it's implemented in, too, because you might need to debug the odd bug in the implementation yourself.
- david-given 12y agoIo's an attempt to combine the language minimalism of Smalltalk and Lisp. So you get a message-passing object oriented language with Lisp-like features like programs being their own parse tree, which you can manipulate at will at runtime. Apparently it's supposed to be really fast, too, for a pure-interpreted language, but unfortunately the name 'io' is unsearchable and I haven't found any references. (I think this is a major factor why nobody's ever heard of it.)
- JadeNB 12y ago> unfortunately the name 'io' is unsearchable As with Go, appending 'lang' gives more luck: https://google.com/search?&q=iolang https://google.com/search?&q=iolang. (I still didn't find a reference for the speed, though.)
- dognotdog 12y agoIo's speed has improved a lot historically, but due to its dynamic nature, it has a relatively high dispatch overhead, and little of what remains can be optimized away. In the past, GC was a big bottleneck, not sure where we are today on that front. Io is no speed deamon, but for heavy computation, its easy to dip into compiled C or C++ libs, putting it in the same ballpark as an unjitted ruby, python, or lua.
- nickbauman 12y agoWhat adrusi said is very spot on. I would add to what he said: Io is one of the few homoiconic languages that is not a Lisp. If you know what this means and what power this offers, I would argue this is a main selling point. If you don't know what this means or why this matters, it will be a meaningless differentiator.
- jevgeni 12y agoAFAIK, Io isn't the kind of language to be compared with Go & co. - I don't think performance is one of its strong points. Rather it is a light and embeddable language, kind of like Lua.
- stevedekorte 12y agoIo and Lua are light and embeddable but while Io is much slower than Go (and much higher level), I suspect Lua is probably the fastest scripting language around and LuaJIT may be competitive (perhaps even faster) than lower level garbage collected systems languages like Go and Java. Looking back, I wish I had written Io in Lua.
- jevgeni 12y agoI've actually went to the Wikipedia to look up, who the creator of Io was. :) No, seriously, thank you for creating it. Although I hadn't had the chance to use it in production (most of my stuff is just numerical), Io is an incredibly enlightening language.
- smosher_ 12y agoAs someone who loves Io, it gets my attention because: — the language is very mutable, almost all behaviours can be modified — it's simple, all you can do is send messages to objects — you can write DSLs and macro-like things without special macro support — it's so dynamic you'll end up live-coding without realizing it It has less syntax than Smalltalk, it's homoiconic like Lisp, but doesn't need support for macros because of the way messages are handled. A not intolerable way of thinking of Io is it is to object calculus what Lisp is to lambda calculus. There are parts where that analogy breaks down but it's not a bad first approximation. edit: formatting
- a8da6b0c91d 12y agoIt's slow as balls and the design/features mean it will always be very slow.
- riffraff 12y agoI don't think Io's feature make it necessarily slower than, say, Self, and that could be quite fast (the methods-can-be-macros should be statically manageable, I believe) .
- netghost 12y agoI honestly wouldn't suggest it for production code, but I think that learning it gives you a great perspective on how powerful the right simple basic constructs can be. So learn it to be a better programmer.
- klibertp 12y agoI don't know how true it is, but the language author claims that it made it into space, on board of some satellite or spacecraft. If that doesn't make it "production ready" then I really don't know what would.