- 论坛徽章:
- 3
|
程序 = 数据结构 + 算法 是Dijkstra大师的公式.
至今, 我依旧认为 Dijkstra 大师从来没有错过。
写了几个快餐程序, 在层层抽象之上工作, 然后说程序不是数据结构 + 算法了.
OO了一下, 程序不是数据结构 + 算法了.
函数式了一下, 说程序不是数据结构 + 算法了.
只写业务, 不关注底下的数据存储, 程序不是数据结构 + 算法了.
...
那是因为这些程序不太要求自己写基础数据结构, 那是因为基础数据结构和容器, 和算法, 都被人抽象成工具来用了,
随手用了几个工具, 程序搭出来了, 嗯, 这程序不是数据结构加算法了, 它是拿几个模块搭起来的, 主要的智慧体现在怎么搭模块, 于是程序 = (数据结构 + 算法,现在这玩意就是积木了) + 搭积木的“智慧”了。
这点搭积木的“智慧”,好意思跟人家 Dijkstra比么?人家写编译器,人家发明最短路径算法,人家得图灵碗,这点搭积木的智慧,好意思去跟人家比么? 人家 Dijkstra真要搭积木,怕是比你那点搭积木的技巧高多了,好意思跟人家比么?
何况,搭积木就不考虑数据结构和算法了?容器不用选了?算法不用选了?
如果程序稍微复杂,基础容器不能用了,还得自己实现核心数据结构不是?还得自己设计核心算法不是?
那这个程序仍然是围绕这个核心数据结构和核心算法来运转的不是?
分布式计算了不是? Map and reduce是框架,而不是数据结构 + 算法?确定么?其核心不是数据结构 + 算法?
写shell脚本了是不? 胶水粘几个程序就完成功能了是不?
用什么来粘东西的? 流啊。
流不是抽象出来的容器? 如何粘东西不是算法?
大师为什么是大师,是因为大师无论在哪一个时代,他的洞见都足以使他成为大师。
假使大师和大家仍在同一个时代,相信我,成为大师的那个人,仍然是大师,而不是你。
Dijkstra 的公式没有错。
|
|