`
lovecontry
  • 浏览: 1037060 次
文章分类
社区版块
存档分类
最新评论

学习JAVA中...

 
阅读更多

学习java已达一周。

促使我打算学习java的原因是今年的一个项目。今年用C++做了一个很简单的分布式non-relational key-value store. 功能仿照Dynamo,但是实现要比它简单得多,很多比如容错等模块都没有加上去。但即便如此,用C++来开发这么一个东西仍然不是一件让人愉快的事。举个例子,为了用event driven架构,一开始打算使用epoll,但是epoll太底层,后来就找到了libevent,因为是网络应用,自然就得用linux下的网络编程,然后C++不支持序列化,所以又找了半天才找到protocolbuf,所以C++的第一个问题就是它的标准库太烂了。十年前就是这个样子,现在还是这个样子,到今天都没有和线程,锁或者序列化有关的内容,在项目中要实现这些就要另外的去找库,这其实是个痛苦的过程,因为不太好确定说到底哪个库最适合。

更郁闷的一个问题则是对内存的维护,搭建一个robust的系统就要求要对所有可能的错误都要有对应的措施,比如一个失败的链接就要去释放它所拥有的所有资源,所以首先要找到它们,然后delete掉。这真不是件轻松的活。

所以,不是说用C++做不了这件事。而是如果要用C++,那么它的要求会很高。首先,它要求整个团队的编程水平都要足够的好(事实上这样的人都不好找)。如果你像google一样有那么多天才的程序员,那么C++当然是首选,但是,如果你找不到这么多优秀的人,那用C++只会适得其反。最后得到的程序一定堆满了bug。其次,要花大量的时间放在找库和学习库上。没办法,谁让它的标准库是那么的陈旧呢。

之所以想换java,是因为找到的很多开源的类似系统都是用java或者erlang做的。erlang当然好,但还是小众了一点,所以就打算试试java。经过一周的学习,我有了两个基本认识,首先,它的语法要比C++简单多了,说明它比C++更容易操控。其次,它的标准库很强大。所以,用java应该会让你的项目开发周期缩短很多,并且bug会更少。当然,效率可能会慢一些。但是,对于大部分的项目,应该都是可忍受的范围内。

一点小感受,等我多学几周,也许会理解得更深刻些。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics