给大家讲讲软件历史上的一个重大教训,大家也许就明白了。 当年为了对抗sun的java平台,微软2002年推出了类似中间件思想的.NET平台(C#)。...,使用C#这种运行在虚拟机上的中间件语言,无论如何也达不到 C/C++语言的速度。...而 CLR也是一样的,C#、F#、VB.NET、C++、Python等几十种语言也可以运行在CLR上。...这场官司的结果是微软公司赔偿2000万美金给Sun公司(最终微软公司因垄断赔偿给Sun公司的总金额高达10亿美元),承诺终止其Java虚拟机的发展,并逐步在产品中移除Java虚拟机相关功能。...具有讽刺意味的是,到最后在Windows XP SP3中Java虚拟机被完全抹去的时候,Sun公司却又到处登报希望微软公司不要这样做。
我认为更确切的说法是JAVA和.NET的比较,而C#是.NET阵营里的得力干将,和VB.NET一起成为微软.NET战略的左右手。 JAVA和C#比较的文章网上的不计其数。...就我个人的印象,JAVA和C#就好比武当之于少林。Java如武当,特色是一个“纯”字;.NET如少林,72般神技,精而且博。其实JAVA和C#算是同宗,都是C++派别衍生出来的。...并且那时候Unix门派众多,一个C/C++程序要提供IBM, HP, SUN, Digital,SGI以及Windows等等不同flavor的版本,简直是pain to the ass。...[cchere.net 西西河 Highway] .NET,以及VB.NET, C#都是全新的(当然还有其他的语言),在这一轮的设计中,微软全面借鉴了C++,Java以及他们自己搞的VJ++,应该说还是比较成功的...如果投奔.NET,我是该选择C#呢,还是VB.NET,或者是其它什么? Again,正如我前面所说,Java和.NET,好比武当和少林。
没有哪一种方案能够独霸 Windows,使用比较多的编程语言是 C++、C#、Java。...独立安装:Qt 程序最终会编译为本地代码,不需要其他库的支撑,而 Java 要安装虚拟机,C# 要安装 .NET Framework。...一句话结论:现阶段还是用.NET Framework 以后.NET Core是趋势 .NET 生态有三个主要的高级别组件 - .NET Framework, .NET Core, 和 Xamarin。...微服务架构同样在 .NET Core 中适用,它可以和不同平台的服务共同工作。包括通过 .NET Framework, Java, Ruby 等语言开发的。...结论 对C++开发不熟 所以C++的方案就不考虑了 Java并不适合桌面开发,其它的语言没用过也暂不考虑 C#的Winform、WPF要想操作其它程序也需要调用DLL 和 用Electron区别不大,所以还是用
1998年6用推出, 是最后一个运行在windows 9x系统上的版本, 其中的visual baisic6.0 和 visual c++ 6.0时至今日还有众多开发者在使用。...此版本引入.net framework(跟Java平台相同的机制),除原生c++以外,所有语言编译的目标代码全是MSIL(类似于JVM上的字节码)而不是原来的本机码。引入全世界最好c#语言。...支持.NET Framework 2.0/3.0/3.5, 增加了大约250个新功能。这个版本的vs把visual J#给废了,因为J#在各方面和C#是重叠的, 但C#才是真正的亲儿子。...这里有必要把J++\J#\C#之间的恩怨情仇讲述一下。 大概是1995年左右, Java刚流行那会, sun和微软达成合作, 由微软在windows平台上对Java进行支持。..., 在功能上F#是C#超集, 因此F#也是.net平台功能最强大的语言。
3、.NET Framework 是指DotNET的运行环境 二、C#语言 1、是微软旗下的一门新兴的计算机语言,C#是做.NET开发的一种语言工具 2、C#语言是一种运行在.NET Framework...我们用C#语言进行开发程序。他必须基于.NET平台之下进行开发。.NET平台把C#语言翻译成机器语言。以达到计算机可以正确运行我们所写的程序的目的。...+诞生 SUN公司程序员詹姆斯高斯林,决定自己对C进行封装,在爪哇岛研究出第一个Java版本 SUN公司挖走了很多微软的生意,Java语言是开源语言,C++提倡非开源盈利性大 微软决定和SUN公司联手对...C++和Java共同升级:J++ J++还未完成正式版本,两家为了Java主权打官司,SUN公司收回Java主导权,微软决定自己研究:C++++=>C# C#是微软联合C++及Java共同的优点做出的升级...公共语言运行时(CLR) 遵循公共语言架构的标准,能够使C++、C#、VB以及JavaScript等多种语言深度集成。CLR从某种意义上理解相当于Java中的Java虚拟机(JVM)。
JNI(Java Native Interface) 平时用的也就是google给我们封装的好的库,即底层实现用的不是Java,但都有统一的Java接口 NDK的作用是“我们自己写本地代码”(C/C++...),自己用JNI封装成Java接口 比如我们想做个计算,显然这不是Java的强项,但可以用C/C++来写实现,返回一个运算结果就行了 NDKr5已经实现了不用写一行Java代码开发程序了,只不过还是用到了虚拟机...,类似的还有微软.Net Framework上的p/invoke,可以让C#或Visual Basic.Net调用C/C++的API,所以说JNI和Android没有关系,在PC上开发Java的应用,如果运行在...一样,是纯C/C++编写的,但是Android并不支持纯C/C++编写的应用,同时NDK提供的库和函数功能很有限,仅仅处理些算法效率敏感的 问题,所以Android123推荐初学者学好Java后再学习JNI...如果是做应用开发,则需要NDK工具,不然你开发的应用程序怎么给用户用呢?难道帮他重新编译文件系统? 其他至于实现,java调用本地C/C++函数,及其编写方式,我觉得JNI和NDK没有什么区别。
现在,计算机语言仍然在不断的发展,种类也相当多,比如 FORTRAN 语言, COBOL 语言,C 语言,C++,C#, PASCAL,Java,Python 等等。...C 的应用主要集中在 GUI(图形化界面)、游戏和多媒体工具包方面,其他地方很少用到。 C# 是.NET 开发平台的主语言。....Java 语言底层是 C++,所以 JVM 是用 C++ 语言写好的一个虚拟的电脑。 面向对象: Java 语言支持封装、继承、多态,面向对象编程,让程序更好达到 高内聚 , 低耦合 的标准。...不同的语言实现跨平台的方式不同。Java 语言实现跨平台是建立在 “虚拟机” 基础之上的。 在 Java 出现之前,最为流行的编程语言是 C 和 C++。....NET(C#,VB 等语言)也有虚拟机,也能实现跨平台,但是只能在 Windows 操作系统下安装.NET 环境。 C++ 不受虚拟机的限制,但是需要用不同平台的编译器重新编译一次。
当前的 .NET Framework 和 .NET Core 运行时采用 C++ 编写,而 Mobius 是一个使用 C# 重写的 .NET 运行时,重写包括 JIT 编译和 GC 等,这些逻辑都将和...换句话是不要 Native 的本机代码或 C++ 代码,所有的代码都是通过 C# 编写是否有可能?这看起来是一个无穷的递归,用 .NET 写 .NET 的运行时运行在 .NET 的运行时上。...,最著名的不过是 RVM —— 用 Java 编写的 JVM 虚拟机。...虽然他需要使用 C 的引导启动,但是能做到自己托管自己,完全由 Java 运行的虚拟机同时不需要其他的虚拟机。...我们甚至可以考虑在 Mobius 中重用相同的 GC 垃圾回收,所以使用 Mobius 给 .NET 应用提供对象将看起来不错。
它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。...这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司后来推出了与之竞争的.NET平台以及模仿Java的C#语言。后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。 ...团队最初考虑使用C++语言,但是很多成员包括Sun的首席科学家比尔·乔伊,发现C++和可用的API在某些方面存在很大问题。 工作小组使用的是嵌入式系统,可以用的资源极其有限。...通过JVM才能在电脑系统执行Java应用程序(Java Application),这与.Net Framework的情况一样,所以电脑上没有安装JVM,那么这些程序将不能够执行。 ...之后,Java虚拟机会打开标准库,进行数据(图片、线程和网络)的访问工作。主要注意的是,尽管已经存在一个进行代码翻译的解释层,有些时候Java的字节码代码还是会被JIT编译器进行二次编译。
C# 原文链接:https://www.kapresoft.com/java/2023/11/29/java-vs-c-sharp-dot-net.html 原文出处|作者:kapresoft 翻译:沙漠尽头的狼...LINQ(语言集成查询):允许直接用 C# 编写类似 SQL 的查询以进行数据操作。 动态绑定:为后期绑定提供动态关键字,增加灵活性。 异步编程:使用 async 和 await 关键字进行简化。...Java 的“一次编写,随处运行”的理念 JVM 的通用性:Java 的口头禅“一次编写,随处运行”(WORA),源于它对 Java 虚拟机 (JVM) 的使用。...产品高度集成的应用程序,C# 和 .NET Framework 提供了优化的性能和丰富的功能集。...C#:.NET Framework 的垫脚石 学习曲线:与 Java 相比,C# 的学习曲线略陡峭,这主要是由于它与 .NET Framework 的深度集成。
通常我们是将某种高级语言(如C、C++、C# 、Java)转换成低级语言(汇编语言、机器语言)。...通常我们把 C#、CIL、CLR,再加上微软提供的一套基础类库称为 .Net Framework。...当然 C# 现在还过得很好,因为游戏而焕发了新的活力,因为 Unity3D,因为 Mono。 .Net Framework vs Mono Mono 是跨平台的 .Net Framework 的实现。...Mono 做了一件很了不起的事情,将 CLR 在所有支持的平台上重新实现了一遍,将 .Net Framework 提供的基础类库也重新实现了一遍。...Unity3D 中的 C# Unity3D 内嵌了一个 Mono 虚拟机,从上文可以知道,当实现了某个平台的虚拟机,那语言就可以在该平台运行,所以,严格的讲,Unity3D 是通过 Mono 虚拟机,
C++),自己用JNI封装成Java接口 比如我们想做个计算,二这不是Java的强项,可以用C/C++来写实现,返回一个运算结果就行了 NDKr5已经实现了不用写一行Java代码开发程序了,只不过还是用到了虚拟机...,类似的还有微软.Net Framework上的p/invoke,可以让C#或Visual Basic.Net可以调用C/C++的API,所以说JNI和Android没有关系,在PC上开发Java的应用...一样,是纯C/C++编写的,但是Android并不支持纯C/C++编写的应用,同时NDK提供的库和函数功能很有限,仅仅处理些算法效率敏感的 问题,所以Android123推荐初学者学好Java后再学习JNI...如果是做应用开发,则需要NDK工具,不然你开发的应用程序怎么给用户用呢?难道帮他重新编译文件系统? 其他至于实现,java调用本地C/C++函数,及其编写方式,我觉得JNI和NDK没有什么区别。...NDK提供了一系列的工具,帮助开发者快速开发 C (或 C++ )的动态库,并能自动将 so 和 java 应用一起打包成 apk 。这些工具对开发者的帮助是巨大的。
先来科普一下: Java最初由Sun Microsystems开发和支持,而在2010年1月Sun Microsystems由Oracle收购,因此这之后开发和支持工作由Oracle完成,Java创建的宗旨是...在引入.NET Framework 后,2004年,微软开放了Visual Studio 2005的测试版本(代号Whidbey),包含了.NET Framework2.0的测试版本有关,使用Visual...“真正的程序员用C++,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。...站在后人的角度看当时人们对于C#语言的理解还挺有意思的,2006年人们对于C#语言还是充满了疑问,产生了C#与C语言的区别,C#.NET的前景如何诸如此类的问题,同样的在百度搜索引擎中输入C#语言得到的结果如下...C# 3.0则是率先实现了LINQ的语言,可以用类似于SQL语句的语法从一个数据源中轻松地得到满足一定条件的对象集合。
它包含了以下的组建: * 一个用.NET实现的java虚拟机 * 一个java类库的.NET实现 * 致力于在java和.NET之间交互的工具 二、IKVM.NET的组件 IKVM.NET包含以下的部分...例如apache FOP项目是一个开源的XSL-FO处理器项目,它使用java语言编写的用于从xml生成PDF文档。使用IKVM.NET技术,我们可以将apache FOP用在任何的.NET应用中。...Jlikes是一个好选择,它是一个优秀的开源项目,并应用在多种平台。当然Sun提供的jdk也很好。 * 在Windows的全局汇编缓冲区中安装IKVM dll。...* 包含C#编译器(在Windows/Mono中为csc)的目录,通常在Windows中为C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322。...* 包含java编译器(javac或者jikes)的目录。 4.动态执行java应用程序 IKVM.NET包括了一个C#实现的java虚拟机。
Windows程序通常都用C++或C#编写。 Java在服务器端编程和跨平台客户端应用领域则很有优势。 5.Java只不过是另外一种程序设计语言? ...Java是一种很好的程序设计语言,很多程序设计人员喜欢Java胜过C、C++或C#。...但这些并不是Java成功的全部原因。 6.Java是专用的,应该避免使用? 最初创建Java时,Sun为销售者和最终用户提供了免费许可。 ...尽管Sun对Java拥有最终的控制权,不过在语言版本的不断发展和新库的设计过程中还涉及很多其他公司。 虚拟机和类库的源代码可以免费获得,不过仅限于查看,而不能修改和再发布。 ...7.Java是解释型的,因此对于关键的应用程序速度太慢了? 现在Java虚拟机使用了即时编译器,因此采用Java编写的“热点”代码其运行速度与C++相差无几,有些情况下甚至更快。
那这里的问题是当我们用C#来编写的时候,这些功能怎么去调用?C#写的Android 应用程序又是如何初始化的?...在Java代码中以native的式式invoke,就像invoke其它C或者C++的代码一样。 Momodroid.exe 在编译阶段会为我们的C#类生成对应的ACW。...Managed Callable Wrappers (MCW) 上面我们讲Dalvik 虚拟机是我们C#开发的Android应用程序的宿主,它通过ACW来调用我们用C#写的方法。...如果我们的这个C#里面的方法涉及到一些声音或者系统本身,或者说现在已经有很多成熟的用Java写的类库,我们想调用怎么办? 答案是我们再通过MCW 调回去。...Xamarin.Android Framework中有很多就是MCW,关于MCW的创建以及C#与Java集成开发的东西我们后面再细讲,包括一个C#开发的Android应用程序是如何被启动的,我们后面再细讲
C#、F#、VB .NET、C++、Python等)的开发。...Java的历史可以追溯到20世纪90年代,最初是由Sun公司为了实现电子产品智能化而开发的程序语言,主打的设计思想是敏捷开发和跨平台。...**而我要吐槽的地方就在这里 ** 经常有很多人唱衰.NET说BAT都不用 .NET 都是用java的。 为什么国内的互联网公司都使用的是JAVA呢? 拨开迷雾看本质。....NET 2002年才发布1.0版本。。你告诉我 他们有的选吗? 有人要提出京东 是从.NET转的java ?...更正式地说,它是构成协定统一集(这些协定是编写代码的依据)的特定 .NET API 组。 这些协定在每个 .NET 实现中实现。
排名(June 2018) 排名(June 2017) 语言 1 1 Java 2 2 C 3 3 C++ 4 4 Python 5 5 C# 6 6 Visual Basic .NET 7 8 PHP...8 7 JavaScript 9 - SQL 10 14 R Java是一门面向对象编程语言,由Sun公司发明于上世纪九十年代。...C#(C Sharp)是微软公司在2000年出品的一款面向对象、运行于.NET Framework之上的高级程序设计语言,Windows平台上的很多桌面程序都是用C#写的。...Visual Basic .NET是微软基于.NET Framework在2002年发布的一款面向对象的编程语言,可以看作是Visual Basic在.Net Framework平台上的升级版本,增强了对面向对象的支持...所以,VB .NET是混合型静态强类型高级语言,C#也是如此。
随后操作系统的发展,编程语言也随着业务发展需要而进一步开发中,于是就有了C++语言。 C++语言主要增强了面向对象的编程思想,而C语言是面向过程的开发。...通过C++语言用户信息模型化的方式,更容易理解显示业务,有利于把程序做大。所以,现在有支持C++语言的编写框架MFC、QT等,可以很方便地开发大型应用程序。用C++开发的软件程序,运行效率非常高。...为了能有更多人参与的软件开发中,需要将C++语言进一步简化,同时使得其中容易出错的地方避免,于是我们的C#语言就应运而生了。 C#编程语言被号称21世纪最重要的编程语言之一。...微软他眼红了,因为编程语言市场被抢去大半,本想向当时的sun公司收购Java语言,但因种种原因收购失败,一狠心,微软自己开发了与Java类似的一种编程语言,它就是C#,并且在易用性上远远优于java语言...最后,我用一张图来表示一下今天讲到的C、C++、C#、Java这四种语言。