当你同时有过java和c++两个语言的开发经历后,你会喜欢上java语言开发效率的高效但又深深的被c++语言运行效率的高效所吸引。
java类库的丰富性、通用性、易用性、特别是丰富的文档和搜索引擎上信手拈来的使用示例,使的java开发变的容易;而c++兼容c语言、支持进程、信号、Unixdomainsocket等更贴近操作系统的特性却是java所不具备;
java由于虚拟机的限制,程序运行效率在中大型的的服务器程序上始终无法跟c、c++等编译类语言比拟,特别是广为诟病的gc问题;而c、c++却是业界公认的运行高效的系统开发语言,但c++语言其缺点同时也非常明显:
c++语言过于灵活,掌握门槛高,学习曲线陡,真正做到像java一样高效开发的程序员少之有少;
c++语言缺乏强大的开发类库,stl、boost、poco、qt等等,碎片化严重,而且无论哪一款跟java类库相比都是依然相去甚远,其中std基础类库跟jdk相比更是差了几条街;
...
那有没有在c++的基础上集成java的一些优点,让c++开发的变得更为容易呢?答案肯定有!这里提供一些实现思路:
jdk基础类库设计了优秀的api,编写了丰富的使用文档和搜索引擎上信手拈来的使用示例,我们可以直接参考使用,降低学习曲线和后期程序维护门槛;
jdk有强大的且经过工业级考验的多线程并发库,如ConcurrentHashMap等,而c++却严重缺失一样强大的类库,这个也可以直接参考,多快好省;
java世界有很多优秀的开源项目,如netty、mina、log4j、kafka等等等等,在一些云服务等对性能有严苛追求的企业可以直接参考并转译这些java项目,以最小的研发成本快速获取想要的目标软件成果;
另外,c++世界没有像java一样好使的ide开发工具,所以我们可以先快速java原型开发,而后再快速转译到c++;
为此,笔者针对上述思路做了一些有益的尝试,具体详见cxxJava系列项目。
CxxJDK:类jdk基础类库,实现包括concurrent并发库在内的绝大多数常用类;
CxxLog4j:类log4j日志库,在log4j原功能基础上创新实现不停应用动态刷新日志配置文件;
CxxMina:类Mina2.0网络库,测试结果显示比java版QPS高出很多;
从此,基于CxxJDK,广大java开发者只要学习基础的c++语言知识即可轻松进行c++应用开发,原已掌握c++语言开发的小伙伴也可以轻松体验到类javaapi带来的使用便利,一举多得,enjoyit!
同时,也欢迎大家加入到cxxjava系列项目的开发队伍中来,谢谢大家!
评论