<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么會(huì)有這么多編程語(yǔ)言?

          共 1520字,需瀏覽 4分鐘

           ·

          2022-07-30 22:49

          點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)

          出品 | OSC開源社區(qū)(ID:oschina2013)
          為什么會(huì)有這么多編程語(yǔ)言?
          在編程語(yǔ)言如此豐富的今天,相信許多開發(fā)者都有過(guò)上面的疑問(wèn)。不過(guò)早在 1960 年代初,人們就已經(jīng)提出了這個(gè)問(wèn)題。
          《ACM 通訊》期刊近日發(fā)表了題為《Why Are There So Many Programming Languages?》的文章,作者在文中指出了一個(gè)重要原因:公司基于商業(yè)利益的訴求,希望控制編程語(yǔ)言,所以會(huì)發(fā)明由自己主導(dǎo)的語(yǔ)言。
          1990 年代中期,Visual Basic 和 Visual C++ 是微軟主力開發(fā)和維護(hù)的編程語(yǔ)言。這兩種語(yǔ)言都是從已有的編程語(yǔ)言衍生而來(lái),Visual Basic 的優(yōu)勢(shì)是為 Windows 桌面平臺(tái)構(gòu)建前端應(yīng)用程序,但它缺乏許多高級(jí)語(yǔ)言功能(如數(shù)據(jù)結(jié)構(gòu)、線程)。Visual C++ 雖然幾乎可以處理所有問(wèn)題,但它十分復(fù)雜。然后,Java 在 1996 年問(wèn)世了,Java 是全功能的面向?qū)ο蟮木幊陶Z(yǔ)言,不像 C++ 那么復(fù)雜。
          Java 的核心功能之一是平臺(tái)可移植性,但這不是微軟希望看到的,因此 Java 背后的公司 Sun Microsystems 與微軟產(chǎn)生了沖突,并且從 1997 年開始發(fā)起訴訟。雙方緊張的關(guān)系最終導(dǎo)致微軟在 2002 年發(fā)布了一門名為 C# 的編程語(yǔ)言,它看起來(lái)很像 Java,但事實(shí)上并不是。當(dāng)然兩者最重要的不同點(diǎn)在于,C# 是微軟可以在自家 Windows 平臺(tái)上控制的編程語(yǔ)言。
          除了公司對(duì)于控制和財(cái)富的訴求,編程語(yǔ)言之所以如此多與當(dāng)時(shí)的技術(shù)環(huán)境和水平密切相關(guān)。現(xiàn)在許多看起來(lái)理所當(dāng)然的事情在過(guò)去并非如此,早期計(jì)算機(jī)的存儲(chǔ)、內(nèi)存和處理能力都是有限而昂貴的。人們不得不費(fèi)盡周折,只為到計(jì)算機(jī)實(shí)驗(yàn)室,通宵熬夜以獲得計(jì)算機(jī)使用時(shí)間。
          在那個(gè)時(shí)代,編程語(yǔ)言通常是為某些任務(wù)或工作而設(shè)計(jì)的,編程語(yǔ)言的命名也更簡(jiǎn)單 —— 因?yàn)槊臻g尚未被開發(fā)。在 1950 年代和 1960 年代,最初的程序可以 “奢侈地” 用其所作的事情精確命名:FORTRAN(公式翻譯器)、COBOL(面向商業(yè)的通用語(yǔ)言)、BASIC(初學(xué)者通用符號(hào)指令代碼)、ALGOL(算法語(yǔ)言)、LISP(列表處理器)。大多數(shù)人可能沒(méi)有聽說(shuō)過(guò) SNOBOL(面向字符串和符號(hào)語(yǔ)言,1962),但是通過(guò)名字稍微猜測(cè)就可以知道它的用途。如果那個(gè)時(shí)代對(duì)面向?qū)ο蟮木幊谈拍钣懈嗔私猓嘈艜?huì)有人使用 “OBJOL” 之類的名字命名 —— 明確命名為面向?qū)ο笳Z(yǔ)言,至少按照那時(shí)的命名模式會(huì)是這樣。
          到了現(xiàn)在,更多的編程語(yǔ)言在許多方面都像是重新造輪子 —— 它們?cè)S多都是滿足下面屬性的多種組合:
          • License
            • 開源;商業(yè)
          • 平臺(tái)
            • 操作系統(tǒng)、硬件支持
          • 語(yǔ)言范式
            • 面向過(guò)程、函數(shù)式、面向?qū)ο蟮?/span>
          • 類型系統(tǒng)
            • 動(dòng)態(tài)、靜態(tài)等
          • 并發(fā)
            • 單線程、多線程
          • 內(nèi)存管理
            • 垃圾回收(自動(dòng)或手動(dòng))
          • 執(zhí)行
            • 解釋、編譯到虛擬機(jī)、原生編譯等
          • ……

          相關(guān)鏈接:https://cacm.acm.org/blogs/blog-cacm/262424-why-are-there-so-many-programming-languages/fulltext

              

          1、社區(qū)糾紛不斷:程序員何苦為難程序員?

          2、該死的單元測(cè)試,寫起來(lái)到底有多痛?

          3、互聯(lián)網(wǎng)人為什么學(xué)不會(huì)擺爛

          4、為什么國(guó)外JetBrains做 IDE 就可以養(yǎng)活自己,國(guó)內(nèi)不行?區(qū)別在哪?

          5、相比高人氣的Rust、Go,為何 Java、C 在工具層面進(jìn)展緩慢?

          6、讓程序員早點(diǎn)下班的《技術(shù)寫作指南》

          點(diǎn)

          點(diǎn)

          點(diǎn)點(diǎn)

          點(diǎn)在看

          瀏覽 83
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91豆花视频在线 | 性爱插入毛片免费视频 | 国产操比小视频 | 大香蕉伊人m | 成人无码高清在线 |