[拥抱新的开发语言]是选择C++还是C#/VB.NET

2017年3月25日 6537点热度 2人点赞 1条评论

参考:

(注:C#和VB.NET均基于.NET,而C++无需.NET)

以下为个人的一点点理解

先说一下C++,C++出现于1979年,虽然传统,但接近底层。正如原文写到:Best if you need to achieve the highest levels of performance or efficiency(如果您需要达到最高级别的性能或效率)

这就有点像汇编语言或是机器语言了,(相对于.NET的VB和C#),不带手套干活,捏的准,做的细,造出来的东西性能肯定能高,但是为何我们不直接汇编,而是一层一层往上叠呢?

Best if you need to have a higher level of coding and productivity, or to use a less complex language for which it might be easier to hire talent.(如果您需要更高级别的编码和生产力,或者使用更简单的开发语言来发挥效率与能力)

显而易见,在.NET的帮助下,我们的小程序能在更短的时间里变得更强大。而C++则是适合大型程序更自由的奔跑。

不得不说,计算机技术就是在这样上游对下游,从硬件层开始,到软件层,然后又是系统内核、各种底层驱动,最后才到高级语言,现在又多了层虚拟机。

当倾向于C#/VB.NET

此时,我比较倾向于.NET,毕竟是微软的亲儿子。C#与VB.NET的出现,是在2002年。跟着时代走,大致不会错。那好,.NET也是有喜有哀的。

通用语言基础架构定义了构成.NET Framework基础结构的可执行码以及代码的运行时环境的规范,它定义了一个语言无关的跨体系结构的运行环境,这使得开发者可以用规范内定义的各种高级语言来开发软件,并且无需修正即可将软件运行在不同的计算机体系结构上。

高级语言的出现,使得在统一架构的不同计算机间的程序能通用。而高级语言虚拟机就意味着不同架构计算机之间能公用一个程序。

这其实是已经实践了。以和.NET类似的JVM(安卓的应用运行环境)说,同一个apk,可以跑在主流的ARM架构的手机上,也可以跑在X86的安卓平板上,性能又不减。

虽然跑在ARM上的Windows很少,但万一几年后又出现个X186架构呢?

解决一下.NET的缺点

首先,忽略运行的速度问题。毕竟是21世纪了。来关注一下各Windows系统自带的.NET:

  • Win Vista 自带 .net 3
  • Win 7 自带 .net 3.5
  • Win 8 自带 .net 4 / 4.5
  • Win10 自带 .net 4 / 4.5

我们再来看看各版本Visual Studio

  • VS 2002 对应 .NET 1.0
  • VS 2003 对应 .NET 1.1
  • VS 2005 对应 .NET 2.0
  • VS 2008 对应 .NET 3.5
  • VS 2012 对应 .NET 4.5
  • VS 2013 对应 .NET 4.6
  • VS 2015 对应 .NET 4.6 .NET Core5(Beta版)

不得不注意的是,.Net不支持向下兼容。

想象一下,一个小程序,还要带那么大一个安装包,多累。还好,这里有解决方案:

MONO:http://www.mono-project.com/

CnBlogs-让NET C# 程序独立运行(脱离 .NET Framework运行,绿色运行):http://www.cnblogs.com/tianzhiliang/articles/2694672.html

小结



由古董VB6.0转向C#

2017.4.7更新:现在一想,我们做软件,首要的还是兼容性,不能说为了十几年后软件会好用的然后怎么样。不过,古董VB6.0也该抛了,估计再也没有更新了。还是转向C++,有一个叫MFC的东西..

2017.4.29更新:使用VS2015进行C++开发的6个主要原因

章鱼DS

学生网站代码通吃的草根,但总拼命着长出树根。

文章评论