代码如诗,代码如乐
在wordpress的官方站,发现页面底部写着:代码如诗。在WordPress英文网页,也有这句话:CODE IS POETRY,其实在WordPress其他所有语言的网页的右下角,都有这句话,如法语站:Coder est un Art.,意大利网站:IL Codice è Poesia.,印尼网站:Kode itu Puisi.,瑞典:Kod är poesi.俄罗斯:Код — это поэзия.,丹麦:Kode er poesi.,巴西:Código é Poesia,波斯语:کد شعر است.。
视代码如诗,该是对程序如何的挚爱!
也曾想过代码像什么,因为平时听古典音乐多一些,觉得音乐与代码有着可作为类比的地方。
我做得是硬件编程,有时会将其与软件相比。
软件编程并没有深入了解,但知道cpu每一时刻只能做一件事情,所谓多线程,也只是并发执行,一个个轮着使用cpu。多核cpu的出现,让并行运算得以实现。
软件编程,就音乐体裁来说类似于室内乐,一般只有五个以内的乐器演奏,每个声部都是相对独立而线性的,但各个声部此呼彼应,互为影响,让每个声部都充分的发挥其表现力并让各个声部的组合构成优美的整体,产生n个1相加远大于n的效果,是室内乐的追求。贝多芬、海顿的成就凸显在五重奏上,莫扎特的天才更多体现在四重奏,这都不是巧合的,室内乐需要作曲家相当的作曲技巧与良好的乐思,难度很高,很多作曲家后期才敢尝试这样的题材。
(图左:artemis quartett组合,每次的演奏离不开悉心合作)
硬件编程中的逻辑设计则有所不同,每个器件:加法器,乘法器,寄存器,触发器等等都是独立的个体,只要加上适当的时钟和使能,就能使他们并行的工作起来,同一时间,每个器件都可以在工作状态。这有些像古典音乐里的交响乐,音乐的节奏类似于协调电路工作的时钟;交响乐中每个乐器独立,但通过节奏而保持同步,通过指挥而成为整体,相比而言,逻辑电路中每个器件彼此独立,通过时钟和信号的流动而成为庞大的整体。
(图右:马勒的第八交响曲需要千人参加演奏演唱)
逻辑设计的编码类似于指挥的角色,告诉这个器件这个时间这个情况下怎么做,告诉那个器件在别的器件这样工作的同时,又该怎么做,等到程序都编好了,给了所有器件时钟和控制信号,器件就如同乐器一般,乖乖的自个演奏的同时,又能自觉地配合其他乐器的演奏。如果器件达到了几万几十万门或者更多,那规模与气势可想而知了。
这些的类似并非毫无联系,都是人们把复杂的事物转化成为了容易接受、理解并且容易控制的方式。所以有了早已成熟的交响乐以及渐渐走向成熟的硬件设计流程。
觉得文章不错?请通过RSS订阅本博客文章。








这是对工作化为兴趣爱好的表现!或者说是将兴趣爱好发展到了工作当中!
@Kevin
有点吧,很多事物相通的。