为什么 Java 相关的框架总会给人很重的感觉?
如果说是语法的问题,那C++ 也不比它语法简单啊
总看到有人调侃Java,有点不解,希望大大给解惑
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如果说是语法的问题,那C++ 也不比它语法简单啊
总看到有人调侃Java,有点不解,希望大大给解惑
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(10)
这个问题很有意思,为什么JAVA的代码都是又丑又长的。
JAVA的火爆是随着面向对象的兴起,而OO讲究的是 单一职责,开闭,接口隔离,依赖导致,里氏替代等OO设计原则,而这些原来的代码实现就是把原本揉在一起的代码进行适度的分离。
这些原则用的好能够带来很多好处,但若是过度OO,就必然导致类的圈复杂度成指数级上升。
令一个原因是大多数框架都比较装13,能简单的实现就非要给你绕几圈。
不仅仅是JAVA,所有面向对象的语言都有这个问题,但是JAVA为了兼顾语言本身的推广,所以讲语法做的更繁琐来吸引一部分低端的开发人员。
具体可见我的一篇博客介绍:编程语言浅谈
因为很多框架本来就重,不是因为语言,而是因为依赖。
SSH三大框架,大部分都得依赖上十几个乱七八糟的包。有些包4-5M大。
有些框架本身很简单,偏偏要用到asm.jar等等
有些还要用到commons-lang.jar,有些还不知足,commons-lang不够,还得加上commons-lang3。
=
除去这三大框架来看,
其实jfinal,nutz等等也都很轻量级,只要两个jar包就行了(比如mysql-connector.jar,jfinal.jar)。
每个jar包也都很小,轻量级的框架jfinal甚至不到1M就能实现SSH的功能。
有个不出名的nlf框架甚至不用mysql-connect.jar,自己独创了一个csvdb模式,就实现了数据库。
其实依赖log4j、连接池什么的倒还好了,
用别人多次测试的、性能优越的包倒还无可厚非。
SSH这种框架倒还可以理解,
本来就是抽象出来的东西,
为了应付各种各样的需求自己就得做的非常大,
特别高大全。
但是有些因为一个函数就要引用到一个jar包,
这就不轻量级了。
Java注定有些代码是肯定要多写的,比如交换2个数, C++里可能就是
template
void swap(T &a, T &b){
T tmp = a;
a = b;
b = tmp;
}
Java是没法这么写的吧, python就是a,b = b, a
再比如不支持默认参数的写法。。。
所以在Java里各种模式会出现的非常的多。。。。语法方面的这些问题必然导致Java框架看起来更重些
语法可能是一方面~重不重还是要看用的是哪个框架。
SpringMVC用着挺爽的~
一个框架往往依赖很多jar包,看起来重也许是为了让你使用起来更加方便吧。
考虑用一下maven管理你的依赖 只引用spring的一部分 貌似新版asm不是必须了?
因为功能太多 太全 所以依赖也多
框架只是各种思想的简单表现形式,如果你上升到学习框架的思想,你会发现其实没多少,也其实巨多;至于重不重,也因其java语言本身的特点、使用表现形式、组织者==
因为要考虑很多以及支持的全面,所以肯定会很重的.应该不仅仅是java框架这样.
楼上的大侠,你能不能在写文比较下nodejs php mongodb postgresql mysql golang ruby python 这些在未来web和app 开发中的潜力和发展方便度性能等以便我等做正确的选择和判断谢谢。
JAVAer和PHPer从思想上就不一样,我也经常感叹java里咋就缺少那种特别直观特别实用特别直指人心的库呢