以IT技术和通信技术为主,同时关注民生、关注人文、关注健康,也包括自己的一些作品 注册 | 登录
浏览模式: 标准 | 列表分类:语言开发

一个PHP程序员的价值

  PHP 程序员拥有不同的体型、大小及肤色。有不同的学历,而有些高中时就辍学了。但哪些才是PHP程序员的真正价值呢? 他们富于冒险?我们应该怎样来看待PHP程序员呢?

  多年来,我接触过来自于不同背景的PHP程序员。我看到有些人做的非常好,而有些只能望其项背。PHP程序员的另一项非常显著的特征是,他们平常的节目质量要远远强于其他类型的程序员。

  还是让我们更深入探讨他们吧…

  PHP 程序员的一些品质,那些品质是最有价值的呢?

  1. 编写PHP的代码很出色。
  2. 编写PHP代码的速度很快。
  3. 可信赖性及可靠性。
  4. 经验丰富。
  5. 带来效益(Being profitable)。
  6. 良好的沟通。
  7. 谦虚,而不是傲慢。
  8. 善于理解复杂的系统、有一套方法学。
  9. 管理项目和团队成员。
  10. 准确地估计项目时间。

  下面是我对上述项目的看法…

  并不重要一些PHP程序员的品质

  #1.编写PHP的代码很出色。
  #2.编写PHP代码的速度很快。
  #4.经验丰富。
  #8.善于理解复杂的系统、有一套方法学。

  人人都应该有的品质

  #3.可信赖性及可靠性。
  #5.带来效益。
  #6.良好的沟通。
  #7.谦虚,而不是傲慢。
  #10.准确地估计项目时间。

  PHP 程序员外在的一些特征

  #9.管理项目和团队成员。

  但是Chris….为什么呢?

  既然这些PHP 程序员都是合乎逻辑的,那就让我们从逻辑的角度来看看吧。看一下以下的PHP程序员:

  PHP程序员1号
  -大学学历
  -很聪明
  -经验很少
  -傲慢自大
  -可以编写非常复杂代码
  -糟糕的沟通能力及人际关系

  PHP程序员2号
  -经验非常丰富
  -很聪明
  -傲慢自大
  -每个3个月变化一次工作
  -可以编写非常复杂代码
  -有沟通技巧以致工作便利
  -编写代码速度很快
  -对他们感兴趣的工作是个工作狂…否则,则是难以专注地工作

  PHP程序员3号
  -大学辍学学生
  -一点经验
  -是个很好的员工
  -可靠的
  -乐意接受批评
  -超出能力范围之外的错误不会一次又一次地发生
  -密切关注自己的言行举止并能准确地预估自己的时间

  您会雇佣哪种程序员呢?您的团队中又都有哪些类型呢?

  3号PHP 程序员可能不会编写非常复杂的代码,当然,也可能不会快速编写PHP代码,但他比其他的程序员更有发展潜质。2号PHP程序员如果能够定下心来,那么也将是一个很好的员工,即使目前的项目并不是那么令人兴奋。1号PHP程序员同样也很有潜质,拥有更多的核心编程技术知识,如果认为他是“没有价值”的,其实大学学历就是他最好的说明。

  当我看到某些PHP 程序员并不是很成功的(意思是…他们在工作中一贯都有问题,或一直在不断地变换工作),他们通常都是由每个人本都应该具备的特征导致的,如:可靠程度、信任、时间管理、沟通、努力工作、幽默及从错误中学习。

  不要误会我的意思…能够编写复杂的PHP代码及快速编写代码自然是件好事,但都并不是价值所在,如果您是个混蛋、傲慢自大或烂透了的沟通能力。

  我也思考不少业主所认同的观点:每个PHP程序员都应该是一个项目经理。这个观念其实是不正确的,因为大多数的PHP程序员都是属于“程序员类型”的,并不是所有的都能够跟顾客作很好的沟通。这有点像让您10岁的女人如何去跟一位客户去沟通…这并不值得去冒险。话虽这么说,但也是有例外的。个人而言,作为一个PHP程序员我都在运用自己的项目管理来充当糖衣增加能力。

  务必牢记,无论何时何地我们都有可以改进的。

  您同意我的分析结果吗?

来源:互联网络

