
举个例子,一个基础的日期类型,就有 6 个。为什么不能简洁一点呢,真是想不懂。 枚举还得特么有构造函数我也是醉了。 C#做的就很好,C#在语言层次上真的是完爆 java
1 ych8398527 2018-09-10 11:00:21 +08:00 C#工资低 (滑稽) |
2 q397064399 2018-09-10 11:04:16 +08:00 再看看隔壁 Python .. |
3 salamanderMH 2018-09-10 11:04:21 +08:00 这只是比较小的方面,java 开源方面比 C#好多了 |
4 flyingghost 2018-09-10 11:07:57 +08:00 Java 混乱? Javascript 水深火热。 PHP 笑而不语。 |
5 murmur 2018-09-10 11:08:10 +08:00 C#输在微软的策略上 开源的太晚了 |
6 zzf2017 2018-09-10 11:08:25 +08:00 月经贴变成日经贴了吗? |
7 cexy 2018-09-10 11:10:31 +08:00 虽然我是个 javaer,但是我坚信 php 天下第一、 |
8 yukiww233 2018-09-10 11:11:04 +08:00 枚举必须有构造函数??? 引战还不在点上 |
9 amew 2018-09-10 11:12:19 +08:00 这话说的。。Java 已经好于大多数语言了,你去看看 Kotlin,Python 等等,才多久啊,坑是一个接着一个,JS...算了,我已不想评价 |
10 paparika 2018-09-10 11:12:39 +08:00 枚举有构造也算黑点吗,以前好像还真写过利用枚举构造函数的代码 |
11 metrxqin 2018-09-10 11:13:00 +08:00 百花争鸣不好吗? |
12 wohenyingyu03 2018-09-10 11:13:16 +08:00 日期类型什么时候是“基础”了…… |
13 bk201 2018-09-10 11:14:16 +08:00 很多时候的嗦是为了对老版本程序的兼容.枚举也是类,为什么不能有构造函数? |
14 keymao 2018-09-10 11:17:20 +08:00 Java 混乱?... 没听说过,我只知道 Spring 这种级别的脚手架,你其他语言的不好找... Java 在企业级应用里面目前几乎是不好替代了.. 他要真是混乱你觉得能行么 |
15 lcgui7 2018-09-10 11:17:38 +08:00 就事论事 1. 时间日期在 java8 之前确实很烂,之后很好了 2. C#的枚举不支持复杂对象吧?似乎没有可比性 |
16 lhx2008 2018-09-10 11:21:06 +08:00 via Android java8 就直接 localdatetime,之前的 calender 不用了,date 比较通用一点 |
17 lhx2008 2018-09-10 11:21:47 +08:00 via Android 如果用百度搜索来学习,那么任何语言的学习过程都是混乱的 |
18 murmur 2018-09-10 11:26:49 +08:00 不敢苟同 前端的火爆和 JS 没啥关系吧。而且 web 端只有 JS 这一门语言而已,TS 也是扩展了 JS。说实话前端真的是没啥东西。 我二线大连.NET 开发 3 年经验 32 万 20K*16 觉得贵可以先用??版,啥时候能支撑的起在买一个正版支持一下 楼主年薪 32w 你对前端就这个认知么?? 另外宣传 xx 是不是可以 deactivate |
19 ClutchBear 2018-09-10 11:43:26 +08:00 语言这东西, 主要是看生态.... |
20 wenzhoou 2018-09-10 11:44:06 +08:00 via Android 一般项目都会有自己的时间封装吧。如果没有,那就恭喜你。 |
21 ywlvs 2018-09-10 11:49:20 +08:00 别的不说,楼主你这个标题的语法就很混乱了。 |
22 lovedebug 2018-09-10 11:50:47 +08:00 via Android 历史遗留问题,最好搜的时候都带 java8,或者读文档吧 |
23 lihongjie0209 2018-09-10 12:01:48 +08:00 Date 对象在 JAVA 很早就有了, 以现在的眼光看, 确实有问题. 后面出来一下其他的类来解决这个问题. 目前的最优雅的解决方案是 JAVA8 的日期对象. 混乱? 那倒不至于, 关键是你要理解这些对象存在的意义以及历史原因. 如果说你非要在 JAVA8 中使用 Date 对象做一下很复杂的操作, 那么混乱的是你. |
24 AllOfMe 2018-09-10 12:04:24 +08:00 没有 apache common 之类的工具库,开发 java 确实比较繁琐 |
26 chocotan 2018-09-10 12:16:21 +08:00 就两个例子得出 java 混乱的结论 |
27 sampeng 2018-09-10 12:18:42 +08:00 虽然我喜欢 python,但我还是想说 php 世界第一 |
28 javaWeber 2018-09-10 12:24:33 +08:00 还有 java 的 IO 包。。也挺混乱的。有过度设计的嫌疑。 |
29 tnt666666 2018-09-10 12:25:36 +08:00 via Android 因为你菜啊 |
30 wizardforcel 2018-09-10 12:28:25 +08:00 Java 混乱的地方多了去了。。 File 和 Path Array 和 List<T> 各种 HTTP 客户端 还有这个 BufferedReader,我记得 C# 的 StreamReader 是默认带缓冲的 |
31 wizardforcel 2018-09-10 12:31:01 +08:00 @lihongjie0209 LocalDateTime 本身不复杂,无非是: new Date 改成 LocalDateTime.of setXxx 改成 withXxx 再赋值回去 这点事情查个文档就好了 混乱的是多个功能相同的名称不同的类 |
32 shijingshijing 2018-09-10 12:35:53 +08:00 Java 里面 swap(int a, int b)也不行 |
33 rockyou12 2018-09-10 12:36:19 +08:00 java 是上世纪 90 年代诞生的,标准库有历史包袱、命名奇怪很正常啊…… |
34 tongyang 2018-09-10 12:37:58 +08:00 你牛逼你写一个 |
35 EPr2hh6LADQWqRVH 2018-09-10 12:44:51 +08:00 不是 Java 乱,是 Java 人多。 人多起来一个不小心就乱了。 同理 JS。 你看 Python,最近人也多起来了,看着吧,马上就乱。 |
36 sudoz 2018-09-10 13:02:13 +08:00 你觉得混乱很可能是因为你用的不熟…… 当然也可能是因为用的熟的人已经习惯了 |
37 sonyxperia 2018-09-10 13:03:44 +08:00 。。。。。。 |
38 pabupa 2018-09-10 13:06:02 +08:00 这样的问题,我见一个 block 一个。 |
40 nananqujava 2018-09-10 13:09:48 +08:00 Java 确实很混乱, 不过开源的东西太多了, 就赢在这点 |
42 swim2sun 2018-09-10 13:22:48 +08:00 喷得不在点子上。 你有用脚投票的权力,欢迎转 C#,不送 |
43 monsoon 2018-09-10 13:24:08 +08:00 因为时间很复杂,所以时间相关的 API 很难设计好……所以 Java 时间相关的 API 修了几次,但是还是不行,所以在 Java 8 又彻底修改了一次。 为什么 C#的日期时间的 API 没那么多问题,因为 Java 比 C# 早了 5 年,所以 C# 有足够的经验可以选择借鉴设计一个更好的时间相关的 API 了。就像 Rust 的设计和类库为什么比起很多旧的语言设计的还要好,因为它有个理论和其他语言实践的地基在那里了,并且不用考虑兼容旧的 API 设计了。而 Java 还要在一开始旧的时间的 API 上进行改进,并且努力做到兼容旧的东西。 为什么 Java 有 File, Files 和 Path 之类的问题?因为 Java 没有 first class 的 Object 支持,另外一个原因是后来的接口都是以 nio 为地基了,而 File 已经是时代所遗留的产物了。所以这里总是有抽象泄漏的。 |
45 parkcg 2018-09-10 14:56:49 +08:00 php 和 python 笑而不语 |
46 cpdyj0 2018-09-10 15:00:44 +08:00 枚举有构造函数明明可以更灵活,怎么反倒成黑点了?你说日期有好几个,为了兼容旧版本没办法的事。 |
47 neptuno 2018-09-10 15:11:58 +08:00 理解了每一个的优缺点就不混乱了,还有,楼主别水了,233 |
48 af463419014 2018-09-10 15:34:21 +08:00 如果你能仔细看一下 jdk 里注释的说明,应该就不会有这么多问题了 关键原因就是以前的一些方法不符合国际规范,又不想把这些方法删除,所以只是加了 Deprecated 标记 翻译一下: Date 是一个用毫秒保存的实例(也就是最终的时间是用一个毫秒数确定) jdk1.1 以前有两个额外的功能,一个是可以把毫秒转换 year,month,hour 等进行操作(也就是 setYear(2018)这种),一个是可以和字符串互相转换(也就是 new Date("2018-01-01")这种) 但是这些额外的功能**不符合国际规范**,所以在 1.1 后,增加了 Calendar 可以和 date 互相转换,并进行具体时间字段操作(比如 setYear,setHour,getDayOfMonth 这些操作),还增加了 DateFormat 来进行 Date 和 String 的互相转换 相应的功能在 Date 中会标记为 Deprecated(过期) 比如 Date 中的 setHour 就标记了 Deprecated 并写明了可以使用 Calendar.set(Calendar.HOUR_OF_DAY, int hours)替代 |
50 xuanbg 2018-09-10 16:40:13 +08:00 一些历史包袱而已,算不得混乱。Javascript,著名地摊语言了解一下 |
51 jinxiaoyan44 2018-09-10 16:46:27 +08:00 |
52 gabezhao 2018-09-10 16:48:29 +08:00 住手,你们不要再打了啦!.jpg |
53 CYKun 2018-09-10 17:00:52 +08:00 via Android C#也好意思说 Java, .net 1.1 到 2.0 的时候为了泛型另搞一套容器,至今还有一堆老式类型留在标准库里。 语言要发展总要付出代价,想保持纯洁和完美要么一成不变,要么推到重来。事实证明一成不变的全都死了,推倒重来的如 python 挣扎了十年才看到了胜利的曙光。Java 选择了一条正确的路,即使每天都有无数人指着她的缺点吐槽,也撼动不了她的地位,终不过是土鸡瓦狗止增笑耳。 |
54 ZhLTE 2018-09-10 17:02:22 +08:00 单就 equal。。就很乱了 |
55 feverzsj 2018-09-10 17:04:18 +08:00 因为 java 就是渣渣 |
56 ThinkCat 2018-09-10 17:14:48 +08:00 毕竟那么多年了,各个版本迭代 |
57 mosliu 2018-09-10 17:15:27 +08:00 java 这些年来 是能感受到在进步的。 不喜欢的可以用脚投票啊。。 |
58 zdnyp 2018-09-10 18:06:16 +08:00 看看隔壁的 Python.... |
59 ben1024 2018-09-10 18:32:11 +08:00 要不试试世界上最好的语言-PHP |
60 loryyang 2018-09-10 18:37:41 +08:00 大部分都是历史的包袱,扔不掉只能用妥协的方式来支持 如果你像 python 那样搞,那会给 JAVA 造成重创的 |
61 Guaidaodl 2018-09-10 18:56:19 +08:00 via Android 主要是 Java 坚持向下兼容。而日期的 API 并不是那么好设计的。 至于 enum 有构造函数我觉得是特别有用的功能。 |
62 May725 2018-09-10 19:13:58 +08:00 via iPhone 我持不同的意见,觉得 java 的风格挺一致的。有些遗留的问题,你可以选择一种喜欢的方式去解决 |
63 supuwoerc 2018-09-10 20:31:12 +08:00 呜呜呜,Javascript 无辜中枪.. |
64 tedzhou1221 2018-09-10 21:54:31 +08:00 via Android 好的程序员都是扬长避短,不好的都是总是抓着短处不放 |
66 woncode 2018-09-10 23:14:51 +08:00 via Android 竟然吐槽枚举有构造函数,是你体会不到它的美。java 能发展壮大的很大原因恰恰是它不混乱 |
67 qfdk PRO 语言没有好坏 关键是看谁 怎么用... |
68 wanjun 2018-09-11 06:59:06 +08:00 via Smartisan T1 每一次版本升级都要向前兼容,当然有些设计不好的也必须要保留 |
70 qingfengxm 2018-09-11 09:30:05 +08:00 C#工资低 |
71 SunnyCoffee 2018-09-11 10:02:24 +08:00 看看 OC 再说吧,nil、Nil、NULL 和 NSNull,真是让人头皮发麻 |
72 karllynn 2018-09-11 10:29:14 +08:00 历史问题嘛 枚举设计最好的是 swift,总是新的超过旧的 |
73 fundebug 2018-09-11 10:39:09 +08:00 @salamanderMH 如果说开源的话,Javascript 完爆 Java 以及其他各种语言.... |
74 JaxXu 2018-09-11 10:42:26 +08:00 楼主大概是想要一个完全符合他个人想法习惯风格的语言,那就自己写一个好了 |
75 taaaang 2018-09-11 11:35:40 +08:00 构造函数构造复杂枚举有问题? 日期类不停的升级换代,用你喜欢的不久好了?可能楼主需要一门自己的语言。 |
76 gowk 2018-09-11 13:48:47 +08:00 看了王垠的文章,谁知道这个思考题该怎么理解: 有人指出,Java 的引用类型可以是 null,而原始类型不行,所以引用类型和值类型还是有区别的。但是其实这并不能否认本文指出的观点,你可以想想这是为什么吗? |
77 HangoX 2018-09-11 14:24:15 +08:00 历史包袱吧,java 兼容旧版比较多。讲道理枚举有构造方法哪里惹你了。。。 |
78 jorneyr 2018-09-11 14:55:06 +08:00 Java 的枚举使用的是 flyweight 设计模式,是个对象池,你心目中的枚举是什么样的呢? |
80 douya0808 2018-09-11 18:03:15 +08:00 Java8 的日期已经很简洁了吧,8 以下版本引入一下 Joda-Time 也很好用 |
81 mmdsun 2018-09-12 08:46:19 +08:00 via Android @ych8398527 c# unity3d 做游戏工资不低的。 |