1
akfish 2014-11-18 09:05:45 +08:00 3
从语言特性来讲,没几个语言干得过C#。
从运行时的技术水准来看,即使.Net不开源,JVM也干不过CLR。 接下来就看跨平台移植能否保证较好的一致性了。 当然Java不见得会死,会死了不见得是因为.Net。 BTW,.Net开源前有对开源社区友好的Community Promise,Java开源前什么德行不知道的可以去了解下J++。 不过好像不管怎样微软总是被黑出翔的一方。 一家之言,不服不要来辩。 |
2
est 2014-11-18 09:08:35 +08:00 1
C#和CLR再优秀也奈何不了过了这波时机了。Java生态圈不是.NET能够撼动的了。
别的不说,.NET先搞个 Hadoop 统计别的生态系统出来,至少还需要10年。 |
3
zts1993 2014-11-18 09:16:28 +08:00
C#确实是个好语言
|
4
Narcissu5 2014-11-18 09:20:11 +08:00
我要是说.net在linux上连个能用的服务器都还没有你信么?
会有人把hadoop,storm,spark用c#重写一遍么? 不会?那不就完了。 |
5
tinymao 2014-11-18 09:20:29 +08:00
题外话,涛吴他们的内核恐慌即使是我也能听出他们一点也不黑啊。
|
7
zhujinliang 2014-11-18 09:32:58 +08:00
C#码农要涨价么~
是不是该庆幸在学校那会儿一个不教我们班而且不教计算机的老师逼着我学了C#。。。 |
9
freeze 2014-11-18 09:38:32 +08:00
有 Android 在 Java 就死不了,除非 Google 推其他语言。
|
10
archxm 2014-11-18 09:38:40 +08:00
lz, 这也叫中肯? 明显是一片讽刺杂文嘛, 根本算不上对java的评论.
|
11
dangge 2014-11-18 09:39:51 +08:00 via Android
专业大方向是Java,但是我在自学C(因为ACM需要
只想说哪有程序员只会一门语言的…… |
12
Just1n OP @archxm 讽刺杂文?我是真没看出来。 我觉得通篇有一个重点很符合我的看法: 「死」意味着什么呢?很简单:没人爱了。
|
13
archxm 2014-11-18 09:46:41 +08:00
@Just1n 那么这样吧, 我写篇文章, 解释什么叫屎, 之后呢, 再把楼主好好地介绍一番, 也不说别的. 看文章的人会怎么想呢?
|
14
akfish 2014-11-18 09:53:49 +08:00
@Narcissu5 说得好像重新实现一遍是唯一出路一样,搞个兼容层又不会死,M$的Azure上有Hadoop服务我会乱说?Hadoop有.Net SDK很久了我会乱说?Apache上可以跑ASP.Net我会乱说?
.Net开源的目的是让开源社区能放心的集成使用.Net技术,增加采用率,又不是说M$下战帖要把所有开源项目撸一遍战翻在地才高兴一样。 还有就是,这个世界上不止Web Server。C#光是靠着Mono在Unity3D里当脚本引擎这点,就有很大的社区了,说出来你信么。 |
15
Just1n OP |
16
jy01264313 2014-11-18 10:01:24 +08:00
不知道有人写 scala 吗
|
17
ipconfiger 2014-11-18 10:02:44 +08:00
貌似大多数Java的开源项目都有.NET的copy
|
18
bbx 2014-11-18 10:18:00 +08:00
永远停留在了 java 6
|
19
fwee 2014-11-18 10:22:12 +08:00
对jvm平台有个好处..说不定能推动scala的普及..
|
20
finab 2014-11-18 10:22:14 +08:00
C#语法感觉太完善了,完善到我都不想使用了 -- 使用objc半年后的感悟
|
21
Narcissu5 2014-11-18 10:41:15 +08:00
|
23
akfish 2014-11-18 10:49:31 +08:00 1
@Narcissu5 Unity3D用的是mono,mono是.Net的开源实现,首页上就号称“Cross platform, open source .NET framework”,这都叫关系不大的话,那还真不知道什么叫有关系了。
并不是微软亲生的那一堆binary才叫.Net,.Net实质上是一系列M$主导设计的标准/专利。 对于.Net围着IIS转的说法,表示呵呵。Again,这个世界不是只有Web Server。 |
24
dbfox 2014-11-18 10:54:18 +08:00
希望语言可以统一
降低各种开发的学习成本 这是进步,希望各种力量推动 关注产品本身,而非各种杂七八的技术 |
25
est 2014-11-18 10:59:56 +08:00 1
@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这个。。。。不评价。 |
26
Narcissu5 2014-11-18 11:09:17 +08:00 1
@akfish unity用的mono?那为什么mono支持C# 5了,unity还停在2呢??
IIS只是个Web服务器,那为什么WCF,signal都会用到它呢?不涉及J2EE的核心就是servlet,这是有原因的。 |
27
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。 |
28
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转的了?神逻辑。 |
29
jun4rui 2014-11-18 11:19:13 +08:00 2
楼主帖的两篇根本不算言之有物啊,内容很浅。
我说一下哈,目前JVM还有很多可以改良的地方,例如做成像Android的ART这种相当于是编译成本地代码的方式。 另一个是性能,其实对于还在跟随摩尔定律高速发展的硬件,性能恰恰是相对来说最容易提升的环节了。 C#缺少的是时间,虽然目前部分开源了,但是要做成一个生态,C#的很多库都没有跨平台的实现,就算跨平台那些库是不是要重写呢?就像Python2转Python3这种社区都做了好多年,C#跨个平台也不是说今天开源了明天就能开始用了,这一点还差得远。 C#还需要至少好几年的时间,才能在跨平台上达到Java目前的开发基础,而要作出java那种在跨平台上的杀手软件可能又要好几年,然后出现众多杀手软件的有良好氛围的生态,可能又要好几年了。 时不我待,我为C#开源点赞,但是现在真的太晚了。 |
30
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$绝望无比只得开源了。开源社区在互联网上话语权更大,于是很多人忘记了外面的世界有多大,一味唱衰是没意义的。 |
31
chocotan 2014-11-18 11:40:47 +08:00
没精通这门语言之前不敢说这语言不好....
|
32
jjx 2014-11-18 11:53:38 +08:00
现在说这个还是太早了, 所谓的跨平台,现在还只是mono, 没有看到ms的东西, 评价这个完全没有意义
ms是先放了个烟雾弹而已 |
33
est 2014-11-18 12:19:43 +08:00 1
@akfish web市场占有率是netcraft的吧?
抛开microsoft.com 和windows升级的一系列域名, 你看IIS占有率还有多少? 这个就好比QZHTTP占有率也能超过1%一样。其实就是咨询公司在能搜索到的域名跑了一圈curl -I,看返回的Server字段,加上域名的alexa权重,就得到了web server占有率。。。。我觉得这个方法脑洞太大。 |
34
love 2014-11-18 12:20:59 +08:00 1
说得好象java一无是处一样,C#特性是比java多,但语言层面很容易就追上的,最近java的进步就不错,.NET的开源应该会更一步刺激进化的速度。
而且象我这样的软黑应该不少,是决不会回去用C#的。 另外MS是不是真把LINUX当一等平台和windows平等支持也是未知数。 |
35
est 2014-11-18 12:29:51 +08:00
@love 要支持linux桌面,绝对不可能。最多支持mac。。。。linux那么多window manager就够阿三吃一壶。。。。。。。。
.NET战略和2001年的设想,相差太多了。XML数据库半吊子,json的mongodb风生水起。面向对象的WinFS做成了explorer的一个壳。。。。WPF什么的严重依赖windows的图形驱动方式,要真能移植就呵呵了。。。 |
36
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$有多少钱?开源社区有多少钱?现状总是可以改变的,软件开发说到底还不是拼人力财力。 |
37
andrewpsy 2014-11-18 12:45:17 +08:00 via iPad
如果MS:
1 开发一个vm导向的精简的Win8或者win10,免费或者超级便宜 2 发布社区版本的SQL Server,和VS2013社区版本一样的使用协议 3 把Azure上的Windows VM价格降下来,不指望和Linux一样便宜但是不能贵太多 这三点做到了竞争力上升n个档次。 |
39
min 2014-11-18 13:04:37 +08:00
c# clr是通用目的的 并非局限于web 和node php之类不同的
|
40
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能做什么,等个几年你就知道了,微软有钱砸。 |
41
est 2014-11-18 13:21:45 +08:00
|
42
zhangdawei 2014-11-18 13:27:27 +08:00
微软确实坑队友,尤其是入门的,
|
43
zongwan 2014-11-18 13:30:22 +08:00
swift,objc => IOS
java => android .Net => ??? 虽然现在有不少跨平台方案 如 cocos 底层SDK 硬件接口 还都是平台主要语言实现的 什么时候能有统一的一天? |
44
akfish 2014-11-18 13:38:44 +08:00
@est 你要这样理解我也没办法,有能力的开发者都不会把自己的路走死,这年头不能通吃几个平台,不能快速切换的人早饿死了。
M$现在.Net也开源出来了,实质上可以由开源社区fork维护后,被坑很难(当然如果你把开源社区heart bleed之类的事情算成坑队友的话,还是有可能的)。 开源不过是为了专注于技术,就别提坑队友这种商业化政治化的东西了,技术水平如何看看源代码就知道,亲自调查实践后在再发言比较好。 为了黑而黑,而不去至少学习一下别人技术的可取之处,损失的是你自己。 就此打住吧。 |
46
Heracles 2014-11-18 14:16:57 +08:00 via iPad
想想C语言的生命力真是强大
|
47
zhouquanbest 2014-11-18 18:05:40 +08:00
Java这种面向的就是需求稳定的Server
君不见COBOL十多年了 也没更新过 大多数厂都还在Java6 同样的看看Python 升到3的最大阻力还是大公司都认为2足够用 .Net特性多有何用 |
48
hitsmaxft 2014-11-18 18:56:46 +08:00
作为一个被迫转向java的开发人员, 我只能说, java == 狗日的语言.
|
49
semicircle21 2014-11-25 17:53:49 +08:00
@akfish 我对你提到的把语言编译成 CLR 的很感兴趣, 请教一下有什么资料的链接没? 我只搜到了 Jigsaw, Irony..
|
50
akfish 2014-11-25 23:59:42 +08:00 1
@semicircle21 Irony是用来快速生成编译器前端的,生成AST(Abstract Syntax Tree),然后你要自己做后端完成代码生成以及优化,即生成代码CIL(http://www.ecma-international.org/publications/standards/Ecma-335.htm)。
当初我做的时候还没有DLR(http://msdn.microsoft.com/en-us/library/dd233052(v=vs.110).aspx),如果你只是需要port动态脚本语言到.Net上当脚本语言用的话,DLR更加方便,你只需要提供特定格式的AST,DLR帮你解决代码生成和优化,并且会随着.Net的升级自然享受到新的优化算法。IronPython、IronRuby都是用DLR做的。 另外还有Roslyn(http://msdn.microsoft.com/en-us/vstudio/roslyn.aspx),这个提供了C#/VB的compiler API,做代码分析用。 |
51
semicircle21 2014-11-27 10:36:02 +08:00
@akfish 非常感谢, 我大概需要点时间来消化这些~
|