Java 为什么C和C++;IDE工具支持什么';可用于托管平台?

Java 为什么C和C++;IDE工具支持什么';可用于托管平台?,java,.net,c++,c,ide,Java,.net,C++,C,Ide,如果您使用过任何像样的java或.NETIDE,您可以看到它们提供的丰富功能,这些功能在c/c++IDE中不存在,或者以更有限的形式存在 我正在考虑以下功能: 代码完成 语法错误(以及不需要编译的编译错误) 重构 调试(调试器可以向您显示的有关对象的信息量) 代码探索和分析(查看类型层次结构、谁调用此函数等) 托管语言的主要功能是什么,使它们能够在工具中提供这种(大多数人会说)卓越的支持 > P>解析C++的难度,我认为你的前提过于宽泛,它不一定是托管与非托管的问题。p> C++是一种非常

如果您使用过任何像样的java或.NETIDE,您可以看到它们提供的丰富功能,这些功能在c/c++IDE中不存在,或者以更有限的形式存在

我正在考虑以下功能:

  • 代码完成
  • 语法错误(以及不需要编译的编译错误)
  • 重构
  • 调试(调试器可以向您显示的有关对象的信息量)
  • 代码探索和分析(查看类型层次结构、谁调用此函数等)

托管语言的主要功能是什么,使它们能够在工具中提供这种(大多数人会说)卓越的支持

> P>解析C++的难度,我认为你的前提过于宽泛,它不一定是托管与非托管的问题。p> < P> C++是一种非常难解析的语言。对于成功处理它的解析器(编译器),它们的速度太慢,灵活性不够,无法支持IDE风格的代码支持。与编译器不同,在IDE中,解析器必须非常快,并且能够处理语法错误的代码。到目前为止,还没有人花时间去做这件事,因为具备这方面技能的人完全专注于实际的编译器


VisualStudio 2010具有一个改进的C++智能感知引擎。他们花了很多很多年才完成它,但是它得到了很大的改进。

< P>语言如C和C++使完成和语法校正变得困难,因为语法比java更复杂。例如,预处理器使事情变得更加困难

重构更难,因为C/C++较弱的类型系统使我们更难知道重构是否会保留原始代码的含义


调试更难,因为C/C++较弱的类型系统意味着更难知道运行时值的“真正”类型是什么。

我最近嘲笑了仍在使用vim的C/C++程序员,直到他们要求我找到一个IDE,它可以在一个大型项目中干净地处理条件编译,并链接到一个多定义条件编译方法的正确实例。没有人能接受挑战


寓意:保持你的设计整洁,vim是你的IDE。

IDE只是不懂编程技巧的程序员的拐杖。如果你想要开源和跨平台,NETBeaS C/C++插件在C/C++ IDE中拥有最多的(如果不是全部)的话,VisualStudio是.NET IDE,支持C++,所以假设是错误的。即使是免费的VC++速成版也能完成大部分功能(不包括重构)。在我学习C的过程中,我对VS2008中有限的编辑支持感到非常惊讶。它甚至不自动关闭圆括号/括号。它既使用Visual C++和Visual C(java),也广泛使用Java,我完全知道你的意思。C++的代码完成是不可靠的,错误在源中没有突出显示,根本没有重构支持(甚至没有重新命名局部变量),等等。“智能感知”是任何文本编辑器中最恼人的错误特征。当我试图编写代码时,它会在代码上方弹出血腥的对话框。真正的程序员可以找到他们正在调用的函数的声明,并阅读文档。@alex:对于我自己来说,作为一个真正的(C++)程序员,我经常发现自己在试图手动查找特定函数的声明时会发牢骚。至于vs2010,他们只为IDE引入了一个外部解析器。至于复杂性,包括文件、宏和模板对象都必须考虑在内too@alex:你要么1)从未使用过1M行的代码库,要么2)拥有一种神奇的能力,能够记住10000个随意组织的源文件中的所有内容。两者都可以,但对我来说,我没有这么神奇的能力,所以IDE非常有用。grep是你的朋友。如果你只是调用函数,而对它们的了解却没有IntellSense告诉你的那么多,那么你只会让你的1M行程序变得更糟,而不是更好。拜托,这只是一句无用的评论。每个工具都有它的用途,如果你想坚持使用文本编辑器对你有好处,但是IDE的很多功能将我们的工艺(是的工艺)从仅仅键入代码向前推进了一步使用文本编辑器是可以的…但我更愿意使用IDE-它让我更高效。如果你愿意,欢迎你使用IDE,但我保证这不会让你成为一个更好(或更高效)的程序员。以Intellisense为例—您认为它使您的工作效率更高,因为它意味着您不必去查找函数声明或阅读文档。我认为,从长远来看,阅读文档并了解函数声明将使您的工作效率更高?C和C++只是那些不懂他们手艺的人的拐杖。当我和一个同事被雇佣来帮助一个遗留的组织时,他们就测量了这一点。三个月后,我们的IDE效率比vim&emacs以外有10年以上经验的员工提高了约200%。