我为什么期待M#?
前段时间的报导“微软将推新编程语言M#:系统编程级别的C#”,第一眼看到并没有当初看到F#的那一种不安,反而感到欣喜,业界一直存在“语言论”讨论c#、java、vb、c/c++等语言的优胜略汰。当然那个时候我也是讨论大军的其中之一,但这一次我看到M#更多的是惊喜是喜悦或者说是完全都是这一种感觉,下面我会给大家分享一下我为什么会如此期待M#。
一些补充(2014-1-8 9:05)
评论很多,看来很多人误解了,希望大家能多去百度、bing、Google一下在进行评论,也是对自己的负责。
首先本文的M#跟这边所指的m#不是一个东西http://www.msharp.co.uk/
原因1:M#还在研发中并没有正式发布。
原因2:网页中的m#重在支持asp.net,而微软定义中的M#是一门编程语言当然不能局限于asp.net

原因3:微软出的编程语言何时收费过?

M#到底会不会脱离.net framework
M#到底会不会脱离.net framework我也不清楚,只是猜测,一种美好的希望,如果连想都不能想是不是有点对不起社会?一个人没有了希望没有了理想还是一个人吗?
M#脱离.net framework是很有可能的一件事
原因1:M#是Midori系统的编程语言
M#已经脱离了Windows,至于有没有脱离NT内核暂时不做猜想,连Windows都脱离了为什么不能脱离.net framework?
摘抄:同时微软目前也正在尝试寻找Midori与Windows系统之间的兼容性,让Midori的应用程序与Windows程序实现共存和互操作,并提供程序移植的方法。
原因2:M#将获得更好的性能
除了小白大家都知道C#、VB.NET、F#、J#都会被编译成IL丢给CLR去执行,如果M#能提升性能并且没有脱离.NET Framework那么C#、VB.NET等其他语言也一样能享受到这个待遇,既然如此为什么M#研发团队会说将比C#获得更好的性能?
原因3:M#从2008年开始研究
如果只是基于.net framework那么需要5年的时间来研究语法吗?如果是这样是不是太没有效率了?
目前看到信息最多的一则报道:http://os.yesky.com/493/35700993.shtml
它是C#的补充
报导里面这么说:“它在C#的基础上添加了系统编程特性,可用来构建各种类型的应用,尤其是云计算应用。”
用C#开发了三年,总觉得缺少了些什么,虽然C/S、B/S都能做但还是觉得少了些什么,期间有考虑过是否尝试c/c++、虽然C#的语法我非常喜欢,是我接触到编程语言中最喜欢的一个,特别是Linq。减少了大量的代码。
那究竟是少了点什么呢?
x1:x2你不是做开发的么?帮我写一个木马我要能看到我女朋友的桌面。
x2:这个简单,明天给你程序。
……第二天……
x2:x1我写好了,你拿去你女朋友机器上直接运行就好了,但是操作系统必须是vista以上的,然后需要安装.net framework 4.5。
x1:怎么看系统是不是vista?如果不是vista以上怎么办?.net framework 4.5是个啥?我怎么安装.net framework 4.5失败呢?你写的程序真糟糕。
x2:……
.net framework,我觉得.net framework是个负担,其实更多时候我觉得是.net framework拖累的C#,为了兼顾VB.NET、F#、C#等语言.net framework实在是太臃肿了,如果C#增加了新特性那么.net framework就需要同时为VB.NET、F#等语言添加对应的实现,虽然中间有IL,但还是太臃肿了,需要同时改变多个编译器,导致各个语言发现了发展瓶颈,维护量大增的问题。
总而言之:C#(.net framework)能做的事情太少了。
更好的性能
“Joe Duffy表示,M#相对C#、Java等其他语言来说,它能在“性能”、“安全与生产力”两方面会达到更好的平衡。”
这其实也牵扯到.net framework的问题,但这里部分地方不明示,大家心里明白就好了。
c#虽然拥有较好的性能但还是不够,至少对于目前来说,虽然现有的CLR可以根据即时环境(详情请看:“在.net中为什么第一次执行会慢?”)动态生成最优的本地码,但对目前CLR对此的处理能力还是太弱了,导致了性能不够理想,而这一点M#团队已经注意到了,他们会寻找到一个平衡点(我琢磨着他们会把M#编译成本地码,而可以同时兼容现有的.NET类库,只不过引用现有的.NET类库需要安装.net framework)。
开源
“同时,他也表示M#最终会开源,有可能就在令人充满期待的2014年”
如果想把C#开发的程序迁移至Liunx、OSX上在以前几乎是不可能的事情,但现在虽然有了Mono可以做到还是会出现很多问题,这一点对于M#来说就无需担心,因为它是开源的这边虽然不能预测M#的开源级别与程度,但可以知道的是至少比现在容易,到那时候我们就可以少了一项从Windows转向Liunx、OSX的障碍了(不知道为什么最近想从Windows转向Liunx Or OSX)。
M#已经研究了数年
据报道,微软研究M#以长达4~5年(多个报导时间不一样,期待有人能给出正确答案),为其数年的编程语言值得期待。
它是微软的
微软虽然有很多的骂名,但不得不说他为开发者所做的,虽然现在的生态环境还远不如java,但他为开发人员带来的便利是极大的,Visual Studio、IIS、SQL Server等都具有良好的可视化界面及辅助工具,这些都能极大的减少开发者的时间。
写在最后
我不推崇任何技术,我只按需所取,我不黑微软也不捧微软,我只是说出我的想法,我想要的编码环境。
我为什么期待M#?的更多相关文章
- [Erlang 0115] 2014值得期待的Erlang两本新书
在2014年的开头就有这样一个令人振奋的好消息,Erlang有一本新书即将出版 <The Erlang Runtime System>,其作者happi在2013年3月份公布了这本书的写作 ...
- 期待已久的2013年度最佳 jQuery 插件揭晓
让人期待已久的2013年度最佳 jQuery 插件揭晓了.在过去的一年里,有很多很多的 jQuery 插件发布出来,而这里文章列出的这些插件从提供的功能更角度来看是其中的佼佼者.相信这些优秀的 jQu ...
- 期待许久的事情终于发生-微软收购Xamarin
刚在VS推送的新闻中看到了醒目的标题:Microsoft to acquire Xamarin and empower more developers to build apps on any dev ...
- paip. 解决php 以及 python 连接access无效的参数量。参数不足,期待是 1”的错误
paip. 解决php 以及 python 连接access无效的参数量.参数不足,期待是 1"的错误 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源 ...
- 基于Oracle的SQL优化(社区万众期待 数据库优化扛鼎巨著)
基于Oracle的SQL优化(社区万众期待数据库优化扛鼎巨著) 崔华 编 ISBN 978-7-121-21758-6 2014年1月出版 定价:128.00元 856页 16开 编辑推荐 本土O ...
- Swift的期待
去年底苹果开源 Swift 之后,Google.Facebook和Uber三个互联网巨头就曾在伦敦召开会议讨论Swift在各自开发战略中的地位.近日业界有消息传出,谷歌有意考虑将Swift作为Andr ...
- 期待中冷静前行,专家预测2017年VR产业5大发展趋势
VR在90年代火过一阵后,在2016年迎来了爆发.今年的VR领域,除了Oculus.HTC.索尼等发布的各家硬件,还有许多VR内容争奇斗艳的迸发,但是VR会一直保存热度吗? 事实上,对于科技圈巨头而言 ...
- 12月2日,上海Cloud Foundry Summit, Azure Cloud Foundry 团队期待和你见面!
12月2日,上海Cloud Foundry Summit, Azure Cloud Foundry 团队期待和你见面! 12日2日对中国Cloud Foundry的用户和开源社区来说,是极有意义的一天 ...
- <a href="javascript:void(0);" id='test' onclick="javascript:alert('即将上线,敬请期待!');"><em class="rmwd"></em>征稿平台</a>
<a href="javascript:void(0);" id='test' onclick="javascript:alert('即将上线,敬请期待!');&q ...
随机推荐
- openstack-networking-neutron(四)--iptables
Filter表:过滤数据包,默认表. (1)INPUT 链:过滤所有目标地址是本机的数据包(对进入本机数据包的过滤) (2)OUTPUT 链:过滤所有本机产生的数据包(对源地址得数据包的过滤) ( ...
- 详解xml文件描述,读取方法以及将对象存放到xml文档中,并按照指定的特征寻找的方案
主要的几个功能: 1.完成多条Emp信息的XML描述2.读取XML文档解析Emp信息3.将Emp(存放在List中)对象转换为XML文档4.在XML文档中查找指定特征的Emp信息 dom4j,jaxe ...
- jQuery 获取页面元素的属性值
获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 : $(window).width(); 获取页面的文档高度 ...
- [嵌入式开发板]iTOP-4412开发板linux 系统存储空间的修改
平台:iTOP-4412开发板 这里我们以修改成 1G 存储空间为例来讲解修改方法, 如果需要改 成其他大小的存储空间,参照此方法修改即可. 首先连接好 iTOP-4412 开发板的调试串口到 pc ...
- 2.NopCommerce中文语言包
由于NopCommerce是纯英语环境,给英语不好的管理人员带来诸多不便. NopCommerce支持多语言环境,所以我们只要安装中文语言包,让NopCommerce支持后台中文操作环境. 首先先下载 ...
- [转]angularjs 设置全局变量的3种方法
本文转自:http://blog.51yip.com/jsjquery/1601.html angularjs自身有二种,设置全局变量的方法,在加上js的设置全局变量的方法,总共有三种.要实现的功能是 ...
- 【OJ】PAT-A解题报告
手速慢...思考速度慢...是撑不到最后boss的...共勉 ========================我是日常分割线=========================== 1010. Radi ...
- Selenium2怎么调用selenium1中方法
虽然selenium1.0已经成为过去时,现在都用selenium2.0,但是如果想要在代码中调用selenium1.0的api怎么办,看下面 WebDriver driver = new Chrom ...
- HDU 1878 欧拉回路
并查集水题. 一个图存在欧拉回路的判断条件: 无向图存在欧拉回路的充要条件 一个无向图存在欧拉回路,当且仅当该图所有顶点度数都是偶数且该图是连通图. 有向图存在欧拉回路的充要条件 一个有向图存在欧拉回 ...
- [Unity2D]2D Mobile Joystick
效果预览 操作步骤 1.下载素材 http://pan.bai du.com/s/1gdkQz8v 2.新建一个GUITexture(Joystick)及一个Sprite(Nyan) 3.添加背景 ...