Java集成开发环境与微软集成开发环境的比较

12

我拥有扎实的Java背景,并且近年来也在开发C#。

我永远不理解的是,为什么Visual Studio IDE与Intelli-J IDEA和Eclipse(Java)相比如此落后(个人意见)。尽管Microsoft从VS 2005到VS 2008进行了改进,但我认为它们还没有将开发体验提升到一个新水平。

我想知道的是,VS 2010有什么不同吗?

为什么Java IDE的工具和语法编辑器要更加“先进”呢?

只是列举一些:

  • 代码完成(Java IDE中更为先进)
  • Ant集成(Eclipse和IDEA)vs Visual Studio构建事件
  • 缺乏VS中的代码存储库集成(Subversion和CVS)
  • Visual Studio缺乏高级重构工具。

谢谢。


2
我认为你需要提供一个更详细的差异清单,列出那些让你不适的方面以及在Eclipse中喜欢的功能 - 否则我担心这个问题最终会被关闭! - jim tollan
仅举几个例子:
  • 代码自动完成
  • 布局
  • 先进的代码重构能力
  • 与版本控制系统(Subversion、CVS)集成
- Koekiebox
2
加入@jim。你在寻找什么样的改进呢?我猜有很多很多的Visual Studio开发者不会同意你的看法,他们认为VS比Java IDE更舒适、更高效。(是的,我就是其中之一... :) ) - rkellerm
2
安装ReSharper。它是由Jetbrains(与Intelli-J相同)编写的,对于C#开发来说几乎是必不可少的。 - Tim Robinson
2
你是认真的吗?Intelli-J可能不错。但你怎么能说eclipse比visual studio更好呢?如果你喜欢在开始项目之前配置每一个细节,那么你可能是对的。 - Nick N.
显示剩余2条评论
4个回答

24

几个要点:

  • 人们往往喜欢自己熟悉的东西。

  • 使用 C# 开发可以更快速地上手,因为该语言的 IDE 和大部分工具/文档都来自同一来源。

  • 在 Java 的世界里,有更多的选择,这对于花时间学习它们的专家来说非常棒,但也会导致自身的问题。

  • ReSharper 或者 Refactor 添加到 Visual Studio 中,可能会给你想要的功能。

  • Visual Studio 的调试功能非常好。

  • Visual Studio 试图通过尝试查找缺失的 dll 文件等方式来让开发变得容易,并将其存储在注册表中。对于单人项目而言,这可能很好,但如果不小心处理,在开发者的多台机器上可能会导致构建问题。在 Java 的世界里,你必须手动编辑更多的配置文件,但至少你可以将这些文件放在源代码控制下。

  • 没有一个小型的命令行工具可以在构建服务器上成功构建所有类型的 Visual Studio 项目。不过在日常使用中,你并不需要学习如何使用命令行工具,因为 Visual Studio 已经将它们隐藏了起来。

我认为现在大多数程序员更喜欢他们最熟悉的 IDE。


注意,这篇文章是我在6年前写的,自那时以来,C#/.Net变得更加复杂,有许多开源项目。微软也开源了很多.net框架。对于Web和服务器端开发,我认为Java世界和.Net世界现在几乎没有什么区别。对于“智能客户端”,.net仍然有很多优势,包括新的跨设备手机开发支持。

对于多线程IO,我认为C#领先于Java多年,但随着C#和Java互相学习,情况可能会改变...


2
同意。我做的C#比Java多,也觉得VS比Eclipse好用。我认为这正是Ian所说的,人们往往更喜欢他们熟悉的东西。 - goenning
在VS中调试完美! - user6538026

12

近几年来,Visual Studio确实有了很大的进步——尽管其中许多改进其实是Eclipse早就拥有的(我自己没有使用过IDEA)。

你可能想要看看ReSharper,它可以为Visual Studio带来更多好处,以及VS2010 Productivity PowerTools

另外,请查看Scott Guthrie关于VS2010改进的博客系列。那里面有很多好东西。

所有工具都有优点和缺点——现在我在Visual Studio和Eclipse中感到差不多满意……尽管写C#比Java让我高兴得多:)一个领域,Visual Studio真正擅长的是调试...... 我觉得像VS观察窗口这样的东西比Eclipse的等价物要好得多。


这是几年前写的,我想知道你现在是否使用了IDEA,我很想听听你的想法和比较! - Luke Garrigan
@LukeGarrigan:抱歉,我没有 - 而且我现在几乎不再使用Java了。 - Jon Skeet
啊,真遗憾! - Luke Garrigan

7

Visual Studio 2017在Intellij IDEA之后,仍远远落后。我同时使用两者,可以说即使添加了ReSharper,VS2017也无法与IDEA相比。

对我来说最大的问题是,VS仍然没有提供可用的热重载调试体验。每次我必须重新构建我的.NET MVC项目时我都会感到很沮丧(它可能速度还行,但IIS Express的加载时间约为15秒,即使是您在代码中进行最小更改)。

如果你想辩论“Edit and continue”这个热刷新功能 - 它是完全无用的,几乎不能在代码中做任何更改而不重新构建(每次你必须手动打断点和关闭打开的无用信息选项卡)。

因此,我非常期待IntelliJ Rider的完整版本将所有超级用户友好的可能性带到.NET世界中!


你可以在.NET MVC项目中进行热重载。 - Hicham Bouchilkhi
在我看来,VS2017 + ReSharper 和 IntelliJ 一样聪明,而且我已经使用它们很长时间了。 - masm64

5
我不同意你的观点。我认为VS更容易使用。 例如,当我需要创建一个Web应用程序时,我打开VS并创建一个新项目(Web应用程序)。项目创建后,我按下F5键,完成了! 但如果我想用Java创建我的Web应用程序,我需要安装服务器或一些框架。我还不知道如何创建Web应用程序?
或者,Windows应用程序。 在VS中,您无需做任何事情即可创建基于Windows的应用程序,就像Web应用程序一样。但是,如果我想使用Java创建基于Windows的应用程序,则必须采取一些措施。
我认为VS IDE比Java IDE更加用户友好。

1
我同意在VS中有一些更容易/更好的功能,例如GUI构建在Java中是一场噩梦。我没有看到很多IDE能够正确地构建GUI和WebApp部署在Java中。我也同意使用Visual Studio向导设置Web-App比在Java中配置XML文件(Ant、web.xml和供应商特定配置)更容易。但是,我更喜欢编辑单个XML文件而不是IIS配置。Ian Ringrose可能正在陈述一个非常有效的观点。 - Koekiebox
1
VS的问题在于它无法很好地适应大型团队或系统,因为跟踪每个人对VS设置所做的更改变得非常困难。易用的GUI确实有代价。 - Ian Ringrose
1
@Ian Ringrose,抱歉我不太明白,特别是“每个人对VS设置所做的更改”。这是关于团队项目的吗? - bahadir arslan
除了由多个开发人员和测试人员共同参与的团队项目外,还有其他类型的项目吗? - Ian Ringrose
不要:)我说我因为我的英语水平无法理解,我不想使用隐喻。 - bahadir arslan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接