TIOBE 2010年4月编程排行榜发布:C语言王者归来

  TIOBE 4月编程语言排行版已经发布了。本月排行榜最令人关注的是:时隔4年多,C语言重回编程榜榜首。

  作为编程语言之林的常青树,C语言的市场份额10年来长期保持在15%至20%之间。此次抢到榜首,并不意味着C语言份额的大幅上涨,而是源于其竞争对手Java的衰落,Java正显示出一种长期下滑的势头,并让位于其他基于JVM的语言。一个典型的例子是JavaFX script现在已接近TOP 20。

  TIOBE编程语言社区排行榜是编程语言流行趋势的一个指标。每月更新。这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如Google、MSN 、雅虎)以及Wikipedia和YouTube进行计算。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。

  这个排行榜可以用来考查你的编程技能是否与时俱进,也可以在开始开发新系统时选择语言时用来进行策略性的决策。排行榜的详细定义可以参考这里

来源:互联网络

Symbian预计今年上半年开放全部源代码

  Symbian协会日前发布公告称,该协会将于近期推出Symbian平台的V3和V4版本,其中,V3版本的所有功能很可能在下个月内完成。

  诺基亚已全额收购了Symbian股份,并将Symbian开放成免费的手机平台。预计,该操作系统将在今年上半年全面开放其源代码。

  Symbian发言人表示,Symbian平台V3版本有望于在今年第一季度正式向外发布,而V4版本到年底就能完成。Symbian能够对市场上大多数手机提供支持,包括诺基亚、三星、索尼爱立信等公司推出的手机。

  同时,Symbian平台也面临的激烈的同行竞争,苹果公司的iPhone、Google推出的Android以及RIM黑莓都向其发起强有力的挑战。

  Symbian平台版本团队负责人表示,Symbian平台V 3版本将提供多页主屏幕,并具有高清视频支持能力,可存储超过2GB的文件,V3版本所拥有的一键式连接提供了一个简单的连接对话框。Symbian平台的另外一个特性是通过一个支持HDMI音频、视频和图像的插件框架查找联系人。

  目前,Symbian平台的V3版本进展顺利,同时Symbian平台的V4已开始着手规划,V4版主要对UI环境进行了彻底修改,还包括了ISB照相机API的参考实现。  

  Symbian平台可以在普通电脑的开发环境上开发相机应用软件,目前,Symbian平台只能在生产硬件环境上测试。  

  其它增强功能还包括低级地理编码框架和对蓝牙界面提供直接支持的API。V4版本也还支持Qt位置界面应用程序,并优先考虑了在多核处理器中的并行处理问题。

来源:互联网络

