开源的意义:

关于开源,我个人觉得有两个提高(勿喷)。

一方面开源提高了生产力,另一方面开源也是信任的一种体现。为什么这么说呢,在当下的互联网时代,开源是一种核心价值观。人与人沟通交流合作之下,降低成本并且提高生产力的必然产物。就目前流行的众筹之类的概念都是与之大同小异。试想一下,全球各地都有开发者、贡献者,这个力量与单独的个人与小团队的力量是不可同日而语的。而另一方面,信任。你可能会奇怪这跟信任能扯上什么关系?试想一个SDK你可以完全看到其实现过程,随时都可以检查其源代码,你有什么理由不去完全信任他?(你硬要说你看不懂那我无话可说0.0)

.Net跨平台

对开发者的意义

如果你对开源有一个深刻的认识,那么仅仅开源两个字就足以给你充足的理由去尝试一个非常不错新东西。但是对于其他一部分开发者来说,.Net核心源代码的开源对他们并没有什么实质意义,因为他们没有能力没有时间也没有兴趣去阅读或修改源代码,毕竟有的时候当兴趣成为了工作之后看待方式就不一样了,非常不幸,我就是其中一人233333。那么对于我们这类人,跨平台又有什么实质性的意义呢?Java有一个机制:一次编译,到处运行。什么意思呢,写一次代码,可以在任意平台上运行,这难道不是每一个开发者梦寐以求的东西吗?这难道不是Java流行的根本原因?各种语言之间的区别并不大,学习一门新的语言其成本也低到可以忽略不计,当然前提你是一名经验的开发者,这对于你来说简直易如反掌。但是对于一个生态环境的代价却是巨大的,每一门语言都有自己的类库,都有自己相对成熟的框架,恰恰就是这些东西拉开了各语言之间的差距与学习成本,相信这些也正是在日新月异的互联网环境下我们都难以承担的代价。

对于微软自身的意义

.Net的开源被不少人认为是微软最后的让步和尝试,而事实上这样的明攻暗守却并不是第一次了,最后无论是微软还是用户都已经从这个先例中获益良多。这里就不在敷述,各位有兴趣请自行搜索SUN公司。在当今互联网时代,传统的单纯靠授权收取费用来盈利已经不再是一个理想的方式了,吃肉喝汤才是正确的思路。苹果IOS的巨大成功就是一个吃肉喝汤的典范。那么如何才能正确的实施吃肉喝汤的战略?构建生态圈。构建生态圈的第一步就是拥抱开发者,正是庞大的开发者基数奠定了这个重要的基石。试想我们开发的application不用大规模的去修改核心代码就能够在Windows、linux、Android、iOS、Mac OS上运行,一门语言既能做当下流行的B/S网站开发又能做传统C/S桌面APP的开发,而且还能兼并移动开发,那么我们又有什么理由不想去投入这门语言的怀抱里呢?微软收购Xamrin与Mono已经展示他的野心,Xamrin在没被收购前价格高的吓人(偷偷告诉你比ios开发者还贵),而收购之后则是免费的,可以预见会有不如开发者加入这个阵营。

说到这里,不得不说微软在近一段织的一个大网“Azure”。天下武功,唯快不破。这里的快,并不是说性能上的优势,而是开发速度。我记得有句话是这么说的“人生苦短,我用python”,python以其开发速度与迭代速度在这个时间就是金钱的时代得到了无数开发者的认同。那么这跟azure又有什么关系呢?因为使用Azure你可以达到同样的效率,哪怕是使用C#(我不是说C#效率低,大神别喷)。Azure的集成度与使用的简易度已经完善到了令人发指的程度,在当今这个云时代还没见有更好的,这里只说界面不谈内容。Aws作为云的开山鼻祖在价格与基础、基础设置以及技术经验上都有巨大的优势,作为IaaS无愧为业界老大,但是在更高级的PaaS层面Azure确实是遥遥领先的。身为一个穷屌丝,我的网站都是部署在阿里云上,而且是学生认证那种23333,而Aws也是一次搭建***神器时发现的一年免费试用才接触到的。目前由于工作需要,有机会接触到Azure的大多数内容,其易用程度令人叹为观止。说句心里话,我真是害怕用多了我自己都成傻子了。站在巨人肩上,重新造轮子这种事在我们短暂的人生中还是少做的好。

看到这里微软的战略大局已经差不多清晰起来了:

开源.Net-拥抱开发者-Azure-完整生态圈-吃肉喝汤

而如果我们单一的看其中的任意一环都是毫无意义的,因为任意一环都可以被替代,但如果我们真正的踏入其中并开始使用这些服务时,那就完全是另一个世界了。

小结

作为宇宙最强IDE(没有之一)Visual Studio的使用者,清清楚楚的了解这种快感。能走到这一天也实属幸运,有生之年系列23333。在这里,我们也终于有机会像大部分Java程序员那样有钱了哈哈哈。前些日子了解到,Visual Studio已经发布了Mac版本,真是喜大普奔。这个世界从来都不是一成不变的,能够在linux上运行我的C#项目,这对我来说已经是一种幸运。

关于.Net开源并跨平台的思考的更多相关文章

  1. 微软“.Net社区虚拟大会”dotnetConf2015:关键词:.NET 创新、开源、跨平台

    去年 11 月的时候,微软开源了 .NET CoreFX,然后是今年 2 月份的 .NET CoreCLR.自那时以来,已经有大约 3500 人在 GitHub 上进行了提交,而且贡献者的人数还在持续 ...

  2. 微软良心之作——Visual Studio Code 开源免费跨平台代码编辑器

    微软良心之作——Visual Studio Code 开源免费跨平台代码编辑器 在 Build 2015 大会上,微软除了发布了 Microsoft Edge 浏览器和新的 Windows 10 预览 ...

  3. Google FlatBuffers——开源、跨平台的新一代序列化工具

    前段时间刚试用了一个序列化工具cereal,请看cereal:C++实现的开源序列化库,打算再总结下我对google proto buf序列化库的使用呢, 结果还没动手,大Google又出了一个新的. ...

  4. Cocos2d-x开源、跨平台的游戏引擎

    from://http://blog.linguofeng.com/pages/language/c/Cocos2dx.html Cocos2d-x 开源.跨平台的游戏引擎 一.下载 http://c ...

  5. 开源免费跨平台opengl opencv webgl gtk blender, opengl贴图程序

    三维图形的这是opengl的强项,大型3D游戏都会把它作为首选.图像处理,是opencv的锁定的目标,大多都是C的api,也有少部分是C++的,工业图像表现,图像识别,都会考虑opencv的.webg ...

  6. 开源一个跨平台运行的服务插件 - TaskCore.MainForm

    本次将要很大家分享的是一个跨平台运行的服务插件 - TaskCore.MainForm,此框架是使用.netcore来写的,现在netcore已经支持很多系统平台运行了,所以将以前的Task.Main ...

  7. 【腾讯bugly干货分享】解耦---Hybrid H5跨平台性思考

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=1275& ...

  8. [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计

    [DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 为什么要造轮子 同学们可以去各大招聘网站查看一下爬虫工程师的要求,大多是招JA ...

  9. RPG JS:免费开源的跨平台RPG游戏引擎

    RPG JS是一个2D RPG游戏制作引擎,目前版本基于Ease|JS游戏引擎,基于Canvas Engine的新版本即将发布. RPG JS是免费且开源的. RPG JS有着完善的文档支持. RPG ...

随机推荐

  1. 随手记录-linux-Linux目录结构

    转:别人的 装完Linux,首先需要弄清Linux 标准目录结构 / root —?启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home —?存储普通用户的个人文件 ft ...

  2. Laravel路由除了根目录全报404错误

    Route::get('hello',function(){ return 'Hello World!'; }); 在laravel/app/Http/routes.php下添加上面的语句,然后再浏览 ...

  3. 私人助手(Alpha)版使用说明

    私人助手使用说明 私人助手这款软件是通过添加事件提醒,提醒你在合适的时间做该做的事,可以选择有多种提醒模式. 目前实现了对事件的添加和提醒功能,软件现在的情况如下: 1.添加事件 2.删除事件 3.事 ...

  4. Java中实现PCA降维

    package com.excellence.splitsentence; import java.net.UnknownHostException; import java.util.ArrayLi ...

  5. Alpha阶段敏捷冲刺⑦

    1.提供当天站立式会议照片一张. 每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 账单明细和报表的界面设计在同一界面 今天要做的工作 对于报表扇形图的 ...

  6. HDU 2140 Michael Scofield's letter

    http://acm.hdu.edu.cn/showproblem.php?pid=2140 Problem Description I believe many people are the fan ...

  7. PHP 常用函数总结(二)

    4.PHP处理数据库的常用函数. 汇总表 PHP 5 MySQLi 函数 函数 描述 mysqli_affected_rows() 返回前一个 Mysql 操作的受影响行数. mysqli_autoc ...

  8. 熟悉常用Linux操作

    cd命令:切换目录 (1)切换到目录 /usr/local cd /usr/local (2)去到目前的上层目录 cd .. (3)回到自己的主文件夹 cd ~ ls命令:查看文件与目录 (4)查看目 ...

  9. 数据结构之二叉树java实现

    二叉树是一种非线性数据结构,属于树结构,最大的特点就是度为2,也就是每个节点只有一个左子树和一个右子树.二叉树的操作主要为创建,先序遍历,中序遍历,后序遍历.还有层次遍历.遍历有两种方式,一是采用递归 ...

  10. TreeMap源码剖析

    原文  http://blog.csdn.net/chdjj/article/details/38782221 主题 源码分析红黑树 注:以下源码基于jdk1.7.0_11 之前介绍了一系列Map集合 ...