软件开发平台正在面临一次重大的升级,java, net比起来简直弱爆了,新型的Html5+JS+JSON开发平台正在形成
先看下传统开发平台:
1.语言:c/c++ 类库:lib :执行环境:windows, linux 二进制 技术:命令,过程式,C++进步到复杂的面向对象
2.语言:java 库:spring, hibernate, structs 执行环境:windows, linux 虚拟机JVM 技术:现代的面向对象
3.语言:C# 库:.net framework 执行环境:windows 虚拟机CLR 技术:面向对象 最近的C#加入了一点点函数式的东西主要是Lambda
4:语言:PHP 库 PHP库 执行环境:windows linux 技术:类C脚本
5.语言:javascript 库:Jquery+Html+CSS 执行环境:所有 虚拟机 浏览器 技术:过程式+简化的函数式, 原型链式面向对象
分析对比上面的开发平台,流行.度都差不多.语言层面PHP最弱,平台C#最封闭,java语言本身比C#还差.JS语言最灵活,平台最标准.
正在进化中的未来开发平台:
1.go等, 据说是替代C/C++的,支持并行.
2.scala + play + JVM, 多范式的编程,尤其是函数式
3.C# + F# + .net webapi, 继续封闭到死.
4.python + django, 被大蛇拯救的姜哥
5.javascript + angular + node.js + json 超级平台,也就是本人指出的未来可能的超级开发平台
这些新平台有个最大的特点,都是从面向对象进化到多范式,尤其是函数式,原因是多并发,多核.只有函数式才是正道.而这其中,以C#为首的继续封闭的平台最弱,连开发者都转去搞javascript去了.
scala最有可能成为.net, java的升级版.
python完全可以取代PHP等
最有发展力量的是javascript,因为有了个node.js, 前后端,用简单的js语言就能写出来强大的Web应用.
那么有没有最恐怖,最强的平台呢?这里试着搭一个:
(未来台平完全站在二进制的上面一层,都是运行在虚拟机上的,界面层功能和表现由浏览器和Html5标准来融合,后端由语言本身+JSON及产品来完成,开发几乎不需要库或框架,业务逻辑由语言本身描述,数据对象由JSON描述,所涉及功能由"产品"服务完成而不是框架,开发库等)
(由库及框架进化到产品的意思:比如数据库存取,直接post json数据就成,没有中间框架,比如界面,直接用可视化设计工具来完成,单元测试及数据实体设计都可以可视化)
编程语言:javascript第六版,即EMACScript6
前端:Html5
后端:node.js(javascript)
数据库:NoSql,Json Sql
这个就是未来的超级框架。那么,具体目前可用的技术,可以使用比较流行的Mean
javascript + html5 + css + json + restful + angular+node.js + express + mongodb
这个平台的特点:
1.横跨一切平台,从计算器到量子计算机(搞笑,实际上是所有有浏览器存在的平台)
2.编程语言多范式,极强的表达能力.first function.上手容易,可以先javascript,平滑的技术进步,以面向对象和函数式为主.
3.完美的Web界面支持,最简的JSON数据格式.超级可伸缩,小到打开浏览器+记事本就能开发,大到搭建云平台.
从开发者角度看:
1.编程技术涵盖了主流计算理论,基本上语言表达层次玩不出什么新概念了.
2.JS6支持了命令式,面向对象,函数式编程理念,入门到精通是平滑的,不需要因为理念升级而换一门编程语言了.只会简单命令式,一样可以, 掌握到强大的面向对象,泛型,模式,函数式等还是可以。
3.没有什么复杂的数据库等技术.JSON而已.前后端统一.后端也可以开发前端了,前端也可以开发后端了.所有平台,界面都一样了.所有代码和界面都可以复用.
正所谓分久必合,合久必分,五花八门的各类语言和平台在Web上相互竟争,最后逐步演化成一个大型标准,如上所述,一个近似完美的开发模型呼之欲出,如果没有各大产商的利益争夺,相互分化,这么个开放,完整,平滑的开发环境有可能是程序员的天堂.
从商业角度看:
1.支持所有的浏览器,PC,手机,未来的穿戴式设备
2.未来产品多种多样,没有统一的编程语言和平台很难适配多种产品,开发工作量大。重复劳动量大。
3.商业进化到以服务为主,而不再是以技术为主。