【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 ...
随机推荐
- [LeetCode] Self Dividing Numbers 自整除数字
A self-dividing number is a number that is divisible by every digit it contains. For example, 128 is ...
- Python模块 - time,datetime,calendar
time模块 localtime 当前时间的struct_time形式 >>> time.localtime() time.struct_time(tm_year=2015, tm_ ...
- tooltip.css-2.0文档
tooltip.css 纯CSS鼠标提示工具. v. 2.0.0 更新日期:2018.4.12 预览DEMO. 安装: 只需在页面中引入"tooltip.css"或" ...
- [JSOI2015]非诚勿扰
Description [故事背景] JYY赶上了互联网创业的大潮,为非常勿扰开发了最新的手机App实现单身 大龄青年之间的“速配”.然而随着用户数量的增长,JYY发现现有速配的算法似 乎很难满足大家 ...
- [NOI2005]寿司晚宴
题目描述 为了庆祝NOI的成功开幕,主办方为大家准备了一场寿司晚宴.小G和小W作为参加NOI的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了n−1种不同的寿司,编号1,2,3,⋯,n-1 ...
- [BZOJ]4644: 经典傻逼题
某天我觉得一切题目都是那么不可做,于是百度了一下"傻逼题"-- 题目大意:对于图中的任意一个点集(可以为空或者全集),所有恰好有一个端点在这个点集中的边组成的集合被称为割.一个割的 ...
- HDU2425:Hiking Trip(BFS+优先队列)
给出一个地图,地图有四种路面,经过每种路面花费的时间不同,问从起点到终点所花费的最少时间是多少 把到各个点的花费存入队列中,然后弹出,即可得到最小 Sample Input 4 6 1 2 10 T. ...
- 棋盘 chess
Description 给出一张 n × n 的棋盘,格子有黑有白.现在要在棋盘上放棋子,要求: • 黑格子上不能有棋子 • 每行每列至多只有一枚棋子 你的任务是求出有多少种合法的摆放方案.答案模 1 ...
- centos7安装nginx必要环境
安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行 , 在安装nginx前还要安装以下的环境包 一. gcc 安装安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc ...
- Spring学习笔记5——注解方式AOP
第一步:注解配置业务类 使用@Component("Pservice")注解ProductService 类 package com.spring.service; import ...