"程序设计是一门艺术"这句话有两个意思:一方面是说,程序设计像艺术设计一样,深不可测,奥妙无穷;另一方面是说,程序员像艺术家一样,也有发挥创造性的无限空间[梁肇新]。
Donald Knuth认为"计算机科学"不是科学,而是一门艺术。它们的区别在于:艺术是人创造的,而科学不是;艺术是可以无止境提高的,而科学不能;艺术创造需要天赋,而科学不需要。所以Donald Knuth把他的4卷本巨著命名为《计算机程序设计艺术》(The Art of Computer Programming)。
Donald Knuth不仅是计算机学家、数学家,而且是作家、音乐家、作曲家、管风琴设计师。他的独特的审美感决定了他的兴趣广泛、富有多方面造诣的特点,他的传奇般的生产力也是源于这一点。对于Donald Knuth来说,衡量一个计算机程序是否完整的标准不仅仅在于它是否能够运行,他认为一个计算机程序应该是雅致的,甚至可以说是美的。计算机程序设计应该是一门艺术,一个算法应该像一段音乐,而一个好的程序应该如一部文学作品一般。
Bjarne Stroustrup,C++语言发明者,说"我喜欢优雅和高效的代码。代码逻辑应当直截了当,让缺陷难以隐藏;应当减少依赖关系,使之便于维护;应当依据分层战略,完善错误处理;应当把性能调至最优,省得引诱别人做没规矩的优化,搞出一堆混乱来"。他特别使用"优雅"一词来说明"令人愉悦的优美、精致和简单"[Robert C. Martin]。
一个人的美学观点会影响他的程序设计,因为Knuth有这么多的艺术爱好,所以他把程序设计看成艺术设计,在程序设计中要体现出程序的美。同样,当Bjarne Stroustrup编写优雅且高效的代码的时候,他也是在程序设计中寻求美。
我的美学观点是简单和谐、整洁有序;某导演的美学观点是宏大华丽、空洞无味;还有些人的美学观点是乱七八糟、凑合了事;你的美学观点是什么呢?有些人很自负,感觉良好,以为领悟到了编程的真谛,看到代码可以运行,就洋洋得意,可是却对自己造成的混乱熟视无睹。那堆"可以运行"的程序,就在眼皮底下慢慢腐坏,然后废弃扔掉。
因为Verilog编程就是一种程序设计,所以Verilog编程也应该像设计艺术作品一样,要仔细打磨、精雕细琢,要经历痛苦与无奈,也要经历快乐与自得。设计要有自己的方法论,要体现自己的奇思妙想,要让自己的设计有更长的生命力,而不是豆腐渣工程。
为什么那么多人对Apple的手机和计算机情有独钟?因为它们都是美的设计,因为它们的设计者都在追求美。同理,我们在做Verilog编程的时候也要追求美,也要设计出美的Verilog程序。
……
展开
看得出,作者是一位将美学思想贯穿于代码设计的爱“美”人士,其实,美学思想贯穿于我们生活的方方面面,从简单的烹饪家居到复杂的设计装潢,都有美的体现,代码编写也不例外,要通过Veilog 编程做出美的设计,离不开好的编码风格,《Verilog编程艺术》是作者多年编程经验的总结,对于那些开始学习或者已经在进行Veilog 编程的设计师来说,这些分享非常实用且无比宝贵。
—— 电子创新网CEO 张国斌
很喜欢作者的写作风格,摆事实讲道理的过程中安插了许多有趣的故事,让枯燥的学习立刻生动起来。看得出来,作者是下了很多功夫的。书中还安排了很多作者的宝贵经验和设计心得,非常实用。这是一本有个性的图书,将Verilog编程思想艺术化地奉献给了读者。
——电子发烧友CEO 陈遂伯
作者魏家明具有多年实际工程设计和Verilog编程经验。本书从工程设计角度对Verilog编程从编码风格、语言特性、IP设计、时钟复位、验证等进行了深入阐述,并探讨了在设计中可能遇到的问题,提出了相应的解决办法。本书可以作为学习和提升Verilog的语法书籍,有助于读者形成“简单和谐、整洁有序”的编程风格。
《电子技术应用》副总编 杨晖
仔细读了本书前5章,有一种文艺范的感觉,编程就是一门艺术,就应该讲究美感,去除冗余!越往后读,笔者注重的编程艺术越重,甚至连文档该怎么写都是一种艺术。如果你正在用Verilog,推荐你阅读此书,对于你的帮助会很大!
——中国电子顶级开发网(EETOP)创始人毕杰
作者在本书中分享了他在IC设计领域多年的经验,在这个经验至上的行业,如果说Verilog是我们手中的剑,那么这本书或许就是你成为“人剑合一”的武林高手过程中的武林秘籍。作者同时也鼓励读者养成良好的编码和书写文档的习惯,这都是成为一个卓越的工程师的必要条件。不论是对初学者还是有多年经验的设计人员,这都是一本不可多得的好书。
——景略半导体(上海)有限公司郭雄飞
当我拿到《Verilog编程艺术》这本书的时候,细细品味,觉得眼前一亮。本书作者将Verilog的国际标准和自己多年的实践经验相结合,将Verilog语言写得生动活泼。本书内容浅显易懂,这将帮助初学者快速学习和系统掌握Verilog语言。为了兼顾Verilog语言高层次设计者的需求,书中还介绍了Verilog的高级设计方法。这些高级设计方法,将对设计者提高灵活运用Verilog的水平起到很好的帮助作用,使得他们能通过Verilog语言设计出复杂高效的数字系统
—— 北京化工大学何宾老师