阅读更多

2顶
1踩

编程语言

原创新闻 未来编程的9大猜想

2016-01-25 15:46 by 副主编 mengyidan1988 评论(1) 有6243人浏览
科学家称时间是匀速前行的,智者称万物以光速而变化——然而科技的瞬息万变仍旧无从求解,一眨眼,又是另一番景象了。

很多人巴不得能够看透未来,但未来五年顶多是猜测而已。预测科技发展简直是天方夜谭,因为创新的影响力足以淘汰当下的很多技能和工具。话虽这么说,我们还是瞅瞅这命运的茶叶渣子,或许能帮我们拨开迷雾,瞥一眼未来,看看科技到那时究竟是什么样的。

站在科技成就的前沿,我们斗胆展望未来。并非所有展望都会实现,甚至连惊喜都谈不上——其实很多趋势在数年前就“小荷才露尖尖角”了。希望能够为开发者们提供有价值的参考,帮助提升针对未来变化的反应能力,快速做出规划。

1.REST一开始就统领了IoT

REST协议统领了整个网络。随着恒温器、门锁、厨房用具等争先融入日趋成熟的IoT(物联网),这样的趋势还将继续。物联网就是物联网,可不是别的什么的SCSI、USB或SATA联网。

原因很简单,REST协议的简洁深受程序员青睐,其基础架构使得REST协议简单好用,找代码漏洞也变得更容易了。还没有任何协议能像这样用文字形式储存数据,一目了然。当崭新的监控摄像机、微波炉或旋转式鼻毛修剪器随着端口80上的Nginx一同启动,HTML和CSS上设备动态源源不断更新时,千万别大惊小怪。

2.二进制协议再崛起

基于REST协议在JOSN数据包中传送数据至少比老一套的XML数据及标签的90%有效负载而言要简单很多;但极其注重效率的程序员可能会质疑,为什么必须将二进制数据转换为字符串才能在JSON中正确显示,反正字符串回头还要解析成字节的,不是吗?既然这样,特别当物联网仅仅传送几字节的数据时,为什么不直接传送字节呢?

创建更多二进制协议费时费力,HTTP标准本来又都是文本。许多程序员曾经使用过只能用专有代码库拆包的专有二进制协议,深知这种方法并不是时时凑效,让人沮丧。

相比之下,开放的JSON和REST的优越性就很明显了,但这不代表使用二进制协议不能使开放标准高效率发挥作用。物联网将产生比以往更多的数据,许多设备将使用大量编码要求更严格的小数据包。当效率成为硬性要求,程序员会想方设法为数据库添加更高效的二进制协议。

3.视频流将淘汰HTML

在网站之间辗转,阅读页面文字,点击超链接来获取更多信息的时代过去了,如今我们在电视机前浑浑噩噩数小时甚至数天,剧集播完时方慵懒地从沙发上站起来。唯一使用键盘的时候也只是为了知道下一季什么时候在Netflix上播映。互联网变成了新一代电视,而稳定的视频流正沿着文本互动模式铺展开来,帮我们来思考。

这并不完全正确。很多人觉得网络正在解放电视机,让更多人可以坐在电脑前吃着零食观看电视节目。我不知道“周六夜现场”是不是仍旧在周六晚上播出,甚至不知道这个节目有没有直播过,但我知道可以在网站上轻松搜到它。它还保留着那开头的独白吗?还有特约嘉宾主持环节吗?谁知道呢?

但对于这一切,电视迷除了对着屏幕乐呵也做不了什么。几乎不用点击鼠标,也不用翻看网页。也许下一代视频应用会添加更多视频层,并改进现存的工具。Flash的消亡和HTML5的崛起为HTML合并视频剪辑开启了很多可能性,给程序员带来了福音。在那之前,电视节目背后是互联网巨头也好,是三个大写字母为名的国家广播公司也好,用户就只是被动地坐在那里,跟几十年前并无差别。

4.通话不再是智能手机的主要功能

还会有人单纯为打电话而买智能手机吗?发短信、查邮件、上网站,能做的事情还有很多。这小小的矩形屏幕在过去十多年已彻底改变了生活的方方面面,其未来更是让人翘首以待。更多的传感器,更智能的麦克风、相机和加速度计……不过这也意味着手机的商用和私用都会面临一定的隐私风险。

以前,人们要在医生办公室外等待数小时才能得到救助;而现在成百上千的公司正试着把智能手机变成一个小小的私人医疗设备——麦克风可以听取心跳,相机可以用来查看喉咙,加速计可以追踪健身状况——这些数据可以输送到云端,快速帮你找到对症的医生。

是的,新一代的智能设备定将让如今的科技相形见绌——导航应用可以实现路线规划;计划应用除了开车之外几乎无所不能;健身追踪应用可在睡眠和工作时间不间断记录身体的状况。不论是手机还是其他设备,这样的移动应用还会层出不穷。

5.数据库更大、更强


