为什么80%的码农都做不了架构师?>>>
成立于1981年的WATCOM公司于1988年推出PC版的C语言编译器,或许是专心研究的缘故, Watcom C/C++是以在DOS下能够产生最佳化程序代码闻名于世的,许多写游戏和DOS Extender的厂商都指名要使用Watcom C/C++,因为不论是Borland C/C++还是Visual C/C++,它们产生的最佳化程序代码都比Watcom C/C++的最佳化程序代码差上一截。再加上当时最有名的DOS Extender厂商PharLap公司也是使用Watcom C/C++,因此Watcom C/C++在专业的C/C++程序员以及系统程序员心中是第一品牌的C/C++开发工具。
然而,惨烈的C/C++编译器四国圣战,WATCOM C++还有Symantec C/C++,Broland C/C++最终不敌Microsoft C/C++,(这并不是由于编译器的原因,个中原由,大家可以去看一下台湾著名程序员 李维的《C/C++ 圣战》。)卖掉的卖掉,转行的转行,如今,Symantec 早就不搞C/C++了,诺顿就是Symantec的品牌,WATCOM被Sybase收购后,开发了Optima++,据说当时看来是非常不错的开发工具,能够直接拖拽控件,当时Sybase终究不是个有眼光的公司,1.5开发后就放弃了,当然这时期的编译器还是叫WATCOM,直到1999前年,WATCOM陆陆续续的发布了一系列版本,但是到了1999年,Sybase结束了WATCOM的商业开发,于2000年开源了WATCOM ,2009年版本为Open WATCOM 1.9,Open WATCOM的版本更新间隔不定,有1年的,也有两年的,现在从每日构建可以发现,版本已经到了2.0Beta1,相信今年可能会2.0正式版会出来,每日构建FTP地址:ftp://ftp.openwatcom.org/source/ 还有其他版本源码,也可以自己下载1.9的二进制:ftp://ftp.openwatcom.org/ 每日构建2.0Beta1:http://pan.baidu.com/netdisk/singlepublic?fid=62546_17751838 这个是我4.7号编译的。
Open WatCom如今依然惊艳,前几日,我利用不同的编译器编译了一个程序,代码如下:
#include
#include
#include
#include
using namespace std;
int _tmain()
{
cout<<"HelloWorld!"<
使用的编译器有MinGW/GCC,Microsoft C/C++ (VS版本 2008,2010,11Beta),Broland C++,RAD C++(Broaland C/C++的后代)。编译都是使用的批处理环境,Microsoft C/C++ 还要链接kernel32.lib user32.lib gdi32.lib三个静态链接库(有MessageBox()函数。)
::OPEN WATCOM
@echo off
echo Open Watcom Build Environment
SET PATH=D:\WATCOM\BINNT;%PATH%
SET INCLUDE=D:\WATCOM\H\NT;%INCLUDE%
SET INCLUDE=%INCLUDE%;D:\WATCOM\H\NT\DIRECTX
SET INCLUDE=%INCLUDE%;D:\WATCOM\H\NT\DDK
SET INCLUDE=D:\WATCOM\H;%INCLUDE%
SET WATCOM=D:\WATCOM
SET EDPATH=D:\WATCOM\EDDAT
SET WHTMLHELP=D:\WATCOM\BINNT\HELP
SET WIPFC=D:\WATCOM\WIPFC
::Broland C/C++
::@echo off
@echo Start Borland C\C++ Compiler;
@set BCCDir=D:\Borland\BCC55
@set PATH=%BCCDir%\BIN;%PATH%
@set INCLUDE=%BCCDir%\Include;%BCCDir%\Include\Gl;%BCCDir%\Include\Rw;%BCCDir%\Include\Sys;%INCLUDE%
@set LIB=%BCCDir%\Lib;%BCCDir%\Lib\PSDK;%LIB%
GCC 有专业工具,MSVC和RAD C++也有官方的批处理,
数据,没有运行时间测试:
Broland.exe 基于 Broland C++ v5.5.1 115KB / 2996KB
RAD_Broland.exe 基于RAD——C++ Builder v6.44 172KB /3028KB
WatCom.exe 基于Open WatCom v13.0.0(1.9) 51KB /3024KB
bg++.exe 基于GCC\g++ v4.6.1 51KB /3132KB
VS2008.exe 基于VC++ cl版本15 103KB /2908KB
VS2010.exe 基于VC++ cl版本16 105KB /2984KB
VS11.exe 基于VC++ cl版本17 117KB /2984KB
分别为可执行程序体积和内存占用大小
可见Broland的后代不是很好啊,GCC本来由于众人拾柴火焰高,一向不错,Microsoft的优势这还不阻力体现,毕竟没有添加额外编译选项,但是Open WATCOM 还是表现不错。给人一个耳目一新的感觉。
我曾经下载了GCC 4.7源代码,使用cygwin在Windows编译,结果,编译到Java编译器的时候,无法编译了,4.6.3&4.7源码都是如此,而Open WATCOM编译新版本便很容易就成功了。
GCC是纯粹的编译器,而Open WATCOM是编译器和IDE的集合,不过由于开发力量不够,支持较小,Open WATCOM的开发工具都显得很丑陋,像来自远古的人。
Clang很让人失望,艰难的配置事实上很难让人接受。
Open WATCOM 确实需要更多的支持,尽管它微不足道。但是它很惊艳,还有Sybase的开源许可证要更加宽容才好。