ssh - 为什么 Java 相关的框架总会给人很重的感觉?
天蓬老师
天蓬老师 2017-04-17 13:19:13
[Java讨论组]

如果说是语法的问题,那C++ 也不比它语法简单啊
总看到有人调侃Java,有点不解,希望大大给解惑

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(10)
PHP中文网

因为很多框架本来就重,不是因为语言,而是因为依赖。

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包,
这就不轻量级了。

PHP中文网

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框架看起来更重些

PHP中文网

这个问题很有意思,为什么JAVA的代码都是又丑又长的。
JAVA的火爆是随着面向对象的兴起,而OO讲究的是 单一职责,开闭,接口隔离,依赖导致,里氏替代等OO设计原则,而这些原来的代码实现就是把原本揉在一起的代码进行适度的分离。

这些原则用的好能够带来很多好处,但若是过度OO,就必然导致类的圈复杂度成指数级上升。

令一个原因是大多数框架都比较装13,能简单的实现就非要给你绕几圈。

不仅仅是JAVA,所有面向对象的语言都有这个问题,但是JAVA为了兼顾语言本身的推广,所以讲语法做的更繁琐来吸引一部分低端的开发人员。

具体可见我的一篇博客介绍:编程语言浅谈

PHP中文网

语法可能是一方面~重不重还是要看用的是哪个框架。
SpringMVC用着挺爽的~

迷茫

一个框架往往依赖很多jar包,看起来重也许是为了让你使用起来更加方便吧。

高洛峰

考虑用一下maven管理你的依赖 只引用spring的一部分 貌似新版asm不是必须了?
因为功能太多 太全 所以依赖也多

ringa_lee

框架只是各种思想的简单表现形式,如果你上升到学习框架的思想,你会发现其实没多少,也其实巨多;至于重不重,也因其java语言本身的特点、使用表现形式、组织者==

巴扎黑

因为要考虑很多以及支持的全面,所以肯定会很重的.应该不仅仅是java框架这样.

迷茫

楼上的大侠,你能不能在写文比较下nodejs php mongodb postgresql mysql golang ruby python 这些在未来web和app 开发中的潜力和发展方便度性能等以便我等做正确的选择和判断谢谢。

ringa_lee

JAVAer和PHPer从思想上就不一样,我也经常感叹java里咋就缺少那种特别直观特别实用特别直指人心的库呢

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号