scala是未来王者吗?

scala可能胜出,因为c++的胜出原因就是和c的兼容性好。ocaml和c以及c++关系较远,因此,流行的可能性小。

但是因为c++和java并不是很成功,因此python很流行,python是多范式的编程语言。从这个角度来说,重新设计一个语言也是不错的选择。

函数语言具有比静态编译语言更严格的限制,也因此具有很多独特的优势,因此纯函数语言的存在是有必要的。erlang是实用版的纯函数语言,并且有好用的多线程模型。erlang、c、python的组合也是不错的混合编程的选择。

Posted in Uncategorized | Comments Off on scala是未来王者吗?

电脑:编程语言:ocaml

电脑:编程语言:ocaml

特点:
* 出生于法国。
* 和haskell同样派生自ml语言。
* 加入了面向对象编程和指令编程特点。
* 具有完善的库。
* 静态编译语言。

适合:
* 混合编程。在函数编程的同时不愿意放弃面向对象和指令编程。
* 重视性能和独立发布能力。

Posted in Uncategorized | Comments Off on 电脑:编程语言:ocaml

电脑:编程语言:erlang

特点:
* 纯函数语言,具有变量不可变、参数的模式匹配等特点。因此不易出错。
* 有方便的,自己的多线程模型
* 纯函数语言也有很好的并行的特性。并行和多线程(并发)是两个概念。
* 是动态解释型语言。
* 能够热补丁、热更新。也就是能够在运行过程中更新部分程序。
* 有丰富的库

适合:
* 云计算。
* 纯函数编程,比haskell引入的概念少些,也因此学习曲线较缓。
* 是实用的语言,工业使用的语言,而不是haskell那样的学术语言。

Posted in Uncategorized | Comments Off on 电脑:编程语言:erlang

文本标记的选择

最终极的文本标记语言解决方案是tex(包括latex),可以实现各种写作效果,包括数学公式,图表,引用,参考,编号等。latex还可以转化为info格式、html格式,docbook格式。

docbook是xml的解决方案,据说linux文档是用它写的。

说句废话html是网页的终极文本标记语言。

info格式是emacs和linux帮助手册的标记语言,info使用tex语法。man也是linux帮助的格式。

轻量级文本标记语言(都具有结构化功能,也就是章节标记能力):

  • restructuredtext是python编程语言社区提出的方案,作为python帮助的标记语言。能够较完整的实现latex的功能。restructuredtext也是最美观的轻量级文本标记语言。
  • markdown即不是wiki标记,也不是latex标记,只是单一网页的标记语言,以html为转换目标。是最简单的标记。由于最简单,因此,被广泛支持。textile是另一种以html为目标的标记语言。
  • mediawiki的标记语言是被广泛支持的wiki标记语言。适合wiki方式的文本组织。creole是试图对wiki标记语言进行统一的标准。

标记语言的转化程序:

pandoc是一个能够输入多种格式,并输出多种格式的转换程序。并对markdown进行了扩展。

txt2tags有自己的标记语言,能够多格式输出。不能输入。

Posted in 信息技术 | Comments Off on 文本标记的选择

完整版人的属性

社会的历史、地理、阶层、事件是人的自然性的4个组成部分,对应物质的时间、空间、物质、运动。

人的理想性见上一篇博客。

人的社会性的内容改为了更宏观的概念。社会的组织方式对应人的社会性。组织方式的金字塔型(倾向于形成巨型机构、形成相互依附的关系)、平等合作型(社会化大分工,商品自由流通,由看不见的手来调节)、传播沟通型(印度,重视宗教传播)、条块分割型(非洲,一直部落战争)对应个体的结构、流程、开放、独立。

国家层面就是丛林层面,也对应人的利益性。国家的政治(包括外交、文化、管理)、军事、经济、社会(在社会中扮演的角色)对应群体的合作、竞争、发展、生存。

人的属性是比较微观的概念。需要用宏观的概念来替换。这样,在宏观层面,就用社会、文化、组织、国家来代替自然性、理想性、社会性、利益性。

从此,社会架构就完整了。

参考链接:

(长篇)人的属 性,及其和社会制度、管理方法、哲学架构、宗教、哲学、社会类型的关系

Posted in Uncategorized | Comments Off on 完整版人的属性

