Saya melakukan Python kembali pada 2003-5, ketika saya adalah seorang konsultan Plone / Zope. Kemudian pada tahun 2006 saya mulai mengambil Ruby. Saya tidak pernah melihat ke belakang. Saya pikir orang yang berbeda merasa lebih nyaman dengan bahasa dan budaya pemrograman yang berbeda, tetapi bagi saya, Ruby terasa jauh lebih baik daripada Python.
Saya pribadi berpikir bahwa dibandingkan dengan Ruby, Python adalah pekerja keras andal yang kebetulan juga sedikit tenang dan lembut. Ruby jauh lebih menyenangkan. Ini adalah bahasa yang terlihat lebih cantik, dan dapat dibuat untuk melakukan banyak hal yang menyenangkan dan funky yang terus membuat para praktisi terpesona. Saya pernah mendengar orang Python menyerang Ruby karena terlalu berbahaya, mengatakan bahwa terlalu mudah untuk membuka kembali kelas dan melakukan hal-hal liar dan tidak bertanggung jawab seperti itu. Tapi itu bagian dari apa yang membuat Ruby merasa seperti komedi komedi aksi petualangan bagiku. Python, sebaliknya, lebih seperti perabot Ikea: itu menyenangkan, nyaman, dan dapat diandalkan - tetapi itu tidak akan mengejutkan Anda dan menarik napas Anda.
Dua hal terbaik tentang Ruby, dari sudut pandang saya, adalah dua hal yang membedakannya dengan tajam dari Python. Pertama, Ruby banyak dipengaruhi oleh Perl. Python tampaknya bangga menjadi anti-Perl. Tapi barang-barang yang dipinjam Ruby dari Perl sangat praktis. Ambil ekspresi reguler, misalnya. Di Ruby, Anda dapat menulis ekspresi reguler secara alami, mis if mystring =~ /^\s+hello word!/ ...
. Dalam Python, tidak terlalu banyak, karena Python sangat anal tentang membuat semuanya mengikuti sintaksis yang dapat diprediksi secara seragam. Di Ruby, Anda bisa mendapatkan STDIN dengan segera input = STDIN.read
. Dengan Python, Anda harus melakukannya import sys
dan kemudian
sys.stdin.read()
. Ini hanyalah dua contoh di mana upaya Python untuk menjauhkan diri dari Perl dan bisa ditebak secara teratur dikalahkan oleh kesediaan Ruby untuk melakukan apa yang terasa benar dalam setiap kasus.
Hal lain yang membedakan Ruby dari Python adalah bahwa Ruby lebih dekat dengan Lisp sedangkan Python cukup banyak merupakan bahasa pemrograman yang sangat penting. Saya pikir ini merupakan nilai tambah dalam mendukung Ruby.
Ada banyak fitur mirip Lisp dari Ruby yang memungkinkan untuk melakukan lebih banyak dengan kode yang lebih sedikit di Ruby daripada di Python. Misalnya, setiap pernyataan dan struktur kontrol di Ruby mengembalikan nilai: Anda bisa pergi di Ruby dengan tidak pernah menggunakan return
pernyataan. Bahkan if
pernyataan mengevaluasi suatu nilai, sehingga Anda dapat menulis hal-hal seperti ini
result = if output == 'hello'
[some code here]
"world"
else
[some other code here]
"there"
end
Dengan Python Anda harus menulis
if output == "hello":
[some code here]
result = "world"
else:
[some other code here]
result = "there"
Python membuat Anda mengetik result =
dua kali. Itu tidak terlalu KERING (Jangan Ulangi Diri Sendiri). Ada banyak contoh seperti ini di mana Ruby akan lebih KERING daripada Python karena kualitasnya yang mirip Lisp. Matz, pencipta Ruby, berasal dari latar belakang Lisp.
Beberapa orang mengatakan bahwa Ruby juga menendang pantat Python dalam metaprogramming (alias pemrograman dinamis). Orang Python merespons baik dengan mengatakan bahwa metaprogramming terlalu berbahaya, atau dengan mengatakan bahwa secara teoritis, Anda dapat menyelesaikan semua hal metaprogramming yang dapat dilakukan Ruby di Python, hanya berbeda. Tapi satu hal yang disetujui semua orang adalah bahwa metaprogramming jauh lebih jarang terjadi di Python daripada di Ruby. Dan itu terlalu buruk, karena pemrograman adalah perjalanan.
Saya pikir mungkin benar bahwa pada akhirnya Ruby dan Python dapat menyelesaikan pekerjaan. Dibandingkan dengan C dan Java, Ruby dan Python cukup banyak hal yang sama. Mereka ekspresif, produktif, bahasa tingkat tinggi.
Jadi itu bermuara pada kepribadian Anda.
Apakah Anda suka hal-hal yang dapat diprediksi, teratur, dan aman? Apakah Anda suka gaya pemrograman yang imperatif? Apakah Anda ingin bekerja suatu hari nanti untuk Google? Apakah Anda berpikir bahwa Perl adalah bibit neraka yang kacau? Tetap dengan Python.
Apakah Anda senang menemukan cara yang paling ringkas untuk mencapai beberapa hasil pemrograman? Apakah Anda bosan dengan keteraturan dan keseragaman? Apakah Anda suka memiliki kebebasan untuk menulis kode dengan gaya Anda sendiri, dan memiliki banyak ruang untuk menghasilkan trik keren Anda sendiri? Apakah Anda merasa lebih tertarik pada Lisp daripada C? Apakah Anda merasakan kekaguman yang luar biasa atas kontribusi zaman Perl yang membuat program perangkat lunak, tetapi hanya berharap bahwa itu bisa menjadi sedikit kurang samar dan jelek? Apakah Anda memikirkan kode seperti orang lain memikirkan puisi? Coba Ruby.