用户界面领域: web技术与原生技术之争

除了浏览器中运行之外, html5的技术也在app领域和移动端的安卓, iOS, 以及桌面端的window, linux以及OS X展开了竞争. 同样属于用户界面领域, 他们各有各的优势. 在不同的时期和环境下, 受重视程度会不同.

原生技术的优势

  • 性能 原生应用大多采用编译性语言, 如java, object-c进行编写, 直接编译成二进制码, 速度快.
  • 对硬件功能的调用 如设备上最新推出的功能, 原生应用可以完美调用. 而web技术可能调用起来相对麻烦.
  • 软件大小 web技术本身套壳的方式就带来了很多不需要的代码, 原生应用就可以避免.

web语言的优势

  • 跨平台兼容性 现在终端越来越多: 除了电脑之外, 手机, 平板, 电纸书, 手持设备, 自助设备, 智能电器, 眼镜, 以及超级app--微信都将提供可交互的用户界面. 因为这些设备是不同的系统在运行的, 所以, 使用原生代码编写, 可能需要针对每一种设备单独进行编写一套程序; 而使用web语言编写, 则是需要支持该设备的壳. 只要这个壳设计得够标准, 通过稍微的适配, 就可以一套web程序, 兼容不同的平台.
  • 开发周期短 得力于脚本语言的优势, 配合强大的库, 可以更便捷的进行开发.
  • 升级迭代容易 原生app有个很大的问题, 就是升级需要通过系统的功能. 而webapp, 依赖于壳, 作为壳的内部行为, 不用通过系统就能直接升级成为最新的版本. 或者它就是个网页, 发给用户的就是最新的.
  • 作为网页可搜索 如果把web技术用来制作网页, 它的内容将可以被搜索引擎搜索到. 成为整个互联网信息的一部分, 而不是某个应用软件所处的一亩三分地中的数据.

综上所述

  • 原生技术适合多动画, 大数据量, 交互十分细腻的大中型项目.
  • web技术适合对性能要求不高, 需要快速开发抢占市场的中小型项目.

对未来的预测

我大胆预测, 短期几年内:

  • 游戏, 调用非主流硬件, 知名应用方面, 原生app将一直占据该市场.
  • 在雨后春笋般爆发出来的新的创业型中小项目方面, 在业务本身只是一些常规操作的情况下, 随着硬件性能的提升, web技术将逐渐吞食原生应用的市场.
  • 在用web程序初步获取市场成功后, 将会出现不同的选择: 立刻转型原生应用, 还是继续保持web应用来快速迭代. 无论如何, 都将是逐渐逐渐转化为原生应用.

那么, 从长期来看:

  • 硬件和操作系统的革新, 带动新的用户习惯. 而与之对应的原生技术将获得重视. 甚至后面可能出现的温感, 空间感, 3d投影, 全息投影, 动作捕捉等技术. 都将带动某种原生技术的发展.
  • 在该用户习惯被普及后, 跨平台的轻量级技术(现在主要的可能性就是web技术)将会立刻填补到很多轻量级应用的开发上面.

web前端技术的自身的变化

还有一个问题, 现在的web前端技术是否会被淘汰?
现在热门的框架, 一定会被更优秀的, 更先进的框架所淘汰, 或者说自己破茧重生.
不光如此, 我认为, html, css, javascript这些语言也会被淘汰. 但是淘汰不是被现在原生语言取代, 而是成为一种新的跨平台web语言:

  • 有可能该语言自身会逐渐发展, 就算是向前兼容, 很多使用上和几年前的这个语言相比, 已经面目全非. 可以说是一种新的语言.
  • 解释平台(比如浏览器)只要提供兼容接口, 就可以使用另外一种更强的语言来代替html, css, javascript.

但我觉得前端工程师并不需要担心, 就算是新的技术替代了现在的技术, 这种新技术也基本不可能是一种完全不同的技术. 他可能是现在技术的升级版, 并且由前端工程师中的优秀分子, 而不是其他岗位的人率先尝试并推行使用, 他们可能类似jade, sass, coffeeScript而已. 更重要的是, 变化的只是语言的写法和api, 而不是架构的模式, 业务的逻辑和交互的流程. 优秀的前端工程师, 会短时间甚至第一时间, 就用上新的语言. 这些语言, 会更简洁, 并且更强大!


css工程师和js工程师是否分家

某些领域会. css工程师只需要提供样式变化和动画的接口给js工程师, 就可以分别招聘最合适的人来分工合作. 并且让每个岗位的人更关注于某细分领域的职责.
而有些领域则不会. 比如组件化开发的项目中, html已经变成模板, 而css样式已经和组件的通过js完成的各种配置耦合在了一起.
同时, 在泛前端的工作中, 远远不是只有cssjavascript的工作! 只要有分工, 就需要有一个人能够统一整个前端的工作. 对于任何一个前端, 可能某个项目中不会做css或者js的工作, 但是, 这两者都是需要精通的!

