编程是一门艺术吗?

  2006-10-23

  英文原文:Is Programming an Art?

  仅仅使用软件的人们 通常意识不到编写软件有多么困难。噢,设计部分和最初开发部分都很有趣。最困难的部分是使其正确运行(且运行速度足够快)。对于程序员而言,这就好比一餐开始时是美味的双层牛奶巧克力咖啡干酪饼,而结束时却是菠菜奶油沙司。

  之所以说编程仍是一门艺术而不是一门科学或工程学科,是因为我们还不能将其分解成多个组成步骤,而后机械地进行。一旦我们在此方面获得成功,在某种程度上就会出现一种新的可能性:在编程时采用以人为本的设计语言 (PODL) 编写程序,通过编程来证明程序的正确性以及分析和支持语义查询。然而到那时,编程依然是一门艺术,也就是其中含有那么多传统智慧。

  但是,如同许多传统智慧一样,此类比经不起进一步推敲。事实上,编制程序(我干这行已经有 20 多年了)根本一点都不像艺术 —— 至少不像写小说(我干这一行也已经有 20 多年了)那样的艺术。让我用两个片段(一个程序片段和一个散文片段)来说明我的观点吧。

  第一个片段是一个用于分析 Visual C++® 7.1 的词法分析程序的一部分。该片段如下所示:

if ( index >= TokenID::lastKeyword() ) {
string token = tokenString( index );
if (( isdigit( token[ 0 ] )) || ( token[0] == ‘-’ )) {
#ifdef TELL_ME
display( "!! TokenSet::tokenIdentify: ", "文字数字:", token );
#endif
return TokenID::TK_Literal;
}
} if ( index >= TokenID::lastKeyword() ) {
string token = tokenString( index );
if (( isdigit( token[ 0 ] )) || ( token[0] == ‘-’ )) {
#ifdef TELL_ME
display( "!! TokenSet::tokenIdentify: ", "文字数字:", token );
#endif
return TokenID::TK_Literal;
}
}

it知识库编程是一门艺术吗?,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。