【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 ...
随机推荐
- drupal 8 建立我的相册
一.先建一个存图片的内容类型 1.创建内容类型 点击[结构]>[内容类型]>[+add content type] 点击[保存和管理字段] 2.添加字段 点击[+添加字段] 点击[保存并继 ...
- [LeetCode] Remove Comments 移除注释
Given a C++ program, remove comments from it. The program source is an array where source[i] is the ...
- [LeetCode] Range Addition II 范围相加之二
Given an m * n matrix M initialized with all 0's and several update operations. Operations are repre ...
- [LeetCode] Brick Wall 砖头墙壁
There is a brick wall in front of you. The wall is rectangular and has several rows of bricks. The b ...
- 用AJAX实现上传图片或者文件的方法
大家好,我是小C,最近在项目中用到ajax上传图片文件,本篇我们就说说ajax上传文件. 我们平时用到的AJAX,大部分都是传几个参数就可以了.简单说就是传几个字符串. $.ajax({ url: u ...
- 实验吧_密码忘记了(vim编辑器+代码审计)&天网管理系统(php弱比较+反序列化)
密码忘记了 一开始尝试了各种注入发现都无效,在网页源码中找到了admin 的地址,输入地址栏发现并没有什么有用的信息,随便输个邮箱,网页返回了一个地址 ./step2.php?email=youmai ...
- [SDOI 2011]消耗战
Description 题库链接 给你一棵 \(n\) 个节点根节点为 \(1\) 的有根树,有边权. \(m\) 次询问,每次给出 \(k_i\) 个关键点.询问切断一些边,使这些点到根节点不连通, ...
- bzoj3561DZY Loves Math VI
3561: DZY Loves Math VI Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 503 Solved: 333[Submit][Sta ...
- TOJ 数据结构实验--静态顺序栈
描述 创建一个顺序栈(静态),栈大小为5.能够完成栈的初始化.入栈.出栈.获取栈顶元素.销毁栈等操作. 顺序栈类型定义如下: typedef struct { int data[Max]; i ...
- python2.7入门---运算符
已经分享过变量类型的基本概念了,接下来就研究了一下运算符的基础知识.接下来我们就来看一下内容.举个简单的例子 4 +5 = 9 .例子中,4 和 5 被称为操作数,"+" ...