这篇文章是我看到的写的最中肯的关于“.Net 开源”和“Java 将死”的因果论

2014-11-18 08:38:30 +08:00
 Just1n

http://www.zhihu.com/question/26601888/answer/33571406
还有一篇附带的:
http://www.zhihu.com/question/26591815/answer/33476601

6578 次点击
所在节点    分享发现
51 条回复
Narcissu5
2014-11-18 10:41:15 +08:00
@zkd8907 下一波大浪拍上来的时候.net会有机会,问题是下一波在什么时候呢?

@akfish 其实很多技术都有各种客户端,比如python的,但java还是老大,就是这么回事。.NET的所有技术基本上围着IIS转,没IIS什么都没有。helios?pre-alpha阶段好不好。unity3d c# 是自己的一个AOT的编译器,跟.net关系不大。
zkd8907
2014-11-18 10:45:46 +08:00
@Narcissu5 技术的大浪每天都在拍的,而且从来不会有很明显的界线 =。=|||
akfish
2014-11-18 10:49:31 +08:00
@Narcissu5 Unity3D用的是mono,mono是.Net的开源实现,首页上就号称“Cross platform, open source .NET framework”,这都叫关系不大的话,那还真不知道什么叫有关系了。
并不是微软亲生的那一堆binary才叫.Net,.Net实质上是一系列M$主导设计的标准/专利。

对于.Net围着IIS转的说法,表示呵呵。Again,这个世界不是只有Web Server。
dbfox
2014-11-18 10:54:18 +08:00
希望语言可以统一
降低各种开发的学习成本
这是进步,希望各种力量推动
关注产品本身,而非各种杂七八的技术
est
2014-11-18 10:59:56 +08:00
@Narcissu5 .NET做web围着IIS转就算了,关键是IIS的核心部件System.Net.*,其实是一个WinNT的内核驱动 http.sys 。这玩意压根没法移植。所以.NET除非有特别的姿势,web这一块不会冲击现有市场。

更不用说各种非主流数据库连接了。基本来说C是一等公民,Python由于热门基本和CPython/ctypes/FFI成熟是二等公民,有各种官方和非官方的binding。js是三等公民,其他语言都是没人爱的孩子。。。。。。。。


@akfish Hadoop有.NET的SDK和一个原生的纯.NET的集群计算生态系统是完全两个概念。。。。。。。

Unity3D这个。。。。不评价。
Narcissu5
2014-11-18 11:09:17 +08:00
@akfish unity用的mono?那为什么mono支持C# 5了,unity还停在2呢??

IIS只是个Web服务器,那为什么WCF,signal都会用到它呢?不涉及J2EE的核心就是servlet,这是有原因的。
akfish
2014-11-18 11:11:44 +08:00
@est 的确是两个概念,这个从来就不是重点。
重点是.Net运行时及C#语言涵盖的更大范畴更大,非要局限到Web Server、集群式计算这一块来讨论,没有意义。
没有原生实现不代表不能用,要冲击某个市场也不总是通过copy一个自己的版本来做到,“.Net没有xxx的实现所以干不过xxx的想法”过于狭隘了。

非要讨论web市场?好吧,看看Wiki好了: http://en.wikipedia.org/wiki/Web_server#Market_share
Apache第一IIS第二,市场占有率只差了4%而已。
也就是说,M$根本就没有靠.Net开源去冲击Web Server市场的必要,实际上M$在win server上赚的钱要多得多。

.Net开源下的这盘棋远大于web server。
akfish
2014-11-18 11:16:37 +08:00
@Narcissu5 Unity3D用了低版本的Mono Runtime,有问题么?我当年在一家初创做CTO时,就曾经亲自操刀从驱动层开始一直到.Net Interop把Unity3D改装到能支持一种特殊的输入硬件,如果Unity和.net无关的话,我还真不知道我是怎么做到的。
人家Unity3D自己都说了用的mono,事实上Unity脚本的基类就叫MonoBehaviour,不知道还有什么好争的。

所以一个框架里的某个库/模块用到IIS,于是这个框架就是围着IIS转的了?神逻辑。
jun4rui
2014-11-18 11:19:13 +08:00
楼主帖的两篇根本不算言之有物啊,内容很浅。

我说一下哈,目前JVM还有很多可以改良的地方,例如做成像Android的ART这种相当于是编译成本地代码的方式。

另一个是性能,其实对于还在跟随摩尔定律高速发展的硬件,性能恰恰是相对来说最容易提升的环节了。

C#缺少的是时间,虽然目前部分开源了,但是要做成一个生态,C#的很多库都没有跨平台的实现,就算跨平台那些库是不是要重写呢?就像Python2转Python3这种社区都做了好多年,C#跨个平台也不是说今天开源了明天就能开始用了,这一点还差得远。

C#还需要至少好几年的时间,才能在跨平台上达到Java目前的开发基础,而要作出java那种在跨平台上的杀手软件可能又要好几年,然后出现众多杀手软件的有良好氛围的生态,可能又要好几年了。

