其实.net平台没这么糟

2013-05-17 23:33:36 +08:00
 Ricepig
近两年来经常听到说,.net及微软体系开发的网站/程序/应用很难扩展,容易遇到性能问题,低效等等类似的话,也有不少仇视微软平台的。对于C#语言,也因为出身不好,地位可能还不如java吧(就语言本身来说)。极端一点的,觉得用微软平台或开发语言就是坏品味的代表。

但是,我发现许多人对这个问题的看法并不直接来自于自己的经验,而是通过阅读一些文章而得到。对此,我经常表示无奈。在一些日子以前,我看到了老赵(@JefferyZhao)的一些语言比较的文章,非常客观地说明了C#语言的优点。

今天,我无意中阅读了Javaeye站长Robbin的一篇文章:http://robbinfan.com/blog/43/rid-off-dotnet-experience。写的很好,给大家推荐了。

其中,他写道:“简单说来,就是单纯让.net做应用层的编程语言和框架,其他都交给Linux平台的开源解决方案。而.net框架单纯做应用层,无论ASP.net MVC的开发效率,还是.net CLR虚拟机的运行效率都非常好,目前我们单台Windows服务器上跑几百万的动态请求毫无压力,而且应用层架构是可以横向扩展的:如果请求负载非常高,只需要添加更多Windows服务器即可。总之,做到了扬长避短。”

Robin前几年亲自将JavaEye从java改成ror实现,深深体会到ror的优势,现在他能够说.net开发效率和运行效率都很好,是有一定说服力的。

当然,微软平台的开放性一般,而且收费较贵,这个是无法规避的缺点。但是其中一部分也是可以克服的。

最后,还是要再赞一下Visual Studio,我心目中最强的IDE,没有之一。免费阉割版的Express都很良心。这也是我为什么还眷恋windows而没法完全转向osx的重要原因之一。
15461 次点击
所在节点    程序员
149 条回复
Ricepig
2013-05-17 23:35:45 +08:00
寒,这贴居然还发现了一个V2EX的bug。。。MVC处被不正确转义。
yetone
2013-05-17 23:35:49 +08:00
难道我还要去花钱买个 windows 才能开始开发?
Ricepig
2013-05-17 23:38:46 +08:00
@yetone
1. Mono + MonoDeveloper + Linux
2. 找到一台装windows的电脑比较简单吧,品牌机基本都预装吧

另外,参考一下objective-c,可能稍微能平衡一点?
siw
2013-05-18 00:29:19 +08:00
不知道你有没有看过 Windows Linux File System 性能比对。。。

“目前我们单台Windows服务器上跑几百万的动态请求毫无压力”
这应该要亮出服务器配置和如何统计的才客观
cyberscorpio
2013-05-18 00:52:46 +08:00
微软的问题是这些年技术路线摇摆不定,不断的推出新的技术概念,过些年又将其废弃,然后再另起炉灶,重开一坨。

微软底子厚,靠着 windows / office 的产品惯性,这么折腾倒还折腾得起。但是对于技术人员来讲,你投资在他的技术上的时间和精力,那可都打了水漂了。

人生苦短,我们要珍惜生命,远离微软。
offspring
2013-05-18 00:58:42 +08:00
最强的IDE...比不上Xcode吧
siw
2013-05-18 00:59:47 +08:00
@cyberscorpio +1
而且网站什么的不需要微软平台限制,除了工作需求外 不碰就不碰
insraq
2013-05-18 01:05:06 +08:00
C#是个好语言,.Net平台实在不给力。
xiaoxuxu
2013-05-18 01:08:16 +08:00
@offspring 功能上是比xcode强很多的,用户体验比较差
reusFork
2013-05-18 01:11:58 +08:00
C#和.net都很好,mono也有windows版,不用担心微软的支持问题
keakon
2013-05-18 01:21:57 +08:00
刚用 Python 做了个应用,1 GB 内存双核 CPU 的 VPS,最复杂最耗时的动态页面也能到 420+ QPS,第二复杂的动态页面能到 670+ QPS(还都没做缓存哦),算起来每天处理 3000 万动态请求毫无压力吧。
其实满负荷下也只用了约 100 MB内存和 40% CPU,瓶颈在网络通信上(貌似把内网带宽用完了)。