Java的辉煌还能延续多久?

  Oracle对Sun的收购引发了人们对Java未来的一丝担心,Oracle能否继续保持Java的开放性,面对Ruby、Python或PHP等一批轻量型语言的崛起,Java能否继续保持其在开发领域的领导地位?

  14年前,Sun公司的一位营销天才把一门试验性的跨平台语言由象征踏实的Oak(橡树),改名为香气四溢的Java(咖啡)时,可能他没有想到这门语言能有后来的辉煌。事实上,如果现在Sun想为这门语言改名,以准确体现其在计算机行业的地位,似乎Oak更形象。

  今天,虽然Java语言并非真正意义上的遍地开花,但它已经出现在众多场合和设备中,而且它享有运行稳定、设计精良的美名;Java代码也许无法主导所有计算机或所有平台,但它离成为通用语言已近在咫尺。

  Java之父詹姆斯戈斯林(James Gosling)在Oracle主办的OpenWorld大会上登台发言时阐述了这一点。他调出JavaFX幻灯片,上面是一连串统计数字:超过8.5亿个具有Java功能的桌面机和大约100亿个具有Java功能的设备。实际上,Java虚拟机在电子设备中司空见惯:电子书阅读器Kindle、蓝光磁盘播放机和智能电话(包括不太智能的手机)等。iPhone(手机上网)应用程序可以在成千上万部iPhone上运行,但Java嵌入在26亿部手机上,从不太智能、20美元就能买到的手机,到最新一代的黑莓和Android手机无一不包。

  请戈斯林到OpenWorld大会上演讲,只是Oracle掌门人拉里埃利森(Larry Ellison)希望向工程师们一再保证这门语言前途光明的手段之一。Oracle想要并购Sun,但它仍得等待欧洲监管部门批准这一决策。美国政府已开了绿灯,但欧洲政府官员由于担心MySQL的发展还没有同意这一起交易。戈斯林和Sun董事长麦克尼利(McNealy)都表示,一旦并购工作完成,Java会从Oracle得到比以往更多的关注和资源。

  从近期来看,埃利森传达的信号也许不是很重要,因为如今Java已成气候,要改变发展方向也并不容易。当然,也有一些人认为,Oracle的商业模式太不一样了,所以它必然会对Java生态系统的每个部分进行重大变化。总体来说,每拿出一个Java可能变化的理由,就有同样充足的理由表明Oracle可能还是希望保持现状。

  企业级应用是主战场

  Java最先在服务器端找到了自己的位置,未来这个领域仍是有望看到Java虚拟机的主要地方。对Oracle的所有产品来说,大型服务器也是主要的安身之处,所以出现这对组合自在情理当中。虽然PHP编程员青睐MySQL,但对数据密集型的企业应用来说,许多最要紧的项目还是使用基于Oracle的架构封装而成的Java,这种情况应该不会很快发生变化。

  Sun称,GlassFish应用服务器每个月的下载量超过100万人次,Tomcat等比较旧的平台仍然很常见。由于Java这项技术备受推崇、运行速度快、真正跨平台,大型企业(如银行和保险公司)对Java开发人员求之若渴。

  不过,Java不再被认为是最新最酷的语法。一些编程员对静态类型语言的结构满腹牢骚,纷纷改用更新颖或更简单的语言,比如Ruby、Python 或PHP。现在许多较简单的Web应用程序就是用这些语言开发而成的,因为它们编写的代码容易修改,能快速建立原型。然而,这些使用便捷的新语言常常离不开Java:Ruby开发人员常常使用JRuby(基于Java实现的Ruby语言),因为Java虚拟机能够更出色地处理繁重任务、释放多个线程。Jython(基于Java实现的Python语言)也相似。

  Java现在正在加入一些最新的编程技术,以此遏制这些新语言大举入侵。Grails明显模仿了Ruby on Rails的许多简单的说明性模式;Grails这种框架利用名为Hibernate的数据库中间件,把Groovy等脚本插件结合起来。Groovy本身添加了众多的动态选项便于代码解释,同时可以直接链接至Java应用编程接口(API)的任何部分。甚至不需要考虑Python或Ruby,因为Groovy凭借一种精巧、现代的语法,让Java编程员可以使用似乎变化无穷的庞大库和底层稳若磐石的虚拟机。

  走上移动之路

  Java手机的数量(估计约26亿部)委实惊人,因为市面上许多最简单的手机里面都运行Java平台微型版(Java ME)。这让Wattpad.com等公司得以构建在整个第三世界都能顺畅运行的文档阅读平台。

  不过,运行Java的智能电话数量相对少一点。iPhone的巨大成功激励许多人重新学习Objective C,这门语言让编程员对于内存使用等一些系统问题提高了控制能力。Java为编程员隐藏了大部分底层问题,这是个优点,但前提是不需要管理内存等资源,因为要是垃圾收集出现一个小失误,有些游戏就运行不了。可遗憾的是,因为电池续航时间是极其重要的一个因素,智能电话需要比几乎其他任何平台更严格的资源管理。

  不过,Java编程员仍然很吃香,因为黑莓手机在其新平台上继续采用Java ME:它为手机的情景模式(profile)添加了支持触摸屏和方向感应器的功能。而Android存在不可预知的因素。由于谷歌开放了Android的使用,许多手机厂商搭上Android这辆彩车。

  谷歌的Android建立在开源Apache Harmony及其类上,而不是建立在Sun开发的Java开发工具包(JDK)和Java ME上。对使用Eclipse编写代码的人来说,它们看上去几乎一模一样。在其他许多情况下也无关紧要,因为Android开发使用了很多XML表单,但如果这两套开发框架离对方渐行渐远,这种分裂可能会变成大问题。

  收复桌面阵地

  大多数人仍然认为Java在桌面端从来没有取得成功,这是过去。如今,Java正在缓慢而稳步地渗入到现代操作系统的各个角落。虽然用Swing编写的标准应用程序因试图定位在每个平台的最基本部分而继续遭殃,但是有了像JavaFX和Web Start这些比较新的开发平台和框架,就有可能通过Web有效地部署软件。本地平台可处理Java归档(JAR)的所有缓存工作。只要点击链接,有时偶尔随后点击几下授予权限的对话框,软件就可以安装及更新,还可以随时运行。

  JavaFX仍然是一个名副其实的未知因素。图形功能现在可与Adobe的Flash相竞争;计算引擎可支持大部分的Java API,但这门语言是一门奇怪的混合语言,融合了正宗Java、JavaScript及其他的一些标记语言。其代码比正规的Java简单,所以Java编程员又要学习新的东西。不过,对极具互动性的桌面工具而言,新的动画类也许值得花时间学习。Web Start正在继续慢慢改进通过浏览器直接把软件部署到桌面的功能。

  抢占嵌入式领域

  Java还在人们最预料不到的地方茁壮成长。虽然C编程人员可能从来不会承认Java虚拟机巧妙处理存储区、快速运行的功能,但Java在非智能手机、机顶盒、嵌入式芯片、Kindle及其他低功耗设备取得的成功表明:Java虚拟机完全有能力在嵌入式应用方面一展身手。Java的普及性还帮助编程人员从大平台迁移到小平台。虽然为大型机开发企业级应用软件改成开发小型嵌入式代码并不简单,但Java标准大大简化了这种转变,这让其他许多工具自叹弗如。

  Java程序包也在变得越来越小巧。戈斯林用尘埃来形容一台硬币大小、能够识别Java的计算机。JavaCard是面向这类小型程序包的一种虚拟机和API,它即将迎来3.0版,这个里程碑式版本将增添网络连接功能。尽管这些小不点还没有小得足以放入到人的眼睛中,但直接与互联网通话的功能却让它们显得极具诱惑力。

  合作伙伴会分道扬镳?

  所有开发人员的最大担心是:要是Oracle收购Sun的交易尘埃落定,会出现什么样的利益冲突变化?Oracle是靠收取大笔的软件许可费成长壮大,其软件可运行在客户想要购买的任何硬件上。而另一方面,Sun通常是免费赠送软件,然后通过销售服务器赚到一些钱。这些经销策略也许不会立即发生变化,因为惯性实在太太了,但谁也不知道将来Oracle会做出怎样的决策。

  一些人认为,Oracle过去在收取大笔许可费方面屡试不爽,只会鼓励埃利森对Sun采取类似的手法。也许Oracle的销售团队眼下就在垂涎这个机会:针对Java以前免费的地方开始逐步提高许可费。为了避免重新编写Java平台企业版(Java EE)应用软件,许多企业很可能宁可支付每个CPU 100美元、200美元甚至100万美元的费用。

  批评人士指出,Oracle很容易开发出新版Java虚拟机,针对不同的市场推出不同的性能级别。桌面虚拟机可能保持免费,Oracle甚至可能会掏钱请电脑厂商来推销Java和JavaFX,而处理极限多线程方面的性能改进可能会收取非常高的费用。从用户身上捞钱有好多法子,许可费相比之下往往便宜得多:要是让拒不服从的编程员先学习一门新语言,然后重新编写代码库,那成本高多了。

  但也有人认为,Oracle也许不会采用这一招。一名接近Sleepycat(这家开源数据库公司在2006年被Oracle收购)的消息人士表示,Oracle已把技术队伍的规模扩大了约一倍,而所有双许可模式原封不动。软件仍然采用开源或商业许可证这两种形式。如果Oracle像Sleepycat那样对待Java,社区许可及其他方案仍然会跟以前一样免费、随处可得,同时有更多的工程师来改进代码。

  与其他各大Java合作伙伴的长期关系方面仍存在更深层的问题。谷歌继续支持Apache Harmony,这个代码超过125万行的项目似乎一心要破坏Sun作为世界中心的地位。IBM输掉了争夺Sun的竞标战,现在发现竞争对手Oracle 的实力更强劲了。IBM设计了Eclipse开发工具,可能也会开始把Java平台带往另一个方向。

  其他合作伙伴的态度比较激烈。SAP公司首席技术官Vishal Sikka一再要求Sun发布Java社区进程(JCP),着重提到了Oracle在2007年提出的方案:将控制权交由一家开放、独立、与厂商中立的标准组织,标准组织的所有成员在机会均等的前提下参与。虽然Oracle对相关细节基本保持缄默,但可以认为,这家公司会因为从Sun承袭过来的一些观点而重新赢得尊重。

  但是,尽管其他合作伙伴可能会参与恫吓的举动,但他们可能会考虑度的问题,因为大家其实是相互牵制的,任何过激的行为都极可能会被阻止,因为大家都认识到一次编写、到处运行理念具有的优势。如果为Android手机编写的代码无法很容易地迁移至索尼蓝光播放机或Glassfish服务器,另一门语言就有机会应运而生。实际上已经有多家公司在编写工具包,让用户可以在iPhone上轻松运行Ruby on Rails或Python软件。

  另外,许多这些比较新的语言可能会成为不可小觑的竞争对手,而暗斗过多只会帮助它们攻城掠地。现在有几十种非常好、知名度小一点的开源程序包,只要忠实的爱好者稍加转换,通常就能把它们移植到每个平台上。比如,Python已经是一些科学领域的主要语言,谷歌选择Python、而不是Java作为其应用引擎(App Engine)支持的第一种语言。虽然IBM、Oracle和谷歌在争夺主导权的竞争中可能会相互排挤,但它们必须认识到:所有人都受益于标准化,而不是垄断。要是谁敢过于排挤别人、企图一手控制Java,其他厂商可能会奔向其竞争对手。

  Java也开应用程序商店?

  Java代码库仍相当有凝聚力、相对标准化,这个事实惹得众人猜测:Sun(如果合并案完成,还有Oracle)到底会怎样利用Java的普及性来大发其财,又不提高许可费、挤压每个人?如果有人开发出一种面向整个Java生态系统的应用程序商店(App Store),从而像销售面向iPhone的应用程序那样销售用Java编写的小组件(widget)它们可以在桌面、手机、蓝光播放机或可以使用 Java的其他任何平台上运行,将会怎么样?

  最近已经有了面向Android手机的一批数量可观的应用程序,Sun也在谋划一家Java商店,好让人们只需把应用程序拖到桌面上,或者只要再编一点代码,就可以把各应用程序结合起来,从而让它们可以在Java世界的几乎每个角落里运行。不过,处理截然不同的屏幕和用户界面还是个挑战。

  设想一下这种场景有多吸引人:开发人员编写的某个应用程序在Android手机上运行着,他在办公桌面上处理任务,回到家后在客厅的蓝光播放机上顺畅运行。

