词汇表——喜大本\\ u0026普:爱过。有趣的游戏,庆祝。奔走相告。简而言之《

reload=1">微软宣布.NET开发环境开源》是个好消息。

前言及历史回想

就我个人来说。这十来年都对微软没什么好感,折腾.net的经验也已经是至少12年前的事情了。距离上一次吐槽.net也已经过去快十年(2005年)了,之后根本都懒得谈它,可是这一次不同,开源终归是一件好事——尽管基本也是与我无关。

但既然開始了这篇扯淡。总还是要扯下去的,谈点个人看法。

simp主席说得是,微软来晚了,如今就算是开源。原来搞.net的也还是继续搞,原来搞java的预计也不会换。令狐虫说在这事里获利最大的应该是mono。

这些我都赞同。

总之这是件好事,不论是对开源世界还是对我们这些开发人员来说,也不论是.net开发人员。还是java或其他什么的开发人员,都是好事。

我想谈的是技术细节之外的事,并且当中主要是我个人的推測。

首先是微软为什么作出这种决定?

我想非常重要的原因是世界的发展并没有能够如当初微软预期的那样发展,不论是外部世界还是微软内部——所谓的内部当然不是说我有什么内幕消息。而是由于其自身的原因不能达到目的而已。举例来说。我在12年前吐槽.net的那些内容,如今看来是相当的naive,可是当中也的确有一部分被我说中了。三年之后的Vista并没有实现微软当初的承诺。全面.net化。引发了一次影响颇大的.net信任危机。

当然之后.net发展開始变得更加务实。实现了一些踏踏实实的东西,比方C++/CLI,比方接近原生代码的CLR性能,这都是非常好的。当然也有像Silverlight这种东西我就非常不看好。这些年来的事实也证明,市场也并不那么接受。

从那以后桌面应用開始越来越多地有了一些基于.net的产品,相同。我们也能够看到有越来越多的Windows电脑里出现了N个版本号的.net Framework——不要在意这些细节。而在server端,.net可能更成功一些。基于ASP.net的站点还是挺不少的。

可是问题在于桌面的世界发生了变化,浏览器開始占领桌面的最主要位置——并且还不是IE……

还有一方面。苹果的再次崛起横扫了移动端。.net在当中全然没有不论什么位置。而异军突起的Android则给年老的java以新的青春,.net又没有份。

等微软把WinPhone搞出来,开发人员的焦点都已经在ObjC和Java上了。

这里的关键我认为在微软的战略上。微软的商业利益在于桌面,而桌面的核心在于Windows。所以一切的一切都必须环绕Windows。

但事情坏就坏在这里。

我不喜欢Windows已经非常多年,属于个人好恶。早在十年前我黑Windows。涌过来的喷子不要太多,无非是有本事你不要用Windows,用着盗版的Windows还JJYY之类。还好我非常早就改用正版的windows,并且不久之后就不用Windows了。

即使到了七八年前。中文互联网上还是这种环境。可是如今,这种人已经非常少见了,就算跳出来也是被人当笑话来看。如今的程序猿标配个个都是Mac……

不可否认Windows是一个非常好的桌面系统,在非常多时候就是最好的桌面系统。

但仅此而已,它不可能是最好的操作系统。尤其是服务端或移动端。

所以我们还须要Unix/Linux/MacOSX/iOS/Android之类。

当微软固执地要把一切都环绕在Windows上的时候,杯具就已经注定了。

我前些年吐槽过非常多Windows的不好。理由我已经不想再说了。连带被吐槽的还有IIS,尽管据说如今这货好了非常多。但我仍然没有兴趣。至于MSSQL和.net这种我认为有其好处的东西,也由于受限于Windows而终于不被我看好。

于是。当整个市场从桌面转向web和移动端的时候,Windows忽然变得不重要了,这些依附于Windows的东西也都受到了影响——即使它们可能的确不错。

如今。.net宣布开源并将支持其他平台意味着什么?

我认为至少意味着连微软都认为桌面的时代已经终结了,至少是没有前途了——这并不表示桌面市场就死了。还是有非常大的历史遗留市场存在,并且还将存在非常多年。可是,重点在于——没有前途!

只是这仅仅是对一部分人来说是坏事——就是那些技术视界狭窄的开发人员,那些仅仅懂Windows平台的IDE操作工。尽管他们还是能够继续在历史遗留市场里生活非常久。并且可能生活得不错。可是,重点在于——没有前途!

但对于还有一部分人则是好事——就是那些眼界开阔的开发人员。即使他之前也主要是用.net,可是他们研究过mono的代码,对其他平台有一定了解甚至熟悉。做过服务端的开发,他们将有希望借此走向一个更大的世界。

未来将会怎样?

当然主要还是看微软了,开源这事并非说把源代码丢出来就完事了,兴许的社区建设和发展才是基本的。

当年Borland不也把Interbase 6.0开源出来,结果却仅仅是丢出源代码而已。后来又不继续了。

开源社区仅仅好基于Interbase 6.0搞了Firebird。可是由于没有商业公司的支持,至今发展不大,浪费了一个挺好的RDBMS。

所以,微软准备向.net开源社区投入多大才是重点。单是向其他平台移植就是个大project,光凭社区的力量不是做不到,可是时间会非常长,市场不等人。

这事须要微软的推动。

尽管mono问世已经非常多年。可是我认为它还远未达到能够生产应用的程度。我曾经用Ubuntu的时候用了一个mono开发的程序,性能和效果都不错,就是稳定性不行,经常莫名其妙就程序崩溃,须要手工重新启动这个程序。当然如今换了LinuxMint,也就没再用这个,不知道如今有没有好些。

还有IDE的问题。VS是好。可是仅仅能用于Windows平台,尽管说在Windows上开发好以后放到别的平台上编译公布也是能够的。但终归不那么方便。而对于我们这些谁已经习惯于使用MacOSX或Linux桌面开发,专为VS安装Windows它仍然是不舍得。当然。这应该是一个第三方IDE出现,问题是:优惠。?可能没有VS易。

微软再怎么计划的开源后使用.net?它似乎也没有明确的方向,这是为了吸引开发者是一个障碍。。

短期或妻子有留……

喜大本\\ u0026普,微软的开源的更多相关文章

  1. 微软与开源干货对比篇_PHP和 ASP.NET在 Session实现和管理机制上差异

    微软与开源干货对比篇_PHP和 ASP.NET在 Session实现和管理机制上差异 前言:由于开发人员要靠工具吃饭,可能和开发工具.语言.环境呆的时间比和老婆孩子亲人在一起的时间还多,所以每个人或多 ...

  2. Hadoop和大数据:60款顶级开源工具(山东数漫江湖)

    说到处理大数据的工具,普通的开源解决方案(尤其是Apache Hadoop)堪称中流砥柱.弗雷斯特调研公司的分析师Mike Gualtieri最近预测,在接下来几年,“100%的大公司”会采用Hado ...

  3. 微软爱开源:向Linux社区开放60000多项专利

    10月10日,微软在博客中宣布正式加入开放创新网络(Open Invention Network, 简称“OIN”),向所有开源专利联盟的成员开放其专利组合. 微软的加入意味着,旗下60000多项专利 ...

  4. 开源力量:微软竟开源 PowerShell

    导读 曾经有段时间,微软称 Linux 是“癌症”,但是随着时光流逝,现在微软已经认识到了开源世界的不断增长,除了在这个领域加大投入之外别无选择.微软已经启动了几个开源项目,希望能吸引一些 Linux ...

  5. 微软向开源又迈进了一大步:Checked C

    导读 微软开源了 Checked C ,这是一个 C 语言的扩展版本,可以用于解决 C 语言中的一系列安全相关的隐患.正如其名字所示,Checked C 为 C 语言增加了检查,这个检查可以帮助开发者 ...

  6. 微软准备开源PowerShell

    微软有计划在近期内开源PowerShell 近日微软再次在向开源投出橄榄枝, PowerShell是面向Windows和Windows Server的自动化平台和脚本语言,帮助用户简化系统的管理.在纳 ...

  7. 微软正式开源Blazor ,将.NET带回到浏览器

    微软 ASP.NET 团队近日正式开源了  Blazor ,这是一个 Web UI 框架,可通过 WebAssembly 在任意浏览器中运行 .Net . Blazor 旨在简化快速的单页面 .Net ...

  8. 微软的开源Sonar工具测试网站的性能和安全性

    Tips 原文作者:ABHIMANYU GHOSHAL 原文地址:Microsoft's open-source Sonar tool will test your site's performanc ...

  9. 微软正式开源Blazor,将.NET带回到浏览器

    微软 ASP.NET 团队近日正式开源了Blazor,这是一个Web UI框架,可通过WebAssembly在任意浏览器中运行 .Net. Blazor旨在简化快速的单页面 .Net 浏览器应用的构建 ...

随机推荐

  1. Java多线程总结之由synchronized说开去(转)

    这几天不断添加新内容,给个大概的提纲吧,方面朋友们阅读,各部分是用分割线隔开了的: synchronized与wait()/notify() JMM与synchronized ThreadLocal与 ...

  2. android(9)_数据存储和访问3_scard基本介绍

    使用Activity的openFileOutput()保存文件的方法,文件存储在手机空间,通常情况下,手机的存储空间不是很大,存储小文件确定.假设你要存储大文件,如视频,是不可行. 对于这样大的文件, ...

  3. 创建Windows类别

    Windows在表单.控制.对话框基本上形成.Windows类是Windows形式的类型,可处理叙述性说明. 在Windows提前有很多定义Windows类别,但它可以很容易地创建自己的Windows ...

  4. 每天收获一点点------Hadoop Eclipse插件的使用

    本文所用软件版本:myeclipe2014    hadoop1.2.1 1.安装Hadoop开发插件 下载hadoop-eclipse-plugin-1.2.1.jar,拷贝到myeclipse根目 ...

  5. 好记性不如烂笔头85-spring3学习(6)-BeanFactory 于bean生命周期

    假设BeanFactory为了产生.管理Bean, 一个Bean从成立到毁灭.它会经过几个阶段运行. 据我所知,一般bean包括在生命周期:设定,初始化,使用阶段,四个核心阶段销毁. 1.@Bean的 ...

  6. hdu 4975 最大流问题解决队伍和矩阵,利用矩阵dp优化

    //刚開始乱搞. //网络流求解,假设最大流=全部元素的和则有解:利用残留网络推断是否唯一, //方法有两种,第一种是深搜看看是否存在正边权的环.见上一篇4888 //至少四个点构成的环,另外一种是用 ...

  7. Swift_3_功能

    import Foundation println("Hello, World!") //声明函数 不带参数 无返回值 func func1(){ } //一个函数 传入两个Str ...

  8. kettle于javascript步骤错误处理

    javascript步骤错误处理 假设你熟悉kettle误差特性转换.你可能想知道javascript步骤如何使用.骤用户界面机制是同样的,在javascript步骤右击,选择"定义错误处理 ...

  9. 首先运行application的name相应的类或做activity中间name相应的类?

    今天找到该程序条目中找到以下两个条件name我写了一个测试程序,一般如以下: 看mainfest.xml <application android:allowBackup="true& ...

  10. TS流文件

    简单介绍编辑 随着从HDTV录制的高清节目在网上的流传,烧友们对TS这个名词大概已经不陌生了.但随之而来就是怎样播放.怎样加入字幕等等的一系列问题.本文将重点介绍一下这方面的应用操作. 先来简要介绍一 ...