Saya ingin belajar PHP untuk pengembangan web tetapi telah ditarik kembali karena komentar seperti berikut * :
- PHP bagus tetapi menghasilkan kode spageti
- PHP bagus tapi Python adalah materi pernikahan
- PHP tidak memiliki hal-hal yang Anda dapatkan dalam bahasa lain seperti C # atau Java
Tetapi untuk PHP5 saya telah melihat beberapa komentar yang menjanjikan. Jadi, pertanyaan saya adalah: Bagaimana tarif PHP5 dengan versi bahasa sebelumnya dan apakah cukup baik sekarang untuk belajar untuk pengembangan web.
* Komentar hanya untuk referensi agar tidak memicu perang api. Tidak ada perbandingan PHP dengan bahasa lain yang diminta di sini. Berikan komentar hanya di PHP5 dan bagaimana perbandingannya dengan versi sebelumnya.
Jawaban:
Saat membahas bahasa, dua kutipan Stroustrup ini selalu muncul di benak:
dan
Sekarang untuk pertanyaan yang ada. Sebagian besar kebencian sebagian besar diarahkan pada PHP4. PHP5 pertama kali dirilis pada Juli 2004 (beta setahun sebelumnya) dan versi terakhir PHP4 adalah 4.4.9 dirilis pada Agustus 2008 . Tidak ada alasan yang sah untuk menggunakan PHP4 lagi, kecuali tentu saja Anda memiliki beberapa aplikasi lawas. PHP4 tidak lagi didukung oleh grup PHP, dan kami semua berharap ini segera menghilang.
Kesenjangan antara dua versi lebih besar dari biasanya di antara dua rilis utama, karena mesin di belakang penerjemah ditulis ulang dari awal, dan termasuk model objek baru. Rilis PHP5 kira-kira bertepatan dengan rilis MySQL5, sebuah perbaikan besar dari MySQL. PHP biasanya digabungkan dengan MySQL dan versi kelima dari keduanya membahas beberapa masalah dan membawa mereka ke kecepatan dengan kompetisi. MySQL juga tunduk pada komentar FUD , tetapi, yah, itu adalah basis data di belakang Google AdWords .
PHP 5.3 adalah rilis utama dalam segala hal kecuali nama. Banyak fitur yang dimaksudkan untuk PHP6 ditemukan di 5.3 dan untuk setiap 5.2 pengembang di luar sana, saya sangat menyarankan untuk bermigrasi ke 5.3+ lebih cepat daripada nanti. Rilis saat ini, 5.4, mencakup beberapa fitur luar biasa (antara lain):
Sekarang untuk komentar spesifik Anda:
Itu sama sekali tidak benar. Tidak ada bahasa yang menghasilkan kode apa pun, selalu tergantung pada pengembang untuk mengacaukannya, kode spageti dimungkinkan di setiap bahasa di luar sana. Yang benar adalah bahwa PHP memiliki entry barrier yang sangat rendah dibandingkan dengan bahasa populer lainnya, oleh karena itu jauh lebih mudah bagi pengembang yang tidak berpengalaman untuk menulis kode yang buruk (tetapi berfungsi). Tetapi itu adalah efek samping dari setiap bahasa yang mudah dipelajari.
Selain itu, PHP tidak menerapkan gaya atau paradigma tertentu, dan Anda selalu dapat memutuskan apa yang harus dilakukan. Saya selalu menganggap ini sebagai hal yang baik, sementara yang lain melihatnya sebagai titik kritik yang valid. Anda harus memutuskan sendiri.
Ya itu. Dan bahasa tujuan-umum X kekurangan banyak hal yang Anda dapatkan di PHP. Seperti menjadi portabel di seluruh sistem operasi DAN lintas server http, dan dukungan untuk setiap perpustakaan pihak ketiga yang dapat dibayangkan yang akan berguna dalam lingkungan pengembangan web. Anda harus memahami bahwa PHP tidak kekurangan hal-hal penting , jika itu PHP akan mati lama. Perbandingan antara bahasa serba guna X dan bahasa serba guna lainnya dengan PHP adalah fallacy, apel dan jeruk. Meskipun PHP menawarkan beberapa fasilitas untuk mendukung gagasan bahwa itu untuk tujuan umum, bukan, itu adalah bahasa web.
Anda harus ingat bahwa jalur evolusi PHP sangat berbeda dari bahasa tujuan umum X : PHP tumbuh dan berkembang, itu tidak dirancang. Setiap kali fitur ditambahkan ke bahasa keluar dari kebutuhan aktual, tidak sesuai dengan beberapa cita-cita imajiner dari apa bahasa seharusnya. Bahasa adalah alat pertama dan terpenting, dan PHP sangat sempurna.
Saya tidak memiliki apa pun yang bertentangan dengan bahasa tujuan umum X , saya semua memilih alat yang tepat untuk pekerjaan itu. Saya selalu mencampur dan mencocokkan, dan saya mengkode dalam Java dan Python juga, kadang-kadang paralel dengan PHP. Tapi PHP adalah satu-satunya yang pernah saya pertimbangkan untuk menikah. :)
Jika Anda mempertimbangkan untuk memulai dengan PHP, tentu saja Anda harus mulai dengan versi stabil terbaru, seperti yang Anda lakukan dalam bahasa lain.
sumber
PHP telah "cukup baik" untuk pengembangan web untuk waktu yang lama . Seperti bahasa pemrograman apa pun, kualitas kode bergantung pada keterampilan pengembang menulisnya.
Satu kritik umum terhadap PHP adalah fleksibilitasnya membuatnya mudah bagi pengembang yang tidak berpengalaman untuk menulis kode yang buruk atau "spageti". Ini sebagian besar karena ia mencoba untuk secara simultan merangkul sejumlah paradigma yang kadang-kadang konflik, diimplementasikan dengan buruk, atau tidak bertautan dengan baik.
Server-side scripting (PHP) disandingkan dengan kode sisi-klien (HTML + Javascript) tanpa modularitas adalah umum, hampir dianjurkan, sehingga merugikan kejelasan & keterbacaan.
Ini umumnya ditulis dalam gaya imperatif, tetapi menyediakan mekanisme untuk orientasi objek. Ini dengan mudah menghasilkan gaya campuran dan sering dapat menyebabkan desain yang buruk.
Desain berorientasi objek (menurut saya) kurang didukung di PHP4. Ini adalah salah satu area yang ditingkatkan secara signifikan oleh PHP5 (misalnya dengan pengubah akses, kelas abstrak, resolusi ruang lingkup yang ditingkatkan ).
Pengetikan dinamis PHP memungkinkan kesalahan run-time yang bisa dihilangkan dengan pengecekan tipe statis. Ini melekat pada desain semua versi PHP dan tidak akan berubah dalam waktu dekat; beban memvalidasi jenis objek diserahkan kepada programmer.
Perubahan dalam model OOP PHP5 melakukan banyak hal untuk mendorong desain yang baik bergerak maju, tetapi jangan menambahkan disinsentif untuk mencegah praktik buruk yang disebutkan di atas.
sumber
PHP memiliki beberapa masalah signifikan dalam dirinya sendiri, tetapi itu terutama dari variasi gangguan: Perpustakaannya tidak konsisten dan agak skizofrenia, tidak memiliki string sebagai objek kelas satu, hal-hal seperti itu. Itu tidak memaksa Anda untuk menulis kode yang buruk, dan itu bekerja dengan cukup baik untuk apa yang dilakukannya - menulis halaman web. PHP Anda akan sebaik yang Anda perjuangkan; sangat mungkin untuk menulis PHP yang sangat prosedural dan terlihat seperti kode C, dan sangat mungkin untuk menulis PHP yang terlalu Berorientasi Objek dan terlihat seperti Java. Sebagai seseorang yang berkembang dalam PHP setiap hari, saya suka beberapa hal tentangnya dan membenci beberapa hal tentangnya dan tidak bisa menunggu beberapa fungsi 5.4 (seperti Ciri dan fungsi waras mengembalikan dereferencing), tapi saya dengan sepenuh hati mendorong seseorang yang berpikir untuk memilih itu untuk melakukannya.
sumber
php5 adalah versi yang jauh lebih baik dari php4.
Kebanyakan tetapi tidak semua kode php4 bekerja di php5.
Apa yang benar-benar berubah adalah Object Model yang jauh lebih baik, yang memperbaiki banyak keterbatasan dan keanehan yang melekat dalam implementasi OO sebelumnya, tetapi, yang sebagian besar tidak sesuai dengan versi sebelumnya.
Dokumen di sini
Komentar lain memiliki validitas tetapi bukan "tidak jalan"
"PHP itu bagus tetapi menghasilkan kode spaghetti" - Anda dapat menghasilkan semua jenis pasta dalam bahasa apa pun, tetapi, php, tidak melakukan apa pun untuk mencegah pembuat kode yang tidak berpengalaman menulis sarang tikus dari kode tidak terstruktur. Sebaliknya Anda dapat menulis kode yang bagus dalam bahasa apa pun, programmer yang terampil tidak memiliki masalah menulis php terstruktur dengan baik.
"PHP itu bagus tapi Python adalah materi perkawinan" - Ini bahasa yang bagus tetapi ada beberapa kerangka kerja web yang beragam yang semuanya memiliki poin yang sangat bagus, tetapi, tidak ada yang benar-benar lepas landas, yang semuanya baik-baik saja, tetapi ada Python / Kerangka kombinasi pilihan Anda akan selalu menjadi keahlian khusus.
"PHP ketinggalan barang yang Anda dapatkan dalam bahasa lain seperti C # atau JAVA" - php memiliki dukungan pustaka yang paling beragam dan diimplementasikan dengan baik dari bahasa apa pun kecuali perl. Ada beberapa tempat kosong seperti analisis statistik, dan, pemrosesan vektor. Tetapi umumnya jika Anda ingin melakukan sesuatu, pencarian cepat PEAR akan menemukan perpustakaan yang melakukannya. Bahasa itu sendiri lebih sederhana daripada C # atau Java - tetapi kesederhanaan dari sintaks dasar ditambah "Mengetik Bebek" berarti Anda dapat melakukan apa saja di php yang dapat Anda lakukan di Jawa dengan cara yang lebih mudah dibaca dan elegan.
sumber
strip_tags
vsstripslashes
. Saya berpendapat C tidak menunjukkan masalah ini, namun sudah ada sedikit lebih lama. ;)