回复内容:
此贴纯科普用,以下仅仅说主要用途,其他用途限于篇幅关系省略之,不要钻牛角尖。c:系统底层,驱动程序,嵌入式底层,基础服务程序。c++:上层服务程序,应用api,大型3d游戏。java:服务端应用程序,以及客户端应用程序。js:在浏览器中运行的程序。php:web服务器端用于生成网页的程序。python:任意的无图形界面应用程序,以服务器端应用程序为主。ruby:主要用于 ror 框架,在其他领域使用较少。
swoole: php语言的高性能网络通信框架,提供了php语言的异步多线程服务器,异步tcp/udp网络客户端,异步mysql,数据库连接池,asynctask,消息队列,毫秒定时器,异步文件读写,异步dns查询。swoole用来取代c++,java来开发服务器端程序,开发效率更高。swoole: php的异步、并行、分布式扩展
反对一切“c/c++”混为一谈的说法。转载一张图:很久以前看到的,用刀来调侃各常见编程语言。只可意会,不可言传。
c:配合汇编一起写操作系统;系统基础设施。也有用来搞大型游戏的,但略蛋疼。c++:比较复杂但又特别需要高效率的设施,比如大型游戏,一些基础库, 大型桌面应用。java:开发比较容易,不容易出错。网络服务器端用的多,特别是企业管理类应用。另外,经常有科研程序使用swing这个屌丝gui。javascript:网页客户端脚本。近年的node.js是用于服务器端开发的。php:主要是网络前端,用于生成网页。也可以整个web服务器都用php,比如很多论坛引擎。python:其实干什么都有。比如科研用的日常脚本、系统管理、一些不太复杂的gui程序、web服务器等等。另外,也有不少桌面程序、游戏使用python作为脚本引擎。ruby:好像主要是用ruby on rails来做web开发。
自问自答大四了,这个问题是大一的时候问的,大家只看到了我提问的问题,不知道我提问背后的动机,提这个问题的原因是因为那个时候刚进大学,很迷茫,不知道要学什么,在图书馆和网上见到各种语言各种技术,不知道从何入手。如果有人是不知道如何选择这些技术而看到这个问题,我可以给你一些帮助。选择一门语言,主要看你未来打算从事哪方面的开发。c、c++是偏向算法类,一般需要比较强的数据结构和算法的能力,如果你这方面很擅长,拿过acm大赛冠军或者是topcoder这类网站的大神,毕业不怕找不到工作。并不是说其他语言就不需要数据结构和算法的能力,程序=算法+数据结构,但是不如c明显。java、php、python、ruby这些语言都有它的美感和使用范围,最常用的都是做服务器后台开发的,需要你学习各种框架,理解面向对象。javascript是浏览器的脚本语言,一般和html,css这些一起学,主要做网站的前端开发,展现各种酷炫的画面。其实有时候,最好的选择是没有选择,选择太多,反而会不知所措。如何你试试这个语言,又看看这个语言,觉得这个语言有缺点,觉得这个语言太麻烦,又投靠其他语言,只会一事无成。选择了,就要深入理解它,包容它,每个语言都有它的局限性。
理论上任何语言干任何事情几乎都可以, 但是主要干什么那就不一样了, 恰好你提到的语言我都多少有了解, 我给你个简单回答吧:c: 系统底层, 驱动, 嵌入式开发.c++: 游戏开发, 大规模, 高性能, 分布式要求的程序开发(比如通信程序)java: 网页, 企业级开发, 普通应用软件, 游戏后台javascript: web前段, webapp, 现在用node.js也挺适合做后台了. 假如任何人只想学一门语言(本身不现实), 那我只推荐js.php: 就是网页后台, 也有做弱连接游戏后台的.python: 日常脚本工具, 非常方便. 或者用django开发网页后台, 不过较少.ruby: ruby on rails做网页后台是目前小型网站快速开发的王道.
忘记在哪看到的,说的挺有意思的。
—————————————————————————————————————
php是你的豆蔻年华的心上人,她是情窦初开的你今年夏天傻乎乎的追求的目标。玩一玩可以,但千万不要投入过深,因为这个女孩有严重的问题。
ruby是脚本家族中一个非常漂亮的孩子。第一眼看她,你的心魄就会被她的美丽摄走。她还很有有趣。起初她看起来有点慢,不怎么稳定,但近些年来她已经成熟了很多。
python 是ruby的一个更懂事的姐姐。她优雅,新潮,成熟。她也许太过优秀。很多小伙都会说“嘿,兄弟,你怎么可能不爱上python呢!?”。没错,你喜欢python。你把她当成了一个脾气和浪漫都退烧了的ruby。
java是一个事业成功的女人。很多在她手下干过的人都感觉她的能力跟她的地位并不般配,她更多的是通过技巧打动了中层管理人员。你也许会认为她是很有智慧的人,你愿意跟随她。但你要准备好在数年里不断的听到“你用错了接口,你遗漏了一个分号”这样的责备。
c++ 是java的表姐。她在很多地方跟java类似,不同的是她成长于一个天真的年代,不认为需要使用“保护措施”。当然,“保护措施”是指自动内存管理。你以为我指的是什么?
c 是c++的妈妈。对一些头发花白的老程序员说起这个名称,会让他们眼睛一亮,产生无限回忆。
objective c c语言家族的另外一个成员。她加入了一个奇怪的教会,不愿意和任何教会之外的人约会。
精通其中任何一种你就可以衣食无忧! 精通其中任何一种学习其他的 也就不是问题 !其实语言只不过是在不同领域解决计算机问题的一种方式 !so 不要在乎是什么 !找一个自己能看懂的学 就ok ~
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开发的。
欲三更 的回答中尾三項說得比較不準確php : 主要以fastcgi 模式運作返回資料流, 所以作為伺服器模式運作效率會較佳, 適合單點單線程的程序開發; 比如說互聯網上的資料生成, 網頁是主要的表現方式。python : 方便引用組件和簡潔的語法, 在很多地方都有用途, 由網頁引擎, 遊戲開發, 以至單機程式都有自己的框架, 但也因為其平衡度, 一來令開發人員可以用同一種語言來開發, 但反面是沒有突出的表現。ruby : 因為cpu 和記憶體效能低下的問題。今天主要是兩個用途, 1.作為ror 的基礎做網頁rad, 2.作為遊戲引擎中的二級語言。c++補充, 作為系統級的低階語言, 但它的語言特性之豐富足以令它建立層次豐富的大型系統。