Apa yang dilakukan Ruby dengan benar (atau apakah itu Rails)? [Tutup]

13

Sebagian besar bahasa pemrograman memiliki beberapa keputusan desain yang memengaruhi penggunaan dan penerapannya.

Sebagai contoh:

  • Python fokus pada pemeliharaan / keterbacaan kode dan memiliki lekukan menjadi bagian dari bahasa itu sendiri.
  • Niat Java adalah untuk menjadi lintas platform OOP 'lebih mudah' dan 'lebih ramah' daripada C ++
  • Objective-C dibangun sebagai pembungkus OO di sekitar C yang tidak mengetahui masa depan C ++ saat itu
  • Erlang dirancang untuk sistem yang sangat toleran dan bersamaan
  • PHP dirancang untuk menangani pembuatan halaman web secara dinamis
  • CoffeeScript dirancang untuk mengekspos bagian -bagian yang baik dari Javascript dan menambahkan gula sintaksis OOP dan menyembunyikan nuansa (global dll.) Dari JS 'di belakang layar' dll.

Setiap bahasa pemrograman mencoba untuk mengeksploitasi dan memanfaatkan ceruk IMHO tertentu. Di atas adalah perspektif saya tentang apa saja prinsip-prinsip dasar dari bahasa pemrograman dan yang mengatur evolusi mereka dan kemampuan adopsi secara luas. Tentu saja, ada banyak lagi, tetapi daftar ini hanya dimaksudkan sebagai contoh

Namun, saya telah berjuang untuk memahami prinsip-prinsip dasar yang mendasari Ruby dan popularitasnya yang semakin meningkat. Apa prinsip dasar Ruby yang membuatnya populer hari ini? Atau jenius seseorang yang merancang kerangka Rails? Jika yang terakhir itu Ruby membuat perancangan Rails lebih baik / lebih mudah / lebih cepat? Dalam arti apa?

Alasan yang paling sering dikutip sesuai penciptanya adalah '... ingin bersenang-senang mengetik bahasa pemrograman' - Saya tidak melihat itu sebagai alasan untuk menciptakan bahasa pemrograman baru sama sekali! Pemrograman benar-benar menyenangkan IMHO terlepas dari bahasa (masing-masing bahasa memiliki beberapa bagian yang buruk, tetapi salah satu bisa mengelilinginya atau hidup dengannya).

Jadi, niche apa yang (atau tidak) dieksploitasi Ruby yang tidak dieksploitasi oleh bahasa saat ini? Apa 'titik kuat' (USP) dari Ruby yang telah menyebabkan adopsi yang meluas? Apa yang dilakukan Ruby yang belum pernah dilakukan sebelumnya (atau sangat sulit)?

Saya bukan programmer Ruby, tetapi hanya Ruby noob dan karenanya kebingungan.

Penafian : Ini BUKAN perang api dan saya tidak mencari jenis jawaban bahasa Ruby vs Pemrograman. Saya mencari keputusan desain yang menjadi dasar Ruby yang menyebabkan adopsi luas. Ceruk apa yang dipuaskan Ruby untuk menjadi populer atau yang murni dikaitkan dengan Rails?

PhD
sumber

Jawaban:

11

Saya kira Ruby berangkat karena berbagai alasan:

  • Kerangka kerja Rails. Rails dirakit bersama banyak pola yang berguna untuk memudahkan pengembangan aplikasi web dan meningkatkan produktivitas pengembang. Bandingkan ini dengan pengembangan web Java yang verbose dan membosankan dan platform "one man show" .NET. Membuat aplikasi web weblog dalam hitungan menit adalah rahang yang menjatuhkan.
    Anda dapat melihat "efek Rails" pada banyak kerangka kerja web JVM baru seperti Grails, Play! dan Spring Roo.
  • Kisah sukses seperti Twitter dan Github. Startup harus segera diluncurkan ke pasaran dan dengan Rails, ini mungkin. Kisah sukses adalah bukti.
  • Bahasa pemrograman Ruby itu sendiri indah, kuat dan ekspresif. IMHO, Ruby adalah saus rahasia kesuksesan Rails.
    Lihatlah keindahan Mentimun dan Sinatra, keindahan DSL dilakukan dengan benar.
  • Komunitas yang bersemangat dan berani yang tidak takut untuk bereksperimen dan berinovasi.
  • (Pendapat pribadi dan mungkin bukan alasan vital) Itu dibuat di Jepang. Tidak ada yang mengalahkan citra "Made in Japan".
    Bagi saya, belajar bahasa pemrograman yang dibuat di berbagai negara sama dengan bertemu orang baru. Ini menyenangkan dan mendidik.
    Ruby / Jepang, OCaml / Perancis, Lua / Brasil, Lisp / Mars :)
