Kapan Java merupakan pilihan yang baik untuk pengembangan web? [Tutup]

35

Kapan Java merupakan pilihan yang baik untuk pengembangan web?

Tolong jangan katakan "Ketika Anda memiliki tim pengembangan yang hanya tahu Jawa."

Gulshan
sumber
5
Dapat ditanyakan seperti, fitur apa yang menjadikan Java sebagai bahasa pengembangan web saya?
Abimaran Kugathasan
1
Kelemahan kecil untuk menggunakan Java adalah kurangnya kerangka kerja dominan de facto di pasar. Belum ada kerangka kerja berbasis Java yang benar-benar naik ke atas tumpukan (seperti Struts telah kembali pada hari itu). Secara pribadi saya condong ke Spring MVC jika saya bekerja dengan aplikasi Spring atau Grails untuk hal lain (seperti yang dapat Anda lakukan di Jawa kapan saja).
Martijn Verburg
Tiba-tiba mendapat 25 poin dari pertanyaan ini!
Gulshan
Apakah kita menggunakan perangkat lunak opensource yang ada di akun?
Jonathan
2
"seperti Struts telah kembali pada hari": Apa yang salah dengan menggunakan struts hari ini (selain itu tidak modis lagi)?
Giorgio

Jawaban:

35

Mengingat banyak kerangka kerja yang tersedia, kematangan platform dll, saya tergoda untuk mengatakan "hampir selalu". Jadi, inilah beberapa alasan mengapa Anda sebaiknya tidak menggunakan Java:

  • sebagai toko MS murni, Anda mungkin lebih suka melakukannya dengan cara .net
  • jika Anda memerlukan webhoster termurah, Anda mungkin hanya memiliki PHP sebagai pilihan Anda
  • jika Anda ingin melakukannya secepat mungkin, Ruby on Rails, Grails atau Django mungkin lebih cocok untuk kebutuhan Anda
  • jika tim pengembangan Anda hanya tahu XYZ, di mana XYZ! = Java, Anda lebih baik menggunakan XYZ
user281377
sumber
7
Jadi, kami menggunakan Java jika kami bukan toko MS, berniat untuk menghabiskan uang untuk hosting, punya cukup waktu untuk mengembangkan menggunakan Java dan memiliki pengembang Java. Apakah itu oke?
Gulshan
Gulshan: ya, Anda bisa
begini
3
Ada banyak alasan lain seperti ini kembung, keras dan Java (yang terakhir dapat diabaikan jika Anda menggunakan Scala atau sesuatu yang lain untuk JVM).
Raynos
1
@ Raynos jadi Anda merekomendasikan apa?
2
@ ThorbjørnRavnAndersen benar-benar tergantung apa persyaratannya. Jika persyaratannya generik (non-niche) maka gunakan platform apa pun yang paling nyaman bagi pengembang dan server Anda.
Raynos
19

Java adalah digunakan dalam website kecil dan menengah. Poin penting adalah bahwa ada jauh lebih sedikit hosting web gratis untuk situs web Java daripada untuk misalnya PHP, yang berarti bahwa kecuali Anda memiliki sumber daya yang cukup untuk meng-host server web Anda sendiri, Anda mungkin tidak akan memilih Jawa.

Perhatikan bahwa dengan Java EE 6, terutama profil web, ada banyak teknologi standar termasuk yang dapat membuat aplikasi web yang sangat kuat tanpa harus banyak kode. Sayangnya ini belum mainstream.

Perhatikan bahwa ini agak berubah baru-baru ini dengan Google Application Engine yang memungkinkan Anda untuk menyebarkan aplikasi web Java standar (dengan beberapa batasan) di cloud secara gratis untuk situs dengan lalu lintas rendah hingga sedang.

