Questions tagged «programming-languages»

用于指示计算机执行计算步骤以完成任务的人工语言。它们允许程序员与计算机进行通信。

5
为什么几种流行的编程语言会受到C的影响?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 根据TIOBE索引,排名前10位的编程语言似乎受C的影响很大: 1. Java 该语言的大部分语法源自C和C ++,但具有更简单的对象模型和更少的低级功能。- wikipedia.org 2. C C是有史以来使用最广泛的编程语言之一,很少有计算机体系结构不存在C编译器。- wikipedia.org 3. C# 在.NET Framework的开发过程中,类库最初是使用称为简单托管C(SMC)的托管代码编译器系统编写的。1999年1月,安德斯·海斯伯格(Anders Hejlsberg)组建了一个团队,以建立当时称为Cool的新语言,该语言代表“类似C的面向对象语言”。- wikipedia.org 4. C ++ 它由Bjarne Stroustrup于1979年在贝尔实验室开始开发,是对C语言的增强。- wikipedia.org 5. Objective-C Objective-C是一种反射式的,面向对象的编程语言,它将Smalltalk样式的消息传递添加到C编程语言中。- wikipedia.org 6. PHP 他将这些脚本重写为C编程语言通用网关接口(CGI)二进制文件,对其进行了扩展以增加使用Web表单以及与数据库进行通信的能力,并将其称为“个人主页/表单解释器”或PHP / FI。- wikipedia.org 8. Python Python是在1980年代后期构思的,它的实现是1989年12月由荷兰CWI的Guido van Rossum开始的,它是ABC编程语言(其本身受SETL启发)的继承者,该语言能够进行异常处理并与Amoeba操作系统进行接口。- wikipedia.org ABC(编程语言)它的设计师声称ABC程序通常大约是等效Pascal或C程序的四分之一,并且更具可读性。- wikipedia.org 9. Perl Perl借鉴了其他编程语言的功能,包括C,shell脚本(sh),AWK和sed。- wikipedia.org 10. JavaScript JavaScript使用受C语言影响的语法-wikipedia.org 看来大多数人都从C借用了他们的语法和/或至少在开始时就受到了其他几种方式的严重影响。为什么?

6
您对haxe和其他可编译为PHP的语言的经验?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 我想听听那些使用可编译到php的语言的人的意见。我知道的一种这样的语言是Haxe。我读过的其他人是Kira和Pharen。 这些语言与PHP的集成程度如何?在其中编写PHP CMS插件相对容易吗? 它们的实现和工具有多成熟? 您会推荐给必须使用php cms但又讨厌php的人吗?

16
软件工程师真的需要不再了解低级知识吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 随着诸如C#,Java等高级编程语言的发展,许多人声称它们将成为汇编语言和C / C ++之类的语言的替代品,这使您可以访问和控制计算机硬件,因为程序员应该专注于创建程序并解决问题,而不是浪费时间与计算机打交道,以使其正常运行。随着硬件的不断改进,C / C ++与Java之间的性能差异将不会很大,并且大型游戏可能可以使用Java之类的语言进行编程。 这是我在Internet上查看此主题后简要概述的一般想法。您认为在不久的将来它将成为现实吗?这是否意味着我们从低级知识中学到的一切对软件行业来说都不实用了?这是否意味着汇编语言和C / C ++仅与电气工程师相关,因为它们将是唯一需要为其电气组件编程的人? 多少学习就足够了?如果我们学习了太多的低级课程,那么我们最终将变得更加专注于电气工程,或者如果我们学习了太多的数学,那么我们可能正在学习成为数学家,而不是程序员。我只是想知道我学到的数学知识(我上了一门数学课程,涵盖了与本书相似的材料(它们使用不同的教科书):离散数学及其应用)是否真的像我们的编程技能一样有用。许多数学练习可能要花费我们大多数时间才能完成,并且如果您认真对待它,则可以减少学习编程的时间。在我们的gamedev论坛中,甚至数学和物理也只有一个部分,与编程相比。 现在,我刚刚开始阅读“计算机编程的艺术”。数学仅覆盖本书的四分之一左右,但是对于我们非数学家来说,练习很难。即使是这样的“基础”数学,我们在职业生涯中是否也经常使用它?有些人可能会告诉我阅读TACOP这本书是浪费时间,并且可能应该花时间在其他更实际的事情上,即使这本书是关于编程的(与本书相比,在学术上也有更多的解释类似的事情)。但是我认为作者投入了大量时间和精力来制作它。他甚至可以写五本书的全部,而我们(观众)只有看书的使命。为什么不?

