为什么有那么多编程语言?

时间:2010-12-02 12:26:43

标签: programming-languages

你可能认为这个问题很愚蠢,但作为一名新的IT学生,我认为当我学习一种语言(例如java)时,我倾向于忘记我以前学过的那种语言(例如)...或者我混淆了语法....所以为什么不将所有内容合并为一个所以学生不需要学习多种语言...然后杀掉无用的编程语言...为什么不创建像sql这样的标准? ?

3 个答案:

答案 0 :(得分:6)

不同的语言可以解决或拥抱:

  • 不同的需求(特定领域的表现,可靠性,表达利基计划的便利性等)
  • 不同的平台
  • 差异模型(功能,OO等)
  • 不同的历史

有许多编程语言是“通用的”,其他编程语言是针对特定情况的...但即使在“通用”编程语言中,也没有语言可以替代所有其他语言。< / p>

请注意,即使使用SQL示例,大多数数据库供应商都有自己的SQL扩展,这些扩展需要使数据库超出“这是一个查询,给我一个结果表”。

答案 1 :(得分:2)

随着计算机变得越来越强大并且进入许多应用领域,编程语言随着时间的推移而不断发展。

一开始,资源非常有限,需要编程语言非常接近机器,如Assembler,Cobol等。

如今,有如此多的处理能力,我们可以使用高度复杂的编程语言,如Java和C#,这使编程非常舒适,但在CPU周期方面效率不高。

每种编程语言都有自己的目标。对于嵌入式开发,主要使用Assembler,C和C ++。为此目的还有许多其他语言。对于Web开发,有许多语言可用,每个语言都侧重于简化工作的另一个方面。有些语言可以在Java等各种平台上运行,语言使得Windows编程变得非常简单,比如VB.NET。

当您学习编程语言时,您的目标不应该只是学习语法,而是要了解编程原理。如果你有这个,你可以快速学习其他语言,只要它们遵循相同的范例(面向对象,程序,功能......)

答案 2 :(得分:2)

虽然“一种语言统治他们所有人”的想法是一个有趣的理论思想,但任何试图成为所有情境的所有事物的语言最终都会在其自身的重压下推翻。

例如,虽然我们看到C#中的有趣变化使其更具功能性或更具动态性,但是一种试图成为所有东西并且过多地放入其核心语法的语言最终会出现一些问题,其中存在非常微妙的差异。语法可能有一些意想不到的行为。

语言应该帮助用户表达意图,并强迫他们与编译器等作斗争以实现该意图。例如,C#中的不可变性比F#更难。 Ruby中的某些东西比使用静态类型的语言更容易和更具表现力 - 这甚至可以达到我们构建自己的语言(DSL)以更好地帮助我们表达意图的极端情况。

在我的职业生涯中,我编写了Cobol,Fortran,C,Pascal,VB,C#,VB.Net,Javascript和Ruby(更不用说像XAML,SQL,HTML,CSS等)< / p>

语言不只是语法 - 这很容易。相反,它是学习该语言的特定习语,并利用它的独特优势来解决您的问题。通过了解各种语言,您可以更好地确定哪种语言提供了正确的功能,以一种富有表现力,可维护和优雅的方式最好地解决手头的问题。