java与C++的应用场景不同,究竟选择谁,应该由开发者的兴趣方向来决定。
你选择Java,意味着以后的业务方向就是偏后台服务开发,如果你非得说我用java也可以写界面,对不起,别人不会。不管是从项目还是产品的角度来讲,都会选择成熟、主流的技术路线,最主要的是好招人,万一你哪天拍拍屁股不干了,没人接的了手,而且javascript、vue等已经很成熟。选择Java也有不少好处,前端毕竟只是做个可视化,没有后台服务的支撑,前端也只是花拳绣腿。像数据发布服务、二三维分析服务、数管(数据中台)、业务中台等,都需要后台框架的支撑,简单的docker,复杂的比如k8s等,相当有挑战性,也比较有含金量。
选择C++,在十几年前,GIS上古时期H5还未流行开来,C++在GIS开发里,是非常流行的,也主要是做桌面端软件开发,常用的界面框架,比如MFC、Qt、gtk等,都比较流行,C++既可以做底层内核,又可以做上层应用,要效率有效率,总结下来,就是简洁、优雅。现在就讲究GIS平台能够跨平台运行,既可以在X86又可以运行在ARM,也可以在国产平台龙芯、飞腾等平台上运行,C++的优势就在于此,但是开发效率比较低,最主要的原因,还是在于第三方框架少,很多都需要自己造轮子,大大影响开发进度。对了学些C++,还有一个好处,是可以偏向图形学,与三维GIS结合,使用UE5等游戏引擎做开发,这一块优势大大的。
总结下来,看个人的兴趣爱好,再做决定。