前言
ActiveState 是一家主打自由軟體的軟體公司,該公司最知名的產品就是 ActivePerl 和 ActivePython。由於 Windows 對 Perl、Python、Tcl 等高階直譯語言相對不友善,ActiveState 所推出的產品相當受到 Windows 程式設計者的歡迎。
前陣子 ActiveState 將旗下產品重新整合,推出了 ActiveState Platform 以及新的工具 State Tool。本文帶著大家看一看這個新平台及新工具,讀者可以思考是否要將這個平台加入自己的工作流程。
ActivePerl 和 ActivePython 和其他程式語言
ActiveState 提供以下高階語言的免費和商業服務:
- ActivePerl
- ActivePython
- ActiveTcl
- ActiveGo
- ActiveRuby (beta 版)
在筆者撰文的時候,前三個語言有整合進 ActiveState Platform,其他的仍然是獨立下載。
本來 ActiveState 還要推出 ActiveNode (即 Node.js) 和 ActiveLua,但現在在官網沒有看到下載頁面。原本的 beta 版頁面也拿掉了,看來短期內應該不會推出。對於單一公司來說,要維護那麼多語言還蠻累的,還不如集中火力在幾個主力產品比較好。
Komodo IDE
Komodo IDE 是 ActiveState 所推出的多語言 IDE,支援 Perl、Python、Ruby、Golang、JavaScript 等。原本 Komodo IDE 不便宜,現在也是免費的,只要登入 ActiveState Platform 的後台就可以免費下載該 IDE。
客製化運行環境
ActiveState Platform 是 ActiveState 所推出的新服務。程式設計者可以利用這個平台打包自己的開發環境,像是指定 Python 版本 + 選擇特定套件。ActiveState Platform 會將程式設計者打包好的開發環境做成安裝程式,日後就可以快速重建環境。
這個功能對團隊比較有用,對個人開發者的效益就沒那麼大。此外,免費使用時只能用這個開發環境在本地端寫程式,要將開發環境部署到伺服器上要另外收費,詳見後文說明。
使用 State Tool 管理開發環境
State Tool 用來管理開發環境。藉由這個工具,可在不同開發環境間快速切換。每個開發環境間是各自獨立的。像是在 Python 2 及 Python 3 間轉換就很簡單。
安裝 State Tool
請開啟具有系統管理員權限的 PowerShell 終端機,輸入以下指令即可安裝 State Tool:
PS1 > powershell "IEX(New-Object Net.WebClient).downloadString('https://platform.activestate.com/dl/cli/install.ps1')"
檢視系統上的 Project
使用以下指令觀看系統上存在的開發環境:
> state projects
在 ActiveState 的觀念裡,不同開發環境即為不同 project。程式設計者可以自己建立所需的 project,不一定只用 ActiveState 現成的。
安裝新 Project
輸入 state activate
指令即可進入特定開發環境。像是以下指令進入 Perl 5.32 版:
> state activate ActiveState/Perl-5.32
╔════════════════════════════════╗
║ Activating Virtual Environment ║
╚════════════════════════════════╝
Choose Destination
Where would you like to place the project files for ActiveState/Perl-5.32?
> C:\Users\user\ActiveState\Perl-5.32
Other ..
State Tool 會詢問是否要設成預設 project,之後開終端機就可以直接使用:
Default Project
Would you like to make ActiveState/Perl-5.32 your default project?
This will allow you to operate on your project and run executables provided by its runtime without first "activating" i
t.
(y/N)
這可以之後再設置,不需要馬上決定。
離開目前的 Project
State Tool 沒有提供額外的指令,使用系統的 exit
指令即可離開目前的開發環境:
> exit
設置預設 Project
對於常用的開發環境,可以設成預設 project,這樣一開終端機就可以使用,而且該 project 會變成全域指令:
> state activate --default ActiveState/Perl-5.32
搜尋套件
使用 state search
指令可在開發環境中搜尋套件:
> state search Moo
也就是說,State Tool 兼具套件管理程式的功能。由於在 Windows 上編譯延伸套件較為困難,這個功能算是蠻好用的。
檢視套件資訊
使用 state info
指令可觀看套件的資訊:
> state info Moo
安裝套件
使用 state install
指令可安裝套件:
> state install Moo
移除套件
使用 state uninstall
指令可移除套件:
> state uninstall Moo
移除 State Tool
不論為了什麼原因,不想再用 State Tool 了,可以輸入以下指令把整個 State Tool 和安裝的開發環境皆移除:
> state clean uninstall
ActiveState 最近的新產品
在筆者撰文的時候,ActiveState 推出兩個新產品,帶大家來看一下。
ActivePerl 5.32
Perl 即將邁入新的大版本號 Perl 7。而 Perl 7 會以 Perl 5.32 版為基礎去修改。所以,要將手邊的 Perl 程式遷移到 Perl 7 前,應先在 Perl 5.32 測試相容性。
ActiveState 官網中有關 Perl 5.32 的說明在這裡。有興趣的讀者可以自己看一下。
輸入以下指令即可安裝 Perl 5.32:
> state activate ActiveState/Perl-5.32
Anaconda 替代包
Anaconda 是相當受歡迎的 Python 發行版,主打資料科學相關的應用和整合多個開發工具 (像 Jupyter)。目前來說,應該是 Anaconda 比 ActivePython 受歡迎。
ActiveState 當然知道競爭對手的存在,所以推出了相當於 Anaconda 的開發環境。相關說明在這裡。有興趣的讀者可以自己看一下。
輸入以下指令即可安裝等效於 Anaconda 的 Python 開發環境:
> state activate ActiveState/ActivePython-for-Anaconda-Win
不過,這個開發環境只有整合資料科學套件的部分。開發工具的部分還是要自己安裝。此外,這不是 Ananconda 發行版,不會有 conda
指令可用,而是用 ActiveState 的 state
指令來管理 Python 套件。
ActiveState 的營運模式
除了免費服務外,ActiveState 有許多付費服務,像是:
- 建立私有的 project (開發環境)
- 將 project 部署到生產環境上,按節點數量收費
- 將多位開發者加入團隊,按使用人數收費
- 安裝舊版的開發環境
- Python 2 的延長維護
若有需要這些服務,請自行向 ActiveState 購買。站長完全沒有抽成,單純介紹相關服務。