垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
Delphi 是一个基本上被我遗忘的工具, 要不是在使用RapidSql , 我是收不到Embarcadero 公司发出的邀请来參加Delphi XE5的公布会的。
有人可能要问为什么是Embarcadero (名称很拗口)而不是Borland 开Delphi 公布会, 这是由于Borland那几年撑不下去, 把IDE工具打包成立了CodeGear 公司,已经被Embarcadero 收购了。
实际上十多年前以前參加过机械工业出版社主办的一个技术沙龙, 李维先生作为Borland 技术专家, 畅谈了“程序开发之道和未来软件开发趋势”。 形象生动,气氛热烈,我还有幸被抽中为一等奖,奖品似乎好像是程序猿大本营和李维的新书《Dephi 6/Kylix 2 (SOAP/Web Service)程序设计篇》。
当时记得最清楚的一个小细节时,李维问:你们其中有多少人在用O/R Maping, 大家面面相觑,没听说过 ,汗!
后来和一做J2EE的同学聊起来,认为可能是当时去听讲座的人大多是微软阵营(包含我),而微软当时的面向WEB开发的产品,比如ASP, IIS, ADO, COM+等并不十分注重J2EE所推崇的“模式”, “O/R Mapping” , 即使在Java 阵营, Hibernate 这种产品也刚刚出现,所以不知道也不为怪了。
10多年过去了, 李维当时的新书中提到的Kylix ,也就是Delphi 的Linux 版本号, 非常明显没有取得市场的认可,慢慢的就从大家视线中消失了。
不不过Kylix, Borland 公司的非常多明星产品, 也在时代的变革中,编程范型的转化中, 慢慢的褪去光环,用户越来越少,社区越来越小。
Delphi 作为C/S 时代的王者,没有跟上B/S , 互联网时代,非常快被Java 代替了主导地位。 而它的昔日老对手VB 已经傍上了.NET这个大款,衣食无忧。
JBuilder 因为受到IBM支持的Eclipse 的强劲冲击,功能不见得比Eclipse率先多少,在平台,社区的开放度上更是差的非常远, 非常快就难觅踪影。
10年在IT界显得太长了, 改变了非常多东西, 甚至Borland这样一个以前伟大的公司都已经不存在了。
所以当我坐在公布会的现场,突然产生了一种恍惚感。
李维看起来甚至比10年前还年轻一些,他在旁边候场的时候居然没有认出来 :-)
演讲依旧非常精彩,笑点非常多, 仅仅是非常多台湾的术语须要在脑子里略微翻译一下。
现场演示也非常棒,充分展示了XE5的功能,细节我就不啰嗦了, 大家能够在网上看到。 我仅仅记录一下印象深刻的几点:
- 多设备开发是以后的方向,现场统计大部分人都有3台以上的设备,Desktop, Laptop, Pad, Mobile Phone
- Delphi XE5 不会支持Windows Phone, 由于MS在移动市场的占有率是在是太小太小了
- 将来会支持穿戴式设备的开发,Glass, Smart Watch
- Delphi将来会倾向于做Backend as a Service (BAAS) , 把后端的数据和处理能力用REST+JSON 暴露, 让移动端轻松訪问
- 把传统的Delphi应用移植到Mobile非常easy (当然或许李维仅仅是举了一个灰常简单的样例)。
- 在Mobile上开发有非常多不同于传统Delphi开发的Best Practice, 比如List 的数据Load
- FireMonkey 确实强大,把不同的设备和平台做了抽象, 让程序猿能够直接使用FireMonkey 提供的UI来编程,抛开iOS,Android 的UI细节, 但我觉得这是一把双刃剑,抽象确实能方便开发者, 但同一时候会丧失一些”个性“ (比如特殊的UI),为了弥补这些“个性”,可能须要花费巨大的精力
总之界面也是一如既往的熟悉, 操作还是一如既往的方便,速度还是一如既往的快, 最重要的是一份Delphi Code 能编译生成多种平台和设备的Native Code, 充分展现了Delphi在编译领域一直以来的强悍实力, 不知道像IBM, MS,前Sun公司有没有实力做出类似的产品。
可是我始终认为这是Delphi的最后的挣扎。
Delphi 变成了Embarcadero 的产品,那个以前的王者,非常明显在桌面开发中已经没有阵地了, 仅仅好拼命向现在的热点移动开发转移,開始支持iOS, Andriod 开发。
可是现在的Delphi社区确实是非常小了,老一代使用Delphi的程序猿中究竟有多少人这么多年来还在坚守? 有多少人已经转向了Java ,.NET 平台以及PHP,Ruby 等后起之秀?
甚至Mobile ?
Delphi的坚守者有多少人会转向 XE ,学习FireMonkey 用它来开发Mobile应用程序?
新一代的没实用过Delphi的程序猿,大部分都是直接学习XCode, Object-C ,还有Android 开发, 他们其中有多少人会愿意学习Object Pascal 语言, 进而用Delphi来开发?
假设是我,恐怕是不愿意的。
不知道作为Delphi之父,如今身在微软的Anders Hejlsberg, 看到这种Delphi,会做何感想?
据李维讲,C++ Builder 也会在今年推出新版本号,支持iOS和Android应用程序开发, 和Delphi类似,我对这个产品的前景也非常悲观。
另外,小米手机不知道为什么出了问题,照的照片非常模糊,凑合着上个图吧:
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想的更多相关文章
- 垂死或涅槃重生 -- Delphi XE5 我们将宣布感情的回归
Delphi 在很大程度上是一个被遗忘我的工具. 无论是在使用RapidSql , 我还没有收到Embarcadero 本公司发行参与邀请Delphi XE5该公告将. 可能有人会问,为什么Embar ...
- Delphi XE5 支持的Android 版本
Delphi XE5 已经支持Android应用开发. 那XE5支持Android的哪些版本呢?Delphi编译的APP能部署到Gingerbread (2.3.3-2.3.7), Ice Crea ...
- DELPHI XE5 与SQLITE
最近一次使用DELPHI做项目是使用DELPHI2009,为了访问本地数据库方便,使用ACCESS数据库,不需要安装驱动,(WINDOWS自带),但是ACCESS数据库的性能确实很糟糕,通过ADO连接 ...
- Delphi xe5 手机开发经验(新手级别)
Delphi xe5 手机开发经验(新手级别) http://diybbs.zol.com.cn/1/34037_699.html http://www.delphitop.com/html/jiqi ...
- delphi XE5下安卓开发技巧
delphi XE5下安卓开发技巧 一.手机快捷方式显示中文名称 project->options->Version Info-label(改成需要显示的中文名即可),但是需要安装到安卓手 ...
- Delphi XE5 常见问题解答
Delphi XE5 常见问题解答 有关于新即时试用的问题吗?请看看 RAD Studio 即时试用常见问答. 常见问题 什么是 Delphi? Embarcadero? Delphi? XE5 是易 ...
- DELPHI XE5开发WEB服务器及安卓手机客户端
Xe5开发web服务端和手机客户端 ------------------------------------- Delphi xe5作为最新开发利器,就类似如当年的DELPHI,功能强大,快发速度快, ...
- Delphi XE5 如何与其他版本共存
如果你想使用Delphi诸如XE4.XE3.XE2.XE之类的版本跟Delphi XE5共存的话,在cglm.ini中简单修改两行就行啦. 找到Delphi XE5的安装根目录C:\Program F ...
- Delphi XE5 与其他版本共存
来源于http://www.board4allcz.eu 作者是gateway 如果你想使用Delphi诸如XE4.XE3.XE2.XE之类的版本跟Delphi XE5共存的话,在cglm.ini中简 ...
随机推荐
- use-a, has-a, is-a和实现关系
use-a关系 如果类A与类B是 use-a 关系,则A具有类型为B.B&.const B&.B*.const B*的一个成员,或者是可以轻易以上述对象之一 返回一个B的函数.于是A可 ...
- 使用phpexecel类库导出数据
公司要求做一个功能:将数据库里的数据导出,并生成excel文件. 于是百度了下,集大牛之所长,加上自己之所长,做出了整理,并分享. 目标:使用phpexcel类库生成xml文件,并下载. 步骤一:下载 ...
- JS单击隐藏界面元素
1. JS代码 <script type="text/javascript" language="javascript"> // function ...
- 如何关闭win7的ps/2兼容鼠标(触屏版)
买了一个新电脑联想ThinkPad E555 可是刚拿到是个win10 的系统,用习惯了win7,win0不太好用, 然后帮我刷成了win7,之后一切都好,性能也是让我很满意,但是却关不掉触控板,于是 ...
- Android开发之bindService()侦听service内部状态
在Android开发之bindService()通信的基础上,实现bindService()方法侦听service内部状态. 实现侦听service内部状态,使用的是回调机制 1.首先实现一个接口 p ...
- 用U盘安装系统2
这种方式USB启动盘制作成功之后是可以往里面存放任何资料的,我喜欢用这一种 首先,在网站上下载一个你想要装的系统 (百度一下优优系统,大地系统,深度技术,MSDN我告诉你,都可以,看你自己喜欢了) 例 ...
- Java 数组在内存中的结构
Java中的数组存储两类事物: 原始值(int,char,...),或者引用(对象指针). 当一个对象通过 new 创建,那么将在堆内存中分配一段空间,并且返回其引用(指针). 对于数组,也是同样的方 ...
- [LOJ 1008] Fibsieve`s Fantabulous Birthday
A - Fibsieve`s Fantabulous Birthday Time Limit:500MS Memory Limit:32768KB 64bit IO Format:%l ...
- Xfire soapHeader的WebService权限控制forjava
研究webservice有一段时间了,觉得用soapHeader来控制访问比较简单,特贴出代码以供大家分享 1.我们可以做一个很简单的ws测试,服务端的接口代码如下: package ws; //Ge ...
- POJ 3254 (状态压缩DP)
思路:状态压缩dp,用二进制位的1表示放了,0表示没有放.设dp[i][j],表示第i行状态为j时,前i行的方案数,状态转移方程就是 dp[i][j] += dp[i-1][k],j与k这两个状态不冲 ...