开发C/S架构用各种语言的优缺点有什么?
2012-05-03 10:47
302 查看
开发C/S架构可以采用多种语言,包括你提到的Java,C++,C#,以及Dephi等,采用不同的架构要按照你的项目的需要来,下面就你提出的J***A和C++的优缺点做个分析吧,同时也介绍下C#语言。
Java语言是基于Java虚拟机的,它最大的优势在于一次编译,到处运行,它并不需要考虑各种系统之上的不同系统调用,所有的系统调用都可以通过底层的JVM的封装来完成,开发者在开发过程中不用考虑操作系统层面的编程知识,比如你在windows上开发的一个Java应用程序,在Linux系统上也是可以运行的,只需要给他对应的Java虚拟机就好了,同时Java的优势还在于它的开源和封装,Java提供了强大的类库支持,包括多线程,数据结构,socket编程等,让开发者可以把更多关注放在程序的编写基础之上,而不是放在实现一些底层的应用程序。同时Java还提供了垃圾回收机制,众所周知,在C++等一些需要维护内存的语言中,如何分配和释放内存是一个很让程序员头痛的问题,特别是在有服务的框架上,往往微小的程序泄漏将会带来巨大的问题,Java的垃圾回收机制很好帮助程序员解决这个问题。同时目前Java有比较良好的一些应用框架,可以用来快速搭建网络应用,例如对于企业级的开发,J2EE就是一个很好的选择。
C++的特质在于它的高效性,它是直接和底层打交道的语言,正如楼主所说,在网游之中,大部分都是采用c++来开发,因为游戏要求要有较高的运行效率和良好的用户体验,这点Java程序支持的并不好,而且往往在要求很高的某些算法部分还会采用C和汇编等更底层的语言来开发。C++的特性还在于它的面向对象的封装,这点和Java是类似的,但是它有兼有了C语言快速高效的特性,所以在开发类似网游,搜索等项目的时候,通常采用C++,C++和C一样,他们在跨平台项目的开发中会遇到一些问题,主要来自各个操作系统的支持和底层api调用的差异。
再说说C#,这个语言是微软今年来主推的一个平台,它是建立在.NET Framework之上的,C#在Visual Studio之上的良好兼容性让C#语言获得了快速上手的特性,同时由于其丰富的控件库,让C#语言得到很多开发者的青睐,同时C#语言对于***C/S程序也是非常方便的,很多代码都是IDE直接生成的,开发者只需要实现部分逻辑,但是它的缺点也很明显,需要.NET Framework协助,否则无法运行,其次基本没有平台移植性,同时由于其采用类似Java的中间编码格式,也让C#语言运行效率较低。
对于补充问题:
【答】
如果想要学习计算机,我的建议是首先学习好相关的数学知识,包括离散数学等,这些知识都是计算机的基础,同时精通掌握一到两门语言是必要的,对于初学者建议学习C语言,C语言一方面比较接近底层,可以通过学习C掌握很多系统的底层知识,同时由于它的语法简单,上手也比较快,加上C语言上并没有类似Java,C#那样很多的类库,让初学者看起来比较透明,比较干净,更能从语言的角度去理解。同时我认为不管学习什么语言都好,计算机学科中算法和数据结构是最重要的,都说语言是表层,算法和数据结构才是核心,把握好了本质就可以以不变应万变,建议在学习语言的同时好好的掌握这2门基本学科。因为随着你的学习的深入,你会发现所有的操作都是建立在他们之上的。同时掌握好了C语言,反过来无论是学习Java还是C#都是很容易的,无非只是一个表达语言的转换。最后,个人认为如果只是要成为一个代码的编写者,学习Java和C#已经足够,因为他们的快速上手和强大的类库可以帮助开发者快速实现应用,但是如果要真正成为一名程序高手,良好的数据结构知识和算法掌握,以及C语言是必不可少的。
Java语言是基于Java虚拟机的,它最大的优势在于一次编译,到处运行,它并不需要考虑各种系统之上的不同系统调用,所有的系统调用都可以通过底层的JVM的封装来完成,开发者在开发过程中不用考虑操作系统层面的编程知识,比如你在windows上开发的一个Java应用程序,在Linux系统上也是可以运行的,只需要给他对应的Java虚拟机就好了,同时Java的优势还在于它的开源和封装,Java提供了强大的类库支持,包括多线程,数据结构,socket编程等,让开发者可以把更多关注放在程序的编写基础之上,而不是放在实现一些底层的应用程序。同时Java还提供了垃圾回收机制,众所周知,在C++等一些需要维护内存的语言中,如何分配和释放内存是一个很让程序员头痛的问题,特别是在有服务的框架上,往往微小的程序泄漏将会带来巨大的问题,Java的垃圾回收机制很好帮助程序员解决这个问题。同时目前Java有比较良好的一些应用框架,可以用来快速搭建网络应用,例如对于企业级的开发,J2EE就是一个很好的选择。
C++的特质在于它的高效性,它是直接和底层打交道的语言,正如楼主所说,在网游之中,大部分都是采用c++来开发,因为游戏要求要有较高的运行效率和良好的用户体验,这点Java程序支持的并不好,而且往往在要求很高的某些算法部分还会采用C和汇编等更底层的语言来开发。C++的特性还在于它的面向对象的封装,这点和Java是类似的,但是它有兼有了C语言快速高效的特性,所以在开发类似网游,搜索等项目的时候,通常采用C++,C++和C一样,他们在跨平台项目的开发中会遇到一些问题,主要来自各个操作系统的支持和底层api调用的差异。
再说说C#,这个语言是微软今年来主推的一个平台,它是建立在.NET Framework之上的,C#在Visual Studio之上的良好兼容性让C#语言获得了快速上手的特性,同时由于其丰富的控件库,让C#语言得到很多开发者的青睐,同时C#语言对于***C/S程序也是非常方便的,很多代码都是IDE直接生成的,开发者只需要实现部分逻辑,但是它的缺点也很明显,需要.NET Framework协助,否则无法运行,其次基本没有平台移植性,同时由于其采用类似Java的中间编码格式,也让C#语言运行效率较低。
对于补充问题:
【答】
如果想要学习计算机,我的建议是首先学习好相关的数学知识,包括离散数学等,这些知识都是计算机的基础,同时精通掌握一到两门语言是必要的,对于初学者建议学习C语言,C语言一方面比较接近底层,可以通过学习C掌握很多系统的底层知识,同时由于它的语法简单,上手也比较快,加上C语言上并没有类似Java,C#那样很多的类库,让初学者看起来比较透明,比较干净,更能从语言的角度去理解。同时我认为不管学习什么语言都好,计算机学科中算法和数据结构是最重要的,都说语言是表层,算法和数据结构才是核心,把握好了本质就可以以不变应万变,建议在学习语言的同时好好的掌握这2门基本学科。因为随着你的学习的深入,你会发现所有的操作都是建立在他们之上的。同时掌握好了C语言,反过来无论是学习Java还是C#都是很容易的,无非只是一个表达语言的转换。最后,个人认为如果只是要成为一个代码的编写者,学习Java和C#已经足够,因为他们的快速上手和强大的类库可以帮助开发者快速实现应用,但是如果要真正成为一名程序高手,良好的数据结构知识和算法掌握,以及C语言是必不可少的。
相关文章推荐
- 开发C/S架构用各种语言的优缺点有什么?
- 学习各种开发语言有什么共同的技巧吗?
- SAP介绍:概念、核心、开发语言、优缺点与集成
- 开发大型web应用,你会选择什么作为后端语言?
- 云技术入门指导:什么是云计算技术,云技术用什么语言开发
- 云技术入门指导:什么是云计算技术,云技术用什么语言开发
- 各种开发语言的console output
- JavaWeb学习之什么JSP、JSP是如何工作的、JSP语言(各种指令和九大内置对象)、EL表达式简单使用(5)
- 转 苹果自家的 Web 服务器和开发语言用的是什么方案?
- React 和 Angular 各有什么优缺点,各自又适合什么开发场景?
- 全球排名前50网站都用什么语言开发的?
- LibreOffice是用什么语言开发的?
- 如何知道一个EXE使用什么开发语言开发的
- 人民日报整版报道区块链,我只想知道用什么语言开发?
- 软件开发,不再问什么语言好
- 昨天在讨论用什么语言开发web service比较合适
- 关于写sql.特别是 改写别人的SQL。【坚持用“select from table1,table2”方式,不用什么各种join(除非真的是特殊的需求!开发三年至今没见过!)。】
- 用什么语言开发的Matlab
- 为什么 Python被Google选为TensorFlow的开发语言呢?使用 Python比C++语言进行机器学习有什么优势?