除了Java還有這22種語言可寫出Hello World~

除了Java還有這22種語言可寫出Hello World~
除了Java還有這22種語言可寫出Hello World~

你知道除了Java以外還有哪些語言可以寫出Hello World嗎?今天一次教給你!!

「Hello World」幾乎是每一個剛接觸程式設計課程的人,第一個碰到的語句。不管你學的是台灣「市佔率」稱霸的 Java、還是未來炙手可熱的人工智慧首選 Python,只要是程式設計課程,幾乎都是從「Hello World」學起。

推薦閱讀:Python 不是蟒蛇、Java 就是咖啡?看看程式語言命名起源多奇葩

以下整理出「Hello World」使用不同程式的語言的寫法:

Java

Java 的特殊之處在於它經過專門設計,因此您可以編寫一次代碼,然後可在任何操作系統上運行,為各大科技公司所愛用。所有 Android 的 App 都是用 Java 編寫的。

class HelloWorldApp {
                        public static void main(String[] args) {
                            System.out.println("Hello World!"); // Prints the string to the console.
                        }
                    }

C

世界上最重要的程式語言。它是編寫 Windows,MacOS,iOS 和 Android 等操作系統以及瀏覽器和 Unity3D 遊戲開發的工具。它的語法影響了無數其他程式語言。

#include <stdio.h>

                    int main(void)
                    {
                        printf("hello, world\n");
                    }

C++

性能接近 C,並在許多重要專案(如 Chrome 瀏覽器)中使用。C++ 旨在使一種語言,更易於構建大型項目,同時仍保持快速高效。

#include 

                    int main()
                    {
                        std::cout << "Hello, world!\n";
                        return 0;
                    }

C#

在 Microsoft 構建.Net 虛擬機時創建。 C# 是 Microsoft 首選的程式語言。

using System;

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

CAML (OCAML)

一個功能導向的程式語言。它被用於 Facebook 上許多較小的項目。Facebook 的 Hack 語言的編譯器就是用 OCAML 編寫的。

print_endline "Hello, world!";;

COBOL

在大型電腦時代曾經非常熱門,現在普遍度不如當年,許多 COBOL 程式正被移植到其他語言。

  IDENTIFICATION DIVISION.
                           PROGRAM-ID. hello-world.
                           PROCEDURE DIVISION.
                           DISPLAY "Hello, world!"

DELPHI

在 90 年代中期至後期,它因被用於編寫 Windows 程式而受到許多工程師的喜愛。而現在 Windows 已不再使用 DELPHI,但仍然很受歡迎。

procedure TForm1.ShowAMessage;
                    begin
                      ShowMessage('Hello World!');
                    end;

FORTRAN

創建於 1950 年代,在大型電腦上運行,非常適合數字與科學工作。它目前仍是科學界的標準。

program helloworld
                         print *, "Hello world!"
                    end program helloworld

GO

Go 是在 Google 上創建和使用的,語法接近 C 語言,目的是為了在多核心處理器、網路機器(networked machines)、大型數據庫(codebases)的情況下,擁有高的開發效率。當時在 Google 的工程 師們想要集合其他程式語言的優點開發而成。有 C++ 的靜態型別和執行時效率、Python 的可讀性

package main

                    import "fmt"

                    func main() {
                        fmt.Println("Hello, World")
                    }

GROOVY

Java 運行時間運作的動態腳本語言。大多數 Java 代碼也可以作為 GROOVY 代碼運行,但是 GROOVY 代碼可以更緊湊,因為它不需要做 Java 要做的所有事情。

println "Hello World"

JAVASCRIPT

JavaScript 是世界上最常見的程式語言,主要是因為每次使用瀏覽器瀏覽網頁時,都會使用它。 JavaScript 是使網頁語使用者之間有互動的原因。

console.log("Hello World!");

MACHINE CODE

機器碼是可以發送給 CPU 的最低級別的指令。機器代碼不是人類可讀的代碼,人類只能在其中做一些瑣碎的事情,但是所有軟體最終都會在被發送到 CPU 之前,變成機器代碼。

b8    21 0a 00 00   #moving "!\n" into eax
                    a3    0c 10 00 06   #moving eax into first memory location
                    b8    6f 72 6c 64   #moving "orld" into eax
                    a3    08 10 00 06   #moving eax into next memory location
                    b8    6f 2c 20 57   #moving "o, W" into eax
                    a3    04 10 00 06   #moving eax into next memory location
                    b8    48 65 6c 6c   #moving "Hell" into eax
                    a3    00 10 00 06   #moving eax into next memory location
                    b9    00 10 00 06   #moving pointer to start of memory location into ecx
                    ba    10 00 00 00   #moving string size into edx
                    bb    01 00 00 00   #moving "stdout" number to ebx
                    b8    04 00 00 00   #moving "print out" syscall number to eax
                    cd    80            #calling the linux kernel to execute our print to stdout
                    b8    01 00 00 00   #moving "sys_exit" call number to eax
                    cd    80            #executing it via linux sys_call

MATLAB

程式和語言的結合,用於數據分析和開發演算法。在教育中,用於教授線性代數和數值分析。在從事圖像處理工作的科學家中也很受歡迎。

CloudDeploy["Hello, World"]

NODE.JS

與其說是一種程式語言,不如說是一種運作環境,它可以在伺服器端而不是瀏覽器上運行 JavaScript。本來是為了是證明異步編撰程式對多核心的 CPU 更好,而現在被廣泛應用於大型網頁前端開發。

console.log("Hello World!");

PERL

Perl 擅長處理在文本,是早期建構動態網站的熱門選項。

print "Hello, World!\n";

PHP

PHP 普遍用於網站後端開發,Facebook 和 WordPress 就是用 PHP 編寫的。最後 Facebook 決定創建自己的 PHP 語言,稱為 Hack。

<?php echo "Hello, World";

Python

以精簡的編碼而竄升成為最受工程師歡迎的語言,目前是人工智慧、金融科技、網路爬蟲等當代熱門項目的首選。目前受歡迎的程度已跟 Java 不相上下。

推薦閱讀:Python 首度把 Java 踢出前兩名外!本季 RedMonk 程式語言排名狀況

print("Hello World")

R

統計、科學界的首選語言。

