都说 VS 是宇宙第一的 IDE,到底是好在哪里?

17 小时 9 分钟前
 haython

我只用过 jetbrains 系列和 Eclipse

4590 次点击
所在节点    程序员
61 条回复
freefcw
13 小时 50 分钟前
@coolcoffee 这个功能 gdb 挺早的时候也支持了好像叫 backtrace ,不过我那时已经没怎么写 c/c++了
lvlongxiang199
13 小时 46 分钟前
@wu00 你这说了就跟没说一样. 调试工具怎么逆天了 ? "补全、感知、一键重构、代码风格等工程化配置" idea 也可以
cnbatch
13 小时 33 分钟前
如果需要使用 C/C++、C# 做开发,尤其是这几个都需要兼顾,那么 VS 是最方便的选择了,一个 IDE 就能覆盖需求
LaTero
13 小时 25 分钟前
老黄历了,现在和 jb 完全没法比。要不然也不会有 resharper 和 visual assit 了。而且生态很差,遇到问题搜索都是 vsc ,根本找不到 visual studio 相关信息。codeium 这种支持 vs 的插件连说明都没有,就叫你去商店装,装上和内置的补全是冲突的,谷歌搜全是 VSC 。如果你只用过 JB 那去用 VS 真的感觉是折磨。
hez2010
12 小时 47 分钟前
先说调试器
1. 从内核态到用户态 app 全都能调试,而且还能远程调试别的机器(无论 Windows 还是 Linux 还是 macOS ),外加还能调试各种系统的 coredump ,这一点上首先就无敌了。
2. 在运行时 eval 任意的表达式,甚至牵扯到各种调用的复杂表达式都没问题。
3. 支持 hot reload ,是的,哪怕是 C/C++ 程序都能 hot reload ,调试运行过程中改几行代码可以直接瞬间应用更改,不需要重启 app 直接生效。
4. 支持倒着往前调试,比如你单步调试一不小心跳过去了,这个时候你用 VS 的话可以倒着单步回去,如同时光机一样。
5. 支持混合调试 C++ 和 C#,碰到有 FFI 的代码你可以从 C# 单步进 C++ 代码,也可以从 C++ 代码单步进 C# 代码。
6. SourceLink 支持直接加载来自网络的代码,比如你可以直接用 SourceLink 把你的代码和 GitHub 关联起来,别人调试你的程序的时候直接自动从 GitHub 加载源代码就能调试。

再说索引引擎
1. 拥有地表最快的 C/C++ 索引引擎,没有之一。毕竟 VS 最开始就是靠这玩意起家的。
2. 复杂模板/各种类型 trait 的推导能力也是顶级,clion/clangd 很多推不出来的玩意扔给 VS 就一点问题没有。
3. 我之前做 WinRT 开发,由于有个魔鬼模板展开导致给 std::hash<T> 整出来了 2000+ 个 overload ,VS 的补全引擎后台吃我 100% CPU 花了 10 多分钟给出来了完整结果;我试着换成了 clangd ,结果 clangd 遇到 std::hash 试图补全的时候整个进程直接崩溃异常退出了。
kuisir
12 小时 45 分钟前
@coolcoffee Rider 应该可以吧
hefish
12 小时 45 分钟前
多说无益,用了就知道了。
wlingxiao
12 小时 41 分钟前
vs 连 c# 的代码格式化都做不好。😂
Flourite
12 小时 29 分钟前
sublime 转过来的,简单的说是轻量级但是可以通过插件增强功能,最爽的是可以选定多行操作了,但如果你用 java 那还是算了
laminux29
12 小时 23 分钟前
并不是每个人都有环境与条件,去体验到完整版的 VS 。就像杜比家庭影院,就那个低音炮,整个论坛里,就没几个人,能有听音室环境,能够开足音量,不用担心打扰别人。

想要体验完整版的 VS ,首先显示器至少 12 个:

1. VS 有 4 个 DEBUG 面板,1 - 4 号显示器,每个显示器用于放置一个 DEBUG 面板。

2. VS 的代码编辑器,假设开 2 个,用 5 - 6 号显示器,用于放置代码编辑器。

3. VS 还能直连数据库,用 7 号显示器。

