5 poin oleh GN⁺ 2025-02-24 | 7 komentar | Bagikan ke WhatsApp
  • Baru-baru ini penulis menemukan piringan hitam lama milik kakeknya, dan terkejut melihat media dari era sebelumnya itu masih dapat diputar tanpa masalah
    • Vinyl membawa perubahan besar dalam distribusi musik, memungkinkan pencetakan dan berbagi, dan tetap menjadi standar hingga sekarang
    • Cara berbagi audio telah berevolusi, tetapi metode awalnya masih tetap berfungsi
    • Di tengah dunia yang makin kompleks, banyak orang kembali ke vinyl karena menawarkan kesederhanaan, stabilitas, dan keberlanjutan
  • Di tengah perubahan teknologi web yang tak pernah berhenti, mudah untuk lupa bahwa situs web lama pun masih bekerja dengan baik
    • Situs web teks sederhana dari tahun 1990-an masih dimuat sama seperti dulu di browser modern
    • Situs web memperoleh fitur tambahan seiring waktu, seperti styling melalui CSS, interaktivitas melalui JavaScript, dan pembaruan real-time melalui WebSocket
    • Namun fondasinya tetap bertumpu pada halaman, formulir, dan sesi
  • Ruby on Rails muncul 20 tahun lalu sebagai pendekatan terpadu untuk membangun aplikasi web interaktif berbasis database
    • Menjadi fondasi bagi banyak perusahaan sukses seperti Airbnb, Shopify, Github, Instacart, Gusto, dan Square, dan saat ini bisnis bernilai triliunan dolar berjalan di atas Ruby on Rails
  • Alat yang efektif menyederhanakan pekerjaan rumit melalui abstraksi
    • Ambil contoh mobil: mengemudi dulu memerlukan pemahaman tentang sistem bahan bakar, timing, dan mekanik kopling, tetapi kini kebanyakan pengemudi bahkan tidak tahu mobilnya punya berapa gigi
    • Ruby on Rails mengemas praktik terbaik pengembangan web seperti sesi login, perlindungan CSRF, dan ORM database ke dalam kumpulan alat yang mudah diakses
    • Abstraksi ini memungkinkan pengembang fokus membangun produk, bukan rincian teknis
    • Saat ini kebanyakan pengembang tidak tahu isi cookie login, tetapi itulah yang menjalankan aplikasi mereka
  • Rails berhasil karena setia pada elemen dasar web
    • Menggunakan elemen dasar HTML seperti halaman, kolom input, dan formulir
    • Sebagai framework yang berpusat pada backend, Rails berfokus pada validasi, pemrosesan, dan penyimpanan data sehingga pembuatan formulir menjadi sederhana
  • JavaScript mulai menonjol setelah kesuksesan awal Rails
    • Perkembangan web selama 10 tahun terakhir pada dasarnya memberi situs web kemampuan seperti aplikasi iPhone, sambil tetap menjadi situs web
  • Next.js kini digunakan sebagai alat paling umum untuk membangun startup
    • Sebagai framework yang berpusat pada frontend, Next.js memungkinkan status loading dinamis, server-side rendering, dan pembangunan komponen yang kompleks
    • Perusahaan bernilai triliunan dolar lainnya juga dibangun di atas Next.js, dan aplikasi web ini lebih cepat serta lebih canggih daripada yang dibangun dengan Ruby on Rails
  • Next.js dan teknologi dasarnya, React, mendorong banyak inovasi web modern
    • Pada dasarnya, produk konsumen arus utama seperti Spotify, Netflix, Facebook, dan Stripe semuanya berjalan di atas stack ini
    • Ini memungkinkan pengembang membuat produk interaktif yang cepat dan sangat disesuaikan, melampaui batas standar web
  • Meski adopsi Next.js berlangsung cepat, Rails tetap relevan
    • Dari proyek independen hingga perusahaan AI, proyek-proyek baru masih terus memilih Rails
  • Faktanya, gelombang framework web JavaScript baru seperti Next.js justru membuat pembangunan aplikasi web menjadi lebih sulit
  • Alat-alat ini memberi pengembang lebih banyak kemampuan seperti rendering data dinamis dan interaksi real-time, tetapi sebagai gantinya tingkat abstraksinya menjadi lebih rendah
  • Next.js pada praktiknya bersaing dengan aplikasi iPhone native
    • Sebelumnya, startup memerlukan aplikasi iPhone untuk menghadirkan pengalaman pengguna yang canggih, dan membangunnya sering kali merupakan proses rumit yang membutuhkan beberapa pengembang spesialis
    • Next.js memungkinkan situs web mendekati kualitas aplikasi iPhone
    • Beberapa produk paling canggih saat ini, seperti Linear dan ChatGPT, diluncurkan sebagai aplikasi Next.js, dengan aplikasi mobile diperlakukan sebagai prioritas sekunder.
  • Rails telah berevolusi selama 20 tahun sejak dirilis dengan menambahkan interaksi JavaScript, pengelolaan pekerjaan backend, status loading, alat aplikasi real-time, dan lainnya
    • Juga mendukung pengembangan aplikasi mobile. Seiring pola aplikasi berkembang, Rails mengintegrasikan pola-pola tersebut ke dalam fitur framework sambil mempertahankan fondasi berbasis HTML
  • Sebagian besar aplikasi web masih terdiri dari formulir di dalam halaman
    • Papan lowongan kerja, sistem vendor, dan toko e-commerce termasuk di dalamnya
    • Next.js bisa membangunnya, tetapi membutuhkan waktu pengembangan tambahan dibanding Rails
    • Menggunakan framework paling mutakhir dapat menimbulkan ketidakstabilan melalui pembaruan yang sering, library baru, dan masalah tak terduga
    • Aplikasi Next.js sering bergantung pada banyak layanan pihak ketiga seperti Vercel, Resend, dan Temporal, sehingga meningkatkan risiko platform
  • Pengembang masih memilih Rails hingga hari ini karena, bahkan setelah 20 tahun, ini tetap menjadi cara paling sederhana dan paling terabstraksi untuk membangun aplikasi web
    • Pengembang solo dapat secara mandiri membuat aplikasi web dinamis dan real-time, sementara tim enterprise dapat membangun aplikasi dengan banyak model dan kontrol akses yang mendukung pengujian menyeluruh
    • Rails membantu tim kecil bekerja lebih cepat sambil menurunkan biaya pengembangan dan pemeliharaan
  • Penulis memiliki pengalaman menggunakan kedua framework tersebut
    • Ia membangun Find AI, startup AI yang didanai venture capital, dengan Rails
    • Sebagai mesin pencari, proyek itu mendapat manfaat dari kemampuan Rails menangani pekerjaan backend yang kompleks bersama kebutuhan frontend yang sederhana
    • Saat ini ia sedang mengerjakan Chroma Cloud untuk menjelajah dan mengelola dataset besar, dan Next.js memenuhi kebutuhan interaksi lanjutan serta pemuatan data
  • Rails mulai menunjukkan tanda-tanda penuaan di tengah gelombang aplikasi berbasis AI saat ini
    • Rails mengalami kesulitan di area seperti streaming teks LLM (large language model), pemrosesan paralel di Ruby, dan dukungan tipe yang kuat untuk alat coding AI.
    • Meski begitu, Rails tetap merupakan alat yang efektif
  • Vinyl memperluas akses terhadap musik dan mengubah industri
    • Seiring waktu kualitas audio meningkat, tetapi format awalnya tetap bernilai
    • The Köln Concert tetap populer terlepas dari bitrate
    • Hal yang sama berlaku di dunia teknologi: sambil menikmati produk canggih seperti Linear, situs bergaya 90-an seperti Craigslist masih bisa menghasilkan lebih banyak pendapatan.
  • Pada akhirnya, pengguna lebih peduli pada kegunaan produk daripada cara produk itu diimplementasikan
    • Kecanggihan tampilan bisa memudar, tetapi kegunaan akan bertahan

