放毒记
这是关于上周末Delphi版聚的记录。
放毒一词源于摄影器材论坛:旦凡有人在坛里大肆鼓吹某些高级器材——比如Leica机、Zeiss头一类的(此即为放毒),往往导致观者心痒难耐(此为中毒),最终忍不住大出血,也去败了回来(毒发)。
当然这回我放的毒都是技术毒。
算 下来我们这一帮人,大多已经不怎么拿DELPHI作为主要兵器了,于是便扯的都是别的技术。549谈的是MS的测试技术,大风则是谈JAVA,我当然谈开 源,主打便是FreeBSD/Linux、PostgreSQL、Python/Ruby等,顺道批判了一下RAD/IDE。
FreeBSD/Linux
的安全性那是地球人都知道——当然有人说,Windows配置得好也很安全,但是要把Windows配置到安全那么好,所需要的技术含量并不比
FreeBSD/Linux要少。更何况绝大多数人都是默认安装的,而Windows的默认安装有多不安全那是勿庸置疑的。而且我认为,相对来说,基于源
码安装应用程序的FreeBSD比基于二进制安装的Linux更加安全(见《安全意味着麻烦》)。
大风问我:*nux相对于Windows,除了安全性以外,还有什么好处?
我 开始还真愣了一下,安全就是最大的好处了嘛。不过想了想,还是想到一些,比如性能。我是在虚拟机上装FreeBSD的,因为是纯粹的服务器,没有装 Xwindow,性能还是相当不错的。而Windows即使是做服务器用,它的GUI部分也是集成在内核里的,白白消耗资源,一点都不环保。
再 有就是软件安装的方便性。比如在Ubuntu下,一个包管理器(其实还是更喜欢用apt-get install)可以安装几乎所有应用软件,哪像在Windows下,还要自己到处去找,说不定下载来的软件里还有流氓插件。至于FreeBSD就更好 了,Ports里都是源码安装的,自己更改编译选项,可以保证你不需要的东西一点都不会出现在你的电脑里。
考虑到人力成本的因素,用*nix做服务器的TCO可能的确会比Windows高,但是得到的结果绝对要好得多——远远超过那一点点TCO的差别。
至于PostgreSQL,我在《选择什么数据库》里也说过了,在管理的易用性和开发的方便性方面,它并不比MS SQL差多少,而功能和性能也差不了很多——更何况它还是跨平台的。而安全性则无疑要比MS SQL要好一些——特别是在非Windows平台下。
还有动态语言。现在已经习惯了,在自己用的每台电脑上装上Python,手边也写了一堆的小工具脚本——大多都是几行代码的东东,要是换成原生开发工具,还不知道要多麻烦,更别提跨平台了。
前 一段玩matplotlib感觉很爽,后来又因为Django/TurboGears的关系,又玩了一段SQLAlchemy(一个Python的 ORM)。ORM是个好东东,但是在原生开发中(包括基于虚拟机JAVA/.net里),ORM的实现都太丑陋,又难用,剩下的唯一好处大概就是性能了。 但是在动态语言中,ORM是如此的自然,仿佛数据持久化已经不存在一般,真正做到了专心处理逻辑而不必再为持久化所困扰。为了这个好处,我愿意牺牲那一点 点性能的损失——实际上,对于大多数数据库应用来说,数据库的性能往往才是整个应用的瓶颈。
再加上框架。RoR自不必说,Python下的 Django和TurboGears也都是好东东。也许用惯了IDE的人很难理解,这样的框架居然可以比IDE有更好的易用性。但事实就是如此。IDE看 上去简单,拖拖控件而已,但是还是有很多事情需要写代码,而且代码与界面搞在一起,简直惨不忍睹。而RoR类的框架下,要做的事情只是写几行代码。是拖几 个控件简单,还是写几行代码简单?后者只要一个最简单的文本编辑器就可以做到,而前者离开了IDE则一事无成。
说到编辑器,不免又谈到IDE里的代码编辑器。不过现在对我来说,最常用的编辑器已经是VIM了。^O^
放毒的目的就是要让人中毒。我放的这些可都是好毒,既不用花一分钱,还有种种好处,花些精力去学一学用一用是很值得的。