为了账号安全,请及时绑定邮箱和手机立即绑定

编程语言吐槽之Java与C

标签:
Java C

包含各种偏见和武断,请谨慎阅读。

为什么在学校学习的C,拿到企业生产中不起作用?

而为什么企业级的程序员,依然对C/C++无法掌控?在算法各方面不够精湛?

根本原因还是应用场景的不同。企业级的开发,主要是为了能够快速出活,能够快速将业务需求转换为可执行的代码,立马部署上线开始工作。这就需要Java这样的重型机枪。在这里,重点是能够快速地做出一个“转换”,把复杂的business model快速转换为代码的“表达能力”。

而C/C++所解决的问题,其实更多的是底层,也就是为上面的“快速构建”和“客户需求的转换能力”,提供底层库的支持。所以,它的视角和范围,根本不是去关心如何表述客户的业务需求,它也不擅长去表述业务需求关系。

它真正擅长的是表述计算机的运转关系!所以在这个层级,你的算法各方面就开始有了用武之地。因为在这个层次上,你的优化、算法的效率,都和计算机如何运转息息相关。例如:你的代码如何被加载进内存,在CPU内又是如何调用相应的指令集,内存分配上又会经历哪些过程,这一个个的环节都关乎你想要去追求的效率。

另一方面,高层语言和底层语言又是相互结合的:上层的Java这些确实善于描述business model,但是,没有底层库的支撑,它的表述无异于一纸空文。

而下层的库,如果没有上层的语法糖和high level的抽象,就不得不一直局限在计算机无尽的运转细节里,永远无法跳出来,为经济生产、为解放生产力、发展生产力的现实用途服务。

所以,回到最初那个问题,为什么你学校学习的C那些在企业级生产中不管用?因为它的适用范围是为了解决计算机底层的问题。而企业级应用的高级程序员,他擅长的其实是快速准确地把现实的客户诉求,转换为可工作的代码,并能够掌控大规模的代码量,这是他的核心竞争力。但他其实少有关注底层的实现,少有去关心如何配合计算机的机械性地运作方式。

基于此,很多人对语言的评价是极其不中肯的。

有的人说,Java真是简单,傻瓜式的语言,没啥意思。可这就完全搞错了重点,简单易学,正是能够快速表达客户需求的一个大前提。而精髓呢?精髓是看你如何运用这个工具,一方面能够精准地表述出实际的业务模型,另一方面是看你能够用这个工具,能够如何巧妙地组织各个模块,使得它们能够具备扩展性、可重用性,从而能够应对快速变化需求的挑战。

另一部分人说,C太不安全了、没法做好的异常、没法做精准的泛型、更无法做漂亮的继承。可是,C的应用范围就是底层啊。这里提到的一堆面向对象的理念,其实是现实世界的运作思维模式,但这个不是计算机机械式的思考方式。机械式的思考模式,就是汇编、就是语句跳转、就是内存分配。在这个体系里,其重点就是为higher level制造工具,为你设想的那些面向对象的思维概念制造工具。

这就好比是,你拿到的是一块原木,你非得去抱怨,它怎么不长成圆盘形,为什么不长成方形,为什么不长成螺丝帽的形状,这都不能用好吧?!这TM不废话么!你的工作不就是对这些天然的原木做工,把它们制作成可以供其它生产环节使用的工具么。

原文出处

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消