cat("Hello world\n")

推薦閱讀:Python vs R 語言:哪個比較適合人工智慧/機器學習?

RUBY

旨在成為一種高效有趣的語言來使用,強調人的需求超過電腦的需求。 Rails 網路框架是為 Ruby 編寫的,對網路框架設計產生了巨大影響。 Ruby 目前被廣泛用於創建網站使用。

puts 'Hello World!'

SCRATCH

一種視覺化的程式語言,旨在讓孩子通過撰寫程式來學習技能。還有 Scratch Jr.,適合 5-7 歲的孩子使用。全世界數以百萬計的學校都使用這兩種語言。

say Hello, World!

SWIFT

蘋果公司所開發的新語言,並正在推廣以取代 Objective-C 在其平台上使用。目的在成為一種易於學習和使用的語言,且不會失去 Objective-C 的性能。

println("Hello, world!")

推薦閱讀:科幻迷必看!你能分得出電影中的程式語言是Python,Java嗎?

 

 

更多前端工程師或其他程式語言相關文章請點閱下方連結!!

 

 

 

其他閱讀

Facebook 開源 Python 語言的安全與隱私工具 Pysa

人工智慧又寫歌了!這次是跟重金屬天團 Metallica 致敬

暴躁老人唱情歌、憂鬱阿嬤笑了!4個翻轉家庭的人工智慧 讓家更溫暖

人工智慧貓砂盆 – 因愛貓腎病過世 工程師研發預防性貓用醫療品

Python課程超強大!讓非本科轉職為大醫院網站工程師!

半年Java課程讓他成功轉換跑道成為一名程式設計師!

進修Java課程只為從硬體工程師成功轉換跑道成為一名軟體工程師!

APCS程式檢定懶人包告訴你從哪下手最快狠準!!(下)

APCS程式檢定懶人包告訴你從哪下手最快狠準!!(下)
APCS程式檢定懶人包告訴你從哪下手最快狠準!!(下)

正在研究APCS認證的你看這篇就對了!!有了事半功倍懶人包就距離成功更進一步啦!!(下)

本篇為上篇,下篇請點此APCS程式檢定懶人包告訴你從哪下手最快狠準!!(上)

程式設計實作題

  • 題型:共計 4 個題組,以撰寫完整程式或副程式計分。
  • 檢測與計分方式:為單節次檢測 (測驗時間 140 分鐘),滿分 400 分

實作題例題

問題描述

一次考試中,於所有及格學生中獲取最低分數者最為幸運,反之,於所有不及格同學中,獲取最高分數者,可以說是最為不幸,而此二種分數,可以視為成績指標。請你設計一支程式,讀入全班成績(人數不固定),請對所有分數進行排序,並分別找出不及格中最高分數,以及及格中最低分數。當找不到最低及格分數,表示對於本次考試而言,這是一個不幸之班級,此時請你印出:「worst case」;反之,當找不到最高不及格分數時,請你印出「best case」。註:假設及格分數為 60,每筆測資皆為 0~100 間整數,且筆數未定。

輸入格式

第一行輸入學生人數,第二行為各學生分數(0~100 間),分數與分數之間以一個空白間格。每一筆測資的學生人數為 1~20 的整數。

輸出格式

每筆測資輸出三行。
第一行由小而大印出所有成績,兩數字之間以一個空白間格,最後一個數字後無空白;
第二行印出最高不及格分數,如果全數及格時,於此行印出 best case;
第三行印出最低及格分數,當全數不及格時,於此行印出 worst case。

範例一:輸入

10
0 11 22 33 55 66 77 99 88 44

範例一:正確輸出

0 11 22 33 44 55 66 77 88 99
55
66

(說明)不及格分數最高為 55,及格分數最低為 66。

範例二:輸入

1
13

範例二:正確輸出

13
13 worst case

(說明)由於找不到最低及格分,因此第三行須印出「worst case」。

範例三:輸入

2
73 65

範例三:正確輸出

65 73
best case
65

(說明)由於找不到不及格分,因此第二行須印出「best case」。

評分說明

輸入包含若干筆測試資料,每一筆測試資料的執行時間限制(time limit)均為 2 秒, 依正確通過測資筆數給分。

針對實作題,我們分別使用 C、PythonJava 來解題,語法如下:

實作題解法#1 – 使用 C 語言(最費時):

#include < stdio.h >
#include < stdbool.h >

int len;
int *scores;

main()
{
    int i, j, tmp, highestUnpass, lowestPass;
    bool best=false, worst=false;
    scanf("%d", &len);
    scores = (int *)malloc(sizeof(int) * len);
    for (i=0;i < len;i++)
        scanf("%d", &scores[i]);
    for (i=0;i < len-1;i++)
        for(j=i+1;j < len;j++)
            if (scores[i] > scores[j])
            {
                tmp = scores[i];
                scores[i] = scores[j];
                scores[j] = tmp;
            }
    for (i=0;i < len;i++)
    {
        printf("%d", scores[i]);
        if (i < len-1)
            printf(" ");        
    }
    printf("\n");
    if (scores[len-1] < 60)
    {
        worst = true;
        highestUnpass = scores[len-1];
    }
    if (scores[0] >= 60)
    {
        best = true;
        lowestPass = scores[0];
    }
    if (worst == false && best == false)
    for (i=0;i < len;i++)
        if (scores[i] >= 60)
        {
            highestUnpass = scores[i-1];
            lowestPass = scores[i];
            break;
        }
    if (best)
        printf("best case\n");
    else
        printf("%d\n",highestUnpass);
    if (worst)
        printf("worst case\n");
    else
        printf("%d\n",lowestPass);
}

實作題解法#2 – 使用 Python 語言(最省時):

nums = int(input())
strScores = input()
scores = strScores.split(" ")
for i in range(len(scores)):
    scores[i] = int(scores[i])
scores.sort()
for i in range(len(scores)):
    print(scores[i], end="")
    if i < len(scores)-1:
        print(" ", end="")
print()
best = False
worst = False
if scores[len(scores)-1] < 60:
    worst = True
    highestUnpass = scores[len(scores)-1]
if scores[0] >= 60:
    best = True
    lowestPass = scores[0]
if best==False and worst == False:
    for i in range(len(scores)):
        if scores[i] > 60:
            lowestPass = scores[i]
            highestUnpass = scores[i-1]
            break
if best:
    print("best case")
else:
    print(highestUnpass)
if worst:
    print("worst case")
else:
    print(lowestPass)

實作題解法#3 – 使用 Java 語言(所花時間適中):

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;

public class T01 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner = new Scanner(System.in);
        
        String nouse = scanner.nextLine();
        String data = scanner.nextLine();
        String[] strScores = data.split(" ");
        int len = strScores.length;
        int [] intScores = new int[len];
        int i;
        for (i=0;i < len;i++)
        {
            intScores[i] = Integer.parseInt(strScores[i]);
        }
        Arrays.sort(intScores);
        boolean best=false, worst=false;
        int highestUnpass = 0, lowestPass = 0;
        if (intScores[0] >= 60)
        {
            best = true;
            lowestPass = intScores[0];
        }
        if (intScores[intScores.length-1] < 60)
        {
            worst = true;
            highestUnpass = intScores[intScores.length-1];
        }
        
        for (i=0;i < len;i++)
        {
            System.out.print(intScores[i]);
            if (i < len-1)
                System.out.print(" ");              
        }
        System.out.println();
        if (best == false && worst == false)
        {
            for (i=0;i < len;i++)
            {       
                if (intScores[i] > 60)
                {
                    highestUnpass = intScores[i];
                    lowestPass = intScores[i-1];
                    break;
                }           
            }
        }
        if (best)
        {
            System.out.println("best case");
        }
        else
        {
            System.out.println(highestUnpass);
        }
        if (worst)
        {
            System.out.println("worst case");           
        }
        else
        {
            System.out.println(lowestPass);
        }                
    }
}

總結一下綜合比較的部分:

  • 學習上手速度:Python > Java > C
    (但 Python 與其他兩者程式語言差異較大,若一開始就選擇從 Python 語言上手 ,還是必須多花不少時間理解 C 語言,才能解答觀念題。)
  • 實際作答速度:Python > Java > C
    (Python 與 Java 都具備函式庫,在實作題作答時會比 C 語言快速。)

APCS 短期衝刺,從 Java 著手 CP 值最高!

以學習效果與所花時間的比值來說,學習 Java 的 CP 值較高。以下說明為什麼:

雖然 Python 堪稱「程式語言的瑞士刀」,其語法直觀、編寫簡潔快速,比起 C , Java 更容易上手,但由於觀念題是由 C 語言出題,若學 Python 再接觸 C ,對於有時間與其他課業壓力的考生來說,是相當辛苦、費時的。

Java 本身是由 C / C++為概念改良而成的語言,在設計之初,考量重點之一便是簡潔,因此學習與 C 語言語法架構相似的 Java ,讓考生有操作基礎後再學習 C 語言,更能在檢測學習之路,更加如魚得水。

綜合以上觀點,投資在能兼顧「理論題」與「實務題」的 Java,才是事半功倍、投報率最高的首選!

最後貼心提醒:109 年第 2 次 APCS 檢測暫訂 2020 年 7 月 4 日!

各位考生可以開始逐步準備 APCS 檢測囉!

 

 

更多關於APCS的文章請點下方連結,或到本部落格首頁搜尋喔!!

 

 

 

其他閱讀

從哆啦A夢到 iPhone…為何 UI 設計用「圓角」就是比較討喜?

APCS 程式檢定,該從 CJava 還是 Python 下手?

【前端工程師CSS教學】float浮動屬性

AI人工智慧救地球!GoogleAI 保護環境還比人類快 3000

所有APCS認證要知道的事都在這!!()

前端工程師起步的t初學小課(22):數學物件

如何分辨全端,後端和前端工程師?還不知道的可是不行的喔~

APCS程式檢定懶人包告訴你從哪下手最快狠準!!(上)

APCS程式檢定懶人包告訴你從哪下手最快狠準!!(上)
APCS程式檢定懶人包告訴你從哪下手最快狠準!!(上)

正在研究APCS認證的你看這篇就對了!!有了事半功倍懶人包就距離成功更進一步啦!!(上)

第一次考 APCS 程式語言,從哪個程式語言下手才會事半功倍呢?

若是一開始就選到一個好上手、測驗時又好作答的程式語言,就可以減少準備時間和學習負擔!本篇文章將以三款詢問度較高的應考語言 C , Java , Python 來做解析、比較。

此篇你將了解…

  1. 1. APCS 檢測的規範與基礎
  2. 2. C , Java , Python – 哪個語言適合解題?

先來了解一下檢測內容的基礎概念,APCS 的兩大題組 【觀念題】與【實作題】

程式設計觀念題

  • 題型:單選題 (含題組),以運算思維、問題解決與程式設計概念測試為主。
  • 檢測與計分方式:分兩節次檢測 (單節測驗時間60分鐘), 檢測分數為合併計分,滿分100分

觀念題例題#1

1. 右側程式碼,執行時的輸出為何?

  1. (A) 0 2 4 6 8 10
  2. (B) 0 1 2 3 4 5 6 7 8 9 10
  3. (C) 0 1 3 5 7 9
  4. (D) 0 1 3 5 7 9 11
void main() {
    for (int i=0; i<=10; i=i+1) {
        printf ("%d ", i);
        i = i + 1;
    }
    printf ("\n");
}

(出自 105 年 3 月 5 日,理論題第 15 題)

這一題主要要測驗的內容,是考驗考生是否了解 C 語言當中, for 迴圈的結構。

以 for 迴圈來說,三的區段的值分別是初始值、條件值、運算值。

在這一題當中,第一次執行的時候 i 為 0 ,所以會先印出 0。

接下來,由於第四行 i=i+1 的關係, i 會變為 1 。但是執行迴圈時,回到了 for 的第三部分,這時候,還是另外一次的 i=i+1 ,所以 i 變為 2,然後進行驗證, i <= 10

根據這樣的執行邏輯, i 每印出一個就會 +2 一次,直到 i 超過 10 之後跳出迴圈。

Ans:所以會印出「0 2 4 6 8 10」

觀念題例題#2

