经过几天的思考,林奇做出来了一个艰难的决定,自己先开发出来一个语言。
这门语言要让所有的认识字的国人都能使用,林奇希望凭借着这个语言,让我国的软件行业实现弯道超车,领先于全球。
要实现这样的目标,首先这个语言必须是汉语言,其中不夹杂一点点外语,不能像之前的一个宣称是汉语编程的叫做易语言那样,只是把if变成了如果,那么简单的东西。
林奇希望这门语言变得易学,只要有初中程度的文化水平的人也都能在短短的7天内学会使用这个语言,真正的实现《7天精通xx语言》。
这就要求这个语言足够简单,至少是用法上足够简单,不管后面逻辑是怎么样的,只要开发人员在前台输入了简单的一些语句,它就能准确无误的执行。
基于这两个主要的目标,林奇开始了自己的编程语言之战。
林奇首先给自己定制了一台配置超高的计算机,打开编程软件,林奇写下了第一句话xx年xx月xx日xx分xx时xx秒,开始了x语言(现在林奇也不知道这个语言要命名为什么)的编写。
所有的语言在编码的时候都要遵守一些特定的规定,比如有的语言要求,在行尾必须有英文的符号“;”否则代码进行编译或者运行的时候就会报一个语法错误,说这个文件某某行编写的有问题,不能运行下去。
不过如果你忽略这个,强行运行下去,那么他输出的结果很难是你想要的结果,甚至有的程序你根本就运行不下去,不是闪退,就是直接报错,这还怎么玩,只能遵守它的游戏规则。
林奇不想准守这个,他觉得,既然开发人员要表达的主要意思都表示出来了,只要没有异议,那么像这些边边角角的东西编辑器自己加上去就好。
可能一百次中有一次自己加错了,那也没有问题。
林奇想打破这个规则,不让程序编写那么枯燥,总是写一些无关紧要的东西。
林奇希望程序员只需要全身心的开发主要的东西就可以了。
还有一个也是所有的编程语言都知道的,但是偶尔也会阴沟里面翻船的事情,那就是所有的语言里面的数组,编号都是从零开始的,比如我们数数都是一个馒头,两个馒头,三个馒头……一百零一个馒头。
而在编程语言里面,就不是这样的,他们是这样数数的,第零个馒头,第一个馒头,第二个馒头……第一百个馒头。
这是因为为了节省机器的空间,因为二进制电脑是从零开始的,这样可以节省一些空间。
但是林奇对这个早有诟病,程序是电脑运行的,但是源代码是人看的,这明明是面对的两种不同的情况,编译器内部难道不能做这些转换吗,为什么非要从开始的时候就定成编号从零开始。
所以林奇把这个也加入到了自己必定优化的点,可能有的人会说,现在所有的编程语言都是从0开始,你这x语言从1开始,到时候推广的时候人们会不会就搞不清楚,会误用这块。
林奇想告诉有这样想法的人,你们想多了,只要人们知道有这个用法,那么以后人们绝对不会误用,因为这个才符合“人”的思维,也许他们用这个语言习惯了,可能会觉得其他语言里面从0开始计数的设计非常难用。
林奇以前还看了一个段子程序员去面试,你知道什么叫做“类”(编程语言中的一个属于)吗?程序员回答老板我不知道什么叫做累,我这人干活特别勤快,天天加班到2点都没有问题。
这个“类”是语言经过了很久的进化而出现的一个高级产物,它在某些方面很有用途,林奇决定这块要保留,但是也要进行一些变通,让它使用起来更加的简单,甚至让人在不知不觉中就开始用,而不是必须去想着这么用,才去考虑。
对于函数、变量这些,所有的编程语言都有这一个东西,林奇觉得这个做的挺好的了,也一起保留。
语言还可以分为强类型语言和弱类型语言,就是一个变量他表示的是1234这样的数字,还是“落霞与孤鹜齐飞,秋水共长天一色。”这样的字符串,对于强类型语言,他表示的是什么就是什么,比如是1这样的数字,他可以+100编程101,但是不能给他赋值为“小荷才露尖尖角”这样的字符串。
而对于弱类型来严,这些都无所谓了,你想给他赋值为什么它就是什么。
他们各有各的好处,不过在这里,林奇还是倾向于混合模式,有的情况下可以是强类型,有的时候就是弱类型。
这样既有了弱类型易于编程的优点,又有了强类型易于运行的优点。
至于函数的,什么多返回值,什么可变参数……
那都是“取其精华,去其糟粕”,只留下了最最好用的。
现在的编程语言都是用的英语,显有其他的语言,对于我们国家的人来说,有的英语不太好的。
看别人的源码的时候,看到一个变量,有的时候不懂,就查词典,查完之后也没有查出来什么,最后可能是看到了哪个犄角嘎啦里面一行注释才明白,那个变量原来是一个汉语拼音的首字母。
甚至有的人是汉语拼音全拼、首字母拼音、英语这样混着来,更让接手的人想骂人。
林奇把这块统一了起来,凡是类名,函数名和变量名字,必须用汉语,可以说是除非非得处理英语相关的一些东西,或者是处理一些字母相关的东西,否则是不允许使用字母的。
这样只要是正常的国人,看到代码,至少不会为了一个变量名去翻字典了。
至于为什么现在国人编程的时候,不用汉语来命名,其实原因有三个,第一个大部分里面的都是英语,来回切换输入法名字太麻烦,第二个原因是因为觉得输入汉语很费时间,第三就是可能有的是因为要放到github开源出去,如果用了中文怕别人看不懂。
第一第二个就不说了,至于第三个原因,要给这些人鼓鼓掌,懂得分享是一种美德。
不过为什么别人分享代码的时候都使用英语,他们就不怕我们国人看不懂吗?
林奇按照所有的这些要点,编写了一个语言,起名为“自然语言”。
自然语言,顾名思义,就是我们人与人的交流,至于背后编译器是怎么运行的,就不需要关注了。
这个语言非常简单,比如我们想编写一个软件来控制电脑定时开机关机,我们只需要在特定的地方写上“每天晚上12点定时关机,每天早上9点定时开机”这样的给人看的文字就可以了,然后自然语言编译器就能按照指令去执行。
至于他背后的逻辑是做了什么,我们完全不需要注意,不需要关心,我们只知道它能按照我们的意思执行就好了。
经过了三个月的努力,林奇开发出来了这个非常智能化,非常人性化,非常国人化的编程语言——自然语言。
林奇自己都没有想到,自然语言后来成为了第二智慧科技的四大基石之一。
s
在现实世界中我问过专业的人士,他们说开发自然语言至少在几十年内是不现实的,甚至有的说50年以内都是不可能的。
还有如果真的开发一门语言,别说三个月的时间了,哪怕三年能开发一门新的语言也是很快的速度。