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.
Jawaban:
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.
sumber
Saya hampir tidak pernah menggunakan Ruby, tapi ini kesan saya tentang Python:
Dua hal itu menonjol bagi saya.
sumber
object
). Juga,len(obj)
adalah jalan pintas untuk memanggilobj.__len__()
, danfor i in range
juga abstrak rincian operasional objek generator. Saya pikir / setara tetapi berbeda / lebih akurat.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.
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber
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 ..
sumber