软件世界一直被认为是错综复杂的意识世界,它高度抽象,缺乏可以简化表现的载体;这一认识基于软件构造过程及其工具本身的抽象性和复杂性,同时也基于软件试图表现的现实世界的复杂性;
但如果我们对软件进行最本质的简化,我们可以发现软件其实具有最为简单的体系构造:
所有的软件系统都是由两个基本元素组成,人和数据;软件所做的一切就是,按照指定的规则,对数据进行处理,并在需要的时候按照指定的规则从数据所有人处获取数据或把数据表现给数据的所有人;
更为明确的说,软件系统其实就是完成以下三件事的自动化系统:
1. 从数据所有人处获取数据
2. 处理数据
3. 将数据表现到数据所有人处
对于一个信息管理系统来讲以上的特征更为明显,处理数据并使数据和人进行交互是信息管理系统的本质特征;
基于以上的认识,抛开所有错综复杂的技术,软件的本质其实就在于处理数据和表现数据,由此我们可以设想存在这样一个软件系统:
1. 系统以数据为核心
2. 系统拥有众多处理数据的工具,这些工具可以方便的使用、组合
3. 系统可以轻易的拼装出交互界面,用于显示数据或获取数据
4. 系统可以灵活定义什么时候处理数据,什么时候表现数据,什么时候获取数据,从何处获取数据,向何人表现数据
5. 当然,基于这样的系统应该无需编写代码就可以实现软件,最好也不用掌握编程技术
如果存在这样的系统,我们又可以回到孩童时搭积木的时光;软件开发应该只是几个积木的一种摆放方式而已,技术应该远离我们;