Ruby atau Python? [Tutup]

24

Pertanyaan ini sangat subyektif dan terbuka. Bahkan mungkin terdengar seperti sesuatu yang harus saya teliti sendiri dan membuat keputusan sendiri. Tapi saya ingin meletakkannya di sana dan mendapatkan beberapa pemikiran dari orang lain.

Singkat cerita - Saya sangat lelah dengan perlombaan tikus dan sedang menjalani cuti panjang yang didanai sendiri tahun ini. Sebagian besar adalah untuk mengambil istirahat dari kesibukan perusahaan dan berkeliling, tetapi saya juga ingin bermain-main dengan teknologi baru dan melakukan beberapa proyek belajar mandiri, untuk tetap mempercepat pemrograman, dan baik - saya hanya suka bermain-main dengan pemrograman, ketika tidak ada tekanan!

Begini masalahnya: Saya seorang programmer C / C ++ / Java seumur hidup. Saya sedikit sombong braket berlekuk sejak saya telah bekerja dengan keluarga bahasa ini untuk seluruh karir pemrograman saya. Jadi saya ingin belajar bahasa yang tidak begitu dekat secara sintaksis dengan grup ini. Apa yang saya cari pada dasarnya adalah bahasa yang memiliki tujuan yang relatif umum, menyenangkan untuk dipelajari, memiliki beberapa konsep baru yang berbeda dari C ++ / Java, dan memiliki komunitas yang baik. Pertimbangan kedua adalah bahwa ia memiliki kerangka pengembangan web yang bagus. Pertimbangan tersier adalah bahwa itu tidak sepenuhnya akademis (baca: ada pekerjaan dunia nyata di luar sana menggunakannya).

Saya mempersempitnya menjadi Ruby atau Python. Kesan saya terhadap Ruby adalah sangat berorientasi pada web - bahwa satu-satunya aplikasi sebenarnya adalah sebagai bahasa scripting sisi server untuk melakukan hal-hal web (terutama Ruby on Rails). Saya tidak memiliki banyak kesan tentang Python sama sekali, kecuali bahwa tampaknya memiliki basis penggemar yang penuh gairah dan tampaknya menjadi bahasa yang cukup fleksibel.

TL; DR dan sederhanakan mungkin: yang mana di antara yang ini lebih baik bagi seorang pria C ++ / Java untuk belajar mendapatkan perspektif baru tentang pemrograman? Dan tujuan mana yang lebih terbuka dan umum serta dapat diterapkan pada serangkaian aplikasi yang lebih luas? Saya condong ke arah Ruby saat ini, tapi saya khawatir sampai-sampai sepertinya tidak ada yang digunakan selain bahasa web sisi server.

Tabel Bobby
sumber
"Untuk Python aku tidak begitu yakin"? Dari apa? Bagaimana ini relevan?
S.Lott
Anda dapat menemukan lebih banyak tentang Ruby vs Python di StackOverflow. Saya terkejut bahwa Lennart sendiri belum berkomentar. regebro.wordpress.com/2009/07/12/python-vs-ruby stackoverflow.com/questions/1113611/…
Pekerjaan
@ S.Lott: Maaf, tidak jelas. Hanya berarti bahwa saya belum memiliki kesan yang sangat detail tentang Python. Kecuali bahwa itu serbaguna dan memiliki basis penggemar yang kuat.
Bobby Tables
9
Perl, tentu saja.
Bruce Alderman
Ini termasuk dalam "Teknologi apa yang lebih baik?" kategori pertanyaan, yang menurut FAQ dianggap di luar topik.
ChrisF

Jawaban:

35

Jangan biarkan fakta bahwa Ruby naik ke bahasa umum sebagian besar karena Rails (kerangka aplikasi web) menipu Anda. Ini adalah bahasa pemrograman untuk tujuan umum, dan Anda dapat menggunakannya untuk apa pun yang dapat Anda gunakan untuk bahasa lain.

Main-main dengan Ruby dan lihat apakah Anda jatuh cinta padanya. Anda mau atau tidak mau. Ini seperti musik Grateful Dead; Anda menyukainya atau tidak tahan.

Ruby akan meregangkan otak Anda. Dalam banyak hal, ini jauh dari C ++ / Java yang Anda bisa dapatkan. Saya berasal dari latar belakang C dan C #, dan saya menemukan dinamika dan kekuatan meta-pemrograman Ruby sangat memabukkan.

Yang sedang berkata, Python adalah bahasa yang benar-benar luar biasa, dan itu akan menghancurkan Anda dari keritingmu.

Kenapa tidak belajar keduanya? Saya menggunakan keduanya secara teratur: Ruby untuk pemrograman dengan Rails dan Python untuk bekerja dengan Google AppEngine.