2. 若以 f(22)呼叫右側 f()函式,
總共會印出多少數字?

  1. (A) 26
  2. (B) 22
  3. (C) 11
  4. (D) 15
void f(int n) {
    printf ("%d\n", n);
    while (n != 1) {
        if ((n%2)==1) {
            n = 3*n + 1;
        }
        else {
            n = n / 2;
        }
        printf ("%d\n", n);
    }
}

(出自 105 年 3 月 5 日,理論題第 21 題)

本題所考內容,是對於 while 與 if 的熟悉度。

傳入 22 進 function 之後,會先印出 22。

接下來進入 while 迴圈,如果 n 不是 1 ,那麼這個迴圈會一直執行。

while 當中, 如果 n 是奇數,則 n 會變成 3xn+1 ,如果 n 是偶數,那 n 會變成原來的一半。

所以整個流程會是「22➔11➔34➔17➔52➔26➔13➔40➔20➔10➔5➔16➔8➔4➔2➔1」。

Ans:所以答案是 16 個。

 

 

本篇為上篇,下篇請點此APCS程式檢定懶人包告訴你從哪下手最快狠準!!(下)

更多關於APCS的文章請點下方連結,或到本部落格首頁搜尋喔!!

 

 

 

其他閱讀

從哆啦A夢到 iPhone…為何 UI 設計用「圓角」就是比較討喜?

APCS 程式檢定,該從 CJava 還是 Python 下手?

【前端工程師CSS教學】float浮動屬性

AI人工智慧救地球!GoogleAI 保護環境還比人類快 3000

所有APCS認證要知道的事都在這!!()

前端工程師起步的t初學小課(22):數學物件

如何分辨全端,後端和前端工程師?還不知道的可是不行的喔~

 

Python再次奪得程式語言排行榜第一!!你跟上了嗎?

Python再次奪得程式語言排行榜第一!!你跟上了嗎?
Python再次奪得程式語言排行榜第一!!你跟上了嗎?

今年最新的程式語言排行又是Python奪得第一名!!想踏入IT界的你跟上潮流了嗎?

2019 默默地進入了尾聲,而 IEEE 也在此刻推出了今年最受歡迎的程式語言排行榜。不論你已經是寫程式高手,或者只是熱衷科技的一般人,生活在科技的浪潮中的我們,來看看到底是什麼程式語言建構了我們所知的科技世界吧!


▲ IEEE 2019 程式語言排行榜:Python 蟬連最熱門語言之首

今年的程式語言排行榜與以往不同, IEEE 剔除的一些已經不合時宜的評判標準,並加重了每個語言在職場上的使用需求權重,讓程式語言排行更貼近現代的就業潮流。其判斷數據則來自於 Google、Twitter、GitHub、Stack Overflow、Reddit、Hacker News、CareerBuilder 等等科技大佬,讓這個排名更具公信力。

不過即使評判的標準有所改變, Python 的熱潮依舊氣勢難擋。在所有分項目中都名列榜首的 Python,獲勝的關鍵在於他擁有大量的函式庫可供應用。尤其是在近年蓬勃發展的「人工智慧」領域中, Python 最令人熟知的函式庫 Keras更為人工智慧領域,尤其是「深度學習」貢獻不少,其中 Keras 提供的 TensorFlow、CNTKTheano 深度學習框架的介面和工具包正是工程師們必備的武器。

人工智慧的興起也是近年有意轉職的工程師們持續關注的話題,在 GitHub 問卷「你對哪項技術或技能最感興趣?」中,「人工智慧」排名第一,緊跟在後的才是「使用者體驗」以及「區塊鏈」。 GitHub 更提及 Python是人工智慧領域中工程師們的最愛,這也不難理解為什麼 Python 的熱潮會持續不退,甚至擊敗 Java 以及 C 語言等流行多年的語言了!

當然,人工智慧也並非 Python 的唯一應用方向,在數據分析領域或應用程式開發都擁有不錯的發展,而不同於其他語言,簡潔的程式碼以及易讀易懂的語法更使他擺脫了程式語言艱澀難學的評價。正是 Python 可靈活運用卻又好上手的特性,讓他成為初學者炙手可熱的選擇!

而緊緊排在 Python之後的程式語言則是 Java、C語言、C++ 等長年與 Python 爭奪冠軍的熱門程式語言。僅管 IEEE 調整了評判的指標,但這些語言與 Python 的差距依然越來越大。Java 是 15 年以來最多人使用的程式語言,帶著他強大的可移植性、可擴展性成為最多企業公司的開發語言,更建立了龐大的使用社群,是個含金量極高的程式語言。

但是相較於 Python, Java 的語法少了些可閱讀性,編程上也不如 Python 那樣簡潔有力,對於初學者是個不易親近的程式語言。而曾經紅極一時的 R 語言目前排名第五,儘管沒有像其他語言如此炙手可熱,但由於大數據產業的普遍應用,以及相對於其他語言的專業性較高, R 語言在榜上依然擁有一席之地,對於統計領域的朋友是個不錯的選擇。

在第十名以外,也有些值得一提的語言,例如位在第 11 位的 Arduino 以及第 12 位的 HTML/CSS。有些人可能會抱怨他們不算真正的程式語言,Arduino 其實是某種語言執行的一系列硬體平台名稱,但 IEEE表示對此他們秉持著實用主義的原則:在遇到程式語言的問題時,人們很常在 Google 搜尋中鍵入「Arduino 程式⋯⋯寫法」而不是其他程式語言的名字。

透過以 Arduino 作為評比對象,有助於更精確統計此種程式語言的使用現況,而避免許多使用數據上的遺漏。而針對 HTML/CSS 的評論,因為缺乏了分支以及迴圈的功能,許多人根本不當他們是程式語言。但由於 HTML/CSS 在開發者中的普遍使用,甚至使他佔據了數以十億計的伺服器空間,在這樣的觀點下,IEEE 自然也認為他是現代社會中不可或缺的語言。

IEEE 也提及比較程式語言優劣時的難處,畢竟沒有任何人能夠學會所有的程式語言,並客觀比較哪種語言最強大,而程式語言之間也像個大家族,有些血緣十分相近,而有些卻相差十萬八千里,連使用的目的也可能毫無相關。所以其實並不存在所謂「最好的程式語言」,想要選擇真正適合你的程式語言,依然需要考量自己想要鑽研的領域以及應用方向。也基於這一點,在 IEEE 的可互動頁面上,使用者可以自己調整每項評分項目權重,讓使用者更貼近的了解最適合自己的程式語言。

 

