Test drive Enthought Canopy

Sahabat sekalian, kali ini saya ingin berbagi sedikit pengalaman ‘coba-coba’ produk distribusi python Enthought Canopy versi beta 0.9.2 (selanjutnya akan disebut dengan ‘Canopy’ saja).  Canopy merupakan ‘calon kuat’ pengganti produk EPD Python  di masa depan.

Lisensi : Academic License
Link downloadhttps://beta.enthought.com/Canopy/download/

Bagi yang belum pernah mendengar terminologi “EPD Python“, secara singkat bisa dijelaskan dengan : sebuah paket distribusi python yang dikhususkan untuk komputasi saintifik. EPD Python dikemas dengan installer yang user-friendly, disertai dengan puluhan paket python yang sangat bermanfaat, seperti NumPy, Pandas, SciPy, Matplotlib, dan lain sebagainya. Bagi rekan-rekan yang pernah mengenal Matlab, tentu sangat familiar dengan berbagai macam pustaka yang ada di dalamnya bukan? EPD Python merupakan alternatif dari MATLAB untuk komputasi saintifik dengan berbagai macam pilihan lisensi, mulai dari lisensi berbayar sampai dengan gratis.

Fitur-fitur utama EPD Python

EPD Python dikembangkan oleh sebuah perusahaan bernama Enthought yang berpusat di Austin, Texas, Amerika Serikat. Enthought didirikan oleh Travis Vaught dan Eric Jones pada tahun 2001. Saat ini, Enthought memiliki developer yang berdomisili di Amerika, Inggris, dan India yang bekerja bersama-sama untuk mengembangkan dan menyempurnakan produk python untuk komputasi saintifik. Berangkat dari produk open source, Enthought mampu membiayai pengembangan EPD Python melalui pengembangan perangkat lunak, konsultasi, dan pelatihan di beberapa perusahaan ternama. Beberapa klien Enthought antara lain: Airbus, ConocoPhillips, Freescale, GDF-Suez, JPL, Los Alamos National Lab, Northrup Grumman, U.S. Army Research Lab, Oak Ridge National Laboratory, Lockheed Martin, Rackspace, Doosan Babcock, Shell, Merrill Lynch, dan Xilinx.

Sudah lebih dari dua bulan saya menggunakan EPD Python 7.3.2 untuk berbagai macam keperluan, salah satunya adalah mempelajari beberapa algoritma machine learning dan computer vision dengan ‘Matlab style’. Misi lain saya adalah: mencoba mencari alternatif lain dari Matlab (selain Octave dan Scilab) untuk keperluan komputasi saintifik, yang nantinya mungkin bermanfaat saat saya mengajar di Indonesia. Sebagaimana sahabat sekalian ketahui, Matlab dengan lisensi resmi cukup “mahal” untuk kocek pelajar. EPD Python diharapkan bisa menjadi alternatif lain yang lebih murah dan terpercaya. Selain itu, pemrosesan data dengan volume yang cukup besar terasa lebih cepat bila dilakukan di ekosistem berbasis python dibandingkan Matlab.

Selama saya menggunakan EPD Python, saya cukup puas dan takjub, terutama kemudahan integrasi produk dan library python dalam satu paket instalasi. Namun demikian, ada satu kelemahan yang saya rasakan dari produk EPD Python ini : tidak adanya sebuah IDE yang mengintegrasikan Python environment dengan source code. Akibatnya, saya harus menggunakan code editor lain, seperti Sublime atau Smultron untuk mengedit script program, kemudian berpindah ke terminal untuk mengeksekusi program python. Bagi saya yang secara naluriah bekerja dengan IDE C/C++ (baik itu XCode di Mac maupun Visual Studio di Windows), maupun Matlab, hal ini terasa cukup memakan waktu.

Tak sengaja, beberapa waktu yang lalu saya membaca salah satu artikel di blog developer Enthought. Ternyata, EPD 8 versi beta yang telah dilengkapi dengan GUI telah diluncurkan. Penasaran dengan produk tersebut, akhirnya saya mencoba mengunjungi halaman repository produk beta tersebut (yang belakangan telah berganti nama menjadi Canopy).

Penasaran dengan Canopy, saya mencoba mendownload file installer canopy-0.9.2-osx-64.dmg. Rupanya, instalasi Canopy cukup mudah dan mirip dengan paket aplikasi lain di Mac. Hanya tinggal drag and drop saja ke folder Applications. Setelah itu, saya mencoba menjalankan Canopy.app, sebagaimana saya menjalankan aplikasi lain. Halaman pertama yang muncul adalah splash screen, berikut opsi untuk menjadikan Canopy sebagai default python yang berjalan di sistem. Setelah konfigurasi kilat ini selesai, muncullah home screen dengan tampilan mirip di IDE lain, seperti Matlab atau Visual Studio

Tampilan awal welcome screen Canopy yang elegan
(klik gambar untuk melihat preview yang lebih besar)

Tampilan code editor Canopy berikut console iPython
(klik gambar untuk melihat preview yang lebih besar) 

Tampilan console python setelah instalasi Canopy
(klik gambar untuk melihat preview yang lebih besar) 

Sekilas, tampilan IDE tersebut sangat user-friendly dan mirip dengan IDE Matlab. Di sisi kiri terdapat file browser, dan di sisi kanan terdapat code editor. Di bagian bawah, console iPython bisa digunakan untuk mengeksekusi perintah-perintah secara interaktif, atau untuk mengetahui penjelasan (help mode) dari tiap-tiap fungsi python dan library lainnya. Misalnya, untuk mengetahui penjelasan fungsi len() bisa mengeksekusi perintah berikut ini:

In [6]: len??

Type: builtin_function_or_method
String Form:<built-in function len>
Namespace: Python builtin
Docstring:
len(object) -> integer

Selain itu, Canopy juga dilengkapi dengan intellisense, sebagaimana yang ada di Visual Studio, sehingga saat kita mengetik sebuah fungsi, akan muncul penjelasan fungsi dan parameter yang diperlukan sebagai masukan fungsi tersebut:

Fitur intellisense pada iPython console 

Bagi programmer python pemula seperti saya, ini sangat-sangat membantu untuk memahami secara langsung ‘apa yang terjadi di balik sebuah fungsi’. Selain itu, jika kita menggunakan library third-party atau script yang telah kita import, fitur intellisense dari Canopy secara langsung akan menampilkan keterangan dan help yang tersedia pada fungsi tersebut (lihat gambar di bawah).

Intellisense bekerja pada script yang kita import

Secara umum, Canopy telah memberikan sebuah kontribusi yang cukup berarti untuk komunitas python, khususnya mereka yang menggunakan python untuk visualisasi data dan komputasi saintifik. Saya sendiri merasa cukup puas pada ‘pandangan pertama’ dan test drive kali ini. Berikutnya, saya akan mencoba mengintegrasikan Canopy dengan library-library di luar paket installer Canopy, seperti OpenCV untuk image processing atau Scikit-Learn untuk machine learning.

Semoga Canopy mampu berkolaborasi dengan baik :)

Be Sociable, Share!
Categories: Machine Learning

Leave a Reply