观察了许多初创公司技术方案的选择,我总结基本遵循8个字:快速灵活,物美价廉。我们也应该根据自身实际情况,跳出束缚与时俱进,选择智能互联网时代最有力的技术和工具。
基础编程语言
候选者:C#/C++/Python
C#相比Java语法更先进,生产力在各种语言中名列前茅。Java虽然在大型架构中有人才和框架的优势,但对初创公司来说还很遥远。由于.NET平台开放时间太短,目前框架特别是人工智能框架太少。
C++在高性能开发中仍然不可或缺,尤其在人工智能方面,但我们目前还以运用开源的AI框架为主,暂不深入框架开发。但将来可能要在C++或新锐Rust中投入。
Python是动态语言的代表,号称编程语言的瑞士军刀,在动态语言中的普及度,框架的完整性都无可匹敌,开发效率也很高,大部分AI框架都有Python的支持。
选择:Python
操作系统
既然选择Python语言,开发环境的操作系统就并不重要。而关于我们的软件运行环境,应该是Linux,相比Windows有更低的系统资源消耗,更好的安全性。我个人接触Ubuntu较多,其实CentOS差别不大。
选择:Ubuntu
数据库
候选 MongoDB/MySQL/PostreSQL
个人觉得选择比较容易,PostreSQL是传统的关系数据库,但又支持NoSQL,性能也不错(PostgreSQL的NoSQL特性表现抢眼),而且还开源。在集群方面,PostreSQL也日益强大,相信未来不会成为大的瓶颈。
选择:PostreSQL
开源框架
选择dlib + face_recognition,均有Python支持。
前端技术
创业尽量保持专注,只做B/S不做C/S,只做小程序不做APP。基本组合肯定是 Html5 + ECMAScript6 + CSS3。由于可能涉及图像或视频交互,WebSocket大有用武之地。
MVVM框架
候选:AngularJS/React/Vue
我在实际开发中用AngularJS和Vue各做了一两个项目,感觉Vue比AngularJS要清晰简洁,容易上手。React把视图看作状态机的思想我自己是非常欣赏,如果一直是我一人开发的话,也很乐意采用React,但对多数人来说,可能要经过一番磨砺才能写出符合其思想的代码。
选择:Vue
UI框架
Vue下我接触的UI框架只有ElementUI,用了近一年,感觉坑比较少,可以继续押宝。