【讨论】一种语言一个框架适用于web、移动和桌面的技术讨论!

speedneeder 2014-02-18 03:14:12
大家好,我是个喜欢看各种杂书但都研究不深的程序员,下面所说的是我这些年来的一些想法,可能有种种不对的地方,可能已经有人做出了项目而我却不知道,欢迎大家指出,更欢迎大家一起讨论一下!

1.想法的产生

我一直有一种想法有没有一种语言一个框架能够适用于包括web、移动和桌面尽可能多的场合呢?

以前的这个想法可能会被人讥笑,但是node.js出现之后,js这一系的各种技术异军突起,于是有人做出了appcan、phonegap这样的框架,webos和firefoxos是更进一步的解决办法,但基本没什么用户,这些虽只限于移动端,但也给我打开了思路。

一个本地程序按照mvc的框架划分分为3部分,一个网站/web应用按照前后端的划分也有一个界面,类似豆瓣所采用的以onering为基础的架构,却恰恰是用web的方式来开发本地应用,把mvc之中的view看做网站的浏览器,然后m和c看做网站的服务端,这种方式不正是一种包治百病适用于所有平台的框架吗?


2.界面/view

那么框架确定了,我开始对比各种界面技术。

以前做过几天windows c/c++开发,也做过.net包括wpf/silverlight框架的开发。c/c++确实强大,性能优秀,但没有c#那么易用,界面方面也是个问题(mfc、bolt、directUI、gtk+等等各种方案都有缺点)。而c#不能跨平台(mono基本是个试验品)很多时候还要带一个大体积的.net。后来又接触到了java,这确实是跨平台的,但相对来说感觉用swing来做桌面开发的非常少。然后又接触了flash/flex/air这一系的技术,优点是flash普及率极高,air运行时也比较小,还有很多的资源,缺点就是本地功能太弱。

所以比较之后,在我看来html+js这样的设计界面的方式几乎是没什么缺点的(除了js的丑陋,这个后面再说),简单易用,开发者接受度高,结合jquery/bootstrap/angularjs等各类技术可无缝过度到mvc和响应式的开发模式,v8内核出现之后速度也不是瓶颈,html5/webgl/threejs等各类技术如果成熟之后即使用来开发3d游戏也不是问题。界面这一块html/js可以用来作为一个解决方案。

3.后台/服务端/view/controler

然后就是m和c或者说网站的后台部分,既然要做的是一种同时适用于web和桌面/移动开发的技术,那么就可以一视同仁,其实伴随node.js出现的一系列新技术比如clouda和meteor也已经给出了答案,虽然这两个仅限于web和移动应用,但桌面上也有类似的东西,比如node-webkit就是一个可以简简单单的把网页做成桌面程序的技术。



4.结论

所以我觉得最终结合以上各种技术可以搞出一个终极框架,界面部分使用html+angularjs+bootstrap这样的网站前台设计方式来设计,使用类似onering的方式或者websocket之类的技术传递ProtocalBuffer这样的数据,后台则是node.js基础上架的一个类web server,既可以放在服务器上作为网站的服务器,也可以作为web应用的后台,更可以在本地作为本地程序mfc的model和controler,数据库使用mongodb,这样数据在整个应用内部,从前端到后端都是以json的形式流动和传递的。


这样一个框架整个前后端都是用一种语言js来实现的,因为js被人诟病的语法,我们也可以换用coffeescript再转为js,等到将来,甚至可以直接采用coffeescript而弃用js。

这样一个语言、一种框架、一种数据格式(json)基本上就可以实现所有桌面平台+所有移动平台+网站+web应用的程序开发,同时这种框架的前端设计可以继承数量庞大的网页开发设计人员,coffeescript也简单易学完全可以继承js的开发者。
...全文
376 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
商域无疆 2014-09-04
  • 打赏
  • 举报
回复
支持,这个想法真的不错。我也非常希望。
熊熊大叔 2014-02-22
  • 打赏
  • 举报
回复
每一个架构设计,都是为了解决某种场景下的某些问题。 你现在的最大问题是不知道各种不同应用会面临什么问题,才会觉得可以用这样一个统一架构在所有场合使用。
青松2 2014-02-19
  • 打赏
  • 举报
回复

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