在 TorchSharp,SciSharp 这类开源项目的引导下。微软在 OPENAI 的投资,也刷了一波 AI 圈子的好感。
1
lujiaxing 2023-12-14 13:24:19 +08:00
额..... 日本在蚕食越南的生态?
|
2
encro 2023-12-14 13:25:27 +08:00 1
不可否认,c#是目前最先进的语言之一。
|
3
encro 2023-12-14 13:27:30 +08:00
可惜好长时间了,为啥一直不温不火呢?
|
4
liprais 2023-12-14 13:27:52 +08:00
笑掉大牙
|
6
lambdaq 2023-12-14 13:31:19 +08:00 3
LZ 贴一下购买的正版 Visual Studio 凭证。
没有?没有那蚕食个 der |
7
stimw 2023-12-14 13:40:13 +08:00
说实话在澳洲 c#比 java 多很多,只是没有大厂(类似 Canva )在用。微软生态包括 azure 挺火的。但是我个人不是很感冒。
|
10
Rehtt 2023-12-14 13:43:17 +08:00 10
@lambdaq 喷也喷不到点子上,开发 C#又不是必须要 Visual Studio ,而且 C#还是免费开源的 https://dotnet.microsoft.com/zh-cn/platform/free
|
11
jtwor 2023-12-14 13:43:59 +08:00
蚕食。。
|
12
roundgis 2023-12-14 13:51:16 +08:00
現在 excel 都可以用 python 了。是不是也在蠶食 python 的市場?
|
13
bianhui 2023-12-14 14:07:00 +08:00
各有各的好,谁也蚕食不了谁。
|
14
grance 2023-12-14 14:09:15 +08:00 3
php 天下第一。其他的都可以退下了
|
15
whitehack 2023-12-14 14:16:52 +08:00 1
不是最后都归 js 的吗
|
16
duke807 2023-12-14 14:36:51 +08:00 via Android
只有使用 windows 的程序员才考虑用 c# 吧
然而开源界主流系统是 linux |
17
june4 2023-12-14 14:54:35 +08:00
平台本身相对别的开源语言没有优势,且有 c#的出身和 win 为主这二大恶心点,就决定永远不可能大热
|
18
xingheng 2023-12-14 15:03:58 +08:00
C#是好像是动态强类型的编译型语言,跟 Python 完全不是一个路子,谈不上蚕食吧。
|
19
hez2010 2023-12-14 15:05:26 +08:00 via Android 5
|
20
hahastudio 2023-12-14 15:14:11 +08:00 2
但不管 stable diffusion ,openai ,还是 llama ,起手基本都是是 pip 。我倒是觉得 python 受到的关注度比其他语言都高得多,可能更多是的因为 pytorch 这个明星项目吧
|
22
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 生态」 |
23
GeekGao 2023-12-14 15:48:00 +08:00
“我感觉” “我认为” “因为最近有品牌露出”
容易产生错觉,毕竟没有数据支撑。 |
24
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 的东西都这个价 |
25
hez2010 2023-12-14 15:55:52 +08:00 via Android
@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 问题了) |
26
hez2010 2023-12-14 15:58:58 +08:00 via Android
@hez2010 简而言之
开源免费的: https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp 额外加了 ai 补全之类的功能但是只对个人免费的补充部分: https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit 你可以选择只用上面那个 |
27
lambdaq 2023-12-14 15:59:48 +08:00 1
@hez2010 这个问题的点在于,如何给团队统一开发配置,如何给商业客户统一开发规范和环境。因为这是「蚕食 py 」的必要条件。
py 用不用 pycharm 都不是问题,存在大把不用 IDE 直接 vi (甚至都不是 vim ) 能写 py 的老哥 。 C# 这边,反正我是必须依赖 IDE 。。。。这就是 C# 的普及门槛。py 一个 2MB 的运行时+随便一个垃圾记事本编辑器一把梭。。。很多人直接服务器跑一个 py 脚本处理杂事,ipython 快速验证一个想法。。这方面 C# 恐怕 JIT/AOT 都没捂热, 别人活都干完了。 |
29
idealhs 2023-12-14 16:06:43 +08:00 6
@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 生态差。 |
30
hez2010 2023-12-14 16:14:07 +08:00 via Android 1
@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 |
31
billccn 2023-12-14 16:15:17 +08:00 4
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 在蚕食好不好 |
33
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 的老哥” 对比 “如何给团队统一开发配置,如何给商业客户统一开发规范和环境”,并不能得出什么有意义的结论。 |
35
hez2010 2023-12-14 16:34:56 +08:00 via Android
不过,虽然反驳了不少出现了实事错误的评论,但我对于 c# 蚕食 Python 生态这件事情本身也是存疑的。感觉更多的还是 Python 做完 prototype 建完模之后落地应用的时候换成 c# 来实现到最终 app 里,毕竟基本不会有人拿 Python 开发 GUI 。
|
36
pkoukk 2023-12-14 16:46:44 +08:00
完全赞同#30 的观点
其他语言的目的多少都是为了工程化,项目化 python 就是个通用领域的 matlib ,人家用的是 python 里面的 pandas,numpy 这些库 用 python 只是顺带手 |
38
lambdaq 2023-12-14 16:55:57 +08:00
|
40
cat9life 2023-12-14 17:01:52 +08:00
拍黄片是最好的语言!不接受反驳
|
41
pengtdyd 2023-12-14 17:12:30 +08:00
C:笑看风云淡,坐看云起时。
|
42
Chad0000 2023-12-14 17:34:49 +08:00 via iPhone
@lambdaq #22
我也是 vs2003 就写 C#了一直写到现在。你竟然不知道 Visual Studio Community 我比较惊讶。 C#这两年份额都在提升,去年差点成为年度语言,今年应该没问题了。 没有钱继续使用 Visual Studio Community 没问题,实际上外面的公司随便买软件是常事,什么 office azure 订阅,VS pro 版,各种工具都是只要申请就买。 这个钱和开发人员的工资来讲九牛一毛都算不上。 |
43
oldshensheep 2023-12-14 17:52:57 +08:00
用 vscode 开发 C#是怎么看第三方库和标准库的源码的呢?搞半天也不行,Python 、Java 、Golang……都是点一下就可以看源码。看不了源码那怎么方便的 debug 第三方库的代码呢
再者微软的 C#Debugger 还不是开源的…… |
45
hez2010 2023-12-14 18:15:01 +08:00
@oldshensheep 在 C# 插件设置里开启反编译,然后就能直接看了。C# 的 debugger 除了微软的还有三星的,后者是开源的: https://github.com/Samsung/netcoredbg
本质上都是调用 .net runtime 提供的 debug api ,都是开源的,调试器只不过是套个壳子罢了。 |
46
crackidz 2023-12-14 18:21:17 +08:00
@zzzkkk 至少在 10 年之前 eclipse 的应用要远比 JB 家多的多,真正 IDEA 火起来应该是要到 12-13 年以后的事情了,我印象比较深的事件还是 Google 放弃 eclipse (太难配,太多自定义了...
|
47
lambdaq 2023-12-14 18:23:07 +08:00
@Chad0000 最后接触是在 aspnet atlas silverlight 时代。
公司随便买软件,的确是常事,但是普及一个语言这就是门槛了。 你们大可否认这个门槛的存在,但是我觉得这就是 C#缺乏说服力的表现。 |
48
lambdaq 2023-12-14 18:24:05 +08:00
如果你们听说过 atlas silverlight 就知道我为啥不写 C# 了。。随时被金主弃坑的感觉。。。
|
49
lambdaq 2023-12-14 18:25:19 +08:00
@zzzkkk 有。但是我懒得打字。。我就说一个线索,你们品一下 eclipse 这名字。。 再想一下 sun 这名字 。。。。
|
50
oldshensheep 2023-12-14 18:51:55 +08:00
@hez2010 这个我启用了的,就是这个 Navigation to Decompiled Source ,我是按 CTRL 再点击函数名来看源码的,但是看到的是那个 MetadataAsSource 没有源码。
只有 debug 时可以进入源码,应该是因为开启了这个 Debug › Symbol Options: Search Nu Get Org Symbol Server 其实我感觉很奇怪,明明是其他语言非常直接的一个功能,C#搞得这么麻烦 |
51
SayoKurisu 2023-12-14 18:53:59 +08:00
C# 是挺好用的,dotnet core 跨平台,还有跨平台 UI 库,但是架不住 python 包多啊
|
52
LaurelHarmon 2023-12-14 19:04:39 +08:00
啥玩意,现阶段来说,Python 就是 AI 的官方语言
|
53
hez2010 2023-12-14 19:33:35 +08:00
@oldshensheep 其他大多数语言都是源码分发库,你得先把源代码拉到本地来构建才能运行。而 C# 有自己的 ABI 所以不需要源码分发,只需要引用库编译后的二进制产物就能构建应用了,不含有源码信息。
至于 metadata 的问题,那个是因为 .net 的基础库有引用程序集的概念,引用程序集只提供了 API 的声明,不包含实现,而实际的实现在其他地方。正如上面所说的,因为有自己的 ABI ,所以不需要源码,只要能成功链接符号到你引用的程序集上就能成功编译,所以编译时编译器并不一定知道你引用的库的代码,而可能只知道有哪些 API ,到了调试时毕竟要执行实际代码了自然就能跳转进去。 |
54
MakHoCheung 2023-12-14 20:06:32 +08:00
@encro 先进的地方在哪
|
55
kayleh 2023-12-14 20:20:16 +08:00 via Android
幽默
|
56
thinkershare 2023-12-14 21:41:54 +08:00 1
@oldshensheep 对于自己不理解的东西,先去尝试理解它的设计,然后再来评价。.NET 的 Assembly 设计是非常优秀的,pip/node 包的那么多破事就是因为版本依赖一开始就没有正确设计在 runtime 中。.NET 平台诞生之初就是要解决 dll hell 问题。我已经不知道多少次被 pytroch 的各种包折腾了。各种 ML 库的依赖绝对可以搞到你头大。随便一个小版本升级就 GG,conda 的依赖解析都是按照小时计算。后来 conda 自己又开始锁定包版本。至于源码查看,其实是因为很多包不提供二进制分发,如果 nuget 包提供二进制分发,使用 source link+pdb 文件,调试源代码一点也没问题。我天天调试.NET Runtime 和 ABP 等第三方框架的源代码,一点问题也没有。
|
57
thinkershare 2023-12-14 21:46:27 +08:00
就我看来,python 的设计是很糟糕的,除了降低了写代码的门槛低。之所以火,纯粹是因为搞 ML 这批人不是计算机专业的,很多人都是学数学等相关专业的。另外就是 python 存在大量的 wapper 函数库(也就是 python 在这这里只是调用底层 c/c++的一层胶水), 这显著降低了 python 的门槛。python 是一门好用,却难学的语言。大部分计算机要不难用,要不难学,c++例外,即难学有难用。
|
58
princelai 2023-12-14 22:08:46 +08:00 via Android
@thinkershare conda 现在有新的 solver 了,libmamba 解决依赖快了很多,可以试试
|
59
chenqh 2023-12-14 22:11:29 +08:00
@thinkershare 说这种先进有什么用呢?C#语法先进,为什么火的是 java?就语法而言,C#不比 java 好?就论语法,js 那种东西
就不该有 JIT,但是 js 的 jit 是最好的 |
61
mooyo 2023-12-14 22:22:51 +08:00
有点幽默
|
62
laminux29 2023-12-14 22:31:05 +08:00
装了 Python 后,一个 PY 就能跑起来,开个控制台就能跑 PY 脚本。C#?还在下载 VS ,找序列号。
不过真比语言,C# 比 PY 先进一个数量级。C# 人家是正经的工业级语言,PY 和 js 一丘之貉。 |
63
forgottencoast 2023-12-14 22:42:15 +08:00
|
64
Hellert 2023-12-14 22:50:31 +08:00 via Android
|
65
enihcam 2023-12-14 23:20:17 +08:00 via Android
vs for mac 团队都解散了,给 vscode 做 c# dev kit.
还 vs 这 vs 那的,傻不傻? |
67
wdlth 2023-12-14 23:37:19 +08:00
没这么快,SciSharp 的很多东西都是刚出来,甚至连 numpy 都没完全移植。
|
68
chenqh 2023-12-14 23:59:33 +08:00
@prudence 然后呢,现在 C#国内互联网基本死了,只能在工控界和游戏界活着,一步先,步步先,C#语法再领先有用吗?
如果领先就能流行,ms 后来就不会搞 ts 了,而是投入 dart 了 |
69
Chad0000 2023-12-15 02:20:18 +08:00 via iPhone
|
70
oldshensheep 2023-12-15 08:10:09 +08:00
@hez2010
@thinkershare 那你知不知道 Java 也是二进制分发的?只是 Java 的库几乎都是提供源码下载的。你写 Java 就算没有源码,IDE 也可以反编译,而不是像 c#一样显示个 metadata ,也许 vs 或者 rider 可以自动反编译或者联网下载源码,但是反编译后的代码是优化后的,可能不容易看懂,而且 vs 就是限制 Windows ,rider 收费。 这其实就是工具链上的问题。 和 Python 对比有点搞错对象了,和工程化完善的 Java 、Go 、Rust 比还差不多。而且不知道你是不是不知道我说的查看源码的功能是什么功能,就是 CTRL+鼠标右键点击查看第三方库的源码的功能,这个其他语言的 IDE 都有。 我也看到 vs 在 2021 年才支持直接 debug 外部代码功能。。。这个功能 Java 的 IDE 可能 20 年前就有了 https://devblogs.microsoft.com/visualstudio/debugging-external-sources-with-visual-studio/ 其实那个链接里的下面有人评论建议提交一个直接看源码的功能,那个链接到一个 GitHub issue ,因为不是和 debugger 相关的功能,issue 被关闭了。 Make the external source node available all the time even when I write my code. It would be just as useful to have access to external sources while writing code. Today I have to use ILSpy all the time. https://developercommunity.visualstudio.com/t/Make-the-external-sources-node-available/1513974 可能现在还没有这个功能吧。。。 |
71
popil1987 2023-12-15 08:31:47 +08:00
基于 Google 和 Microsoft 两家公司之前干过的事,他们的产品得防着点。
注意 Chromium 和 Chrome 的区别,Codium 和 VSCode 的区别 你可以说 Chrome 本地插件不好安装,Youtube 限制 Firefox 是商业决策 你可以说有些插件是只有 VSCode 才能安装是商业决策 防着这两家公司,别到时候为他人做嫁衣裳。 |
72
yvescheung 2023-12-15 08:47:09 +08:00
TIOBE 12 月 Python 流行度降了 0.3%,C#降了 0.35%
|
73
duke807 2023-12-15 08:52:35 +08:00 via Android
python 可以先编译成 c ,c 再编译成二进制程序,源码保密好
python 可以用于 fpga 和 芯片设计 的仿真领域,譬如使用 cocotb ,c# 有吗? 就算 python 支持的功能 c# 都能支持,为啥我要换? 更何况大把 python 支持的功能 c# 不支持 更更何况,我一个十多年 linux 老用户,为啥要主动用 win 搞的东西,请给我一个理由 |
74
Nasei 2023-12-15 08:55:40 +08:00
@oldshensheep vs 支持调试库代码不是 21 年,source link 早就有了
|
75
tairan2006 2023-12-15 08:56:45 +08:00
C#和 Python 不搭嘎啊,我觉得对于非专业程序人员,C#的门槛比 Python 高太多了
|
76
lopda 2023-12-15 08:59:23 +08:00
突然想到个词语:- 禁 luan (狗头
😂。 |
77
dayeye2006199 2023-12-15 09:15:17 +08:00 via Android
这类项目不敢用的。pytorch 有什么问题肯定是优先解决 Python 前端的。官方支持的 cpp 前端都有各种问题,第三方维护的其他需要 binding 问题就更多了。
而且现在科学计算的后端已经收敛了,就是 numpy ,aten ,xla 这类 cpp 糊出来的,前端就是各种胶水需要,性能啥的根本不重要,好用灵活就对了 |
78
ragnaroks 2023-12-15 09:43:35 +08:00
先进的语言不一定用的人多,但是门槛低的语言用的人一定多,比起担心 csharp 蚕食 python ,不如担心下这两能不能躲过 js/ts 的单杀
|
79
p1gd0g 2023-12-15 09:46:26 +08:00
vsc 写 c# 写了两年的我看懵了
|
80
Rorysky 2023-12-15 09:47:47 +08:00
跟随微软的技术会变得不幸(除 游戏行业)
|
81
c2const 2023-12-15 10:02:36 +08:00
C#用的中小公司挺多的 :)
润海外机会也比较多 :) |
82
oldshensheep 2023-12-15 10:02:51 +08:00
@Nasei 那个文章里也说了,之前是可以,但是不容易搞,2021 年 VS 才正式集成了这个功能。
|
83
janus77 2023-12-15 10:05:45 +08:00
又到了我第二喜欢的语言之争系列环节了
|
84
CaptainD 2023-12-15 10:37:29 +08:00
现在 Python 感觉是主流语言中护城河最深的,AI 和数据处理太火热了
|
86
XIVN1987 2023-12-15 10:50:35 +08:00 1
C#是写客户端软件的最佳语言,,
可惜中国客户都不愿意为客户端软件付费,,所以厂家也就不愿意认真写客户端,,更倾向于拿 electron 浏览器套壳。。一个个巨占内存、启动慢、操作卡顿 |
87
gowk 2023-12-15 11:02:42 +08:00
@thinkershare #56 看老哥使用了 ABP ,ABP 有啥书籍可以推荐吗
|
88
QiShine OP @thinkershare 会不会,好的产品不是设计出来,而是不断迭代出来的?
|
90
QiShine OP @billccn 你说的没错,Python 很方便试错的,更像高级的计算器。关键是那帮人搞定了公式和算法过后,大部分好像都会选择 c# 来搞工程实现。
|
91
ttwxdly 2023-12-15 11:32:12 +08:00
跟随微软的技术会变得不幸
|
92
sariya 2023-12-15 11:39:20 +08:00 via Android
使用场景都不一样吧
|
94
XIVN1987 2023-12-15 11:54:53 +08:00
@iorilu
常用的 QQ 、微信、音乐播放器、钉钉、阿里旺旺、视频播放器、下载软件这些你有几个付费的。。 你别告诉我你给 B 站付费了,,给 B 站付费和客户端有什么关系,,难道不是为内容付费吗??我上面说的有什么问题,,中国人不愿意为客户端付费这难道不是常识吗??这你也要杠一下?? |
96
duluosheng 2023-12-15 12:14:55 +08:00
汉语才是世界上最牛逼的语言,不是汉语编程,我是不认可的。
|
98
xgdgsc 2023-12-15 13:19:30 +08:00
看见 var 就滚回去用 python julia 了
|