关于.Net开源并跨平台的思考
开源的意义:
关于开源,我个人觉得有两个提高(勿喷)。
一方面开源提高了生产力,另一方面开源也是信任的一种体现。为什么这么说呢,在当下的互联网时代,开源是一种核心价值观。人与人沟通交流合作之下,降低成本并且提高生产力的必然产物。就目前流行的众筹之类的概念都是与之大同小异。试想一下,全球各地都有开发者、贡献者,这个力量与单独的个人与小团队的力量是不可同日而语的。而另一方面,信任。你可能会奇怪这跟信任能扯上什么关系?试想一个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开源并跨平台的思考的更多相关文章
- 微软“.Net社区虚拟大会”dotnetConf2015:关键词:.NET 创新、开源、跨平台
去年 11 月的时候,微软开源了 .NET CoreFX,然后是今年 2 月份的 .NET CoreCLR.自那时以来,已经有大约 3500 人在 GitHub 上进行了提交,而且贡献者的人数还在持续 ...
- 微软良心之作——Visual Studio Code 开源免费跨平台代码编辑器
微软良心之作——Visual Studio Code 开源免费跨平台代码编辑器 在 Build 2015 大会上,微软除了发布了 Microsoft Edge 浏览器和新的 Windows 10 预览 ...
- Google FlatBuffers——开源、跨平台的新一代序列化工具
前段时间刚试用了一个序列化工具cereal,请看cereal:C++实现的开源序列化库,打算再总结下我对google proto buf序列化库的使用呢, 结果还没动手,大Google又出了一个新的. ...
- Cocos2d-x开源、跨平台的游戏引擎
from://http://blog.linguofeng.com/pages/language/c/Cocos2dx.html Cocos2d-x 开源.跨平台的游戏引擎 一.下载 http://c ...
- 开源免费跨平台opengl opencv webgl gtk blender, opengl贴图程序
三维图形的这是opengl的强项,大型3D游戏都会把它作为首选.图像处理,是opencv的锁定的目标,大多都是C的api,也有少部分是C++的,工业图像表现,图像识别,都会考虑opencv的.webg ...
- 开源一个跨平台运行的服务插件 - TaskCore.MainForm
本次将要很大家分享的是一个跨平台运行的服务插件 - TaskCore.MainForm,此框架是使用.netcore来写的,现在netcore已经支持很多系统平台运行了,所以将以前的Task.Main ...
- 【腾讯bugly干货分享】解耦---Hybrid H5跨平台性思考
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=1275& ...
- [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
[DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 为什么要造轮子 同学们可以去各大招聘网站查看一下爬虫工程师的要求,大多是招JA ...
- RPG JS:免费开源的跨平台RPG游戏引擎
RPG JS是一个2D RPG游戏制作引擎,目前版本基于Ease|JS游戏引擎,基于Canvas Engine的新版本即将发布. RPG JS是免费且开源的. RPG JS有着完善的文档支持. RPG ...
随机推荐
- Python基础_可迭代的/迭代器/生成器
介绍 可迭代的:内部实现了__iter__方法 迭代器:内部实现了__iter__,__next__方法 生成器:yield,yield from 使用 __iter__() __next__() _ ...
- centos安装eclise启动报错
A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be avail http://blog.csdn.net/u0 ...
- C# Js 时间格式化问题
C# 后台: .ToString("dd-MMM-yyyy", System.Globalization. DateTimeFormatInfo.InvariantInfo) eg ...
- OO学习体会与阶段总结(设计与实现)
前言 在最近的一个月的课程中,笔者对于规格化编程进行了深入的学习.运用面向对象抽象思想对编写的程序进行过程抽象.异常处理.数据抽象.类的层次规格与迭代等等规格设计,使得程序结构化程度提高,具有更好 ...
- VirtualBox安装增强功能
一.安装依赖包 #yum install kernel-headers #yum install kernel-devel #yum install gcc* #yum install make 二. ...
- “Gogoing”改进方案
通过看见他们对我们团队的意见点评,我们还要有更多改善的地方. 首先,就是界面的优化: 其次,加上自己些特有的功能,吸引更多的用户: 然后,需要整理大量的数据库信息才能完善: 最后,需要有其他软件的集成 ...
- 进阶系列(5)—— C#XML使用
一.XML介绍 XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨 ...
- 2018软工实践—Beta冲刺(1)
队名 火箭少男100 组长博客 林燊大哥 作业博客 Beta 冲鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调组内工作 调试服务器性能 展示GitHub当日代码/文档签入记录(组内 ...
- Codeforces Round #284 (Div. 1) C. Array and Operations 二分图最大匹配
题目链接: http://codeforces.com/problemset/problem/498/C C. Array and Operations time limit per test1 se ...
- Alpha阶段敏捷冲刺⑦
1.提供当天站立式会议照片一张. 每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 账单明细和报表的界面设计在同一界面 今天要做的工作 对于报表扇形图的 ...