编程语言演化、对比
标签:XML lambda 变量类型 码农 script node 后端 服务端 地址
- 参考率《码农翻身》
- 不同的语言一定要在擅长的领域做擅长的事,否则就是同一种语言了,各有优劣,适用场景不同。
- C
- 实现的是代码可移植
- 在编译器,需要通过链接把主程序和被引用的程序联系起来(地址映射)
- 不适合入门,成就感较低,但能帮助理解底层运行机制
- VB和Visual FoxPro
- 本地的数据库应用,被淘汰了,不实用
- C
- 复杂,投入太多,容易出错
- Java
- 实现的是代码和部署都可移植
- 其实也做了链接,只不过是动态链接
- 简单,资源丰富,社区活跃
- Ruby
- 包含Web开发的一些最佳实践,有点像sql那样的DSL
- 但有动态语言的缺点,过于灵活,容易出错(如变量类型,运行时才出现),需要完善的单元测试
- JavaScript
- 最开始叫LiveScript,为了和Java套近乎。。。
- 解释性,避免每个页面都要像C、Java那样编译一下,太慢了
- 一开始只是为了不要所有事都和服务端交互(太慢),在客户端可以做一些事情(操作DOM等),后来有了AJAX(基于XMLHttpRequest,可以异步局部更新了)、JSON(XML太臃肿)后才流行起来,引起了革命性的Web 2.0
- Node.js
- 为了让JavaScript不再依赖于浏览器,将JavaScript引擎搬到了服务器端,可以进行文件、数据库等操作,实现了前后端语言的一致。
- 有了Chrome V8引擎后才真正提高了效率,因为Node.js并不为每个HTTP请求分配一个全程服务的线程(Java后来是不是也不这样了?),而是通过基于事件编程和异步来实现用一个线程服务所有请求,只是要区分出哪些是马上就是处理完的命令,哪些是需要等待的(做成异步回调的,基于事件触发)
- 命令式编程与声明式编程
- 最底层后都是一样的底层代码,是命令式编程还是声明式编程,是针对编程语言的使用者的感受来说的
- 命令式编程
- 需要编程语言使用者一步步指明所有的细节,比如不用sql查询数据库,那么就要拿出所有数据,然后一点点过滤、组合
- 声明式编程
- 8以后也部分支持了声明式编程(Lambda表达式)
- sql就是典型的声明式编程
编程语言演化、对比
标签:XML lambda 变量类型 码农 script node 后端 服务端 地址
温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/biancheng/12139.html