通俗解释主要编程语言及其用途

在 Quora 网站上有这样一个问答贴:《In layman’s terms, what are the major programming languages, and what are they used for? 》如何用通俗语言来解释主要的编程语言及其用途。这个问答贴回复很多,不乏精彩回答。伯乐在线挑选得票数排前二的回复。编译如下:

Isaac Lewis 的回复 (3457 票,最有特色的回复,把编程语言比作女人)

PHP 是十多岁的花季恋人,是你在那个夏天首次笨手笨脚寻求的女孩。但不要试图和她开始一段更严肃的关系,因为这妹纸有严重的问题。

Perl 是 PHP 的姐姐。对于你来说,或许她年龄有点大了,但在20世纪90年代,她老火了。在和 Larry Wall 有一段长期关系后,Perl 的眼光下降了,并且她现在也色衰了。“ 爷才不管你们怎么说,爷就是爱她!” Larry Wall 如是说。但其他人不是这样的。(译注:Larry
Wall 是 Perl 语言之父。)

Ruby 是脚本语言家族中的酷妹。当你首次遇见她时,由其美貌而生的摄魂大法,差点让你窒息。她也很有趣。那时候她看起来有点反应慢且傻大姐,不过过去几年中,她已成熟许多。

Python 是 Ruby 更为明智的姐姐。她优雅、漂亮、成熟。她或许是太完美了。大多数男人会喜欢说“哥们,你怎么会不喜欢 Python 呢!?”。是的,你是喜欢
Python。你是把当做了既不急躁也不很浪漫的 Ruby。(You just consider her the boring version of the edgy and romantic Ruby)

嘉娃(Java) 是一位成功的职场女性。有些和她一起共事的人认为,之所以她可以在她那个岗位,虽然能力有所欠缺,但她给中层管理人员留下了好印象。或许你认为她是那种明智类型的,你应当和她一起定居。不过你要准备好在多年之中听不到“接口类型错误、遗漏分号”这样的絮叨。

 

熙佳佳(C++)是 Java 的表姐妹。和 Java 有很多共同点,不同的是,熙佳佳成长于更纯真的年代,她不相信要用“保护制度(protection)”。“保护制度”,我当然是在说自动内存管理。难道你以为我在说其他意思么?

C 是 C++ 的妈妈。如果你和一些胡须泛白的老黑客说起她的大名,他们肯定双眼一亮,然后开始忆初了。:)

Objective- C  是 C 家庭的另一成员。她去一个奇特教堂回来后,就不和外面其他人约会了。

Haskell, Clojure, Scheme 和她们的朋友都是一些爱时髦、有艺术气、聪明的妹纸。或许在多年前,你在学校就和她们一起度过了一个美好的夏天。她们是第一批让你觉得有挑战的妹纸。当然,尽管你总是自问“如果 … 将会怎么样”,但你或许从没有想要严肃对她,

你或许会推迟和C#的约会,是因为她家名誉有问题。但她们会告诉你,这些年来,她们已经洗掉臭名。一旦你加入我们,你就是我们的一员了,你听到了吧?你需要一个数据库?她哥
哥 MSSQL 会钩住你。你需要一个住的地方?哎呀,她爸爸甚至可以给你在 Azure 大道上买套公寓。怎么样,莫非你对她们这些过度热心的亲戚有其他想法?不,你不能离开。你现在已经是她们的家庭成员,亲,听到了不?

Javascript - 嘿,这不就是那个拿下你初吻的妹纸么,甚至比 PHP 还早出现。我不知道她现在在做什么。听说她近几年事业飞黄腾达了。赶上时候,旧人也能焕发光彩……(你能看到她从头到脚穿着 jQuery 设计师设计的东西)……哇,有人变成白天鹅啦……
(*^__^*)

 

Tamil Selvan 的回复(他是 Common Lisp程序员,得票数
333 )

C                        -> 微调后的引擎

C++                    -> 能赚大钱

Java                    -> 可从银行拿回我们的钱

Python                -> 童谣 (甚至老者都能从中发现智慧…)

Ruby                   -> 可从风投人那拿到钱

PHP                    -> 用于夫妻店

Erlang                 -> 可同时做多件事

Perl                     -> 和管道胶带类似

Common Lisp       -> 可用其做任何事情,但且不知该做什么

Haskell                 -> 数学系的家伙喜欢用

OCaml                 -> 搞编译器设计的家伙喜欢用

Objective -C         -> 乔布斯粉丝所用

JavaScript            -> 做网页的,到处都在用

C#                     -> 针对那些对 IT 无头绪的人的解决方案(相信 MS 会照顾好你,而不是你自己)

Scala                -> 有人(paul graham)说 Java 有点 disciplinarian ,所以有极客想改变形象,他们就发明了 Scala。

 

其他回复请前往 Quora 查看。

时间: 2024-10-31 05:58:55

通俗解释主要编程语言及其用途的相关文章

关于“卷积”的通俗解释

这几天搞图像总遇到卷积,对于以前是通信专业的我来说,卷积并不陌生,<信号与系统>里面的常客,但是既然这个数学工具最初是出于物理上面,那肯定有通俗易懂的物理背景. 数据挖掘中有时需要卷积这一数学工具(例如计算个体适应度.对象间距离,以及干预效果等等),昨天又有同学问到相关问题,借用最近在网上的滚烫的词汇集 { 辐射,服碘,补盐,空袭 },对卷积做了一个直观的解释.反馈还算满意,又在过去讲课的PPT中取些素材,改写成了这篇博文. 幼童背古诗文的感觉,来自数学系的同学觉得卷积是小菜一碟,随手就写出卷