不错,搜索引擎可以作为网页的索引,而如今已经存在可以作为世界索引的数据库了,这都得归功于新一代定位应用和自动驾驶汽车不断扩张的市场需求。Waze等应用可以追踪其用户,从而为开发者和用户编制了一张包罗万象的世界地图,制图师眯着眼趴在航拍照片的旧时代已一去不复返。某条路被封住,一头牛堵住了车流,还是土木工程师新添了一条道路,都能立刻知晓。

数据库之精细令人叹为观止,比如自动驾驶汽车可以输入红路灯、报纸自动售卖机和消防栓的位置数据,好保证行程的安全。数据规模之庞大,为自动驾驶汽车所用绝对绰绰有余。什么时候、什么地点的道路需要维修,哪里的路灯坏掉了,市政部门都能掌握信息;警察掌握的数据远远超出了街上行人的范围。

数据库甚至能记录每个城市中的路面坑洞,以及需要修补的时间。如果这一切已经让你目不暇接了,那么机器人肯定更能牵动你的心。

6.JavaScript将成为主宰语言,却无需亲自编写

如果我们不编写JavaScript,谁来做呢?答案就是代码转换机器人,它们能将任何语言转换成浏览器或Node.js理解的语言。GitHub上越来越多的代码需要经过“编译”才能运行,比如精简的CoffeeScript,该语言去掉了很多程序员讨厌的标点符号。单单CoffeeScript就有数十个版本——Coco,IcedCoffeeScript和CoffeeScript II: The Wrath of Khan。

这仅仅是开端而已,很多程序员明智地编写了Cobol、Java、Lisp和C等多种语言的代码转换器。现在这些语言经过转换和改进,经过快速交付和解析后就能在浏览器里运行了。既然有了机器人软件来转换你熟悉的语言,为什么还要费尽周折使用JavaScript呢?

7. PHP将对Node.js展开反击

…不过仅仅是为了防止改写遗留的应用。几年前,人们还以为PHP会随着Node.js和JavaScript占领服务器机群而退出历史舞台。现在看来它的“退休时间”恐怕要延迟了,知道要打完这最后一场战役再说。PHP 7和HipHop虚拟机等最新即时工具运行更快更流畅,让WordPress和Drupal等代码库的运行速度提升了30%、40%、50%,甚至100%。

而JavaScript对于项目开发的其他优势仍然存在,比如相同代码在浏览器和服务器上都可以运行,但如此一来,也就没有了用Node.js代替PHP旧代码库的理由了。这些旧平台最终会浴火重生的。

8. 入门容易精通难

软件开发的教授和学习都变得更简单了。2014年12月8日,美国总统奥巴马暂且将中东问题和反恐事业搁在一边,花了一个小时学习并编写了一行代码,不知道这会不会让他的“Obamacare(奥巴马医改)”网站更流畅一些呢?

不论教授的对象是人,是宠物狗,还是鹦鹉,这场代码教授热潮都会继续好多年。而真正的程序员最好以一个微笑,一句鼓励回应就是。当越多的人加入编程学习大军,他们就越能认识到处理协调数字、API等有多棘手。像奥巴马那样写出一行代码很简单,但上百万代码组成的完整系统却是常人难以驾驭的。

个别有天分之人入了门就能如鱼得水,但绝大部分都是绷直了脑袋,暗暗叫苦不迭。编写一个循环简单,但选择最合适的很难;孩童时期学过砍木头,但又有几个能在日后掌握木匠精湛的技艺?

9. 指手画脚的BOSS让人抓狂

这算不上是展望,因为他们已经做到了——这些上司们在速成班里学了点编程,就觉得自己成了行家,程序员于是就这样“被帮助”了。

“你要用一个变量吗?”他们喜欢在旁边插话:“你确定在这里使用常量?我觉得循环更好些。”