时不我待,我为C#开源点赞,但是现在真的太晚了。
akfish
2014-11-18 11:38:52 +08:00
关于Web市场的问题,感兴趣的可以去看下微软的财报:
http://www.microsoft.com/investor/EarningsAndFinancials/Financials/FY13/Q4/SegmentRevenues.aspx
2013财年第四季Servers & Tools的Revenue是$20,281(million)

2015财年第一集财报里有这么一段:
Commercial revenue grew 10% to $12.28 billion, with the following business highlights:

· Server products and services revenue increased 13%, with double-digit growth for SQL Server, System Center and Windows Server.

Apache不是商业公司,这样比的确不好,大概找了下也就wiki里提到了收入:
http://en.wikipedia.org/wiki/Apache_Software_Foundation#Financials
In the 2010–11 fiscal year, the Foundation took in $539,410, almost entirely from grants and contributions with $12,349 from two ApacheCons. With no employees and 2,663 volunteers, it spent $270,846 on infrastructure, $92,364 on public relations, and $17,891 on two ApacheCons.[13]

不是一个数量级的好不。

所以抢市场什么的、太晚了什么的可以消停下了,说得好像M$绝望无比只得开源了。开源社区在互联网上话语权更大,于是很多人忘记了外面的世界有多大,一味唱衰是没意义的。
chocotan
2014-11-18 11:40:47 +08:00
没精通这门语言之前不敢说这语言不好....
jjx
2014-11-18 11:53:38 +08:00
现在说这个还是太早了, 所谓的跨平台,现在还只是mono, 没有看到ms的东西, 评价这个完全没有意义

ms是先放了个烟雾弹而已
est
2014-11-18 12:19:43 +08:00
@akfish web市场占有率是netcraft的吧?

抛开microsoft.com 和windows升级的一系列域名, 你看IIS占有率还有多少?

这个就好比QZHTTP占有率也能超过1%一样。其实就是咨询公司在能搜索到的域名跑了一圈curl -I,看返回的Server字段,加上域名的alexa权重,就得到了web server占有率。。。。我觉得这个方法脑洞太大。
love
2014-11-18 12:20:59 +08:00
说得好象java一无是处一样,C#特性是比java多,但语言层面很容易就追上的,最近java的进步就不错,.NET的开源应该会更一步刺激进化的速度。
而且象我这样的软黑应该不少,是决不会回去用C#的。

另外MS是不是真把LINUX当一等平台和windows平等支持也是未知数。
est
2014-11-18 12:29:51 +08:00
@love 要支持linux桌面,绝对不可能。最多支持mac。。。。linux那么多window manager就够阿三吃一壶。。。。。。。。

.NET战略和2001年的设想,相差太多了。XML数据库半吊子,json的mongodb风生水起。面向对象的WinFS做成了explorer的一个壳。。。。WPF什么的严重依赖windows的图形驱动方式,要真能移植就呵呵了。。。
akfish
2014-11-18 12:36:40 +08:00
@est 对于占有率统计方式不予置评,贴出来仅供参考而已。私以为M$的财报是相当有说服力的,Server产品的收入一直很高并且还在增加,足以说明.Net开源并不是冲着非Windows平台的Web Server市场去的,也不是很多软黑眼中的绝望之举。
说这些只是想指出:.Net Framework的scope是远大于Web Server的,而不是很多人认为的 .Net == IIS+ASP.Net,微软布这么个局才不只是为了抢Web Server一系的饭碗,局限在这一块市场没意思。

这年头抢的都是话语权,IT界没什么东西能干过平台/标准/语言所带来的话语权了吧。
而且,M$有多少钱?开源社区有多少钱?现状总是可以改变的,软件开发说到底还不是拼人力财力。
andrewpsy
2014-11-18 12:45:17 +08:00
如果MS:
1 开发一个vm导向的精简的Win8或者win10,免费或者超级便宜
2 发布社区版本的SQL Server,和VS2013社区版本一样的使用协议
3 把Azure上的Windows VM价格降下来,不指望和Linux一样便宜但是不能贵太多
这三点做到了竞争力上升n个档次。
est
2014-11-18 12:54:44 +08:00
@akfish 抛开web,C#还能做个啥?WinPhone?
min
2014-11-18 13:04:37 +08:00
c# clr是通用目的的 并非局限于web 和node php之类不同的
akfish
2014-11-18 13:17:06 +08:00
@est 这个你还真不用操心,不是重点,M$把.Net开源是为了推语言标准和平台,而不是在这个平台上实现的产品。
推广过程中也许需要微软移植/推出几个有竞争力的产品,但微软肯定是希望更多社区项目使用.Net运行时/C#语言来实现。你可以去了解实现一个target到.Net CLR上的编译器有多么容易,还有一大堆API能让开发者能撸出功能强大的工具链,几乎撸出来就能用于实际生产,我前不久做过一个外包就是把CoffeeScript编译到.Net 4.5上跑。
举这个例子是为了说明一点:创造/移植一个新语言到某平台上是相对冷门的需求,微软却在.Net CLR的编译器架构上费力操刀搞这些。你还觉得微软折腾半天就为了推个Xxx .Net for Linux?

纠结于现状没意义,.Net能做什么,等个几年你就知道了,微软有钱砸。

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

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

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

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

© 2021 V2EX