至于这个应用做啥的,暂时保密。有 30 多个 handler(都和数据库打交道),所以别往 hello world 上猜了。

那么多语言比 Python 快 1、2 个数量级,如果还嫌性能差真不能赖语言,一定是你打开的方式不对。
chemzqm
2013-05-18 02:27:26 +08:00
我相信微软的技术能力,微软的研究中心应该是中关村里半夜用电最多的了,关键的问题是它几乎剥夺了开发者部分了解底层和选择上的自由,而且我了解的.net开发人员大多倾向于偏执,不愿尝试新事物。
ipconfiger
2013-05-18 03:49:52 +08:00
LZ说VS.NET是最好的IDE,敢问用的是正版么?你的windows系统是正版的么?,sqlserver是正版的么?
好吧,Express版的IDE+Express版的数据库+预装版的windows,用起来真心爽么?真实开发的时候还是偷偷打开了盗版的vs企业版吧。
另部署的服务器是正版的windows么?SqlServer呢?Mono + MonoDeveloper + Linux ?你真这么用的了?
Ricepig
2013-05-18 04:03:57 +08:00
@siw 其实我看过,NTFS在某些情况下会遇到性能瓶颈
Ricepig
2013-05-18 04:05:04 +08:00
@xiaoxuxu 请问哪里体验比xcode差呢?我想知道具体的例子。

xcode其实我只是想知道怎么才能让代码区域变得更大一点
Ricepig
2013-05-18 04:06:33 +08:00
@keakon 其实这个时候比的是大家的字符串操作速度吧,呵呵
tangzs
2013-05-18 04:09:55 +08:00
@chemzqm 同感
Ricepig
2013-05-18 04:16:23 +08:00
@ipconfiger 正在为正版化努力呢。不过用不用正版和vs是不是正版,好像相关性不大吧。不是某国人就不能说某国好了?

部署的服务器是正版的windows,要不是服务器预装,要不就是各种云计算预装,还额外付了钱呢。

数据库没有使用SQL Server,用不上,不是严肃的OLTP应用。不过华硕这个地球上靠谱的OLTP数据库都是要钱的呢。

其实Express版的VS挺良心了,除了没有Team Server集成,不能装插件之外,其他几乎没限制了,我用起来比较爽。不过还是努力买正版,原因是已经买了Resharper了。

你说express不爽,可能是因为上面还有商业版,心理不爽吧。就现代IDE功能和性能来说,vs即使是express版都是杰出的吧。

不过每个人对编辑器/ide诉求不同吧,我遇见过觉得Eclipse速度挺快,觉得vim自动补全和智能感知强悍,觉得NetBeans插件丰富,觉得IDEA界面新潮,觉得Emacs启动迅速体积不大的各种人,哈哈哈哈
Ricepig
2013-05-18 04:22:08 +08:00
@chemzqm @tangzs

倒不如说.net开发者小白和懒人多,因为开始学的时候门槛低。

说到选择少,确实是,不过这个现象现在逐渐好转,有一些更好的替代品以后微软官方的产品也就不那么强势了。

对于剥夺了解底层的能力的问题,我认为是一个错觉,微软把门槛搞得太低了,很多人会去了解底层。底层还是比较容易了解的,resharper或者IL Dasm,或者Mono,整个.net框架(除了win api)就在你眼前。C#本身是标准化语言,更不存在无法了解底层了。

类比一下ror,你要按照conventional的用法,可以傻用着。造成追根究底的人相对少。c++拿来干活就不一样,不了解一点底层,说不定啥时候bug调不出来了。
keakon
2013-05-18 06:46:53 +08:00
@Ricepig 字符串操作不算瓶颈,主要从数据库里取数据,然后 decode json,再合并字典,再 encode json。

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

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

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

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

© 2021 V2EX