activo | asset management system

Thursday, March 01, 2007

Java vs PHP

Kemarin, I have a good discussion with my friend about Java technology compare with PHP. Lets take a look.
[[[ Chat sana-sini dulu, bla... bla... bla... ]]]
Friend: udah... kantor lu racunin aja untuk pindah ke JAVA, he3x
Me: ga mungkin banget... produk2 kantor yg udah pake dotnet banyak ... dan sekarang sudah pada runing
F: kan bisa migrasi sebagian2.. pake webservice, he3x
M: gw kalo bisa nyetanin malah pake PHP... lebih ringan
F: :)) tapi PHP gak bisa enterprise
M: PHP khan bisa pake oracle
M: erp pake PHP jg udah bayak
F: no .. no.. no.. enterprise bukan masalah db , tapi masalah maintainability. dan masalah komunikasi dengan beragam device yang ada di perusahaan itu .
F: walau udah banyak.. tapi sedikit banget yang jadi pilihan bagi perusahaan2
F: karena dari segi pengembangan emang cepat
F: tapi kalo dari segi maintain minusnya banyak..
F: lu gak bisa extend kelas dll.
M: hehehe... hebat juga lu jawabnya...
F: padahal misalnya ada fitur baru yang mau ditambahin
F: hanya variasi dari fitur yang ada
F: sebetulnya bisa disolved dengan extend.
F: tapi karena gak ada, jadinya harus copy and paste terus di ubah
F: waktu nambah emang gak repot
F: tapi begitu variasi nya udah banyak..
F: terus lu mau ngerubah di perilaku dasarnya
F: lu harus ngerubah satu2..
F: padahal kalo hasil extend lu ngerubah di kelas yang dia extend aja
F: PHP atau java itu tools
F: tools itu harus dilihat dimana penggunaanya
F: kalo gak tepat, tools sebagus apa pun bisa sangat mengecewakan he3x
M: wah.. ga mudeng gw

22 comments:

  1. emangnya PHP gak bisa extend kelas? http://id.php.net/manual/en/language.oop5.basic.php

    atau bukan itu yang dimaksud?

    ReplyDelete
  2. wageslave10:09 AM

    > F: no .. no.. no.. enterprise bukan masalah db , tapi masalah maintainability. dan masalah komunikasi dengan beragam device yang ada di perusahaan itu.

    Maintainability sangat sangat tergantung pada skill si developer. Saya justru lebih sering melihat spaghetti-classitis-oop crap di Java. Sayangnya ya kebanyakan developer PHP itu agak2 kurang gitu. Lihat saja source Joomla atau Wordpress, what a total mess.

    > F: lu gak bisa extend kelas dll.

    Wrong.

    > F: sebetulnya bisa disolved dengan extend.

    I prefer interface inheritance.

    > F: PHP atau java itu tools
    > F: tools itu harus dilihat dimana penggunaanya

    Exactly. It seems to me that your friend has contradicted himself.

    ReplyDelete
  3. Berhubung teman saya tidak ingin diketahui identitasnya(Alien dari planet JAVA), berikut ini jawabannya.
    F : Right.. semenjak PHP 5 atau PHP 4 gw lupa memang PHP udah menyediakan fasilitas Extends
    F : bahkan semenjak PHP 4 kalo gak salah PHP udah bisa manggil kelas2 JAVA
    F : my bad, i was talking the older PHP..
    F : disaat JAVA baru mulai dan PHP sudah berkembang, PHP tidak memasukkan fasilitas ini karena memang dirasa saat itu tidak perlu
    F : makanya programmer JAVA lebih mengenal fasilitas ini terlebih dahulu dibanding programmer PHP
    F : yang secara tidak langsung mempengaruhi perkembangan orang tersebut sendiri terhadap cara dia melakukan pemrograman
    F : untuk sedikit lebih jauh di topic ini. Sebetulnya gw sendiri juga lebih prefer pake interface daripada extends
    F : kenapa ?
    F : karena extends di JAVA kalo di 'misuse' bisa menjadi sangat2 evil
    F : gw punya article menarik tentang hal itu http://www.javaworld.com/javaworld/jw-08-2003/jw-0801-toolbox.html
    F : kenapa gw sengaja mengangkat extends.. karena menurut gw itu salah satu konsep yang paling menarik dan gampang untuk menjelaskan ke orang2 agar mereka tertarik untuk mencoba JAVA
    F : dibanding gw harus jelasin interface, polymorphism dll
    F : gw gak tahu gimana implementasi extends di PHP, apa dia punya keterbatasan yang sama dengan JAVA atau engga.
    F : tapi jika punya, maka dia juga harus menyediakan interface, agar fasilitas extends tidak diabuse oleh para pengguna PHP.
    F : Yang kedua, gw emang over simplify tentang masalah enterprise. Soalnya tergantung dengan konteks, gw lagi berbicara dengan siapa, orangnya seperti apa
    F : tapi gw fokus ke masalah maintainabilitynya JAVA aja yah
    F : betul, maintainibility amat tergantung sama skill developer dan good ama bad habbitnya dia
    F : tetapi yang gw suka dari JAVA adalah dia meng-enforce developernya untuk melakukan good habbit. memecah code kedalam kelas2, inheritance dan polymorphism.
    F : codeConvention dll
    F : sure, lu masih bisa menulis program lu 1000 baris hanya di satu kelas.
    F : tetapi kalau setelah melakukan hal itu lu melihat reference2 di internet.
    F : lu akan melihat bahwa yang lu lakukan itu its not rigth.
    F : and can be done with better ways, and achieved better things.
    F : dan language dan framework dapat membuat developernya terpaksa, terencourage untuk melakukan better ways tsb.
    F : contohnya VB jaman dulu ...
    F : kalo lu pernah bikin project dengan VB jaman dulu, gw yakin lu pernah numpuk2 form di satu tampilin, di hide show, hide show, send to back , bring to front, tanpa melakukan modularisasi ke code elu.
    F : It can be done, it work, but it's a hell to maintain
    F : tapi waktu JAVA mengeluarkan swing, lu dipaksa untuk memodularisasi code elu untuk mencapai hal itu.
    F : lu masih bisa sih implementasi seperti implementasi di VB.. tapi bakal banyak lampu kuning ditengah jalan, yang akan membuat lu mulai bertanya2. Sepertinya ada yang salah dengan cara gw, hehehe...
    F : dan di PHP sayangnya there's no such enforcement.
    F : jadinya gitu, kebanyakan developer PHP gak disiplin dan banyak spageti class

    ReplyDelete
  4. yang temennya maksud itu OOP secara umum, bukan spesifik java. tapi mungkin dia gak punya banyak pengalaman di bahasa pemrograman lain, jadinya menganggap kalau OOP itu fitur spesifik java. padahal hampir semua bahasa pemrograman populer jaman sekarang punya construct OOP, termasuk juga PHP.

    bedanya mungkin dalam paradigma. di Java, construct OOP lebih populer daripada misalnya prosedural atau fungsional. ini bukan karena di java gak bisa mrogram pakai konsep prosedural atau fungsional, tapi lebih karena pemrogram java diajari untuk menggunakan OOP.

    ReplyDelete
  5. wageslave2:16 AM

    > F : tetapi yang gw suka dari JAVA adalah dia meng-enforce developernya untuk melakukan good habbit. memecah code kedalam kelas2, inheritance dan polymorphism.

    Which is exactly the reason I avoid Java like the plague. Good habit bukan dari bahasa/platformnya, melainkan dari developernya. Java meng-enforce cara2 nya Sun, because after all it is a product of Sun. Whether their "good habits" are actually good, hanya Sun dan team marketingnya yang tau: "Have a cup of Java, it's Enterprisey."

    > F : codeConvention dll

    Just like oop, code convention is NOT specific to Java.

    The way I see it, untuk programmer newbie yang masih harus di babysit mungkin Java is acceptable. Other than that, Java is a language only a masochist would enjoy.

    A disgression: mari kita lihat sejarah fokus Java:

    - Di fokuskan untuk consumer electronics: That didn't work out.
    - Client side applets: They suck. Inferior compared to flash.
    - Desktop apps, WORA style: Clunky, bloated, not quite right in the look & feel dept.
    - Server apps: hmm...

    Java is a solution looking for a problem to solve, which, ironically, is now a problem in need of a solution.

    Flame on~

    ReplyDelete
  6. Anonymous9:59 AM

    Kalo gitu name other language that is better from java in whole category.

    Paling gampang liat aja bukti di dunia nyata. Java is everywhere, dari embeded sistem sampe enterprise. Teknologi yang paling sering dibicarakan sekarang ...

    AJAX = Asynchronus JAVAscript .....

    if 1 people think its bad because of its expirience, you just have to look at the rest of the world. Do they aggrees with YOU or not. And thats your most significant proof

    ReplyDelete
  7. Anonymous10:33 AM

    PHP5 sudah menerapkan OOP, Java juga bagus untuk fundamental OOP.

    Sekarang teknik programming disesuaikan dengan metodologinya aja. Kalau deadline udah deket ngapain juga pake/menerapkan MVC (kalau di PHP).

    Java sekarang banyak tandingan jika ruanglingkup kita developer. C# menurut saya lebih masuk akal di banding Java?, nah itulah awal di mana saya melihat bahwa Bahasa itu hanya jembatan untuk mencapai hasil.

    Processnya tergantung dari developer, pemilihan bahasa yang disesuaikan dengan infrastruktur dan lingkungan penggunaan juga harusnya di pikirkan pula.

    ReplyDelete
  8. wageslave11:29 AM

    > Kalo gitu name other language that is better from java in whole category.

    Python, Ruby, Haskell, Erlang and LISP to name a few. They're a whole lot better than Java language-wise.

    > Paling gampang liat aja bukti di dunia nyata. Java is everywhere, dari embeded sistem sampe enterprise.

    Terbukti, Java is better at marketing than creating language. Sun sendiri mengakuinya.

    > AJAX = Asynchronus JAVAscript

    Hahahahaha. JavaScript has NOTHING to do with Java. Netscape waktu itu hanya ingin mendompleng nama Java yang mulai menanjak (waktu itu) see this article.

    > if 1 people think its bad because of its expirience, you just have to look at the rest of the world. Do they aggrees with YOU or not. And thats your most significant proof

    I think the rest of the world pretty much agrees with me.

    Please die Java.

    ReplyDelete
  9. Anonymous1:51 PM

    ada kalanya suatu problem, pake solusi java lebih bagus, adakalanya pake php lebih bagus. tergantung pinter2nya implementasinya aja. kalo gw bilang php kenapa lebih cepat, karena implementasi API lebih banyak yg native(pake C/C++ atau mungkin ada yg pake assembly), dan bukan pake php murni. kalo java, justru kebanyak an library dan API malah diimplementasi pake java murni (100% pure java) dan ini yg kadang dijadikan kebanggaan. gw J2EE developer, juga PHP developer. belum tahu yah PHP juga ada yg enterprise. hanya saja dia gak kayak j2ee, php versi 5 sudah bisa utk enterprise. tapi apakah berlabel EE itu berarti harus punya appserver kayak J2EE?

    jadi, kalo dimana2 jadi banding2an kayak gini, gw buktikan sendiri itu bukan masalah di teknologi apa yg diperdebatkan, tapi itu lebih pada masalah orang2nya aja. bisa kagak sih? kalo kagak bisa, gimana supaya bisa? belajar dong, experiment, ngoprek, produktif lah gimana gitu.

    so, ngapain ribut soal ginian?
    gak akan selesai deh.

    piece...

    ReplyDelete
  10. ferdhie12:03 AM

    maintainability di java:
    java itu mudah dimaintain soalnya ada IDE yang powerful, coba develop java pakai vim, dijamin puyeng...

    php itu emang asalnya bukan buat enterprise, eh, kok sekarang dibikin enterprise2 an.

    php emang bisa inheritance, tapi pass by reference di PHP4 nyebelin. akhirnya nyerah OOP di PHP.
    tapi kalo cepet2 an bikin aplikasi web, saya yakin PHP lebih cepet

    btw, Javascript itu bukan Java
    salam kenal :p

    ReplyDelete
  11. This comment has been removed by the author.

    ReplyDelete
  12. Advanced PHP Programming
    By George Schlossnagle

    A programming language needs to meet the following six criteria to be usable in business-critical applications:

    Fast prototyping and implementation

    Support for modern programming paradigms

    Scalability

    Performance

    Interoperability

    Extensibility

    The first criterionfast prototypinghas been a strength of PHP since its inception. A critical difference between Web development and shrink-wrapped software development is that in the Web there is almost no cost to shipping a product. In shipped software products, however, even a minor error means that you have burned thousands of CDs with buggy code. Fixing that error involves communicating with all the users that a bug fix exists and then getting them to download and apply the fix. In the Web, when you fix an error, as soon as a user reloads the page, his or her experience is fixed. This allows Web applications to be developed using a highly agile, release-often engineering methodology.

    Scripting languages in general are great for agile products because they allow you to quickly develop and test new ideas without having to go through the whole compile, link, test, debug cycle. PHP is particularly good for this because it has such a low learning curve that it is easy to bring new developers on with minimal previous experience.

    ReplyDelete
  13. "A tool with a fool is still a tool, a fool with a tool is still a fool."

    ReplyDelete
  14. setuju dgn ija, apa tadi ? "A tool with a fool is still a tool, a fool with a tool is still a fool." Btw PHP & Java khan masih saudara ipar kalo gak salah ?

    ReplyDelete
  15. Anonymous12:24 PM

    Yang kamu bahas ini cukup menarik ya. Cuma gaya tulisanmu bikin kepalaku jadi pusing. Awal kalimat selalu diawali huruf kecil, terus bahasanya gaul campur bahasa Inggris ancur-ancuran (baca: malu-malu'in). Kalau bahasa gaulnya dikurangi (tensinya sedikit diturunkan) pasti lumayan enak dibaca (minimal buat saya hehehe).

    ReplyDelete
  16. # Anonymous
    "Yang kamu bahas ini cukup menarik ya. Cuma gaya tulisanmu bikin kepalaku jadi pusing. Awal kalimat selalu diawali huruf kecil, terus bahasanya gaul campur bahasa Inggris ancur-ancuran (baca: malu-malu'in). Kalau bahasa gaulnya dikurangi (tensinya sedikit diturunkan) pasti lumayan enak dibaca (minimal buat saya hehehe) "
    => Terima kasih atas masukannya. Maklum, baru belajar nulis blog. Hehehehe...

    Ada lagi komentar yang membangun. Saya kutip dari milis JUG.

    "Membandingkan dua hal mestinya harus melihat kasus per kasus, sekarang anda bandingkan ada 2 orang mau berpergian dengan kendaran apakah dia memilih naik bis atau naik city car?pasti jauh lebih efisien naik city car tapi kalo yang mau bepergian 50 orang?bagaimana kalo dipaksain naik city car?

    Think it!"

    Ok-ok

    ReplyDelete
  17. sikat gigi dulu ah....

    ReplyDelete
  18. saya tetep pilih php aja deh.. Kemampuan Java saya marjinal banget sih.. Huhuhuhu.

    ReplyDelete
  19. visit my site:

    http://alexferguson.blogspot.com

    ReplyDelete
  20. Anonymous7:34 PM

    Semuanya bagus, asal gratis........

    Ya gak!!!!!!!!!!

    ReplyDelete
  21. buset deh gak penting banget bahasannya... gw paling sebel kalo orang udah fanatik sama produk tertentu, macem udah bagus aja tu java.

    jadi inget kantor gw yg dulu aplikasinya pake java, web server hampir tiap jam bisa crash karna trashing gara2 memori disedot sama jvm. begitu denger friendster pindah ke php, kita ngikutin migrasi juga. eh servernya jadi ngacir bin lancar. bukan sepenuhnya salah si java seh, emang programmer javanya juga goblok! oop sih oop, tapi kodenya udah bukan kayak spagheti lagi, tapi udah kayak bihun!!!

    kalo gw bilang beneran gak penting deh, mo java kek, mo php kek, mo batak kek... yg penting MAN BEHIND THE GUN cong!!! gak usah fanatik buta gitu deh! pick the RIGHT TOOL for the right job!

    btw kayaknya temen lo hidup di jaman PHP3 kali, ngak tau apa2 soal PHP5...

    dan yg sebut2 soal AJAX. AJAX GOT NOTHING TO DO WITH JAVA YOU STUPID! baca lagi baek2: AJAX itu pake Javascript, bukan JAVA!!! belajar lagi yah nak, jangan bacot kalo belon tau apa2. dsr maniak goblok.

    ReplyDelete
  22. Anonymous8:52 PM

    Tetep bagusan PHP lah, apalagi PHP 5 yang udah OOP banget! Java lelet banget...

    ReplyDelete

Komentar Terbaru