C、C++、Java、JavaScript、PHP、Python、Ruby 这些语言分别主要用来开发什么?

pansz欢迎评论

此贴纯科普用,以下仅仅说主要用途,其他用途限于篇幅关系省略之,不要钻牛角尖。

C:系统底层,驱动程序,嵌入式底层,基础服务程序。
C++:上层服务程序,应用API,大型3D游戏。
Java:服务端应用程序,以及客户端应用程序。
JS:在浏览器中运行的程序。
PHP:Web服务器端用于生成网页的程序。
Python:任意的无图形界面应用程序,以服务器端应用程序为主。
Ruby:主要用于 RoR 框架,在其他领域使用较少。

 
 

Xi Yang盯……………………

C:配合汇编一起写操作系统;系统基础设施。也有用来搞大型游戏的,但略蛋疼。
C++:比较复杂但又特别需要高效率的设施,比如大型游戏,一些基础库, 大型桌面应用。
Java:开发比较容易,不容易出错。网络服务器端用的多,特别是企业管理类应用。另外,经常有科研程序使用Swing这个屌丝GUI。
JavaScript:网页客户端脚本。近年的Node.js是用于服务器端开发的。
PHP:主要是网络前端,用于生成网页。也可以整个web服务器都用php,比如很多论坛引擎。
Python:其实干什么都有。比如科研用的日常脚本、系统管理、一些不太复杂的GUI程序、web服务器等等。另外,也有不少桌面程序、游戏使用python作为脚本引擎。
Ruby:好像主要是用Ruby on rails来做web开发
 

uncle creepy觉得知乎的水问答和产品类问答太泛滥了,…

C/C++理论上是可以做任何开发的,只要有合适的硬件驱动和API,特点是效率高,基本上是编译语言里面效率最高的。(据说java后台处理单条语句效率已经接近C++,但是,java有几个硬伤无法克服,内存占用过大,这个被C++完爆,图像处理,因为jvm虚拟机的关系,所以图像处理效率偏低,此外就是线程切换 ,java线程是由jvm虚拟机处理的,由于多包了一层,所以线程开多了效率偏低)。 
js不了解。。。 
python, ruby, perl, php属于同一类,都是脚本型语言,特点是不需编译,开发效率高(很多定义逻辑都不必考虑),但同时效率低,一般SA喜欢这类语言。同时这类语言也有适合搭建网站的架构,这个我不是很了解,但搭建网站很多东西大同小异,负载大的时候往往可以通过用C重写一些架构和优化服务器来提高效率。这方面有些网站青睐python个是因为pythong就是C++写的,可以直接用lib*.so来代替一些python写的效率较低模块。

举几个例子,qq的qqmail貌似用的是CGI。。也就是用C++写的。。facebook一开始是用php开发的(因为效率高,马克比较熟php,马克是前端程序员。。?),后来用C重写模块和数据库来加速。很多网站后端是是java写的(java就适合后端开发,因为java单句执行效率和C++差不多),像一些游戏,比如 仙剑奇侠传之类都是用C++开发的, DOOM之类也是用C++的D3D api开发的。

 
 

九天雁翎程序猿 攻城师

理论上任何语言干任何事情几乎都可以, 但是主要干什么那就不一样了, 恰好你提到的语言我都多少有了解, 我给你个简单回答吧:
C/C++: 游戏开发, 大规模, 高性能, 分布式要求的程序开发(比如通信程序), C还适合用于嵌入式.
Java: 网页, 企业级开发, 普通应用软件, 游戏后台
JavaScript: webapp, 现在用node.js也挺适合做后台了.
PHP: 就是网页后台, 也有做弱连接游戏后台的.
Python: 日常脚本工具, 非常方便. 或者开发网页后台, 不过较少.
Ruby: Ruby on Rails做网页后台是目前小型网站快速开发的王道.
 
 
 

C、C++、Java、JavaScript、PHP、Python、Ruby 这些语言分别主要用来开发什么?的更多相关文章

  1. 正则表达式匹配可以更快更简单 (but is slow in Java, Perl, PHP, Python, Ruby, ...)

    source: https://swtch.com/~rsc/regexp/regexp1.html translated by trav, travmymail@gmail.com 引言 下图是两种 ...

  2. Java调用Javascript、Python算法总结

    最近项目中经常需要将Javascript或者Python中的算法发布为服务,而发布Tomcat服务则需要在Java中调用这些算法,因此就不免要进行跨语言调用,即在Java程序中调用这些算法. 不管是调 ...

  3. [转]Java调用Javascript、Python算法总结

    最近项目中经常需要将Javascript或者Python中的算法发布为服务,而发布Tomcat服务则需要在Java中调用这些算法,因此就不免要进行跨语言调用,即在Java程序中调用这些算法. 不管是调 ...

  4. Atitit. servlet 与 IHttpHandler  ashx  listen 和HttpModule的区别与联系 原理理论 架构设计   实现机制    java php c#.net js javascript  c++ python

    Atitit. servlet 与 IHttpHandler  ashx  listen 和HttpModule的区别与联系 原理理论 架构设计   实现机制    java php c#.net j ...

  5. Atitit  文件上传  架构设计 实现机制 解决方案  实践java php c#.net js javascript  c++ python

    Atitit  文件上传  架构设计 实现机制 解决方案  实践java php c#.net js javascript  c++ python 1. 上传的几点要求2 1.1. 本地预览2 1.2 ...

  6. indexOf原理,Java,javascript,python实现

      简介 最近做项目的时候,发现无论是前端还是后端,indexOf出现的概率都非常频繁,今天我们来看下他的实现原理吧! indexOf的含义:给定一个字符串去匹配另一个字符串的下标,如果匹配到,返回下 ...

  7. 为什么用 Java:一个 Python 程序员告诉你

    这篇文章专门给程序员写的,普通读者慎入.原作者:Kevin Sookocheff 译者:Celia Zhen,原文点击文末链接. 每当我告诉别人我一直在用Java工作时,大家的反应都是: “纳尼!Ja ...

  8. JSP,PHP,Python,Ruby,Perl概要及各自特点

    JSP,PHP,Python,Ruby,Perl概要及各自特点 博客分类: JSP PHP Python Ruby Perl概要及各自特点 javascript  互联网技术日新月异,编程的语言层出不 ...

  9. Atitit.异步编程 java .net php python js 对照

    Atitit.异步编程 java .net php python js 的比較 1. 1.异步任务,异步模式,  APM模式,,  EAP模式, TAP 1 1.1.       APM模式: Beg ...

随机推荐

  1. spark standlone 伪分布式安装

    一,在官网下载对应的版本http://spark.apache.org/downloads.html 二在linux中解压下来的spark包   三:配置环境变量     (1)在/etc/profi ...

  2. traceroute 命令

    通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径.当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一 ...

  3. Photoshop中磁力套索的一种简陋实现(基于Python)

    经常用Photoshop的人应该熟悉磁力套索(Magnetic Lasso)这个功能,就是人为引导下的抠图辅助工具.在研发领域一般不这么叫,通常管这种边缘提取的办法叫Intelligent Sciss ...

  4. 【Mac系统】之Mysql数据库遇到修改数字密码的问题(SQL语法错误:ERROR 1064 (42000),密码策略等问题:ERROR 1819 (HY000))

    安装完Mysql也进行了第一次初始化密码以及修改密码规则(请参考文章),但是我想后续再改密码,出现了下面几个问题: #SQL语句错误问题 ERROR 1064 (42000): You have an ...

  5. 【JMeter4.0学习(五)】JMeter对服务器监控测试脚本开发

    目录: 下载相关JMeter插件 服务器监控测试脚本开发 附:参考相关文档 本文主要来说一下如何通过JMeter插件来监控服务器CPU.内存.磁盘.网络等相关资源. 一.首先,需要下载相关JMeter ...

  6. ViewPage + Fragment 防止Fragment 重复加载问题

    @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanc ...

  7. 【Atheros】内核调试及网卡加载等问题小结

    我做的其他很多工作就比较有针对性了,不是什么大众性的问题,比如加统计代码.实现自己的速率调整算法或者加一些自己的控制什么的,就不再单独介绍了,最后呢再罗列一些小问题,供参考. 1. 加载模块(执行wi ...

  8. memcache 使用方法

    Memcache::add // 添加一个值,如果已经存在,则返回falseMemcache::addServer // 添加Memcache地址Memcache::close // 关闭一个Memc ...

  9. np_utils.to_categorical

    https://blog.csdn.net/zlrai5895/article/details/79560353 多类分类问题本质上可以分解为多个二分类问题,而解决二分类问题的方法有很多.这里我们利用 ...

  10. vscode 和 atom 全局安装和配置 eslint 像 webstorm 等 ide 一样使用 standard标准 来检查项目

    首先你要安装了 nodejs ,然后在终端命令行输入下面的这堆 npm install eslint eslint-plugin-standard eslint-config-standard esl ...