把Java应用程序带到坐沙发的人面前甚至有点出人意料,因为Java这门语言在被叫做Oak的早期阶段,本意就是运行在机顶盒上。这种远景将依赖于Java平台的最大优点:普及性和跨平台的稳定性,也许这些优点会帮助Java给其发明者带来滚滚收入。

来源:互联网络(计算机世界)

科技部:开源软件将纳入“十二五”规划

  12月6日消息,科技部火炬中心软件处处长宋少刚今日透露,基础开源软件将成为“十二五”规划中的重要课题。这是继去年十一五“核高基”重大专项之后,政府再次对基础软件进行扶持。

  去年11月,科技部公布了关于“核心电子器件、高端通用芯片及基础软件产品”(简称“核高基”)科技重大专项申报,操作系统、办公软件和数据库等基础软件第一次被列入国家重大专项,政府通过该项目为企业提供资金支持。包括中科红旗、金山、永中等一批国产软件均已申报该专项。有消息称,中标名单将于明年初公布。

  “现在开源软件更多的还只是一个技术,在市场销售上所占份额还很小。”宋少刚说,希望通过重大专项资金和政策的支持,使开源软件有更多实际应用。

  除了设专项扶持,中国软件行业协会共创软件分会副秘书长杨春燕呼吁关注开源人才培养。国内绝大多数应用基于Windows平台,学校教育也以Windows为主,导致学生对开源认识有限。“我们经常是普及完一批,到下一年又面对一批新的学生,”中科红旗教育学院院长贺唯佳说。

  在学校教育之外,开源软件另一活跃人群开源社区与国外相比也有不少差距。“我们做过调研,有超过40%的人认为,政府应该首先扶持开源社区。”杨春燕认为,社区将是未来开源软件创新最重要的阵地,希望政府部门给与更多关注。

