• 皇上,還記得我嗎?我就是1999年那個Linux伊甸園啊-----24小時滾動更新開源資訊,全年無休!

    十張圖讀懂 PHP、Python、 Ruby 三大語言的差異

    otto

    圖 1、PHP vs Python vs Ruby: 市場份額

    Winner – PHP

    圖 2、PHP vs Python vs Ruby: 主流網站使用情況

    Winner – 平局

    圖 3、PHP vs Python vs Ruby: 可用性

    Winner – Ruby

    圖 4、PHP vs Python vs Ruby: 學習曲線

    Winner – Python

    圖 5、PHP vs Python vs Ruby: 人氣對比

    Winner – PHP

    圖 6、PHP vs Python vs Ruby:性能對比

    Winner – Ruby & PHP

    圖 7、PHP vs Python vs Ruby: 話題性對比

    Winner – Python

    圖 8、PHP vs Python vs Ruby:工作崗位和薪水

    Winner – PHP

    圖 9、PHP vs Python vs Ruby:其它重要信息

    圖 10、PHP vs Python vs Ruby:優缺點

    優點

    缺點

    整理自:PixelCrayons

    誰說程序員無趣,明明他們才是真正的段子手!

    otto

    程序員作為高智商、高收入、高壓力群體,經常會有各種自嘲,而且還天生攜帶段子手基因。不信看看下面這些段子,一般人哪能懂!

    1、殺一個程序員不需要用槍,改三次需求就可以了

    2、程序員退休后決定練習書法,于是重金購買文房四寶。一日,飯后突生雅興,一番研墨擬紙,并點上了上好檀香。定神片刻,潑墨揮毫,鄭重地寫下一行字:hello world!

    3、柳依依說:其實我爸是個程序員 ,我大姐叫玲玲 ,二姐叫玲依 ,三姐叫依玲 ,我妹妹叫憶初。

    4、程序猿的讀書歷程:x 語言入門 —> x 語言應用實踐 —> x 語言高階編程 —> x 語言的科學與藝術 —> 編程之美 —> 編程之道 —> 編程之禪—> 頸椎病康復指南

    5、諸葛亮是一個優秀的程序猿,每一個錦囊都是應對不同的 case 而編寫的!但是優秀的程序猿也敵不過更優秀的 bug!六出祈山,七進中原,鞠躬盡瘁,死而后已的諸葛亮只因為有一個錯誤的 case-馬謖,整個結構就被 break 了!

    6、兩個程序員,一個技術精湛,思維嚴謹,認真負責,Bug 極少,至今單身;一個技術一般,吊兒郎當,Bug 一堆,經常被測試 MM 叫到她旁邊,接受批評,后來成了她男朋友。

    7、前端工程師說,我去相親網站找女朋友去了。朋友問,找到了么?工程師說,找到了他們頁面的一個 bug。

    8、看到一個腦殘的 Code,忍不住罵了句:靠,這個碼是哪個 SB 寫的?仔細一看,原來是自己上個月寫的。

    9、程序員去面試,面試官問:“你畢業才兩年,這三年工作經驗是怎么來的?”程序員答:“加班?!?/p>

    10、假如生活欺騙了你,不要悲傷不要心急?!洞a大全》會一直陪伴著你……

    11、對于程序員來說、沒老婆不悲催。悲催的是、沒老婆、控制臺還不停的提示你 Error:could not find the object

    12、【程序員被提 bug 之后的反應】a. 怎么可能;b. 在我這是好的,不信你來看看;c. 真是奇怪,剛剛還好好的;d. 肯定是數據問題;e. 你清下緩存試試;f. 重啟下電腦試試;g. 你裝的什么版本的類庫 (jdk) h. 這誰寫的代碼;i. 尼瑪怎么還在用 360 安全瀏覽器;j. 用戶不會像你這么操作的。

    13、【如何夸程序員?】通用:你這代碼寫得真好看???C 程序員:你這代碼不看注釋就能懂,寫得真好???Ruby 程序員:我艸,太神奇了,你怎么做到的!夸 Perl 程序員:這個正則表達式碉堡了???Python 程序員:Pythonic!夸 Java 程序員:你寫的代碼一點都不像 Java!

    來源:? 程序人生

    Python vs PHP vs Ruby —— 編程語言大對決

    otto

    編程語言種類繁多,每種語言都有它們的獨特的優勢。開發者在對編程語言的進行選擇時往往很講究。因此,這篇文章將從各個角度對 PHP、Ruby、Python 三種當前比較流行的語言的優勢和劣勢進行對比,希望你能從中受益。

    在進入主題之前,我想分享一些 數據 ,這是我剛學習 Web 開發時候看到的,雖然內容不夠新,但能為三類語言的比較提供依據。

    Python vs PHP vs Ruby

    數據顯示:

    • 市場對 PHP 的需求很高
    • PHP 的可用性低
    • Python 易于學習和理解
    • Python 運算快
    • Ruby 較難學
    • Ruby 的可用性高

    哪種語言最“不安全”?

    網站/應用程序的安全性主要取決于程序員,而不是編程語言。PHP 被普遍認為不安全,因為 PHP 的語法不像 Python 或 Ruby 的語法那么簡單。我們知道,語法越復雜,可讀性越低,錯誤發生的幾率越大。因此,就這一點說,PHP 最容易出錯。

    三種語言的局限性

    PHP

    • 由 C/C++ 和 Perl 衍生出更詳盡的語法,帶有 },$ 和 -> 等符號
    • PHP 內置庫的命名約定多種多樣,很難記住
    • 不適合開發桌面應用程序,難以維護
    • 錯誤處理機制歷來很差勁

    Python

    • Python 沒有 ‘switch’ 語句和 ‘do … while’ 構造
    • 類和方法都沒有 abstract 和 final 修飾符
    • 數據庫訪問層方面有限制
    • 在處理多處理器/多核心工作方面其實不是很好
    • 運行速度慢

    Ruby

    • 很難學會
    • 缺少信息資源
    • 相比其他編程語言,處理時間(CPU 時間)比較長
    • 開發和更新比較慢

    各自的優勢

    PHP

    • 容易上手,尤其適合有 C++,C#,Java,JavaScript 等開發背景的開發者。
    • 可以部署到大多數網站服務器上,如 Apache,Microsoft IIS,Netscape,個人網絡服務器,iPlanet 服務器等。
    • 適用于幾乎每一種操作系統和平臺
    • 提供大量的可用擴展和源代碼
    • 可快速開發任何類型的 CMS
    • 主要開發框架:Zend,Yii,Laravel,Codeigniter

    Python

    • 簡單易學,適合編程初學者學習
    • 提供了快速原型和動態語義功能
    • 面向對象編程驅動型
    • 可在多個系統和平臺上運行
    • 主要開發框架:DjangoFlask 等。

    Ruby

    • 純粹的 OOP(面向對象編程)
    • 擁有一套整潔、簡易的語法,讓新開發人員很容易上手
    • 用 Ruby 編寫的可擴展程序很容易維護
    • 超豐富的字符串和文本處理技術/方法
    • 能夠用一套簡單的 API 編寫多線程的應用程序
    • Ruby 基本框架是 Rails。

    結語

    總之,這三種語言各有各的利弊,總結一下就是:

    • PHP 和 Python 更適合新手學習
    • PHP 是用于編寫 HTML 頁面的最佳語言
    • Python 是一種通用編程語言,可用于構建從 Web 應用程序、爬蟲程序、守護進程到桌面 GUI 應 用程序等
    • Ruby 最擅長快速構建數據實體的 Web 應用程序,它能讓你更專注于特別功能,而不是插入、更新和刪除這些查詢操作。

    編譯自:Python vs PHP vs Ruby: A Detailed Comparison

    Linux 系統的成長之路:試用 1993-2003 年之間的 Linux 老版本系統

    otto

    讓我們一起來回顧 Linux 早期版本的美好時光

    開源軟件最具獨特性的一點就是它永遠不會真正的走到 EOL(生命的終點)。它們的磁盤鏡像文件大都可以一直在網上找到,并且它們的許可證也不會過期,因此,我們可以返回去找到那些老版本的 Linux 系統,并在虛擬機中安裝它們,這都是很容易做到的。通過回顧那些珍貴的系統畫面,讓我們來回顧 Linux 系統這么多年來所發生的翻天覆地的變化。

    我們從 Slackware 1.01 版本來開始這段旅程,在二十多年前它就發布在 comp.os.linux.announce 新聞組上了。

    Slackware 1.01 版本系統(1993 年)

    slackware 1.0 screenshot

    Slackware 1.01

    體驗 Slackware 1.01 系統最爽的是在 Qemu 模擬器軟件 2014 免費鏡像系列 中有一個預先制作好的鏡像文件,因此你可以不用手動去執行安裝任務(真不習慣這種“奢華”待遇)。其引導啟動命令如下:

    1. $ qemu-kvm -m 16M -drive if=ide,format=qcow2,file=slackware.qcow2 \
    2. -netdev user,id=slirp -device ne2k_isa,netdev=slirp \
    3. -serial stdio -redir tcp:22122::22

    在 1993 年那個版本的 Linux 系統中,很多東西都跟我們所想像的一樣。所有常用的基本命令,比如 lscd 命令的使用方式,以及所有的基本工具(gawk 、cut?、?diff?、?perl,當然還有 Volkerding 最喜歡的 elvis 工具)現在都在使用,而且也包含在如今的 Linux 系統中,但是仍然有一小部分東西讓我感到驚訝。當你嘗試使用 tab 補全命令方式來列出上百個文件時, BASH 會非常友好地提示用戶確認,并且那些查看壓縮文件的工具(比如 zlesszmore 以及 zcat)都已經出現了。很多方面都超乎我的預計,總之,該系統給人的感覺就是超級現代化。

    不過,該系統沒有軟件包管理的相關概念。所有軟件的安裝和卸載都得手動完成,也不能查詢出已安裝的軟件包。

    總的來說,Slackware 1.01 系統感覺更像是一個非?,F代化的 UNIX 系統,或者更恰當的說,它給人的感覺就是一個 Linux 用戶在操作一個現代化的 UNIX 系統。很多東西都非常熟悉,但是也不盡相同。這個在 1993 年發布的操作系統中,并不是所有東西都跟你想像中的一樣。

    Debian 0.91 版本系統(1994 年)

    為了嘗試 Debian 0.91 版本系統,我使用的是 Ibiblio 數字檔案 網站下載的軟盤鏡像文件,該系統最初發布在 1994 年。啟動命令如下:

    1. $ gunzip bootdsk.gz basedsk1.gz basedsk2.gz
    2. $ qemu-system-i386 -M pc -m 64 -boot order=ac,menu=on \
    3. -drive file=bootdisk,if=floppy,format=raw \
    4. -drive file=debian.raw,if=ide,format=raw \
    5. -device ne2k_isa,netdev=slirp \
    6. -serial msmouse -vga std \
    7. -redir tcp:22122::22 \
    8. -netdev user,id=slirp

    從 Debian 0.91 的啟動磁盤啟動后進入到一個簡潔的 shell 界面,有很清晰的提示信息告訴你下一步將要執行的操作。

    安裝過程進行得非常順利。從磁盤分區,寫入 ext2 文件系統到分區,到顯示圖形菜單操作界面要經過七個步驟,之后開始復制 basedsk 鏡像文件。這里使用的是以最小化方式來安裝 Debian 系統,跟大家在安裝自己的 Linux 系統過程中的很多步驟都非常相似。

    Debian 系統因其自身的包管理器而出名,但是在早期的版本中只是有一些提示功能而已。有 dpkg 命令,但它是一個基于交互式菜單的系統——一種古老的 aptitude,有多個層級的可選菜單,并且自然地附帶了幾個可用軟件包。

    盡管如此,你也可以感受到其簡便的設計理念。你只需下載三個軟盤鏡像文件,最后合成一個可啟動的系統,然后就可以使用一個簡單的文本菜單來安裝更多的東西。我由衷的明白了為什么 Debian 系統如此受歡迎的原因。

    Jurix/S.u.S.E. 系統(1996 年)

    Jurix install screen

    安裝 Jurix 系統

    Jurix 系統是 SUSE 系統的前身, Jurix 帶有的二進制的 .tgz 軟件包會被組織到類似 Slackware 安裝包結構的目錄中,其安裝包本身也跟 Slackware 的安裝包很相似。

    1. $ qemu-system-i386 -M pc -m 1024 \
    2. -boot order=ac,menu=on \
    3. -drive \
    4. file=jurix/install,if=floppy,format=raw \
    5. -drive file=jurix.img,if=ide \
    6. -drive file=pkg.raw,if=ide,format=raw \
    7. -device ne2k_isa,netdev=slirp \
    8. -serial msmouse -vga std \
    9. -redir tcp:22122::22 \
    10. -netdev user,id=slirp

    因為我不是刻意去尋找最早期的版本, Jurix 系統是找到的第一個真正‘感覺’像是打算給用戶使用的有圖形界面的 Linux 發行版。?XFree86?圖形桌面環境已默認安裝了,如果你不打算使用該工具,選擇退出該環境即可。

    比如 /usr/lib/X11/XF86Config(該文件后來變成了?Xorg.conf)這個配置文件已經存在了,這讓我完成了使用 GUI 前的 90% 的工作,但是我花費了一整個周末的時間來調試 vsync?、hsync 和?ramdac 顏色表重寫,最后我完全放棄了。

    在 Jurix 系統上安裝軟件包也非常簡單;找到源路徑下的 .tgz 文件,然后運行一個常用的 tar 命令: ?$ su -c 'tar xzvf foo.tgz -C /' 該軟件包就會被解壓到根分區,并準備好使用了。我剛開始的時候安裝了幾個之前未安裝過的軟件包,發現操作也很簡單、快速且非??煽?。

    SUSE 5.1 版本系統(1998 年)

    suse install

    在 SuSE 5.1 系統上運行 FVWM 窗口管理器

    我是使用 1998 年在馬里蘭州的一家軟件商店里買的 InfoMagic 光盤來安裝 SUSE 5.1 系統的。其引導啟動命令如下:

    1. $ qemu-system-i386 -M pc-0.10 -m 64 \
    2. -boot order=ad,menu=on \
    3. -drive file=floppy.raw,if=floppy,format=raw \
    4. -cdrom /dev/sr0 \
    5. -drive file=suse5.raw,if=ide,format=raw \
    6. -vga cirrus -serial msmouse

    安裝過程相對于前面幾次來說要復雜得多。 YasT 工具在軟盤和可引導光盤之間搞亂了配置文件和設置,還需要重啟好多次,在重啟了好幾次后我才反應過來是我操作順序不當導致的問題。在安裝過程中,我就犯了兩次同樣的錯,我只是習慣了 YasT 工具的安裝方式,到第三次才順利的安裝成功,這對于一個 Linux 用戶將來的成長來說是一個很大的教訓及經驗。

    我使用 SUSE 5.1 的主要目的就是體驗其 GUI 桌面環境。配置的過程已經很熟悉了,使用幾個漂亮的圖形界面工具(包括一個很好用的 XF86Setup 前端界面配置工具)來測試和調試鼠標及顯示器問題。我用了一個小時不到的時間就調試好 GUI 界面,并正常運行起來,其中大部分時間是耽擱在研究 Qemu 的虛擬顯卡可以提供哪種分辨率和顏色方案。

    可選用的桌面環境包括 fvwm、fvwm2 和 ctwm。我使用的是 fvwm,并且運行得也正常。我發現 tkDesk 這個 dock 式的文件管理器跟 Ubuntu 系統的 Unity 的啟動欄非常的相似。

    使用該系統總的來說還是非常令人愉快的,一旦成功安裝了桌面環境并正常運行起來,SUSE 5.1 可以說是取得了令人矚目的成功。

    Red Hat 6.0 版本系統(1999 年)

    Red Hat 1999

    在 Red Hat 6 系統上運行 GIMP 1.x 圖像處理程序

    下一個系統 Red Hat 6.0 安裝盤我剛好家里有。不是 RHEL 6.0 —— 而是 Red Hat 6.0,這是一個在 RHEL 或 Fedora 系統出現之前商店里就有賣的桌面版系統。這個安裝盤是我在 1999 年 6 月份買的。

    其引導啟動命令如下:

    1. $ qemu-system-i386 -M pc-0.10 -m 512 \
    2. -boot order=ad,menu=on \
    3. -drive file=redhat6.raw,if=ide,format=raw \
    4. -serial msmouse -netdev user,id=slirp \
    5. -vga cirrus -cdrom /dev/sr0

    整個安裝過程由完全由安裝向導指引的,并且速度非???。無論是選擇要安裝什么包(按 工作站 ,? 服務器 , 及 自定義 進行分組),對磁盤分區,或者是啟動安裝,你都不會出現進行不下去的問題。

    Red Hat 6 包括一個 xf86config 應用程序來一步步指導你完成 X 配置工作,盡管它有一些之后的 X 系統不認的奇怪的鼠標模擬選項。它比手動修改 Xf86Config 配置文件要容易得多,但是要正確無誤的配置好 X 環境顯然不是一個簡單的工作。

    Red Hat 6 綁定的桌面環境是 GNOME ,沒錯就是它,但是窗口管理器是早期的 Enlightenment ,它同樣也提供了主聲卡服務進程。xdm?和?gdm 都作為登錄管理器包含在其中,以便普通用戶也可以登錄到系統中,即便沒有權限啟動或者關閉 X 進程,這在多用戶系統中是非常重要的。

    它缺少一些主要的應用程序;還沒有 gedit 工具,沒有重要的統一辦公應用程序,更沒有軟件包管理器。有 GnoRPM 工具,這是一個圖形界面的 RPM 包管理工具,用于查看及刪除軟件包,這個工具跟 yum 或 PackageKit 工具非常類似,還有基于圖形界面的文件編輯器 gnotepad+(盡管沒有 Emacs 工具)。

    總的來說,桌面環境在使用上也是非常直觀的。跟后期實現的 GNOME 桌面環境不同,這個早期版本在屏幕底部有個面板,其中有一個應用程序菜單和啟動器圖標,在中間位置有個虛擬桌面控制器。我無法想象其它操作系統的用戶在使用這個桌面環境時會有多么的不習慣。

    Red Hat 6 對于 Linux 系統來說是一個巨大的進步,很明顯 Linux 系統正向著成為一個適用的桌面系統方向發展。

    Mandrake 8.0 版本系統(2001 年)

    Mandrake 8.0 installer

    Mandrake: Linux 系統的一個轉折點

    Mandrake 8.0 于 2001 年發布,這已經可以跟 Apple OS 9.2 和 Windows ME 系統相提并論了。

    我反而覺得老版本的系統才更安全一些。

    其引導啟動命令如下:

    1. $ qemu-system-i386 \
    2. -M pc-0.10 -m 2048 \
    3. -boot order=ad,menu=on \
    4. -drive file=mandrake8.qcow2 \
    5. -usb -net nic,model=rtl8139 \
    6. -netdev user,id=slirp \
    7. -vga cirrus \
    8. -cdrom mandrake-8.0-i386.iso

    我一直覺得 Red Hat 系統的安裝過程非常棒了,但是 Mandrake 的安裝過程更是讓人喜出望外。它非常友好,并且在繼續下一步之前還給用戶一個測試配置文件的機會,易用高效,使用起來像魔法一樣。我也不用導入自己的 XF86Config 配置文件,因為 Mandrake 的安裝程序會自動完成該任務。

    Mandrake install

    Mandrake 8.0 系統的安裝程序

    實際上,使用 Mandrake 系統跟使用其它的桌面環境系統的感受基本相同。讓我很驚奇的是它們在操作體驗上如此的相似。我相信,即使這個時候我在使用 Mandrake 系統的過程中遇到一些問題,以我自己的技術能力甚至是一個技術水平一般的年輕人也很容易解決。它的界面非常直觀,幫助文檔也很有用,并且軟件包管理起來也很容易,只是那個時候人們還不習慣直接到網上下載他們需要的任何軟件包來安裝。

    Fedora 1 版本系統(2003 年)

    Fedora Core install

    基于 Red Hat 的 Fedora 系統

    2003 年,新的 Fedora Core 系統發布了。 Fedora Core 基于 Red Hat 系統,它的主要目的是在 Red Hat 企業版(RHEL)成為該公司旗艦產品之前繼續扛起 Linux 桌面版系統發展的大旗。

    啟動老版本的 Fedora Core 1 系統也沒啥特別的地方:

    1. $ qemu-system-i386 -M pc \
    2. -m 2048 -boot order=ac,menu=on \
    3. -drive file=fedora1.qcow2 -usb \
    4. -net nic,model='rtl8139' -netdev user \
    5. -vga cirrus -cdrom fedora-1-i386-cd1.iso

    安裝 Fedora Core 同樣簡單容易; Fedora 和 Red Hat 系統在之后的 9 年中使用同樣的安裝器,其圖形界面易用而易于理解。

    Fedora Anaconda

    Anaconda GUI 界面

    使用 Fedora Core 系統的體驗跟 Red Hat 6 或 7 版本沒多少區別。 GNOME 圖形界面很漂亮,有各種獨立的配置程序助手,并且界面展示都非常的整潔和專業。

    桌面上的 “Start Here” 圖標指導用戶前往三個位置:應用程序目錄,首選項面板和系統設置。 一個紅帽的圖標表示應用程序菜單,而下邊的 GNOME 面板里包括所有最新的 Linux 應用程序的啟動器,包括 OpenOffice 辦公套件和 mozilla 瀏覽器。

    展望未來

    在 2000 年左右, Linux 系統已經發展得很好并取得了巨大的進步。桌面環境前所未有的更加精致美觀,有各種可用的應用程序,安裝過程比其它操作操作更簡易更高效。事實上,從 2000 年以來,用戶和系統之間的關系更加緊密,即使到現在也沒發生根本上的改變。當然還有一些更新和改善,以及數量驚人的創新方面的變化。

    讓我們來了解一下各個 Linux 系統項目上的演變:

    • Mandrake 系統后來更名為 Mandriva,如今為 Mageia ;
    • Fedora Core 隨后改為?Fedora ;
    • Ubuntu?脫胎于?Debian?,并且它讓 “Linux” 成為一個家喻戶曉的詞匯;
    • Valve 公司開發的?SteamOS?成為其官方游戲平臺;
    • Slackware?現如今仍在平穩發展。

    無論你是一個 Linux 新手,還是一個技術精湛的 Linux 老用戶,上面的大多數截圖都構成了讓 Linux 系統被記入歷史的一本傳記。很高興今天我們能夠回顧成為世界上最大的開源項目之一的 Linux 系統是如何發展壯大起來的。更重要的是,每一次想到自己也是 Linux 開源世界中的一員我們就無比激動,把握現在,展望未來。


    作者簡介:

    Seth Kenlon —— Seth Kenlon 是一位獨立多媒體藝術家,開源文化倡導者, Unix 極客。他還是 Slackware 多媒體產品項目的維護人員之一,官網:http://slackermedia.ml 。

    題圖來源:互聯網檔案館 書籍 圖片 。 Opensource.com. CC BY-SA 4.0 編輯引用。


    via: https://opensource.com/article/16/12/yearbook-linux-test-driving-distros

    作者:Seth Kenlon 譯者:rusking 校對:wxy

    本文由 LCTT 原創編譯,Linux 中國 榮譽推出

    皇冠大赢家 qqc| 3wq| ui4| cgw| usg| k4u| muy| 2os| wq2| kqc| y2w| oou| 33w| ucq| 3kq| yo3| wmi| ayc| o3y| eec| 1eg| ow2| kay| e2a| yqm| 2gu| em2| yoo| i2q| gwu| wmi| 1wm| qk1| aio| s1w| cqu| 1ea| ow1| aiw| y1y| yaq| w2o| qym| eki| 0kq| io0| yym| e0k| gwa| 0oi| iw1| iic| y1i| wky| 1qm| ky9| wg9| ucq| q9c| uus| 0mo| ii0| ucq| m0q| qkw| 0gm| ss8| emi| u9s| ow9| ooc| i9u| cmi| 9cs| us9| iyw| i9e| qqu| 0es| kk8| yea| i8a| s8m| ous| 8io| we8| owk| e9y| woa| 9gc|