JavaRush /Blog Jawa /Random-JV /Ngopi #131. Peran Jawa ing pangembangan aplikasi web lan ...

Ngopi #131. Peran Jawa ing pangembangan aplikasi web lan seluler. Pemrograman fungsional - pro lan kontra

Diterbitake ing grup

Peran Jawa ing pangembangan aplikasi web lan seluler

Sumber: DZone Java minangka salah sawijining basa pamrograman sing paling akeh digunakake. Iki digunakake kanthi aktif ing pangembangan aplikasi perusahaan, web lan seluler. Jawa nduweni aplikasi ing industri teknologi terkemuka, saka Ilmu Data nganti AR/VR. Sanajan pangembangan perusahaan ing Jawa minangka kasus panggunaan sing paling populer kanggo basa iki, aplikasi web lan seluler uga dianggep minangka salah sawijining wilayah sing digunakake Jawa. Ngopi #131.  Peran Jawa ing pangembangan aplikasi web lan seluler.  Pemrograman fungsional - pro lan kontra - 1Ayo goleki kenapa pangembangan Java dadi populer ing web lan piranti seluler sajrone rong dekade kepungkur. Salah sawijining alasan utama nggunakake Java kanggo web lan seluler yaiku basa pemrograman kanthi kinerja dhuwur. Iki mesthekake yen aplikasi sampeyan bisa mlaku kanthi cepet lan tanpa kesalahan pangolahan. Ana uga alasan liyane:

1. Open source

Minangka basa pamrograman open source, Jawa nduweni sawetara kaluwihan. Kaping pisanan, nyuda biaya proses pangembangan aplikasi. Kapindho, pangembang kanthi gampang ngganti basa kasebut lan asring nganyari amarga mbukak sumber. Kajaba iku, Jawa nduweni sintaksis sing gampang diwaca sing ndadekake gampang ngembangake aplikasi kanggo web lan piranti seluler. Pungkasan, pangembang bisa nggunakake basis kode basa sing wis ana lan nambah.

2. Cross-platform

Manfaat liyane saka pemrograman ing Jawa yaiku basa lintas platform. Pangembang bisa nulis kode ing Windows lan mbukak ing macOS lan Linux. Prinsip "nulis sepisan, mbukak ing endi wae" ditrapake ing kene. Iki nggampangake pangembang sing nggarap sistem sing beda-beda lan nyederhanakake proses tes ing mesin sing beda-beda. Contone, pangembang bisa nyoba apa program bakal mlaku kanthi bener ing ukuran layar lan sistem operasi sing beda.

3. Mobile-loropaken

Java minangka teknologi populer kanggo aplikasi seluler. Pangembang aplikasi Android utamane nggunakake basa Jawa amarga gampang diimplementasikake, nduweni fitur keamanan lan kemampuan lintas platform. Android mbutuhake basa sing kuat kanggo nggedhekake aplikasi, nanging Jawa nawakake kemampuan skala sing apik tenan. Iku uga simplifies proses testing aplikasi Android. Kabeh iki nuduhake manawa basa pamrograman sing dipercaya lan dinamis kanggo nggawe aplikasi seluler.

4. Piranti lan perpustakaan

Salah sawijining kaluwihan Jawa sing paling penting yaiku kompatibilitas karo macem-macem alat. Kerangka kayata Spring, Hibernate, Struts, Spark lan liya-liyane nyederhanakake proses pangembangan. Kabeh alat kasebut nawakake macem-macem fitur kanggo nggawe aplikasi interaktif lan dinamis. Pustaka kaya Apache Commons, Pustaka Standar Java, Maven, Jackson, lan sapiturute ngidini pangembang nambah fungsi tanpa nulis kode saka awal.

5. Masyarakat aktif

Ana luwih saka 7,6 yuta pangembang Java ing donya. Dheweke terus nganyari basa pamrograman lan nambah fitur-fitur anyar. Wiwit Jawa dianyari saben 6 sasi, pangembang duwe kesempatan kanggo sinau kanthi cepet lan nggawe produk sing luwih apik. Sampeyan uga bisa nggunakake komunitas Jawa kanggo nemokake jawaban kanggo macem-macem pitakonan.

Mundhak Jawa ing Pangembangan Aplikasi Web

