Saya tahu PHP dan Ruby.
Menggunakan klon PHP Rails (bukan karena pilihan), yang disebut Symfony, (yang tampaknya merupakan kerangka PHP terbaik), saya perhatikan bahwa itu adalah klon dari Rails. Saya pikir Symfony bodoh dan itu (SensioLabs adalah bisnis yang pintar) karena Rails sudah ada.
Terlepas dari proyek sumber terbuka yang menghasilkan uang, saya tidak mengerti mengapa orang membuat klon Rails di PHP, ketika Rails sudah ada. Mengapa tidak menggunakan Rails? Tentunya DHH memberi kode Rails dengan Ruby karena suatu alasan.
Menggunakan Symfony, saya perhatikan ada sesuatu yang terasa tidak benar tetapi saya tidak tahu apa itu. Saya belajar Rails melalui ebook Sitepoint omong kosong dan melupakannya, jadi sekarang saya belajar melalui ebook PragProg dan saya suka ebook itu. Saya tidak sepenuhnya tahu Rails, tapi saya mengerti cara kerjanya (terima kasih kepada Symfony). Saya akan senang menyelesaikan seluruh ebook sehingga saya bisa membuat 2 aplikasi Rails. Saya ingat Rails lebih menyenangkan daripada Symfony menggunakan ebook Sitepoint yang tidak bisa saya selesaikan, dan itu tidak ada hubungannya dengan sintaksis Ruby yang cantik.
- Mengapa Rails diberi kode dalam Ruby?
- Ada apa dengan klon PHP Rails, yang rasanya tidak benar?
- Apa yang dilakukan Rails, yang tidak dilakukan klon Rails?
sumber
Ruby on Rails
sedang diimplementasikan dalam PHP.Jawaban:
Rails awalnya diekstraksi dari karya DHH di Basecamp, yang ditulis dalam Ruby. Seiring waktu, pengembang inti Rails terus mengekstraksi dan mengembangkan lebih banyak fitur ke dalam Rails, dan akhirnya menjadi kerangka kerja yang lengkap.
Sejak Ruby tumbuh dalam kekuatan dan ekspresif selama bertahun-tahun, itu terus menjadi cocok untuk kerangka kerja, jadi itu juga terus menjadi bahasa yang ditulisnya. (Plus, "C # on Rails" atau "Java on Rails" tidak dapat memiliki aliterasi yang bagus.)
Ini tidak dapat benar-benar dijawab secara objektif, tetapi mungkin karena # 1. Perilaku dan internal Rails memanfaatkan banyak fitur yang ada di Ruby dan akan sulit untuk ditiru secara tepat di tempat lain. Sebagai contoh, PHP tidak memiliki metaclasses, yang sangat bergantung pada Rails.
Karena tidak semua orang punya waktu, anggaran, atau kecenderungan untuk belajar bahasa baru hanya supaya mereka bisa belajar kerangka kerja baru.
Sebagai analogi, jika ternyata Brainfuck memiliki kerangka kerja web yang sangat populer, apakah itu berarti Anda harus meninggalkan klien Anda yang belum menulis aplikasi mereka di Brainfuck? Itu bukan cara untuk menjalankan bisnis.
Pernyataan seperti "Saya tahu PHP dan Ruby" menunjukkan bahwa Anda mungkin belum sepenuhnya menghargai kedalaman, kekayaan, dan keistimewaan dari keduanya.
sumber
Pernah ada keputusan untuk memprogramnya di ruby. Keputusan desain ini bertahan hingga hari ini.
Perasaan yang Anda miliki, sulit untuk mengatakan pada wesbite seperti ini. Anda mungkin ingin bertanya kepada seseorang yang lebih akrab dengan Anda dan tahu lebih banyak tentang perasaan Anda atau bahkan membagikannya.
Klon persis Rails per definisi semua yang dilakukan Rails. Jadi ini kemungkinan besar akan tergantung bagaimana tepatnya klon dilakukan. Bagian yang berbeda akan menghasilkan perilaku yang berbeda. Misalnya untuk terjemahan ke bahasa lain, bahasa lain mungkin tidak memiliki fitur bahasa yang digunakan Rails on Ruby, yang kemungkinan besar akan menghasilkan perbedaan dalam desain dan kemudian dalam perilaku.
sumber
Ruby memungkinkan banyak meta-pemrograman, dan sintaksis permisifnya memungkinkan Anda untuk membuat API yang bagus yang tidak terlihat seperti pemanggilan metode sama sekali.
Sebagai contoh, ActiveRecord, Rail's Object Relational Mapper, melakukan kedua hal ini dengan baik. Pertama, ia menggunakan kemampuan meta-pemrograman Ruby untuk membuat metode dengan cepat sesuai dengan nama bidang dalam database.
Kedua, ActiveRecord memungkinkan Anda mendeklarasikan asosiasi ke objek: suatu
Person
kekuatanhas_many :books
. Itu has_many tampak seperti deklarasi, tapi itu sebenarnya pemanggilan metode. (Ruby membaca ini sebagaihas_many(:books)
.Ruby juga memiliki tujuan untuk membuat hidup programmer lebih mudah.
Ruby membuat hal ini mudah, jadi orang melakukannya. Bahasa lain membuat ini lebih sulit, atau hal-hal ajaib seperti ini secara eksplisit bukan bagian dari budaya. Django, kerangka kerja Python, memiliki jauh lebih sedikit meta magic karena tidak semudah itu dalam Python, dan Python sebagai bahasa yang condong ke arah "eksplisit lebih baik daripada implisit". (Saya tidak tahu banyak tentang budaya PHP atau kerangka kerja web di sisi itu.)
Saya pikir ini adalah beberapa alasan DHH jatuh cinta pada Ruby, dan dia menggunakan fitur bahasa ini dengan kekuatan di Rails.
sumber
Mengapa tidak menggunakan rel?
Saya akan menawarkan beberapa perspektif sebagai pengguna keduanya. Saya hobi program di Ruby / Rails dan saya menggunakan PHP secara eksklusif di tempat kerja. (Catatan: Saya tidak menganggap Ruby / Rails sebagai lingkungan penghobi, ini adalah bagaimana saya memilih untuk menggunakannya.)
Banyak orang memperlakukan Ruby / Rails sebagai grail suci pengembangan situs web karena popularitasnya dan karena 'berbeda'. Dalam banyak hal tentu saja tidak cukup untuk menganggap PHP sebagai sesuatu yang kuno.
Symfony tidak merasa seperti Rails karena PHP tidak memiliki beberapa sintaksis gula yang disediakan oleh rails. PHP membaik dalam hal ini dan penambahan penutupan 5.3 telah membuat perbedaan dalam berapa banyak dari kita menulis kode.
Jangan salah paham, saya suka Ruby dan saya suka Rails. Tetapi ketika Anda tidak ingin berurusan dengan hosting situs web yang kompleks atau mahal atau khawatir tentang kinerja atau menjadi 'pendarahan', PHP masih sangat relevan saat ini dan kerangka kerjanya juga sangat baik.
Pendapat Anda bahwa klon PHP rails tidak 'merasa benar' salah saya pikir, karena mereka bukan klon dan mereka tidak akan sama dengan Rails. Belajarlah untuk menikmati kesederhanaan dan keakraban dari solusi PHP.
sumber