4. 3 个显示器用来问 GPT ,其中 8 号显示器,用于编辑提示词; 9 号显示器用于 OpenAI 新出的 o1 ; 10 号显示器用 Cursor 。

5. 还有 2 个显示器,一个用于 google 查资料 + IM 通信,另一个用于 ssh 到服务器。

实际上这只是最低配,有时候复杂场景,需要开多个代码窗体,或者开多个 google 查资料或 GPT ,还需要更多显示器。

大部分程序员,很难遇到需要大量窗口的复杂需求;

就算遇到了,没有几个人能享受到公司给他配备足够大的工位,来放置这么多显示器。

我见过最多的场景是,一台小小的笔记本,一大堆窗口切来切去。这种场景,无论用啥 IDE ,感受都不会好。
paopjian
12 小时 3 分钟前
在 IDE 还不完善的时候,VS 是一个比较标准的 IDE 软件,啥功能都有还挺唬人的, 初学那会写个 scanf 啥的都提示你不安全啥的, 和 DEVC++ free pascal 这种软件比肯定是高端点
mobaisilent
10 小时 51 分钟前
轻量呀
juggtt213
10 小时 33 分钟前
调试可以实时看性能热点,vtune 要跑完才能看
zhuangzhuang1988
10 小时 20 分钟前
平衡吧
性能,功能, 可用性。
mxalbert1996
10 小时 0 分钟前
说 VS 是最强的免费的 C/C++ IDE 应该没什么问题。
googol2chen
9 小时 26 分钟前
@fangxisama 因为 php 有内置的高并发支持,类似 goroutine ,还可以控制底层,操作内存分配和释放,还可以编译运行,达到极致的性能,它还是内存安全的语言,还有成熟的社区支持。你说 php 是不是世界上最好的语言?
jiangzm
7 小时 5 分钟前
@wlingxiao #48 哈哈哈,无脑黑
jiangzm
6 小时 35 分钟前
Visual Studio 就不是 Java IDE 所以没啥可比性,你觉得 jetbrains 是世界第一也没问题。
如果实在要比拿都支持的开发语言比较 比较合适(比如 C++),或者两款 IDE 都深度使用的用户来。

这两种 IDE 我都用过很长时间 Eclipse 用的少一点,开始是用 MyEclipse 后来用 Jetbrains IDEA ,Visual Studio 从 VS2008 开始用到 VS2022 。

Eclipse 体验真是灾难,MyEclipse 集成环境稍微好一点了,但是智能提示还是差强人意,到了 IDEA 在性能、智能提示、调试、插件丰富度等各方面都提升了很多,当然还是有一些差强人意的地方,比如资源占用过大,使用"免费的"旗舰版是个很痛苦的过程等等。

Visual Studio 就是一个大而全的 IDE ,支持多种开发语言,支持全平台的开发,优秀的调试器和智能提示,基本上不需要安装任何辅助插件你所需要的都给你想到了(功能都是可选的)。一句话就是可以一直相信微软开发的用户软件。
secondwtq
6 小时 27 分钟前
@Mithril 单说补全的话,VSCode 也能用 clangd ,clangd 本身不是专门为了某个 IDE 开发的。
但是问题也就在这,VS 的 C++ IntelliSense 的前端和编译器(一般 C++ 社区所指的 MSVC )前端貌似是两套代码,这意味着 IntelliSense 的前端可以专注于为补全场景优化。而对于 Clang 来说,离线编译是主要场景,clangd 是个附属品,于是就有了 #45 的各种问题。
VSCode 的官方 C++ 插件的 IntelliSense ,据说是和 VS 用的同一套代码,不过我没咋用过不好评价。

Debugger 和 Profiler 现在还差太远,没法比。
举个例子,DWARF 格式调试信息的符号表,一直都是线性存储的,也就是说如果你有个大项目,开调试器得先扫一遍全部调试信息。大家其实一直知道这个问题,比如 Apple 和 GNU 都有一些扩展加入哈希表之类的数据结构,Apple 的应该是默认打开的,但是 GNU 的貌似要额外加一些选项。这种加速结构进入标准是在最新的 DWARF5 中,然而依然是可选的。
secondwtq
6 小时 21 分钟前
另外 technically 来说 VS 并不是完全免费的,之前的 VS Express 现在没了,VS Community 商用受限(一些功能也依然有阉割)。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1074382

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX