第1个回答 2013-12-30
在一个软件为中心的世界里,我们已经有了太多太多的计算机语言用以编程——从脚本语言到字节码编译语言,再到最高级的架构语言和嵌入式语言。而现在,微软正打算开发另外一种编程语言,代号为“M”(代表Microsoft)。
这种新编程语言是微软新Oslo发展和面向服务策略的一部分,在保持文本(textual)和特定领域(domaiN-specific)的同时,还整合了来自XAML的特性。与Visual Studio 2010一起,M将与其他两个即将一同发布的组件被直接应用:这两个组件其中一个是QuadraNt,它是一个可视化构建模型的工具;而另外一个组件是在SQL数据库中用于存储和浏览模型的存储器。
除此之外,关于该语言微软没有作更多的解释。不过据推测它很可能是一种基于.Net框架的编译语言(终于可以和自然语言代码说再见了)。而且从微软的表述上来看,M正紧追潮流——在努力成为一种跨平台(cross-platform)语言。
这里提到的“跨平台”,微软这样解释,“很长时间以来,跨平台要求第三方平台的作者来为代码写一个后端程序,而且SQL数据库必须寄托于微软的SQL Server这个Microsoft WiNdows专利服务才能执行。”想象一下,如果你是微软用户,正打算购买多套WiNdows系统的copy(会因此而产生收益,而且推测这些系统只能是Vista 或WiNdows 2008,因为XP已经不出了),那么对微软而言跨平台将变成一件相当有意义的事情。
另外有消息表示,M语言事实上就是微软之前开发的“D语言”(如果不是,那么微软最初就没有发明D语言),现在微软只是翻新了一下,以适应其新的Oslo模型策略,并把D改成了字母表上更加靠后的M,便新瓶装旧酒地吸引了一大批追随者的兴趣。虽然这种说法可能不假,但D语言从来没有被提升到.Net编译语言的高度(而且旋而消失),而且虽然很多人对D拥有很高的热情,但D语言确实存在很多缺陷而且从未入流。(就像比尔盖茨称将在它发布后的十年里为OS/2写代码)。
这个程序语言的基本准则是在开发上拥有某些特性值得人们去关注,特别是对OOP(面向对象的程序设计)。但是M语言与微软SQL Server和.Net框架的联系相当紧密,虽然目前还不确定它是否会和ASP .Net整合,但这种联系已切切实实地使其吸引力局限在了WiNdows系统的应用上。不过尽管如此,单一项目还是能够在非WiNdows平台上运行.Net代码。如果M语言能够遵循同样的标准,并且微软能够摆脱对微软MS SQL的依赖性,那么假以时日M语言编写的程序将能够成为LiNux朋友(peNguiN-frieNdly)。
在微软找到一种强制人们使用M语言的办法之前,有多少人会自愿使用这种语言,只有时间会告诉我们答案,而驱使人们使用的最行之有效的办法,恐怕只有在M语言中去掉对其它语言都有特性的支持,即只有M语言才有的特性。考虑到微软的程序员吃的都是微软的饭这个事实,实际上真正在使用这个“不可视”C和C++代码的就只是WiNdows自身了,尽管微软一再鼓励它们(“不可视”的C和C++代码)与WiNdows一起使用。但是如果所有的入门级程序员都学习这些新的编程语言,那么将来谁来管理这些我们现在使用的几十亿行C和C++代码,难道把这些应用彻底重写?我想早期贝尔实验室的那些人也会对这个问题的答案感兴趣。