user1249
sumber
Dalam semua kasus saya tidak akan meng-host situs web saya di web hosting gratis. Tapi pertanyaannya adalah apakah ada masalah dengan web hosting java berbayar? Apakah sangat mahal misalnya?
Goma
1
@eed, tidak seperti itu. Kebanyakan orang hanya memilih opsi dan kode termurah.
Apakah jave jauh lebih mahal daripada yang lain misalnya? apakah ada shared hosting untuk java?
Goma
@ Saeed, ada beberapa alasan teknis bahwa Anda tidak dapat mengelompokkan sebanyak JVM di Linux tunggal dan kotak Windows karena Anda dapat membuat instance LAMP bersama, yang secara implisit berarti bahwa JVM yang di-host lebih mahal daripada LAMP yang di-host. Google menggunakan JVM berbeda yang berarti mereka dapat menawarkannya secara gratis.
@ Thorbjörn: Apakah Anda memiliki tautan tentang cara Google melakukannya? Saya telah mendengar bahwa mereka menggunakan Jetty, tetapi saya tidak tahu banyak tentang solusi mereka.
Jonas
12

Ketika platform Anda adalah UNIX / Linux dan Anda memerlukan seperangkat alat yang kaya, seperti Pemetaan Objek / Relasional, Keamanan, orkestrasi Kompleks Layanan Web, dll.
(Kami tidak berbicara tentang situs web sederhana, bukan?)

Sorantis
sumber
1
Anda bisa mendapatkan barang-barang ini dari bahasa scripting juga - lihat Python dan SQLAlchemy. Bahkan Rails menggunakan ORM (ActiveRecord) dan memiliki keamanan yang baik.
Brian D.
3
Memang, tapi saya tidak berpikir mereka sekuat Hibernate, Spring Framework, BPEL frameworks.
Sorantis
1
Apa yang salah dengan Java di non-UNIX / Windows.
Tom Hawtin - tackline
2
Tidak ada. Tetapi pada Windows Anda memiliki .NET
Sorantis
2
-1 Anda membuatnya terdengar seperti salah satu alternatif tidak memiliki alat yang layak tersedia.
Raynos
9

Setiap kali tim Java lain membuat saya kesal, saya langsung meledak dengan mencari pertanyaan seperti ini. Biarkan saya ulangi. Saya seorang klien sisi dev dan telah hampir 5 tahun sekarang. Saya telah bekerja di situs mulai dari satu-sebagian besar konten-microsites, ke situs sebesar Sears, ke situs-jenis aplikasi yang lebih canggih di mana keahlian UI yang sangat mendalam diperlukan. Saya telah berurusan dengan Rails, PHP, formulir web .net (ew), .net MVC (jauh lebih baik) dan pengaturan buket solusi Java untuk pengembangan web disertai oleh devs dan tim yang semuanya telah menyelesaikan bencana untuk ditangani. Saya juga menulis sedikit Python dan mulai menggali Django.

Pengalaman saya dengan tim Java secara universal mengerikan. Alat selalu PITA. Para devs tidak pernah mau percaya bahwa mereka melakukan kesalahan dan meminta mereka untuk menyelidiki kembali wilayah mereka sendiri begitu Anda mengesampingkan masalah di ujung Anda seperti mencabut gigi. Korban pertama dari berurusan dengan tim Java dalam pengalaman saya adalah waktu pengembangan dikonversi ke waktu e-mail menulis beberapa penjelasan panjang lebar tentang mengapa masalahnya jelas pada akhirnya. HTML umumnya bukan masalah mereka kecuali Anda benar-benar ingin kontrol atasnya. Maka semuanya cenderung pergi ke neraka pada akhirnya karena Anda benar-benar ingin memindahkan beberapa div tingkat atas.

Ada hal-hal tentang bahasa yang saya tidak suka, tetapi saya pikir masalah sebenarnya adalah budaya dan fakta bahwa penerimaan begitu luas, Anda memiliki satu ton biasa-biasa saja di tengah. Budaya yang saya curigai muncul dari cara Jawa dipasarkan. Tulis sekali, sebarkan di mana-mana. Terjemahan: "Anda hanya perlu belajar satu hal!" Orang-orang yang menemukan bahwa menarik pada dasarnya ingin menggunakan Jawa seperti palu raksasa untuk setiap paku dengan minimal mengasah kerajinan mereka dalam hal pengembangan web.

Jadi jika Anda memiliki pengembang yang tahu bahasa Jawa dan bahasa lain tetapi masih lebih suka Java, saya akan mengatakan, ya, silakan saja jika sepertinya solusi yang tepat. Tetapi jika Anda memiliki pengembang Java yang mengenal Java dan yang lainnya nyaris tidak memenuhi kriteria untuk menjadikannya sebagai poin penting dalam resume mereka, minta mereka membuat aplikasi sederhana dengan berbagai halaman semi-kompleks di ujung HTML dan coba ini tes sederhana. Hancurkan beberapa HTML. Cobalah untuk membuat mereka mencari tahu apa yang salah. Jika masalah langsung yang mulai mereka selesaikan adalah mengalihkan kesalahan dari diri mereka sendiri, jauhkan mereka! @ # $ Dari pengembangan web. Web dev bersifat multidisiplin dan membutuhkan minat aktif di bidangnya untuk menjadi sukses. Ini bukan tempat bagi orang yang hanya ingin memiliki pengetahuan tentang satu bahasa dan lebih takut dengan masalah daripada tertarik untuk menyelesaikannya.

Saya tidak menyatakan bahwa Jawa itu sendiri adalah akar dari ketidakmampuan dan saya pernah mendengar Spring itu bagus. Saya yakin ada tim Java yang kompeten di luar sana. Saya hanya belum bertemu satu dan saya tidak berpikir itu kebetulan. Saya pikir Sun ada banyak hubungannya dengan itu. Saya juga berpikir menjalankan tim web seperti atau di bawah departemen TI ada banyak hubungannya dengan itu.

Erik Reppen
sumber
1
Saya memiliki masalah yang sama dengan yang Anda gambarkan, tetapi tidak pernah berpikir bahwa itu bisa bergantung pada bahasa pemrograman. Apakah Anda berpikir bahwa orang yang memprogram, katakanlah, PHP, lebih berpikiran terbuka dan fleksibel?
Виталий Олегович
PHP 100% tentang pengembang dan lebih sedikit tentang budaya di sekitarnya. Saya tidak suka kurangnya konsistensi pada intinya, tetapi saya akan mempercayai pekerjaan tim PHP tingkat menengah untuk pengembangan web dengan cara yang saya tidak akan percaya pada tim Java. Ini membantu bahwa seorang pengembang PHP yang berpengalaman tidak mungkin bekerja dengan apa pun kecuali web dan dia kemungkinan dipekerjakan untuk pengalaman lebih dari derajat / kredensial. Masalah Java mungkin sebagian karena kekakuan yang melekat dalam bahasa tersebut, tetapi saya jujur ​​berpikir ini lebih tentang sifat bagaimana para pengembang Java dilatih, solusi-solusi Java diadopsi, dan para pengembang Java dipekerjakan.
Erik Reppen
1
@Erik Reppen: Saya pikir Anda terlalu menyamaratakan pengalaman Anda: Saya tidak berpikir tim Java lebih buruk daripada tim yang bekerja dalam bahasa lain atau, setidaknya, tidak lebih buruk dari rata-rata. Saya tahu dua toko yang sangat bagus yang bekerja sangat keras dengan Jawa. Yang pertama, apakah proyek di Jawa dan di Ruby (masing-masing sekitar 50%). Pekerjaan kedua terutama di Jawa tetapi telah melakukan proyek individu di Scala dan Common Lisp.
Giorgio
@ Giorgio Saya melewatkan ini tetapi saya telah bekerja dengan orang lain yang menangani back-end via .NET, Rails, Java dan PHP. Saya tidak menghitung pengalaman satu kali dengan bahasa lain dan devs jelek tentu tidak unik untuk Jawa. Juga, seperti yang saya katakan saya 100% yakin ada tim Jawa yang sangat kompeten di luar sana. Seseorang harus tidak mengisapnya tetapi IMO, saya tidak terlalu generalisasi. Ada masalah dengan pengembang Java di tingkat median. Ini adalah fenomena budaya dalam pengalaman saya. Begitu jahat sehingga saya berhenti bekerja dengan toko-toko di Jawa kecuali saya kenal para devs yang dimaksud.
Erik Reppen
5

Java baik-baik saja untuk situs web kecil, Anda bisa mendapatkan halaman JSP bekerja sangat cepat dengan server web Java seperti Tomcat , misalnya.

Meskipun dalam pengalaman saya, Java lebih umum untuk situs web besar di mana ada kebutuhan yang lebih besar untuk pemrosesan sisi-server yang kompleks - dalam hal ini Anda akan menemukan kerangka kerja Java yang lebih canggih yang digunakan seperti JavaServer Faces (JSF).

