像Java一样开发C++ cxxJava

EPL
C/C++
跨平台
2016-12-12
红薯

cxxJava -- 像Java一样开发C++

当你同时有过java和c++两个语言的开发经历后,你会喜欢上java语言开发效率的高效但又深深的被c++语言运行效率的高效所吸引。

java类库的丰富性、通用性、易用性、特别是丰富的文档和搜索引擎上信手拈来的使用示例,使的java开发变的容易;而c++兼容c语言、支持进程、信号、Unix domain socket等更贴近操作系统的特性却是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++语言开发的小伙伴也可以轻松体验到类java api带来的使用便利,一举多得,enjoy it!

同时,也欢迎大家加入到cxxjava系列项目的开发队伍中来,谢谢大家!

的码云指数为
超过 的项目
加载中

评论(11)

loyal
loyal
为何你这么diao? #cxxJava#
cxxjava
cxxjava 软件作者
对了,还有强大的"和欣开源操作系统"Elastos也是仿java(android)开发的哦! -- 随便给他们打个广告,国人的操作系统,赞一个。 #cxxJava#
cxxjava
cxxjava 软件作者
从事10多年的c/c++/java开发,总体个人感觉java和c++相互形成两个阵营,多数情况下习惯迥异,且彼此相互鄙视;实际上java的设计很多东西是在c++基础上进行的优化和改良,融合双方的长处,虚心接纳既能发挥语言的最大价值。具我所知,类似或接近的开发习惯在腾讯taf项目和知名的activemq-cpp-library库都有大量使用,只是大家没注意到而已。 #cxxJava#
张伟斌卍
张伟斌卍
感觉很666,不过编程习惯和编程规范不是那么好改变的,还是得有大神站台推广,或者易用性高到java入门者都能玩转,才可能容易流行。习惯这东西看不见摸不着,但却很可怕。 #cxxJava#
cxxjava
cxxjava 软件作者
cxxJava下还有一个完全自研的协程库CxxFiber,支持其他协程所不支持的好几个特性,特别是epoll & kqueu的hook支持。 #cxxJava#
progmboy
progmboy
赞。。感觉还是jdk的一些库用处更大一些,期待开源 #cxxJava#
cxxjava
cxxjava 软件作者
除CxxJDK部分待开源外,其他cxxJava项目已全部开源。 #cxxJava#
progmboy
progmboy
只是一个Lib? #cxxJava#
cxxjava
cxxjava 软件作者
另外,cxxjava并不是真的就成java,它还是c++,只不过是吸收了java的一些优秀的现成资源,为c++带来一些有益的帮助,何乐而不为呢?! #cxxJava#
cxxjava
cxxjava 软件作者
c++和java各有其擅长的地方,融合java优秀的api设计和完善的文档,降低java开发者和c++入门者快速高效的开发c++系统程序是cxxjava项目的初衷。 #cxxJava#

暂无资讯

暂无问答

暂无博客

返回顶部
顶部