.net开源吗?
.NET开源了,Visual Studio开始支持 android 和 ios 编程并自带Android模拟器
北 京时间今天凌晨的 Connect(); 大会上,多少程序员的***想成为现实。.NET 开源,集成 Clang 和 LLVM 并且自带 Android 模拟器,这意味着 Visual Studio 这个当下最好没有之一的 IDE 正式支持编写 Android 和 iOS 程序。
这 个开始前多次通过邮件向核心用户预告的会议果然没让人失望:Visual Studio 和 .NET 真正开始走向跨平台化。Nadella 说的“移动为先,云为先”和“找到微软最初的本质”终于连成一线,这家提供开发者工具 / 平台起家的公司在继用户之后,开始为 Android 和 iOS 阵营的开发者提供服务。
腾讯以及各大厂的c++开发环境是什么样的?
大厂的C++开发环境基本都是“MacBook Pro+远程linux主机”“,或者直接在Linux上开发,至少在腾讯、百度、Google这些C/C++技术栈为主的企业,主要都是通过这种方式工作。编辑器方面基本上都是Vim为主,部分人也会用Emacs,不过这几年随着Visual Studio Code变得越来越受欢迎,在大厂里面也开始有很多人开始使用。
工具到底重要不重要?真的非常重要
大企业由于一些历史原因,导致了很多工具的使用已经成了固定的传承,就拿鹅厂来说,鹅厂之前用过SourceInsight作为主力开发工具,腾讯内部很多早期代码GBK,这个历史遗留问题直到现在还在困扰着腾讯的部分项目,大家也知道问题,不过想要彻底重构真的非常麻烦,工程量都是极大的,版本管理用过SVN,不过现在新的项目基本上也都是用Git管理。微信事业群也有正版的Clion这些工具供你使用,很多人也会用Vim、VS Code,不过本地基本上还是编辑器,大多数写好代码直接云端编译就好了。
Google可能是全世界最好的C++大厂了,这个不是吹的,如果你同时在Google、百度、腾讯这些大厂都工作过的话,你会发现Google为什么是这个星球上最牛的互联网公司,Google的代码规范就甩开很多大厂一个档次,Google的C++代码规范可能是这个星球上最好的代码规范了,没有之一。在Google你可以选择自己的办公电脑,一般台式机、笔记都会有。
Google并不会强制限制你用什么系统,但是Google有基于Debian定制Linux系统,很多人会用这套这是一个网络IDE,是的基于网络的,现在你应该明白为啥Google那么推崇Chrome下完成一切工作的原因了吧,因为他们自己连IDE都这么用。Linux,也有很多人用MacBook,用windows系统的人也不再少数。大家写代码会用cider,也有很多使用Vim和Emacs的,甚至像贾扬清也说过,自己在Google就是用Sublime Text编辑器,总之选择会非常多样化,公司不会强制干涉。
工具真的非常重要,我非常不赞同很多人说,工具不重要,重要的是算法、重要的是数据结构,重要的是数学思维能力,我不否认内功的必要,但是有了好的内功,好的招数也非常重要,而开发工具就是你的武功招式。每个人不要去纠结别人怎么说,自己把主流的工具自己从头到尾试一下,最终选择一个自己顺手的工具就好,大体上来说大多数人的选择往往代表着一定的合理性。
好的工具[_a***_]极大地提高工作效率,不过我认为工具好与不好不是大众判定的,而是你自己用着顺手不顺手,不是说大多数人都喜欢的工具就一定是好的,得看每个人的使用习惯。就好比说我比较喜欢Emacs,不是很喜欢Vim,不代表Vim是更差的工具,这只是相对我而言,我更喜欢Emacs这个编辑器。
数学、算法、数据结构,这些基本功是修炼内功,不过光修炼内功也肯定不行,那么开发工作中这些编辑器、IDE、版本管理工具、以及编译器等等,都是你的工具,只有同时把内功和招数都练好了,你才能真正的无敌。
看了上面的回答,腾讯C++开发环境仅仅用linux不可信。
首先早期的oicq以及之后的qq客户端都是基于Windows平台的,没有linux平台应用场景(之前很长时间甚至linux版本的软件),不可能在linux上开发。
现在的微信软件,在android和ios上运行,windows也有相关的客户端,应该是一套代码,在不同平台上编译。
微信和qq服务器考虑到并发和部署,应该是基于linux系统或者unix系统。
为什么微软、谷歌要另立操作系统山头,而不是像苹果一样,在最正统的Unix基础上开发?
为什么微软、谷歌要另立山头?任何商业机构为了赚钱,当然希望自己的产品和别人不一样,而且通过这样的不同来设立护城河,赚取更多的钱。不过,操作系统这么复杂的产品却不太一样,因为操作系统的复杂,所以现在的系统都有一个非常漫长的一个发展过程。那看一下他们的一些历史,看看还算是另立山头吗?
Windows
最初Windows1.0只是当时命令行操作系统DOS的一个应用程序,只是区别于其他DOS程序,Windows是一个图形界面而不是命令行。Windows在XP之前一直是基于DOS内核的,只是Windows95和Windows98已经从一个应用程序变成了以DOS为内核的图形化操作系统了。
不过,WindowsX开始,内核从DOS变成了Windows NT。Windows NT也不是凭空出现的。NT内核来自于微软和IBM联合开发的OS/2,后来合作不欢而散,微软也就将他们开发的OS/2的版本变成了Windows NT内核。目前,Windows还是在使用这个内核的更新版本。
Android
谷歌的操作系统主要还是Android的操作系统,不过谷歌收购的Android手机操作系统是基于Linux内核面向手机等移动终端的,初期的Android还是依靠相对成熟的Linux内核,虽然Android已经逐渐独立起来了,不过还是离不开Linux内核的版本。
macOS iOS
对于苹果来说,操作系统也分为两个阶段,OS X之前的操作系统和OS X。在OS X之前,苹果是自行开发的一款只适合PowerPC CPU构架的操作系统,然后实际上和Windows遇到了类似的瓶颈,就是想互联网的过度。Windows选择了自己开发的OS/2,苹果选择了Unix作为内核。实际上也不能说苹果选择了Unix,而是乔布斯的NeXT选择了Unix内核,然后也就随着乔布斯的回归一起进入了苹果。当然,乔布斯离开苹果继续做电脑的话,估计也只能选择Unix内核来开发新的操作系统,不过也因为选择了Unix,后面的iOS的出现就比较顺理成章了。
总之,每个企业自立山头完全是基于自身利益最大化考虑,但是从历史来看微软和谷歌都不是另立山头。