# 一、语言的选择 为什么开发人员要针对给定任务选取某种编程语言,而不去选择其他的语言? 当项目需要抢速度时,我往往选用原始的C语言进行开发。 如果开发要求运行在Windows上的、版本尽可能小的程序时,一般选用带有静态连接MFC 的C++语言进行编程。 假如需要开发在Mac、Windows与Linux等_*_作系统上运行的图形化界面(GUI)程序时, Java语言就成为通常的选择。这样得到的GUI虽然算不上最好,但是它能够工作。 对于需要快速开发出来的GUI和确实显得自然的UI来说,可以选用Visual Basic作为程 序设计语言,但这样做,要清楚地认识到分发大尺寸的程序所付出的代价,以及要受制于 Windows的事实。 假使需要开发运行在任何UNIX机器上而速度不必很快的命令行程序,那么用Perl语言进 行开发是一个不错的选择。 若程序必须在浏览器内运行,那么JavaScript就变成惟一选择。在SQL存储过程中,通 常需要选取某提供商所专有的SQL派生功能,或者说,干脆回家走人。 关键点是什么? 不过,我几乎从来都不会基于语法而选取某种语言。是的,我比较偏爱提供了{};要素 的那些语言(C/C++/C#/」ava)。并且,在关于什么是“好的”语法方面,我是有些看法的。 但是,我不会认可仅仅因为要使用分号的缘故而増加一个20MB大小的运行库的做法。 是什么使我对.NET的跨语言策略感到有点惊讶的呢?是这样一种理念:可以选用任何语 言进行软件开发,语言的种类可以是亿万,并且它们的工作方式都相同。 VB.NET与C#.NET除了语法上的细微差异之外,实际上是一样的。其他语言要想成为.NET 世界的一部分,就得至少需要支持一个核心功能和类型集,否则它们将不能与其他语言很好 地链接。问题是,如何开发.NET中的UNIX命令行应用程序?如何在.NET中开发小于16 KB的 Windows微程序呢? 看起来,在.NET中选择语言,我们似乎就不得不要关注一下语法了。