Bahasa dan Framework Untuk Pemrograman Tahun 2022
Bahasa dan Framework Untuk Pemrograman Tahun 2022
Dasar-dasar Bahasa Pemrograman dan Pengembangan Web
Kegiatan utama dari pengembangan perangkat lunak adalah pemrograman atau menulis kode. Hal ini tentunya membutuhkan pemahaman mendalam mengenai satu atau lebih bahasa pemrograman komputer.
Dalam pengembangan sebuah web, sejumlah bahasa pemrograman tertentu diperlukan, dan beberapa lainnya sangat populer. Setiap bahasa pemrograman memiliki kegunaan, kekuatan, dan kelemahannya masing-masing.
Selain itu, alat yang tersedia dalam setiap bahasa pemrograman sangat menentukan kesesuaiannya secara keseluruhan untuk hal tertentu.
Mengapa Ada Begitu Banyak Bahasa Pemrograman yang Berbeda?
Jika Kamu baru memulai pengembangan sebuah web, Kamu mungkin merasa kewalahan ketika menyadari bahwa Kamu harus mempelajari lebih dari satu bahasa pemrograman, faktanya cukup sulit untuk mempelajari satu bahasa!
Jadi, mengapa ada begitu banyak bahasa pemrograman yang berbeda di luar sana?
Berbagai Jenis Bahasa
Alasan pertama banyaknya bahasa pemrograman adalah bahwa jenis bahasa yang diperlukan setiap program sangat berbeda.
Bahkan jika tidak ada dua bahasa yang tumpang tindih dalam hal fungsionalitas, mungkin diperlukan setengah lusin bahasa yang berbeda untuk memenuhi semua kebutuhan tersebut.
Tiga jenis bahasa yang paling penting untuk penggunaan web adalah:
- Bahasa Markup, yang digunakan untuk membubuhi keterangan data dan konten dengan informasi semantik tentang konten itu.
- Style Sheet Languages, yang digunakan oleh mesin rendering untuk menentukan cara menampilkan data dan konten.
- Bahasa Pemrograman, yang digunakan untuk menginstruksikan komputer untuk melakukan hal-hal tertentu.
Bahasa pemrograman
Bahasa pemrograman dibagi lagi menjadi bahasa tingkat rendah dan bahasa tingkat tinggi. Yang terakhir relatif dapat dibaca manusia — mereka cenderung mengikuti struktur dan sintaks bahasa asli.
Bahasa tersebut perlu ditafsirkan atau dikompilasi oleh alat yang sesuai sebelum komputer mengenali perintah yang diberikan.
Bahasa Tingkat Rendah
Bahasa tingkat rendah (yang umumnya mengacu pada kode mesin atau bahasa rakitan) adalah bahasa yang dapat dibaca oleh komputer dengan sedikit atau tanpa bantuan tambahan.
Selain sulit dibaca manusia, bahasa tingkat rendah biasanya tidak portabel di antara berbagai jenis sistem.
Apakah Saya Membutuhkan Lebih dari Satu Bahasa?
Seperti yang Kamu lihat, tidak ada cara bagi Kamu untuk melakukan semua yang perlu dilakukan tanpa menggunakan banyak bahasa.
Lewatlah sudah hari-hari ketika Kamu dapat membuang situs web sederhana di internet tanpa memusatkan perhatian pada tampilannya atau fitur interaktifnya.
Untungnya, bahasa tingkat tinggi yang digunakan saat ini lebih ramah bagi pengembang daripada bahasa tingkat tinggi sebelumnya.
Fokus Berbeda dari Bahasa Pemrograman
Setiap bahasa pemrograman memiliki fokus tertentu, yang mempengaruhi cara dan jenis kasus penggunaannya.
Pengembangan Situs Web dan Aplikasi
Misalnya, PHP dirancang untuk disematkan ke dalam dokumen HTML. Ini tentu membuatnya sangat berguna untuk membangun situs web dan aplikasi web.
Bahasa pemrograman C dan turunannya (C#, C++) menyediakan akses ke manipulasi perangkat keras tingkat rendah, yang membuatnya sangat berguna untuk perangkat lunak dasar seperti sistem operasi dan kompiler bahasa.
Tujuan Spesialis Bahasa
Ada juga bahasa pemrograman yang secara khusus ditujukan untuk sejumlah jenis domain khusus yang berbeda. Beberapa di antaranya termasuk perintah-dan-kontrol, kecerdasan buatan, analisis data, dan pemrosesan grafis.
Kamu dapat menggunakan bahasa untuk tujuan apa pun, tetapi ada kerugiannya.
Secara spesifik tidak ada pernyataan kategoris tentang apa konsekuensi dari pilihan itu, tetapi mungkin akan mejadikan set fitur yang kurang optimal, tingkat kinerja yang lebih rendah, dan sebagainya.
Bahasa Web Populer
Karena kombinasi persyaratan, popularitas, dan historis kecelakaan, bahasa pemrograman tertentu telah menjadi sangat terhubung dengan pengembangan web, bukan dengan aplikasi desktop.
Bahasa pemrograman tersebut terbagi dalam dua kategori besar:
- Bahasa client-site (sisi klien): File yang ditulis dalam bahasa client-site dikirim langsung ke browser web, yang menafsirkan file dan menampilkan konten ke pengguna akhir situs web.
- Bahasa server-site (sisi server) : Bahasa server-site adalah bahasa pemrograman yang digunakan untuk membangun aplikasi web yang berjalan di server (komputer yang menghosting situs web, bukan komputer orang yang mengunjunginya).
Sisi Klien vs Sisi Server
Ini bukan kategori keras dan cepat. Meskipun ada, pada satu titik, pemisahan yang ketat antara bagian depan dan belakang aplikasi dan situs web, ada tumpang tindih di antara keduanya.
Misalnya, beberapa hal yang dulunya dianggap hanya domain front-end sekarang dilakukan di back-end, seperti jenis rendering tertentu.
Namun demikian, kedua kategori ini berguna untuk klasifikasi umum bahasa.
Bahasa Sisi Klien
Jika Kamu melakukan semua jenis web sisi klien atau pekerjaan pengembangan front-end, Kamu mungkin akan menggunakan bahasa pemrograman berikut. Bahkan jika Kamu tidak berencana untuk menjadi ahli di dalamnya, Kamu harus memiliki beberapa tingkat kemahiran saat bekerja dalam pengembangan web.
Jika ada, ini biasanya digunakan bersama dengan bahasa sisi server/back-end, bukan sebagai ganti bahasa tersebut.
- HTML — Hypertext Markup Language
Halaman dan dokumen situs web ditulis dalam HTML, yang terdiri dari konten dasar yang dikombinasikan dengan tag antar-linier yang memberikan informasi semantik tentang konten yang dilampirkan.
- CSS — Cascading Style Sheet
CSS menyediakan satu set instruksi rinci ke browser (atau printer) tentang bagaimana konten dokumen HTML harus ditampilkan. CSS menyertakan detail seperti deklarasi font, ukuran, warna, penempatan di halaman, dan prioritas pelapisan.
- JS — JavaScript
JavaScript adalah bahasa scripting yang dapat digunakan untuk menyediakan interaksi web yang kaya di dalam browser. JS digerakkan oleh peristiwa, merespons tindakan yang diambil oleh pengguna (seperti mengklik, mengarahkan mouse, mengarahkan kursor, dan mengetik).
JavaScript memiliki akses penuh ke struktur dokumen halaman web terkait. Namun, jangan bingung antara JavaScript dengan Java. Mereka adalah bahasa yang sama sekali berbeda dan tidak ada hubungannya satu sama lain.
Catatan Tentang JavaScript
Sementara JavaScript dipandang sebagai bahasa pemrograman sisi klien pada satu titik, ini tidak lagi terjadi.
JavaScript sekarang dapat digunakan di berbagai aplikasi, termasuk server-side/back-end, serta database, program non-web, dan aplikasi seluler.
Misalnya, terkadang Kamu akan melihat aplikasi yang menggunakan JavaScript di front-end dan back-end, serta lapisan database tengah, sebagai aplikasi JavaScript full-stack.
Apakah JavaScript Populer?
Pada dasarnya, JavaScript sangat populer di dunia pengembangan web saat ini.
Ini adalah bagian integral dari apa yang sering disebut sebagai tumpukan MEAN, framework JavaScript tumpukan penuh. Tumpukan MEAN terdiri dari:
- Node.js , yang merupakan JavaScript sisi server
- Express.js, framework aplikasi web berbasis Node.js
- Angular.js, framework aplikasi web yang digunakan untuk membuat front-end yang interaktif dan dinamis
Kami ingin mencatat bahwa tumpukan MEAN bukan satu-satunya opsi yang tersedia — ada opsi lain yang mungkin merupakan pilihan yang lebih baik untuk proyek Kamu.
Fungsi Komponen Hasil
Kamu dapat memikirkan ketiga bahasa ini bertindak bersamaan dengan cara komponen yang berbeda dari sebuah framework bersama. HTML ibarat pondasi dan rangka rumah.
CSS adalah yang menentukan bagaimana rumah akan terlihat — warna cat, jenis jendela, dan sebagainya. JavaScript membuat segalanya menjadi interaktif — dalam analogi rumah kami, ini akan menjadi item seperti pembuka pintu garasi, peredup lampu, dan sebagainya.
Bahasa Sisi Server
Hampir semua bahasa pemrograman (C#, Objective-C, dll) dapat digunakan untuk membangun aplikasi sisi server, tetapi beberapa bahasa tertentu menjadi sangat populer.
Beberapa dari mereka dirancang untuk web (PHP, ASP), sementara yang lain dimulai sebagai bahasa tujuan umum yang telah diperluas dengan seperangkat alat standar untuk melakukan pengembangan web.
- ASP
ASP.NET .
- ColdFusion
Secara teknis platform/kerangka pengembangan aplikasi, ColdFusion menggunakan bahasa scripting ColdFusion Markup Language (CFML), ColdFusion dirancang untuk memudahkan pengembang menghubungkan halaman web HTML ke database.
- Java
Java adalah bahasa berorientasi objek yang digunakan untuk desktop, web, dan aplikasi tertanam pada berbagai platform.
Ini telah digunakan sebagai bahasa skrip sisi klien, tetapi membutuhkan plugin browser, sehingga tidak lagi umum.
Penggunaan sisi servernya sebagian besar telah digantikan oleh JavaScript yang sama, tetapi tidak terkait.
- PHP
PHP — hypertext preprocessor — adalah bahasa skrip sisi server paling populer di dunia.
PHP berada di belakang sistem manajemen konten paling populer seperti WordPress, Drupal, Joomla, dan Mediawiki.
- Python
Python adalah bahasa pemrograman berorientasi objek yang sangat baik untuk skrip shell, dan populer untuk kegunaan lain di antara tipe orang yang benar-benar masuk ke skrip shell.
- Rubi
framework aplikasi Ruby on Rails .
Bahasa Sisi Server Terkemuka Lainnya
- SSI
SSI — Server Side Include — adalah bahasa skrip sisi server yang sangat sederhana untuk memasukkan bagian dokumen HTML ke dalam dokumen HTML lainnya.
- VB.NET
VB.NET — Visual Basic .NET — Bagian dari keluarga .NET Microsoft.
- Perl
Perl dikenal sebagai bahasa pemrograman tujuan umum, sangat populer di kalangan geeks Comp Sci yang keren.
Bahasa Web Lainnya
Web bukan hanya tentang situs web lagi. Ketika internet semakin mencakup perangkat, permainan waktu nyata, realitas virtual, dan sejumlah besar paradigma teknologi baru lainnya, bahasa baru sedang dibuat. Ini sedang dimasukkan ke dalam layanan untuk menerapkan ide-ide baru. Beberapa yang mungkin Kamu lihat meliputi:
- TCL — Tool Command Language — Open source, bahasa pemrograman yang kuat yang sering digunakan untuk aplikasi perintah-dan-kontrol.
- WAP/WML — Protokol Aplikasi Nirkabel & Bahasa Markup Nirkabel – Umumnya digunakan untuk hal-hal seperti transfer data dan presentasi (bahasa tersebut tidak digunakan lagi, tetapi Kamu mungkin masih melihatnya digunakan)
- VRML — Bahasa Pemodelan Realitas Virtual — Format untuk merepresentasikan item 30D, seperti grafik vektor (telah digantikan oleh bahasa lain)
Haruskah Saya Memilih Bahasa Tertentu?
Secara umum, Kamu akan mencoba untuk menghindari penggunaan bahasa tertentu (atau dikenal sebagai bahasa khusus domain).
Internet memiliki aturan de facto tertentu tentang bahasa mana yang “harus” digunakan dan bahasa mana yang harus dihindari.
Tidak pernah ada waktu di mana Kamu akan memilih bahasa khusus — memilih bahasa yang didukung secara umum berarti Kamu akan:
- Lebih mudah menemukan alat dan layanan, seperti hosting web, yang berfungsi baik dengan apa yang Kamu buat.
- Dapatkan waktu yang lebih mudah untuk menjangkau khalayak luas karena dukungan dan penerimaan yang luas dari bahasa dan teknologi populer.
Apakah Bahasa Pemrograman Mempengaruhi Pilihan Hosting?
Tidak semua penyedia mendukung semua bahasa pemrograman. Jika Kamu menggunakan opsi yang lebih populer, seperti JavaScript atau PHP, Kamu tidak akan kesulitan menemukan host web yang sepenuhnya mendukung situs web dan aplikasi Kamu.
Namun, jika Kamu memilih opsi yang kurang umum digunakan, seperti ColdFusion, Kamu akan memiliki lebih sedikit opsi. Selain itu, opsi yang tersedia biasanya akan lebih mahal.
Pilih Opsi Populer Jika Memungkinkan
Jika Kamu bisa, cobalah untuk memilih opsi yang banyak digunakan dan didukung secara luas jika memungkinkan. Hampir semua penyedia web hosting mendukung CSS, HTML, dan JavaScript.
Terserah Kamu mana yang Kamu pilih terlebih dahulu (penyedia hosting web atau bahasa pemrograman Kamu), tetapi penting untuk memastikan keduanya akan cocok satu sama lain.
Kesimpulan
Ada banyak bahasa pemrograman di luar sana, bahkan untuk subset rekayasa perangkat lunak, seperti pengembangan web.
Bahasa yang berbeda memiliki kekuatan dan kelemahan yang berbeda, sehingga opsi yang paling sesuai dengan kebutuhan Kamu bergantung pada apa yang Kamu coba lakukan.
Opsi Framework dan Hosting
Apa itu Framework?
Framework aplikasi web adalah aplikasi perangkat lunak berbasis web generik yang diperluas dan dimodifikasi oleh pengembang untuk membuat aplikasi tertentu. Framework menyediakan:
- Fungsionalitas umum
- Solusi bawaan untuk sejumlah masalah pemrograman umum
- Struktur untuk mengatur kode
- Filosofi pembangunan atau paradigma arsitektur
Fitur Umum Framework
Sebagian besar aplikasi perangkat lunak, termasuk aplikasi berbasis web, memiliki sejumlah fitur atau fungsi yang sangat mirip. Hal ini terutama berlaku untuk aplikasi web, yang memanfaatkan hal-hal berikut:
- perutean URL
- Templat / tampilan
- Interaksi basis data
- Kontrol formulir
- manipulasi DOM
- Permintaan asinkron
- Validasi masukan
- Manajemen pengguna
- Manajemen sesi
Berurusan dengan Aplikasi Web Dalam Domain
Terlebih lagi, hal ini terjadi ketika berhadapan dengan aplikasi web dalam domain tertentu. Sebagai contoh:
- Semua aplikasi e-commerce harus berurusan dengan pemrosesan pembayaran, keamanan, manajemen produk, dan penetapan harga
- Setiap sistem manajemen konten (CMS) harus berurusan dengan penulis, pengeditan konten, komentar, kategori, pengunggahan media, dan menu
Dalam kebanyakan kasus bisnis, tidak ada gunanya menghabiskan waktu dan uang untuk membuat kode dan mengembangkan semua fungsi ini berulang kali.
Apa yang Membuat Framework Bagus?
Framework pengembangan aplikasi yang baik memecahkan sebagian besar masalah ini sehingga tidak harus ditangani oleh pembuat kode/pengembang aplikasi.
Ini tidak hanya menghemat waktu tetapi juga biasanya memastikan bahwa kode untuk fitur dasar tingkat rendah ini dibuat dengan baik dan diuji dalam produksi. Ini adalah penggunaan sumber daya pemrograman yang lebih baik untuk fokus pada fitur baru dan fungsi khusus bisnis.
Framework dan Arsitektur
framework pengembangan aplikasi lebih dari sekadar serangkaian pustaka boilerplate atau kumpulan kode. Ini bukan hanya kumpulan alat.
Apakah Framework adalah Aplikasi?
Sebaliknya, framework adalah bentuk generik dari aplikasi, yang dibuat khusus oleh tim pengembangan. (Ini agak analog dengan kelas abstrak yang disubklasifikasikan.)
Hasil dari ini adalah bahwa framework aplikasi harus memaksakan paradigma arsitektur dan kadang-kadang filosofi pengembangan.
Beberapa pengembang menganggap pengenaan ini sebagai alasan untuk tidak menggunakan framework, tetapi sebenarnya, justru itulah manfaat terpenting mereka.
Apa yang Diberikan oleh Framework?
Menyediakan struktur arsitektur menghilangkan kebutuhan untuk memutuskan bagaimana berbagai bagian dari aplikasi akan bekerja sama. Ini mempromosikan organisasi kode yang dirancang dengan baik dan pemisahan masalah yang masuk akal.
Ini menyelamatkan pembuat kode dari keputusan sewenang-wenang tentang di mana menempatkan jenis logika tertentu.
- Model-View-Controller
Sebagian besar framework aplikasi web mengikuti beberapa versi pola arsitektur Model-View-Controller ( MVC ).
Pola MVC adalah salah satu pola arsitektur paling sederhana dan paling mendasar. Ini sangat cocok untuk web, yang pada dasarnya adalah jaringan klien antarmuka pengguna.
Model-View-Controller adalah cara mengatur aplikasi ke dalam tiga area perhatian yang berbeda:
- Model : Struktur data
- Lihat : Output yang diformat ke pengguna
- Controller : Koneksi antara model dan view, serta logika aplikasi
- Model
Model mendefinisikan skema data untuk aplikasi Kamu. Biasanya berbentuk serangkaian kelas yang menentukan item utama yang menarik bagi aplikasi, seperti:
- Rakyat
- Postingan blog
- Pesanan
- Produk
- Toko
Di sebagian besar framework aplikasi web, kelas model digunakan untuk menghasilkan struktur basis data.
Kelas framework yang mendasarinya (sering disebut pola rekaman aktif, di mana pemetaan relasional objek adalah implementasi subset) berkomunikasi dengan database.
Kelas model dan kelas framework pada dasarnya menyediakan lapisan abstraksi, yang memungkinkan banyak opsi framework menjadi database-agnostik.
- View
View biasanya merupakan kumpulan file template yang menentukan bagaimana model tertentu ditampilkan kepada pengguna.
Biasanya ada setidaknya satu tampilan per model, dan dalam kasus tertentu, mungkin ada beberapa tampilan per model — misalnya, mungkin ada kumpulan data yang perlu disajikan dalam tiga cara berbeda.
- Controller
Dalam paradigma MVC konvensional, Controller hanyalah perekat yang menyatukan Model dan View. Tetapi dalam banyak situasi dunia nyata, terutama yang memiliki persyaratan perintah-dan-kontrol yang kuat (robotik, pengiriman, manajemen lalu lintas), controller dapat menjadi bagian yang sangat besar dari aplikasi.
Pengendali sering dapat dipecah menjadi dua bagian yang berbeda (meskipun ini tergantung pada framework).
Pengontrol Aplikasi
Pengontrol Aplikasi menerima permintaan dari server web dan memanggil model dan tampilan yang diperlukan untuk memenuhi permintaan. Dalam bahasa MVC, ini adalah arti asli dari controller.
Pengontrol Khusus Jenis
Seringkali ada pengontrol individu yang menangani jenis fungsionalitas tertentu, seperti pengontrol formulir, atau pengontrol email.
Memilih Framework Pengembangan
Salah satu kendala dalam memilih framework aplikasi web adalah mereka cenderung cukup mirip, terutama pada tingkat deskripsi tekstual.
Kebanyakan dari mereka adalah MVC, kebanyakan dari mereka menangani kebutuhan dasar seperti manajemen sesi, kebanyakan dari mereka berjanji untuk mempercepat pengembangan, kebanyakan dari mereka mengklaim untuk meningkatkan kebahagiaan pengembang.
Apakah Banyak Framework Sama?
Sebagian besar alasannya adalah karena kesuksesan menciptakan peniru. Karena berbagai pengembang framework telah melihat apa yang dilakukan pihak lain, mereka masing-masing telah mengerjakan ide-ide terbaik ke dalam kode mereka sendiri.
Ada konvergensi keunggulan yang membuat framework paling populer menjadi sangat bagus dan sangat mirip.
Haruskah Pengetahuan Pemrograman yang Dimiliki Menentukan Pilihan?
Faktor penentu terbesar dalam hal framework yang Kamu pilih adalah bahasa. Jika Kamu sudah tahu cara menulis Ruby on Rails, yang menyebabkan banyak orang mulai belajar Ruby.
Di luar itu, cara terbaik Kamu adalah benar-benar melihat beberapa aplikasi yang dibangun menggunakan framework yang Kamu pertimbangkan.
Gunakan Contoh Kehidupan Nyata sebagai Panduan
Pernahkah seseorang membangun sesuatu yang sangat mirip dengan apa yang ingin Kamu bangun? Gunakan framework yang sama.
Apakah satu framework tampaknya lebih masuk akal bagi Kamu daripada yang lain? Gunakan yang itu.
Sebagian besar framework menyediakan fitur yang sangat mirip. Jadi, alih-alih mencoba menemukan framework yang tepat, cobalah mencari kerangka yang tepat untuk Kamu.
Kerangka Pengembangan Web menurut Bahasa
Di bagian berikut, kami akan membahas berbagai framework untuk beberapa bahasa pengembangan web paling populer.
Selain membantu Kamu memulai dengan memilih opsi yang tepat, Kamu akan melihat bagaimana opsi yang berbeda (atau tidak) dan bagaimana pengembang memilih untuk mengimplementasikan fitur dan fungsionalitas.
- PHP
PHP adalah bahasa sisi server yang biasa digunakan untuk skrip, tetapi telah mendapatkan popularitas sebagai bahasa serba guna umum selama bertahun-tahun.
Beberapa framework PHP yang tersedia antara lain CakePHP, CodeIgniter, Laravel, Symfony, Yii, dan Zend.
- CakePHP
CakePHP adalah framework yang lebih modern yang menyertakan fitur scaffolding yang membuat Ruby on Rails terkenal.
Pembuatannya cepat, dan Kamu mendapatkan banyak pengujian dan fitur keamanan yang berbeda yang dibangun ke dalam framework.
- CodeIgniter
Jika Kamu mencari framework ringan yang hebat dalam situasi pengembangan aplikasi yang cepat, tidak perlu mencari yang lain selain CodeIgniter.
CodeIgniter mudah digunakan, dilengkapi dengan banyak perpustakaan, dan berafiliasi dengan komunitas yang aktif, jadi Kamu pasti akan menemukan banyak sumber daya untuk bekerja dengan CodeIgniter.
- Horde
Jika Kamu mencari framework sumber terbuka dan gratis yang akan membantu Kamu membuat perangkat lunak kolaboratif, maka Horde mungkin menjadi pilihan untuk Kamu.
Selain memberi Kamu komponen seperti email dan kalender, Hoard berfungsi seperti yang Kamu harapkan dari framework aplikasi web serba guna yang berfungsi. Kamu akan mendapatkan kelas yang perlu Kamu tangani:
a. Preferensi pengguna
b. Kompresi untuk file
c. Deteksi peramban
d. Pelacakan koneksi
e. Penanganan pantomim
- Laravel
Laravel adalah salah satu framework PHP yang paling populer. Laravel gratis, open source, dan dimaksudkan untuk memfasilitasi pengembangan aplikasi yang cepat. Laravel awalnya dirancang untuk menjadi alternatif yang lebih maju untuk CodeIgniter. Ada juga sistem manajemen konten yang dibangun di atas framework Laravel (disebut Oktober).
Dukungan MVC oleh Laravel
Laravel mendukung pola arsitektur MVC, dilengkapi dengan fungsionalitas pengujian unit bawaan, dan menyertakan banyak fitur langsung dari kotak.
Ini memiliki sistem pengemasan modular/manajer paket untuk penambahan fitur, beberapa metode untuk berkomunikasi dengan database relasional, dan utilitas untuk membantu penyebaran dan pemeliharaan aplikasi.
- symfony
Symfony adalah framework PHP yang berkinerja, stabil, dan matang. Meskipun menggunakan Symphony datang dengan kurva belajar yang curam, ada dokumentasi dan dukungan yang sangat baik yang tersedia.
Pustaka dan Komponen yang Dapat Digunakan Kembali
Symfony menekankan komponen dan pustaka PHP yang dapat digunakan kembali karena tujuan keseluruhannya adalah untuk mempercepat pembuatan, penerapan, dan pemeliharaan aplikasi web dan situs web PHP.
Ada sedikit fokus perusahaan, dan pengembang ditugaskan dengan kontrol konfigurasi penuh dan pengambilan keputusan.
Symfony sangat terinspirasi oleh Spring Framework, yang merupakan framework yang tersedia untuk pengguna bahasa pemrograman Java.
- Yii
Yii adalah open-source, framework berkinerja tinggi yang dirancang untuk aplikasi yang membutuhkan halaman web yang kompleks (namun cepat dimuat).
Yii dimaksudkan agar mudah digunakan, dan merupakan salah satu framework PHP tertua yang masih aktif dipertahankan.
- Zend
Jika Kamu mencari framework perusahaan, Zend mungkin menjadi pilihan untuk Kamu. Ini tidak ideal untuk pengembangan aplikasi yang cepat, tetapi Kamu mendapatkan fitur keamanan terbaik, kinerja tinggi, dan kemampuan untuk memperluas platform Kamu seperlunya.
Fokus perusahaannya berarti ada banyak komponen.
- Zikula
Zikula jauh lebih dari sekadar framework aplikasi web. Kamu hampir dapat menganggapnya sebagai kombinasi sistem manajemen konten (CMS) dan framework aplikasi web.
Zikula adalah perpanjangan dari Symfony (dibahas secara singkat di atas). Daya tarik terbesar Zikula dibandingkan Symfony adalah peningkatan fitur yang ditujukan untuk pengembangan fitur dinamis, sistem tema, dukungan untuk pembuatan prototipe cepat, dan fitur terkait CMS.
Dalam banyak kasus, Zikula mungkin sedikit berlebihan. Namun, jika Kamu mencari framework berfitur lengkap yang kemungkinan besar tidak akan Kamu perbesar, Zikula akan menjadi pilihan yang bagus untuk Kamu.
- Rubi
Ruby adalah bahasa pemrograman berorientasi objek modern yang mudah digunakan yang dirancang untuk membuat programmer senang. Namun, Ruby relatif jarang digunakan sebelum keberhasilan framework Ruby on Rails.
- Ruby on Rails
Ruby on Rails (kadang-kadang disebut sebagai “Rails”) adalah alasan mengapa Ruby menjadi sangat populer. Pada awal 2000-an, David Heinemeier Hansson mengembangkan framework web khusus untuk digunakan dengan produk unggulan Bootcamp.
Hansson kemudian mengekstrak framework yang mendukung produk dan merilisnya sebagai proyek sumber terbuka.
Ruby on Rails adalah framework sisi server yang menggunakan MVC dan merupakan pengembang perangkat lunak disebut sebagai “framework beropini”. Rails dibuat untuk mendorong Kamu melakukan sesuatu dengan cara tertentu — sementara ini dapat menghambat kreativitas/kebebasan, Rails, pada akhirnya, sangat bagus untuk mengembangkan aplikasi yang kuat (bahkan jika itu bukan yang paling berkinerja).
- Sinatra
Dinamakan setelah musisi Frank Sinatra, framework ini adalah salah satu alternatif utama untuk Ruby on Rails jika Kamu bekerja dengan Ruby.
Sinatra berbeda dari Rails dalam hal pengiriman hanya dengan dasar-dasarnya — sementara Rails adalah monolit yang menangani hampir semua hal, Sinatra telah memilih rute yang berlawanan dan hanya memberi Kamu apa yang Kamu butuhkan untuk mengembangkan aplikasi web.
- Java
Jika Kamu bekerja dengan Java, yang biasanya digunakan dalam perusahaan, salah satu opsi Kamu adalah Spring Framework.
Meskipun Spring sendiri dapat digunakan oleh aplikasi Java secara umum, Kamu dapat memanfaatkan ekstensi yang tersedia untuk membuat aplikasi web di atas Java Enterprise Edition (atau Java EE).
Spring tidak mengharuskan Kamu untuk mengikuti paradigma atau model pemrograman tertentu, tetapi Kamu dapat menggunakan komponen Spring MVC jika mengikuti pola MVC penting bagi Kamu.
- Python
Python adalah bahasa pemrograman tingkat tinggi, berorientasi objek, dan serba guna yang telah mengalami lonjakan popularitas baru-baru ini (terutama di bidang ilmu data).
Python tidak umum digunakan untuk pengembangan web seperti bahasa lain, tetapi itu tidak berarti Kamu tidak akan melihat aplikasi web Python dengan keteraturan tertentu.
- Django
Django dengan berani menyatakan dirinya sebagai “kerangka web untuk perfeksionis dengan tenggat waktu.”
Tidak mengherankan bahwa Django adalah salah satu framework web Python paling populer. Selain menjadi gratis dan sumber terbuka untuk semua pengguna Python, Django menawarkan apa yang oleh sebagian orang disebut sebagai pengalaman “lengkap” — Kamu mendapatkan semua yang Kamu butuhkan, ditambah lagi.
Tujuan Django adalah untuk memudahkan pengembang Python untuk membuat situs web kompleks yang digerakkan oleh data.
Komponen yang Kamu buat dapat dengan mudah digunakan kembali (Django hampir secara dogmatis menganut aliran pemikiran “jangan ulangi diri Kamu sendiri”), dan Kamu dapat dengan mudah membuat aplikasi web Kamu berputar dengan cepat.
Fitur dan Implementasi Administratif
Django hadir dengan fitur administratif yang sangat baik, seperti antarmuka CRUD (buat, baca, perbarui, dan hapus) yang dihasilkan secara dinamis.
Itu tidak akan meminta Kamu untuk memutuskan bagaimana Kamu ingin hal-hal tertentu diimplementasikan. Secara umum, jika Kamu bekerja dengan proyek yang lebih langsung, Django adalah framework web Python untuk digunakan.
- Flask
Flask adalah framework Python yang hebat (secara teknis, Flask menyebut dirinya sebagai “kerangka web mikro”) jika Kamu mencari sesuatu yang mudah digunakan, namun fleksibel.
Flask dianggap sebagai microframework karena tidak:
- Memerlukan alat atau perpustakaan khusus
- Sertakan komponen yang fungsinya disediakan oleh perpustakaan pihak ketiga
Untuk menambahkan fitur aplikasi, Kamu perlu menggunakan ekstensi Flask (untungnya, ada banyak variasi ekstensi dan kebanyakan cenderung lebih sering diperbarui daripada inti Flask itu sendiri).
Flask memungkinkan Kamu untuk membuat keputusan tentang bagaimana Kamu ingin aspek-aspek tertentu dari aplikasi web Kamu berperilaku.
- JavaScript
JavaScript adalah salah satu dari tiga teknologi yang membentuk inti dari pengembangan aplikasi web. Kodenya pernah digunakan hanya untuk aplikasi sisi klien, tetapi bahasa tersebut telah menjadi pemain utama yang menggerakkan sebagian besar situs web saat ini.
JavaScript sisi klien bukan lagi satu-satunya cara Kamu dapat menggunakan bahasa tersebut. Ada banyak implementasi JavaScript yang tersedia.
- Angular.js
Angular.js adalah framework aplikasi web front-end yang dikeluarkan oleh Google dan dikelola oleh Google dan komunitas kontributor open source. Tujuannya adalah untuk menyederhanakan siklus hidup pengembangan SPA (khususnya selama fase pengembangan dan pengujian), dan menggunakan MCV, serta model-view-ViewModel (MVVW).
Angular.js awalnya diluncurkan untuk mengatasi masalah yang diangkat oleh pengembangan aplikasi satu halaman, yaitu aplikasi web atau situs web yang menulis ulang dirinya sendiri secara dinamis berdasarkan interaksinya dengan pengguna, daripada memuat ulang halaman secara keseluruhan dengan file dari server asal.
Aplikasi web/halaman web tersebut terlihat berperilaku lebih seperti aplikasi desktop.
- Express.js
Express.js sebenarnya bukan framework aplikasi web seperti banyak lainnya dalam daftar ini. Express.js lebih seperti framework server untuk aplikasi web, dan Kamu akan sering menemukannya digunakan sebagai bagian dari tumpukan MEAN, yang meliputi:
- M ongoDB
- E xpress.js
- Sebuah ngular.js
- N ode.js
Express.js terinspirasi oleh framework Ruby yang disederhanakan, Sinatra. Express.js secara keseluruhan adalah proyek yang sangat sederhana, tetapi pengguna dapat dengan mudah menambahkan apa yang mereka butuhkan menggunakan plugin.
- Node.js
Node.js adalah lingkungan yang memungkinkan Kamu untuk mengeksekusi kode JavaScript sisi server (ingat, JavaScript dulunya secara eksklusif merupakan domain sisi klien).
Namun, Node.js memungkinkan pengembang untuk menjalankan JavaScript di server, konten dinamis produk, dan menyajikan konten tersebut sebelum halaman dikirim ke pengguna.
Selain itu, aplikasi yang menggunakan Node.js sangat cepat dibandingkan dengan aplikasi yang dibuat dengan PHP atau ASP.NET. Aplikasi PHP atau ASP.NET menangani permintaan secara berurutan, jadi waktu tunggu sangat memengaruhi kinerja aplikasi. Node.js, bagaimanapun, menangani sesuatu secara asinkron dan menghilangkan masa tunggu yang ada dengan aplikasi tradisional.
Node.js sangat populer, dan komunitasnya besar. Ada ribuan perpustakaan sumber terbuka yang tersedia, serta dua milis besar, saluran IRC, dan banyak konferensi berorientasi pengembang.
Dengan Node.js, Kamu dapat menggunakan JavaScript di mana saja — Kamu tidak perlu menggunakan bahasa yang berbeda untuk front-end, middle-tier, atau server-side.
- React.js
React.js bukanlah framework dalam arti sebenarnya — ini sebenarnya adalah library JavaScript yang memudahkan pengembang untuk membangun antarmuka pengguna yang dinamis.
Kekuatannya adalah memungkinkan pengembang untuk membuat halaman yang dapat diperbarui terus-menerus dengan data dan diubah, semua tanpa memerlukan penyegaran halaman (sesuatu yang biasanya kurang optimal, karena pengguna tidak menyukai interupsi).
Jika Kamu telah menggunakan Facebook, Kamu akan melihat React beraksi. React adalah produk Facebook, dan penggunaannya paling jelas di pembaruan Umpan Facebook — perhatikan bagaimana item baru muncul di bagian atas tanpa memuat ulang halaman web Kamu.
Dalam bahasa framework MVC, React.js sesuai dengan lapisan “V” (atau tampilan). React.js dapat dengan mudah digunakan bersama dengan framework JavaScript lainnya.
- Microsoft
Microsoft adalah salah satu pemain terbesar di industri teknologi, dan perusahaan pasti telah berkontribusi pada dunia kerangka aplikasi web.
- ASP.NET/ASP.NET Inti
ASP.NET adalah open source, framework sisi server yang memungkinkan Kamu untuk menghasilkan situs web dinamis, aplikasi web, dan layanan web. Ini adalah penerus ASP Microsoft dan bagian dari .NET Framework.
ASP.NET sendiri telah digantikan oleh ASP.NET Core, meskipun Kamu masih akan melihat yang pertama digunakan dengan beberapa keteraturan.
Perhatikan bahwa ASP.NET Core tidak khusus untuk Windows — ia akan berjalan menggunakan .NET Framework di Windows, serta .NET Core lintas platform.
ASP.NET Core menampilkan hal-hal seperti:
- kompilasi berkelanjutan
- Modularitas, menggunakan paket NuGet
- Pengoptimalan untuk implementasi cloud
Itu juga host-agnostik, ringan, dan berfokus pada komunitas.
- Silverlight
Kamu tidak mungkin melihat Microsoft’s Silverlight digunakan untuk aplikasi baru, tetapi pasti ada contoh yang digunakan di aplikasi lama.
Silverlight, pada satu titik, adalah pilihan bagus bagi mereka yang menyajikan aplikasi kaya media.
Jika Kamu bekerja di ekosistem Windows, Kamu mungkin sering menjumpai Silverlight.
Framework yang Memanfaatkan Pola Arsitektur Non-Model-View-Controller (MVC)
Sebagian besar framework yang telah kami sebutkan di atas mengikuti pola arsitektur Model-View-Controller (MVC), tetapi ada alternatif, termasuk MVVM dan MVP.
Bersama-sama, MCV, MVVM, dan MVP adalah tiga pola arsitektur yang umum digunakan di bidang pengembangan web.
MVVM
Kami secara singkat menyebutkan Model–View–ViewModel (MVVM) di bagian Angular.js di atas.
Di MVVM, kami memiliki ViewModel alih-alih Controller. ViewModel bertanggung jawab untuk hal-hal seperti:
- perintah
- Fungsi yang membantu mempertahankan status Tampilan
- Menampilkan metode
- Memanipulasi Model
- Memicu Lihat acara
Untuk Apa MVVM Baik?
Secara umum, MVVM sangat baik untuk aplikasi satu halaman. Ini bukan framework yang lengkap tetapi biasanya digunakan sebagai bagian dari framework.
Beberapa opsi MVVM meliputi:
- Prisma
- Cahaya MCCM
- Kaliburn Mikro
MVP
Ada juga kerangka Model-View-Presenter (MVP). MVP sangat mirip dengan MVC, tetapi dengan Controller diganti dengan Presenter. Presenter digunakan untuk menangani semua peristiwa terkait antarmuka pengguna atas nama View. Presenter:
- Menerima masukan pengguna melalui Tampilan
- Memproses data pengguna melalui Model (yang meneruskan hasilnya kembali ke Tampilan)
Tampilan dan Penyaji Terpisah
Berbeda dengan lapisan View dan Controller di MVC, View dan Presenter benar-benar terpisah dan berkomunikasi satu sama lain melalui antarmuka. Beberapa opsi framework MVP meliputi:
- Atom
- ionik
- React-Native






