virusdefender
V2EX  ›  Java

有没有人觉得 java 和 java 的 web 框架超级难用?

  •  1
     
  •   virusdefender ·
    virusdefender · May 5, 2015 · 38447 views
    This topic created in 4205 days ago, the information mentioned may be changed or developed.

    以前是Python开发者,熟悉Python的web框架。但是现在学校必须学Java web开发,就是用的jsp,struts2之类的框架,发现超级难用啊,很多东西没法接受。而且还有一坨坨的xml,各种get和set方法,各种乱七八糟的类型转换,让人痛不欲生。觉得python,php和js都比java都清晰的多。

    Supplement 1  ·  May 8, 2015
    十分感谢大家的回复。可能是Python用多了,有一些思维定势,更重要的是思维。我也会去尝试一下java play和spring。再次感谢~
    182 replies  •  2017-05-04 12:57:50 +08:00
    1  2  
    ❮ ❯
    learnshare
    learnshare
    May 5, 2015❤️3
    1
    学校里学的东西好像是很古老,甚至几乎淘汰的技术了,你就别嫌弃它了

    我们老师说 “JS 不要用,都不能调试”,幸亏我只用 JavaScript,JS 一定很可怕
    coolcfan
    coolcfan
    May 5, 2015❤️1
    2
    学校教的东西都有一定年头了……
    zenliver
    zenliver
    May 5, 2015❤️1
    3
    学校教得东西大部分是古董, 当时记得我老师还不知道python这门语言, 只能呵呵了, 不过底层理论都是相同的, 学学还是有收获的
    yakczh
    yakczh
    May 5, 2015❤️1
    4
    jfinal
    Troevil
    Troevil
    May 5, 2015❤️1
    5
    不是难用,是没理解,如果理解了框架的思路用起来还是比较顺手的。Python php 你觉得清晰,那是因为他们适合快速开发,容易上手。
    hdshen
    hdshen
    May 5, 2015❤️1
    6
    可以试试 scala 和 play框架
    moe3000
    moe3000
    May 5, 2015❤️1
    7
    感觉脚本语言都比编译型语言容易上手
    liangdi
    liangdi
    May 5, 2015❤️1
    8
    如果要从事java的 web相关的开发工作, spring 这套东西一定要理解,使用起来很方便, spring mvc 使用起来也很简单,没有什么累赘,play框架也好用
    以上是 java的 基于jvm的 也有很多优秀的东西 如楼上说的 scala 以及 grails
    phx13ye
    phx13ye
    May 5, 2015❤️2
    9
    何止难用,简直反生产力
    Java烂不是被喷好久了吗

    不说了, 我还是多写几条CURD吧
    RangerWolf
    RangerWolf
    May 5, 2015❤️1
    10
    Jfinal +1
    没有SSH那一坨恶心的XML
    incompatible
    incompatible
    May 5, 2015
    11
    难用与否取决于你用它做什么量级的东西
    如果是万八千用户,除了CRUD没什么其它业务逻辑的系统,那我也不乐意用Java
    whatisnew
    whatisnew
    May 5, 2015❤️1
    12
    一切皆对象
    cfan8
    cfan8
    May 5, 2015❤️3
    13
    Java那套东西也是很多年总结下来的,虽然上手比较复杂但是基本上能满足各种奇奇怪怪的Web开发需求了。我觉得Java Web最精华的就是那套怎么对每一层的业务逻辑做抽丝剥茧的分离的思想,让开发复杂逻辑的Web应用能够实现较好的复用,出现问题的时候也比较好找原因。
    clino
    clino
    May 5, 2015❤️1
    14
    用框架肯定要了解框架相关的很多概念,只不过java框架里的概念会很多
    我以前跟java程序员聊貌似就知道框架里的这些概念,聊一些http之类的基础概念反而基本上不清楚
    spacewander
    spacewander
    May 5, 2015❤️1
    15
    学校某些课程总是倾向于把简单的问题复杂化……毕竟写个大作业什么的根本用不上SSH嘛。
    推荐看下Play或者Spring MVC,不需要写(生成)一大堆样板代码。
    phx13ye
    phx13ye
    May 5, 2015❤️1
    16
    springMVC+1
    servlet 3.0 + annotation基本可以无xml,就是改个配置要重新编译一遍比较麻烦
    davepkxxx
    davepkxxx
    May 5, 2015❤️1
    17
    Java的应用场景很大一块是企业级应用开发,但是各行各业的企业之间的需求并没有什么共通性,所以Java的框架难免会往大而全的方向发展,Spring就是最好的例子。

    在企业软件的开发中,开发速度肯定不失第一位,安全可扩展运行效率可定会被更多的考虑,以这样的准则开发出来的框架肯定会很复杂,当然对新上手的人就显得很不友好。比如Java的持久层框架(也就是数据存取)都以自己的方式做了强大而可靠事务处理,还有除了Java以外,很难看到其他语言有如此丰富的数据库连接池组件,连简单的日志处理开发者也不满足JDK自带的开发了一堆。

    所以喷Java烂是没有什么意义的,根据自己的需要来挑选适合的框架进行开发就可以了,想快速开发的话搭建简单的WEB系统,可以选择lay加DBUtils这种简单的组合。
    holulu
    holulu
    May 5, 2015❤️1
    18
    Java 本来就超级难用。只是企业应用不愿转,也转不起,也促使了 Java 对企业的支持越来越好。其实很多不是很需要工业强度的应用用别的语言来写更好,省时间,珍惜生命!
    leyle
    leyle
    May 5, 2015❤️1
    19
    我觉得也要看学校吧,我最近帮很多国内学生做的作业题,都是 python 的。
    scalala
    scalala
    May 5, 2015❤️1
    20
    一是SSH之类的东西确实复杂,我也只在6,7年前用过
    二是因为你写的应用太简单了, 杀鸡用牛刀.

    我一直就用简单封装过的 guice+servlet+freemarker
    yuan93
    yuan93
    May 5, 2015❤️1
    21
    struts现在看来就是一坨,spring mvc好点,现在帮人做项目就是JFinal
    ZnZt
    ZnZt
    May 5, 2015❤️1
    22
    学校只教 C/C++ 和 Java, 结果毕业还是去写了python和前端
    chocotan
    chocotan
    May 5, 2015❤️1
    23
    我校老师当初还教struts1...
    感觉楼主并不是吐槽java框架而是java语言本身....
    java就这样...
    88250
    88250
    May 5, 2015❤️1
    24
    这和语言关系不大,Java 也有很多好用、快速的框架。实在不爽就自己写一个吧。
    iamppz
    iamppz
    May 5, 2015❤️1
    25
    楼主快来加入c#阵营!
    ibolee
    ibolee
    May 5, 2015 via iPhone❤️1
    26
    java本身就不适合web 霸王硬上弓当然不爽了
    iyangyuan
    iyangyuan
    May 5, 2015 via iPhone❤️4
    27
    论工程的可维护性和稳定性,迄今为止还没有能超越java的。java繁琐,那是为了安全和可读性,所谓灵活的语言,是要付出代价的。
    还有,xml和java有什么关系?
    msg7086
    msg7086
    May 5, 2015
    28
    @iyangyuan 都繁琐了还怎么读,根本让人没了读的兴致……
    whimsySun
    whimsySun
    May 5, 2015❤️1
    29
    Java也有比较新的web框架,我知道的有play。学校教的比较过时了
    jun4rui
    jun4rui
    May 5, 2015❤️1
    30
    @iyangyuan 其实稳定和可维护的代价也不低,甚至做中小项目代价会非常大。

    其实我见过很多菜鸟写的Java,或者对开发没深入理解的所谓10年经验的Java开发者,他们的代码基本没有维护价值,连注释、缩进都做不好,基本人走了,那一套东西也完蛋了。

    相反,Python这种目标是一种事情只有一种写法的语言,维护性反而比Java要高。可惜就是效率差了,不过同样理念的Go倒是不错哦,但是刚出来,还不是Java的对手。
    jo32
    jo32
    May 5, 2015 via iPhone
    31
    举个例子,属性私有 get set 方法是为了封装,这到你项目大了,要重构的时候你就会大大感谢这特性
    virusdefender
    virusdefender
    OP
    May 5, 2015
    32
    @learnshare 哈哈哈 老师真可爱~
    virusdefender
    virusdefender
    OP
    May 5, 2015
    33
    @yakczh 谢谢~我有空看看这个框架
    virusdefender
    virusdefender
    OP
    May 5, 2015
    34
    @cfan8 谢谢~我好好想想
    virusdefender
    virusdefender
    OP
    May 5, 2015
    35
    @davepkxxx 谢谢~
    anoymoux
    anoymoux
    May 5, 2015
    36
    java的框架就像shi一样。。
    virusdefender
    virusdefender
    OP
    May 5, 2015
    37
    @iamppz linux大法好~
    bk201
    bk201
    May 5, 2015❤️4
    38
    说真的,从一个才认识java的口中说出java怎么怎么的,总觉得哪里不对。不管java怎么样。
    ostholz
    ostholz
    May 5, 2015
    39
    riaqn
    riaqn
    May 5, 2015
    40
    怎么这么多喷的...
    抛开java语言本身不说, 他的企业生态系统还是很好的. spring, spring mvc, hibernate都是很方便的东西.
    billlee
    billlee
    May 5, 2015
    41
    @riaqn 用过 SQLAlchemy 和 Hibernate ORM, 对比起来 hibernate 真是非常难用,文档质量也很差。
    PixelCode
    PixelCode
    May 5, 2015
    42
    play framework 1.x 用过最好用的框架
    qleroooo
    qleroooo
    May 5, 2015
    43
    ssh 太重了,一般小项目的话根本用不着,小项目也不需要java写,一定要用java的话其它很多框架都挺好的。jfinal什么的。
    cozybz
    cozybz
    May 5, 2015
    44
    个人感觉,Java 语法上 比 JS,Python 要舒服 。
    繁琐的是 企业级 Java 框架。乡间小路上开跑车,体验自然不好的。
    另外,Java 只是 JDK API 使用起来繁琐些,要多写几行代码 。但这些都可以通过使用外部 API 解决的。

    比如,读个普通文件,使用 Google 的 Guava ,一行搞定
    List<String> strs = Files.readLines(new File("~/test"), Charsets.UTF_8);
    saximoer
    saximoer
    May 5, 2015
    45
    @cozybz JDK1.7 以后的NIO FILES 读文件也就一行
    liujiantao
    liujiantao
    May 5, 2015 via Android
    46
    初中老师建议我学B语言做算法题 /手动斜眼 反正我是没答应
    twl007
    twl007
    May 6, 2015 via iPhone
    47
    我觉得Linux不好用什么都要自己装 看人家windows多好 多么友好
    tencoldays
    tencoldays
    May 6, 2015
    48
    如果用PHP或Python写过,然后用Java开发Web,感受太惨了... 主要还不是语言问题。一个PHP文件搞定的事情,Java要用一坨坨框架来做...... JVM是很优秀的平台,但Java社区完全陷入自己的抽象之中去了,用抽象去解决因为抽象产生的问题,就是不肯干脆点把活干了。
    xiaogui
    xiaogui
    May 6, 2015
    49
    楼主查下 spring mvc
    steven_yue
    steven_yue
    May 6, 2015
    50
    当一个东西加入了很多标准、模式之后,就缺乏美感了。
    ljbha007
    ljbha007
    May 6, 2015
    51
    觉得Java用的挺顺手
    就是多余的字符多了些 Web框架的话 个人感觉SpringMVC灵活性方面不输任何动态语言框架 而且可以做到0 xml
    handleyan
    handleyan
    May 6, 2015 via Android❤️4
    52
    当你从一种语言转到另一种语言时,最好保持空杯心态。任何一种语言、架构、甚至是算法实现往往都有其实践背景,脱离了这个背景来讨论,很多方案都是糟糕的。存在这么多年,应用如此广泛的东西,必有其价值。否定很容易,去芜存精,去肯定一样东西是比较难的
    jun4rui
    jun4rui
    May 6, 2015
    53
    来点干货看看,Java上有啥其它Web主要开发语言基本都有的ralis style框架吗?
    linux40
    linux40
    May 6, 2015 via Android
    54
    学校的gcc版本是4.4。。。
    Septembers
    Septembers
    May 6, 2015 via Android
    55
    @linux40 意味着只能玩C99?C11没戏啊。。。。
    iamshaynez
    iamshaynez
    May 6, 2015
    56
    Java的臃肿和繁复带来的优点的就是代码可读性好,容易维护,出错率更低。对于企业应用,寿命经年持久,Java仍然是相当好的选择。因为任何一个Java开发都容易看懂前人的代码,如果换别的……
    jun4rui
    jun4rui
    May 6, 2015
    57
    @iamshaynez Java绝对没有更容易看懂代码的优势,甚至比Python这种可读性要更差一点。
    freshlhy
    freshlhy
    May 6, 2015
    58
    @leyle 帮人做作业? 这事赚钱哈?
    smithtel
    smithtel
    May 6, 2015❤️1
    59
    感觉一群喷java的人都在扯着java 10年前的技术来喷。你懂最近几年出的restful架构?与之搭配的jersey框架? 说一门语言不是之前,请了解这门语言的最新情况,不要再拿10年前的MVC架构与struts框架说事。java 8的特性你用了多少?
    chocotan
    chocotan
    May 6, 2015
    60
    @smithtel 其实很多连java7的特性都不清楚.....
    jun4rui
    jun4rui
    May 6, 2015
    61
    @smithtel restful又不是Java特有的,就像JSON,啥语言都支持啊。

    顺便问一下,现在有没有类似ralis style的框架?
    smithtel
    smithtel
    May 6, 2015
    62
    @jun4rui 架构 服务本就是程序员用来区分语言执行层次的顺序,思想肯定是趋向大一统。另外你所说的是ruby on ralis?
    baozijun
    baozijun
    May 6, 2015❤️1
    63
    @jun4rui 上面提到好几遍了,JFinal,还有 Spring boot(推荐).利用注解,不算model的话,后端十几行代码一个CRUD的blog.
    baozijun
    baozijun
    May 6, 2015
    64
    看到楼上的带"绝对"的评论,手一抖,block了.....
    jun4rui
    jun4rui
    May 6, 2015
    65
    @baozijun
    @smithtel

    似乎两位没接触过ralis风格的框架?
    shoumu
    shoumu
    May 6, 2015
    66
    spring mvc我觉得还是挺好用的啊
    hcymk2
    hcymk2
    May 6, 2015
    67
    jun4rui
    jun4rui
    May 6, 2015
    68
    @hcymk2 Groovy 语言的……,为了个框架,还要学Groovy,我还不如直接用jRuby跑Ralis或者Jython跑Django啊,这个也太……
    whatisnew
    whatisnew
    May 6, 2015
    69
    @smithtel java 有什么比较牛b的 rest 框架吗?

    jersey 的效率:
    [INFO] Total time: 34.527s
    [INFO] Final Memory: 17M/490M

    太弱了,返回一行字符串而已,用了那么长时间+那么多内存!
    liangzuobin
    liangzuobin
    May 6, 2015
    70
    @jun4rui 不知道play算吗?
    liangzuobin
    liangzuobin
    May 6, 2015
    71
    我是靠Java混饭吃的,是Java让我体会到了OO的奇妙,也写过C#,但是当时只能跑在win上很蛋疼;我也是Java黑,但更多的好像是黑Java背后的sun和oracle,Java本来可以更好
    smithtel
    smithtel
    May 6, 2015
    72
    @whatisnew 真是我见过的最有趣的一个人。
    chaucerling
    chaucerling
    May 6, 2015
    73
    jfinal 算半个 rails like,连 migrate 都没有
    Kabie
    Kabie
    May 6, 2015
    74
    Play是很不错的。。。不过java版的api还是略显冗余。。。

    scala版很赞……只是得再学一门语言。。。
    jun4rui
    jun4rui
    May 6, 2015
    75
    @liangzuobin Play基本是唯一的了。其它ruby、python、php之类的基本都有一把给你选,而且社区上,play要弱太多了,哎。

    有些很好的理念还是要社区才能做大,Java虽然在重量级企业级上确实有长期积累,但是快速开发上真的要输其它几个不少。
    phx13ye
    phx13ye
    May 6, 2015
    76
    讨论java, 把各种jvm上的东西(scala,groovy)拿出来真的好吗?
    whatisnew
    whatisnew
    May 6, 2015
    77
    @smithtel 正常来说 rest 返回一行字符串,耗时10s~15s 内存占用 ~30kb,是可以接受的。
    reeco
    reeco
    May 6, 2015
    78
    http://jodd.org/
    用起来爽得一逼
    chocotan
    chocotan
    May 6, 2015
    80
    @whatisnew
    你这不是maven吗....
    cloudhunter
    cloudhunter
    May 6, 2015
    81
    这贴子快成为“Java是最好的语言”的争论了
    mlhorizon
    mlhorizon
    May 6, 2015❤️1
    82
    做了一个曾经写了十多年的老码农(C,C++,Delphi,ASP,PHP,Java,Python,C#项目至少都做过一个以上),表达一下自己的看法。
    要评价一个语言,请至少先弄懂两个问题:它是什么?为什么?
    如果想要提高自己,再问一个:为什么人家想到了,我没想到?
    chshouyu
    chshouyu
    May 6, 2015
    83
    学校教的东西确实是老古董了,那些老师也没兴趣研究新东西
    我做毕业设计的时候用了spring,评审的老师居然不知道这玩意
    然后我解释一通,最后居然问我是不是我自己做的
    真想乎他们一脸
    moonou
    moonou
    May 6, 2015
    84
    v2ex真是一个奇妙的地方,为何看到掐架会有一种莫名的兴奋= =
    baozijun
    baozijun
    May 6, 2015❤️1
    85
    @jun4rui 毕业设计是HTML5实时视频通讯加消息推送,后端使用rails做的.把ruby学完,有JAVA EE基础的rails一周就上手了,确实是蛮简洁的.现在在做云计算,云这一方面只有java有完整成熟的解决方案。内网的论坛使用flask撸的,rails感觉还是太繁重,所以后面也很少用了.....这些都只是 框架 而已,而且原理实现大同小异,只是对特定的流程进行封装了而已。掌握 web处理流程 后再学真是分分钟的事。没什么值得吹嘘和炫耀的。

    PS.学Java 框架的一个好处是可以几乎无缝的转到Android开发,毕竟多线程优化处理,事件分发机制,ORM,HTTP通信,内存、缓存和JVM优化都是大同小异。我已经在转了.....
    zhipeng
    zhipeng
    May 6, 2015
    86
    开发效率和运行效率是矛盾的。。。RoR、Django,Node虽然开发效率比Java高,但由于动态语言特性,运行效率比不上Java的各类框架。。
    kingname
    kingname
    May 6, 2015
    87
    作为Java一生黑,Java这种屎一样的语言早就应该被淘汰了。
    chaucerling
    chaucerling
    May 6, 2015
    88
    @zhipeng 不是框架的问题,是语言问题
    不同语言写出来的框架大都是扬长避短,RoR各种元编程黑魔法,Node异步高并发,java的框架主要是依靠丰富的库和强大的jvm提高运行效率和构架复杂度。
    zhipeng
    zhipeng
    May 6, 2015
    89
    @chaucerling 我说的是语言问题。运行效率的决定因素主要在语言上。Ruby、Python、JavaScript这样的动态类型语言,基准运行效率肯定比不上静态类型的Java。
    (说到Java的语言特性,不是一直被C#吊打吗。。听哪个人说Java 8才约等于C# 2.0)
    shuiniushushu
    shuiniushushu
    May 6, 2015❤️1
    90
    我也有这种感觉,但是这不是java的错,而是用java的人思维定势——动不动企业应用,一扯到这个,各种设计模式、五花八门的分层、眼花缭乱的架构思想、各种先进的学院思想就要派上用场。不抽象、无接口、没有自动化就不能编程似的。最后东西越来越庞大,体系越来越复杂,要熟悉和精通他们,学习成本非常的高,不亚于学习java的成本。框架出个小小错误,往往要花个半天才能找出原因。
    如果丢弃这些一坨坨的教条,你完全可以像写php和nodejs那样来写java,兼有php等语言的动态性,也有能享受静态语言带来规范性,这在写稍微复杂一点的应用时比较有好处,特别在多人参加的情况下。
    我还是比较喜欢java的
    jun4rui
    jun4rui
    May 6, 2015
    91
    @baozijun 关键还是看干什么,Ralis繁重也有更轻量级的框架可以选,Ralis本身就是一个囊括了很多方面的框架。其实玩会一样,玩别的类似概念都是分分钟,不过你要是去玩别的概念的,那就惨了,这点你要先明白。Java我玩了十几年了,湖南省第一个Sun赞助的java实验室就是我们公司,我们这里估计和淘宝差不多同时期用J2EE之类的,电信级的。我们当时做Java的团队里面,有写过国内当时唯一JSP开源论坛的,效果和Discuz差不多,他也会PHP之类的,我们会其它语言的,没一个说Java开发Web好话的,这玩意开发Web前台效率就是低。

    所以就Web这一块来说,楼主@virusdefender 说的java难用是没啥问题的,真的,开发效率很低,对Web这种频繁改变、更新的东西,Java做Web前端不够别的几种语言好。
    jun4rui
    jun4rui
    May 6, 2015
    92
    @shuiniushushu Java确实可以像PHP、nodejs那样写,问题是它的主流还是传统的老一套办法,这些相对来说就是些java里面的旁门左道了。PHP、nodejs、Python、Ruby之类是专门干这个的,开发方法也是围绕这些来,已经有非常多的工具和方案去解决各种问题了。

    Java就算可以用来轻松的写Web,但是工具、框架、库上的差距之大,就像拿个手枪和别人的航母编队比,也许等Java将来在Web上不是SSH这套玩意为主了,才会改变吧。
    lincanbin
    lincanbin
    May 6, 2015
    93
    习惯了Python写其他都觉得难,所以我觉得入门最好不要用Python。
    Gonster
    Gonster
    May 6, 2015 via iPhone
    94
    @whatisnew 吐槽无力。。。
    看不出来是不是高级黑😂
    djyde
    djyde
    May 6, 2015
    95
    我告诉你,我们学校的老师和学生,对 JavaScript 的印象还停留在弹窗特效,几乎没人知道 node.js 的存在
    chaucerling
    chaucerling
    May 6, 2015
    96
    @zhipeng
    php和java这种没多少特性到处招人黑的反而在编程开发里成了香饽饽,人人都能学,公司都喜欢招。设计好的语言,概念先进、开发效率高的框架,学习门槛高,学的人少,公司也难招人。所到底就是市场供给关系不平衡,大多数公司要的是码农而不是程序员,久而久之,大部人都往码农的方向去了。
    chaucerling
    chaucerling
    May 6, 2015
    97
    @lincanbin
    习惯里高生产力的世界,当然不想再用锄头。
    phx13ye
    phx13ye
    May 6, 2015
    98
    Now that we have seen the content of the project, let's try to test-run it. To do this, we need to invoke following command on the command line:
    mvn clean test

    This will compile the project and run the project unit tests. We should see a similar output that informs about a successful build once the build is finished:
    Results :

    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 34.527s
    [INFO] Finished at: Sun May 26 19:26:24 CEST 2013
    [INFO] Final Memory: 17M/490M
    [INFO] ------------------------------------------------------------------------

    =====
    帮楼上的哥哥贴全, 这个真没黑对地方
    spacewander
    spacewander
    May 6, 2015
    99
    现在开始流行“Java是最好的语言”么?PHP在哪里?
    shuiniushushu
    shuiniushushu
    May 6, 2015
    100
    @jun4rui 我也是厌恶java传统框架(ssh...),并且享受过nodejs和php的动态性。我正在开发java web的小框架,包括mvc,jdbc的封装,都是非常小和轻量的。其实都开发完成了,自己也在用,就是官网还在做,做好和大家分享。不求改变什么,只想做一些尝试,并且出发点服务自己,用java快速开发小应用
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2152 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 146ms · UTC 04:19 · PVG 12:19 · LAX 20:19 · JFK 23:19
    ♥ Do have faith in what you're doing.