web前端技术与原生技术的竞争, 及未来的发展的更多相关文章

  1. 必知干货:Web前端应用十种常用技术你全都知道吗?

    Web前端应用十种常用技术,随着JS与XHTML的应用普及,越来越多的web界面应用技术出现在网站上,比如我们常见的日历控件,搜索下拉框等,这些web界面应用技术大大的丰富了网站的表现形式,本文将为您 ...

  2. [转] Web前端开发工程师常用技术网站整理

    1.常用工具相关 有道云笔记 http://note.youdao.com/signIn/index.html 36镇-最好用的共享收藏夹 http://www.36zhen.com/ 浏览器同步测试 ...

  3. Web前端开发工程师常用技术网站整理

    1.常用工具相关 有道云笔记 http://note.youdao.com/signIn/index.html 36镇-最好用的共享收藏夹 http://www.36zhen.com/ 浏览器同步测试 ...

  4. 学习Web前端开发时有哪些技术点

    现在学前端的人是越来越多,学习质量也是参差不齐.过来人的身份告诉你,如果你还没有下定决心花时间去学习Web前端,那也可以先找些视频学习下,Web前端开发有哪些常见技术点!接下来,就看看Web前端开发有 ...

  5. 一文读懂前端技术演进:盘点Web前端20年的技术变迁史

    本文原文由作者“司徒正美”发布于公众号“前端你别闹”,即时通讯网收录时有改动,感谢原作者的分享. 1.引言 1990 年,第一个Web浏览器的诞生:1991 年,WWW诞生,这标志着前端技术的开始. ...

  6. 论如何在手机端web前端实现自定义原生控件的样式

    手机开发webapp的同学一定遇到过这样问题,如何为丑极了的手机元素应用自定义的样式.首先,要弄清楚为什么要定义手机原生控件的样式,就需要看看手机的那些原生框样式的丑陋摸样: android: ios ...

  7. Web前端新手想提升自身岗位竞争力,需做好这3件事!

    Web前端开发行业的发展前景毋庸置疑,只要是互联网企业,几乎都需要Web前端开发工程师.虽然Web前端入行门槛低,但竞争逐渐激烈,想要取得高薪,就一定要具备强大的实力.那么,在重庆Web前端培训学习中 ...

  8. 谈谈Web前端工程师的定位

    原文地址:http://www.360doc.com/content/10/0708/17/1277406_37692580.shtml 2010-07-08  锋子chans   阅 1116  转 ...

  9. 100本最棒的web前端图书推荐

    前端技术,要学习的内容太多了,当你不知道从哪里开始的时候,你就先从看书开始,边看书边码代码,这个是学习编程必须的过程,因为你看一百遍,还不如自己写一遍,写一遍,第一可以加印象,第二便于更好的理解. 熟 ...

随机推荐

  1. Leetcode 49.字母异位词分组

    字母异位词分组 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", " ...

  2. Mysql中文乱码以及导出为sql语句和Excel问题解决

    Mysql中文乱码以及导出为sql语句和Excel问题解决 这几天基于Heritrix写了一个爬虫,用到mysql,在导入导出数据时,遇到一些乱码问题,好不容易解决了,记录一下,以备查看.一.导出数据 ...

  3. Spring Boot静态资源处理

    Spring Boot静态资源处理 8.8 Spring Boot静态资源处理 当使用Spring Boot来开发一个完整的系统时,我们往往需要用到前端页面,这就不可或缺地需要访问到静态资源,比如图片 ...

  4. Monitor和Lock以及区别

    1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取锁之后因为异常,致锁 ...

  5. Spring MVC-集成(Integration)-生成PDF示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_pdf.htm 说明:示例基于Spring MVC 4.1.6. 以下示例显示如何 ...

  6. AngularJS:让submit重新生效

    当我们在html中声明了ng-app后,form的submit就会失效,必须通过angularJS来处理.如果这时还是想用普通的方式提交的话,需要修改form标签,如下所示: <form met ...

  7. Clojure:解决Selmer与AngularJS的 标签混淆问题

    Selmer是Clojure的一个模板类库,下面是它的一个DEMO模板: <ul> {% for item in items %} <li>{{item}}</li> ...

  8. SQL Server高速导入数据分享

    SQL Server高速导入数据,能够尝试的方法例如以下:CTE.OpenRowSet/OpenDataSource.BULK INSERT.bcp.Shell. 以下依次介绍这几种办法. 1.CTE ...

  9. C/C++大小端模式与位域

    一.大端小端: 1.大端:指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中 例如:0x12345678 在内存中的存储为  : 0x0000 0x0001 0x0002 0x00 ...

  10. B1391 [Ceoi2008]order 最大权闭合图 最小割

    啊啊啊,假的题吧!!!我用的当前弧优化T了6个点,其他人不用优化AC!!!震惊!!!当前弧优化是假的吧!!! 到现在我也没调出来...大家帮我看看为啥70.... 来讲一下这个题的思路,就是设一个源点 ...