用户界面领域: 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 Weekly Contest 26 Q2】Longest Uncommon Subsequence II

    [题目链接]:https://leetcode.com/contest/leetcode-weekly-contest-26/problems/longest-uncommon-subsequence ...

  2. java中redis的分布式锁工具类

    使用方式 try { if(PublicLock.getLock(lockKey)){ //这里写代码逻辑,执行完后需要释放锁 PublicLock.freeLock(lockKey); } } ca ...

  3. Caused by: android.os.TransactionTooLargeException总结

    错误信息 Error: android.os.TransactionTooLargeException W/ActivityManager(344): android.os.TransactionTo ...

  4. [POJ1456]Supermarket(贪心 + 优先队列 || 并查集)

    传送门 1.贪心 + 优先队列 按照时间排序从前往后 很简单不多说 ——代码 #include <queue> #include <cstdio> #include <i ...

  5. [HDU3038]How Many Answers Are Wrong(并查集)

    传送门 和某题类似,只不过奇偶换成了和. ——代码 #include <cstdio> #include <iostream> #define N 1000001 int n, ...

  6. 实现selenium+Chrome爬取时不加载图片——配置

    # -*- coding:utf-8 -*- from selenium import webdriver ''' 设置页面不加载图片,这样可以加快页面的渲染,减少爬虫的等待时间,提升爬取效率 固定配 ...

  7. 洛谷——P1505 苹果摘陶陶

    题目背景 根据2005年的Noip普及组第一题衍生出的一题. 但是有一点点的恶搞成分在里面..... 题目描述 话说去年苹果们被陶陶摘下来后都很生气,于是就用最先进的克隆技术把陶陶克隆了好多份> ...

  8. install pip 回顾

    在install pip的时候遇到如下问题 1. yum install 想安装一个package 总是提示没有package 可以安装. 但是后来可以了 2. make 和 configure 到底 ...

  9. 分享微软官方Demo用的SharePoint 2010, Exchange 2010, Lync 2010虚拟机

    微软官方有一套专门用于SharePoint 2010, Exchange 2010 Demo的虚拟机:SharePoint 2010: Information Worker Demonstration ...

  10. CMDBuild安装

    近日来,老板要在内部部署一套IT资产管理系统,要笔者去调研一下,测试了GLPI.OCSNG(没记错吧)和CMDBuild之后,发现还是CMDBuild的功能较为强大,虽然暂时不具备SNMP之类的工具, ...