7 komentar

 
jhj0517 2025-02-24

Ternyata lebih banyak perusahaan yang memakai Ruby on Rails daripada perkiraan saya, seperti Airbnb, Shopify, dan Github!! 😊

 
thinkpad 2025-02-24

Saya baru tahu kalau GitHub dikembangkan dengan Rails. Memang benar kalau GitLab dikembangkan dengan Rails, sih... GitLab memang menggunakan Rails dengan baik, jadi cukup membekas dalam ingatan.

 
hahnlee 2025-02-24

Pada masa awal GitHub, mereka membangun jaringan dengan berpusat pada komunitas Rails.
https://read.first1000.co/p/-github

Agak berbeda, tetapi pernah ada kasus ketika Egor Homakov menunjukkan isu keamanan Ruby on Rails (Mass Assignment Vulnerability). Karena ini adalah masalah yang bisa dihindari jika developer berhati-hati, sempat ada perdebatan apakah ini perlu ditambal atau tidak. (Karena orang bisa saja menjawab dengan nada seperti RTFM.)

Metode yang dipilih Egor Homakov untuk melaporkannya adalah menyerang GitHub, yang saat itu juga dijalankan dengan Rails, bahkan Rails sendiri di-host di GitHub. Dan serangannya benar-benar berhasil.