简短几句 通俗解释javascript的闭包_javascript技巧

何谓没有被释放资源的栈区和预执行的过程,用一个最常见的示例来解释: 比方现在我们有一个ul,下面有很多个li,需要遍历他们为他们绑定单击事件,并在点击后将当前下标传递给另外一个function来进行额外的处理: 复制代码 代码如下: for(var i=0; i<agroup.length; i++) { agroup[i].onclick = function() { handler(i); } } 执行结果显而易见对吧?在handler中,获取传递过去的参数i,你看到的将全部是最大的下标,这

对MySQL几种联合查询的通俗解释_Mysql

表a aid adate 1 a1 2 a2 3 a3 表b bid bdate 1 b1 2 b2 4 b4 两个表a.b相连接,要取出id相同的字段. select * from a inner join b on a.aid = b.bid 这是仅取出匹配的数据. 此时的取出的是: 1 a1 b1 2 a2 b2 那么left join 指: select * from a left join b on a.aid = b.bid 首先取出a表中所有数据,然后再加上与a.b匹配的的数据.

通俗解释遗传算法及其Matlab实现

早上再看一个APP推荐的文章,发现的. (1)初识遗传算法         遗传算法,模拟达尔文进化论的自然选择和遗传学机理的生物进化过程的计算模型,一种选择不断选择优良个体的算法.谈到遗传,想想自然界动物遗传是怎么来的,自然主要过程包括染色体的选择,交叉,变异(不明白这个的可以去看看生物学),这些操作后,保证了以后的个体基本上是最优的,那么以后再继续这样下去就可以一直最优了. (2)解决的问题         先说说自己要解决的问题吧.遗传算法很有名,自然能解决的问题很多了,在原理上不变的情况

java-通俗解释:什么是面向对象?与面向过程区别在哪?

问题描述 通俗解释:什么是面向对象?与面向过程区别在哪? 什么是面向对象?与面向过程区别在哪?用通俗的话语解答,不要理论性的专业术语,最好是拿生活中的熟知的事物去类比解释!!!多谢~ 解决方案 面向对象和面向过程不矛盾,事实上,Java也是面向过程的编程语言. 面向过程是指,允许在程序中定义函数或者方法.也许你觉得奇怪,难道还有语言不能定义函数方法么?早期的basic就不可以,只能用跳转来实现函数调用. 面向对象更近一步,允许你将"过程"(函数.方法)以及它们的上下文相关的数据封装成对

史上最全编程语言列表,你掌握了哪些?

计算机编程语言可用于将指令传达给计算机.下面可能是史上最全编程语言列表,我将它们分为以下几类,你掌握了哪些? 解释型编程语言 函数式编程语言 编译型编程语言 过程式编程语言 脚本编程语言 标记编程语言 基于逻辑的编程语言 并发编程语言 面向对象编程语言 解释型编程语言 解释型语言是这样一种编程语言,其大部分实现直接执行指令,而无需先将程序编译成机器语言指令.解释器直接执行程序,它会将每个语句翻译成已编译成了机器代码的一个或多个子程序的序列.(维基百科) APL APL 以<编程语言(A Prog

多线程开发join()的方法比较透彻和清晰的解释

问题描述 多线程开发join()的方法比较透彻和清晰的解释 我现在正在自学java中的多线程,但是呢,join()这个方法和sleep()方法,我不是很能理解,哪位大神可以解释一下,最好有个简单的例子,谢谢啦 解决方案 Thread.sleep(1000); 这意思是,如果线程运行到这儿了,线程在这个地方等1秒钟再往下走(精度不准) sleep就是睡觉意思,这就好理解了 join()简单用法就是等一个线程结束 例如开启个线程做延时操作 Thread myThread1; 在main中调用它 my

为什么编程语言中日期能够实现加减法

一.概要 日期类型在编程语言中内部是通过number 存储的 日期类型加减实际是数字的加减 多数编程语言的日期开始时间是 1970-01-01 00:00:00 二. 为什么多数编程语言的开始日期是从1970-01-01 00:00:00 开始  通过查阅资料一般存在两种解释  多数编程语言起源于UNIX,UNIX系统的时间纪元是1970-01-01 00:00:00,即所为的UNIX时间戳. 最初计算机都是32位操作系统,时间需要通过number存储,32位能表示最大数字为2147483647

为什么计算机时间和众多编程语言要从1970年1月1日开始算起

今天我们来讨论一个非常有意思的事,那就是你知道为什么计算机时间和众多的编程语言的时间都要从1970年1月1日开始算起呢,时间计时起点到底为什么是 1970年1月1号呢?我想大家应该都知道,但是我估计大家几乎大部分都没有想过这个问题.我们就一起来聊聊,这是为什么? 1.最懒的解释 很多编程语言起源于UNIX系统,而UNIX系统认为1970年1月1日0点是时间纪元,所以我们常说的UNIX时间戳是以1970年1月1日0点为计时起点时间的. 说了这个懒人的解释,估计大家还没有懂得真正的意思.所以我们接下