Chiron
sumber
5
Penasaran dengan apa yang Anda maksud dengan "the one man show .NET platform", itu bukan ungkapan yang pernah saya dengar sebelumnya?
Carson63000
2
+1 untuk Lisp / Mars. Di mana tempat itu Haskell?
Adam
2
Haskell datang dari jauh di dalam bumi di mana sepasukan pengembang kecil kerdil seperti pengembang menciptakannya dengan maksud untuk membingungkan para programmer OO
Daniel Gratzer
1
@ Adam "Peradaban Atlantis"
Chiron
13

Ini tidak langsung menjawab pertanyaan judul, tetapi membahas beberapa poin yang diangkat (yaitu mengapa Ruby dibuat)

Kutipan dari Yukihiro 'Matz' Matsumoto, pencipta Ruby, yang dapat membantu menjelaskan apa yang mengilhami penciptaannya:

  • "Saya ingin bahasa skrip yang lebih kuat dari Perl, dan lebih berorientasi objek daripada Python"
  • "Saya berharap melihat Ruby membantu setiap programmer di dunia untuk menjadi produktif, dan menikmati pemrograman, dan menjadi bahagia. Itulah tujuan utama bahasa Ruby."

Jadi pada dasarnya, Matz menginginkan bahasa yang sangat berorientasi objek yang dirancang untuk kebahagiaan programmer.

SuperMaximo93
sumber
1
Ini sangat berorientasi objek. Maksud saya +di 1+1adalah metode.
bpromas
5

Ruby (togehter with rails) membuat konvensi lebih dari konfigurasi populer.

Cara lama (non ruby ​​on rails) adalah

  • Tentukan tabel database "persons" dengan bidang bernama "birthday"
  • Tentukan "orang" kelas bisnis dengan "ulang tahun" properti
  • menulis helperclass untuk mentransfer data antara database dan businessclass
  • buat gui yang bagaimana orang dalam daftar
  • buat gui untuk mengedit properti satu orang

Dengan konvensi konfigurasi , pekerjaan dasar untuk ini dilakukan secara otomatis:

  • Anda mendefinisikan seseorang dalam kode
  • tabel database, pemetaan, elemen-elemen gui, secara otomatis dibuat untuk Anda oleh juru bahasa yang hebat atau pembuat kode

contras: Anda harus mempelajari semua cenvention sehingga belajar ruby ​​on rails pada lari pertama lebih sulit.

pro: setelah Anda mengetahui konvensi itu, cukup mudah untuk memahami kode ruby ​​lain di kereta pengembang karena setiap orang dipaksa untuk mengikuti konvensi yang sama.

sementara itu konvensi tentang konfigurasi telah masuk ke dalam banyak sistem ramah lingkungan pengkodean

k3b
sumber
4

Pertama, Ruby adalah "bahasa saat ini". Mungkin maksud Anda "Bahasa yang populer saat Ruby dibuat pada 1995."

Saya suka Ruby karena alasan yang sama saya suka Perl:

  1. Ini kuat dan ekspresif. Saya dapat menulis tentang satu baris kode Ruby alih-alih lima baris Java atau C ++. Tidak ada pengulangan yang tidak bisa diperhitungkan dengan kerepotan minimal.

  2. Ini dinamis. Metode dan properti dapat dibuat pada saat run-time, jadi saya dapat membungkus objek di sekitar hal-hal yang didefinisikan secara eksternal, seperti tabel database, tanpa menduplikasi definisi hal-hal itu, dan tanpa membangun kembali aplikasi.

  3. Ada buku yang bagus tentang bahasa ( Ruby Pemrograman ) yang bisa dibaca dan komprehensif.

  4. Ada satu repositori untuk paket domain publik, dan antarmuka baris perintah yang nyaman ke repositori.

Tapi saya lebih suka Ruby daripada Perl karena lebih mudah dibaca.

Ada banyak halaman yang membandingkan Ruby dengan Python. Saya menyukai keduanya. Saya lebih suka Ruby, tetapi saya memiliki pengalaman terbatas dengan Python.

kevin cline
sumber
Saya ingat membaca itu diharapkan (yang akan menjadi Ruby) akan menjadi cukup baik untuk menggantikan Perl dalam kata pengantar Pemrograman Ruby.
Rig
@ kevin: Itu adalah beberapa fitur bahasa dan saya sangat menyadarinya. Namun, saya ingin tahu 'alasan untuk membuat Ruby' selain dari "Saya ingin bahasa yang menyenangkan / diketik dengan lemah" (atau apakah alasan itu sendiri cukup besar ??
PhD
1
@Nupul: Hal-hal ini tidak dilakukan oleh komite. Matz mengambil gagasan dan menulis Ruby. Dia menunjukkannya kepada beberapa orang lain setelah beberapa saat, dan beberapa dari mereka menyukainya. Begitulah LISP, Smalltalk, C, C ++, Pascal, Perl, Ruby, dan Python dibuat. Saya pikir itu sama untuk sebagian besar bahasa pemrograman. Hanya beberapa yang diciptakan oleh komite atau inisiatif perusahaan.
kevin cline