感觉 C# 在蚕食 Python 的生态

2023-12-14 13:21:49 +08:00
 QiShine

在 TorchSharp,SciSharp 这类开源项目的引导下。微软在 OPENAI 的投资,也刷了一波 AI 圈子的好感。

18282 次点击
所在节点    Python
113 条回复
encro
2023-12-14 15:41:50 +08:00
@encro

为了不打架,我特别加了之一。。。
lambdaq
2023-12-14 15:44:56 +08:00
@Rehtt
@idealhs
@niubiman

我从 vs 2003 就写过 C# 了,当年还是用记事本直接写。也用过 resharper 还有个什么免费的忘记了。当年 2M ADSL 下载 .NET Framework 是最痛苦的回忆。

你们用社区版,你们清高。但是社区版的门槛就是得去折腾。你们说的 Visual Studio Community 我的确没关注过。看了下

https://visualstudio.microsoft.com/zh-hans/license-terms/vs2022-ga-community/

> 如果不符合上述情况,而且您也不是企业(见下面的定义),则最多 5 位个人用户可以同时使用该软件开发和测试您的应用程序。

仅对个人和免费?如果这样的话谈不上「蚕食 py 生态」
GeekGao
2023-12-14 15:48:00 +08:00
“我感觉” “我认为” “因为最近有品牌露出”

容易产生错觉,毕竟没有数据支撑。
lambdaq
2023-12-14 15:50:54 +08:00
@niubiman 你说的 rider 是 https://www.jetbrains.com/rider/download/ 这个吧?

Rider includes an evaluation license key for a free 30-day trial.

first year US $149.00
second year US $119.00
third year US $89.00

当然 jb 的东西都这个价
hez2010
2023-12-14 15:55:52 +08:00
@lambdaq vs community 确实是给个人/小团队/开源作者准备的,但你可以用 vscode 或者 rider 。即是是写 python 也不见得一定得用 pycharm 吧。
更何况 c# 的 vscode language server 也是开源免费的: https://github.com/dotnet/vscode-csharp (注意里面有个单独的 c# dev kit 是有额外 license 的,但 dev kit 也就是额外提供了类似 copilot 的 ai 补全罢了,你可以选择不装 dev kit 只装 c# 插件,这样就没有 license 问题了)
hez2010
2023-12-14 15:58:58 +08:00
@hez2010 简而言之
开源免费的: https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp
额外加了 ai 补全之类的功能但是只对个人免费的补充部分: https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit
你可以选择只用上面那个
lambdaq
2023-12-14 15:59:48 +08:00
@hez2010 这个问题的点在于,如何给团队统一开发配置,如何给商业客户统一开发规范和环境。因为这是「蚕食 py 」的必要条件。

py 用不用 pycharm 都不是问题,存在大把不用 IDE 直接 vi (甚至都不是 vim ) 能写 py 的老哥 。

C# 这边,反正我是必须依赖 IDE 。。。。这就是 C# 的普及门槛。py 一个 2MB 的运行时+随便一个垃圾记事本编辑器一把梭。。。很多人直接服务器跑一个 py 脚本处理杂事,ipython 快速验证一个想法。。这方面 C# 恐怕 JIT/AOT 都没捂热, 别人活都干完了。
qcbf111
2023-12-14 16:06:31 +08:00
@lambdaq 我用 rider
idealhs
2023-12-14 16:06:43 +08:00
@lambdaq #21
1. C# 和任何其他语言一样不绑定 IDE, 甚至可以不绑定.NET ,所以无论 Visual Studio 表现如何,和 C#无关。
2. Visual Studio Community 是完全开箱即用的,一个大一新生可以通过点鼠标从安装软件到跟随微软教程完成项目示例,如果你感到了折腾,是否是因为基础的电脑操作知识不到位。
3. 你既然知道记事本可以直接写 C# ,为什么又能得出 Visual Studio 是商业软件所以 C# 生态不行?因为 PyCharm 是商业软件所以 Python 不行这个逻辑对吗?
4.Visual Studio Community 仅对个人免费,C#和.NET 则是开源和完全免费,我想你应当分得清。IDEA 收费不代表 JAVA 收费,不代表 JAVA 生态差。
hez2010
2023-12-14 16:14:07 +08:00
@lambdaq 说几个你可能不知道的事情。
1. c# 有 vim 插件可以直接在 vim 上提供完整的编辑器体验: https://github.com/OmniSharp/Omnisharp-vim
2. ipynb 也有 .net 支持,所以你可以直接开一个 jupyter 然后在上面跑 c# 代码: https://github.com/dotnet/interactive
3. 至于 python 那样的 repl ,c# 一样完全没问题,甚至相比 python 的 repl 还多了补全和高亮: https://github.com/waf/CSharpRepl
billccn
2023-12-14 16:15:17 +08:00
Python 在这些行业的应用本质是一些 C/C++库的 shell ,比如说数据从读进来到输出去都是在 Pandas 里面,根本不需要 Python 语言本身有什么处理能力。

