atitit.编程语言的未来趋势与进化结果

1 语言就像物种一样,会形成进化树,没有前途的分支将枯死脱落。 1

2 机器语言 1

3 汇编语言 2

4 C语言, 硬件抽象层 2

5 高级语言:java,.net  跨平台(os)抽象层vm 2

6 DSL领域编程语言(跨越编程语言) 2

6.1 实现方式:: 语义 和 语法 分开 2

6.2 结构Dsl,dsl解释器 2

6.3 统一的开发语言 3

6.4 每个领域特性部分,使用类库解决 3

7 语言特性发展 3

7.1 Oo+ 3

7.2 Function 3

7.3 动态(non编译)还是编译?? 3

7.4 强类型还是弱类型??? 4

7.5 面向自然语言还是简单的?? 4

7.6 抽象能力 4

7.7 删除语法噪音 4

7.7.1 语法噪音 4

7.8 强大ide,vm 5

8 编程语言的进化,起始发现背后的思想 :任何两个系统之间的复杂性,都可以通过添加一个抽象层要屏蔽 5

9 参考 5

1 语言就像物种一样,会形成进化树,没有前途的分支将枯死脱落。

2 机器语言

最早的编程语言是卡带,也就是机器语言,这种语言没有语义和语法,操作符和数据混合在一起,偏向于具体的设备,依赖觉得硬件。

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

3 汇编语言

随后,汇编语言就出现了,汇编语言定义了基本的语法结构,定义了操作符和数据类型,但是汇编语言还是针对特定的硬件编程

4 C语言, 硬件抽象层

对于汇编语言的问题,主要要解决跨硬件平台,添加一个抽象层,这个就是硬件抽象层

5 高级语言:java,.net  跨平台(os)抽象层vm

为了解决C语言的跨平台的问题

6 DSL领域编程语言(跨越编程语言)

6.1 实现方式:: 语义 和 语法 分开

而个的语言编程语言一般都是语法和语义绑定在一起的

6.2 结构Dsl,dsl解释器

6.3 统一的开发语言

现在越来越有这个趋势了,各个语言都在添加其他语言的特性,增强自己的特性,以后各个语言都变的越来越类似,功能也越来越雷同

6.4 每个领域特性部分,使用类库解决

或者二手的dsl??

7 语言特性发展

7.1 Oo+

7.2 Function

7.3 动态(non编译)还是编译??

综合考虑,工业级别的源码保护的考虑哈,还是要编译,,yaneng跟个python雅十,共同的情形哈不编译器,给客户的时候儿编译..

动态性意味着更加灵活,意味着开发者有更多的"魔术"可以玩。而开发者会天生对动态语言有亲昵地感觉,这是人的本性。

但是凡动态语言,JavaScript、Python、Ruby这些,实际上已经意味着与地层开发无缘了。

同时灵活意味着少约束,少约束意味着大规模程序很难被编写出来。到目前为止,很少听到过超过10万行级别的JS语言项目,这样的现象多少与JS的动态性有关。

反过来看,动态性较低的C语言现在成了驱动和OS内核开发的不二之选,因为好像驱动里面根本用不着那些看上去NB的抽象——即使你用了C++,也是像C一样用而已

7.4 强类型还是弱类型???

以及ide支持不行。。

所以,综合考虑,工业级别的任然是强类型的天下。。

或者,语言支持弱的型,也能强壮的型…必要的的时候儿,能强类型…

7.5 面向自然语言还是简单的??

Cobol,ada的强壮的理解性…普通的的人们能理解的..

大部分情形哈,还是简单的特性ok…而个的java取代了cobol,ada..

7.6 抽象能力

抽象能力应该是现阶段语言进化的第一优先级,抽象手段无非函数式、过程式和面向对象三种,看计算机语言的流行历史, 不难看出 函数式=>过程式=>面向对象=>函数式回归 这样的规律。Lisp一直在学术界评价颇高,但是其商业应用一直低迷,其抽象能力比较弱一直是个重要的原因。

7.7 删除语法噪音

7.7.1 语法噪音

语言除了功能和设计,“长相”也是很重要的。这里要提到一个语法噪音的概念,比如JS里面的function,相比lambda表达式,这个噪音就多了

arr.some(function(x){ return x<2});

而C#里面可以这么写:

arr.some(x=>x<2);

这里面,function关键字,return关键字,各种符号,其实实际意义都不大,因为JS语法设计,而必须要加上,这就是一种噪音。

有趣的是,向python这样的语言对于“去噪”的追求达到了极致,甚至不惜用空白做标志干掉花括号,这个做法导致了其毁誉参半,喜欢的人特别喜欢,不喜欢的人特别讨厌。

7.8 强大ide,vm

8 编程语言的进化,起始发现背后的思想 :任何两个系统之间的复杂性,都可以通过添加一个抽象层要屏蔽

9 参考

编程语言进化-CSDN.NET.htm

编程语言的进化 - God Is Coder - 博客园.html