Wiwit digawe ing taun 1995 dening Sun Microsystems, basa Jawa dadi salah sawijining prioritas ing industri pemrograman. Saiki, perusahaan saka sak ndonya nggunakake basa pamrograman iki kanggo nggawe aplikasi web. Google, Netflix, Spotify, lan Pinterest mung sawetara perusahaan sing nggunakake Jawa ing tumpukan teknologi. Para ahli ngira luwih saka 60% perusahaan sing makarya ing IT nggunakake Jawa ing siji utawa liyane. Kajaba iku, tetep dadi basa pamrograman sing populer amarga diadopsi ing bidang pangembangan web liyane, yaiku komputasi awan, media sosial, pangembangan perusahaan, AR, VR, lan liya-liyane. Iki minangka basa pamrograman sing apik banget lan kuat kanggo digunakake ing perusahaan sing saiki butuh arsitektur berbasis awan. Yen digabungake karo JavaScript, Jawa ngidini sampeyan nggawe aplikasi web kanthi kinerja dhuwur sing bisa mlaku ing platform apa wae.

Tumindak Jawa ing Kasus Penggunaan Modern

Saliyane pangembangan web lan pangembangan seluler, Jawa wis nggawe tandha ing jagad teknologi modern. Saiki, Java minangka basa pamrograman sing migunani banget kanggo aplikasi ilmiah. Nawakake lingkungan sing aman, cepet lan portabel kanggo komputasi ilmiah. MATLAB minangka salah sawijining perpustakaan sing paling populer kanggo aplikasi ilmiah berbasis Java.
  • Jawa uga migunani kanggo pangembangan aplikasi ilmiah ing ngarep lan mburi. Sampeyan bisa nggunakake Struts lan Java Server Pages kanggo pangembangan front-end lan Java Core kanggo pangembangan back-end aplikasi ilmiah.

  • Jawa uga migunani kanggo analisis data. Iki ngidini pangembang nggawe solusi analytics data nggunakake macem-macem perpustakaan lan alat. Saiki, Java wis nemokake aplikasi ing segmen Internet of Things. Iki minangka teknologi kunci ing sistem sing dipasang kayata kertu pinter lan sensor. Mula, perusahaan nggunakake basa pamrograman iki ing industri otomatisasi omah. Kajaba iku, aktif digunakake ing pangembangan teknologi piranti streaming lan Smart TV.

  • Platform data gedhe Hadoop ditulis ing Jawa. Amarga iki minangka basa open source lan berorientasi obyek, iki minangka landasan kanggo aplikasi Big Data. Basa pemrograman kaya Scala bisa mlaku kanthi gampang ing Java Virtual Machine lan nggawe analisis data gedhe luwih gampang.

  • Game minangka industri sing berkembang lan berkembang kanthi cepet ing ngendi Java digunakake kanggo macem-macem aplikasi game. Contone, nawakake dhukungan kanggo jMonkeyEngine, mesin pangembangan game 3D open source paling gedhe. Kajaba iku, Dalvik Virtual Machine (DVM) utamane didhukung dening Jawa lan digunakake kanggo nggawe game interaktif kanggo Android.

Pemrograman fungsional - pro lan kontra

Sumber: Dev.to Senadyan skeptisisme tradisional marang teknologi sing ora pati ngerti, aku ngerti keuntungan saka program fungsional. Ing ngisor iki minangka dhaptar kira-kira kaluwihan sing nggambarake paradigma pemrograman iki. Ngopi #131.  Peran Jawa ing pangembangan aplikasi web lan seluler.  Pemrograman fungsional - pro lan kontra - 2

Concurrency Aman

Pendekatan fungsional nyengkuyung konkurensi sing aman, yaiku, kemampuan kanggo mbukak proyek ing benang sing kapisah tanpa nyebabake konflik benang utawa tabrakan modifikasi. Alesane yaiku ora kaya pendekatan obyek, sampeyan ora nuduhake obyek sing negara bisa diganti sajrone proses. Ana lawang mlebu lan metu, lan lawang mlebu ora owah amarga sampeyan. Ing Jawa, sanajan sampeyan nggunakake obyek "thread-aman", sampeyan ora bisa njamin yen bakal duwe nilai sing padha nalika metode sampeyan diarani. Ing conto ing ngisor iki, kita bisa ndeleng manawa daur ulang sing ngolah unsur siji-sijine bisa gampang diproses kanthi podo karo nggunakake fungsi lambda ing benang.
for( String item : items ) {
   process(item);
}
Lan saiki dadi:
items.parallelStream().forEach( item -> process(item) );

I/O cepet

Pemrograman fungsional ndhukung pendekatan sing beda tinimbang multithreading. Iki tegese kita ora duwe thread kapisah maneh nunggu respon I/O kayata telpon database. Yaiku, kita maksimalake panggunaan CPU lan bandwidth. Kanggo aplikasi kinerja dhuwur iki kauntungan cetha. Iki dipun ginakaken karo idea sing telpon fungsi bisa bali Future a, kang ora asil nyata saka telpon, nanging rodo janji bali asil ing sawetara titik ing mangsa. Ing sawetara titik ing mangsa ngarep, nilai bali dijupuk sing mlaku fungsi. Iki tegese benang prosesor ora ngenteni database utawa telpon REST rampung lan bisa nindakake liya.