既然是 shell ,那大家肯定要找最好用的,比如说有 REPL ,语法简洁,支持 duck typing 或者至少不需要声明来 cast 去,有 Jupyter notebook 之类强大的辅助工具。

楼主能提出这个看法,我觉得是因为根本没观察过用 Python 做科研的人是怎么用的。他们中很多人对软件工程其实一窍不通,他们知道要实现一个数学公式,然后是跌跌碰碰,在不断试错和 Google 中写出来的代码。对他们来说 Python 就是一个大号计算器,或者不要钱的 Matlab 。你要和他们安利 IDE 、类型、封装、继承、编译器、单元测试、build pipeline ,他们会像看外星人一样看着你。

你要提出 C#,他们大概会问 C#里面有 Pandas 吗?


Google: c# site:openai.com -> About 809 results (0.27 seconds)
Google: python site:openai.com -> About 6,150 results (0.30 seconds)
Google: java site:openai.com -> About 1,140 results (0.27 seconds)

要说也是 Java 在蚕食好不好
lambdaq
2023-12-14 16:15:59 +08:00
@idealhs

java 生态能起来,全靠 Eclipse ,而且这玩意直接打垮了 Sun 。

琢磨一下吧。
Mithril
2023-12-14 16:18:56 +08:00
@GeekGao
对于商业项目来说,C#使用 Rider/Visual Studio ,Python 使用 PyCharm ,都是正常的选择。没有人会在大型项目里用“2MB 的运行时+随便一个垃圾记事本编辑器”

对于小型项目来说,C#和 Python 都可以使用 VS Code+LSP 来做。

对于脚本来说,虽然没什么人写,但 C# Scripting 也已经是 2015 年以前就 release 的功能了。而且 PowerShell 后端接的也是.NET 生态,你也可以在里面直接调用.NET 的 DLL 。也用不着你“捂热 JIT”。

对比就在同条件下对比,拿 Python 写脚本的场景,对比 C#开发商业项目的条件。或者用 “大把不用 IDE 直接 vi (甚至都不是 vim ) 能写 py 的老哥” 对比 “如何给团队统一开发配置,如何给商业客户统一开发规范和环境”,并不能得出什么有意义的结论。
Mithril
2023-12-14 16:19:40 +08:00
抱歉 GeekGao ,@错人了,
@lambdaq
hez2010
2023-12-14 16:34:56 +08:00
不过,虽然反驳了不少出现了实事错误的评论,但我对于 c# 蚕食 Python 生态这件事情本身也是存疑的。感觉更多的还是 Python 做完 prototype 建完模之后落地应用的时候换成 c# 来实现到最终 app 里,毕竟基本不会有人拿 Python 开发 GUI 。
pkoukk
2023-12-14 16:46:44 +08:00
完全赞同#30 的观点
其他语言的目的多少都是为了工程化,项目化
python 就是个通用领域的 matlib ,人家用的是 python 里面的 pandas,numpy 这些库
用 python 只是顺带手
pkoukk
2023-12-14 16:48:09 +08:00
@lambdaq #5 vs code 可以搭建起完整的 c#开发环境,完全免费,允许商用。
lambdaq
2023-12-14 16:55:57 +08:00
@Mithril 所以你是要论证计算机编程语言如何普及,还是「大型项目里 C#如何打败 py 」 ?

互联网上大型 C#项目能上榜的就一个 so 站。。。而且被 chatgpt 抢走不少流量。
wenyuhe
2023-12-14 16:59:43 +08:00
@xingheng python 是动态强类型的
cat9life
2023-12-14 17:01:52 +08:00
拍黄片是最好的语言!不接受反驳

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

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

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

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

© 2021 V2EX