(长篇)人的属性,及其和社会制度、管理方法、哲学架构、宗教、哲学、社会类型的关系

 人的属性是社会架构的一部分。

人的属性包括:自然性、社会性、利益性、理想性。

先说管理方法,据说对基层人员的管理方法是法家(也就是说强调纪律,以奖惩为主),这正对应人的自然性(人体、生物性、物质性)。对中层的管理用儒家(强调自觉性),对应人的属性的社会性(社会秩序、纲常伦理、上下级、各种社会角色、人际关系)。对高层采用道家(平等合作、各取所需、因势利导),对应人的属性的利益性(丛林法则,不讲规则,博弈,合作竞争)。 上面三种方法是从一篇文章中看到的。既然人的属性有4个,那么需要找出第四种管理方法,那就是企业文化(针对人性提出很多理念,来凝聚人,催眠人。管理社会人则是宗教,在革命中则是思想政治工作,对应传统文化是不是应该叫做释家),对应人的理想性(也可以叫做精神性,意识性)。

人类社会的社会制度的发展阶段其实也是管理人的方法的改变,奴隶社会(体罚式的管理,肉体管理)对应人的自然性(法家), 封建社会(纲常伦理,强调秩序)对应人的社会性(儒家),资本主义社会(民主社会,讲究规则,讲究个人的自由,个人的私利,个人的权力,为个人利益物质利益而生活)对应人的利益性(道家,博弈),宗教社会(包括原始社会的祭祀, 包括将来机器全面代替人的劳动后的人道社会(见起点小说《人道天堂》,一种没有什么物质追求,而更多精神追求的社会))对应人的理想性(也叫精神性)。

现在发现人的属性对应于哲学架构的4部分,这也说明了人是小宇宙。自然性、社会性、利益性、理想性分别对应哲学架构的物质、个体(个体也可以叫做整体)、群体(也可以叫做丛林)、目标(现在发现“精神”这个词比“目标”更贴切)。

社会类型(见参考)的控制型、服从型、内向型、外向型分别对应哲学架构的个体4个组成部分:结构(也就是金字塔结构,自顶向下的结构)、流程(服从另一方面也可以叫做有合作精神,能够和上下游顺利合作)、独立(也就是内外分割,有自由精神),开放。 这样对人的研究就不局限于4部分了,而是可以继续发展为16部分。下面继续。

人的理想性也可以叫做精神追求,再广义来说,叫做精神活动,意识活动,思维活动。我从佛教的名词“唯识”受到启发。我们知道的有唯心主义、唯物主义。佛教说自己不是唯物主义、不是有神论,这样实际上就是唯心主义,佛教里面讲究修炼的部分有很多属于心理学的范畴,见心理学架构。唯物主义讲究实证,观察、实验、测量等方法来获得理论认识,实际上可以说是强调对外界的认识,因此对应哲学架构的目标(今后改叫做精神,包括内因、外因、目标、执行)的外因部分(精神领域的外因指心灵的窗户,能够感觉到的部分,外界的部分,而一般的外因则指外部环境,自己不能掌握的部分)。而唯心主义讲究先有理念、假设,然后去处处验证,讲究高度的抽象,等于是求诸内心,因此对应精神(原来的哲学架构的目标部分)的内因(精神领域的内部就是内心了,而一般的内因则指自己能够掌握的资源)。从佛教的和有神论以及唯物论的对比,则看出来宗教(有神论)也是人的精神活动的一部分,有神论通过神的崇拜,通过迷信,借主神的口来给人指出人活着是为了什么,因此对应精神的目标部分。其实人也可以不需要别人来指出目标,通过过问自己的内心,同时通过对外界机会的把握,通过自己的思考也可以找到目标(这种说法好像是佛家的率性,本性,参考起点小说的《阳神》)。第四部分也很好找了,就是儒家的不讲物质、不讲神、不讲理念,只讲行为规范。儒家对应精神的执行部分(什么也不说,只是执行,好的规范得到幸福人生,幸福家庭,幸福社会)。

人的另外的8要素待今后感悟。

参考链接:

哲学架构 

社会类型

 社会架构

心理学架构

Posted in 一分为四与架构 | Comments Off on (长篇)人的属性,及其和社会制度、管理方法、哲学架构、宗教、哲学、社会类型的关系

编程语言的选择之scheme

scheme:

适合人群:计算机专业人员或者希望对编程深入研究的人。

特点:

表达能力强之一:具有强大的宏能力,能够生成各种方言。比如自己实现面向对象语言能力。

表达能力强之二:可以无限嵌套,没有表达式、语句的概念,都是函数,等于直接面对编程语言的编译器,也因此具有很大的灵活性。

表达能力强之三:数据和程序不分,能实现很多复杂的功能。

表达能力强之四:函数是第一类对象,实现严格的尾递归,具有基本函数语言能力。

语言规则简单,不需要去特意适应编程语言的种种特别的实现。

是古老的lisp语言家族的一员。经过长期历史考验。

标准化的语言。

有多种实现,能够被翻译成c语言、java语言,能作为解释语言直接执行,能编译成可执行文件,能编译成虚拟编码。

缺点:

由于没有表达式和语句,因此相对表达比较繁琐。

实现的选择:

入门首选mzscheme

参考资料:

王垠的scheme介绍

Posted in Uncategorized | Comments Off on 编程语言的选择之scheme

编程语言的选择之python

python:

适合人群:非专业程序员、希望快速开发的程序员。

特点:

最友好的语言:

默认安装有完善的入门文档、参考文档等文档。

默认安装有整理齐全的模块(因此号称充好电的编程语言)。能方便的网络编程、图形用户界面编程等。不需要四处去找模块,也不用担心模块不被新版语言支持,不用担心模块的完善和质量。

强制使用缩进作为语言格式,这样对程序阅读者非常友好。

函数作为第一类对象,对函数编程者很亲切。又有完整的面向对象的语言的特点。还有强大方便的文本处理能力。

默认安装有语法高亮的编辑器。

默认安装有调试程序等工具。也有文档测试、单元测试、编码内嵌文档等能力。

具有交互环境,每个语句都能马上看到结果,不用链接、编译等。也不用必须把程序语句放到文件里才能执行。

Posted in Uncategorized | Comments Off on 编程语言的选择之python

@ruanyf 如果把程序当作一个作品,希望被更多的人看到和学习,那么,就采用BSD许可,这样学习者学到后能马上拿来使用,更有学习动力,并且BSD许可简单,而GPL总有很多法律的空子可以钻,比如android。尤其是开发人员只有一个人的情况,很多都是作者把程序当作作品来开发的。如果希望大家共同参与到开发中来,并且不希望有闭源的竞争者,那么GPL就是合适的许可证。如果项目以一个人或者一个公司开发为主,希望自己主导版权的选择,那么可以考虑象firefox那样的MPL、GPL、LGPL三许可,这样版权拥有者集中,便于版权的维权。FSF也是这样的,要求贡献者将版权拥有权授予FSF。象mySQL,我印象中是不接受外部贡献的(很可能是错误的),这样做的目的也是为了主导版权的变更。

Posted in Uncategorized | Comments Off on

@ruanyf 对阮一峰blog http://www.ruanyifeng.com/blog/2010/02/revisiting_android_licenses.html 的回复有点多,放到这里:

1. 不能只看IP,这个blog光google订阅就5000多。
2. 也不能把这里看作私人空间,这里的blog常常被转载,影响很大,从cnbeta的转载就可以看出来。
3. 但blog毕竟是个人空间,允许错误,允许当作个人的学习空间,毕竟,blog坚持下来不容易,因此首先要有一个对自己有益的理由。这一点也请blog读者注意。网络是交互的,发表出来,有了评论的互动才能共同进步,也是blog相对个人笔记的优点。那些单纯的评价而不说出来道理的评论可以无视。
4. 评论的不代表多数。只是很多人喜欢骂人、骂战。还有一些人智力有问题,认识错误也是允许的,毕竟很多人智力达不到平均水平,尤其是在中国的教育制度下。如果说有一些是不同利益者,我是想不出来在没有版权保护的地方,谁会和GPL有利益冲突(我力挺bsd license),只能说闲的蛋疼,乱喷。

5. 开源和封闭各有优点,没必要贬一个,挺一个。

6. 同意上面的评论,linux产生分支并不完全是坏事,还是可以相互借鉴共同进步的。另外,不是说反对就能阻止的,首先要尊重现有存在。

Posted in Uncategorized | Comments Off on