• 我为什么期待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

    image

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

    image

    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等都具有良好的可视化界面及辅助工具,这些都能极大的减少开发者的时间。

    写在最后

    我不推崇任何技术,我只按需所取,我不黑微软也不捧微软,我只是说出我的想法,我想要的编码环境。

  • 相关阅读:
    Python调用windows下DLL详解
    macOS VMWare Fusion报错”找不到可以连接的有效对等进程”的解决方案
    when autofac resolve service
    HttpResponse.RedirectToRoute Method
    How to set default page asp.net
    HTTP Handlers and HTTP Modules Overview
    Walkthrough: Creating and Registering a Custom HTTP Module
    ASP.NET Page Life Cycle Overview
    ASP.NET Application Life Cycle Overview for IIS 7.0
    在Visual Studio调试器中显示Unreal的数据类型的值
  • 原文地址:https://www.cnblogs.com/ants/p/3508382.html
Copyright © 2020-2023  润新知