到本部落格首頁可搜尋到更多程式語言相關文章喔~

 

 

 

其他閱讀

最新程式語言排行榜出爐,Python,Java誰是霸主?

Python和Java到底誰才是最受歡迎的程式語言呢?往下看找答案吧!!

2019 默默地進入了尾聲,而 IEEE 也在此刻推出了今年最受歡迎的程式語言排行榜。不論你已經是寫程式高手,或者只是熱衷科技的一般人,生活在科技的浪潮中的我們,來看看到底是什麼程式語言建構了我們所知的科技世界吧!


▲ IEEE 2019 程式語言排行榜:Python 蟬連最熱門語言之首

今年的程式語言排行榜與以往不同, IEEE 剔除的一些已經不合時宜的評判標準,並加重了每個語言在職場上的使用需求權重,讓程式語言排行更貼近現代的就業潮流。其判斷數據則來自於 Google、Twitter、GitHub、Stack Overflow、Reddit、Hacker News、CareerBuilder 等等科技大佬,讓這個排名更具公信力。

不過即使評判的標準有所改變, Python 的熱潮依舊氣勢難擋。在所有分項目中都名列榜首的 Python,獲勝的關鍵在於他擁有大量的函式庫可供應用。尤其是在近年蓬勃發展的「人工智慧」領域中, Python 最令人熟知的函式庫 Keras更為人工智慧領域,尤其是「深度學習」貢獻不少,其中 Keras 提供的 TensorFlow、CNTKTheano 深度學習框架的介面和工具包正是工程師們必備的武器。

人工智慧的興起也是近年有意轉職的工程師們持續關注的話題,在 GitHub 問卷「你對哪項技術或技能最感興趣?」中,「人工智慧」排名第一,緊跟在後的才是「使用者體驗」以及「區塊鏈」。 GitHub 更提及 Python是人工智慧領域中工程師們的最愛,這也不難理解為什麼 Python 的熱潮會持續不退,甚至擊敗 Java 以及 C 語言等流行多年的語言了!

當然,人工智慧也並非 Python 的唯一應用方向,在數據分析領域或應用程式開發都擁有不錯的發展,而不同於其他語言,簡潔的程式碼以及易讀易懂的語法更使他擺脫了程式語言艱澀難學的評價。正是 Python 可靈活運用卻又好上手的特性,讓他成為初學者炙手可熱的選擇!

而緊緊排在 Python之後的程式語言則是 Java、C語言、C++ 等長年與 Python 爭奪冠軍的熱門程式語言。僅管 IEEE 調整了評判的指標,但這些語言與 Python 的差距依然越來越大。Java 是 15 年以來最多人使用的程式語言,帶著他強大的可移植性、可擴展性成為最多企業公司的開發語言,更建立了龐大的使用社群,是個含金量極高的程式語言。

但是相較於 Python, Java 的語法少了些可閱讀性,編程上也不如 Python 那樣簡潔有力,對於初學者是個不易親近的程式語言。而曾經紅極一時的 R 語言目前排名第五,儘管沒有像其他語言如此炙手可熱,但由於大數據產業的普遍應用,以及相對於其他語言的專業性較高, R 語言在榜上依然擁有一席之地,對於統計領域的朋友是個不錯的選擇。

在第十名以外,也有些值得一提的語言,例如位在第 11 位的 Arduino 以及第 12 位的 HTML/CSS。有些人可能會抱怨他們不算真正的程式語言,Arduino 其實是某種語言執行的一系列硬體平台名稱,但 IEEE表示對此他們秉持著實用主義的原則:在遇到程式語言的問題時,人們很常在 Google 搜尋中鍵入「Arduino 程式⋯⋯寫法」而不是其他程式語言的名字。

透過以 Arduino 作為評比對象,有助於更精確統計此種程式語言的使用現況,而避免許多使用數據上的遺漏。而針對 HTML/CSS 的評論,因為缺乏了分支以及迴圈的功能,許多人根本不當他們是程式語言。但由於 HTML/CSS 在開發者中的普遍使用,甚至使他佔據了數以十億計的伺服器空間,在這樣的觀點下,IEEE 自然也認為他是現代社會中不可或缺的語言。

IEEE 也提及比較程式語言優劣時的難處,畢竟沒有任何人能夠學會所有的程式語言,並客觀比較哪種語言最強大,而程式語言之間也像個大家族,有些血緣十分相近,而有些卻相差十萬八千里,連使用的目的也可能毫無相關。所以其實並不存在所謂「最好的程式語言」,想要選擇真正適合你的程式語言,依然需要考量自己想要鑽研的領域以及應用方向。也基於這一點,在 IEEE 的可互動頁面上,使用者可以自己調整每項評分項目權重,讓使用者更貼近的了解最適合自己的程式語言。

 

到本部落格首頁可搜尋到更多程式語言相關文章喔~

 

 

 

其他閱讀

實用HTML5教學小技巧三-HTML新增的標籤有哪些?

實用HTML5教學小技巧三-HTML新增的標籤有哪些?
實用HTML5教學小技巧三-HTML新增的標籤有哪些?

 

實用HTML5教學第三篇~ 一次讓你搞懂HTML新增標籤有哪些!! 從此不再霧煞煞!! 快往下看吧~

 

HTML 5 新增的標記

 

目前的 HTML 5 是 HTML 的最新標準,最初設計的目的只是為了要集合網路上許多分散的資源,透過標記結構化的串在同一個網頁中。

因次 HTML 5 加了許多標記,更有益於網頁的排版、結構更加明顯

在列出 HTML 5 新增的標記前,讓我們再複習一下HTML5教學的內容,先看一下 HTML 5 的語義架構圖,再配合新增的標籤,會比較快理解:

實用HTML5教學小技巧三-HTML新增的標籤有哪些?
實用HTML5教學小技巧三-HTML新增的標籤有哪些?

<section> 定義一個大的段落

<article> 定義段落裡的一篇文章