Penting untuk dicatat bahwa instalasi penuh Java secara historis tidak tersedia di banyak pengaturan hosting web murah, sehingga dapat menjelaskan prevalensi bahasa lain seperti PHP di lingkungan ini.

mikera
sumber
Apakah ini berarti hosting aplikasi web java terlalu mahal? atau tidak semurah PHP misalnya? dapatkah Anda memberi saya tautan host weh yang baik untuk java sehingga saya bisa melihat harganya? Saya melakukan pencarian tetapi saya tidak tahu mana yang memiliki harga standar sehingga saya dapat memiliki gambaran besar tentang itu.
Goma
1
hosting aplikasi web Java tidak mahal, Anda hanya perlu penyedia hosting yang memungkinkan Anda menjalankan aplikasi Java. Setiap lingkungan hosting Linux tempat Anda mendapatkan akun login ke mesin akan baik-baik saja - Saya pribadi menggunakan Ubuntu di Amazon Web Services untuk hosting Java saya.
mikera
2

Alasan utama untuk menggunakan Java dalam pengembangan web adalah sebagai berikut:

  • Klien menuntutnya. Baik atau buruk, beberapa klien telah "menerima daftar teknologi", dan jika Anda mengusulkan sesuatu yang tidak ada dalam daftar itu, Anda sebaiknya memiliki penjelasan yang sangat bagus mengapa - dan mengapa sesuatu dalam daftar tidak dapat digunakan.
  • Kembangkan di Windows, gunakan di Unix. Sebagian besar mesin pengembangan adalah Windows, beberapa adalah Mac, dan sangat sedikit adalah Linux - seperti yang Anda harapkan dengan mesin klien biasa. Namun di server, Anda mungkin akan melihat beberapa bentuk Unix seperti halnya Anda adalah server Windows. Java mungkin adalah yang paling dekat untuk ditulis sekali digunakan di mana saja (itu tidak sempurna, tetapi lebih baik daripada beberapa alternatif).
  • Pilihan manajemen. Mari kita hadapi itu, memilih Jawa daripada bahasa lain akan lebih berkaitan dengan mampu menemukan programmer dan mengganti anggota tim yang meninggalkan proyek daripada didasarkan murni pada manfaat bahasa.
Berin Loritsch
sumber
Tentang # 2: konfigurasikan IDE Anda dengan benar. Eclipse memiliki ide bodoh untuk default ke beberapa pengkodean file Windowish yang dapat membawa kekacauan di server Linux.
Eldelshell
Saya sebenarnya mengacu pada asumsi tentang di mana file tertentu hidup, dan kapan saja Anda harus berinteraksi dengan sistem operasi.
Berin Loritsch
"C mungkin yang paling dekat untuk ditulis setelah digunakan di mana saja" aku memperbaikinya untukmu.
Raynos
@ Raynos, kalau saja itu benar. Sayangnya, kecuali Anda memiliki pustaka standar yang sama di semua platform, itu tidak berlaku. Bahasa inti C sangat portabel, saya berikan itu. Namun, apa pun yang spesifik untuk OS (seperti membuat utas, membuka soket, atau membuat elemen UI) memiliki sesuatu di API yang tidak dapat diangkut dengan kompilasi ulang sederhana. Dengan Java, tidak diperlukan kompilasi ulang, apalagi mengubah kode untuk menggunakan API sistem baru.
Berin Loritsch
@BerinLoritsch Anda bermaksud mengatakan bahwa setelah 40 tahun kami tidak memiliki API umum untuk hal-hal khusus OS yang hanya bekerja lintas platform dengan kompilasi ulang yang sederhana? Saya bisa membayangkan itu benar di tahun 80-an.
Raynos
2

Secara teknis:

  • Jika Anda dapat menentukan arsitektur yang setuju dengan pengoptimal hot-spot.
  • Jika Anda mengantisipasi kebutuhan untuk overhead OO Jawa besar memaksakan.

Jika saya memulai aplikasi web, saya akan menggunakan Ruby on Rails dan desain sedemikian rupa sehingga hotspot bisa ditukar ketika RoR mencapai batas skala kinerjanya.

