|
按照编程的惯例,这是第0个问题。
1、从共性到个性、从模块到流程、从面向管理到面向操作,我们是否处在需求爆发的边缘?从纸带穿孔->汇编 -> C -> C++ -> java、C#,每一次需求的倍增,都会引起编程方式和编程语言的改变,这一次是否也会这样吗?效率、方便是每一次改变的基本要求,这一次是否也是这样?需求的增长往往催生新的工具,而新的工具又促进需求的释放。
2、关于虚拟化的问题,这里的虚拟化指的是系统和平台的虚拟化,而不是VMWare所指的虚拟化。虚拟化层次在不断提高,在满足需求的基础上,合适的虚拟化的边界在哪里?在这样的虚拟化平台下,编程上还会有操作系统,桌面与移动、桌面和浏览器的差别吗?效率又会如何,能实用吗?这样的平台能认识策略、方案、规划和逻辑吗?这样的平台结构会是什么样?高层的虚拟化,往往跟语言有密切关系,这样的虚拟化会跟什么样概念的语言关联呢?还有一个问题,这些的问题都能往云里套吗?云有无边界?
3、这个问题是上一个问题的具体化,编写一个日程程序,有三种方法,你会选择哪一种?第一种从数据库设计开始,实现全部功能;第二种从云供应商中,选择合适的日程服务作为后台,选择合适的语言编写前端程序;第三种选择合适的语言,对要求进行描述和规划,并提交给虚拟化平台,虚拟化平台根据描述和本身的策略,自动完成服务后台构造,而前端程序也根据描述生成。第一种是现实的选择,第二种是云提供商的期望,在需求膨胀时,第三种实现是否更具有现实性?另外这样的描述是用一种语言来书写,还是用纯数据(如xml)实现呢?
4、程序是什么?相对于CPU来数,所有的程序都是数据,相对于编译器来说程序也是数据,可以认为程序是带逻辑的数据吗?如果程序是带逻辑的数据,是否可以减少程序的控制性,增强程序的描述性,同时与各种模式的纯数据更好的结合呢?如果这样的描述更接近自然语言,会合适吗?同时程序本身模式的描述,能跟程序在一起吗?接下来的问题,对程序员比较致命,编程会大众化吗?如果人人都能写程序,程序员会想,我的饭碗何在啊?但如果不是这样,会满足需求增长吗?
5、继续上一问题,真是问题一个连着一个。程序可以在CPU上运行,可以运行在虚拟机上,也可以在虚拟化平台上运行,当程序变成带逻辑的数据,我们还会急吼吼的让程序去运行吗?而是由不同的处理后端做不同的处理,比如转化为流程,转化为不同语言,而有些干脆代替xml,作为配置文件,有些作为下一端口的输入,这样的一些处理,你认为现实吗,还是应该会是这样呢?
6、继续,如果程序是带逻辑的数据(都是基于这样的假设),表达式还会是最重要的程序元素吗?用于计算的程序,当然还会侧重于表达式和循环结构,而表达状态改变的程序,是否更应关注数据内在的逻辑结构,象语义网关注rdf数据谓词结构一样?既然是这样,下面的问题自然会问,怎样让程序具有推理能力,又如何跟知识库结合,而让知识更具主动呢?这些方面,w3c已做了好多工作,问题是能拿来直接用吗?还有一个问题,用这样的程序来表达流程或者策略,能很好、简单地表达清楚吗? 还有配置文件是否也可以用程序来表述呢?
7、下面的问题有些尖,在新的需求增长面前,我们还能这样淡定,按现在的方式码程序吗?需求像鞭子,会在程序员身上留下疤印。接下来的问题是:java,C#会跟现在汇编语言一样,走向后台吗?电影有点悬念了,继续,除了在j2ee或.net平台上扩展外(除了云,是万斤油,但不信不行),会有新的概念的平台出现吗?象REST这些不算,这也是悬念,还是很期待。
8、关于软件本身的问题。如果有刚才想象的语言,类型还会像现在这么重要吗?从静态检错的角度来数,是需要的,我就经常希望在浏览器上写静态语言,很多人肯定有同样的想法,否则不会去挖空心思去虚拟化javascript,而这确实是实际需要的,特别是WEB平台变得越来越重要的今天。离题了拉回来,类型重要了这么长的时间,是否有足够的智慧降低它的用途,类型分析从逻辑而来,我们一定不能把它高度降低一些吗?接下来的问题是:对象还会保留原来的含义吗,组合是否该有个明确的指示?毕竟对象更易于纵向扩展,而组合更易于横向扩展。剩下的问题是:程序还需要现在这样精准吗,是否会象html有所容错呢?比如这篇文章就有许多语法错误吧,如果与你的CPU产生反应的话,不就是程序吗?
9、现在我们很多的设计想法和思想,会融于软件产品之中,而难于复原,这样往往给软件阅读者,带来很大的困难,这样的情况会继续吗?数据是可以图形的,除了UI,程序也能图形化吗?我们是否可以看程序,而不是读程序?
10、下面是工程化的问题,一些想法如果不能工程化,往往产生不了最大的效益,工程化的最大难度是取舍、融合、执行的决心和方法,工程是个细致的活,在工程中,想法很重要,但往往占的比例并不大。在工程中,问题总会不期而遇,而所有的问题都会有个合适的解决办法,是这样吗?
11、下面是两个比较虚的问题,我们是否处在改变得边缘,或者改变已经在发生?如果会改变,改变的迹象有哪些?改变的动力是什么?为何要改变?会如何改变?改变的方式会如何?在哪一方面会先改变?
12、这是关于改变方式的问题,有些改变是从底层结构开始、有些改变则是一种简化和规范、有些改变是一种扩展、有些改变则是主次的换位、有些改变则是产生新的层次、有些改变则是概念的重新解释、有些改变则是一种融合。新的改变会如何产生呢?
13、最后一个问题留给问题本身,问题是连接过去、现在、明天的桥,一组合适的问题,可以让我们部分撩起戴在明天、后天脸上的面纱。创新是什么,创新就是找到一组合适的问题,给出比较合理的解答,并努力去实现的过程。你认可吗? |
|