“C语言在它诞生的那个年代,是非常不错的语言,可惜没有OOP。当项目臃肿到一定程度,人类就不可控了。
为了弥补这个缺陷,C++诞生了。而为了应对各种情况,C++设计的大而全,太多复杂的特性,当你去阅读一些开源项目,或者很多人写一个很庞大的项目的时候你就能体会到C++的复杂,超过人类心智驾驭的范围了。为了弥补这个缺陷,JAVA诞生了。Java很不错,对C++进行简化。但是也不是完美的,为了跨平台,引入了运行时环境,讽刺的是也是因为这个运行时环境,也只是有限的跨平台,也有一些坑。为了弥补JAVA的一些小缺陷,C#诞生了。可惜跟JAVA学坏了,也是运行在运行时环境上。早期C#只能在微软平台上运行,限制了它的发展。随着这几年C#彻底开源,正慢慢让C#变得更加广泛。Objective-C对比现代编程语言,太过古老了,有很多稀奇古怪的语法,限制了它的开发效率。为了弥补Objective-C的缺陷,Swift诞生了。Swift初级设计改了好几个版本,显然是精心设计过,语法虽然设计的优雅漂亮,但是应用还不是很广泛。Swift刚出来的时候,用它写了几个小程序。但是Swift后面几个版本变动的太厉害了,给人一种不稳定的感觉。而且虽然Swift开源了,但是给人的感觉还是局限在Apple的平台上,各种库都没有很好的跨平台。
c 面向过程,系统级别开发,底层开发,自己管理内存
c/c++ 面向过程,面向对象。
python,脚本语言
c#,java面向对象
开发安卓用java
开发ios软件用object-c
如果是系统级的APP那当然是C++,如果是应用软件那首选JAVA。因为安卓是基于Linux,两者都可以。但C面向底层。JAVA面向用户。C要求高一点,JAVA可以使用手机商提供的开发套件。
Android操作系统是基于Linux开发的一个移动操作系统,而大家更知道,Linux是C与C++的天下,所以Android的底层是支持C/C++的。综上描述,Android上所采用的编程语言主要有以下的方式:
1、基于ADK的Java编程
2、基于NDK的C编程
Android应用层的开发,基本上全部是采用Java开发,而个别性能需求的部分,可能会采用NDK的方式。
本来从语言特性来说,Objective-C和Java比不合适,因为设计理念不同,Objective-C和C++可以比,Java和C#比。Java和C#编译出的代码都需要一个运行环境才能跑,类似虚拟机的方式执行代码,Objective-C和C++编译出的代码则可以直接给交给CPU运行。有运行环境的语言,执行效率低很多,优点是开发简单。
不过既然现在这两个是最流行的移动开发语言,硬把两者放一起比就相当于拿Google和Apple平台比,还是有意义的:
(1)执行效率:如上面所说,Objective-C效率高得多,所以Android手机的电池表现和性能表现很难均衡。Obj-C胜。
(2)开发效率:也如上面所说,Java开发更简便。不过在苹果的努力下,Objective-C开发MacOSX应用已经可以使用GC(自动垃圾回收),开发iOS应用有ARC(自动引用计数),反正都不再需要手动管理内存了,以前管理内存是Obj-C程序员的噩梦。Java胜。
(3)跨平台:除了苹果的系统,已经没什么系统应用能用 Objective-C 开发了,但Objective-C可以和C++混合编译,C++的跨平台威力可秒杀Java,所以很多软件都是用C++开发核心、在苹果的平台上用Obj-C做个壳。当然,Java也能调用C++开发的代码,但两种语言格格不入(效率差距、类型差异),开发出的代码一点都不优雅,无法与Obj-C / C++的融合媲美。平手。
(4)开源库:Objective-C的开源库丰富程度虽然比不上Java,但Objective-C可以和C++混合编译,C++开源库就可以和Java比了。不过考虑到跨语言开发还是比单语言开发麻烦一些,Java胜。
以上几点权重不一样的,例如移动开发时(1)最重要,所以个人认为Google选Java不是个好选择,C++好得多,可能他们考虑的是C++几乎是流行编程语言中最难学的。
如果Objective-C和C++比,个人认为Objective-C真是全方位都弱于C++。
”
C :
【面向过程】;大部分都是硬件或者是系统组件,当项目臃肿到一定程度,人类就不可控了。
C++:
【面向对象】;期初是C语言的改进与扩展,现在已经非常独立且强大。
结合了C语言的底层编程能力同时提供了丰富抽象能力,同时无可避免的增加了语言的复杂度。
换句话说,做事情的方法不止一种,而用C++就可以给你几乎所有的选择,于是C++能利用各种抽象做所有事情。
、、、、
JAVA:
【面向对象】;底层(运行时库)是用c语言开发,但并不依赖于c语言。
一个简化了的C++编程语言的子集,及一套庞大的平台无关的标准库。无法脱离运行时环境(JVM)而存在
C #
java的翻版;微软开发,但受限于应用平台。
Java填了Java的坑,然后又引入了不少新的设(da)计(keng),但C#只能用于微软的平台,所以成为了一个限制。
Andriod
android程序是Java编写的,但程序使用的android开发的API,就是andriod的库。
andriod就是提供了这个功能,它不需要让你知道java底层的编写,因位很多常用的库早就有人编写了,你的任务就是熟悉这写库,直接调用他们,这样就会大大的加快软件的开发效率
Objective-C
苹果手机APP开发语言,进行iOS开发的一门编程语言,也是官方推荐的iOS开发语言,objective-c只能用于开发苹果系统上的程序
Swift
苹果手机开发Objective-C没发展前途了,于是他换了汤药出现了,顺便把这些年比较潮的语言特性和实践整合了进去。
JavaScript
属于网络的脚本语言,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
Php
PHP(外文名:php: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
javascript就是浏览器执行的脚本语言,控制页面内容。
php就是服务器端执行的语言,读取数据库把内容显示到页面。
如果你想增加页面交互性,必须学javascript,否则可以不学。
[ PHP、JavaScript、HTML三者的比较] :http://blog.csdn.net/s___lei/article/details/51307616
Python
侧重于测试、运维方向,课程涵盖网络编程、数据库操作、网络爬虫、网络监控、 自动化测试、自动化运维等Python最主流的技术
就是一种结合语言,它有强大的类库,能把很多语言结合在一起使用,比如unix/linux shell、C,环境中很实用,执行的思想是与java、.NET差不多的。
对于图形、图像渲染能力比较出众;
完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。
所以Python是一种相当高级的语言。
JAVA 要编译后才能运行,Python 直接解释运行。
JAVA 引入包后,调用包的方式比 Python 要简洁些,而 Python 直接 import
包则是显式的,不会出现同名模块/类冲突的问题,如果使用“from module import function”的话,在使用的时候也很简洁却要求必须有针对性地引用函数。
JAVA 里的块用大括号对包括,Python 以冒号 + 四个空格缩进表示。
JAVA 的类型要声明,Python 的类型不需要。
JAVA 基本上是类/结构操作,也就是面向对象处理,Python 可以以独立的函数模块来处理逻辑而不需要放到类中。
JAVA 每行语句以分号结束,Python 可以不写分号。
JAVA 中的字符串以双引号括起来,Python 中单引号或双引号都可以(与 JavaScript 一样)。
实现同一功能时,JAVA 要敲的键盘次数一般要比 Python 多。
系统编程:提供API(Application Programming Interface应用程序编程接口),能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。
图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。
数学处理:NumPy扩展提供大量与许多标准数学库的接口。
文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
数据库编程:程序员可通过遵循Python
DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。
网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。
Web编程:应用的开发语言,支持最新的XML技术。
多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
pymo引擎:PYMO全称为python memories off,是一款运行于Symbian
S60V3,Symbian3,S60V5, Symbian3, Android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆(memories off)风格的AVG游戏,故命名为PYMO。
黑客编程:python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。将Python列为黑客应当学习的四种编程语言之一
Python到底能干什么?:http://www.cnblogs.com/cbryge/p/6189291.html
Node.js
Node.js是一个Javascript运行环境
.net
是微软的新一代技术平台,.NET是 Microsoft XML Web services 平台;
微软下一代的操作平台,它允许人们在其上构建各种应用方式,使人们尽可能通过简单的方式,多样化地、最大限度地从网站获取信息,解决网站之间的协同工作,并打破目前计算机、设备、网站、各大机构和工业界间的障碍--即所谓的“数字孤岛”,从而实现因特网的全部潜能,搭建起第三代互联网平台。
.net 是微软的一个操作平台,在这个平台上可以运行VS(visual studio)工具,这个工具支持很多种语言(比如C# ,F#), 一般编程就是用 “语言” 通过 “工具” 在平台上编程的。
举个例子:
.net=地皮,
地皮=》房子(.net=》vs)
人=》房子(c#=》vs)
我们人使用建在地皮上的房子。
.net就是那个地皮了,最根基的东东。
html:超文本标记语言
css:层叠样式表
“语言标记语言,是一种将文本(Text)以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。与文本相关的其他信息(包括例如文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记(markup)进行标识。如:HTML、XML
脚本语言脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。它的命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控制语言。 一个脚本通常是解释运行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序员快速完成程序的编写工作。如:JavaScript、VBScript、PHP
编译型语言编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些如 C、C++
区别:
1、标记语言不用于向计算机发出指令,常用于格式化和链接。2、脚本语言介于标记语言和编程语言之间,脚本语言脚本语言不需要编译,可以直接用,由解释器来负责解释。
3、编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。
操作系统:
管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,
任何其他软件都必须在操作系统的支持下才能运行。常见的操作系统Android, iOS, Linux, Windows;
[C++, Objective C, Java, C # 详细比较和区别1]: http://www.cnblogs.com/iiiDragon/archive/2013/08/16/3262657.html
[C++, Objective C, Java, C # 详细比较和区别2]:http://blog.csdn.net/educast/article/details/7220982
[六种流行的语言---C、C++、python、Java、php、C#比较[转]]:http://www.cnblogs.com/bluedy1229/p/3750168.html
[Java C# .net 和 C C++ 跨平台的区别]:http://blog.csdn.net/rosekisser/article/details/4075872
[PHP, Python, Node.js 哪个比较适合写爬虫?]:https://www.zhihu.com/question/23643061
[ 浅谈PHP与Node.js的区别]:http://blog.csdn.net/jizhundaa/article/details/47722917
[Node.js 为什么要用JavaScript 去实现?]:https://www.zhihu.com/question/20383725
Java、C++、Python、Ruby、PHP、C#和JavaScript的理解:http://blog.csdn.net/u010664947/article/details/50441429
[ 编译语言、解释语言与脚本语言之间的区别]:http://blog.csdn.net/wm_1991/article/details/51853900
[脚本语言和编程语言的区别]:http://blog.csdn.net/endeavour_zhao/article/details/50883779
[ .NET、C#和ASP.NET三才之间的区别]:http://blog.csdn.net/279503482/article/details/6007190
纯属个人观点,仅供参考!