来源:互联网络

Mono这只猴子招惹了谁?

  Mono是一个由Novell公司(先前是Ximian)赞助的项目。该项目的目标是创建一系列符合标准ECMA的.Net 工具,包括C#编译器和共同语言执行平台。与微软的.Net不同,Mono项目不仅可以运行于Windows系统内,还可以运行于Linux、FreeBSD、Unix、Mac OS X和Solaris。

  Mono的C#编译器及其相关工具发布于GNU General Public License (GPL)之下,其运行时库发布于GNU Lesser General Public License (LGPL)之下,其类库发布于MIT License之下。这些均是开源协议因此Mono是一个开源软件。

  微软开发了一个称为共享源码公共语言基础的可用于FreeBSD、Windows、Mac OS X的和.NET实现版本。微软的共享源码协议并不是开源软件协议,且可能对于社区来说也是不足够的。我们还可以见到另外一个.NET实现版本,Portable.NET项目,该项目与Mono项目有着很多相同的目标。

  Mono是与微软.Net相容的工具组合,让原先以微软C#程序设计语言写的应用程序能在多种平台上执行,包括Linux、BSD、Unix、Mac OS X和Solaris平台在内。许多备受欢迎的开源应用程序,像是Note应用程序Tomboy和相片管理程序F-Spot等,都需要Mono才能执行。因此,Debian等Linux发行者曾表示,正考虑在预设安装中纳入Mono。

  GNU计划创始人Richard Stallman呼吁开发者避免使用Mono,因为随着这项开放源代码工具组的使用率日增,可能引来微软的法律行动,其认为使用Mono是个“危险的方向”。

  Stallman写道:“依赖C#是很危险的,所以我们必须劝阻使用它。危险在于,有朝一日,微软或许会打算强迫所有免费的地下版C#工具取得软件专利授权。这是重大的危险,只有笨蛋才会坐视不顾,直到这种事真正发生为止。我们现在就必须采取预防措施,保护自己免于在未来陷入这种危险。”Stallman指出,撰写和使用倚赖C#的应用程序构成“不必要的风险”,因此他呼吁开发者改用不倚赖C#的方式写程序,而应该有系统地设法尽可能减少对免费C#实作的依赖。

  微软对此不做回应,但是本事件的始作俑者Debian开发人员Jo Shields在博客贴文中指出,可能把Mono纳入,因为执行优质应用程序如Tomboy和F-Spotit时,必须用到Mono,而Mono并不构成威胁。

  而同样为我们熟知的Ubuntu,认为反对的理由不充足。Mono的争论最主要的是担心微软的专利威胁,微软至今从未在.Net专利技术上发过难,但它在其它领域进行过专利恐吓,如宣称Linux kernel侵犯了它的多项专利。Ubuntu认为没有理由从默认安装包或软件仓库中移除Mono,理由仅仅是他们从未收到过微软的专利声明,因为Mono早就是Ubuntu多个版本默认安装的一个从属物。