5
为什么构建工具使用的脚本语言不同于基础编程语言?
当我意识到大多数语言的主要构建工具/系统使用的语言与基础编程语言本身所使用的语言不同时,我最近一直在为Nodejs项目使用一些构建工具。 例如,make不使用C或C ++编写脚本,而ant(也不是Maven)不使用Java作为脚本语言。 诸如Ruby之类的较新语言的确将相同的语言用于诸如rake之类的构建工具,这对我来说很有意义。但是,为什么情况并非总是如此?拥有使用与基础语言不同的语言的构建工具的优势是什么?

3
是否有没有继承的OO语言?
在今天的代码审查中,我的一位同事说了一些有趣的事情: prototype仅在需要继承时才有用- 何时继承是个好主意? 我考虑了一下,然后意识到,我通常使用继承来解决最初设计不好的代码。现代的OO风格更喜欢使用组合而不是继承,但是我不知道有哪一种语言能够真正做到这一点并真正执行它。 是否有带有类,对象,方法,接口等的通用编程语言,这些语言不允许基于类的继承?(如果这样的想法没有意义,为什么不呢?)

6
我怎么说编程语言可以编译成其他语言?
我怎么用英语说可以将编程语言编译成其他编程语言? 示例可以是Haxe。在网站上,该语言被称为“ Multiplatform”: 多平台:Haxe可以通过其快速编译器编译为所有流行的编程平台-JavaScript,Flash,NekoVM,PHP,C ++,C#和Java(很快) 但是多平台可能被误解为硬件或软件平台(win,mac,linux)。 那么最能描述这个能力的词是什么?


5
为什么缺点列表与函数式编程相关联?
我注意到,大多数功能语言都使用单链接列表(“ cons”列表)作为其最基本的列表类型。示例包括Common Lisp,Haskell和F#。这与主流语言不同,后者的本地列表类型是数组。 这是为什么? 对于Common Lisp(是动态键入的),我得到的想法是,缺点非常普遍,足以成为列表,树等的基础。这可能是一个微小的原因。 但是,对于静态类型的语言,我找不到很好的推理,甚至可以找到反参数: 功能性风格会促进不变性,因此链表的插入容易程度较弱, 功能风格鼓励不变性,因此也鼓励数据共享。数组比链表更容易“部分”共享, 您也可以对常规数组进行模式匹配,甚至更好(例如,您可以轻松地从右向左折叠), 最重要的是,您可以免费获得随机访问, 并且(一个实际的优势),如果该语言是静态类型的,则可以采用常规的内存布局并从高速缓存中提高速度。 那么为什么偏爱链表?

13
编程语言作为严格的工作要求有什么用?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 最近,我参加了一个“招聘会”,我惊讶地发现工作场所似乎对考生所熟悉的编程语言有多大的重视。 根据我的经验(虽然有限),虽然真正掌握一种编程语言可能要花费数年,但对于已经拥有其他语言经验的人来说,将其学习到一个合理的水平是一件相当简单的事情,并且绝对可以满足雇主通常分配的时间范围初始加速。 我认为雇主会更在意我熟悉多少种语言/范例,或者我在算法/软件设计方面的经验,而不是我目前熟练的特定技术。 假设我已经知道Java,C ++,Smalltalk和Prolog ...依赖Objective-C的工作场所是否应该真的认为我没有资格,因为我缺乏使用该语言的经验?这是招聘方法上的缺陷吗?如果是,我该怎么做才能说服工作场所我缺乏对Objective-C的经验并不重要?我是在假设性地询问,而不是具体地提到所提到的编程语言。 另外,我的经验有限,我承认我可能会缺少一些东西。以前使用编程语言的经验是否比我认为的更为关键?担任初级或高级职位会有所不同吗?应该有所作为吗?