<aside> 網頁內容以外的項目,大多都是側邊攔目

<header> 定義段落中的標題,不是<head>喔

<footer> 定義頁尾的資訊

<nav> 定義導覽列的內容

<figure> 定義內體內容的區塊

<figcaption> 定義媒體區塊的標題文字

<figcaption> 定義媒體區塊的標題文字

在所有新增的標記中,HTML 5 的多媒體功能也是受到矚目的。它簡化了以往在HTML處理影音多媒體資料的型態,上HTML5教學網路行銷課程前,若不了解則會把影片上傳到像 Youtube 等第三方影音平台,再用嵌入的方式來撥放影片。若是使用HTML 5,則可以使用<video>標籤,在自己的網站上完成所有動作:不需要再將影片上傳到第三方影音平台才能在自己的網站上撥放了!典型的標記格式如下:

<video width=”800″ height=”500″ autoplay controls>

<source src=”https://www.tedu.tw/video/達內教育UI課程學員就業分享-李雅青.mp4″ type=”video/mp4″>

</video>

其<source>標籤指定了要撥放的影片位置,可以指定為自己網站中的影片或是網站的任一個影片URL(包含Youtube的影片),在標記中可以透過 autoplay 指定他自動撥放。也可以加上 control 按鈕,讓影篇撥放時多了可以控制影片的按鈕。以上的 <video> 顯示影片如下:

除了影片功能外,另一個受矚目的功能叫做 <canvas>標籤,它可以讓我們在網頁上設定一個區塊,讓我們透過 Javascript 程式在上面自由作圖。

當然,尚有許多其他標籤和屬性,值得在網路行銷課程深入研究學習。不過本系列目的是介紹出現率超過 80% 的 HTML 標籤,讓行銷人員對 HTML 的標籤有初步的了解與認識。

 

其他閱讀

 

實用HTML5教學小技巧一-免費編輯器寫HTML這樣用!!

 

實用HTML5教學小技巧二-如何使用HTML來做表格~

 

電腦選花生不稀奇~ 現在人工智慧還會養蝦呢!! 存活率大幅提升,蝦隻變大!!

 

你聽過的大企業都投入AI領域,你還不趕緊來個Python課程先? (下)

 

你聽過的大企業都投入AI領域,你還不趕緊來個Python課程先?

 

中國IT教育領導品牌 達內教育集團第一家海外授權中心

 

美國NASDAQ上市公司、外商IT教育培訓企業

HTML5教學網路行銷必知3-HTML新增了些什麼?

HTML5教學網路行銷必知3-HTML新增了些什麼?
HTML5教學網路行銷必知3-HTML新增了些什麼?

 

必知網路行銷HTML5教學第三篇!! 今天要來談的是HTML所新增的標籤!! 想知道HTML都新增了那些標籤就快往下看!!

 

HTML 5 新增的標記

 

目前的 HTML 5 是 HTML 的最新標準,最初設計的目的只是為了要集合網路上許多分散的資源,透過標記結構化的串在同一個網頁中。

因次 HTML 5 加了許多標記,更有益於網頁的排版、結構更加明顯

在列出 HTML 5 新增的標記前,讓我們再複習一下HTML5教學的內容,先看一下 HTML 5 的語義架構圖,再配合新增的標籤,會比較快理解:

HTML5教學網路行銷必知3-HTML新增了些什麼?
HTML5教學網路行銷必知3-HTML新增了些什麼?

<section> 定義一個大的段落

<article> 定義段落裡的一篇文章

<aside> 網頁內容以外的項目,大多都是側邊攔目

<header> 定義段落中的標題,不是<head>喔

<footer> 定義頁尾的資訊

<nav> 定義導覽列的內容

<figure> 定義內體內容的區塊

<figcaption> 定義媒體區塊的標題文字

<figcaption> 定義媒體區塊的標題文字

在所有新增的標記中,HTML 5 的多媒體功能也是受到矚目的。它簡化了以往在HTML處理影音多媒體資料的型態,上HTML5教學網路行銷課程前,若不了解則會把影片上傳到像 Youtube 等第三方影音平台,再用嵌入的方式來撥放影片。若是使用HTML 5,則可以使用<video>標籤,在自己的網站上完成所有動作:不需要再將影片上傳到第三方影音平台才能在自己的網站上撥放了!典型的標記格式如下:

<video width=”800″ height=”500″ autoplay controls>

<source src=”https://www.tedu.tw/video/達內教育UI課程學員就業分享-李雅青.mp4″ type=”video/mp4″>

</video>

其<source>標籤指定了要撥放的影片位置,可以指定為自己網站中的影片或是網站的任一個影片URL(包含Youtube的影片),在標記中可以透過 autoplay 指定他自動撥放。也可以加上 control 按鈕,讓影篇撥放時多了可以控制影片的按鈕。以上的 <video> 顯示影片如下:

除了影片功能外,另一個受矚目的功能叫做 <canvas>標籤,它可以讓我們在網頁上設定一個區塊,讓我們透過 Javascript 程式在上面自由作圖。

當然,尚有許多其他標籤和屬性,值得在網路行銷課程深入研究學習。不過本系列目的是介紹出現率超過 80% 的 HTML 標籤,讓行銷人員對 HTML 的標籤有初步的了解與認識。

 

其他閱讀

 

HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!

 

HTML5教學網路行銷必知2-怎麼利用HTML製作表格?

 

電腦選花生不稀奇~ 現在人工智慧還會養蝦呢!! 存活率大幅提升,蝦隻變大!!

 

你聽過的大企業都投入AI領域,你還不趕緊來個Python課程先? (下)

 

你聽過的大企業都投入AI領域,你還不趕緊來個Python課程先?

 

中國IT教育領導品牌 達內教育集團第一家海外授權中心

 

美國NASDAQ上市公司、外商IT教育培訓企業

HTML5教學網路行銷必知2-怎麼利用HTML製作表格?

HTML5教學網路行銷必知2-怎麼利用HTML製作表格?
HTML5教學網路行銷必知2-怎麼利用HTML製作表格?

 

一定要知道的網路行銷HTML5教學第二篇!! 今天要來談的是要怎麼樣用HTML製作表格~ 快往下拉吧!!

 

表格標籤<Table >指令一覽表

 