Adam Crossland
sumber
2
+1 untuk referensi Mati
,;
1
Terima kasih. Saya akan pergi dengan Ruby terlebih dahulu dan melihat apakah saya jatuh cinta padanya. :)
Bobby Tables
8
Saya sedikit terlambat ke pesta, tetapi trypython.org dan tryruby.org adalah situs yang bagus untuk mencoba bahasa.
Michelle Tilley
17

Saya hampir tidak pernah menggunakan Ruby, tapi ini kesan saya tentang Python:

  • ketika saya menulis pseudocode untuk menuliskan sebuah fungsi, saya menemukan bahwa apa yang saya tulis praktis adalah Python, dan kadang-kadang sangat sedikit penulisan ulang yang diperlukan untuk menjadikannya kode aktual. Anda bahkan mungkin melewatkan kode pseudocode bersama-sama dan hanya mengekspresikan pikiran Anda secara langsung dengan Python
  • ketika saya perlu melakukan sesuatu yang tampak seperti tugas umum, Python cenderung memiliki fungsi yang diperlukan (pada tingkat tinggi) dibangun ke dalam perpustakaan standarnya. Sebagai contoh, sejak awal ketika saya ingin membuka file dan memindainya baris demi baris, jawabannya sesederhana 'untuk baris di myFile: dostuff (baris)'. Ini saya percaya mereka menyebut pendekatan 'baterai termasuk', dan itu berbeda dari beberapa bahasa lain yang saya gunakan di mana operasi sehari-hari jauh lebih fiddly

Dua hal itu menonjol bagi saya.

Andrew M
sumber
Saya pikir itulah alasan saya lebih suka Ruby. Ruby lebih OO dan memiliki lebih sedikit kata kunci. Misalnya dalam Ruby "[1,3,5] .length ()" dan "[1..10] .each () ..." vs Python "len ([1,3,5])" dan "for i dalam kisaran (1,11) "
LennyProgrammers
6
@Lenny - Ruby sebenarnya memiliki lebih banyak kata kunci: krijnhoetmer.nl/stuff/ruby/keywords vs. zetcode.com/tutorials/pythontutorial/keywords - untuk Python 2.6, itu 31 kata kunci untuk Ruby 38. Juga, 'lebih banyak OO' sepertinya digunakan cukup subyektif di sini, karena dalam kedua bahasa "semuanya adalah objek" berlaku (dan bahkan lebih secara harfiah dengan Python 3.x, karena semuanya merupakan subclass dari object). Juga, len(obj)adalah jalan pintas untuk memanggil obj.__len__(), dan for i in rangejuga abstrak rincian operasional objek generator. Saya pikir / setara tetapi berbeda / lebih akurat.
Wayne Werner
Saya merasa Lenny berarti Anda menggunakan lebih sedikit kata kunci dalam pernyataan tipikal Anda, misalnya 'untuk i dalam kisaran (1,11) memiliki 3 kata kunci (untuk, dalam, kisaran). Tentu saja, terkadang lebih banyak kata lebih baik.
Andrew M
5
range bukan kata kunci itu adalah fungsi
Kugel
9

Jika Anda mengambil cuti setahun penuh, maka saya sarankan menghabiskan satu atau dua minggu belajar masing-masing dan kemudian memutuskan untuk diri sendiri yang paling Anda sukai. Saya memiliki pengalaman dengan keduanya dan menurut saya mereka berdua sangat mampu sehingga Anda benar-benar hanya perlu memutuskan mana yang Anda sukai.

Jason Webb
sumber
+1, Keduanya tampak cukup mudah. Clojure, di sisi lain ... sangat menyenangkan, tetapi juga lebih sulit.
Pekerjaan
7

IMO, Anda harus menggunakan Python. Alasannya adalah karena lebih fleksibel, Anda dapat menggunakannya untuk hampir semua hal. Ruby, seperti yang Anda perhatikan, lebih banyak digunakan dalam pengembangan web karena kerangka web-nya. Tidak seperti Python, Ruby tidak terlalu bagus untuk pengembangan aplikasi desktop gui, numerik, statistik atau program pemrosesan gambar.

Marcin
sumber
1
Bisakah Anda menunjukkan apa yang membuat Ruby "tidak begitu bagus untuk pengembangan aplikasi desktop gui, numerik, statistik atau program pengolah gambar"? Ketika saya pemrograman di Ruby pada tahun 2001/2002, saya dengan senang hati melakukan semua hal itu.
LennyProgrammers
7
@ Lenny222. Di Ruby tidak ada perpustakaan seperti numpy, scipy, sympy, PIL, matplotlib. Apapun perpustakaan numerik mereka, mereka jauh di belakang itu dari Python. Demikian pula dengan dokumentasi dan perpustakaan untuk pengembangan aplikasi gui.
Marcin
1
Anda mengatakan Python lebih fleksibel dan kemudian menunjuk perpustakaan untuk alasannya. Saya akan memberi tahu Anda bahwa tidak mudah untuk melakukan beberapa hal di Ruby karena kurangnya perpustakaan yang baik, tetapi itu tidak berarti Ruby itu sendiri entah bagaimana kurang fleksibel.
Twisol
@Tisol itulah yang persis mengapa: Python menjadi sangat sederhana (dan konsisten) adalah alasan mengapa sangat fleksibel dan mengapa ada begitu banyak perpustakaan yang berguna (IMO).
Nadir Sampaoli
6

Ruby telah ada jauh lebih lama daripada rails, jadi biarkan saya letakkan di sana di dunia itu Ruby != web, meskipun ia melakukannya dengan sangat baik. Ada sejumlah sistem yang berhubungan dengan hal-hal yang dapat dan memang dilakukannya. Sepertinya seluruh kerangka Rails menelan seluruh dunia Ruby. Dan ya, saya adalah penggemar Ruby.

Python di sisi lain memiliki banyak hal untuk itu, dan telah terintegrasi dengan hampir semua hal di Linux. Itu memberitahu saya mungkin cukup mudah untuk dimasukkan ke dalam program yang lebih besar (dibandingkan dengan Ruby, Java, dll.). Ada cukup banyak infrastruktur Linux Ubuntu yang ditulis dengan Python, yang memberi tahu saya bahwa Python memiliki aplikasi dalam pemrograman sistem. Saya mendengar kerangka webnya sangat bagus, saya belum bermain dengannya.

Yang mengatakan, baik Ruby dan Python adalah bahasa yang sama-sama mampu, dan Anda akan menemukan mereka membuat hidup Anda jauh lebih mudah. Ruby memiliki lebih banyak kepala web di komunitasnya, tetapi itu bukan keseluruhan komunitas. Saya sudah menggunakannya di sejumlah proyek infrastruktur juga.

Berin Loritsch
sumber
5

Ini adalah kasus khusus dari " Urutan Pembelajaran Bahasa Pemrograman Ideal" dan pertanyaan serupa . Apa yang Anda butuhkan bukanlah "bahasa yang sempurna", Anda membutuhkan beberapa paradigma bahasa dan berbagai pengalaman belajar untuk membuka pikiran Anda.

Saya tahu Anda mengatakan Anda mempersempitnya menjadi Ruby dan Python, tapi saya sarankan Anda mulai dengan Racket (Skema populer). Itu dibangun untuk belajar dan itu akan meregangkan otak Anda ke arah pemrograman fungsional, pemrograman interaktif dan pengetikan dinamis. Tidak ada pekerjaan (secara harfiah nol), komunitas yang sangat kecil, terfragmentasi, dan tidak ada kerangka web utama, itulah sebabnya Anda tidak akan terjebak di dalamnya; goreng otak Anda untuk sementara dan kemudian lanjutkan.

Kedua, Anda ingin mempelajari Ruby atau Python untuk pekerjaan yang memungkinkan. Saya sarankan Anda mempelajari keduanya. Mempelajari yang kedua dari keduanya akan jauh lebih mudah daripada yang pertama meskipun ada perbedaan. Adapun kemungkinan pekerjaan, firasat saya adalah bahwa ada lebih banyak pekerjaan Ruby karena Rails, tapi saya tahu ada juga beberapa pekerjaan Zope di bidang ini. Berinvestasilah di setidaknya satu dari mereka, tetapi juga memeriksa yang lain setidaknya cukup lama untuk membangun sesuatu yang kecil.

Jujur, Anda mungkin akan belajar lebih banyak minggu pertama Anda di pekerjaan dengan salah satu dari mereka daripada yang pernah Anda pelajari sendiri; mereka berdua memiliki ekosistem besar dengan banyak alat, budaya, dan idiom.

tl; dr: Keduanya dan Skema.

Jesse Millikan
sumber
1
+1 Yang saya lihat adalah "bahasa yang sempurna" dan "skema". :)
dietbuddha
1

Saya juga berasal dari latar belakang Java / C ++ dan telah memprogram dalam Python dengan framework Django selama 4 bulan terakhir dan ini sangat bagus. Setiap kali saya memiliki masalah atau pertanyaan, saya dapat menemukan penjelasan pada posting yang ada. Saya tidak dapat menjamin Ruby karena saya belum menggunakannya, tapi saya pasti akan mencobanya ketika saya punya waktu.

Saya pribadi suka bagaimana Anda dapat melakukan banyak hal dengan Python karena memiliki banyak fungsi berguna bawaan.

chiurox
sumber
1

Pilihan id untuk Ruby. Saya berasal dari .Net dan C # background, mencoba Python terlebih dahulu, tetapi Ruby hanya membuat saya terpesona =)
Saya menulis banyak hal sistem di dalamnya, dan beberapa Rails dev to. Ia mampu sebagai Python dalam pemrograman sistem, dan mengagumkan di web. Dan itu terasa lebih halus bagiku ..

Alexey Anufriyev
sumber