程序语言的进化——话说变量-CSDN论坛-CSDN.NET-中国最大的IT技术社区.htm

转载于:https://www.cnblogs.com/attilax/p/5963739.html

atitit.编程语言的未来趋势与进化结果相关推荐

  1. Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理

    Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理 1. 重载包括:普通方法的重载和构造方法的重载 1 1.1. 横向重载"和"纵向重载"1 1.2.  ...

  2. Atitit q2016 qb doc list on home ntpc.docx

    Atitit q2016 qb doc list on home ntpc.docx 驱动器 D 中的卷是 p2soft 卷的序列号是 9AD0-D3C8 D:\ati ext notbek\q201 ...

  3. Atitit r2017 r1 doc list on home ntpc.docx

    Atitit r2017 r1 doc list on home ntpc.docx 驱动器 D 中的卷是 p2soft 卷的序列号是 9AD0-D3C8 D:\ati ext\r2017 doc e ...

  4. Atitit r2017 ra doc list on home ntpc.docx

    Atitit r2017 ra doc list on home ntpc.docx 驱动器 C 中的卷是 p1sys 卷的序列号是 A87E-7AB4 C:\Users\Administrator\ ...

  5. Atitit 算法之道 attilax著 1. 编码算法 3 1.1. Base64 htmlencode urlencode 3 2. Ui方面的算法 3 2.1. 软键盘算法 计算软键盘上下

    Atitit 算法之道 attilax著 1. 编码算法 3 1.1. Base64 htmlencode  urlencode 3 2. Ui方面的算法 3 2.1. 软键盘算法  计算软键盘上下左 ...

  6. Java的进化之路走到了尽头

    目录 Java的进化之路走到了尽头 Java 的进化之路走到了尽头 编程语言进化的主干 如何保持先发优势 Java的进化之路走到了尽头 " 一百年后,人们使用什么语言开发软件?为什么这个问题 ...

  7. c语言表达式3178的值为,【C语言】C语言运算符

    c语言 &amp;取地址运算符的理解 对于c语言中的&运算符,百度百科是这样定义的:(&p)则是这样一种运算,返回当时声明p 时开辟的地址:但是根据我对代码的观察,我觉得&am ...

  8. Python基础知识(第七天)

    90.嵌套函数_内部函数_数据隐藏 嵌套函数 在函数内部定义的函数! 一般在什么情况下使用嵌套函数? 1.封装 - 数据隐藏 外部无法访问"嵌套函数". 2.贯彻 DRY(Don' ...

  9. c++17新特性_每个开发者都应该了解的一些C++特性

    C++ 是一种强大的编程语言,但也因为其复杂性一直让用户望而却步.后来,C++ 决定做出改变,然后发展至今,成了编程社区最受欢迎的语言之一.C++ 有一些新特性非常好用,本文对此进行了介绍,比如 au ...

  10. 编程学习--从入门到放弃

    写在前面 我个人是非常不推荐对着书学编程的,非常枯燥,极其容易放弃(我个人就是,熟读各种编程书的前言..).而且编程语言和环境都进化的太快,有时候书印出来就已经过时了.(要是你关注的方向是经典算法,编 ...

最新文章

  1. 用Visio进行数据库建模、设计和实现
  2. TP id 对字符串的查找
  3. Vue防止白屏添加首屏动画
  4. 剑指offer(21)栈的压入、探出序列
  5. Linux 下的/usr/bin /usr/sbin /usr/local/bin /usr/local/sbin区别
  6. 干货!Redis集群工作原理解析
  7. 进行优化处理(WinXP),加快系统运行速度
  8. 大道至简:算法工程师须知的十个炼丹trick
  9. 猛料一顿狂堆!华为P40 Pro详细参数被曝光
  10. Spark.reducer.maxSizeInFlight 参数
  11. 超快的HTML5 2D渲染引擎Pixi.js入门
  12. Hibernate事务与并发问题处理(乐观锁与悲观锁)【转】
  13. 嵌入式算法19---国家商用密码SM算法
  14. sunshine in the rainsunshine in the rain
  15. 当物流行业遇见MongoDB
  16. 专利与论文-1:为什么要写专利?专利有什么好处?
  17. js 数组 pop,push,unshift,splice,shift
  18. 逃出996,追逐新目标!
  19. Other——苹果锁屏有个像播放音乐的界面如何去掉
  20. The Way to my Heart is through Contrastive Learning:Remote PPG from Unlabelled Video

热门文章

  1. 日志打印,设置开关类【编程技巧】
  2. lib的编写与使用(C/C++)
  3. 狐智、狼道、鹰谋,教你做个聪明的生存者!
  4. COCOS2D坐标系统的一些说明
  5. java建站系统开发教程系列之设计表结构
  6. chromium之message_pump_win之二
  7. iOS上传应用到AppStore出现Authenticating with the iTunes store
  8. es6的初级简易总结
  9. Spring管理hibernate的事务的方法
  10. 【案例】自由运动小球