C#这么优秀的语言为什么不流行
C#为什么不流行?
说到底这个锅该鲍尔默来背,他差点都把比尔盖茨一手打下的微软江山给败光了,更别说一个C#了。C#能做的JAVA基本都能做,JAVA不能做的有其他语言比C#做得更好,然后你的开源和跨平台还姗姗来迟,C#拿什么跟JAVA斗?
行业有个笑话,.NET最厉害的地方是跨平台,但是.NET最大的笑话也是跨平台。除了C++之外,能在.NET上运行的编程语言,是唯一一个能做到在所有平台上都能运行的编程语言,能把桌面MacOS、Linux、Windows,移动Android、iOS、WP(假设这玩意儿还在)全部跨完。不过遗憾的是,理想与现实总是残酷的,理论上是可以跨平台的,不过遗憾的是这么多年了微软一直都没跨出去。
这些年C#过得其实还挺憋屈的,前面的C/C++、JAVA交替做老大,两个老前辈C、C++时而来个青春走一回、容光焕发的,PHP、Python也是时常爆发,Go语言这个年轻人也是越来越强大,都实现自举了,可是C#呢打不过老年人,也打不过年轻人,其实还蛮惨的。
C#也不是一无是处Windows应用程序,现在很多都是C#开发的,MSDN、SQLServerManagementStudio、Bing的很多服务,也都是用C#开发的,现在office365、Windows、VisualStudio也用了一些C#开发,C#现在还是Unity开发游戏的主要脚本语言。
微软自己的产品用C#自然是无可厚非,还有很多非微软网站也是用C#开发的。程序员问答网站StackOverflow、国内著名的技术博客网站博客园、国内程序员社区CSDN、开源中国,都是用C#开发的。以前当当、京东的核心技术栈也都是C#,不过后来才转向了JAVA技术栈。
C#其实能做的事情还蛮多的,Windows桌面应用开发,Web应用,也可以用来做移动开发,不过做得都比较差强人意。做桌面开发弄不过C++、现在甚至连Electron都弄不过了,除了一些B端应用,大家基本都不会选C#,Web应用方面弄不过JAVA和PHP,移动方面弄不过JAVA和swift,然后大企业也都有自己的技术栈,可是这些技术栈都跟C#无关。
C#、.NET,以及ASP.NET的关系,C#错过第一波红利.NET是一个平台,本身实现的方式当然也是各种各样的库,理论上各种各样的编程语言都可以编译成其IL,然后在这个平台上运行,当然这个平台上面的编程语言很多,C#毫无疑问是这里面最重要的一个。ASP.NET是.NET主要用来做web开发的技术方案,当然这里面主要也是C#作为核心。
JAVA在96年面世,C#则是在2000年面世,JAVA的先发优势并没有那么明显,可是JAVA开源、免费的特点,让JAVA迅速攻城拔寨。C#有个好父亲、还是含着金钥匙长大的,C#的创造者安德斯·海尔斯伯格是TurboPascal编译器、Delphi的作者,在设计C#之前,已经是计算机工业界最伟大的科学家之一,后来又设计了TypeScript,打早了整个.NET体系。
C#语言设计本身在很多方面都是要超过JAVA的,可是吧微软早期的策略一直比较保守,不愿意跨平台,也不愿意开源,尽管安德斯·海尔斯伯格一直在努力推动这件事情,保守的鲍尔默领导下的微软错过了C#最好的几年,可是在这期间JAVA等编程语言不断攻城拔寨,C#终于还是输掉了未来。
C#输掉了移动互联网,大数据、云计算、AI也全都错过了编程语言总得要抓住几个机会才能发展得更好,C#除了抓住了Windows,其余全都没有抓住,也许这就是命,当然跟微软自己作也有很大的关系。
你看Android爆发的时候选择了开源的JAVA,尽管现在Google因为这事儿天天被Oracle恶心;iOS自然不用说,人家先是objective-C、接着是swift,这个微软没办法;到了大数据时代,JAVA和Python又大发威风;云计算来了吧,你看Go语言又逐渐爆发了,越来越多的移动互联网企业比如字节跳动、B站也都转向了Go语言,就连Google、百度、腾讯也都在用Go语言;人工智能时代,C/C++做底层,Python用来做上层应用和算法。
你看几乎每一个重要的技术变革都跟C#无关。在大企业里面微软自己的核心技术栈都是C++,Google也是C/C++,Facebook是C和PHP,百度是C/PHP/Go,字节跳动是Python/Go,阿里巴巴是JAVA,B站是Go语言。你同样可以发现,这里面没有一家企业将C#作为核心技术栈。
C#本来可以有个很好的发展的,可惜微软自己作死,浪费了C#发展最好的几年,等到纳德拉上台之后,试图通过开源来发展C#的时候,已经来不及了。未来看微软的决心有多大,比如微软是否愿意将全功能的VisualStudio移植到MacOS平台,假设微软带着VisualStudio威力还是有点大的,不过这也可能反过来威胁到Windows的地位。
visual basic前景
现在微软认为VB非常适合那些以Windows平台作为目标开发平台的开发者或者编程新手(至少,编程不是他们主要的职业)。
另一方面,非Windows平台的崛起给C#带来了一定的影响但不会影响到VB。在Green看来,VB不太适合游戏开发或者基于MacOSX的开发。VB对于非Windows平台适应性的缺乏造成了困境,F#的开源以及C#对开源工具日益增长的支持,使得这两种语言在吸引和保留开发人员方面优于VB。越来越多的C#开发人员进入了良性循环,他们可以带来更多的进步,从而吸引更多的开发人员。
最后,Green提出了一种情况,如果保持C#与VB的开发进度和功能特性齐头并进,这对于有限的资源会产生压力。微软希望专注于C#,因为它以最快的方式提供最广泛的反馈。一旦这种反馈产生了对VB开发人员有价值的想法,微软会考虑从C#移植到VB。
这对于那些想知道他们在VB语言的投入能得到什么回报的开发者来说意味着什么?之前列出的四个原则已经被以下目标替代:工具、平台和语言。
Green说,VB的质量工具仍然是重点,并提到VisualStudio2017中的动态单元测试如何支持VB。在平台的基础上,VB仍然会被维护以便支持.NETCore的.NET标准。VB语言本身也会增加新的功能和关键字,但前提是它们对VB是有意义的,而不仅仅是因为C#中增加了这些特性。Green举例说像UTF-8字符串就不会添加到VB中。
VB开发人员的反应非常激烈,许多人期待VB可以支持多平台,包括像HoloLens这样的微软技术。ReedKimble写到:“这是一个鸡和蛋的问题。微软不提供某个功能是因为他们没有听到人们的要求。人们没有要求某个功能是因为微软还没有提供该功能,所以这必定意味着人们无法获得这些功能。
VB、Delphi等编程语言没落的主要原因有哪些
VB、Delphi等编程语言流行的时代是1995年前后,PC开始进入家庭和公司,这个时候的主流应用叫Windows窗体应用。现在,我们的电脑上还有大量这样的应用,如Office,WPS,ERP系统等。值得一提的是,同期还有一个开发这类软件的神器:Powerbulid。Powerbulid让工厂里面的程序员与软件公司的程序员处于同能开发能力上,那是定制开发的黄金时代。
VB1,0诞生于1991年,鼎盛的VB6.0诞生于1998年。Delphi1.0诞生于1995年,鼎盛的Delphi7.0诞生于2002年。Delphi其实没有没落,依旧继续发展。Delphi的继续发展历程,可以解释为什么这些古典语言会没落。
2000年以后,世界走入了互联网时代。浏览器代替了传统了windows窗体应用。操作系统也不是微软一家独大,Linux系统迅速崛起。为了迎合这个潮流,Delph先后出现了跨平台版,ios编程版,安卓开发版,移动开发版。但是,这个时候的后起之秀层出不穷,Delph的后续版本在中国基本没有公司在用。
VB、Delphi等编程语言前浪所以会被Java为代表的后浪编程语言取代,最大的原因是软件公司为了支持向上兼容(UpwardCompatible),需要花费巨大的资源去维持老语言的功能特性。1990年代的各种程序,依然在各种Windows窗体上跑得起来,可见兼容性之强。你对比一下国内的各种ERP产品,升个级,原来的二开程序就报错了,真是天上地下。实现向上兼容需要公司花费巨大的成本,这种成本在开源社区模式没有火起来之前,只能靠公司负担,即便微软也受不了。
Java也出来很多年了,这个负担也呈现出来了,没落是迟早的事情。语言毕竟是人造的,向上兼容只有上帝才能低成本的实现出来。各种生命,一定是向上兼容的。编程语言,还远远不到这个境界。
vb好学吗它实用吗
VB比起别的语言还是有优势的,VB相当灵活,除了写程序以外,还能写脚本,能用脚本控制网页,能控制动态网页ASP代码,还能操纵所有word文档的宏,所以灵活性相当的好,还有VB写出来的程序体积很小,调试方便,这都是VB的优点
其实只要你学得精通,肯定吃香,你想想看,不但能拿来写程序,能做动态网页,能控制word等文档发挥更好的特效,何乐不为呢?
VB现在程序员还用吗
其实VB还是有他生存的空间的,至少在中国现在很多的小型办公软件或者一些CRM管理软件还是有采用VB开发的。VB的优势在于ms的强大实力,他作为ms最早的主打开发语言,微软为其开发了很多有效,简便,易懂的组件,特别是目前国内大部分人都使用的是windows操作系统,VB在该操作系统的使用效果还是比较好的,最主要是因为他开发周期短,上手门槛低,至少现在计算机二级等级开始vb是主要考核的语言种类。
VB过时了吗
过时的原因说到底就是因为VB6就已经终结,也就是说VB不会再有任何新的技术加进来,从发展的角度来说过时时必然的,包括Java、.Net。
对于程序设计者来说最重要的是编程思想,
学习一门新的语言并不很难。