这种情况下,只要面带微笑,道声感谢,这是你唯一能做的。
2
1
评论 共 1 条 请登录后发表评论
1 楼 shuhen2011 2016-04-04 11:39
PHP是世界上最好的语言

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 基于.net sql server的连接池管理(支持事务管理)类库

    基于.net sql server的连接池管理(支持事务管理)类库 轻松实现事务, 示例: public SqlTransaction Transaction { get { return this._transaction; } set { this._transaction = value; userdal.Transaction = value; //支持多个Dao的事务 groupdal.Transcation=value; } } SqlTransaction stran = this.dal.BeginTransaction(); try { this.Transaction = stran; foreach (var user in listUser) { this.Update(user ); groupdal.Add(group); } this.dal.Commit(); } catch (Exception) { this.dal.Rollback(); throw; } finally { this.Transaction = null; }

  • 在asp.net中访问sql server

    在asp.net中访问sqlserver数据库有两种方法,它们是system.data.oledb和system.data.sqlclient.下面这段程序以system.data.sqlclient为例访问本地数据库服务器.  首先导入名字空间:system.data和system.data.sqlclient.详细代码看源程序.<%@importnamespace="sy...

  • ASP.NET 连接数据库 增删改查简单实例

    本文主要讲解连接ASP.NET 连接数据库最简单的方法和增删改查的小例子,因为只涉及到一个页面,所以没有使用web.config,以及使用DBHelper,旨在让读者们抛开封装好的东西,了解实际代码。

  • asp.net mvc 连接sqlserver数据库

    asp.net mvc 连接sqlserver数据库1.使用ado.net代码连接数据库2.使用ado.net实体数据模型 1.使用ado.net代码连接数据库 点击菜单栏的工具——点击连接数据库 建立好后可以看见右侧出现服务器资源管理器 右键属性: 右下角会有属性窗口 把连接字符串复制下来,打开web.config文件,找到connectionStrings标签 注意:如果自己添加的connectionString标签,请再次确认webconfig文件中是否有connectionString

  • ASP.NET连接数据库(SQL Server)的操作

    /实例化DataAdapter对象。//这里就是我们定义数据库的字段constr。//创建数据库连接实例化对象。// 实例化DataSet类型的对象ds。//将该数据显示在GridView1控件上。//创建数据库连接字段。conStr是字段名字,后面连接需要,localhost是本地地址的意思,s是数据库中的表名。3.选中shujuku练习右击,选择添加,然后在选择Web窗体。

  • 在ASP.NET中访问SQL Server

    <br />在ASP.NET中访问SQL Server数据库有两种方法,它们是System.Data.OleDb和System.Data.SqlClient。下面这段程序以System.Data.SqlClient为例访问本地数据库服务器。<br />  首先导入名字空间:System.Data和System.Data.SqlClient。详细代码看源程序。<br /><%@ Import Namespace="System.Data" %> <br /><%@ Import Namespace="Syst

  • C#操作SQL server数据库(基础)

    一.认识c#程序 1.namespace 关键字----------命名空间 2.Using 关键字----------用来引用命名空间 3.Class 关键字---------类 4.Main()方法 和java中的main方法是一样的,是程序的入口,应用程序从这里入口。 二.C#中的数据类型 常用数据类型 整型intint 浮点型floatflo...

  • SQLServer 常用工具类SQL

    以下SQL,均来自互联网上(有相当一部分来自《SQL Server 性能优化理论知识 》),在SQLServer2008 上验证通过,我把它们收集起来,便于以后查阅。工作者线程* 对于 32 位操作系统:* 总可用逻辑 CPU<=4 时,最大工作者线程 =256。 总可用逻辑 CPU>4 时,最大工作者线程 =256+((逻辑 CPU-4)×8)。 对于 64 位操作系统: 总可用

  • SQL Server2012 学习之(十八) :使用.NET 访问SQL Server

    之前的视频说的都是如何用T-SQL语句创建与管理数据库。这篇博客注重于数据库的具体应用。分为以下6个部分: ADO.NET基础知识SqlConnectionSqlCommandSqlDataReaderDataSet与SqlDataAdapter调用存储过程 1.ADO.NET基础知识 ADO.NET的定义如下。 2.SqlConnection

  • Asp .Net 连接SQL Server 的两种方法

    1&gt; 先添加数据库 2&gt; 找到自己使用的数据库 3&gt; 添加数据库的相关信息,再点击测试连接,看有没有连接上 4&gt; 连接好数据库之后就需要在cs文件中添加连接和查询的操作,这里我研究出了两种方法: ① 在布局中添加一个GridView,默认 id 为 GridView1 using System; using System.Collect...

  • Asp.net Core连接SqlServer数据库两种方式

    第一种方式 一、新建Core项目 1.模板选着Web应用程序 2.更改身份验证选择个人用户账户 二、编写配置文件 appsettings.json中添加数据库连接字符串   "ConnectionStrings": { "DefaultConnection":"Server=.;Database=CoreDB;Trusted_Connection=True;Multipl

  • ASP.NET ADO.NET SQL Server 数据库访问

    ASP.NET MVC5 C# Entity Framework 连接 SQL Server 数据库安装 EntityFramework配置数据库连接字符串添加实体模型类添加数据库上下文类添加控制器类运行测试 安装 EntityFramework 在 Visual Studio 中新建一个 MVC 项目,我这里新建了一个【项目名称】为 SQLServerEFDemo 的 MVC 项目,在 NuGe...

  • asp.net连接sql数据库实现信息管理系统

    asp.net连接sql数据库实现信息管理系统

  • Asp.net 复习题1

    一、选择题 1、下列标记不属于HTML文档的基本结构的是:( D ) A  B  C  D  2、请问下面程序段执行完毕,页面上显示内容是什么:( A  ) Response.Write (“http://www.sina.com.cn'>新浪”) A 新浪   B http://www.sina.com.cn'>新浪 C 新浪    D 该句有错,无法正常输出 3、Session对

  • 基于springboot大学生就业信息管理系统源码数据库文档.zip

    基于springboot大学生就业信息管理系统源码数据库文档.zip

  • 基于java的驾校收支管理可视化平台的开题报告.docx

    基于java的驾校收支管理可视化平台的开题报告

  • 原木5秒数据20241120.7z

    时间序列 原木 间隔5秒钟 20241120

  • 毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip

    毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip

  • 基于springboot课件通中小学教学课件共享平台源码数据库文档.zip

    基于springboot课件通中小学教学课件共享平台源码数据库文档.zip

Global site tag (gtag.js) - Google Analytics