6
C#的Pascal套管方法名称背后的原理/原因是什么?
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 我刚刚开始学习C#。来自Java,C ++和Objective-C的背景知识,我发现C#的Pascal框其方法名称相当独特,并且一开始很难适应。这背后的原因和哲学是什么? 我猜这是因为C#属性。与Objective-C中的方法名可以与实例变量完全相同的情况不同,C#并非如此。我猜想属性(与支持它的大多数语言一样)的目标之一是使属性与变量和方法真正区分开。因此,在C#中可以有一个“ int x”,并且相应的属性变为X。为了确保属性和方法是不可区分的,因此,我猜测的所有方法名称也应以大写字母开头。(这只是基于目前为止我对C#的了解而得出的假设,我仍在学习中)。我很好奇这个好奇的指南是如何产生的(鉴于它是 (编辑:通过Pascal-casing,我的意思是PascalCase(基本上是camelCase,但以大写字母开头)。在大多数语言中,方法名称通常以小写字母开头)

14
您每天使用几种编程语言,以及如何有效管理特定于语言的任务[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 编辑: 使用多种语言时如何管理单个任务 在日常任务处理中,您使用多少种不同的编程语言? 使用每种语言时,您是否会改变思维方式? 您是否对它们进行优先级排序,并将每个任务分别保留在每种语言中。 是否根据每个任务在语言/ IDE /环境之间无缝切换的进度分阶段进行编码 您是否对所有语言(而不是语法)应用相同的编码样式/惯例? 有关: 程序员同时从事多个项目是否正常?

11
如果我们可以使用Python进行函数式编程,是否需要特定的函数式编程语言?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 使用生成器和lambda,我们可以使用Python进行函数式编程。您也可以使用Ruby实现相同的功能。 所以问题是:为什么我们需要特定的功能编程语言,例如Erlang,Haskell和Scheme?这些特定的功能编程语言提供了什么不同?为什么我们不能只使用Python进行函数式编程?

12
什么是“强大”的语言?
我经常看到人们为自己喜欢的语言比其他语言更“强大”而争论不休。在描述一种编程语言时,我可以理解什么是面向对象的语言或什么是动态语言,但是我仍然无法弄清楚到底什么是“强大”的语言。你怎么看?

8
我应该去学习小语言或小众语言吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 如果在StackExchange上浏览代码高尔夫球问题,则会注意到大量非标准但真实世界的语言,例如F#,Scala,R,J和Clojure。在访问他们的网站时,无论您使用哪种语言,其中一些语言都可以解决有趣的问题。 但是,有空闲时间编码和金钱编码。关于谁使用某种语言,我们最接近事实的是TIOBE Index,该索引在前10-15名中均未列出上述语言。这让我想知道我是否会使用它们。 我是否应该还要学习一些小型利基语言?看来我不会赚钱,但有些人可能还是会失败。

16
为什么Java在这么多机构中是通用语言?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 编辑:这个问题起初似乎是在抨击Java,我想在这一点上有点。但是,我要提出的更大观点是,为什么选择任何一种语言作为最终目标都是所有问题的解决方案。Java恰好是使用过的Java,所以这是我在这里要击败的Java,但是我并不是故意将Java撕成一个新的:) 在大多数学术环境中,我都不喜欢Java。我并不是说语言本身很糟糕-它具有几个非常令人希望的方面,最重要的是能够在大多数平台上运行而无需重新编译。在您的下一个应用^ TM中使用语言没有错。(不是我个人会做的事情,但这更多是因为我对它的经验较少,而不是设计很差) 我认为使用Java作为语言来教授高级CS课程是一种浪费。我的许多共同学生无法编程,但该死的,因为他们不知道如何在非垃圾收集的世界中工作。他们从根本上不了解要为其编程的机器。当某人可以在垃圾回收世界之外工作时,他们可以在一个垃圾回收世界中工作,反之亦然。GC是一种工具,而不是拐杖。但是,它被用来教计算机科学专业的学生的方式是拐杖。 计算机科学不应教授针对一种语言的整套课程。学生们离开了,所有好的设计都是惯用的Java设计,而面向对象的设计是唯一可以做的唯一方法。其他语言,至少其中一种不是垃圾收集语言,应在教学中使用,以使毕业生更好地理解机器。 令人尴尬的是,拥有受人尊敬的机构在CS中拥有PHD的人无法从纸袋中编程出路。 更糟糕的是,当我与那些真正了解事物运作方式的计算机科学教授交谈时,他们会分享这样的感觉,即我们通过使用Java来做所有的事情对我们的学生不利。(请注意,如果我将其替换为任何其他语言,则上述内容将相同,通常是使用一种语言,而不是Java本身) 总的来说,我觉得我再也无法尊重任何程度的知识了-当我看不到周围的人能够摆脱Fizzbuzz问题的影响时,他们可以编程。 为什么/如何成为这种方式?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.