Jadi ini menunjukkan bahwa bahkan aplikasi Rails terbesar pun tidak kebal terhadap kasus seperti ini.

Saya rasa ini adalah pilihan antara mempercayai developer (manajemen memori manual) vs tidak mempercayainya (GC, dll.), tetapi saya sering teringat hal ini ketika melihat jawaban seperti RTFM, atau dalam keamanan ketika orang berharap bahwa "kalau sudah tahu, nanti akan melakukannya dengan benar".

https://news.ycombinator.com/item?id=3666564

 
thinkpad 2025-02-25

Terima kasih. :)

 
thinkpad 2025-02-24

Terima kasih.

 
GN⁺ 2025-02-24
Opini Hacker News
  • Saat ratusan orang sedang membaca artikel ini sekarang, kalian sebenarnya mengaksesnya melalui Mac Mini yang ada di atas meja saya

  • Saya suka aplikasi web yang hanya berisi formulir CRUD. Ini tidak cocok untuk semua masalah, tetapi bekerja sangat baik untuk banyak domain masalah yang berinteraksi dengan dunia nyata. Semacam pendekatan "jika ingin mengecek apakah ada janji temu, lihat saja daftar janji temu"

    • Di sisi lain, pola "aplikasi" yang bercampur dalam kalender terpadu atau dasbor juga berguna. Semua itu juga bisa dibangun di Rails. Namun, kesederhanaan aplikasi CRUD itu menarik
    • Dengan gaya apa pun, Anda bisa membangunnya memakai teknologi yang diinginkan, tetapi Rails tampaknya lebih menyukai "1 model = 1 konsep = 1 entitas REST"
    • Library seperti Next.js tampaknya lebih menyukai "1 tugas/tampilan = konsep campuran = 1 layar spesifik"
  • Hal yang aneh dari komunitas Ruby/Rails adalah separuhnya diam-diam mengerjakan pekerjaannya, sementara separuh lainnya tampaknya harus secara berkala meyakinkan orang bahwa Rails belum mati

    • Tidak semua hal membutuhkan AI
  • Rails mulai menunjukkan usianya di tengah gelombang aplikasi AI. Ia kesulitan dengan streaming teks LLM dan pemrosesan paralel

    • Dalam pengalaman saya, itu bekerja sangat mudah dengan Hotwire. Saya sedang menjalankan antarmuka chat agen streaming tanpa masalah di aplikasi Rails dengan ribuan pengguna
  • Saya merekomendasikan Django + gevent. Ini memakai sistem tipe Python, dan cocok untuk streaming serta pemrosesan paralel yang terikat IO. Ini tidak cocok untuk pemrosesan paralel yang terikat CPU, tetapi itu kurang penting dalam aplikasi web

  • Dimungkinkan untuk membangun dan memelihara meta web framework seperti RoR dengan Ruby, Django, dan bahasa D

    • Go dan Rust adalah bahasa yang luar biasa, tetapi saya penasaran mengapa keduanya belum bisa menghasilkan framework seperti Rails. Saya penasaran apakah nanti akan bisa seiring waktu, atau ada masalah yang lebih mendasar
  • RoR itu kuat. Tetapi semuanya berubah terlalu cepat, jadi terasa seperti kita akan tertinggal jika tidak mengikuti teknologi terbaru

  • Saya pernah mendengar kritik bahwa alat coding AI kekurangan strong typing, tetapi dalam pengalaman saya, LLM bekerja dengan baik di codebase Rails

    • Rails punya konvensi yang kuat, jadi bahkan tanpa informasi tipe pun LLM bisa belajar dengan baik. Inti Rails tidak banyak berubah seiring waktu
  • Saya sedang memakai Django, dan semuanya terasa baru. Saya mengirim HTML dengan htmx + alpine.js, dan produktivitas saya meningkat pesat setelah keluar dari JSON REST API

  • RoR itu hebat. Ruby harus berkembang lebih jauh dari itu

    • Saya pernah bekerja di perusahaan yang harus memilih antara menulis ulang aplikasi Django ke Python 3 atau menulis ulangnya ke RoR, dan mereka memilih yang terakhir. Banyak ide yang masuk ke Django berasal dari RoR
    • Di bidang lain yang juga memakai Python, inovasi juga dibutuhkan. Dalam scientific computing, machine learning/AI, analisis data, dan sebagainya, Ruby perlu diadopsi seperti Rails
  • Pada 2010-an, pendekatan convention over configuration menjadi populer

    • Angular, EmberJS, Django, Rails sangat populer
    • Stack modern beralih ke backend kustom seperti React/NextJS
    • Saya penasaran apakah NextJS adalah pendekatan "convention over configuration" yang paling cocok untuk React