回忆起当年我选择入行前端开发而非iOS或Andriod的原因在于虽然他们的工作都属于界面和逻辑交互展示,但是程序运行的载体却不同。iOS和Android应用运行在手机上,而前端项目只要有浏览器环境就可以展现。随着科技以及手持移动设备的发展更新,未来的手机会演变成什么形态不得而知(也许通讯设备会变成可穿戴,界面则用3D投影替代),相应的移动开发的生存前景也就存在未知,而无论载体如何改变,网页作为网站的基本元素则会在较长的一段时间扮演稳定且重要的角色。
近些年虽然移动设备的形态变化不大,更多的在追求全面屏的实现,Andriod和iOS系统依然牢牢占据手机市场,但是已经有越来越多的开发者及企业开始关注应用的可移植性以及跨平台开发。
我们知道如果要开发一个多端都可以运行的应用你大概需要iOS、Android和H5三套程序,为了兼容系统以及适配我们需要分别写三套代码,这无疑增加了很多开发和维护的成本。
大厂们当然早就注意到了这个问题,于是跨平台开发工具应运而生。Facebook
推出了React Native
,Google
推出了Flutter
,阿里推出了WEEX
。他们都是为了解决跨平台开发的问题,帮助开发者一套代码通行各端。而微信小程序的出现更是掀起了一股浪潮,帮助开发者快速开发应用并深度植入用户,虽然小程序发展到现在还留有不少坑并且和微信耦合度过高,但是已经能很好的兼容各端系统,极大地缩短了开发周期。
作为前端三叉戟之一,JavaScript发展至今能做的事情越来越多,从诞生之初作为脚本语言实现一些简单的网页交互到现在可以运行在服务端做接口开发(Node.js
)、开发桌面应用(Electron
)、开发APP(React Native
等),可以说大前端的战术地位在逐渐提高。而在现今的互联网大环境下,成本宝贵,企业为了敏捷开发,急速成长,更加希望能够用一套代码打通各端市场,这给了大前端更大的发挥空间,但与此同时也对原生开发者的就业环境造成了一定的影响。
春节期间我在和一个做Android的朋友吃饭时听他提起现在杭州的客户端开发招聘需求里基本都会要求有一定的跨平台开发经验,而我们公司目前也在用混合开发的方式去完成客户端项目的搭建,纯原生开发的就业越来越难,一方面体现了企业在顺应互联网环境的发展趋势,另一方面也反映出大前端的崛起迅速,既然能占用更少的资源更快更好地完成目标,那么何乐而不为。
由此可见虽然目前大前端时代还没有完完全全降临,原生开发比例仍然很高,但是随着越来越多的企业对代码可移植的重视以及跨平台开发的优势体现,大前端一统终端的一天离我们不会很远。