热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我曾经的偶像公司又火了,这一次能重新获得程序员的信任吗?

最近,微软的市值再次突破一万亿美元,成为全球第一。对于90后、95后程序员,提起微软,可能会略微皱起眉头,似乎

最近,微软的市值再次突破一万亿美元,成为全球第一。 

对于90后、95后程序员, 提起微软,可能会略微皱起眉头, 似乎这是一家老态龙钟,没有Google, Facebook, Apple那么酷的公司。 

实际上,微软也曾经“酷”过,在上个世纪90年代和21世纪初,微软统治了桌面应用开发,光芒四射,是神一般的存在,无数程序员心生向往,我当时就是紧抱着微软大腿,靠Visual Studio混口饭吃。

后来微软为什么不“酷”了呢?为什么失去了开发人员的信任了呢?

主要原因就是互联网尤其是移动互联网兴起以后,应用程序逐渐从桌面转向浏览器,转向手机。在这一阶段,开源的系统、语言、框架和工具爆炸式出现,互相竞争,优胜劣汰,极其繁荣,吸引了大量的开发人员。

开发Web程序主要用开源那一套,Linux, MySQL, Nginx ,LVS, Tomcat, Ruby on Rails, Flask, Django 等, 开发手机App自然是基于Andorid和iOS,从开发工具来看,大家主要选择Eclipse, IDEA,Android Studio,XCode以及Sublime, Atom这样流行的文本编辑器。 

640?wx_fmt=png

C#不是一个好的语言吗?.NET不是一个好的平台吗?Visual Studio不是一个好的IDE吗?  答案是否定的, 但是只是局限于封闭的生态中。

在这个繁荣的开源时代,微软落伍了,微软神一样的光环散去了。

这种情况一直持续到2014年萨提亚∙ 纳德拉上任,宣布微软开始微软拥抱Linux,拥抱开源。 

微软做出这样的转变有两个原因:

1. 微软要发展云计算。 

很多著名的服务器端软件都运行在Linux之上,即使有Windows版,性能和稳定性也无法和Linux版相比, 如果微软的云计算只提供Windows Server这样的服务器,估计它是玩不下去的。 

所以微软的Azure云计算必须要支持Linux, 并且把自家服务器端的拳头产品SQL Server,.NET 也移植到Linux上。 

2.  重新获得开发人员的信任。 

我认为这是更为重要的一点, 只有开发人员重新聚集到微软旗下, 使用微软的产品和服务,微软才能真正复兴。 

所以我们看到了Visual Studio Code, 在超级大牛Erich Gamma的带领下,VS Code疯狂增长。最早只是个简单的编辑器,现在都快变成IDE了,支持Javascript,Python, Java, Go等各种各样的语言,最近还推出了一个远程编辑的功能,很有意思。就我个人来说,打开Visual Studio Code的次数越来越多了。

640?wx_fmt=png

我们看到了TypeScript,是另外一个超级大牛Anders Hejlsberg主导设计的,解决了Javascript的痛点问题,有静态类型,支持面向对象编程。这个开源的语言,现在连Google都开始用了,这在以前是不可想象的。

微软还在Windows 10 上搞了一个Windows Subsystem for Linux,可以运行二进制的Linux程序,这个功能对普通用户根本没有任何用处,还是为了吸引开发人员,在一些情况下,不用使用什么虚拟机/双系统/Cygwin, 打开WSL,直接就是Linux。

640?wx_fmt=png

2018年,微软干脆收购了GitHub这个全球最大的程序员“社交”网站,一个很大的目标就是为了接触这几千万开发者,了解他们在做什么。 

当时网上哀鸿一片,觉得GitHub要凉,赶紧转移到GitLab。现在看来,GitHub不但没有问题,发展得还很好,比如个人用途的免费的私人仓库,以及最近发布的GitHub Package Registry。 

640?wx_fmt=png

微软能够重新获得开发人员的信任吗?能够再次让程序员围绕在自己周围吗? 

现在下结论为时尚早,但是微软应该走在了正确的道路上。

640?wx_fmt=gif


码农翻身公众号开放投稿,可能是全网最高片酬:

用故事讲技术 ,稿费1000

技术/职场/感悟/面试等,稿费700

翻译类文章,每千字200

详情猛戳: 可能是全网最高片酬,速来!

640?wx_fmt=jpeg


推荐阅读
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 在IDEA中运行CAS服务器的配置方法
    本文介绍了在IDEA中运行CAS服务器的配置方法,包括下载CAS模板Overlay Template、解压并添加项目、配置tomcat、运行CAS服务器等步骤。通过本文的指导,读者可以轻松在IDEA中进行CAS服务器的运行和配置。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 标题: ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 项目运行环境配置及可行性分析
    本文介绍了项目运行环境配置的要求,包括Jdk1.8、Tomcat7.0、Mysql、HBuilderX等工具的使用。同时对项目的技术可行性、操作可行性、经济可行性、时间可行性和法律可行性进行了分析。通过对数据库的设计和功能模块的设计,确保系统的完整性和安全性。在系统登录、系统功能模块、管理员功能模块等方面进行了详细的介绍和展示。最后提供了JAVA毕设帮助、指导、源码分享和调试部署的服务。 ... [详细]
  • nginx+多个tomcat
    学习nginx的时候遇到的问题:nginx怎么部署两台tomcat?upstream在网上找的资源,我在nginx配置文件(nginx.conf)中添加了两个server。结果只显 ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • java计算机毕业设计springboot+vue信息工程学院学生社团网站
    项目介绍本信息工程学院学生社团平台是针对目前信息工程学院学生社团的实际需求,从实际工作出发,对过去的信息工程学院学生社团平台存在的问题进行分析 ... [详细]
author-avatar
小辣椒jie
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有