Java memiliki bau COBOL dan "pembuat kode kelas atas menggunakan Java", dan kegagalan Oracle tidak membantu reputasinya. Jika Anda punya pilihan , pilih bahasa yang menarik para devs top.

Paul Nathan
sumber
"pilih bahasa yang menarik para devs top." Contoh?
Eldelshell
1
@Ubersoldat: Go, Ruby, Clojure, Haskell, Python semua adalah bahasa yang melakukan itu.
Paul Nathan
Python bagus karena sebenarnya berhasil di banyak hal yang pura-pura Jawa. Dan tidak sulit untuk membuatnya bermain baik dengan orang lain ketika Anda harus menyelesaikan masalah dengan beberapa bahasa lain. Saya tidak tahu tentang Ruby, tetapi Rails devs adalah sesuatu yang buruk dalam pengalaman saya. Ini efek JQuery. Orang yang tahu apa yang mereka lakukan menyukainya karena cepat dan efektif di tangan kanan. Orang yang tidak tahu apa yang mereka lakukan menyukainya karena mereka tidak perlu tahu sebanyak itu.
Erik Reppen
@Erik Reppen: Di lain pihak, Ruby sebagai bahasa memiliki desain yang lebih bagus dan lebih konsisten daripada Python. Saya benar-benar berpikir perbandingan bahasa ini sering merupakan masalah selera dan orang cenderung menyukai bahasa yang lebih mereka kenal.
Giorgio
0

Sangat sederhana: gunakan Java ketika kinerja back-end adalah masalah utama. Ada lebih banyak overhead saat pengkodean tetapi kode akan dieksekusi dalam 1/200 ke 1/500 dari waktu - secara harfiah. Php, Ruby, dan bahasa yang diketik secara dinamis lainnya akan selalu lebih lambat dari server java atau .net.

Sebagian besar solusi untuk web tidak memerlukan ini. Twitter tidak meninggalkan Rails sampai mereka mulai memuncak dalam popularitas misalnya.

Rian Fowler
sumber
-1

Bukan satu-satunya alasan, tetapi dengan semakin populernya membangun situs web dengan ujung depan seperti aplikasi yang canggih sementara masih memiliki logika melakukan 'barang' kembali di server - tidak ada alasan yang diperlukan untuk menjelaskan mengapa Java setidaknya sama dengan yang lain pilihan di ujung server. Tetapi pada akhir klien, jika ada javascript akan dengan cepat berubah menjadi mimpi buruk pemeliharaan kode dan dengan memanfaatkan GWT untuk menjaga hal-hal tersebut agar Anda dapat membuat kode di Jawa, Anda dapat memiliki yang terbaik dari kedua dunia dengan server Anda melakukan pekerjaan berat dan prosesor klien memberi mereka 'pengalaman'. Belajarlah untuk mengintegrasikannya dengan sesuatu seperti jQuery dan Anda dapat memiliki semua permen mata yang Anda inginkan juga.

Bukan jenis ahli tentang alternatif, tetapi jika orang lain dapat mengajukan satu dengan jenis fleksibilitas dan luas yang sama, senang mendengarnya.

nomader apa
sumber
1 untuk jQuery :)
abel
2
-1 untuk "javascript berubah menjadi mimpi buruk pemeliharaan kode", Ini hanyalah efek samping dari membiarkan Anda Java devs menulis javascript tanpa pelatihan atau belajar JavaScript. dan kerugian utama dari GWT adalah abstraksi yang bocor, semoga berhasil melakukannya dengan baik di perangkat seluler.
Raynos
Masalah dengan kekakuan Java, IMO, adalah Anda berakhir dengan banyak devs yang tidak mengerti mengapa kode mereka diatur secara paksa seperti semula. Ketika semuanya harus terlihat seperti OOP, terkadang hasil yang tak terhindarkan adalah bahwa tidak ada yang sebenarnya.
Erik Reppen
-1

Alasan utama mengapa saya akan memilih java adalah jika Anda perlu menggunakan transaksi terdistribusi, yang dapat menjadi perhatian besar bagi banyak perusahaan. Namun Anda masih dapat menggunakan bahasa skrip favorit Anda untuk pengembangan web, dan hanya mendelegasikan pekerjaan ke java saat Anda membutuhkan kecepatan / transaksi terdistribusi.

