
IoLanguage
lova1ing
这个作者很懒,什么都没留下…
展开
-
IoLanguage
有点厌倦了ErLang。这种语言有很多优点,但缺点也是致命的。和C库的交互能力不是很好,主要原因是C库都是基于线程、阻塞线程的。Port不能很好地解决需要多线程来操作的资源,所以ErlyDB宁愿自己实现协议。相比之下优点不是很突出了。分布式?一直在做分布式系统,积累的库再借鉴点Erlang的优点,已经解决大部分问题了。并发?状态机也不是很难写,就是有点恶心,当然C++有更高的效率,...2008-01-24 12:54:08 · 321 阅读 · 0 评论 -
Io Language学习:Prototype-Based Language
Io Language是一种Prototype-Based Language,像JavaScript一样(其它类似的语言我不清楚),这也是个常见的词,JavaScript也非常流行,所以不用再详细解释这个概念了,主要说一下它的库扩展能力,玩过JavaScript/Ruby的对这个特性应该是很喜欢了。举个小例子说一下这种模型的好处。Io Language的Object有一个wait方...2008-01-26 20:31:54 · 282 阅读 · 0 评论 -
Io Language学习:基本语法
Io Language没有关键字,所以它的语法很简单:[code]// 赋值a := "hello world"// 取值a// 方法调用:a println// 方法调用2:a split(" ")// 方法调用3:a slice(1, 3)// 方法调用在Io里面叫作message,和Ada, Ruby, Objectiv...2008-01-29 13:51:03 · 313 阅读 · 0 评论 -
Io Language学习:异步编程
迫不及待地介绍这个特性,来看一下Io是如何在不改变调用过程的情况下让调用变成异步的。先看一个同步调用:[code]Slow := Object clone do( call := method(i, wait(i) "DONE" println i + 1 ))results := list(...2008-01-29 14:31:20 · 186 阅读 · 0 评论 -
Io Language学习:并行map的运行原理
前面给了个Io异步编程的例子,最后说“和Erlang比一比“,我指的是Erlang做类似的功能需要pmap。为什么Io的List#map可以适应这种并行调用?本文简单分析一下。通过阅读源码,首先可以确定的是map本身没有作任何特殊处理,所以重点放在"@"这个操作符上,它完成异步操作。经过测试发现,方法如果是异步调用(应该说消息是异步发送,说方法调用感觉自然一些),如果不“使...2008-01-30 13:40:26 · 185 阅读 · 0 评论 -
Erlang/IoLanguage/Ruby
最近下决心和Erlang说再见了,想了很多,也用了一段时间,断断续续数落过几次Erlang的优缺点,看得不深,权当我是瞎说。简单整理一下:优点:高并发、分布式、资源管理、高效率(和其它动态语言比较)、热升级、自动并行缺点:语言抽象能力不强、语言扩展能力不强、FP让大多数人不适应、和C库交互不好有一段时间我打算自己做一套类似的框架,使用coroutine,虽然我测试过的corou...2008-02-16 21:42:32 · 222 阅读 · 0 评论