PHP dan Ruby: bagaimana cara meningkatkan keduanya? dan, apakah itu layak? [Tutup]

8

Seperti yang mungkin Anda perhatikan dari judul, ini bukan pertanyaan "PHP atau Ruby", atau "PHP vs Ruby". Ini adalah pertanyaan tentang bagaimana memanfaatkan PHP + Ruby di bisnis yang sama.

Saya sendiri adalah pengembang PHP, saya suka bahasa karena kemudahannya dan saya khususnya menyukai ekosistem sumber daya yang mengelilinginya: Joomla, Drupal, Wordpress, Symfony2, Doctrine2, dll. Namun, bahasa itu sendiri terkadang sedikit mengecewakan kadang-kadang .

OTOH, Ruby terlihat seperti bahasa yang sangat indah dan —dari mempelajarinya secara dangkal dalam beberapa aspek — saya bisa mengatakan itu lebih ramping daripada Python sebagai bahasa semata. Namun, dari apa yang saya lihat hanya ada banyak RoR yang membuat noise, dan saya tidak terlalu suka RoR (terutama karena model layer-nya).

Sebagai Co-CEO dan CTO di perusahaan saya, saya mencoba untuk berpikir di luar kotak karena saya ingin mulai fokus pada sisi teknologi manusia dan melihat apakah waras menggunakan PHP dan Ruby. Berikut ini beberapa pemikiran acak:

  • Ruby folk tampaknya secara umum lebih cocok sebagai programmer daripada PHP folk (dalam hal rata-rata), saya tahu pernyataan sebelumnya agak basi karena PHP yang sangat bagus dan dirancang dengan baik dapat ditulis, tetapi saya akan mengatakan budaya programmer Ruby lebih baik daripada PHP.
  • Hal tentang Ruby adalah sepertinya lebih cocok untuk pengembangan yang cepat, saya tidak benar-benar tahu apakah ini hanya berlaku untuk RoR, tetapi saya tahu bahwa ada praktik tertentu (mungkin tidak begitu baik) seperti penambalan monyet yang memungkinkan bisnis kebutuhan akan dipuaskan lebih cepat.
  • Dari sudut pandang pemasaran (ya, terkadang Anda perlu meningkatkan BS pemasaran demi perusahaan Anda) Ruby tampak lebih baik sementara PHP membawa beberapa stigma.
  • PHP 5.4 membawa sifat , dan itu lebih baik / bersih daripada mixin. Itu benar-benar dapat membuat PHP sama rampingnya dengan Ruby —atau lebih banyak — untuk hal-hal tertentu.

Sekarang, secara konkret, pertanyaan saya:

  • Apakah seorang programmer PHP ingin belajar Ruby ?, saya tahu saya tahu, tetapi sebaliknya, apakah seorang programmer Ruby ingin belajar PHP ?.
  • Jenis proyek atau situasi apa yang lebih cocok untuk Ruby yang tidak cocok untuk PHP ?.
  • Apa sebenarnya ekosistem Ruby ?, selain dari RoR, saya belum melihat teknologi / kerangka kerja hyped lainnya (saya pernah melihat RSpec, tapi saya akui sebagai noob total tentang apa BDD sebenarnya terdiri dan implikasinya).
  • Andaikata ada beberapa jenis proyek yang ideal untuk Ruby, akankah ada saat yang lebih baik untuk memindahkannya ke PHP ?. Saya tahu PHP dapat menangani banyak hal, tetapi saya telah membaca bahwa Ruby memiliki keterbatasan ketika melakukan penskalaan (atau apakah itu RoR ?, atau apakah itu omong kosong untuk keduanya?).
  • Akhirnya dan yang paling penting, apakah waras untuk mempertahankan proyek dalam dua bahasa ?, atau apakah itu hanya bodoh. Seperti yang saya katakan, sepertinya Ruby lebih ramping dalam jangka pendek dan itu dapat membuat proyek terjadi dan berhasil, tetapi saya tidak begitu yakin tentang itu dalam jangka panjang.

Saya mencari wawasan terutama dari orang-orang yang tahu betul kekuatan dan kelemahan bahasa — lebih baik keduanya — dan ekosistem Ruby dalam praktik nyata, artinya: kerangka kerja dan aplikasi seperti yang saya kutip dari ekosistem PHP.

