【Unix编程艺术】第14章 语言:C还是非C
来源:互联网 发布:iphone6在线软件 编辑:程序博客网 时间:2024/06/06 11:04
第14章 语言:C还是非C
我的语言的极限便是我世界的极限。
#1
要有效的应用Unix哲学,必须学会C以外的一些语言,尤其是脚本语言。
C
C可以作为其他语言的基础,来实现其他语言的核心。它的效率接近机器语言。但是容易犯错,开发效率低。
C和C++以增加实现时间和调试时间为代价来优化效率。
而现在,经济方面的优先选择变成了减少调试时间,延长人对代码的长期维护性。
C和C++的问题在于他们要求程序员自己管理内存。
一篇论文中指出:相比C和C++,脚本语言能够提高一倍的生产力。
参考《The C Programming Language》
C++
C++面向对象的特性。
向后兼容C,做出了很多妥协;OO没有达到预期。
编译效率以及面向对象和泛型编程的结合是优点。
怪异复杂,鼓励过分复杂的设计是缺点。
如果现有的C++工具包或服务库应用程序提供了强大有效的方法,则考虑用C++。
《The C++ Programming Language》
《C++ Annotation》
shell
Bourne Shell Bourne Again Shell
书写小型脚本非常自然快捷。难于处理大型程序
现在胶合层经常用perl和python编写,shell只为简单的包装器和系统启动时的初始化脚本。
《The Unix Programming Language》中高级
shell经常假设引用的程序已经存在,所以可能会产生移植性问题。
Perl
增强的shell,替代awk
最强的功能是对内置的文本、面向行的数据格式进行模式导向的处理功能。
Perl包含更强大的数据结构。
《Programming Perl》 《Learning Perl》入门
缺点:某些地方丑陋到无法补救;某些部分过于复杂;某些部分必须一成不变的使用。
Perl不使用扩展模块的时候扩展性很好。
Per最佳使用是作为强力工具以供大量设计正则表达式匹配的小型胶合脚本使用。
当程序很大会变得很丑陋。
Tcl Tools command language
Tk工具包
Expect
优点:节俭、紧凑的设计和Tcl解释器的可扩展性。
缺点:古怪的位置分析器和孱弱的数据结构以及命名空间,难用于大型项目。
Python
和C交流方便;代码块用缩进控制。
《Programming Python》
效率很低,可以在关键地方使用C
优点:鼓励清晰易读的代码,易学易用,还可以扩展到大项目。
缺点:效率低下,速度缓慢。
Java
GCJ
《Java In A Nutshell》
《Thinking In Java》
非常接近一次编译多次运行的目标。
Emacs Lisp
脚本语言,用于Emacs文本编辑器的行为编程。
自动内存管理,比大多数语言更雅致、有效。
但消耗资源太多。
《The GNU Emacs Lisp Reference Manual》
优点:结合了Lisp,对文本操作非常有效。
缺点:消耗资源太多。
- 【Unix编程艺术】第14章 语言:C还是非C
- 14语言:C还是非C——UNIX编程艺术学习笔记
- 【Unix编程艺术】第8章 微型语言
- 【Unix编程艺术】第1章 哲学
- 【Unix编程艺术】第6章 透明性
- 【Unix编程艺术】第9章 生成
- 【Unix编程艺术】第10章 配置
- 【Unix编程艺术】第11章 接口
- 【Unix编程艺术】第12章 优化
- 【Unix编程艺术】第13章 复杂度
- UNIX环境C语言编程(14)-sockets
- C语言编程艺术--语法格式
- C语言编程艺术--语法格式
- C语言编程艺术--C语言字符串
- C语言编程艺术--C语言字符串
- 【Unix编程艺术】第15章 - 第19章
- c语言艺术清屏
- 【Unix编程艺术】第2章 历史 - 双流记
- 【Unix编程艺术】第13章 复杂度
- hive与mysql的整合
- IOS开发 icon图标size
- hdu 1003
- Linux protobuf 2.5.0 安装
- 【Unix编程艺术】第14章 语言:C还是非C
- windows git 安装使用
- 声明宏和实现宏的用法
- Sonar codereview平台配置搭建
- 【Unix编程艺术】第15章 - 第19章
- devExpress 示例分析
- Cone 音箱:会思考的音乐播放器
- 一周极客热文:3月,献给程序员们的技术书
- 二叉树常见面试题