iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
AI & Data

跟我一起在AI的世界裡打怪獸系列 第 8

Day8 武器的身家調查-十一種熱門程式語言介紹

  • 分享至 

  • xImage
  •  

接續Day7 最受歡迎的武器?-熱門的程式語言了解那些程式語言熱門後,就來看看每一種語言到底有什麼不同,以及他們為什麼會熱門吧!

今天簡單認識一下HTML/CSS、JavaScript、TypeScript、Java、Python、PHP、C、C++、C#、SQL這十一種語言,並讓他們用自己的語言跟大家打個招呼。


HTML、CSS、JavaScript 三種程式語言構成網頁

HTML架構網頁、CSS 裝飾網頁的外觀,JavaScript控制網頁的行為。

如果以一個人為例子,HTML就是把骨頭和內裡架出來;CSS設定這個人的身高、膚色;JavaScript則是大腦,控制他做事情的方式。

HTML(HyperText Markup Language,超文本標記語言)

  • 1995年由 W3C(全球資訊網協會) & WHATWG(網頁超文字應用技術工作小組)發布
  • 屬於「前端語言」(在前面跟用戶端作互動)、「標記語言」(使用特定的標記來標識文本的各個部分,以跟電腦指示應該如何顯示或以某種方式進行處理)
  • 作用:定義段落、標題、資料表格,或是在頁面嵌入圖片和影片。
  • 應用:網頁開發。
<!DOCTYPE html>
<html>
  <head>
    <title>This is a title</title>
  </head>
  <body>
    <p>Hello world!</p>
  </body>
</html>

CSS(Cascading Style Sheets,階層式樣式表)

  • 1996年由哈肯·維姆·萊(Håkon Wium Lie)、伯特·波斯(Gijsbert Bos)、W3C(全球資訊網協會)開發
  • 屬於「前端語言」、「樣式規則語言」/「風格頁面語言」(讓HTML文件中的元素上套用不同的頁面樣式)
  • 作用:設置背景顏色、字型,或讓內容以多欄的方式呈現。
  • 應用:網頁開發。

JavaScript

  • 1995年布蘭登·艾克(Brendan Eich)等人
  • 屬於「前端語言」、「腳本語言」(以文本形式保存(如ASCII),類似一種命令,只在被調用時進行解釋或編譯。通常採用直譯。)
  • 作用:動態的更新內容、控制多媒體、動畫……
  • 應用:網頁開發、後端開發等。
  • 熱門原因:是前端網頁開發的主要語言,隨著各種新的前端框架(React、Vue、Angular……)的出現,JavaScript 的發展空間持續延展。而在Node.js出現後,JavaScript也可以用於後端開發。
document.write('Hello World');

TypeScript

  • 2012年微軟發布,其中一個參與者是開發C#的安德斯·海爾斯伯格(Anders Hejlsberg)
  • 是 JavaScript 的超集(包含了所有 JavaScript 的功能,並且在此基礎上添加了額外的功能和語言特性。)
  • 特色:添加了靜態類型系統(可在編寫程式時聲明變數的類型)、類型推斷(根據程式碼上下文自動推斷變數的類型)、支持物件導向特性(包括類、繼承……等)、可添加註解和註釋、運行前需使用編譯器轉換成JavaScript語言
  • 作用:提升代碼可讀性與可維護性
  • 應用:大型前端應用程式開發(因為提高了大型應用程式的可維護性和擴展性)
  • 熱門原因:提高大型專案的開發效率
let message: string = 'Hello, World!';
console.log(message);

PHP

全稱「PHP: Hypertext Preprocessor」(PHP:超文字預處理器)

  • 1995年,拉斯姆斯·勒多夫(Rasmus Lerdorf)開發
  • 屬於「腳本語言」、「後端語言」(控制軟體、資料處理)
  • 特色:可以嵌入在HTML中、能夠處理動態生成網頁內容、具跨平台性、支援多種常見的資料庫(MySQL、SQLite等)、提供了許多內建函數和擴充模組。
  • 作用:收集表單數據、發送和接收cookies、限制用戶訪問、加密數據、存取資料庫
  • 應用:網頁開發、內容管理系統
  • 熱門原因:版本持續更新、可和HTML混合使用、易上手,加上跨平台、能兼容大多數伺服器,因此也成為了市占率最高的語言(截至2022,使用PHP的網站高達77%以上)。但隨著 Node.js 和 Python 的崛起,其有逐漸下滑的趨勢。
<?= 'Hello World!'; ?>

C、C++、C# 他們好像,但哪裡不一樣?

這三種語言常常讓人搞不清楚,明明長得很像,他們不一樣的地方在哪裡?

