`
cleverpig
  • 浏览: 150948 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

2007年web开发技术预言(下)

阅读更多
Web开发技术流行趋势

PHP——高效、稳定的圣殿轻骑兵

image
图-5 web开发语言平台分布图


        评论:很欣慰地看到作为“开源常青树”的PHP获得如此殊荣。由于PHP的高效、全能、强适应能力、强扩展能力,所以获得了众多开发者的青睐。
        同时作为传统语言的ASP和JSP依然在势均力敌的博弈,而春风得意的后生Ruby可谓潜力无限,当然这也得益于RoR的流行。但是从Ruby占5.31%的比例来看,RoR还不是企业应用开发的主流

        
        PHP何以如此红火?
        1.高效性:
        基于C语言的特性已经使其具备了高效的潜质,再加上支持页面模板技术的smart引擎、提供代码重用能力的PEAR、可替代循环的正则表达式等,使其在服务器端执行效率得到了加强。

        2.应用范围广:
        服务端脚本——这是PHP的传统领域,也是最主要的目标领域;
        命令行脚本——可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它;
        桌面应用——编写可以利用PHP-GTK来编写桌面应用程序。

        3.强适应能力:
        使用PHP开发时不但可以自由地选择操作系统和web服务器,而且可以根据需要选择使用面对过程和面对对象,或者两者混和的方式来开发。

        4.强扩展能力:
        PHP 最强大最显著的特性之一,是它支持很大范围的数据库。
        PHP 还支持利用诸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 环境)等不计其数的协议的服务。
        而且它具有极其有效的文本处理特性,支持从 POSIX 扩展或者 Perl 正则表达式到 XML 文档解析。
        如果将 PHP 用于电子商务领域,会发现其CybercashCyberMUTVeriSign Payflow Pro等支付方式以及 MCVE 函数对于在线交易程序来说是非常有用的。

        另外,eweek网站完成的《2006年10大应该学习语言》,也值得大家作为学习的参考:
        1. PHP
        2. C#
        3. AJAX (Asynchronous JavaScript and XML)
        4. JavaScript
        5. Perl
        6. C
        7. Ruby and Ruby on Rails(RoR)
        8. Java
        9. Python
        10. VB.Net (Visual Basic .Net)


聚合推动web运转的车轮

image
图-6 当前web应用项目的技术分布图


        评论:由 此可见,经过仅仅2、3年的发展,聚合技术已经撑起了web前进的舵盘,随之兴起的AJAX、JavaScript、Blog、Wiki、Podcast 也依靠聚合技术传遍了世界每个角落。Flash虽然份额不小,但其也缓慢地转向客户端脚本的方向以进一步提高优雅的用户体验。
        回到我前面的原理:“用户体验决定了技术发展方向,而不是理论。”,聚合技术的兴起必定带动客户端和服务端的技术提升。我相信未来几年web属于结构化blog和Feed网络:


        结构化Blog(Structured Blog):
        一种新兴的、实验性的Blog,它最终把信息传送到语义网(Semantic web)。尤其是它提供了自描述内容,这种自描述内容可以被轻松地植入到web站点或者Blog中,提供给Blog作者建立和聚合结构化信息(比如评论、事件、媒体)的工具。
         在传统Blog记录和结构化Blog记录之间的不同之处——后者发布的内容是计算机可读取的格式,其它的聚合服务可以理解它们,使用它们来生产事件日历 (calendars of events)、任务板(job boards)、书籍评论(book reviews)或者影视投票。当然,结构化Blog也遵循RSS和Atom标准。结构化Blog通常处理结构化的内容格式,比如微内容 (microcontent)。

        注:语义网(Semantic web):是在万维网上,通过放置计算机可处理的文档来进行信息交换最终建立一个全球媒介的项目。目前语义网在万维网协会Tim Berners-Lee先生的指导下,正通过使用标准、标记语言和相关的处理工具对web进行着扩展。

        注:微内容(microcontent):微内容是一种以短小形式发布的信息,它的长度受到了话题长度的限定和软件的技术限制。

        Feed网络(FeedMesh):
        FeedMesh是一组用来建立“结对网络(peering network)”、完成对分散的web更新通知和内容发布的技术。采用web聚合的在线服务商,包括PubSubFeedsterTechnoratiBloglinesYahoo共同参加制定了一项共享weblog更新通知服务(“pings”时常见的一种更新通知服务方式)的标准。
        它使blog作者和聚合发布者从中获益:更快速的内容发布、可靠的可升级的通知服务。而对于在线服务的客户来讲,好处则是带宽的节省和低延迟。

Ajax成为开发者未来一年的学习趋向

image
图-7 web开发者希望从web或者出版物获得技术的分布图


        评论:从分布图来看,47%被调查的web开发者通过web或者出版物来希望获得更多的AJAX知识,而将近34%和29%的被调查者希望获得XHTML/CSS和PHP的web文章或者书籍。
         本人认为:"Web2.0之所以如此精彩,这正是web聚合(syndication)作用的结果。Blog、Wiki都被广泛地应用在web写作领域, 而Blog比Wiki更流行,真是由于其更加易于聚合、推广。聚合技术所依仗的便是RSS、Atom之类的标准,而这些标准的技术支持便是 XHTML/CSS/XML,而AJAX为Blog、Wiki提供了完成优良的用户体验。"


        国内已经出版的Ajax图书:
        image《Ajax基础教程》《Foundations of Ajax》中文版)
        image《Ajax实战》《Ajax in Action》中文版)
        image《Ajax修炼之道》《Pragmatic Ajax》中文版)

        本人感觉《Ajax实战》是最为深入全面的AJAX开发手册(详情见:书评:《Ajax实战》)。大家还可以看看第二书店的 Ajax专题,包括了目前国内已经出版和即将出版的所有Ajax图书。

在web业界的下一件重大事件将是什么?

image
图-8 在未来每个人都会在15分钟成为大明星?


        不妨让我们了解一下SitePoint&Ektron调查报告中的大众观点,也许看过之后,你也想说说自己idea:
{

—“实时虚拟3D视图和站点导航,你的鼠标指针不仅可以在x、y轴上移动,而且还可以在网站的内部(z轴)移动。”

—“我想象不出下一件大事是什么,而在向标准靠拢的趋势下,利用有依据的技术和语义将帮助我们在资源之间建立更加紧密牢靠地关系。”

—“我认为我们将继续看到优雅性、功能性占有统治地位。我认为那些现在‘热’的东西将像时尚一样过去,只有真正有功能的、可访问的、具有市场的、有用的才会存在。”

—“你将不必为获取信息而搜索web。只要定义你想要的和收集这些东西所用的web就可以坐等其成了,比如:我作为一名消费者,定义了我想购买的一台显示器。这个信息将被潜在的商品提供商所发布或者收集。而他们会提供给我产品信息,使我轻松地购买他们的产品。”

—“以我的观点看,未来(web3.0时代?)会关注内容、非功能性。这个站点可以提供给访问者到达最深层内容的最轻松的访问。而其它任何网站,包括复制其它站点做法的跟风(copy-cat)站点将继续走老路。”

—“Fragrant 网站采用XHTML2.5来驱动安装在手机和PDA的USB棒或者植入到SD卡中的信息素散发器。在数码相机上安装可捕捉味道的扩展卡,拍照的同时还捕捉 到了味道,这难道不是为网络上的图片又增加了一个新特性吗?在看食物图片的同时,闻一下味道如何?然后在餐厅预定一下位置?哇,全新的平面+嗅觉广告!”

—“我相信现在网络连接的速度这么快,像video这样的东西可以应用在电子商务网站和服务网站。直接和你的顾客面对面地交流、赢得他们的信任,让他们知道你是谁。”

—“搜索引擎将代替web和web的内容!越来越多的搜索引擎和目录会保存web站点的内容,这样就没有人需要去真正的网站。”

—“在 web领域的下一件大事是建立家族(或者继承)的门户(portal),家族成员或者继承人在那里一起建立一个家族站点。这些站点维护家族信息——以数字 格式保存家族成员姓名、财产、相片等。这样,全球气候不会破坏或者抹去整个家族的记忆——它将被安全地保存在冗余服务器上,并供奉在‘家族拱顶’页面上。 你将拥有关于自己家族和成员之间相互关系的巨大数据池。无论这个家族是否都居住在同一座城镇、州县或者同一个国家、甚至同一个星球上,通过照片和简介上的 链接可以直接获得相关信息。很cool吧!另外,可建立一个收费的服务:通过发送的口腔采样药签(mouth swabs)来获得与之匹配的家族成员的DNA序列。并且保存这些信息用来进行DNA比对等不时之需…”
}


cleverpig的Idea:

        1.XM传输协议取代传统的HTTP:“老旧的HTTP已经完全过时,它会被XMTP(eXtensible Markup Transport Protocol)所替代。这种XMTP是专为传输XML和聚合而设计,在数据传输上突破了HTTP的瓶颈,而且更加安全。”

        2.浏览器厂商制定“XML序列化/反序列化”标准:主流的浏览器将在接收XML后进行解析,将XML反序列化为支持JavaScript或者其它浏览器脚本语言的Object,使client直接读取服务器push过来的数据,并将用户的请求序列化发送到服务器。

        3.订阅模式将转变为“推送”模式:聚 合程序不再是单调的周期性查询服务器,而是服务器上面维护一系列用户订阅列表,只要打开浏览器便可以及时看到自己的订阅信息,无论何时何地,具备浏览器和 访问网络能力即可。并且这些消息会跟随服务器的update而被push到client,有效地保证了信息的及时性。建立上文提到的FeedMesh之上 的聚合服务器,专门提供信息检索、订阅、推送,接收结构化Blog提交的新信息。

        4.浏览器更加智能:不但应有设备范围被扩充到移动设备、电器,而且更加智能。比如可以通过设置电冰箱的购买策略,使其在食品放入时通过RFID扫描其条形码,记录过期时间,并制定提醒功能,而在库存量不足时在通过主人确认后自动发送给杂货店的订货单。

相关资源:

SitePoint&Ektron的2006/2007web开发状况报告

极限编程组织官方网站

Javaeye的《ruby on rails为什么暂时无法成为企业应用开发的主流?》

Jasonkolb的《The Next Big Thing on the Web》

Knownow技术介绍

eweek的《2006年10大应该学习语言》


感谢阅读此文

请支持cleverpig发起的image
分享到:
评论

相关推荐

    应用Rails进行敏捷Web开发(中文版)第三版.part1

    应用Rails进行敏捷Web开发(中文版)第三版.part1.ra

    网上书店系统web实验报告(代码+数据库+前台).doc

    网上书店系统web实验报告(代码+数据库+前台)

    《web程序设计》课程设计报告书(样例)【最新】.doc

    《web程序设计》课程设计报告书(样例)【最新】

    Asp.net web程序设计与应用代码

    【Asp.net Web程序设计与应用代码】是关于网页设计,特别是动态网页设计技术的文档,其中涵盖了ASP.NET的基础知识和实践案例。ASP.NET是由微软公司开发的一种用于构建Web应用程序的框架,它允许开发者创建交互式的、...

    毕业答辩-ASP.net校友录毕业设计(源代码论文开题报告答辩PPT).rar

    ASP.NET是一种基于.NET框架的服务器端编程模型,用于构建动态Web应用程序。这个“毕业答辩-ASP.NET校友录毕业设计(源代码论文开题报告答辩PPT).rar”压缩包文件包含了一个完整的毕业设计项目,该项目可能是一个使用...

    SpringBoot的中文指南和中文文档压缩包(既包含中文,有包含英文)

    3. **嵌入式Web服务器**:SpringBoot默认集成了Tomcat或Jetty等嵌入式Web服务器,使得应用可以直接运行而无需外部服务器。 4. **Spring MVC**:SpringBoot支持Spring MVC,用于构建RESTful API和服务端页面。 5. *...

    详解WebRoot与WebContent区别

    在Eclipse开发环境中,Web项目常见的目录结构中,WebRoot和WebContent是两个非常重要的目录,它们在动态Web项目中扮演着不同的角色,但同时也具有一些共同点。为了深入理解它们的区别和用途,我们需要详细探讨这两个...

    跟我一起写 Makefile (PDF 重制版)

    2. **掌握底层技术**:类似于HTML编辑器为用户提供方便的同时,了解HTML标签的含义对于成为一名专业Web开发者至关重要。同样地,在Unix环境下编写软件时,理解和编写makefile是必备技能之一。 3. **大型项目管理能力...

    面向对象结构构造(英文版)

    More than 400 references to books, articles, Web pages, newsgroups; glossary of objecttechnology.• And many new developments on the topics of the first edition: reusability, modularity, ...

    面向对象结构构造 (英文第二版)

    More than 400 references to books, articles, Web pages, newsgroups; glossary of objecttechnology.• And many new developments on the topics of the first edition: reusability, modularity, ...

    CSS中文字体转编码

    在Web开发中,为了确保网页在各种浏览器中的兼容性和一致性,开发者常常需要处理字体的显示问题。特别是在涉及到中文字体时,由于中文字体名称通常包含非ASCII字符,这可能导致某些老旧浏览器或特定环境下字体无法...

    JSP加载JS文件不起作用的有效解决方法

    目录结构:jsp导入jquery文件,老是不起作用,原因在于: 代码如下: [removed][removed] 其不能访问/WEB-INF/目录下的文件,因此需要将加载的js文件其放倒webapp目录。 test.html: 代码如下: <%@ page ...

    ComponentOne Enterprise Studio --应用广泛的开发控件集

    这个订阅版包括了最新发布的.NET (Windows Forms), ASP.NET (Web Forms)以及ActiveX组件,最新发布信息,最新升级信息以及购买之日起1整年的电子邮件和在线支持。 组件列表 ♦;;; Grid Components for ActiveX...

    FiberHomeS2800系列二层以太网交换机操作手册V1.2.pdf

    FiberHome S2800系列二层以太网交换机操作手册 V1.2。共计278页,很详细,零基础也能看得懂。

    修改的CodeSmith生成MVC4项目工程模板

    2)修改后的版本可以直接生成VS2010解决方案,并且生成的web工程可以直接在VS中打开,不需要手动添加到项目工程中; 3)生成的Global.asax中的 <%@ Application Codebehind="Global.asax.cs" Inherits=...

    XDCTF2014部分官方Writeup.doc

    接下来是Web200,这道题目涉及到一个由web.py框架构建的简单Web应用。参赛者需要通过挖掘页面中的线索,发现隐藏的文件读取功能。在访问特定的URL后,可以看到一个新的Python文件newapp.py的部分内容。关键在于,...

    WEB-DAV Linux File System(davfs)-开源

    ++迁移++迁移++迁移++ davfs2项目现在托管在http://savannah.nongnu.org/projects/davfs2 ++迁移++迁移++迁移++ davfs是Linux文件系统驱动程序,允许您将WebDAV服务器安装为磁盘驱动器。

    NoEval - Disable Eval()-crx插件

    请访问以下页面以获取有关eval以及为什么它是危险功能的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval#Never_use_eval! 如果您发现了错误或有功能要求,请在...

    ES2020系列之空值合并运算符 '??'

    比如,在Web开发中,当后端API返回的数据可能包含null或undefined时,前端开发者可以使用'??'运算符来简化代码,避免冗长的条件判断。 在优先级方面,空值合并运算符'??'的优先级比赋值运算符'='和条件运算符'?'都...

    Fonts & Encodings

    This reference is a fascinating and complete guide to using fonts and typography on the Web and across a variety of operating systems and application software. Fonts & Encodings shows you how to take ...

Global site tag (gtag.js) - Google Analytics