
Terakhir kali saya berbicara dengan pengembang atau perusahaan, saya sering mendengar cerita yang sama dengan kata-kata yang berbeda - "kami menulis di Ruby, tetapi sekarang kami bergerak." Di satu sisi, tidak ada yang mengejutkan. Pengembangan adalah bisnis yang tidak stabil, sesuatu yang baru selalu muncul, setiap hari Anda harus menghabiskan banyak akal untuk tetap relevan.
Tetapi pada saat yang sama ada beberapa pengabdian kepada teknologi dan bahkan kultus instrumen. Beri tahu php shnik bahwa sekarang saatnya untuk pindah ke .NET, Anda akan mendengar "PHP luar biasa, ia menulis setengah dunia di atasnya", atau Anda akan mendapatkannya di wajah Anda.
Apa yang salah dengan Ruby, dan kemana perginya popularitas ledakannya? Saya berbicara dengan beberapa dokter gigi. Misalnya, Maxim Indykov dari Staply, yang timnya bergerak dari Ruby ke Go, dan dengan Alexei Kuznetsov dari GeekBrains, sebuah perusahaan yang memulai dengan kursus Ruby dan sekarang telah sepenuhnya meninggalkannya.
Mengapa Ruby bagus?
Maxim Indykov ( maks_ohs ): Sintaks yang
dipikirkan dengan matang di mana kode terlihat dapat dibaca sebagai mungkin. Anda dapat menulis dengan sangat jelas dan ringkas. Sejumlah besar perpustakaan diimplementasikan, koneksi yang tidak menimbulkan masalah.
Pavel Serezhin: Kelebihan utama ruby ββadalah rel, kerangka terbaik. Pola yang diterapkan dengan jelas, tidak seperti pada node.js, sekeren yang Anda mau. Pengkodeannya sendiri menyerupai bahasa Inggris.
Alexey Kuznetsov: Bahasa ini memiliki sintaks yang ringan dan sangat ringkas yang sangat cocok untuk menggambarkan DSL dan logika bisnis. Ambang masuk yang rendah, komunitas yang ramah. Calon yang baik untuk belajar sebagai bahasa pertama.
Mengapa Ruby buruk?
Maxim Indykov: Menuntut sumber daya, seluruh sejarah pengembangan bahasa disertai dengan optimasi serius dalam konsumsi memori. Dalam implementasi interpreter referensi (MRI), tidak ada multithreading nyata menggunakan beberapa core prosesor (GIL).
Pengetikan dinamis. Tetapi ini sulit untuk dikaitkan dengan minus, karena memungkinkan Anda untuk mempercepat pengembangan, meskipun dengan kehilangan kualitas.
Pavel Serezhin: Betapa baiknya ruby ββuntuk menulis sama menjijikkannya dengan membaca. Sangat sulit untuk memahami apa yang terjadi, tetapi Tuhan melarang, penulisnya menderita sindrom sepeda dan melakukan omong kosong - di sini setidaknya gantung diri Anda segera. Kadang-kadang mengetik statis tidak cukup.
Alexey Kuznetsov: Bahasa ini praktis tidak berkembang dengan latar belakang pesaing terdekatnya (JavaScript dan Python). Pertumbuhan ledakan minat di Ruby didasarkan terutama pada Ruby on Rails. Tapi sekarang kerangka Rails seperti dalam setiap bahasa Jawa populer, Ruby memiliki sedikit untuk ditawarkan. Tidak adanya bahkan mengetik statis opsional juga tidak menambah poin Ruby.
Katakan mengapa Anda memilihnya?
Alexey Kuznetsov: Saya beralih ke Ruby dengan C ++ sekitar 5 tahun yang lalu dan pada saat itu itu adalah pilihan yang masuk akal. Saya ingin membuat produk yang lebih dekat dengan pengguna akhir. PHP tidak memiliki reputasi terbaik. Di JS, ES5 + JQuery memerintah bola, dan sintaksis Python tidak menginspirasi.
Pavel Serezhin: Pertama-tama, karena relnya, sangat cocok untuk bidang pengembangan web, yang ingin saya lakukan. Dan menyenangkan untuk menulis dalam bahasa yang berorientasi pada pengembang.
Maxim Indykov: Komunitas benar-benar telah memengaruhi. Sejumlah besar tutorial tertulis berkualitas dan praktik terbaik. Kerangka rel yang membuat pengembangan sejelas mungkin dari awal proyek, hingga penyebaran. Banyak pendekatan dan implementasi untuk tes menulis: RSpec, MiniTest dan sebagainya.
Pada saat itu, apakah Anda berpikir bahwa ia memiliki masa depan?
Maxim Indykov: Ya, bahasanya telah terus berkembang (dan terus melakukannya sekarang). Ada sejumlah besar lowongan. Terhadap latar belakang php, semuanya tampak paling logis dan benar.
Pavel Serezhin: Saya tidak pernah berpikir bahwa ruby ββakan berada di atas, tetapi sebaliknya. Tampaknya selalu ada sedikit pengembang, dan ini akan menciptakan persaingan tiba-tiba. Benar - ini adalah salah satu minusnya, hampir tidak mungkin untuk masuk dari level Juni kecuali di ibukota.
Mengapa Ruby sekarang semakin tidak dibutuhkan?
Pavel Serezhin: Sekarang semakin sering mereka hanya memilih bahasa dan kerangka kerja yang lebih populer untuk membuat proyek baru. Baik ruby ββdan rails sedikit tertinggal dalam kinerja dan tidak mengikuti tren. Dukungan webpack dikirim ke rails, yang tidak banyak membantu - lebih mudah untuk membaginya menjadi dua proyek terpisah.
Alexey Kuznetsov: Node.js secara aktif mengkanibal niche aplikasi web, dan Go kehabisan semua jenis utilitas.
Maxim Indykov: Bagi saya tampaknya kerumitan tugas mempengaruhi saya. Solusinya memerlukan peningkatan kapasitas yang konstan, dan peningkatan penggunaan sumber daya, atau upaya untuk tidak berlari ke langit-langit, trik arsitektur.
Ruby dibuat seperti PL, yang disukai oleh pengembang, bukan bisnis. Apakah Anda pikir ketidakpopulerannya saat ini adalah indikator bahwa strategi seperti itu tidak berhasil?
Alexey Kuznetsov: Menurut saya situasinya sebaliknya. Bahasa-bahasa lain menarik hingga ke tingkat di mana pengembang senang untuk bekerja dengan mereka (penghancuran ES6, stream di Java8, nol kelemahan di Kotlin dan Swift, model kompetisi di Go).
Maxim Indykov: Bisnis ingin menghemat uang - sumber daya server. Ketika teknologi tersedia yang dapat menahan beban dengan perintah yang lebih besar, sedikit yang akan menolak untuk menghemat.
Ketika teknologi ini memiliki pengetikan yang ketat, yang merupakan nilai tambah untuk keandalan - ini adalah batu lain di taman Ruby.
Rasanya seperti inilah situasi di Rusia: ada dan sedang pengembangan php. Kemudian muncul popularitas lokal ruby, yang digambarkan sebagai pembunuh php, tetapi sering tidak memiliki argumen bisnis lain selain "Yah, itu benar-benar nyaman untuk menulis di Ruby". Semua takut dengan kurangnya spesialis. Dengan munculnya elixir dan go, argumen jauh lebih dimengerti.
Apakah Anda harus pergi dengan Ruby?
Alexei Kuznetsov: Saya tidak berpikir kita harus berjalan dengan Ruby, tetapi ada baiknya mencari alternatif.
Maxim Indykov: Seluruh pasar sedang bermigrasi. Perusahaan besar mengumumkan penggunaan Go. Tetapi kita berbicara tentang migrasi di bidang masalah tertentu. Pengetahuan tentang teknologi populer baru pasti harus dimiliki.
Pavel Serezhin: Sekarang js jauh lebih populer dan cukup nyaman untuk disemprotkan pada dua bahasa sintaks yang berbeda. Secara historis, saya memiliki lebih banyak jiwa untuk Bereaksi, jadi saya berpikir untuk meninggalkan tumpukan penuh ke depan.
Apakah dia akan menjadi salah satu dari bahasa yang sepenuhnya tidak diklaim?
Maxim Indykov: Tidak, untuk menulis prototipe dan MVP dengan cepat, di mana kemudahan implementasi diperlukan, ia tidak ada bandingannya. Ada bidang proyek yang belum dibajak yang perlu diimplementasikan dengan cepat dan efisien. Saat ketika diperlukan optimasi mungkin tidak datang, tetapi seperti yang Anda tahu, optimasi prematur adalah jahat.
Pavel Serezhin: Saya kira tidak. Untuk Ruby, masih akan ada reputasi tertentu dari bahasa yang sedikit tidak populer, ceruk dengan komunitasnya.
Alexey Kuznetsov: Ini masih jauh. Ada banyak situasi di mana proyek itu tidak begitu penting ditulis. Dan banyak pengembang siap untuk akhir pekan untuk mengumpulkan MVP.
Dan dengan memiliki tim yang penuh semangat, Anda dapat berhasil mengembangkan produk selama bertahun-tahun (GitHub dan GitLab - keduanya ditulis dalam RoR).
Ruby telah menulis jutaan baris kode yang harus dipelihara seseorang.
Tetapi jumlah proyek baru hanya akan berkurang seiring waktu. Saya pikir sekitar lima tahun bahasa masih ada.
Apa yang bisa membantu Ruby tetap populer?
Maxim Indykov: Fleksibilitas yang bagus untuk pengembang bahasa. Menerapkan perbaikan untuk bekerja dengan multithreading.
Pavel Serezhin: Meningkatkan kinerja bahasa itu sendiri dan rel. Dan menempatkan korporasi dengan banyak uang dukungan.
Alexey Kuznetsov: Ruby belum berubah menjadi labu. Gerbong lain baru saja muncul. Beberapa datang dengan mesin jet, yang lain bersinar lebih kuat.
Saya pikir pengetikan statis opsional (dan penyetelan yang dapat dilakukan di atasnya) dapat membantu.
Manakah dari YaPs populer sekarang yang paling cocok untuk para rubist?
Maxim Indykov: Sebaliknya, itu tergantung pada tugas, tetapi paling sering jawaban untuk pertanyaan ini adalah: elixir. Bahasa yang dibuat oleh orang-orang dari komunitas ruby ββ/ rails.
Alexey Kuznetsov: Secara umum, saya tidak dekat dengan membagi menjadi pengembang dengan bahasa pemrograman. Seharusnya tidak menjadi masalah bagi pengembang perangkat lunak untuk menguasai tumpukan baru pada tingkat yang cukup dalam 2-4 minggu.
Jadi saya akan melihat ke arah Go / JS / Swift tergantung pada tugas yang menjadi fokus pengembang. Ada Elixir dan Clojure, tetapi mereka bukan arus utama.
Pavel Serezhin: Hampir setiap
rubis yang menghormatinya pergi ke Golang. Jadi jawabannya sudah jelas.