首先声明,起这样一个拉风的标题确实是名不副其实,因为SL现在还只是存在于概念状态(啊!会飞的西红柿...),只是为了希望大家重视编程语言的发展方向,sorry。
现在的各种语言,都在把程序员当作机器和需求之间的翻译。可以这样说,如果需求写的足够好,一个人在看完需求之后就能把实际的工作做好。但是要交给机器做,就需要花费人力物力时间等资源写出代码交给机器,难道这个翻译工作就注定这么麻烦吗。
代码优劣 = 代码行数/需求行数,这个结果越小越好(可要看出代码复用的好处),如果等于1,就说明编译器可以直接理解需求了!这当然是最理想的,SL 语言就是为了这个目标而产生的,是编程的终结者!(大家会不会因为这个而害怕失业呢,那是另一个话题了)。
用它开发就好像在把需求规范的写出来一样,智能的编译器会理解你的,这种代码因为直接来自需求,所以有强大的可读性,不需要注释只需要整体框架上的说明文档配合即可。
举个例子,看看需求:
“我希望所有窗体都是红色的,特殊的A、B窗体是蓝色的,还有所有查询窗体都是绿色的。”
现实的语言实现起来不方便,需求改动后调整也不灵活,但是SL语言如下:
Set(AllForms, BackColor)
{
Frm_A = Blue;
Frm_B = Blue;
all(type == "Query") = Green;
others = Red;
}
特点是只描述与需求有关的内容,无关的一概不关心,如此简洁,Bug怎好意思光临。
现实程序中哪些与需求无关呢,下面有一段c#代码供参考:
for(int i=0; i<this.panel3.Controls.Count; i++)
{
Control c = this.panel3.Controls[i];
if (c is ModulePanel)
{
ModulePanel mp = (ModulePanel)c;
mp.OnExpanded += new EventHandler(this.mpanel_OnExpanded);
}
}
这明显是写给机器看的,如果我只关心需求,为什么要加上i、c、mp这些东西呢,我也不关心Count、EventHandler等具体实现的东西,统统去掉后SL如下:
Set(this.panel3.All(ModulePanel))
{
OnExpanded += this.mpanel_OnExpanded;
}
简洁!人可以理解,编译器通过一些显而易见的技术手段也能理解,难道我们非要写一堆代码以显示自己的智商吗?
当然,如果SL语言可以实现的话,可能效率上是劣势。但是从发展趋势上讲,由于硬件的不断进步,项目的复杂性越来越高,会对效率越来越不敏感,而开发周期、成本、bug控制会越来越敏感,所以坚信SL是未来语言的发展趋势!
SL是一种概念中的编程语言,旨在让编译器直接理解需求,减少程序员作为中间翻译的角色。它的目标是提高代码的可读性和简洁性,通过描述需求相关的内容来编写代码。SL语言的应用示例显示了其如何简化现实编程中的复杂性,尽管可能存在效率问题,但随着硬件进步和项目复杂性的增加,SL可能是未来编程语言的发展趋势。
3816

被折叠的 条评论
为什么被折叠?



