作者自述CSE语言设计思想(一)----做50号语言,还是0号语言?

CSE V2.2.2版本发布后,我歇了一口气,为这门语言消耗太多精力了,整七年时间,几乎全职,因为我每周工作六天,每天11小时,除CSE我还有小许精力做别的事情。如果折算成常人上班时间,CSE内核开发耗用7人年,只多不少,而且只是内核引擎,不算CSE Labs团队其它成员在IDE界面及配套工具上的投入。

无论从哪个角度看,CSE都是个“大家伙”,经历七年之痒,我需要对她作出解释,既然让我付出那么多心思,小情人早成爱人了。老罗“彪悍的人生不需要解释”,我的彪悍人生刚开始,当然需要解释。本系列文章是对CSE V2设计作总结,有揭密性质,或者说有Hack CSE意味,毕竞大家学习CSE,从手册上看到的是现成的规则,知道语言规格是这么定义的,但不知道它为什么要这么定义,本系列文章所做的,就让大家理解隐藏在CSE背后的设计思想。

 

今天讲述的主题是:做50号语言,还是0号语言?

 

大家都知道业界有一个编程语言排行榜:TIOBE排行。它的排名顺序基于互联网上有经验的程序员、课程和第三方厂商的数量,排名使用搜索引擎及Wikipedia、YouTube进行计算。基本上这个排行榜反映了当前编程语言的热门程度。最近的TIOBE语言排行中,Java、C、C++位列前三甲,随其后有C#、PHP、Objective-C、VB、Python等,排名50位左右的有AWK、Scala,即便排名50也很有实力,对编程语言稍有些研究的都知道,AWK与Scala其实也算得上是优秀语言。

确定做CSE之初,我们就面临一个长期为之困扰的问题:CSE到底要做成啥样?在期望成为“啥样”之前,她的价值是0,这个世界有太多语言了,多你一个不多,少你一个不少,而你要实现价值,让价值得到验证,此前必须投入数十人年的精力,万一最终结论是“世界上多了一堆垃圾”,怎么办?

网上有不少发明各种语言的人,没开始做就大肆张扬,有宣称发现“宇宙中最神秘的数”,然后自称太极之父,定一个太极元年。——我没有嘲讽别人的意思,但创造一门编程语言是件最朴素、最实在的事,任何虚假、夸大都是徒劳无益的。坦率的讲,CSE会不会成为堆圾?一个问题就让我数年睡不好觉,还是怀着卑微的心情做点实事吧。

我们开发CSE,首先定位让它“具有商业价值”,商业价值?CSE不是免费的吗?没错,CSE是免费的,指的是价格,价格与价值是两个概念。编程语言作为一种形式化表现工具,它是一个工具,它的价值体现在“用它编程实现真正商业价值”的达成途径上。所以,开发CSE不能为语言而语言,纳入CSE的语法经过精挑细选,一个特性如果带来强大功能同时也引入麻烦,比如容易误用、学习门槛提高等,我们就非常谨慎。

比如C++的模板,方便编程同时制造了许多麻烦,还有“&&”、“||”、“&取地址”操作符重载等,我们采用的是“实用至上”原则,是否支持一项功能,以引入它带来正负面影响作权衡,其中负面影要扩大数倍去考虑,但如果按语言至上原则,能支持的都会尽量支持。从实用至上理念出发,Python3引入许多Python2不兼容的语法,我认为是个败笔,Python2够好用了,不能因作者个人喜好,给使用者带来困扰,现实中许多编程语言都在犯同样错误,像java、C#,某种程度上,越发展越成为尾大不掉的怪兽。

现在谈谈CSE的目标,让CSE成为TIOBE排行榜靠前的语言吗?相信多数创造语言的人都坚持这个目标,如果CSE也这么做会是怎样一副景象?经5年努力,很可能挤到排行榜第50名,然后数十年在20与50名之间晃荡,当然,做到这样成绩也算不错,但CSE顺从它的商业价值了吗?这么做肯定不对!如果以TIOBE排行为目标,CSE应大力发展lib库、大力拓展跨平台、跨CPU、多核等特性,其结果就是把自己累吐血也不见得用户买帐,陷入“多你一个不多,少你一个不少”的境地是必然的。

所以,我们的目标不是追求TIOBE榜上的50号语言,而是追求自具特色的0号语言。CSE的特色是什么?简单概括,就两点:脚本化开发代码翻译

脚本化开发用来保障最佳编程体验,脚本开发效率最高,这个观点是开发人员普遍认同的,CSE在此基础上强化快捷编辑与调测的特性,比如说,CSE的as指令,看上去不起眼,到处使用还略嫌喽嗦,但有as后一段代码中不经完整语法分析,也能立即提取各个变量的类型,如C/C++语言“(DataType)value”与CSE的“value as DataType”,前者没有as指示,谁知道DataType是什么?后者CSE中DataType无疑是数据类型,在代码编辑过程中,IDE能提示一些辅助(如类成员提示,函数参数提示等)信息让你高效编码。除了编辑,CSE的调测支持做得很到位,这里不展开,我们的目标是让“CSE具备最优编程体验”,是否达到“最优”留给用户自行判断,我能说的是,在编程体验上我们下过苦功,甚至不惜优先保证让CSE在一种环境表现最优,其它场合先成摆设。

如果对CSE了解多一些,你就知道最优应用环境是:Win32下VC 与CSE配套使用,其它场合(MinGW + CppDev、Linux + GCC)下CSE目前确实不好用。MinGW+ CppDev自身用于C/C++开发的应用体验都很差,叠加天仙似的CSE,又能如何?至于Linux + GCC,用来论证CSE跨平台能力是可以的,但它的商业价值不值得我们耗费过多精力,但如果换个平台,比方Android/Ubuntu,我们另当别论了。

最后谈谈代码翻译,翻译与编译性质相同,都是针对代码自动化处理。人们都说“软件即服务”,人们也说“编译即服务”,软件即服务没有错,众多公司都借服务实现盈利的,“编译即服务”在十年前也没错,Borland、微软卖编程工具活得好好的,但当下光景不再,C/C++的编译器接近免费,我说的是价格接近免费,但价值还在,换个地方体现了,比如增强平台吸引力,试想一下,Windows如果没有Visual Studio工具,它会有今天高份额市场占有率吗?

CSE支持将脚本翻译成C/C++,今后也许还支持翻译成其它代码,“翻译即服务”是我们另一个理念,我们坚信它是高价值的,所以数年一路坚持下来。抛开纷繁表面现象,大家想想Web开发是不是脚本化开发,脚本化开发的东西要借助预编译的体系才发挥作用,CSE的价值在于,它拉通了脚本开发与二进制编译之间的区隔,可发挥空间不小。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值