来源:互联网络

Tags: mono, linux, 开源, c#

Debian无视GNU创始人警告 接受Mono

  Debian一直以来都在考虑接受Mono将其加入Debian的默认安装包,这之中当然有不和谐的声音,GNU创始人同时也是GPL作者的Richard Stallman前几天就指责在Debian里安装“Mono”对于开源来说是一个“危险”的举动。不过Debian显然已经把Stallman无视了,Debian正式接受Mono加入Debian的默认安装包。

  Richard Stallman曾在一份声明中称,“微软很有可能计划有一天突然行使其专利权,而所有的开源C#程序都将受到影响。这是一个危险的举动(指的是Mono进入Debian安装包),只有傻瓜才会忽略这个问题。”

  什么是MONO?MONO项目是由Ximian发起的,由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了ADO.NET和ASP.NET。能够使得开发人员在Linux用C#开发程序。

来源:互联网络

Tags: linux, debian, mono, c#, 开源

WAP与PHP - 基础篇

  基础篇

  WAP的发展离不开其WWW的底蕴,毕竟,整个WAP协议的制定参照了WWW的模型,并且尽可能地沿用了Internet的诸多标准和技术,如WML语言脱胎于HTML与XML,WMLscrīpt与传统的脚本语言也很相似。的确,WAP虽然是个新名词,但是它却与传统的国际互联网密不可分地结合着,在结构上如此,在技术上更是如此。

  在WAP协议中提到WAP页面所使用的标记语言为WML,当需要进行较高级的操作,如使用终端机的某些资源时,可以使用WMLscrīpt脚本语言,这两种语言很简单,甚至可以用简陋来形容,特别是它们对数据库的操作几乎无能为力,这种“缺陷”与WAP广阔的商务和应用前景格格不入,但我们并不是无能为力的,由于WAP和WWW的交融,我们仍然可以使用WWW的技术与资源来解决数据库的访问问题,因为毕竟多数数据库仍处于有线网络内。

  目前最流行的网页编程语言和数据库的搭配是什么?相信很多人会说出“PHP”与“MySQL”这两个名字。它们属于WWW或者有线互联网的范畴,由于使用方便与功能强大的特点而美名传播,那么它们能够为WAP服务吗?答案是肯定的。不熟悉WAP或者PHP的人或许有些不解,毕竟在传统意义上PHP提供的是WWW的内容与服务,对于WAP,它们能“兼容”吗?

  PHP粗解

  看了WAP的介绍,大家应该开始逐步理解PHP为何仍能为WAP服务了。PHP与HTML、WML、Javascrīpt、Java都不一样,它是在服务器端运行的,而Javascrīpt、Java等都运行在浏览器端,相对于WAP,WMLscrīpt运行于客户机端,但是,以上的这些语言都可以很容易与PHP结合起来。

  PHP具有很大的灵活性,在WWW中,它可以生成所需要的任何HTML代码,甚至Javascrīpt代码。同样,在WAP中,我们仍然可以利用PHP这种动态、灵活的特点,生成任意的WML代码,这样,PHP自然能够为WAP服务。

  之所以使用PHP来提供WAP服务,除了它灵活的特点外,还由于PHP可以方便的使用数据库。用户可以使用PHP存取Oracle、Sybase、MS SQL、MySQL、dBase、Informix等任何支持ODBC标准的数据库,这点正好迎合了WAP商务的需求。

  在实用中,一般需要建立PHP文件,当用户向服务器发出浏览该PHP文件的请求时,服务器将根据文件中的代码产生相应的HTML或WML内容,并发送给浏览器或WAP终端。

  如想获取关于PHP的信息,可以前往http://www.php.net查看。

  PHP-WML

  PHP的系统平台、工作方式、安装方法,这些都不在本文的讨论范围内,毕竟我们的重点是PHP如何与WAP协作。一般而言,为了能让PHP工作,我们需要带有PHP模块的Web服务器,或者说支持PHP的服务器,Apache是世界上最流行的Web服务器,另外,我们还需要安装PHP软件以及如MySQL这样的数据库,具体内容可以查阅相关书籍或网站。下面我们讨论如何让PHP产生WML代码。

  在WWW中,PHP产生的第一行内容往往是:

PHP代码
  1. content-type: text/html  

  但是,WAP终端是读不懂这样的标题的。WAP终端从服务器下载的单位是Deck,浏览的单位是Card,一般一个Deck就组成一个WML文件。那么,为WAP服务时,PHP文件中往往需要包含如下的代码:

PHP代码
  1. header("Content-type:text/vnd.wap.wml");   
  2. echo "<xml version=\"1.01">\n"  
  3. echo"<! DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"\"http://www.wapforum.org//DTD//wml_1.1.xml\">\n";  

  以上三行代码产生了WML文件(Deck)的文件头,这样WAP终端就可以识别所下载的Deck是否WML格式,并且接着显示余下的Deck内容。

  下面是一个最简单的Deck,它在WAP终端上显示“Hello World”。

XML/HTML代码
  1. <?xml version="1.0" encoding="ISO-8859-1"?>  
  2. <! DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org//DTD//wml_1.1.xml">  
  3. </xml>  
  4. <!--Nokia Parser Info:Phone = Nokia 7110; Height = 90; Width = 130; CurrentDeckSize = 38; MaxDeckSize = 1600; CardsOnEachLine = 5; CardsVerticalGap = 30-->  
  5. </card id="card1" ordered="true" newcontext="false">  
  6. <p align="left">  
  7. Hello World   
  8. </p>  
  9. </card>  
  10. </wml>  

  我们建立的相应的PHP文件如下:

PHP代码
  1. <?php   
  2.   header("Content-type:text/vnd.wap.wml");   
  3.   echo "<?xml version=\"1.0\">\n";   
  4.   echo "<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org//DTD//wml_1.1.xml\">\n";   
  5.   echo "\n";   
  6.   echo "<!--Nokia Parser Info: Phone = Nokia 7110; Height = 90; Width = 130; CurrentDeckSize = 38; MaxDeckSize = 1600; CardsOnEachLine = 5; CardsVerticalGap = 30-->\n";   
  7.   echo "<card id=\"card1\" ōrdered=\"true\" newcontext=\"false\"> ";   
  8.   echo "<p align=\"left\">\n";   
  9.   echo "Hello World";   
  10.   echo "</p>";   
  11.   echo "</card>";   
  12.   echo "</wml>";   
  13.   ?>  

  我们可以将该文件存为index.php3,当WAP终端浏览该网站时,Web服务器会自动根据index.php3的内容产生如上所列的WML内容,并发送给网关进行处理。WAP终端收到该Deck后,将会在显示屏上显示“Hello World”的字样。

  以上是关于PHP在WAP中最简单的应用,它只是简单地产生若干行WML代码,并没有牵扯到数据库的访问。其实,PHP强大的功能可以为WAP提供很丰富的服务,而最值得挖掘的就是其强大的数据库支持,这些将在以后的文章中讨论。

来源:互联网络