HTML5教學基礎篇2-如何使用HTML5做表格?許多網頁的表格都是使用jpg等圖片來表示,但是圖片的表現方式對於SEO優化的效果較弱,因為Google等搜尋引擎是認字勝過於認圖片!若你希望你的網站兼顧美觀與網路行銷課程必學的SEO優化效果,那你一定要學會辨認HTML5的表格標籤

在網頁中除了項目清單標籤:無照順序排列的<ul>和有照順序排列的<ol>,還有可以按照階層排列的<dl>之外,還有更複雜的表格標籤。(起始標為<table></table>)。

HTML5教學網路行銷必知2-怎麼利用HTML製作表格?
HTML5教學網路行銷必知2-怎麼利用HTML製作表格?

由此可以看得出表格標記<th>、<tr>、<td>之間的關係以及設定的方式。同時在每一個標記之內還可以使用其他的標記,做更細部的設定。如圖中的<td>標籤就加入了<width>標籤來設定寬度,是為<td width=100>。HTML5教學整理出表格標籤的常用屬性如下所示:

<align> 設定整張表格在網頁的對齊方式,有左 (left)、中 (center)、右 (right)

<bgcolor> 設定表格的背景色。以 #rrggbb 為色彩格式

<border> 設定表格的邊框寬度,以像素為單位

<cellpadding> 設定表格邊框與內容中間的留白要留多少,以像素為單位

<cellspacing> 設定格子與格子中間的空白。

<width> 設定表格的寬度,以像素為單位。

以上是針對整個表格的<table>屬性。至於<td><tr>也有相應的屬性設定如下:

<align> 對齊儲存格的內容,有靠左 (left)、靠中 (center)、靠右 (right)、還有分散對齊 (justify),這樣每行都可以有相等的長度(就像在報紙和雜誌中)、將內容對準指定字 (char)

<bgcolor> 設定儲存格的背景色。以 #rrggbb 為色彩格式

<colspan> 合併橫向的儲存格,數字以欲合併的格數為單位

<rowspan> 合併直向的儲存格,數字以欲合併的格數為單位

<height> 設定儲存格高度。

<width> 設定儲存格寬度。

<rowrap> 限制儲存格的內容不能換列,也許可以維持美觀,但是會犧牲多出來的文字內容。

<valign> 儲存格內容的字對齊,有靠上對齊 (lop)、靠中對齊 (middle)、靠下對齊 (bottom)。不過,如果文的字體不相同,baseline 的效果會最好。

以上都是能與網路行銷課程所學相輔相成的網頁應用項目。

 

其他閱讀

 

HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!

 

HTML5教學網路行銷必知3-HTML新增了些什麼?

 

電腦選花生不稀奇~ 現在人工智慧還會養蝦呢!! 存活率大幅提升,蝦隻變大!!

 

你聽過的大企業都投入AI領域,你還不趕緊來個Python課程先? (下)

 

你聽過的大企業都投入AI領域,你還不趕緊來個Python課程先?

 

中國IT教育領導品牌 達內教育集團第一家海外授權中心

 

美國NASDAQ上市公司、外商IT教育培訓企業

讓Python課程學員傻眼的Google中國相關業內新聞(下)

讓Python課程學員傻眼的Google中國相關業內新聞(下)
讓Python課程學員傻眼的Google中國相關業內新聞(下)

 

Python課程學員很有關係的新聞!! 下篇的真正原因更讓你不敢相信!! 還沒看上篇得也快去看喔~

 

參與 Dragonfly 計畫的團隊:他們正在做的事,他們卻不知道

 

有些參與「Dragonfly」計畫的工程師,使用金鑰,進入「與 265.com 關聯的應用程式」並獲得搜尋數據 – 然而他們不知道他們用的是 265.com。他們只是取得了這些人使用「中文」的搜尋行為後,建構了「Dragonfly」的原型。他們使用名稱為「培根塔 (BeaconTower)」的工具(上過Python課程的你應該已經學過了),檢查這些中國人所蒐尋的字串,若是藉由 Google 搜尋出來的結果,是否會被中國國家防火牆擋住。經由這些過程,工程師們彙整出好幾千個被禁的網站,並且整合到「Dragonfly」搜尋平台使其被清除掉。這些網站都是被中國官方禁止的網站,知名網站包含維基百科與 BBC。

 

違反業內行規 Google員工怒

 

據業內行規,對於使用者搜尋字詞的分析,是需要受制於嚴格的管制,並且被負責用戶隱私的相關人員查核過的 – 他們的工作就是要維護用戶的隱私嘛!但是 Google 負責用戶隱私的團隊,卻是在第三方媒體 The Intercept 發現自家公司瞞著他們進行 Dragonfly 計畫,憤而警告負責 Dragonfly 計畫的工程師們:不得再繼續使用藉著python搜尋引擎 265.com 所匯集的用戶搜尋行為資料。

 

最近幾周,負責 Dragonfly 計畫的團隊們,也被告知只能使用「其它的」資料庫:全球華人的 Google 搜尋行為據,而不是中國大陸的 265.com。當然,全球華人(如美國、馬來西亞等地區)的搜尋行為一定跟單單大陸的數據非常不同。這時若要求參與 Dragonfly 計畫的人員「ㄍㄧㄣ」出準確的結果,根本就不可能!因此有好幾個團隊的工程師們紛紛離開了參與 Dragonfly 計畫。

 

內憂外患接踵而至,逼得Dragonfly計畫停止

 

雖然公開否認未來會排除 Dragonfly,但是上一周 Google 的 CEO 桑德佩奇標示「現在」對於啟動 Dragonfly 已無進一步的計畫。因為內部與外部的反彈接踵而至,讓最初的計畫:要在明年一月到四月啟動 Dragonfly,已經造成很大的變動。至少短期內 Dragonfly 是被擱置的~

 

其他閱讀

 

讓Python課程學員傻眼的Google中國相關業內新聞(上)

 

電腦選花生不稀奇~ 現在人工智慧還會養蝦呢!! 存活率大幅提升,蝦隻變大!!

 

台灣人工智慧APP雅婷逐字稿,讓你省去打字的煩惱!! 轉的精準快又好!!

 