Brian D.
sumber
-1

Saya percaya itu akan terjadi ketika aplikasi Anda akan menjadi sangat kompleks, dengan banyak orang mengembangkannya, dengan banyak modul yang kompleks, logika bisnis yang kompleks dan harus berkomunikasi dengan banyak aplikasi perusahaan lainnya.

Bagaimanapun, Anda juga bisa mengembangkan di Grails, yang menyediakan banyak fitur bagus, memudahkan banyak pengembangan dan jatuh tempo sangat cepat.

Eldelshell
sumber
-1

Java ok, tetapi jika kinerja tidak terlalu penting, Anda bisa mendapatkan hasil yang sama dengan sedikit upaya dalam bahasa lain.

kevin cline
sumber
2
"Kinerja tidak terlalu penting" ketika itu Anda harus menulis dalam C dan assembly bukan Java.
Raynos
Benchmark vs pengalaman, situs Java telah menjadi pemain terburuk dalam pengalaman saya sebagai dev sisi klien. Itu mungkin masalah tingkat bakat median lebih dari masalah bahasa sekalipun.
Erik Reppen
2
@ErikReppen: Pasti bakat. Kecepatan Java pada server adalah yang kedua setelah C / C ++. PHP atau Rails tidak bisa dibandingkan. Tetapi perpustakaan Java dan beberapa alat membuatnya terlalu mudah untuk kehilangan semua kecepatan itu melakukan hal-hal rumit yang tidak berguna.
Zan Lynx
-1

Java adalah bahasa yang diketik secara statis, dan lebih murah daripada bahasa yang diketik secara statis yang digunakan untuk pengembangan web, yaitu C # dan VB.net, jika perusahaan Anda tidak memiliki langganan MSDN. Bahasa yang diketik secara statis baik untuk proyek sedang hingga besar, aturan domain yang rumit, dan banyak kode back-end, karena Anda dapat mengatur kelas dan IDE Anda dengan lebih baik akan membantu Anda menemukan kesalahan dalam kode Anda.

Dengan bahasa yang diketik secara dinamis, seperti PHP, Python, Ruby, pengembangan Anda akan jauh lebih cepat, tetapi Anda harus menguji kode Anda jauh lebih baik. Jika Anda tidak punya banyak waktu dan uang dan kebutuhan Anda berubah dengan sangat cepat dan Anda tidak harus melakukan perhitungan yang sangat rumit, bahasa yang dinamis jauh lebih baik.

Виталий Олегович
sumber
-2

Keamanan

Alasan utama perusahaan besar memilih Jawa daripada solusi lain adalah karena dianggap jauh lebih aman.

Ini terutama karena didukung oleh perusahaan besar (sekarang oracle).

Harus dipertimbangkan bahwa Jawa menawarkan tingkat keamanan yang sangat tinggi dan dukungan serta analisis yang sangat baik (meskipun harganya mahal).

mrwooster
sumber
7
Uhh ... dan keamanannya datang secara ajaib dari bahasa itu sendiri atau apa?
Mchl
1
Anda sadar bahwa Oracle BUKAN satu-satunya penyedia wadah servlet Java, bukan?
Mchl
6
Perang suci! Berjuang bertarung!
abel
2
@MCCH Beberapa di antaranya berasal dari bahasa atau lebih tepatnya dari VM-nya. Berapa kali Anda melihat hack overrun buffer ditujukan ke server aplikasi Java? Itu hanya tidak sepadan dengan usaha. Karena itu, Jawa dianggap lebih aman oleh "industri" daripada itu, dan rasa aman palsu dapat menggigit kembali dengan keras.
biziclop
1
Maksud saya di sini adalah bahwa Anda perlu membedakan antara Java sebagai bahasa, dan lingkungan runtime Java. Tidak ada yang membuat bahasa Jawa lebih atau kurang aman daripada bahasa lainnya. JVM di sisi lain dirancang (antara lain) untuk 'sandbox' Java bytecode, tetapi keamanannya tergantung pada implementasi spesifik. Poin bagus tentang rasa aman palsu.
Mchl