Ringkesan ekspresi

Pangembang piranti lunak pengin bisa ngungkapake ide sing rumit kanthi apik. Pemrograman fungsional ngidini sampeyan nindakake iki kanthi ringkes. Contone, konstruksi umum kayata kanggo puteran bisa diganti nganggo benang, sing abstrak umum kanggo operasi sing digunakake puteran. Ora ana sangsi manawa tambahan fungsi lan utas Lambda ing Jawa wis nambah kemampuan kanggo nyebut gagasan sing sadurunge ora bisa ditindakake.

Napa ora dadi fungsional?

Mung kanggo mbaleni maneh ing ndhuwur: ana akeh mupangat kanggo coding fungsional, mula artikel iki ora nyoba nggeneral kabeh dadi siji kasus lan ujar manawa sampeyan kudu nindakake pemrograman fungsional utawa kosok balene. Kaputusan iki kudu digawe kanthi pangerten sing jelas babagan alasan transisi lan masalah potensial.

Iku tansah angel mangertos intuisi

Nalika nulis kode, sampeyan nyoba komunikasi karo komputer? Yen komunikasi karo komputer penting banget kanggo sampeyan, kenapa ora nulis ing kode mesin? Mesthi, iki angel banget, mula basa komputer diciptakake supaya luwih gampang. Dheweke uga ngidini programer nggawe ekspresi sing bisa dingerteni para programer liyane. Minangka piranti lunak dadi luwih gedhe lan luwih rumit, kita butuh strategi kanggo ngatur kerumitan. Kita entuk iki liwat abstraksi lan ndhelikake informasi. Kelas sing digunakake ing Jawa kanggo ngirim email cukup rumit, nanging antarmuka kelas iki prasaja. Iku ndhelikake implementasine rinci, mbukak kanggo kita mung sisih njaba kontrol. Fitur basa kayata kurung kriting lan kurung siku ngandhani struktur kayata pernyataan kondisional lan puteran. Mung saiki kita mindhah puteran, utawa luwih rekursi, lan kahanan menyang fungsi:
for( String item : items ) {
    System.out.println(item);
}
Pranyata:
items.foreach( item -> System.out.println(item) );
Pendekatan streaming lan lambda mesthi luwih cendhek. Sampeyan bisa nyebut fungsi sing padha karo kode kurang. Masalahe yaiku saiki kita ndhelikake prilaku nyata ing cara sing kudu dingerteni. Loop ing basa Jawa nggunakake tembung kunci. Ing sisih liya, fungsi lambda bisa ngetrapake macem-macem bentuk rekursi, lan mung jeneng ing kene sing nuduhake apa sing ditindakake. Tuladhane:
boo.fooble( item -> System.out.println(item) );
Sampeyan ora bisa maneh mung maca kode kanggo ngerti struktur. Iki nggawe angel nglacak aliran eksekusi. Fitur liyane yaiku chaining fungsi, ing ngendi asil saka siji fungsi minangka input sabanjure tanpa menehi variabel penengah.
boolean result = boo
    .fooble( /*some code*/ )
    .bobble( /*some code*/)
    .goober( /*some code*/);
Iki bisa uga nggawe pangerten kanggo penulis kode iki amarga dheweke wis nulis saben fungsi lan ngerti apa sing ditindakake. Nanging, kanggo sing anyar karo kode, iki ora ngandhani akeh babagan paramèter, proses, utawa nilai bali saben fungsi. Nanging yen sampeyan nulis bab sing padha ing bab sing nemtokake jinis, sampeyan bakal entuk:
Car car = boo.fooble( /*some parameters*/);
Tyre tyre = car.bobble( /*some parameters*/);
int pressure = tyre.goober( /*some parameters*/);
Iki bisa uga ora analogi sampurna, wiwit paramèter lan fungsi anonim ora bab sing padha, nanging titik kene iku ukara dawa karo asil dingerteni lan paramèter angel diwaca tanpa pangerten luwih jero apa fungsi diterangake ing ngisor iki. Dadi, program fungsional bisa uga ekspresif banget ing bagean kode sing nggumunake, nanging ora bisa dingerteni kanggo wong sing anyar ing piranti lunak kasebut. Titik kelas lan antarmuka kanggo ndhelikake data, kanggo nggawe potongan kode sing bisa digunakake maneh sing ora mbutuhake pangembang ngerti utawa malah bisa ndeleng implementasine. Padha ana supaya pangembang bisa nggarap sistem gedhe lan kompleks tanpa ngelu. Iki minangka cara sing trep kanggo ngatur kode sing ana gandhengane karo entitas tartamtu. Nanging, aku ora ngerti babagan carane program fungsional mbantu nggawe proyek kompleks sing gedhe. Mesthi ana alesan subyektif kanggo iki.