dukeofgaming
sumber

Jawaban:

7

Ingat, ketika membaca jawaban saya, pengalaman PHP saya (> 10 tahun) jauh lebih tinggi daripada pengalaman Ruby saya (beberapa minggu bermain dengannya; belum ada proyek langsung).

Apakah seorang programmer PHP ingin belajar Ruby?

Secara pribadi, saya datang ke Ruby sambil mencari bahasa yang lebih bersih untuk pengembangan web (terutama ketika menyangkut multibyte string awareness) dan skrip sisi server (skrip bash OSX saya sepertinya selalu memiliki satu atau dua niggle ketika dijalankan pada saya Server FreeBSD).

Sebelum mencobanya, saya telah bermain-main dengan Lisp, Perl, Python dan Node.js. Saya akhirnya meninggalkan Lisp karena kurangnya editor yang tepat (ini emacs atau tidak sama sekali, dan saya benci emacs dengan balas dendam), keanehan dalam membangun aplikasi web (ada alat, tetapi mereka tidak merasa alami untuk digunakan) dan quirkiness sesekali (Aku mengawasimu car,, cdrdan cons). Saya cepat-cepat menampik Perl sama seperti PHP ketika datang ke multibyte string awareness. Saya tidak terlalu menyukai Python (itu hanya rasa saja; saya sama sekali tidak punya alasan yang sah). Dan sementara menjanjikan, saya membelai Node.js sebagai terlalu muda dan overhyped. (Saya mempertimbangkan Erlang juga, tetapi tidak pernah melampaui tutorial.)

Sebaliknya, apakah seorang programmer Ruby ingin belajar PHP ?.

(...) Akhirnya dan yang paling penting, apakah waras untuk memelihara proyek dalam dua bahasa?

Saya hanya bisa berbicara sendiri di sini, tetapi semakin saya bermain dengan Ruby, semakin saya merasa ingin muntah setiap kali saya membaca atau menulis kode PHP.

Jenis proyek atau situasi apa yang lebih cocok untuk Ruby yang tidak cocok untuk PHP ?.

Apa pun yang melibatkan penanganan string UTF-8, misalnya - yang bisa dibilang termasuk semua yang berhubungan dengan web. Ini seperti, ya, di PHP ada mb_*fungsinya; dan Intlkelas - kelas; dan /upengubah preg_*fungsi; dan ... Sebagai rongsokan PostgreSQL, saya datang untuk mengambil penanganan UTF-8 sebagai yang diberikan. Ini adalah hal yang saya tidak ingin khawatirkan, terutama ketika datang ke perpustakaan, di luar masalah-masalah spesifik lokal seperti kasus dan pengumpulan.

(Omong-omong, Ruby tidak sepenuhnya sempurna dalam hal ini. Python sedikit lebih baik . Tapi saya lebih suka mixin. Dalam 15 tahun pengkodean, saya jarang perlu mengurutkan string non-ascii di luar database, atau case-handle di luar bit dan potongan transliterasi yang membuatnya menjadi URI.)

Script shell adalah hal lain. PHP juga dapat digunakan untuk hal-hal semacam ini, tetapi ketidakkonsistenan dan kekacauan bahasa membuatnya jauh lebih tidak menyenangkan.

Apa sebenarnya ekosistem Ruby ?, selain dari RoR, saya belum melihat teknologi / kerangka kerja hyped lainnya (saya pernah melihat RSpec, tapi saya akui sebagai noob total tentang apa BDD sebenarnya terdiri dan implikasinya).

Sebenarnya ada beberapa kerangka kerja selain Rails: Merb, Camping, Ramaze, Sinatra, dll. Hanya saja RoR mendapat banyak hype sejak awal.

Saya pernah membaca bahwa Ruby memiliki keterbatasan ketika melakukan penskalaan (atau apakah itu RoR ?, atau apakah itu omong kosong untuk keduanya?).

Begitu juga dengan PHP. :-)

Secara pribadi, saya pikir itu omong kosong untuk Ruby. Saat melakukan penskalaan, dalam bahasa apa pun, Anda melihat hambatannya dan mengerjakannya satu per satu. Dari sana, Anda mengukur secara vertikal dan horizontal.

Anda mengganti bahasa hewan peliharaan Anda saat yang tepat (saya tidak akan menjalankan server obrolan atau layanan keuangan berkinerja tinggi di PHP atau Ruby, misalnya). Tapi secara keseluruhan dalam pengalaman saya, bahasa bukanlah inti dari masalah saat penskalaan, tidak peduli seberapa lambat itu - arsitekturnya. (Jika bahasa adalah inti dari masalah, situs akan sebagian besar ditulis dalam C, C ++, C #, Java, Lisp, Erlang, dll. Masing-masing mengungguli PHP dan Ruby dengan satu atau dua urutan besarnya.)

Untuk RoR, saya tidak bisa mengatakannya. Saya hanya melihat ke permukaan saja. Saya sepenuhnya mengerti mengapa atau bagaimana RoR memuaskan desainer grafis atau mahasiswa CS. Itu menghina semua yang saya terima sebagai pengembang basis data.

Saya kemudian bertemu kata-kata kasar panjang oleh Zed Shaw (seorang pria yang menulis server web Ruby). Antara lain, ia mengejek pencipta Rails karena tidak bisa menjaga server produksinya berjalan rata-rata lebih dari 4 menit. (Ini telah membaik sejak itu.)

Denis de Bernardy
sumber
Saya sepenuhnya setuju bahwa setelah mempelajari dasar-dasar Ruby, PHP sekarang memberi saya mual dan muntah. Adapun Rails, inti dari Rekaman Aktif adalah menjadi ORM dan membiarkan pengembang, yang mungkin tidak berpengalaman dalam desain basis data, melakukan hal-hal dasar basis data sambil menjaga mereka keluar dari sebagian besar masalah. Jika Anda dapat menulis SQL dalam tidur Anda maka Rekaman Aktif akan merasa cukup membatasi dan bahkan mungkin "bodoh". Tapi saya pikir itu layak, jika hanya untuk membuatnya lebih mudah untuk menulis kode yang baik daripada menulis kode yang buruk, atau lebih buruk lagi, kode dengan lubang keamanan.
Michael Hampton
2

Terus terang pertanyaan Anda tampaknya tidak jelas bagi saya, tetapi saya akan mencoba menjawabnya.

Apakah seorang programmer PHP ingin belajar Ruby ?, saya tahu saya tahu, tetapi sebaliknya, apakah seorang programmer Ruby ingin belajar PHP ?.

Jangan tersinggung, tetapi pertanyaan ini tidak bisa dijawab. Itu benar-benar tergantung pada terlalu banyak faktor, banyak di antaranya terkait dengan kepribadian programmer. Jawaban mudah: Tentu saja, mengapa tidak? Ini satu alat lagi untuk membangun situs web.

Jenis proyek atau situasi apa yang lebih cocok untuk Ruby yang tidak cocok untuk PHP ?.

Sedangkan untuk proyek, keduanya sama-sama cocok (jika saya ingat betul, ruby ​​berjalan lebih lambat, meskipun ini perlu sedikit garam sejak AFAIK, stackchange dibangun dengan RoR [Saya tidak pernah membaca tolok ukur yang sebenarnya]). Situasi yang akan cocok satu lebih dari yang lain adalah jika Anda bermaksud menggunakan kerangka kerja tertentu, atau jika tim Anda terdiri dari orang-orang yang memiliki lebih banyak pengalaman dalam salah satu dari dua bahasa. Saya benar-benar tidak berpikir ada jenis proyek tertentu yang "ideal" untuk bahasa tertentu. Itu benar-benar bermuara pada spesifikasi masing-masing proyek (dan bahkan kemudian, perbedaannya akan halus).

Apa sebenarnya ekosistem Ruby ?, selain dari RoR, saya belum melihat teknologi / kerangka kerja hyped lainnya.

Ruby on Rails adalah bagian besar dari kesuksesan Ruby. Ruby tetap menggunakan bahasa yang tidak dikenal sampai RoR diluncurkan. Ada banyak proyek menarik yang dibangun di Ruby, tetapi tidak ada yang mendekati dalam hal keberhasilan & penerimaan oleh komunitas. Ada CMS yang dibangun di atas RoR yang cukup dikenal. Lovd by Less misalnya.

Andaikata ada beberapa jenis proyek yang ideal untuk Ruby, akankah ada saat yang lebih baik untuk memindahkannya ke PHP ?.

Satu-satunya kasus yang dapat saya bayangkan adalah setelah melakukan prototipe dengan Ruby, jika Anda merasa PHP akan menghasilkan pengembangan yang lebih cepat. Tetapi begitu sebuah proyek dimulai, bagaimana Anda bermaksud "memindahkannya ke PHP"? Port semua kode yang sudah ditulis?

Akhirnya dan yang paling penting, akankah waras untuk mempertahankan proyek dalam dua bahasa?

Jika Anda tidak memiliki bazoka mengarah ke kepala Anda, sama sekali tidak.
Jika Anda bermaksud mempertahankan dua proyek yang sama sekali berbeda dalam dua bahasa yang berbeda, maka tentu saja. Saya tidak berpikir Anda akan pernah pergi untuk jangka waktu yang lama dengan bahasa yang sama. Sebagai contoh, saya terus-menerus berpindah dari satu bahasa ke bahasa lain. Saya hanya menguasai sedikit, tetapi saya cukup tahu yang lain untuk keluar dari situasi apa pun (sampai sekarang). Saya pekerja lepas sehingga orang yang bekerja di perusahaan mungkin memiliki pengalaman yang berbeda. Tapi maksud saya adalah, mempertahankan proyek yang berbeda dalam bahasa yang berbeda adalah mudah (cukup) dan menyenangkan.

Xananax
sumber
2
Saya baru-baru ini membaca bahwa stackxchange dibangun di atas ASP.NET MVC. Bukan berarti itu germaine ke posting Anda, tetapi pikir saya akan menyebutkannya.
kinakuta
Anda benar, saya akan mengedit posting saya untuk memperbaikinya.
Xananax
+1 untuk "Jika kamu tidak memiliki bazoka menunjuk ke kepalamu, sama sekali tidak." Menggabungkan bahasa dalam proyek yang sama bermasalah karena setiap pemelihara proyek harus mengenal keduanya, dan sulit untuk menemukan pengembang yang cukup baik dalam kedua bahasa. Tentu saja, jika ada pemisahan yang jelas antara setiap bagian (seperti katakan back-end dan front-end) mungkin ada alasan. Tapi itu seperti masalah panggilan.
Carlos Campderrós
Saya tidak bermaksud satu proyek dalam kedua bahasa, tetapi memiliki beberapa proyek dalam PHP dan beberapa di Ruby.
dukeofgaming
Buruk saya kemudian. Saya tidak tahu apakah pertanyaan Anda tidak jelas atau jika saya berada di bawah pengaruh apa yang saya kerjakan (mesin markup di php dengan pratinjau dalam js - persis seperti stackxchange-, jadi dua parser dalam dua bahasa yang harus menampilkan yang sama persis hasil). Jika Anda bermaksud memiliki proyek yang berbeda dalam bahasa yang berbeda, tentu saja tentu saja. Saya selalu membutuhkan beberapa hari untuk mengambil bahasa yang belum pernah Anda gunakan dalam beberapa saat, tetapi kembali dengan sangat cepat.
Xananax
0

Saat membaca, ingatlah bahwa saya adalah Pengembang Ruby on Rails, dan menjawab dari sistem ramah lingkungan itu. Pandangan saya akan miring ke arah itu.

Apakah seorang programmer PHP ingin belajar Ruby ?, saya tahu saya tahu, tetapi sebaliknya, apakah seorang programmer Ruby ingin belajar PHP?

Sama sekali tidak, dalam banyak kasus. Bukan hanya karena saya tidak suka PHP (saya tidak, tapi saya menggunakannya), tetapi karena set alat memiliki perbedaan ideal mendasar. Ada banyak alat seperti rake dan rspec yang membantu beberapa untuk TDD di dunia ruby. Dalam kebanyakan tutorial tutorial ruby ​​(dan tentu saja rails) yang lebih dulu. Itu tidak berarti Anda tidak dapat melakukan ini di PHP, hanya saja konvensi berbeda. Dan perbedaan konvensional antara kedua bahasa itu, secara umum, langsung bertentangan.

Jenis proyek atau situasi apa yang lebih cocok untuk Ruby yang tidak cocok untuk PHP ?.

Aplikasi desktop, skrip shell, aplikasi MVC (rails lagi), dan aplikasi konsol kecil. Bukannya semua ini tidak dapat dilakukan dengan php, Ruby hanya memiliki dukungan yang lebih baik. Saat menulis aplikasi Rails (maaf) saya sering menulis satu skrip di ruby. Hal ini memungkinkan skrip deployment atau setup saya dalam bahasa yang sama dengan aplikasi saya, di mana dengan PHP saya bahkan tidak akan pernah mencoba untuk menulis skrip shell dalam PHP. Saya hanya akan menggunakan bash. Saya telah menulis aplikasi Ruby QT, dan aplikasi MVC (keduanya Rails dan bukan) dan ruby ​​dan itu sekitar lib hanya "bekerja lebih baik" untuk kasus-kasus itu.

Apa sebenarnya ekosistem Ruby ?, selain dari RoR, saya belum melihat teknologi / kerangka kerja hyped lainnya (saya pernah melihat RSpec, tapi saya akui sebagai noob total tentang apa BDD sebenarnya terdiri dan implikasinya).

Ini semacam kesalahpahaman. RoR populer karena melakukan pekerjaannya dengan baik, tetapi mungkin ada alat / tumpukan lain yang menggunakan ruby ​​pada intinya. Mereka kurang populer karena sedang memasuki ruang yang sudah memiliki alternatif. Saya suka menulis aplikasi GUI cepat di ruby. Tapi python, C #, VB, LISP, dll dll sudah bisa melakukan ini. RoR adalah game changer. Jadi itu populer. Hal yang sama dapat dikatakan untuk PHP, beri nama kerangka kerja PHP yang populer. Ada beberapa, tetapi hapus produk (seperti wordpress) dari daftar, dan Anda tidak pergi dengan banyak.

Andaikata ada beberapa jenis proyek yang ideal untuk Ruby, akankah ada saat yang lebih baik untuk memindahkannya ke PHP ?. Saya tahu PHP dapat menangani banyak hal, tetapi saya telah membaca bahwa Ruby memiliki keterbatasan ketika melakukan penskalaan (atau apakah itu RoR ?, atau apakah itu omong kosong untuk keduanya?)

Ini adalah pertanyaan yang sulit dan Anda harus bertanya, bahasa apa yang lebih baik untuk proyek saya? Saya tidak akan pernah menulis blog di Rails. Saya tahu itu contoh tutorial standar, tetapi jika Anda ingin blog maka wordpress adalah alat yang tepat. Hal yang sama berlaku di sini. Jika Anda mengalami contoh yang kuat tentang perlunya beralih bahasa dari ruby, batasan teknis yang akan Anda hadapi akan menghalangi PHP juga.

Akhirnya dan yang paling penting, apakah waras untuk mempertahankan proyek dalam dua bahasa ?, atau apakah itu hanya bodoh. Seperti yang saya katakan, sepertinya Ruby lebih ramping dalam jangka pendek dan itu dapat membuat proyek terjadi dan berhasil, tetapi saya tidak begitu yakin tentang itu dalam jangka panjang.

Ruby sangat bagus dalam jangka panjang. Kendala terbesar untuk kesuksesan jangka panjang bukanlah bahasa, tetapi pengembang. Untuk mempertahankan dua bahasa, itu tergantung pada bagaimana Anda mendefinisikan suatu proyek. Saya memiliki beberapa proyek yang memiliki aplikasi berat di rel, dan situs blog atau penjualan menggunakan wordpress / dupral / beberapa php. Saya menganggap mereka proyek yang terpisah. Saya akan mengatakan bahwa semakin banyak bahasa yang akhirnya Anda dukung, semakin sulit untuk menemukan pengembang yang baik di semua bahasa. Sebagai contoh, saya menggunakan dan merekomendasikan wordpress, tapi saya tidak berada di dekat "baik" dalam PHP seperti saya di RoR. Jika seorang klien benar-benar menginginkan setengah dari produk inti mereka dalam PHP dan setengahnya dalam RoR saya benar-benar harus mencari tahu mengapa, dan tergantung pada jawaban mereka kemungkinan akan menolak pekerjaan.

kapas
sumber