你聽過的大企業都投入AI領域,你還不趕緊來個Python課程先? (下)

 

你聽過的大企業都投入AI領域,你還不趕緊來個Python課程先?

 

中國IT教育領導品牌 達內教育集團第一家海外授權中心

 

美國NASDAQ上市公司、外商IT教育培訓企業

HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!

HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!
HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!

 

學習網路行銷HTML5教學的你看到賺到!! 如果你又正好是第一次寫HTML更是要看阿!! 免費的編輯器上就上手喔!!

第一次寫HTML網頁?那你一定要先學這些HTML標籤與線上免費網頁編輯器

初學者上 HTML5教學 卻沒有 Dreamweaver 怎麼辦? 還好線上練習網站 codepen 提共了免費的HTML5網頁平台。你可以在網頁上輸入程式碼,並立即獲得輸出的樣式。他有免費以及付費的方式可以使用,若你只是單純想練習 HTML/CSS/Javascript 的話,使用免費模式即可。付費模式則可在此網站建立屬於你個人的文件內容,並且擁有網頁空間可以放自己的網站。那要如何進入到純練習的介面呢?達內網路行銷課程提供的操作步驟如下:

1. 進入codepen首頁(如下圖),並且點選左側的「Create」,並選擇「Pen」。

HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!
HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!

2. 進入練習的頁面如下,左側是HTML;中間是CSS;右側是Javascript。下方則是即時預覽介面。如下圖所示:

HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!
HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!

HTML 基本架構

上過HTML5教學網路行銷課程就知道 HTML 沒有像一般程式語言一樣有變數儲存的功能、不能操作記憶體、不能算是一個正規的語言,而比較像是一種排版的標記。

所有的 HTML 標籤 (又稱標記、tag) 大都是成對的,如「<p>」和「</p>」,只有少部分如斷行用的「<b>」和「</b>」來完成

所有的 HTML 都以「<html>」開始和「</html>」結束

HTML檔的開頭,都會有<!DOCTYPE html>來當作HTML的識別標記。

HTML的檔案架構如下:

HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!
HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!

在「<html>」和「</html>」主要分成<head></head>和<body></body>兩部分。

如圖所示,<head></head>裡面又有<meta charset=”utf-8″>,是用來設定本網頁的字元編碼是用utf-8,因為現今網頁普遍編碼皆為UTF-8。

而<title></title>為標題標記,是用來定義網頁的標題,同時 Title 也會被 Google 設定為搜尋結果上顯示的網頁標題,因此在 SEO 上是非常重要的優化項目之一。

另外,在<head></head>標籤裡面除了<meta>和<title></title>之外,大部分對於 CSS 以及 Javascript 的設定也會放在這裡面。後續的文章會陸陸續續做說明。

重要、基本的 HTML 標記

真正網頁的內容,是放在<body>和</body>中間。常用的、任何版本皆通用的 HTML 如下所示:

<h1>~<h6> 可用來設定標題格式,若沒有另外規定的話,<h1>最大;<h6>最小。

<p> 可設定文章中的段落,被<p></p>包住的文字為一個段落,也會自動換行。

<br> 可讓文章強制換行

<table>系列 以<table></table>來插入表格,每一列的內容都包在 <tr></tr> 中間,每一列的內容包含每一格,包在 <td></td> 中間,又以 <th></th> 設定每一欄位的標題名稱。

<div> 透過 DIV 標籤可以在網頁中創造各個不同的區塊。這裡的「區塊」可視為一大段落的文字,做同一種格式設定,每個區塊內還可以增加更小的區塊。設計師也可以善用 HTML div 區塊來進行排版。區塊內容,可以是文字、圖片、影片、框架 … 等網頁內容,開頭的<div> 區塊內可以設置 id、class 或直接開始一段樣式設計,也就是 style 的部份。

<span> 和<div>相似,不同的是<span>是小範圍的格式設定,多在一行之內。

<img/> 連結圖檔的標記,圖片來源可為同一台主機的圖片或是網路上任一張圖片。

<a> 超連結URL。

<hr/> 橫的分隔線。

<ul> 項目清單(無順序)。

<ol> 項目清單(具有順序性)。

<ol> 項目清單的單一項目。

<iframe> 在網頁中嵌入其他網頁,如 Youtube。

<dl> 有階層項目的清單,<dt>為第一階層;<dd>為第二階層。


以下為文字的 HTML 標籤

<center> 置中文字。

<i> 把文字斜體。

<u> 在文字上加上底線。

<sub> 上標

<sup> 下標

<em> 強調文字

<big> 字體放大。

<small> 字體縮小。

<pre> 讓文字內容以原本的樣式出現,不加任何其他的格式。

<strong><b><em> 粗體、強調文字。雖然外觀上無益,但是在意義上,<strong>的權重高於<b>和<em>。

上述 tag 中還可以自行置入參數,做細部的設定。如上述 <h2>即可在標籤內加入「align」指令設定標題二(h2)的對其方式,如以下所示:

<h2 align=right></h2>即為向右對齊;<h2 align=left></h2>即為向右對齊;<h2 align=center></h2>即為向中對齊

除了像是<p></p>、、<hr/> 等簡單的標籤之外,許多標籤會自動依照其特殊的結構而組合成預期的樣子,如<dl>,與其他的標籤顯示如下:

HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!
HTML5教學網路行銷必知1-初學一用就上手免費編輯器!!

由以上圖片可知,原始碼的部分,所有的標籤與文字雖然都沒有分行,但是顯示出來的樣子卻可以依照標籤屬性而有次序的排版。像這樣的 HTML 標籤,還有更複雜的表格標籤(點此看說明)。

其他閱讀

 

HTML5教學網路行銷必知2-怎麼利用HTML製作表格?

 

HTML5教學網路行銷必知3-HTML新增了些什麼?

 

電腦選花生不稀奇~ 現在人工智慧還會養蝦呢!! 存活率大幅提升,蝦隻變大!!

 

你聽過的大企業都投入AI領域,你還不趕緊來個Python課程先? (下)

 

你聽過的大企業都投入AI領域,你還不趕緊來個Python課程先?

 

中國IT教育領導品牌 達內教育集團第一家海外授權中心

 

美國NASDAQ上市公司、外商IT教育培訓企業