这绝对是主观的,但我想尽量避免它变成争论。我认为如果人们恰当地对待它,这将是一个有趣的问题。

这个问题的想法来自于我对“你最讨厌的语言的哪五件事?”问题的回答。我认为c#中的类在默认情况下应该是密封的——我不会把我的理由放在这个问题上,但我可能会写一个更完整的解释来回答这个问题。我对评论中的讨论热度感到惊讶(目前有25条评论)。

那么,你有什么有争议的观点?我宁愿避免那些基于相对较少的基础而导致相当宗教的事情(例如,大括号放置),但例如可能包括“单元测试实际上并没有多大帮助”或“公共字段确实是可以的”之类的事情。重要的是(至少对我来说)你的观点背后是有理由的。

请提出你的观点和理由——我鼓励人们投票给那些有充分论证和有趣的观点,不管你是否恰好同意这些观点。


当前回答

“Java烂透了”——是的,我知道不是所有人都这么认为:)

我有这样的观点,因为我所见过的大多数Java应用程序都是内存占用,运行缓慢,用户界面糟糕等等。

探员

其他回答

应该始终使用基于1的数组,而不是基于0的数组。基于0的数组是不自然的、不必要的,而且容易出错。

当我数苹果、员工或小部件时,我从1开始,而不是0。我也这么教我的孩子。不存在第0个苹果或第0个员工或第0个部件。使用1作为数组的基更直观,也更不容易出错。忘掉加一减一的地狱吧(我们过去常这样称呼它)。基于0的数组是计算机科学发明的一种不自然的结构——它们不能反映现实,而计算机程序应该尽可能地反映现实。

QA应该比开发人员更了解代码(间接地)。QA通过发现开发人员不希望发生的事情而获得报酬,他们经常这样做。(顺便说一句,我是一名非常看重优秀QA人员的开发者。很少)。

如果你有合适的工具,并花时间正确地编写,那么软件就可以没有错误。

Null引用应该从OO语言中删除

从Java和c#的背景来看,从一个方法中返回null来表示失败是很正常的,我已经得出结论,null会导致很多可以避免的问题。语言设计者只要从代码中消除空引用,就可以删除与nullrefernceexception相关的一整类错误。

Additionally, when I call a method, I have no way of knowing whether that method can return null references unless I actually dig in the implementation. I'd like to see more languages follow F#'s model for handling nulls: F# doesn't allow programmers to return null references (at least for classes compiled in F#), instead it requires programmers to represent empty objects using option types. The nice thing about this design is how useful information, such as whether a function can return null references, is propagated through the type system: functions which return a type 'a have a different return type than functions which return 'a option.

不要太担心学习什么语言,使用业界重量级的语言,如c#或python。像Ruby这样的语言在卧室里很有趣,但在工作场合就没什么用了。像c#和Java这样的语言可以处理小到非常大的软件项目。如果有人不这么认为,那么你谈论的是脚本语言。期!

在开始一个项目之前,要考虑网络上有多少支持和代码示例。再次强调,选择像Ruby这样的语言,与Java相比,Ruby的代码样本在网络上非常少,这只会让你在遇到问题时更加痛苦。

当你的老板问你的代码写得怎么样的时候,你不能在论坛上发了一条消息就指望得到答复。你要说什么?“我在这个论坛上等着有人来帮我”

学习一门语言,并学好它。学习多种语言可能会带来技能和实践,但你甚至只能掌握所有语言。擅长其中一项。有一整本专门讲Java中的线程的书,仔细想想,它只是100多个命名空间中的一个。

精通一门或精通许多门。