热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

程序员三大世界观如何看待HTML5

作为程序员,面临着多种技术趋势并存以及逐步被替代的现状,比如HTML5将会代替Flash,Android占据移动开发的半壁江山等,那么程序员如何从中选择优势的技术,从而不会在技术大潮中被淘汰成为了重中之重,今天给广...SyntaxHighlighter.all();
作为程序员,面临着多种技术趋势并存以及逐步被替代的现状,比如HTML5将会代替Flash,Android占据移动开发的半壁江山等,那么程序员如何从中选择优势的技术,从而不会在技术大潮中被淘汰成为了重中之重,今天给广大的程序员介绍一些必须要了解的技术以及,如何从整体看待这些技术趋势。
 
  观点一:HTML5是趋势,但不是你的优势
 
  HTML5是趋势,但它绝对不是最佳选择,现阶段它无法给你银弹。那为什么它会如此之热,而火热的背后又会给你带来什么?微软、谷歌、苹果等各大厂商纷纷瞄准HTML5,这将是他们瓜分Web的最佳武器,谁利用的好,谁就会赢得最终的胜利。在这惊心动魄的战役中,谁也不服谁,你“创新”了HTML5这个特性,嗯,很好,我也实现它,实现的比你更好,那朋友们可能会疑问了这不是很好的良性竞争么,HTML5将会越来越繁荣的啊。可是,朋友们不要忘记,HTML5现阶段只是一份草案。尚未定标准。如果这样话,各种各样的所谓的“创新”,就形成了五花八门的API,好吧,这对开发者来说又是一番兼容苦战。也许你还挺喜欢浪费时间写一些本不应该有的兼容代码,而且你还喜欢用大概一半的时间去调试Javascript。在来看中国浏览器用户的生态环境,IE6为什么占的比重那么大?我觉得有几点原因:
 
  1、盗版XP系统太多。
 
  2、网吧基本上全是IE6。
 
  3、国企或大型企业内部都用IE6。
 
  想要干掉IE6,您觉得要多久?在回头看HTML5,手机都要做兼容的,何况应用到PC浏览器?用户对浏览器的版本更替是不敏感的,也别指望在我以上说的三点中找突破口。然后我们看看App Store的盈利模式,然后再想一想,Web App是否也有对应的盈利模式,并且有的开发商已经开始盈利了?如果没有?你是否敢第一个吃螃蟹,并且不怕别人踏着你的尸体走过去?如果想用HTML5跨所有平台,还需要很长一段路要走,首先那几大巨头先达成协议再说。当你从迷雾中,看清楚整个格局后,才会发现Web世界正在被不断被瓜分着,而你所使用的技术(HTML5+CSS3+Javascript)正是他们各自的领地,整个格局被他们打破,重新开始新一轮的麻将中,当然他们打的不是小牌。从另一个层面来看,苹果、谷歌、微软都有自己的软件商店与移动操作系统,而开放的HTML5将会对他们的原有业务造成冲击。这就意味着,HTML5可能只是各大诸侯手中的太子而已。
 
  而且,HTML5标准近几年肯定不会定下来,设计+几万项测试+各大巨头谈判+浏览器厂商实现,这段时间可不太短,那就算这些咱不管他,就当HTML5标准已经订好了,大家可以用他开发了,而且大部分用户也很自觉的装上了您最新版的浏览器,并且您最新版的浏览器支持XP系统,这些先决条件很完美不是么?用户的需求是无止境的,糟糕,HTML5实现不了,软件厂商抓耳挠腮,只好对用户说,您的需求我们满足不了啊,HTML5不能实现。除非,除非标准在次更改,软件厂商无奈的苦笑着。看到这里,您想到什么了?没错,标准一旦制定要更改它简直千难万难,而用户对于标准之上的功能实现可视眼馋的紧,这时候您会怎么抉择?无疑是这些浏览器扩展:插件。所以,放下您的成见,让HTML5和插件友好相处吧,他们未来的作用一定是互补的。
 
  观点二:Flash为什么会占据PC富客户端的大半个江山?
 
  微软擅长生育晚产儿,Silverligh无疑是其中的一个,当各大页游厂商用Flash做出可以赚钱的产品后,Silvelight才被各大厂商熟知,但熟悉未必会用,结果导致其默默无闻的成长,首先我们分析一下,这其中的问题所在。
 
  1、Flash成熟作品多,开源社区活跃。
 
  为啥要放弃现在的深厚底蕴,而用你Silverlight,难道你比他多什么亮点?晚产儿的优势在哪里?
 
  2、Silverlight低调,无人所知。
 
  用Silverlight开发的大部分是企业应用,默默无闻,谁也不知道有哪一个软件是用Silverlight做的,这样就产生了一个莫名其妙现象,做的东西比较多,但就是没有知名度,造成推广障碍。
 
  3、Silverlight相关职位稀少,工作机会稀少
 
  各大软件开发商提供的职位太少,让开发人员总以为Silverlight没有前途。大家可以去大型招聘网站,搜索一下Silverlight关键字,在北京地区、全职、最近一周,反正我只找到20个。在这样一个大环境里,谁还敢去学习Silverlight?这就是短板所在。
 
  观点三:创新工场
 
  我用三个比喻来说明创新工场的创新之处。
 
  其一:鸡和蛋:
 
  用一个不恰当的说法,创新工场相当于鸡,其孵化的公司相当于蛋。鸡负责鸡蛋的孵化以及后勤工作,她有丰富的渠道、资源、名气供蛋使用,蛋的职责就是破壳而出,然后快速成长,子母连环锁就此产生。鸡生蛋、蛋生鸡依然是永恒不变的话题,互利共生可能就是诠释这句话最佳答案。
 
  其二:娱乐公司和明星:
 
  “想发财,先出名”,不知道这是哪位前辈提出的见解,当真是独具眼光。娱乐公司提供舞台,其他就靠你的手段,是被潜还是作秀,还不是随手沾来。这套也可以用创新工场身上,场子把后勤给你打理的井井有条,你的工作就是:不成功,先出名,出完名,在赚钱。先让大众你知道有你这么号人后,在慢慢出产品。娱乐圈都赶潮流,不管这流是寒流还是暖流,游一遍在说,没准就游出位了呢。创新工场孵化的公司也是同理,啥流行,先游一圈在说。哥们这么做,我也可以理解,传统互联网想出头要几年沉淀,无法短期见成果,而且成本也相对就较大。咱还总结了新词:"流行效应",解释:用流行的平台更容易做出流行的产品。
 
  其三:主服务器和子服务器
 
  服务器集群之优势在于可以更好的资源利用与负载均衡,随着这种优势的不断突出,云的概念呼之欲出,那么当这团"集团云"以创新工场为中心服务器,其孵化公司为子服务器全面运作的时候,高负载,高效率,高资源利用率仿佛就不是那么遥不可及了。当创新工场转身为"商战黑客",试问谁能抵挡住其DDOS攻击?没有疑问。
 
  总结一下吧:
 
  母凭子贵、子凭母贵、子母连环锁,一条互利共生的链条就被巧妙地连接起来了,子母公司共享资源、产品、财富、经验等等,假以时日"集团云"就会脱颖而出,不得不赞叹这种模式的巧妙之处。
 
  观点四:太子 —> HTML5
 
  此论点就说一下HTML5带给移动互联网产业的变化。
 
  其一:那么多的平台,移植起来真的很悲剧
 
  粗略算一下:目前移动设备大概有一下几种平台:Symbian、Windows Phone、Android、iOS以及未来的Windows 8等,移植的代价可想而知。反观HTML5,基本上已经可以实现跨平台开发了,而且各大手机浏览器对HTML5的支持也都是"争先恐后",生怕晚了一步,而且开发web app也有一些开源框架非常不错,例如PhoneGap、JQuery Mobile 等等。
 
  其二:趋势、趋势
 
  Windows平台似乎也经历过C/S向B/S转变的过程,当然一些C/S软件是不可替代的,但B/S后的软件优势也非常明显,那么手机开发似乎也正在踏上这条路,版本更新更容易、自由性更高等优势。
 
  其三:被腐蚀的应用商店
 
  移动应用开发者对软件商店的"黑卡"也许不会陌生,当然更加黑的手段刷排名也许还未曝光,但是这块神圣地正逐渐被黑暗吞没。
 
  其四:我想要自由
 
  应用商店越来越高的门槛与审核制度让许多开发商望店兴叹。一些好的应用也许会被讨厌你软件的审核员所淘汰,我想这种情况你可能接受不了,但这就是事实。
 
  观点五:Javascript不是很给力
 
  说实话,我是JS的坚决拥护者,她编程方式灵活多变,写程序简直是一种享受,但是一些问题总需要提出来。
 
  (一):缺少一款强大的IDE
 
  只要JS文件上了2000+行,调试和开发就非常的不方便,加一个空格都要等待一段时间,期待一款可以加快代码解析与智能感知自定义属性和方法的IDE,不知道谁有好的可以推荐给我。我目前用的是VS2010 SP1。
 
  (二):开发效率
 
  用过Javascript都应该知道怎么回事,这是无法回避和必须解决的问题。
 
  (三):运行效率
 
  虽然各大浏览器厂商竞相提升JS引擎解析速度,但JS本身特性和浏览器先天制约,使得解析速度仍显捉襟见肘。
 
  (四):坑爹的兼容性
 
  无尽的兼容性测试与调整仿佛占了总开发量的一半时间,对于我这样有"代码洁癖"的人来说,是绝对不能容忍的。总之,这是件浪费时间和精力的事情。不过,事情都有转机,一些第三方类库,例如JQuery,就可以让我们不去关注兼容性问题。但是,一些场景就不适合用这么大的库,例如HTML5游戏开发。另外,吐槽一下,HTML5在各浏览器表现也不一致,而且支持的也不到位,更加大了工作量,太坑爹了。
 
  (五):源码保护
 
  JS混淆+ 加密+ 压缩= 开源。
 
  任何JS代码,不管如何做手脚,都是表面文章,真正的代码却还是需要在JS引擎中执行的。
 
  而JS引擎执行的代码,永远都是最真实的,而我恰恰就可以得到这些真实的代码。
 
  除非各大浏览器厂商考虑到这个问题,并做出合理的措施,才有可能真正的实现源码保护。
 
  详细请参见:
 
  观点六:程序员一定要有的观念
 
  当我们操作那些API开发软件的时候,是否想过自己曾经用过的语言中,有那么多地方是相似的,for、if......在这些相似的语法中,我们是否发现自己没有了创造力,一切都是以自己掌握多少类,多少个方法而骄傲?浮华下面掩盖的都是本质,而殊不知思想是最重要的。朋友们,放下浮躁的心吧,别在讨论什么技术有前途,什么技术没前途。当我们掌握思想这种原动力的时候,什么武器都是顺手牵来,招招指向要害。HTML5是趋势,是未来的大趋势,Silverlight和Flash是现在的解决方案,也是未来HTML5的有力武器,他们是相辅相成的关系。我昨天开源了一个库,很多朋友下载,我很高兴,希望这些能帮助到你,我也希望你们也可以把自己的库共享出来,因为这不只是简单的分享,而是解放你的思想,让你学会抓住本质,培养思路,丢弃这种API式的编程方法。
 
  观点七:我心目中的android
 
  android是我最为欣赏的移动平台操作系统。其原因无外乎以下几点原因:
 
  1.开源
 
  2.高度的可定制
 
  3.用户群
 
  4.蓬勃发展的移动设备
 
  有没有想过未来的智能手机或移动平板抑或其他设备都是可定制的、个性化的。也许现在没有这个需求,但是未来我相信绝对会如火山喷发般涌现。对于这种需求来说,封闭式系统将无能为力,反观android作为Linux家族的一员,自然承担着开源的重任。未来不再是软硬分家的格局,而是各家都会推出个性化设备与系统,抢占这块如海洋般的市场。这是一条从高端缓慢过渡到低端的过程,也是一条世界化的进步之路。现在针对移动设备开发的应用多是一些按照既有API,进行软件设计,然后借助软件商店,进而销售的一个过程。而我看到的机会却是智能手机与嵌入式设备(如IC卡)或智能手机和其他设备(如汽车)结合后的连锁效应,它不仅可以应用到娱乐,更可以方便你的生活,可以自由畅想一部设备操作几种设备的情景,大有一机在手,天下我有的感觉。当智能手机可以取代公司考勤刷卡,当智能手机可以取代各种遥控器等等。android,一个可以高度扩展的操作系统,无疑会是移动设备兴起的兴奋剂。
 
  但是,远未到兴奋的时候。
 
  1.开放手持设备联盟才是真正控制android的主人
 
  2.版本混乱,至V4.03才算有一个标准规范。但远没有那么多用户更新至最新版本,你依然要做兼容。
 
  观点八:体感系统
 
  遥看《勇者斗恶龙》体感系统的成功,不难想象它对人们的吸引力是多么巨大。体感系统,不仅让玩家感觉到自己融入主角,与游戏有了充分互动,而且还符合了人们“快乐运动,游戏健康”的理念。移动设备领域是非常需要体感系统的,“陀螺仪”和“罗盘”只能满足不影响屏幕感官的需求,而动作幅度过大的游戏,恐怕不能胜任。想象一下,当传感器嵌入手镯或脚镯,玩家可以在各种场合玩刺激的游戏,挥一挥手脚,享受的不仅是快乐,更锻炼了身体,最重要的是这也许会成为潮流。当这么一位“雷兄”在地铁手舞足蹈,满脸陶醉,乘客看到了会好奇么?当这一段视频传到了优酷上,大众看到了会好奇么?好奇是人类的天性,让事实来的更猛烈些吧。移动设备上的体感游戏,联网对战才是特色中的特色。当两位宿敌火车相遇,不似以往的头破血流,他们眼中满是仇恨,却纷纷拿出手机,不理众人的诧异,开始了体感对战,这不是真人PK,却胜似真人PK,游戏可以让敌人变为朋友,一切都在手机上解决,这也算为和谐社会做出的微薄贡献。如果有公司想要试试这个方向,我猜他可能先做广告,在卖设备,其次是软件,最终会归为服务。
 
  观点九:平台与产品
 
  平台和产品的关系,就是母与子的关系。可是现在看来,两者反倒相互制约了,只要开发出产品,就要考虑移植的问题。更甚者,在调研初期,就已经在考虑这个问题了。这样间接造成的结果就是,把精力用错了地方,没有实现专注于产品的初衷。市面上平台太多了,眼花缭乱,目不暇接,我所见的有些公司和程序员,总是在各种平台上纠结,什么专注于某平台,什么专注于某技术等,反而忽略了产品本身。互联网每秒都在改变,平台起起落落,各领几年风骚,其中风景有喜有悲,所以对于平台与技术来说,专注是不合适的。基于这样的背景下,跨平台技术开始受到人们渴望与追捧,unity3d便是其中的佼佼者。拿游戏开发来说,其基本原理与适用性永远不会改变,这是一种通用的业务,各种技术和平台是实现其业务的手段,这一点非常重要。任何人都喜欢掌控全局,喜欢留后手,所以人们希望产品可以跨平台继而掌握大量用户,有时候这种欲望会让你变的失去理智,迷失原本最本质的目标,这是所有IT人士每天都应该自省的!跨平台技术众望所归,它可以使人们不必关心平台与技术,转而去专注产品,产品为王
