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

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

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

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


当前回答

我认为Java应该通过精简的本地库包装器来支持特定于系统的特性。

换句话说,从几乎所有人的角度来看,我认为Sun决定要求Java只支持可移植特性是一个巨大的错误。

无数年之后,SWT出现并解决了编写可移植的本机小部件UI的基本问题,但那时微软被迫将Java派生为c#,并且已经编写了大量原本可以用文明Java完成的c++。现在世界运行在c#、VB、Java、c++、Ruby、Python和Perl的混合语言上。除了SWT程序外,所有Java程序的外观和操作都很奇怪。

如果Java在本机库的基础上提供了薄包装器,那么人们就可以完全用Java编写swt等效程序,并且随着事情的发展,我们可以用Java开发可移植的明显的本机应用程序。我完全支持可移植应用程序,但如果这种可移植性是在中间件UI(和其他特性)库的开放市场中实现的,而不是通过简单地将用户菜单减少为垃圾或用Swing伪造UI,那就更好了。

我猜想Sun认为ISV会受到Java的限制,然后世界上所有新的PC应用程序都会神奇地在Sun上运行。不错的尝试。他们最终没有得到应用程序,也没有让语言起飞,直到我们可以将其用于仅逻辑的服务器后端代码。

如果事情做得不一样,也许本地应用程序就不会死掉。

其他回答

在. net上开发不是编程。它只是把其他人的代码拼接在一起。

我的编码背景要求你了解硬件,这在我的行业中仍然是一个至关重要的要求,我认为高级语言只是简单地组装别人的工作。这并没有什么本质上的错误,但这是“编程”吗?

微软在为“开发人员”提供符号指令语法方面做了很多艰苦的工作。我现在似乎认识了越来越多的开发人员,他们在执行工作时似乎受到类的存在或不存在的限制。

我的观点来自于这样一个概念:作为一名程序员,你应该能够在你的平台允许的最低水平上编程。因此,如果您正在编写。net程序,那么您需要能够埋头苦干并找出解决方案,而不是依赖于其他人为您创建一个类。在我看来,这是一种懒惰,不符合“发展”的标准。

良好的性能VS优雅的设计

它们并不相互排斥,但我不能忍受过度设计的类结构/框架,它们完全不了解性能。我不需要有一个字符串的new This(new That(new Whatever());创建一个对象,它会告诉我现在是凌晨5点哦,顺便说一下,距离奥巴马的生日还有217天,还有两天就是周末。我只是想知道健身房开门了没有。

保持两者之间的平衡是至关重要的。当您需要将所有处理器抽出来做一些密集的事情(比如读取tb级的数据)时,代码就会变得令人讨厌。把优雅留给那些消耗10%资源的地方,这可能超过90%的代码。

我有争议的观点: OO编程被极大地高估了[并被视为一颗银弹],实际上它只是工具箱中的另一个工具,没有别的!

糟糕的IDE会让编程语言变弱

优秀的编程ide确实使某些语言的工作更容易,更好地监督。在我的职业生涯中,我有点被宠坏了,我工作的公司总是有最新的Visual Studio可供使用。

在过去的8个月里,我一直在做很多关于Cocoa的工作,而Xcode编辑器使得使用这种语言变得非常困难。重载很难找到,处理打开文件的整体方式只会让你的屏幕非常混乱,非常快。这真的很遗憾,因为Cocoa是一种很酷且功能强大的语言。

当然死忠的Xcode粉丝现在会投票否决我的文章,但是有很多ide确实更好。

人们正在转向IT行业,而这些人本不该转向IT行业

这是从我去年的一篇博客文章中复制/粘贴的。


我的经验主要是关于荷兰市场的,但也可以适用于任何其他市场。

我们(我将所有软件工程师归为一类)目前处于一个对我们非常有利的市场中。公司正拼命地想要得到软件工程师(从现在开始),无论价格如何。如果你现在换工作,你几乎可以要求任何你想要的东西。在荷兰,现在有一种趋势,甚至给两辆租赁车一份工作,只是为了让你为他们工作。这有多奇怪?我怎么能同时开两辆车?

当然,这听起来对我们来说很好,但这也造成了一个非常不健康的局面。

例如: 如果你目前正在为一家快速发展的公司工作,你正试图吸引更多的同事,最终从地面得到一些严肃的软件开发,没有人能找到不提供天价薪水的人。寻找优秀的同事是非常困难的。很多人被我们这种工作所吸引,因为高薪,但这也意味着很多没有正确激情的人正在进入我们的市场。

Passion, yes, I think that is the right word. When you have passion for your job, your job won’t stop at 05:00 PM. You will keep refreshing all of your development RSS feeds all night. You will search the internet for the latest technologies that might be interesting to use at work. And you will start about a dozen new ‘promising’ projects a month, just to see if you can master that latest technology you just read about a couple of weeks ago (and find an useful way of actually using that technology).

如果没有这种激情,市场可能看起来很好(因为汽车、金钱,当然还有我们吸引的辣妹),但我认为,只要是消防员或战斗机飞行员,市场就不会那么有趣。

听起来我是在保护自己的工作,这在一定程度上是对的。但我也在努力保护自己不受我不想共事的人的伤害。我想就我读到的东西进行热烈的讨论。我希望能够与那些对工作有同样“热情”的人进行辩论。我希望同事与我共事是出于正确的原因。

我要找的人在哪里!!

你不能通过计算代码行数来衡量生产力。

每个人都知道这一点,但出于某种原因,这种做法仍然存在!