Blog

Java and Ruby

我的日常工作之一是统计非法走私信息,在国家级的行业信息系统上有一些数据,但不是我们要的格式。我们要把每个走私案件统计下来,包括走私的产品、数量、案值金额、还有涉及到哪个下属单位等信息。过去用眼镜跟手再加上 Excel 来整理实在是太麻烦了,于是我就写了一个 Ruby 程序,把导出的数据整理成我们需要的格式,输出成 HTML,大大减轻了工作量。

不过这个程序是在我的 MacBook Pro 上写的,而我们的信息系统只有内网能访问。每次使用的时候我只好导出数据,转换成 CSV 格式,然后用电子邮件发给自己,从 MacBook Pro 上收取邮件,转换编码,转换成 UNIX 格式,然后再运行程序,把生成的 HTML 页面再通过电子邮件来发回去,再进行整理。这样一来很繁琐,而来这样只有我自己才能干这件事,我休假时也没法委托别人去做。

所以前几天我考虑了一些比较适合在 Windows 上使用的编程语言,把我的 Ruby 程序移植过去。最后我选择了 Java,因为它比较容易在 Windows 上安装,而且我之前上学时还做过两个 GUI 程序,我也希望把程序做的友好一点,可以推荐给同事用。

我没有进行别的什么设计,只是简单粗暴的对照着之前的 Ruby 程序,逐行翻译过来。断断续续的调试了两天,目前弄了个大差不差的版本,只是这次我的输入输出直接是 Excel 文件,省下了转换格式、编码的步骤。我对于操作 Excel 还没有了解多少,所以还有些合并单元格、修改字体、宽度高度什么的需要加上,其它数据方面今天总算是调试成功了。

谈谈使用 Java 的感想。

我在 2010 年的时候写过一篇文章,记载着是一次用 Java 语言完成作业的经验,我那时候花了一夜完成了那一周的作业,实现了几个数据结构并且排序。那时候我用 Java 还比较熟练,有些东西不需要像现在一样查文档,结果没怎么调试居然成功了,让我对 Java 好感大增。不过这次跟 Ruby 比起来,Java 就显得太繁琐了。

过去我对 Java 的一些比较“高级”的用法不大了解,因此一些迭代器呀什么的也用的不多。这次因为在 Ruby 程序里用了很多迭代,感觉比自己苦兮兮的写数组来说方便太多了,因此就用了不少的迭代,结果每次新建一个迭代器实例,再用 hasNext()next() 函数来遍历,比起 Ruby 的一个 each 就搞定实在是繁琐。这样的另一个后果就是多了一堆代码,我在 NetBeans 里面看的眼都乱了,调试的时候直接找不到头绪。最终搞定了我是觉得没问题的,但是搞定前费的功夫实在是大。所以近年来,要完成一些任务,我绝对是偏爱脚本语言。

写到这里,不禁感叹,如果我们公司用的是 UNIX 操作系统该有多好,可惜绝对不现实呀。

过去对这方面的感触不深,但通过对比就觉得 UNIX 的编程方式实在是太方便太先进了,比起 Windows 的模模糊糊好了不知道多少倍。可惜 Ruby 在 Windows 下执行不大方便,做成可执行的 EXE 就更不容易了,简直没有头绪。

这个程序目前的输出方面,还有一些功能需要添加,不过这个 Excel API 弄得我写起来还是不顺心,也许有一个更好的用法,反正正常的写程序绝不应该是像现在这样遇到输出就一个单元格一个单元格的写,运算逻辑和输出逻辑都没有分开,之后要加点功能,处理其他格式的数据,肯定远比我过去用 Ruby 输出 HTML 时来的困难。

1 comment

  1. 过度管理2 | 我的生活 - pingback on 2015/07/26/ 22:34
    沙发

Leave a Reply