推荐阅读
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
  • 本指南详细介绍了如何利用华为云对象存储服务构建视频点播(VoD)平台。通过结合开源技术如Ceph、WordPress、PHP和Nginx,用户可以高效地实现数据存储、内容管理和网站搭建。主要内容涵盖华为云对象存储系统的配置步骤、性能优化及安全设置,为开发者提供全面的技术支持。 ... [详细]
  • 为了提升单位内部沟通效率,我们开发了一套飞秋软件与OA系统的消息接口服务系统。该系统能够将OA系统中的审批、通知等信息自动同步至飞秋平台,确保员工在使用飞秋进行日常沟通的同时,也能及时获取OA系统的各类重要信息,从而实现无缝对接,提高工作效率。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • Vim 编辑器功能强大,但其默认的配色方案往往不尽如人意,尤其是注释颜色为蓝色时,对眼睛极为不友好。为了提升编程体验,自定义配色方案显得尤为重要。通过合理调整颜色,不仅可以减轻视觉疲劳,还能显著提高编码效率和兴趣。 ... [详细]
  • 虚函数表指针vptr的功能测试与分析
    类的虚函数调用依赖于虚函数表来实现。虚函数表是由编译器自动生成的一段内存区域,用于存储包含虚函数的类中每个虚函数的入口地址。这些入口地址本质上是指针类型,从而使得动态绑定成为可能。本文对虚函数表指针(vptr)的功能进行了详细的测试与分析,探讨了其在多态性和继承机制中的作用及其性能影响。 ... [详细]
  • 在分析和解决 Keepalived VIP 漂移故障的过程中,我们发现主备节点配置如下:主节点 IP 为 172.16.30.31,备份节点 IP 为 172.16.30.32,虚拟 IP 为 172.16.30.10。故障表现为监控系统显示 Keepalived 主节点状态异常,导致 VIP 漂移到备份节点。通过详细检查配置文件和日志,我们发现主节点上的 Keepalived 进程未能正常运行,最终通过优化配置和重启服务解决了该问题。此外,我们还增加了健康检查机制,以提高系统的稳定性和可靠性。 ... [详细]
  • 在 Mac 上查看隐藏文件和文件夹的详细指南。通过终端命令,您可以轻松地显示或隐藏这些文件。具体步骤如下:输入 `defaults write com.apple.finder AppleShowAllFiles -bool true` 以显示所有隐藏文件,或使用 `defaults write com.apple.finder AppleShowAllFiles -bool false` 以重新隐藏它们。此方法适用于各种版本的 macOS,帮助用户更好地管理和访问系统文件。 ... [详细]
  • 本文详细解析了逻辑运算符“与”(&&)和“或”(||)在编程中的应用。通过具体示例,如 `[dehua@teacher~]$[$(id -u) -eq 0] && echo "You are root" || echo "You must be root"`,展示了如何利用这些运算符进行条件判断和命令执行。此外,文章还探讨了这些运算符在不同编程语言中的实现和最佳实践,帮助读者更好地理解和运用逻辑运算符。 ... [详细]
  • 二分查找算法详解与应用分析:本文深入探讨了二分查找算法的实现细节及其在实际问题中的应用。通过定义 `binary_search` 函数,详细介绍了算法的逻辑流程,包括初始化上下界、循环条件以及中间值的计算方法。此外,还讨论了该算法的时间复杂度和空间复杂度,并提供了多个应用场景示例,帮助读者更好地理解和掌握这一高效查找技术。 ... [详细]
  • 在 Android 开发中,`android:exported` 属性用于控制组件(如 Activity、Service、BroadcastReceiver 和 ContentProvider)是否可以被其他应用组件访问或与其交互。若将此属性设为 `true`,则允许外部应用调用或与之交互;反之,若设为 `false`,则仅限于同一应用内的组件进行访问。这一属性对于确保应用的安全性和隐私保护至关重要。 ... [详细]
  • 在最近的项目中,我们广泛使用了Qt框架的网络库,过程中遇到了一些挑战和问题。本文旨在记录这些经验和解决方案,以便日后参考。鉴于我们的客户端GUI完全基于Qt开发,我们期望利用其强大的网络功能进行Fiddler网络数据包的捕获与分析,以提升开发效率和应用性能。 ... [详细]
  • 在 iOS 开发中,经常会遇到 `@(YES)`、`@[firstViewController]` 以及 `@{@a:@b}` 这样的语法糖。这些简化的写法分别用于初始化布尔值、数组和字典对象,能够显著提高代码的可读性和编写效率。例如,`@(YES)` 可以快速创建一个布尔值对象,`@[firstViewController]` 则用于创建包含单个元素的数组,而 `@{@a:@b}` 则用于创建键值对字典。理解这些语法糖的使用方法,有助于开发者更加高效地进行编码。 ... [详细]
  • Unity3D 中 AsyncOperation 实现异步场景加载及进度显示优化技巧
    在Unity3D中,通过使用`AsyncOperation`可以实现高效的异步场景加载,并结合进度条显示来提升用户体验。本文详细介绍了如何利用`AsyncOperation`进行异步加载,并提供了优化技巧,包括进度条的动态更新和加载过程中的性能优化方法。此外,还探讨了如何处理加载过程中可能出现的异常情况,确保加载过程的稳定性和可靠性。 ... [详细]
  • 在Conda环境中高效配置并安装PyTorch和TensorFlow GPU版的方法如下:首先,创建一个新的Conda环境以避免与基础环境发生冲突,例如使用 `conda create -n pytorch_gpu python=3.7` 命令。接着,激活该环境,确保所有依赖项都正确安装。此外,建议在安装过程中指定CUDA版本,以确保与GPU兼容性。通过这些步骤,可以确保PyTorch和TensorFlow GPU版的顺利安装和运行。 ... [详细]
author-avatar
骷髅怪天堂_821
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有