程序员如何选择合适的程序语言?

  由于个人专业缘故,我一直在寻找最好的工具。大家都知道,由于在软件多种多样的原因,我们在开发过程中,需要选择各式各样的程序语言进行工作。也正因如此,我经常被软件开发的初学者问及:“究竟应该学习哪种语言?”。但是当我反问他们想要做些什么的时候,他们却变得一脸茫然。原来这些人一直认为,一种最佳语言可以解决所有的问题。每个人都知道,这个世界上并不存在万能的“银弹”,但是,我却可以为您推荐几款在专业领域中更适合的,适用性更广的程序语言。鉴于此,我列出了如下的一个清单:

  • 企业软件开发——JAVA 作为此领域的领头羊,经常被人们使用在企业级应用软件的开发中;
  • Windows开发——C# 可以应用与任何的Windows开发,这当然也包括了对Windows Office套件接口的各类开发;
  • 快速WEB原型和WordPress全系列——PHP 在建立网页所需的快速原型时功不可没。或许它不是一个长期的解决方案,也不是大型开发的最佳选择,但它却是WordPress相关的首选;
  • WEB架构开发——Python 很快地以PHP继承人的身份被大家所接受,当下很多流行的网络应用程序都广泛使用Python。Python语言将会作为一种如谷歌的AppEngine般自然支持服务而继续存在;
  • 一般WEB开发——HTML、CSS 和Javascript 这三种工具相信是在你进行web开发的工具箱中必不可少的。如果您尝试继续符合你所应遵循的标准,那么首先,你需要了解XHTML标准语言;
  • 数据整合——XML和JSON 现在仍是在网络开发和行政开发中最主流的数据整合工具。您可以在XML语言的帮助下,获得更多的关联格式和其他商业格式标准;
  • 数据库——SQL 对绝大多数的应用软件都十分重要。如果你能熟练掌握SQL标准语言,那么,市面上所有的数据库产品,包括当下最流行的Microsoft SQLServer、Oracle、DB2、MySQL。对你来说都不在话下了;
  • 工具箱——每个程序员都应该掌握多种程序语言。因此,脚本工具就促使您成提高工作效率的工具箱的一部分。比如,Cygwin是一个可以安装在Windows 的Unix外壳,我个人十分依赖它。Unix脚本在进行批处理的文件和与文件系统交互时表现的也是非常出色的。再如,Perl是另一种用于Web开发的语言,在处理文件和文字处理时表现不俗。

  我知道我忽略了不少工具和语言,但是这只是做个抛砖引玉。如果你真的希望能拓展思路,并从事人工智能或是LISP编程,或是使用Prolog语言中做一些逻辑编程,再或是您能够勇敢面对ML标准——它总能在软件开发过程中帮你学习新事物和新概念。那就需要自己感悟自己寻找最感兴趣的语言。

来源:互联网络

编程语言岁末盘点 C有望成为08年年度语言

  2008年12月TIOBE编程语言排行榜近日发布,前十名的榜单和11月相比,PHP上升一位,排名第四;C#上升一位,与上月排名第六的Python交换位置;Javascript上升一位,排名第九;Delphi下降两位,排名第十,而前三的位置依然被Java、C、C++占据。作为2008年TIOBE编程语言排行榜的最后一次排名,我们对比之前的排名可以看到,C的表现一直很强势,很可能成为2008的年度语言候选。

  TIOBE还特别提醒我们注意Erlang语言,虽然排名在第29位,但它以并行和多核计算擅长,在提倡云计算和并行计算的今天应当引起我们的密切关注。

Position
Dec 2008
Position
Dec 2007
Delta in Position Programming Language Ratings
Dec 2008
Delta
Dec 2007
Status
1 1 Java 19.367% -0.68%   A
2 2 C 16.163% +2.99%   A
3 5 C++ 10.893% +3.02%   A
4 4 PHP 9.479% +1.09%   A
5 3 (Visual) Basic 9.478% -0.74%   A
6 8 C# 4.643% +0.65%   A
7 6 Python 4.567% -0.13%   A
8 7 Perl 3.603% -0.78%   A
9 10 JavaScript 3.062% +0.33%   A
10 11 Delphi 3.055% +0.38%   A
11 9 Ruby 2.308% -0.78%   A
12 12 D 1.185% -0.45%   A
13 13 PL/SQL 1.140% -0.25%   A
14 14 SAS 0.843% -0.55%   A
15 19 Pascal 0.689% -0.10%   B
16 15 COBOL 0.631% -0.26%   B
17 16 ABAP 0.603% -0.27%   B
18 21 Logo 0.569% -0.18%   B
19 17 Lisp/Scheme 0.515% -0.33%   B
20 20 Lua 0.494% -0.28%   B

 

大小: 66.78 K
尺寸: 400 x 300
浏览: 13 次
点击打开新窗口浏览全图

来源:互联网络

Records:2012