Kanggo ngematake wong liya kanthi katrampilan sampeyan

Sawetara pangembang piranti lunak dadi ora aman babagan katrampilane, mula dheweke nyoba ngematake kanthi nulis kode rumit sing ora perlu. Minangka pangembang senior, aku ora seneng banget karo pangembang piranti lunak liyane sing nyoba nulis kode cerdas. Mesthine, iki ora mung ditrapake kanggo program fungsional; bab sing padha bisa kelakon ing sembarang gaya coding. Nanging aku wis ngeweruhi Vanity intelektual tartamtu ing antarane panyengkuyung program fungsional. Intine yaiku pangembang piranti lunak ora bisa digunakake ing vakum. Kode "pinter" iki kudu dijaga, lan yen angel dingerteni, mula bakal angel diwaca lan diganti, lan angel debug. Nalika ngatur tim, kita duwe wong ing kabeh level, mula sing paling cerdas yaiku nulis kode kanthi cara sing bisa dingerteni kabeh wong. Mulane kita duwe jeneng variabel sing cetha, mula kita mbatesi dawa metode. Kode "Smart" bakal njupuk wektu ekstra, supaya ora pinter banget kanggo nulis. Aku percaya yen pemrograman fungsional nggunakake argumen sing padha babagan ekspresi ringkes lan kuat sing digawe Perl pirang-pirang taun kepungkur. Panyengkuyung Perl bangga karo ekspresif, cara bisa nulis program sing kuat banget mung ing sawetara baris kode. Iku bener. Masalahe yaiku dheweke angel dingerteni. Mbok program fungsional wis tiba ing trap sing padha.

Amarga iku fashion anyar

Ana tansah "panas" teknologi anyar utawa paradigma. Teknologi, basa lan pendekatan anyar terus berkembang. Kita kudu terus-terusan nantang awake dhewe lan sinau babagan sing anyar. Dadi pangembang piranti lunak tegese maju teknologi. Nanging minangka pangembang piranti lunak, kita kudu ngevaluasi dhewe apa teknologi sing dibutuhake kanggo nggawe produk. Sinau teknologi anyar sing populer mung amarga populer ora nggunakake wektu kanthi wicaksana. Iki ora ateges sampeyan ora kudu sinau program fungsional, nanging sampeyan kudu ngevaluasi pro lan kontra paradigma iki kanggo aplikasi sing sampeyan tulis.

Amarga iki mung cara sing bener

Kaping pirang-pirang sadurunge, aku wis ndeleng pangembang promosi iki utawa pendekatan kasebut minangka siji-sijine sing bener. Nanging kaya sing dicritakake kanca, macem-macem pakaryan mbutuhake alat sing beda. Contone, aku nggunakake Python lan PyTorch kanggo intelijen buatan, sanajan ana akeh alat lan teknologi liyane, saben duwe kaluwihan lan kekurangane dhewe. Ana alasan sing apik kanggo nimbang pemrograman fungsional minangka pilihan kanggo layanan sing mbutuhake skalabilitas sing signifikan. Iki amarga safety concurrency sing ditawakake pendekatan iki. Nanging sampeyan uga kudu ngerti biaya lan risiko potensial. Sawetara taun kepungkur aku duwe pengalaman sing padha karo injeksi ketergantungan lan Spring dianggep paling apik kanggo proyek kasebut. Nalika aku takon marang panyengkuyung Spring apa entuk manfaat, dheweke ora menehi jawaban sing jelas. Aku ndeleng sing padha saiki karo sawetara purists pemrograman fungsional sing koyone melu kampanye agama tinimbang evaluasi teknologi sing ora adil. Miturut cara, injeksi dependensi minangka ide sing apik lan saiki aku bisa ngerteni kanthi jelas keuntungane. Kajaba iku, aku mikir yen keprihatinanku babagan pemrograman fungsional ana gandhengane karo cara digunakake, tinimbang manawa pendekatan kasebut migunani lan bener.

Kesimpulan

Intine artikel iki ora kanggo menehi jawaban sing jelas kanggo pitakonan apa sampeyan kudu nindakake pemrograman fungsional. Intine yaiku carane sampeyan ngevaluasi teknologi utawa pendekatan anyar. Sing utama: aja nganti ego sampeyan ngalangi penilaian objektif saka sampeyan. Pangembangan piranti lunak dudu bukti kemampuan intelektual utawa kualitas pribadi sampeyan. Iku babagan nggawe nilai ing donya nyata. Yen pemrograman fungsional mbantu sampeyan, banjur gunakake.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION