【Java二十周年】Delphi转行java的一些小感触
本文纯属一届小码农对java使用过程的体验感触
目录:
初遇java编程语言
刚上大学的时候,完全是个电脑盲。刚入学学的计算机普及知识就是visual basic语言,可视化的组件编程语言,这个语言跟我第一份工作Delphi语言的是一个性质的,都是拖放控件,实现可视化开发,跟现在用着的extjs 中architect相似,想要显示什么,直接拖放这个组件就可以的。接触java都是大三的事情了,那时候开专业课(管理信息系统专业),就补充了java编程语言这么课程。那时候教科书红宝书便是下面这样的:
记得当初学visual basic是多么简单的事情,后来接触到java开始学面向对象,当时觉得理解都有难度,现在想来,当初毕竟是经历少,做的东西也就是写个hello word,没有经历多大的项目锤炼,当然就没有体验到面向对象这样的好处。
与java的擦肩
这红宝书伴随的时间不超过一年,接着就到了找工作的时间,怀着对编程的热爱,专心找了一份编程的工作,于是,从青岛跑到了帝都北京,当初对编程还只是懵懂的热爱,对语言的认知也仅仅停留在cmd窗口与简单form之上,甚至那时候,eclipse的使用都是新鲜的要命。面试的时候表现有点发挥超常,第一个面试就通过了,还给了比期望值高的薪水,然后就这样放弃了java,选择了delphi。在这之间,还使用java+lucene做过一个爬虫项目,当时还是算不错的项目。
深入java
在帝都做开发,对项目管理工具,对编程思想,对敏捷开发可以说是练就了一身功夫,苦着就是一直维护一个产品,十几个开发围着一个大产品修修补补,总觉得不是长久之计,于是于去年年中决定离开。其实挺喜欢刚入组的导师说过的一句话,面对一个不理想的环境,你有三个选择,要么你适应它,要么你改变它,要么你离开它。
我选择了离开delphi,我选择进入之前还有些基础的java.我开始尝试项目来替代产品。于是,在这半年将近的时间,我也慢慢体验着两个语言之间的不同魅力。
1.跨平台性:
delphi做桌面产品,算是登峰造极的,它也支持面向对象的开发,它使用的pascal语言也良好的支持接口开发,支持com+支持组件扩展,但是它在跨平台上却略逊一筹,我们的新版本要在win8上良好运行,那都要来回修修补补好多次,更不用说linux mac等等了。而对于java来说,绝不会有这个困扰。
2.开源支持:
对于delphi来说,你想要找某些支持,那是费劲的很,相比之下,java下有无比多得开源项目,如果我们偷懒,那我们之间拿来主义,放入自己项目便可,如果我们勤奋,我们多看人家源码,多学人家设计,我就可以不断提升自己提升项目,而delphi来说,有点一潭死水的赶脚。
3.web的支撑
我们部署java的web项目,可以选择的服务器也多得很,对于互联网如此发达的当今社会,如果像delphi那样,只是对桌面产品精湛,那无疑丧失了最大的网络市场。
一种语言的存在,当然不能只从这几点来评判,但是从一个底层使用者来说,我觉得要做一个桌面产品,delphi是一个不错的选择,会节省你N多时间,像java来开发一个界面优美的程序,恐怕得比delphi要多花几倍的时间,但是如果你要进军互联网,那么java的优势不言而喻。
Java 20周年,不管是否有人厌恶它,它都已经给我们从业者以及无数企业创造了巨大的利润,让我们一起祝福它吧。
【Java二十周年】Delphi转行java的一些小感触的更多相关文章
- 聊聊高并发(二十五)解析java.util.concurrent各个组件(七) 理解Semaphore
前几篇分析了一下AQS的原理和实现.这篇拿Semaphore信号量做样例看看AQS实际是怎样使用的. Semaphore表示了一种能够同一时候有多个线程进入临界区的同步器,它维护了一个状态表示可用的票 ...
- 聊聊高并发(二十九)解析java.util.concurrent各个组件(十一) 再看看ReentrantReadWriteLock可重入读-写锁
上一篇聊聊高并发(二十八)解析java.util.concurrent各个组件(十) 理解ReentrantReadWriteLock可重入读-写锁 讲了可重入读写锁的基本情况和基本的方法,显示了怎样 ...
- 聊聊高并发(二十八)解析java.util.concurrent各个组件(十) 理解ReentrantReadWriteLock可重入读-写锁
这篇讲讲ReentrantReadWriteLock可重入读写锁,它不仅是读写锁的实现,而且支持可重入性. 聊聊高并发(十五)实现一个简单的读-写锁(共享-排他锁) 这篇讲了怎样模拟一个读写锁. 可重 ...
- 【Java学习笔记之二十四】对Java多态性的一点理解
面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...
- 聊聊高并发(二十四)解析java.util.concurrent各个组件(六) 深入理解AQS(四)
近期总体过了下AQS的结构.也在网上看了一些讲AQS的文章,大部分的文章都是泛泛而谈.又一次看了下AQS的代码,把一些新的要点拿出来说一说. AQS是一个管程.提供了一个主要的同步器的能力,包括了一个 ...
- 学JAVA第十六 天,JAVA多态
今天老师讲了多态的使用 多态是同一个行为具有多个不同表现形式或形态的能力. 多态的优点: 1. 消除类型之间的耦合关系 2. 可替换性 3. 可扩充性 4. 接口性 5. 灵活性 6. 简化性 我个 ...
- 微软Visual Studio二十周年:VS2017于3月7日发布
二十年前的今天,微软正式发布Visual Studio 97.如今二十年已经过去,微软宣布全新的Visual Studio 2017即将在美国当地时间3月7日正式发布. VS97是Visual Stu ...
- 【Java学习笔记之二十六】深入理解Java匿名内部类
在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...
- JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题
JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序猿杜鹏程的博客:http://blog ...
随机推荐
- C语言中关于运算符优先级别
在一一个表达式中可能有多个不同的运算符结合起来,由于运算符的优先级别不一样,可能会形成得到的结果不同. 优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级. 对于相同的优先级, ...
- dropzone.js使用实践
官网地址:http://www.dropzonejs.com/ 一,它是什么: DropzoneJS is an open source library that provides drag'n'dr ...
- 深入探索.NET框架内部了解CLR如何创建运行时对象
原文地址:http://msdn.microsoft.com/en-us/magazine/cc163791.aspx 原文发布日期: 9/19/2005 原文已经被 Microsoft 删除了,收集 ...
- 百度URL 部分参数
[Baidu URL的部分参数] 1.Baidu Form表单如下: 2.部分参数解析 wd 查询关键字,就是你要搜索的内容. bs 上一次搜索的词或者内容: rn 搜索结果页每页显示的数目,默认 ...
- [HNOI 2006]鬼谷子的钱袋
Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一 ...
- [HNOI2011]卡农
题目描述 众所周知卡农是一种复调音乐的写作技法,小余在听卡农音乐时灵感大发,发明了一种新的音乐谱写规则.他将声音分成 n 个音阶,并将音乐分成若干个片段.音乐的每个片段都是由 1 到 n 个音阶构成的 ...
- bzoj 3174: [Tjoi2013]拯救小矮人
Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人, ...
- js删除数组中的元素delete和splice的区别
例如有一个数组是 :var textArr = ['a','b','c','d']; 这时我想删除这个数组中的b元素: 方法一:delete 删除数组 delete textArr[1] 结果为: ...
- Go 实现 NumberFormat 函数
[转] http://www.syyong.com/Go/Go-implements-the-NumberFormat-algorithm.html NumberFormat - 以千位分隔符方式格式 ...
- Hibernate 自动生产表
hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. 今天就来演示一下Hibernate最初级的 ...