總結來說,好上手的排名是 C# > C++ > C,但應用範圍的排名是 C > C++ > C#。

為什麼呢?今天就來看看他們的真面目。

C

  • 屬於「編譯語言」
  • 特色:可以跨平台執行、可以直接控制硬體、接近低階語言,靈活高效的運算、功能性豐富
  • 應用:作業系統、驅動程式、嵌入式開發(如:微波爐裡的程式)……等。
  • 熱門原因:因為效能高、跨平台、系統程式開發的特點,成為了最廣泛使用的程式語言。且是大部分語言的基礎,許多人第一個認識的語言就是C,了解中的邏輯,就可以很輕鬆地了解其他的程式語言。
#include <stdio.h>

int main(void) {
    printf("Hello, world!\n");
    return 0;
}

C++

  • 1983年比雅尼·斯特勞斯特魯普(Bjarne Stroustrup)設計,當初會取這個名字是想表示「C語言變化的自然演進」
  • 屬於「編譯語言」
  • 特色:擁有C語言的優點與特色,又支持物件導向。
  • 應用:遊戲開發、系統級程式、電腦軟體(如:office系列)……等有大規模、高效能、分散式需求的程式開發。
  • 熱門原因:具有C的高效,又有物件導向的靈活。
import <iostream>;
using namespace std;
int main() {
    cout << "Hello, world!" << endl;
    return 0;
}

C#(C sharp)

  • 2000年微軟發布,由安德斯·海爾斯伯格(Anders Hejlsberg)主持開發。命名是源自於C++,因為更進一步成為#(四個+)。
  • 屬於「即時編譯語言」、「後端語言」
  • 特色:全物件導向,較C、C++更簡潔、易學易寫。基於.NET框架,跨語言但不跨平台
  • 應用:Windows 應用開發、遊戲開發(Unity)……等。
  • 熱門原因:作為. NET 平台的主要語言,C# 提供了一種面向物件和型別安全的環境。
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

JAVA

  • 1995年任職於昇陽電腦(後被甲骨文收購)的詹姆斯·高斯林(James Gosling)等人設計
  • 屬於「即時編譯語言」、「後端語言」
  • 特色:物件導向、跨平台。繼承了C++語言物件導向技術的核心、增加垃圾回收器功能(程式會藉助垃圾回收演算法向作業系統歸還程式不再被其訪問的部分記憶體空間)。
  • 應用:遊戲開發、雲端運算、大數據、人工智慧、物聯網……等。
  • 熱門原因:簡單好用,而且可以跨平台。
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("hello, world!");
    }
}

Python

  • 1991年吉多·范羅蘇姆(Guido van Rossum)設計
  • 屬於「直譯語言」、「腳本語言」、「後端語言」
  • 特色:物件導向、簡潔明瞭,可讀性強、能夠輕鬆和其他語言(C、C++、JAVA)交互使用。
  • 應用:網站開發、數據分析、人工智慧、科學計算、自動化測試……等。
  • 熱門原因:語法接近人類語言,簡單直觀,且能跨平台運行,這讓許多新人好上手。廣泛的函式庫幾乎包含所有你想要做的事情,近年來出現的各種框架更是因為方便而讓python的使用人數增加。
print("Hello, world!")

SQL(Structured Query Language,結構化查詢語言)

  • 1974年唐納德·錢柏林(Donald D. Chamberlin)、雷蒙德·博伊斯(Raymond F. Boyce)設計
  • 屬於「領域特定語言」(專門針對特定領域設計)
  • 特色:標準化(在不同資料庫系統中的語法相同)、用簡單語法處理複雜資訊
  • 作用:查詢功能(查詢、過濾、排序)、資料庫/資料表管理功能(創建、修改、刪除)、資料表操作(索引、主鍵、外鍵設定)、運算和函數(數據的運算和處理)
  • 應用:關聯式資料庫中儲存和處理資訊
  • 熱門原因:簡單易學、標準化的特性讓他能在各資料庫系統中廣泛使用。

SQL的語法:
SQL
資料來源:SQL - 維基百科,自由的百科全書

結語

這裡只是很簡單的介紹,讓沒有概念的人可以簡單了解為什麼會有這麼多的程式語言,以及他們究竟有哪些不同。

如果想要更知道更深,可以再自行從網路等各種管道了解。

至於那些前端後端、物件導向、型別……等的概念,如果我之後有想到,可能也會再多寫一點相關文章吧(?

明天我們來聊聊開發環境(IDE)。


上一篇
Day7 最受歡迎的武器?-熱門的程式語言
下一篇
Day9 施放咒語的場所-整合式開發環境(IDE)
系列文
跟我一起在AI的世界裡打怪獸30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言