“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

纯属个人观点,仅供参考!

React++ node.js ++SQL Sever ++MySQL++ python ++ php ++ java ++ c++ c#++ java ++ android ++ ios ++Linux+的更多相关文章

  1. KoaHub.JS基于Node.js开发的mysql的node.js驱动程序代码

    mysql A node.js driver for mysql. It is written in JavaScript, does not require compiling, and is 10 ...

  2. Node.js:连接 MySQL

    ylbtech-Node.js:连接 MySQL 1.返回顶部 1. Node.js 连接 MySQL 本章节我们将为大家介绍如何使用 Node.js 来连接 MySQL,并对数据库进行操作. 如果你 ...

  3. React+Node.js+Express+mongoskin+MongoDB

    首发:个人博客,更新&纠错&回复 采用React + Node.js + Express + mongoskin + MongoDB技术开发的一个示例,演示地址在这里,项目源码在这里. ...

  4. node.js中对 mysql 进行增删改查等操作和async,await处理

    要对mysql进行操作,我们需要安装一个mysql的库. 一.安装mysql库 npm install mysql --save 二.对mysql进行简单查询操作 const mysql = requ ...

  5. 前端使用node.js+express+mockjs+mysql实现简单服务端,2种方式模拟数据返回

    今天,我教大家来搭建一个简单服务端 参考文章: https://www.jianshu.com/p/cb89d9ac635e https://www.cnblogs.com/jj-notes/p/66 ...

  6. node.js(连接mysql)

    mysql语句中的SQL sql语句中的分类: ---DDL:(data define language)定义数据列(create,drop,alter,truncate) ---DML:(data ...

  7. Node.js Express连接mysql完整的登陆注册系统(windows)

    windows学习环境: node 版本: v0.10.35 express版本:4.10.0 mysql版本:5.6.21-log 第一部分:安装node .Express(win8系统 需要&qu ...

  8. Node.js中测试mysql的代码var client = mysql.createClient运行出错:TypeError: Object # has no method ‘createClient’

    今天在WebStorm下熟悉一个node.js的项目,配置环境时,手一抖,将mysql包从0.8升级到了2.1.1,结果再运行时就出错了. [Fri Mar 14 2014 17:05:49] 连接数 ...

  9. node.js如何读取MySQL数据

    先安装mysql模块. node.js默认安装时,模块文件放在 /usr/local/lib/node_modules 这个目录下,为了便宜管理,模块还是统一安装到这里好. $ cd /usr/loc ...

随机推荐

  1. 修改css的(屏蔽)overflow: hidden;实现浏览器能把网页全图保存成图片

    摘要: 1.项目需要,需要对网页内容“下载”保存成全图片 2.QQ浏览器等主流浏览器都支持这种下载保存功能 3.项目需要场景:编写好的项目维护文档,放在服务器上.如果是txt不能带图片可视化,如果wo ...

  2. 如何轻松搞定 笔记本搜不到WIFI信号问题

    经常用电脑的同志肯定遇到过:一开机,发现右下角网络图标有个×号,wifi信号也搜不到:或者其他wifi信号能搜到,唯独自家的搜不到,是不是感觉很绝望啊,居然被wifi欺负到身上了,这也太憋屈了吧. 此 ...

  3. windows系统安装python3.6.3和python3.7.0

    一.装备好从官网下载的python软件包(3.6.3和3.7.0) 二.先安装python3.6.3 1.运行python3.6.3文件 2.选择默认 3.下一步,等待安装 4.检查是否安装成功 ,安 ...

  4. spring.factories

    在Spring Boot中有一种非常解耦的扩展机制:Spring Factories.这种扩展机制实际上是仿照Java中的SPI扩展机制来实现的. Java SPI机制SPI的全名为Service P ...

  5. 修改CentOS 7.2系统的主机名

    之前使用网上的大部分说法,修改了两个配置文件: /etc/hosts /etc/sysconfig/network 然后,并没有什么卵用. 后来,搜阿里云配置,看到这个办法: 使用“经典网络”类型的E ...

  6. 【转】Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题

    转载地址:http://blog.csdn.net/ouyang_peng/article/details/51168072 Android 设备的CPU类型(通常称为”ABIs”) x86: 平板. ...

  7. Git基础命令的使用——详细教程2

    Git安装默认完成后,在左面点击鼠标右键,鼠标右键菜单中会多出来两个选项: a)  Git GUI Here <—>  图型界面模式 b) Git Bash Here <—> ...

  8. FFMPEG详细参数

    这几天做视频相关的东西,找到了这款比较牛掰的工具FFmpeg Howto Table of Contents * Generic Syntax * Main Options * Encoding : ...

  9. webpack2 项目构建一

    最近工作忙,学习被暂停了,还是网上多看看资料,多学习学习一下,看到一些好的资料,自己想整理一下,这不,webpack2项目构建都还没有弄懂,webpack3就已经发布了,说实话周末现在真不想看书和研究 ...

  10. JVM解释器和编译器

    首先看一个命令 [root@insure ~]# java -version java version "1.8.0_191" Java(TM) SE Runtime Enviro ...