从开始专心学习Java到现在,已经7年了,非常幸运的,在这7年中,除了1年的“半工半读”和1年的.NET项目,累积有5年都是从事的Java为主的应用开发,应该说,Java伴随我走过了从入行到站稳脚跟最关键的几年。从某种意义上讲,我应该感谢Java。
然而,随着时间的推移,接触到的不同的东西越来越多,自己对不同问题的看法和解决问题的思路越来越成熟,Java虽然是全能型的语言,也变得越来越无法满足日常工作和娱乐的需要,在一些特定的场合,也越发别扭,有时我甚至会怀念学生时代的Pascal/Delphi和后来的C/C++。回过头去看自己,从刚入行时的Java fanboi,到现在这样一个pragmatist和purist的结合体,是多么有趣的转变。
在过去的2年多,除了Java和.NET,陆陆续续接触到并有过简单使用经历的编程语言,有bash、PL/SQL、JavaScript、PHP、Perl、Ruby/JRuby、Scala、Python/Jython、Groovy等等,不过都没有系统的学习过,基本就是拿来主义,什么好用用什么,解决手里的问题为主。
也许是工作性质的原因,日常要处理的非技术性任务越来越多,留给具体编程的时间现在一天比一天少,编程带来的乐趣和解决技术问题带来的快感,就显得十分珍贵。所以我下定决心一定要系统的学习1~2种和Java/.NET不同的编程语言。一开始这个选择并不容易,我曾经还
半调侃式的和一个朋友讲:“Python, Ruby, Scala, Groovy, 一个都不能少”,经过一段时间的权衡之后,还是比较自然的作出了最后的选择:Python和Groovy。
Python这个选择其实并不难,留意Python这门语言,其实说起来也有差不多3年了,它完全符合“和Java/.NET不同的编程语言”这个条件,而且应用面很广,也十分成熟,功能也非常强大,加上大量现成的类库,能够胜任很多不同类型的编程任务。基本上这是一个不用任何思想斗争的选择。
Groovy这个选择相对没有那么直接,至少在我真正用Groovy上手做一些东西之前,对它并没有特别的感觉,甚至质疑它存在的价值,因为有Jython和JRuby的选择,为什么一定要Groovy呢?到最近开始接触Groovy,才逐渐了解到它的出身(Groovy的作者受到Python的启发,不过后来Groovy发展的越来越接近Ruby),和它在“兼容”Java代码的前提下为Java语言带来的巨大的表达力提升。对于有Java基础的人而言,Groovy十分容易上手,而且可以帮助我们简化很多繁杂的任务,比如自动构建和自动化测试,而这正是我目前需要处理的。
最后简单说说其他几个落选的原因(除了时间有限之外):
bash - 目前掌握的基本够用,发现不够时,完全可以用Python代替。
PL/SQL - 基本很少使用了,偶尔需要维护,今后深入用的机会也不多。
JavaScript - 对“网页”版的编程语言可能有天生的偏见,尤其是作为Java fanboi,当然对它“盗用”Java这个名字是有意见的。
PHP - 用的机会很少,而且过于quick&dirty,不是我喜欢的风格。
Perl - 虽然功能强大,但是感觉语法有些terse,不是很适应,能处理的任务,基本上Python也可以。
Ruby - 语法和设计理念还是有一些认同,但是对Unicode的支持和部署环境的支持都还不是很让人信服,另外,拿孟岩的话说,Ruby是一门魔幻语言,我不喜欢过于魔幻的东西,而更习惯具体直接的代码。
Scala - 也是一门和Java平台关系密切的语言,不过有些“学院派”,函数式编程固然是亮点,但短期内看不到太多的学习价值。
所以,综上所述,最后再点一下题,08年秋季的学习计划是:系统学习Python和Groovy。
分享到:
相关推荐
为贯彻国家政策,落实《幼儿园工作规章》及《幼儿园指导纲要》的相关要求,确保幼儿园的持续进步与发展,本学期【07-08年秋季学期园务计划】应运而生。 在【指导思想】部分,我们立足于国家政策,强调和谐环境的...
讲座(2020年秋季) 课程材料将按周组织。 每周的材料都包含一个自述文件,解释了整个星期的到期时间以及在哪里可以找到所有课程材料。每周计划讲座将在接下来的一周的星期五添加到GitHub。 星期一般主题链接到材料...
根据给定的信息,我们可以分析出该文档主要涉及的是2008年秋季上海市高级口译考试的第一阶段听力测试部分。接下来将围绕这个主题展开详细的知识点解析。 ### 知识点一:上海市高级口译考试简介 - **背景介绍**:...
【体育部2011年工作计划.doc】的文档是一个关于学生会体育部年度工作规划的范文,主要涉及部门管理、干事培养和活动组织三个方面。以下是详细的知识点解析: 1. **部门例会管理计划**: - 会议制度:体育部采用...
【描述】提到"06 07 08三年春秋单片机三级考试试卷6份,就缺06春季",意味着这个压缩包内包含了2006年秋季、2007年春季和秋季、2008年春季和秋季的共五份考试试卷。遗憾的是,2006年的春季试卷未能收录,这可能会让...
- **学期**:2014年秋季班 - **任课教师**:苗兰 - **所属机构**:奥校 - **课程时间**:08:30 —— 10:00 ### 课程安排及教学内容 #### 第一次课:Unit Hello! - **教学目标**: - 学生能够表达自己最喜欢的玩具...
文件名为"08年秋算法"可能表示这是一份关于2008年秋季学期的算法课程资料。这个压缩包很可能包含了关于上述三种算法的详细讲解、实例分析和练习题,帮助学习者深入理解和掌握这些算法设计技术。通过这些资料,你可以...
在2020年的秋季学期,该部门承担了一系列的工作任务,涵盖了活动策划、新闻报道、技能培训、团队建设等多个方面,旨在提高部门效能,提升服务质量。\n\n1. **社交媒体运营**:在9月上旬,宣传部指导部门成员建立并...
2009年秋季的考试在9月12日至20日期间进行,各科目的考试时间分布在不同日期的上午和下午。例如,9月12日的考试科目是寿险精算实务和非寿险精算数学与实务,而9月13日的考试科目则是综合经济基础和数学基础II。 ...
由于文件名包含"Fall03"和"2008",我们可以推断这是一套2003年秋季至2008年的教学材料,随着时间的推移,内容可能经过了多次更新和优化,如文件名中的"v6"和"已加动画"就表明这些PPT经过了多次版本迭代,并且可能...
新接口的机器学习| 2020年秋季 上海纽约大学的互动媒体艺术(IMA) 链接 W09什么是神经网络?,KNN分类, W08中期项目演示和同行评审 W07中期项目建议书,同行评审和工作室时间 W06 PitchDection(CREPE), W05 ...
10.pdf、11.pdf是秋季的期刊,随着年度技术大会的召开,这些期刊可能总结了大会的热点议题,如开源项目的发展、新的编程语言特性,以及AI在各个行业的落地应用。同时,可能还会关注数据治理、隐私保护和合规性问题。...
压缩包子文件的文件名称列表包括“09春VB真题”、“08春vb真题”和“08秋vb真题”,这些分别代表2009年春季、2008年春季和2008年秋季的VB考试真题集。这些资料对于考生来说是宝贵的复习资源,可以帮助他们了解历年...
2015年获得(CAUC)计算机科学与技术专业“优秀毕业生”学士学位,2014年秋季获得“ CAUC十佳大学生”荣誉称号。考试攻读SCSE,北京航空航天大学在2014年12月作为最高分数的学生,参加了北京航空航天大学在2015年9月...
课程由资深教师王川编写,适用于09级经济管理08数品班,共计120课时,于2009年秋季学期进行。 计算机辅助设计(CAD)是一种利用计算机技术进行产品设计的综合技术,包括计算机辅助建模、结构分析计算和工程数据管理...
平地区的雾主要出现在秋季和冬季,山区的雾多发生在春季和冬季;平地区雾曰10月一次年1月出现频率较高一些,山区雾日的高值出现在3月,低值出现在7月,1-4月山区雾的发生频率明显高于平地区;平地区和低山区最易生成...
为LDS BC IT 240构建此脚本注意:这是示例数据存储库该项目最初是由Jon Jaussi(JJAUSSI)从2019年秋季开始为LDS商学院提供的IT 240建造的。 该项目的目的是为金融机构创建并填充一个简单的数据模型,作为学习的一种...
SoC硕士课程为期1.5年,包括90个学分的课程学习,以及30个学分的毕业论文工作。整个课程被分为四个学期(两个秋季学期HT1、HT2,两个春季学期VT1、VT2),其中包含必修课程和选修课程。此外,学生还需要在指定时间内...