
以前是Python开发者,熟悉Python的web框架。但是现在学校必须学Java web开发,就是用的jsp,struts2之类的框架,发现超级难用啊,很多东西没法接受。而且还有一坨坨的xml,各种get和set方法,各种乱七八糟的类型转换,让人痛不欲生。觉得python,php和js都比java都清晰的多。
1 learnshare 2015-05-05 15:49:04 +08:00 学校里学的东西好像是很古老,甚至几乎淘汰的技术了,你就别嫌弃它了 我们老师说 “JS 不要用,都不能调试”,幸亏我只用 Javascript,JS 一定很可怕 |
2 coolcfan 2015-05-05 15:54:32 +08:00 学校教的东西都有一定年头了…… |
3 zenliver 2015-05-05 15:57:25 +08:00 学校教得东西大部分是古董, 当时记得我老师还不知道python这门语言, 只能呵呵了, 不过底层理论都是相同的, 学学还是有收获的 |
4 yakczh 2015-05-05 16:00:07 +08:00 jfinal |
5 Troevil 2015-05-05 16:03:26 +08:00 不是难用,是没理解,如果理解了框架的思路用起来还是比较顺手的。Python php 你觉得清晰,那是因为他们适合快速开发,容易上手。 |
6 hdshen 2015-05-05 16:03:33 +08:00 可以试试 scala 和 play框架 |
7 moe3000 2015-05-05 16:05:33 +08:00 感觉脚本语言都比编译型语言容易上手 |
8 liangdi 2015-05-05 16:08:36 +08:00 如果要从事java的 web相关的开发工作, spring 这套东西一定要理解,使用起来很方便, spring mvc 使用起来也很简单,没有什么累赘,play框架也好用 以上是 java的 基于jvm的 也有很多优秀的东西 如楼上说的 scala 以及 grails |
9 phx13ye 2015-05-05 16:49:13 +08:00 何止难用,简直反生产力 Java烂不是被喷好久了吗 不说了, 我还是多写几条CURD吧 |
10 RangerWolf 2015-05-05 16:52:11 +08:00 Jfinal +1 没有SSH那一坨恶心的XML |
11 incompatible 2015-05-05 16:54:41 +08:00 难用与否取决于你用它做什么量级的东西 如果是万八千用户,除了CRUD没什么其它业务逻辑的系统,那我也不乐意用Java |
12 一切皆对象 |
13 cfan8 2015-05-05 16:58:17 +08:00 Java那套东西也是很多年总结下来的,虽然上手比较复杂但是基本上能满足各种奇奇怪怪的Web开发需求了。我觉得Java Web最精华的就是那套怎么对每一层的业务逻辑做抽丝剥茧的分离的思想,让开发复杂逻辑的Web应用能够实现较好的复用,出现问题的时候也比较好找原因。 |
14 clino 2015-05-05 16:58:20 +08:00 用框架肯定要了解框架相关的很多概念,只不过java框架里的概念会很多 我以前跟java程序员聊貌似就知道框架里的这些概念,聊一些http之类的基础概念反而基本上不清楚 |
15 spacewander 2015-05-05 17:00:30 +08:00 学校某些课程总是倾向于把简单的问题复杂化……毕竟写个大作业什么的根本用不上SSH嘛。 推荐看下Play或者Spring MVC,不需要写(生成)一大堆样板代码。 |
16 phx13ye 2015-05-05 17:04:49 +08:00 springMVC+1 servlet 3.0 + annotation基本可以无xml,就是改个配置要重新编译一遍比较麻烦 |
17 davepkxxx 2015-05-05 17:08:07 +08:00 Java的应用场景很大一块是企业级应用开发,但是各行各业的企业之间的需求并没有什么共通性,所以Java的框架难免会往大而全的方向发展,Spring就是最好的例子。 在企业软件的开发中,开发速度肯定不失第一位,安全可扩展运行效率可定会被更多的考虑,以这样的准则开发出来的框架肯定会很复杂,当然对新上手的人就显得很不友好。比如Java的持久层框架(也就是数据存取)都以自己的方式做了强大而可靠事务处理,还有除了Java以外,很难看到其他语言有如此丰富的数据库连接池组件,连简单的日志处理开发者也不满足JDK自带的开发了一堆。 所以喷Java烂是没有什么意义的,根据自己的需要来挑选适合的框架进行开发就可以了,想快速开发的话搭建简单的WEB系统,可以选择lay加DBUtils这种简单的组合。 |
18 holulu 2015-05-05 17:09:43 +08:00 Java 本来就超级难用。只是企业应用不愿转,也转不起,促使了 Java 对企业的支持越来越好。其实很多不是很需要工业强度的应用用别的语言来写更好,省时间,珍惜生命! |
19 leyle 2015-05-05 17:10:35 +08:00 我觉得也要看学校吧,我最近帮很多国内学生做的作业题,都是 python 的。 |
20 scalala 2015-05-05 17:13:55 +08:00 一是SSH之类的东西确实复杂,我也只在6,7年前用过 二是因为你写的应用太简单了, 杀鸡用牛刀. 我一直就用简单封装过的 guice+servlet+freemarker |
21 liuzhen 2015-05-05 17:18:56 +08:00 struts现在看来就是一坨,spring mvc好点,现在帮人做项目就是JFinal |
22 ZnZt 2015-05-05 17:26:44 +08:00 学校只教 C/C++ 和 Java, 结果毕业还是去写了python和前端 |
23 chocotan 2015-05-05 17:30:48 +08:00 我校老师当初还教struts1... 感觉楼主并不是吐槽java框架而是java语言本身.... java就这样... |
24 88250 2015-05-05 17:51:42 +08:00 这和语言关系不大,Java 也有很多好用、快速的框架。实在不爽就自己写一个吧。 |
25 iamppz 015-05-05 17:56:16 +08:00 楼主快来加入c#阵营! |
26 ibolee 2015-05-05 19:28:53 +08:00 via iPhone java本身就不适合web 霸王硬上弓当然不爽了 |
27 iyangyuan 2015-05-05 19:30:30 +08:00 via iPhone 论工程的可维护性和稳定性,迄今为止还没有能超越java的。java繁琐,那是为了安全和可读性,所谓灵活的语言,是要付出代价的。 还有,xml和java有什么关系? |
29 whimsySun 2015-05-05 19:46:53 +08:00 Java也有比较新的web框架,我知道的有play。学校教的比较过时了 |
30 jun4rui 2015-05-05 19:46:53 +08:00 @iyangyuan 其实稳定和可维护的代价也不低,甚至做中小项目代价会非常大。 其实我见过很多菜鸟写的Java,或者对开发没深入理解的所谓10年经验的Java开发者,他们的代码基本没有维护价值,连注释、缩进都做不好,基本人走了,那一套东西也完蛋了。 相反,Python这种目标是一种事情只有一种写法的语言,维护性反而比Java要高。可惜就是效率差了,不过同样理念的Go倒是不错哦,但是刚出来,还不是Java的对手。 |
31 jo32 2015-05-05 19:50:11 +08:00 via iPhone 举个例子,属性私有 get set 方法是为了封装,这到你项目大了,要重构的时候你就会大大感谢这特性 |
32 virusdefender OP @learnshare 哈哈哈 老师真可爱~ |
33 virusdefender OP @yakczh 谢谢~我有空看看这个框架 |
34 virusdefender OP @cfan8 谢谢~我好好想想 |
35 virusdefender OP @davepkxxx 谢谢~ |
36 anoymoux 2015-05-05 19:54:27 +08:00 java的框架就像shi一样。。 |
37 virusdefender OP @iamppz linux大法好~ |
38 bk201 2015-05-05 19:56:17 +08:00 说真的,从一个才认识java的口中说出java怎么怎么的,总觉得哪里不对。不管java怎么样。 |
40 riaqn 2015-05-05 20:36:57 +08:00 怎么这么多喷的... 抛开java语言本身不说, 他的企业生态系统还是很好的. spring, spring mvc, hibernate都是很方便的东西. |
41 billlee 2015-05-05 20:56:53 +08:00 @riaqn 用过 SQLAlchemy 和 Hibernate ORM, 对比起来 hibernate 真是非常难用,文档质量也很差。 |
42 PixelCode 2015-05-05 21:10:02 +08:00 play framework 1.x 用过最好用的框架 |
43 qleroooo 2015-05-05 21:21:17 +08:00 ssh 太重了,一般小项目的话根本用不着,小项目也不需要java写,一定要用java的话其它很多框架都挺好的。jfinal什么的。 |
44 cozybz 2015-05-05 22:21:23 +08:00 个人感觉,Java 语法上 比 JS,Python 要舒服 。 繁琐的是 企业级 Java 框架。乡间小路上开跑车,体验自然不好的。 另外,Java 只是 JDK API 使用起来繁琐些,要多写几行代码 。但这些都可以通过使用外部 API 解决的。 比如,读个普通文件,使用 Google 的 Guava ,一行搞定 List<String> strs = Files.readLines(new File("~/test"), Charsets.UTF_8); |
46 liujiantao 2015-05-05 23:44:33 +08:00 via Android 初中老师建议我学B语言做算法题 /手动斜眼 反正我是没答应 |
47 twl007 2015-05-06 00:07:48 +08:00 via iPhone 我觉得Linux不好用什么都要自己装 看人家windows多好 多么友好 |
48 tencoldays 2015-05-06 00:12:05 +08:00 如果用PHP或Python写过,然后用Java开发Web,感受太惨了... 主要还不是语言问题。一个PHP文件搞定的事情,Java要用一坨坨框架来做...... JVM是很优秀的平台,但Java社区完全陷入自己的抽象之中去了,用抽象去解决因为抽象产生的问题,就是不肯干脆点把活干了。 |
49 xiaogui 2015-05-06 01:44:41 +08:00 楼主查下 spring mvc |
50 steven_yue 2015-05-06 03:42:03 +08:00 当一个东西加入了很多标准、模式之后,就缺乏美感了。 |
51 ljbha007 2015-05-06 05:36:10 +08:00 觉得Java用的挺顺手 就是多余的字符多了些 Web框架的话 个人感觉SpringMVC灵活性方面不输任何动态语言框架 而且可以做到0 xml |
52 handleyan 2015-05-06 06:57:59 +08:00 via Android 当你从一种语言转到另一种语言时,最好保持空杯心态。任何一种语言、架构、甚至是算法实现往往都有其实践背景,脱离了这个背景来讨论,很多方案都是糟糕的。存在这么多年,应用如此广泛的东西,必有其价值。否定很容易,去芜存精,去肯定一样东西是比较难的 |
53 jun4rui 2015-05-06 07:25:46 +08:00 来点干货看看,Java上有啥其它Web主要开发语言基本都有的ralis style框架吗? |
54 linux40 2015-05-06 07:28:44 +08:00 via Android 学校的gcc版本是4.4。。。 |
56 iamshaynez 2015-05-06 08:16:51 +08:00 Java的臃肿和繁复带来的优点的就是代码可读性好,容易维护,出错率更低。对于企业应用,寿命经年持久,Java仍然是相当好的选择。因为任何一个Java开发都容易看懂前人的代码,如果换别的…… |
57 jun4rui 2015-05-06 08:31:35 +08:00 @iamshaynez Java绝对没有更容易看懂代码的优势,甚至比Python这种可读性要更差一点。 |
59 smithtel 2015-05-06 09:01:44 +08:00 感觉一群喷java的人都在扯着java 10年前的技术来喷。你懂最近几年出的restful架构?与之搭配的jersey框架? 说一门语言不是之前,请了解这门语言的最新情况,不要再拿10年前的MVC架构与struts框架说事。java 8的特性你用了多少? |
61 jun4rui 2015-05-06 09:06:14 +08:00 |
62 smithtel 2015-05-06 09:19:57 +08:00 @jun4rui 架构 服务本就是程序员用来区分语言执行层次的顺序,思想肯定是趋向大一统。另外你所说的是ruby on ralis? |
63 baozijun 2015-05-06 09:20:32 +08:00 @jun4rui 上面提到好几遍了,JFinal,还有 Spring boot(推荐).利用注解,不算model的话,后端十几行代码一个CRUD的blog. |
64 baozijun 2015-05-06 09:29:42 +08:00 看到楼上的带"绝对"的评论,手一抖,block了..... |
66 shoumu 2015-05-06 09:49:06 +08:00 spring mvc我觉得还是挺好用的啊 |
67 hcymk2 2015-05-06 09:49:38 +08:00 |
68 jun4rui 2015-05-06 09:54:50 +08:00 @hcymk2 Groovy 语言的……,为了个框架,还要学Groovy,我还不如直接用jRuby跑Ralis或者Jython跑Django啊,这个也太…… |
69 whatisnew 2015-05-06 09:55:17 +08:00 @smithtel java 有什么比较牛b的 rest 框架吗? jersey 的效率: [INFO] Total time: 34.527s [INFO] Final Memory: 17M/490M 太弱了,返回一行字符串而已,用了那么长时间+那么多内存! |
70 liangzuobin 2015-05-06 09:59:14 +08:00 @jun4rui 不知道play算吗? |
71 liangzuobin 2015-05-06 10:06:19 +08:00 我是靠Java混饭吃的,是Java让我体会到了OO的奇妙,也写过C#,但是当时只能跑在win上很蛋疼;我也是Java黑,但更多的好像是黑Java背后的sun和oracle,Java本来可以更好 |
73 chaucerling 2015-05-06 10:06:51 +08:00 jfinal 算半个 rails like,连 migrate 都没有 |
74 Kabie 2015-05-06 10:08:05 +08:00 Play是很不错的。。。不过java版的api还是略显冗余。。。 scala版很赞……只是得再学一门语言。。。 |
75 jun4rui 2015-05-06 10:08:37 +08:00 @liangzuobin Play基本是唯一的了。其它ruby、python、php之类的基本都有一把给你选,而且社区上,play要弱太多了,哎。 有些很好的理念还是要社区才能做大,Java虽然在重量级企业级上确实有长期积累,但是快速开发上真的要输其它几个不少。 |
76 phx13ye 2015-05-06 10:12:13 +08:00 讨论java, 把各种jvm上的东西(scala,groovy)拿出来真的好吗? |
78 reeco 2015-05-06 10:18:10 +08:00 http://jodd.org/ 用起来爽得一逼 |
79 reeco 2015-05-06 10:18:45 +08:00 |
81 cloudhunter 2015-05-06 10:29:02 +08:00 这贴子快成为“Java是最好的语言”的争论了 |
82 mlhorizon 2015-05-06 10:33:22 +08:00 做了一个曾经写了十多年的老码农(C,C++,Delphi,ASP,PHP,Java,Python,C#项目至少都做过一个以上),表达一下自己的看法。 要评价一个语言,请至少先弄懂两个问题:它是什么?为什么? 如果想要提高自己,再问一个:为什么人家想到了,我没想到? |
83 chshouyu 2015-05-06 10:34:41 +08:00 学校教的东西确实是老古董了,那些老师也没兴趣研究新东西 我做毕业设计的时候用了spring,评审的老师居然不知道这玩意 然后我解释一通,最后居然问我是不是我自己做的 真想乎他们一脸 |
84 moonou 2015-05-06 11:20:27 +08:00 v2ex真是一个奇妙的地方,为何看到掐架会有一种莫名的兴奋= = |
85 baozijun 2015-05-06 11:30:12 +08:00 @jun4rui 毕业设计是HTML5实时视频通讯加消息推送,后端使用rails做的.把ruby学完,有JAVA EE基础的rails一周就上手了,确实是蛮简洁的.现在在做云计算,云这一方面只有java有完整成熟的解决方案。内网的论坛使用flask撸的,rails感觉还是太繁重,所以后面也很少用了.....这些都只是 框架 而已,而且原理实现大同小异,只是对特定的流程进行封装了而已。掌握 web处理流程 后再学真是分分钟的事。没什么值得吹嘘和炫耀的。 PS.学Java 框架的一个好处是可以几乎无缝的转到Android开发,毕竟多线程优化处理,事件分发机制,ORM,HTTP通信,内存、缓存和JVM优化都是大同小异。我已经在转了..... |
86 zhipeng 2015-05-06 11:31:41 +08:00 开发效率和运行效率是矛盾的。。。RoR、Django,Node虽然开发效率比Java高,但由于动态语言特性,运行效率比不上Java的各类框架。。 |
87 kingname 2015-05-06 11:32:15 +08:00 作为Java一生黑,Java这种屎一样的语言早就应该被淘汰了。 |
88 chaucerling 2015-05-06 11:48:18 +08:00 @zhipeng 不是框架的问题,是语言问题 不同语言写出来的框架大都是扬长避短,RoR各种元编程黑魔法,Node异步高并发,java的框架主要是依靠丰富的库和强大的jvm提高运行效率和构架复杂度。 |
89 zhipeng 2015-05-06 11:55:19 +08:00 @chaucerling 我说的是语言问题。运行效率的决定因素主要在语言上。Ruby、Python、Javascript这样的动态类型语言,基准运行效率肯定比不上静态类型的Java。 (说到Java的语言特性,不是一直被C#吊打吗。。听哪个人说Java 8才约等于C# 2.0) |
90 shuiniushushu 2015-05-06 12:00:28 +08:00 我也有这种感觉,但是这不是java的错,而是用java的人思维定势动不动企业应用,一扯到这个,各种设计模式、五花八门的分层、眼花缭乱的架构思想、各种先进的学院思想就要派上用场。不抽象、无接口、没有自动化就不能编程似的。最后东西越来越庞大,体系越来越复杂,要熟悉和精通他们,学习成本非常的高,不亚于学习java的成本。框架出个小小错误,往往要花个半天才能找出原因。 如果丢弃这些一坨坨的教条,你完全可以像写php和nodejs那样来写java,兼有php等语言的动态性,也有能享受静态语言带来规范性,这在写稍微复杂一点的应用时比较有好处,特别在多人参加的情况下。 我还是比较喜欢java的 |
91 jun4rui 2015-05-06 12:03:07 +08:00 @baozijun 关键还是看干什么,Ralis繁重也有更轻量级的框架可以选,Ralis本身就是一个囊括了很多方面的框架。其实玩会一样,玩别的类似概念都是分分钟,不过你要是去玩别的概念的,那就惨了,这点你要先明白。Java我玩了十几年了,湖南省第一个Sun赞助的java实验室就是我们公司,我们这里估计和淘宝差不多同时期用J2EE之类的,电信级的。我们当时做Java的团队里面,有写过国内当时唯一JSP开源论坛的,效果和Discuz差不多,他也会PHP之类的,我们会其它语言的,没一个说Java开发Web好话的,这玩意开发Web前台效率就是低。 所以就Web这一块来说,楼主@virusdefender 说的java难用是没啥问题的,真的,开发效率很低,对Web这种频繁改变、更新的东西,Java做Web前端不够别的几种语言好。 |
92 jun4rui 2015-05-06 12:07:49 +08:00 @shuiniushushu Java确实可以像PHP、nodejs那样写,问题是它的主流还是传统的老一套办法,这些相对来说就是些java里面的旁门左道了。PHP、nodejs、Python、Ruby之类是专门干这个的,开发方法也是围绕这些来,已经有非常多的工具和方案去解决各种问题了。 Java就算可以用来轻松的写Web,但是工具、框架、库上的差距之大,就像拿个手枪和别人的航母编队比,也许等Java将来在Web上不是SSH这套玩意为主了,才会改变吧。 |
93 lincanbin 2015-05-06 12:11:45 +08:00 习惯了Python写其他都觉得难,所以我觉得入门最好不要用Python。 |
95 djyde 2015-05-06 12:47:08 +08:00 我告诉你,我们学校的老师和学生,对 Javascript 的印象还停留在弹窗特效,几乎没人知道 node.js 的存在 |
96 chaucerling 2015-05-06 12:49:19 +08:00 @zhipeng php和java这种没多少特性到处招人黑的反而在编程开发里成了香饽饽,人人都能学,公司都喜欢招。设计好的语言,概念先进、开发效率高的框架,学习门槛高,学的人少,公司也难招人。所到底就是市场供给关系不平衡,大多数公司要的是码农而不是程序员,久而久之,大部人都往码农的方向去了。 |
97 chaucerling 2015-05-06 12:50:37 +08:00 @lincanbin 习惯里高生产力的世界,当然不想再用锄头。 |
98 phx13ye 2015-05-06 12:54:19 +08:00 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] ------------------------------------------------------------------------ ===== 帮楼上的哥哥贴全, 这个真没黑对地方 |
99 spacewander 2015-05-06 13:03:01 +08:00 现在开始流行“Java是最好的语言”么?PHP在哪里? |
100 shuiniushushu 2015-05-06 13:12:42 +08:00 @jun4rui 我也是厌恶java传统框架(ssh...),并且享受过nodejs和php的动态性。我正在开发java web的小框架,包括mvc,jdbc的封装,都是非常小和轻量的。其实都开发完成了,自己也在用,就是官网还在做,做好和大家分享。不求改变什么,只想做一些尝试,并且出发点服务自己,用java快速开发小应用 |