Java跟其他程式語言如何寫出Hello World?

Java跟其他程式語言如何寫出Hello World?
Java跟其他程式語言如何寫出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 目前被廣泛用於創建網站使用。

cat("Hello world\n")

SCRATCH

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

puts 'Hello World!'

SWIFT

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

say Hello, World!

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

 

 

 

 

 

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


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


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


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


猶豫是否轉行Java工程師?業務主管分享親身經歷!!


Python與R語言究竟哪個最適合機器學習?(上)


選對Java課程,讓你業務轉行程式設計師不再心驚驚!

輕鬆搞定機器學習-非監督式學習篇(下)

輕鬆搞定機器學習-非監督式學習篇(下)
輕鬆搞定機器學習-非監督式學習篇(下)

搞定機器學習其實一點也不難,前提是要用對方法!(下)

 

本篇為下篇,上篇請點此連結

二、非監督式學習

1. 隨機森林(Random Forest)

隨機森林可以視為決策樹的延伸,可以把隨機森林當作是多個決策樹組合而成,並加入隨機分配的訓練資料,以大幅增進最終的運算結果。其想法就是結合多個「弱學習器」(即決策樹)來建構一個「強學習器」模型。這種方法被稱為「集成」(Ensemble Method)。同時也能降低單個決策樹出錯的風險。

▲ 決策樹演算法示意圖

 

如果創建一個隨機森林模型預測數值,只有第三個決策樹預測為 0,但是如果整合所有決策樹的結果,將會判斷出預測值是為 1。

隨機森林的優點為可以處理大量的輸入變數,同時可以計算各例中的親近度,對於資料探勘、偵測離群點和將資料視覺化非常有用。

2. 聚類分析(Cluster analysis)

聚類分析是統計資料分析的技術,後來在像是機器學習等領域受到廣泛應用。「聚類」是把相似的物件通過靜態分類,分成不同的組別或子集(subset)。聚類有很多種方法,常見的如 K-means、層次聚類(Hierarchical clustering)、譜聚類(Spectral Clustering)等等。

▲ 「聚類」是把相似的物件通過靜態分類,分成不同的組別或子集 (圖片來源: geeksforgeeks.org)

 

聚類時,把需要實現的目標只是要把相似的東西聚到一起,一個聚類算法只需要知道如何計算相似度就可以開始分類,因此聚類算法並不需要使用訓練資料進行學習。

3. 主成分分析(Principal Component Analysis,PCA)

主成分分析 PCA 是一個在機器學習與統計學領域中被廣泛用來分析資料、降低數據維度以及去關聯的線性降維方法。降維(Dimension reduction)是當資料維度數(變數)很多的時候,嘗試讓維度數(變數)少一點,但資料特性不會差太多的方法。

機器學習使用 PCA 達到降維的目的,主要是為了避免「維數災難」,或稱「維度詛咒」,指當維度增加時,分析和組織高維空間因體積指數增加而遇到各種問題:在機器學習問題中,模型預測能力會隨著維度的增加而減小。

4. 奇異值分解(Singular Value Decomposition,SVD)

奇異值分解 SVD 是線性代數中一種重要的矩陣分解,不僅可以用於降維演算法中的特徵分解,還可以用於推薦系統以及自然語言處理等領域。

▲ 實數 2×2 矩陣 M 的奇異值分解 UΣV * 的圖示。(圖片來源:圖片來自 Wikipedia)

 

SVD 矩陣是一個複雜的實復負數矩陣,給定一個 m 行、n 列的矩陣 M,則 M 矩陣可以分解為 M = UΣV。U 和 V 是么正矩陣(unitary matrix),Σ 為對角陣。

SVD 在某些時候可以做為簡化版的 PCA 利用。PCA 演算法可以不用做特徵分解,而是做 SVD 來完成,在樣本量很大的時候很有效。實際上 Python 的免費機器學習庫「scikit-learn」的 PCA 演算法的背後真正的實現就是用 SVD。

獨立成分分析(Independent components analysis,ICA)

ICA 是一種利用統計原理進行計算的方法。前面在主成分分析(PCA)時談到「降維」的方法,但對符合高斯分佈的樣本點比較有效,那麼對於其他分佈的樣本,則是適合用「主元分解」的 ICA。

ICA 會假設現有資料其實是多個彼此獨立的資料、透過混合後成為現有資料,因此期望能夠從手中的資料,回推出是哪些獨立的分配。例如 ICA 的經典問題「雞尾酒會問題」(cocktail party problem):描述給定混合信號,如何分離出雞尾酒會中同時說話的每個人的獨立信號。

▲ ICA 的經典問題「雞尾酒會問題」示意圖:目的是從混合信號 Mixture1 和 Mixture2 中恢復成每個人的獨立信號 Person1和Person2。(圖片來源:vocal.com)

 

ICA 是研究盲信號分離(blind signal separation)的一個重要方法,並且在實際中也有很多應用。

為何使用 Python 學機器學習、而不是 R 語言?

介紹完當今應用最廣泛、最熱門的幾大機器學習演算法,可以看出從數據分析、統計分析到模型驗證等等都應用在其中。

Python 可以說是簡單上手的程式語言,原本就適合作為第一個入門的程式語言,而透過如 scikit-learn 的 Python 機器學習套件,在 Python 中提供大量常見的機器學習演算法和許多實用的函式庫,亦能呈現該演算法資料輸出的型態,相當方便。

當然 Python 和 R 語言不是互斥,許多工程師也是在兩者之間切換,但是有鑑於 Python 是當今的通用語言,除了AI人工智慧領域外也可以廣泛應用在各種領域,其免費及開源的特性, 有許多支持 Python 的輔助工具、大型模組與函式庫,可以簡單上手數據分析或複雜的程式計算,以及能與幾乎所有現代作業系統兼容等的特點,讓它脫穎而出。

以投資報酬率而言,如果是要從頭開始選擇一種程式語言學習,Python 肯定是最佳的選擇。

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

 

 

 

 

 

推薦文章:
如何使用人工智慧工具,活用 Python 簡化繁瑣的行銷工作?

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

六個月從工地工人轉職 Java 軟體工程師,全因半年做了「對的決定」

台灣本土開發AI 發行首張音樂專輯<<武漢肺炎>>

穿戴裝置潮流正夯,人工智慧眼鏡如何改造你我世界?!(上)

拯救地球靠AI?!保護環境還比人類快?!(上)

學Python到底有什麼好?三大好處報你災!
 

Python與R語言究竟哪個最適合機器學習?(下)

Python與R語言究竟哪個最適合機器學習?(下)
Python與R語言究竟哪個最適合機器學習?(下)

Python好還是R語言好?本篇教你分析判斷!(下)

本篇為下篇,上篇請點此連結

R語言

R 語言是經由統計學家所開發。任何開發人員只要看一下語法,就能馬上分析、預測。由於該語言包含了機器學習中涉及的數學計算,而機器學習是從統計學中衍生出來的,因此對於希望能深入理解底層細節和構建創新的正確選擇。

如果你的工作需要深入觀察,像是需要靠人工智慧檢驗數據集之類,R可以替你縮小工作範圍,可以說是最佳選擇。

R 的優勢

適用於分析:如果你的工作需要大量的檢驗數據,R 是最佳選擇,因為它可以快速建模,並與數據集一起搭建 AI/機器學習模型。

大量實用的函式庫和工具:與 Python 類似,R 也有不同的封包,可以提升機器學習模型的結果。例如 Caret 包就支援 AI人工智慧應用,助於有效地建立預測模型。R 開發人員可受惠於這些數據分析包:因為這些封包中包含了針對建模前後階段的特定任務,如模型驗證或數據可視化等。

適用於探索性工作:如果你需要在項目開始的階段,在測量模型中進行探索性研究時,使用 R 語言的話就只需要添加幾行代碼即可完成。

R 的缺點

難學且不容易寫好。身為弱型別(Weak typing)的程式語言,函數經常會回傳預料之外的物件種類。

與其它的語言不同,R 是從 1 開始,不是 0 開始。

結論:

R 和 PythonAI/機器學習上都有各有各的優勢。可以將兩者運用在各自擅長的項目中,互相搭配使用,才能發揮最大的效益。

一開始我們可以使用 Python 進行資料彙整的階段,再將資料丟到 R 做數據檢驗。按照這些思路,可以將 R 用作 Python 的庫或將 Python 用作 R 的預處理庫。

 

 

 

 

 

推薦文章:
為超越MotoGP冠軍VR46而生:人工智慧重機賽車手MOTOBOT


AI 人工智慧、ML 機器學習、深度學習、Python 是什麼?


捷克新創Resistant.AI 開發2產品 揪出欺騙人工智慧的詭計


人工智慧、機器人、Python、大數據⋯⋯到底有什麼關係?


保護地球靠AI!效率竟比人類快3000倍?!(上)


想要擁有職場競爭力?學Python是你最好的選擇!


自學Python卻遇撞牆期?24條建議幫幫你!

Python與R語言究竟哪個最適合機器學習?(上)

Python與R語言究竟哪個最適合機器學習?(上)
Python與R語言究竟哪個最適合機器學習?(上)

Python好還是R語言好?本篇教你分析判斷!(上)

如果你想要建構一個機器學習的專案,卻又卡在不知道該使用Python 還是 R 語言,恭喜你,你現在真的看到對的文章了!

這篇文章不僅能讓你了解到 Python 與 R 語言的不同,同時也會知道哪個程式語言在多方面都比較佔優勢。現在就讓我們一起深入研究吧!

Python 與 R 語言都具有相同的功能,且是數據科學家間非常熱門的工具。約有 69% 的開發者在人工智慧上使用 Python 語言,R 語言則只佔了 24%。兩者都是免費開源的程式語言,不過 Python 被建構成一種可廣泛使用的程式語言,而 R 語言則是為了統計分析而造。

推薦閱讀:Python 與 R 語言之戰鹿死誰手?盤點 5 個即將消失的程式語言!

人工智慧AI)與數據分析,是真正可以開源創新的兩個領域。Python 與 R 語言都創造了強大的開源設備與函式庫的環境,可以幫助不同能力水平的數據科學家更有效率的執行工作。

機器學習與數據分析之間的區別,相對來說比較模糊。但是一般認為,機器學習在模型可解釋性上著重在預知的準確程度;而數據分析則著重在事實的推測。 在預知的準確度上,Python 可是有口皆碑的;R 語言則擅長於事實推論與靜態推論。

推薦閱讀:AI 人工智慧、ML 機器學習、深度學習、Python 是什麼?

這並不代表我們要將這兩個語言歸為一類 —— Python 完全可被應用為數據分析工具;R 語言則可以完成機器學習中的一些大工程。兩種語言都有許多能使其達成對方優點的函式庫與封包:像是 Python 有能進行測量後歸納的函式庫;R則有增強預測準確度的封包。

下一段,我們將會深入說明兩種語言,可以大大地幫助你針對自己的專案,使用合適的語言。

Python 語言

Python 程式語言誕生於 80 年代末期,承擔了推動 Google 內部框架的重責大任。Python 被一群熱情的程式設計師所擁護著,也被廣泛應用在 YouTube、Instagram、Quora 和 Dropbox。Python 也全面被應用在 IT 產業以及開發團隊中的基礎建構。因此如果你需要的是一個多工的程式語言以及大量可擴展的 AI 函式庫,Python 可以說是首選。

Python 的優點

多功能 — 如果你的企業需要的不只是測量與統計數據的功能,Python 是首選。例如設計一個功能強大的網站。

平滑的學習曲線 — Python 並不難學,能幫助你短時間內找到熟練的開發人員。

大量的重要函式庫 — Python 以擁有無數的數據組裝與控制函式庫聞名。以 Scikit-realize 為例,它包含了資料探勘與和調查的工具,讓使用 Python 時,增加了超乎想像的 AI 便利性。另一個函式庫 Pandas,給予工程師無可比擬的結構與資訊評估工具,減少了改進的時間。如果你的開發團隊需要 R 語言的其中一個主要功能,就建議可以使用 RPy2。

更好地整合能力 — P大致上來說,在任何的開發場合,Python 的兼容性比 R 還好。不管是否使用如 C、C++ 等較低階的語言來開發,都能透過 Python 包裝連接更好的組件。而且,讓數據研究人員的將一個基於 Python 建構的函式庫,串接到其他需要完成的工作也很容易。

提高生產力 — Python 語言,比起 R 語言可讀性特別高,幾乎如同人類平時交談用的方言,因此也能提高開發團隊的生產力。

Python 的缺點

缺少公共儲存庫,也沒有某些可選的 R 專用庫。

由於是動態組合,在某些情況下,Python 會造成一些計算錯誤,而這些導致錯誤的因素又不太確定。

連結本篇為上篇,下篇請點此

 

 

 

 

 

推薦文章:
AI 人工智慧、ML 機器學習、深度學習、Python 是什麼?


捷克新創Resistant.AI 開發2產品 揪出欺騙人工智慧的詭計


人工智慧、機器人、Python、大數據⋯⋯到底有什麼關係?


為超越MotoGP冠軍VR46而生:人工智慧重機賽車手MOTOBOT

 

穿戴裝置潮流正夯,人工智慧眼鏡如何改造你我世界?!(上)


聽聽看不吃虧!關於Python的24條真心建議!


人工智慧時代新寵兒-機器狗Aibo(上)