TREN TEKNOLOGI PROGAMMING MOBILE, WEB, DAN DESKTOP DIMASA KINI DAN NANTI
Perkembangan teknologi saat ini memang terus berinovasi tidak ada habisnya. Sebagai seorang IT terutama programmer, kita harus bisa beradaptasi dengan perkembangan teknologi yang super cepat update-nya.
Mobile Programming
Mobile development merupakan salah satu teknologi yang sangat cepat perkembangannya. Dimulai dari sebuah data yang mengatakan bahwa pengguna aplikasi mobile terutama Android dan iOS, jauh lebih banyak dari pengguna aplikasi platform lain. Dari data tersebut, perusahaan pengembang aplikasi berlomba-lomba untuk membangun aplikasi mobile.
1. REACT NATIVE
React Native merupakan Library besutan Facebook untuk membangun aplikasi mobile baik untuk Android maupun iOS dengan hanya satu codebase. Selain itu, dengan React Native Anda dapat membangun aplikasi mobile semudah membuat Web App, tetapi dengan hasil se-stable dan se-scalable aplikasi yang dibangun dengan Java (Android), ataupun Obj-C (iOS) atau biasa disebut Native. Jika background Anda adalah Web Developer, maka Anda akan feels like home.
React Native mainly menggunakan Javascript untuk membangun aplikasi Mobile. Tidak seperti Phonegap, code javascript yang di-code dengan React Native tidak ditampilkan menggunakan webview sehingga membuat aplikasi mobile tidak terasa native alias lelet. React Native menggunakan teknik bridging, sehingga code Javascript di bridge ke Java (untuk Android), dan ke Obj-C (untuk iOS) sehingga aplikasi yang dibangun dengan React Native, serasa benar-benar native alias fast!
PROS: Relatif mudah dipelajari, performa yang cukup baik, dan terbukti telah digunakan di banyak perusahaan besar
CONS: Jarangnya Widget official, yang mana hal ini sometime good, sometime not. Contohnya ketika update terlalu cepat sehingga sometime versi React Native tidak match dengan plugin tersebut saat diupdate, ataupun suatu plugin yang sering berimbas ke plugin yang lain.
2. Flutter
Flutter adalah library besutan Google yang dibangun di atas bahasa pemrograman bernama “Dart”. Sama seperti React Native, Flutter tidak menggunakan WebView seperti Phonegap, melainkan Real Native Experience!!
Bahkan flutter digadang-gadang lebih performant dibanding dengan React Native, karena dart bisa langsung mengakses Native Widget OS tanpa melalui OEM Widget ataupun tanpa teknik Bridging seperti React Native yang membutuhkan Java atau Obj-C untuk mengakses Native Widget!! Super Cool!
PROS: By default Flutter menyediakan widget official yang sudah keren dari sononya, sehingga untuk membangun UI/UX jadi lebih terstandard.
CONS: Learning Curve yang cukup dalam, minimal Anda harus mengerti konsep dasar pemrograman dengan baik terutama OOP (tidak memungkiri React Native juga demikian, tetapi sometime we don’t need to know about it further).
3. Progressive Web App
Progressive Web App atau biasa disebut PWA sebenarnya adalah aplikasi web pada umumnya tetapi difokuskan untuk tampilan mobile. Perbedaan web app biasa dengan PWA terletak pada load time, dan offline experience nya.
Dengan bantuan Service Worker, Anda dapat menyimpan code html, css, js Anda pada semacam cache. So, ketika ada user yang sudah mengakses sekali aplikasi PWA Anda, maka user tidak perlu lagi meload lagi html css pada halaman yang sudah diakses. Hal ini tentunya mempersingkat load time, sehingga web app terasa lebih cepat.
Selain itu, Anda dapat menggunakan localstorage atau apapun itu untuk menyimpan data yang sudah diakses melalui REST API untuk meningkatkan lagi performa dari PWA ini, sehingga tidak perlu berulang-ulang mengakses REST API atau saat kondisi offline, aplikasi tetap dapat mengakses data yang dibutuhkan.
Pada Android, PWA ini bisa ditambahkan ke Home Screen untuk mempermudah akses aplikasi, sehingga aplikasi serasa telah didownload dari playstore.
PROS: This is future mobile development, tanpa install via appstore/playstore, user sudah bisa mendapatkan Native Mobile Experience seperti yang bisa kita dapatkan melalui aplikasi Native pada umumnya.
CONS: Add to Home Screen feature saat ini hanya ada di Android.
Web Programming
1. Accelerated Mobile Pages
Siapa yang tak kenal Google News? Aplikasi milik Google yang tersedia di Android dan iOS ini memiliki fungsi membagikan berita ke pengguna sesuai dengan minat dari penggunanya. Konten yang dibagikan oleh Google News tersebut merupakan konten yang telah mendukung format Accelerated Mobile Pages (AMP). Accelerated Mobile Pages (AMP) adalah sebuah framework pengembangan web minimalis. Hanya HTML dan CSS saja dalam halaman web AMP tidak ada Javascript.
Misi dari AMP ini adalah me-load halaman web dalam waktu kurang dari dua detik. Oleh karena itu, penggunaan AMP cocok untuk halaman berita dan blog di mana konten artikel atau foto menjadi elemen utama. Selain itu, keuntungan sebuah halaman web yang mendukung format AMP adalah SERP. Ya! AMP ini sangat berpengaruh terhadap ranking halaman web di Google Search. Bukan rahasia lagi jika algoritma web crawler yang dimiliki Google sekarang lebih mengutamakan performa web sebuah eksternal link.
2. Voice Search Optimization
Voice search memang fitur yang masih jarang dimanfaatkan oleh orang Indonesia. Home speaker pintar dari Amazon, Apple, atau Google bukan barang yang dicari. Memang fitur Google Assistant atau SIRI terpasang secara default di perangkat Android atau iPhone tapi karena terkendala oleh masalah bahasa masih jarang juga orang Indonesia yang memakai fitur ini. Walaupun begitu, seiring dengan berjalannya waktu, AI dari masing-masing voice assistant tentunya akan semakin pintar karena terus akan mempelajari bahasa selain Bahasa Inggris.
Voice search optimization merupakan metode optimasi halaman web agar pengguna dapat melakukan interaksi dengan halaman web tersebut melalui suara. Sebenarnya Voice Search Optimization memiliki tujuan yang mulia yaitu agar sebuah web dapat menjangkau siapa saja termasuk tuna netra. Dalam voice search API terdapat dua komponen yaitu speech recognition dan speech synthesis. Untuk melihat dokumentasinya Anda bisa klik di sini.
3. API First Development
Konektivitas antar aplikasi tentunya sudah menjadi suatu hal yang semestinya di jaman di mana hampir semua orang menggunakan aplikasi dalam aktivitas sehari-hari. Integrasi antar dua aplikasi atau lebih ini biasanya sering dimanfaatkan oleh website e-commerce dengan melakukan integrasi pembayaran, pengiriman, lokasi, ataupun kurs mata uang. Semuanya memanfaatkan teknologi yang disebut application programming interfaces (API).
API memang bukan teknologi baru yang baru di sini adalah development yang berbasis API. Apa bedanya? Biasanya pengembangan aplikasi atau web tidak terfokus pada API. Pengembangan API sering kali dianggap sebagai proyek sampingan yang tidak memiliki proses desain, pengembangan, dan testing yang baik.
Pada development tradisional proses yang biasanya terjadi adalah sebagai berikut:
Tim R&D menciptakan desain aplikasi
Tim back-end developers mengerjakan prototype sementara tim yang lain seperti QA dan front end menunggu.
Setelah prototype jadi tim QA dan front-end mendapatkan akses dan langsung bekerja
Jika terdapat bugs, penambahan fitur, atau pun improvement, siklus di atas akan berulang.
Sedangkan pada API first development, suatu tim tidak harus menunggu tim yang lain menyelesaikan sebuah pekerjaannya. API first development menggunakan API mocking (baca di sini untuk mengetahui apa itu API mocking) sehingga QA, back-end, dan front-end bisa bekerja secara simultan.
Desktop Programming
1. JAVA
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Dikembangkan oleh Sun Microsystems dan diterbitkan tahun 1995. Java tidak boleh disalahpahami sebagai JavaScript. JavaScript adalah bahasa scripting yang digunakan oleh web browser.
Sebagai bahasa pemrograman berorientasi object Java Platform Standard Edition (JSE) menyediakan lingkungan yang lengkap untuk pengembangan aplikasi di desktop dan client/server. Materi pelatihan pada Java Fundamental (JSE) akan fokus ke masalah pengantar aplikasi Java, pemrograman berorientasi object (OOP), dan berbagai teknik yang digunakan pada pemrograman bahasa Java. Materi disajikan dengan metode perimbangan teori-praktek, dengan harapan bahwa peserta training disamping memahami paradigma berorientasi objek, juga memiliki skill pemrograman Java di level dasar-intermediate.
2. C
Bahasa pemrograman C dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi Unix di Bell Telephone Laboratories. Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia. C secara luar biasa mempengaruhi bahasa populer lainnya, terutama C++ yang merupakan extensi dari C.
Bahasa C merupakan salah satu bahasa pemrograman yang sangat populer di mata para pakar dunia komputer, terutama di kalangan pendidikan, karena bahasa C dianggap sebagai bahasa yang memiliki banyak keunnggulan dibanding bahasa yang lain. Dilihat dari sisi sintaksnya Bahasa C sangat mudah dipelajari baik bagi kalangan pelajar/mahasiswa maupun kalangan masyarakat umum, dan dari segi kecepatan Bahasa C sangat tangguh karena bisa berjalan secepat bahasa tingkat rendah (rakitan). Karena keunggulannya tersebut, bahasa C dipakai sebagai mata kuliah wajib hampir di seluruh perguruan tinggi di dunia.
3. C++
Perbedaan Antara Bahasa pemrograman C dan C++ adalah meskipun bahasa-bahasa tersebut menggunakan sintaks yang sama tetapi mereka memiliki perbedaan, C merupakan bahasa pemrograman prosedural, dimana penyelesaian suatu masalah dilakukan dengan membagi-bagi masalah tersebut kedalam su-submasalah yang lebih kecil, Selain itu, C++ merupakan bahasa pemrograman yang memiliki sifat Pemrograman berorientasi objek, Untuk menyelesaikan masalah, C++ melakukan langkah pertama dengan menjelaskan class-class yang merupakan anak class yang dibuat sebelumnya sebagai abstraksi dari object-object fisik, Class tersebut berisi keadaan object, anggota-anggotanya dan kemampuan dari objectnya, Setelah beberapa Class dibuat kemudian masalah dipecahkan dengan Class
4. VISUAL BASIC
Microsoft Visual Basic (sering disingkat sebagai VB saja) merupakan sebuah bahasa pemrograman yang menawarkan Integrated Development Environment (IDE) visual untuk membuat program perangkat lunak berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman (COM), Visual Basic merupakan turunan bahasa pemrograman BASIC dan menawarkan pengembangan perangkat lunak komputer berbasis grafik dengan cepat. Beberapa bahasa skrip seperti Visual Basic for Applications (VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda. Para programmer dapat membangun aplikasi dengan menggunakan komponen-komponen yang disediakan oleh Microsoft Visual Basic Program-program yang ditulis dengan Visual Basic juga dapat menggunakan Windows API, tapi membutuhkan deklarasi fungsi luar tambahan. Dalam pemrograman untuk bisnis, Visual Basic memiliki pangsa pasar yang sangat luas. Dalam sebuah survey yang dilakukan pada tahun 2005, 62% pengembang perangkat lunak dilaporkan menggunakan berbagai bentuk Visual Basic, yang diikuti oleh C++, JavaScript, C#, dan Java
5. C#
C# adalah sebuah bahasa pemrograman modern yang bersifat general-purpose, berorientasi objek, yang dapat digunakan untuk membuat program di atas arsitektur Microsoft .NET Framework. Bahasa C# ini memiliki kemiripan dengan bahasa Java, C dan C++ (selengkapnya dapat dilihat pada Sejarah Bahasa C#). Bahasa pemrograman ini dikembangkan oleh sebuah tim pengembang di Microsoft yang dipimpin oleh Anders Hejlsberg, seorang yang telah lama malang melintang di dunia pengembangan bahasa pemrograman karena memang ialah yang membuat Borland Turbo Pascal, Borland Delphi, dan juga Microsoft J++. Kini, C# telah distandarisasi oleh European Computer Manufacturer Association (ECMA) dan juga International Organization for Standardization (ISO) dan telah menginjak versi 3.0 yang mendukung beberapa fitur baru semacam Language Integrated Query (LINQ) dan lain-lainnya
6. PHYTON
Python adalah salah satu bahasa pemrograman yang sangat powerfull dan mudah untuk dipelajari. Python memiliki struktur data tingkat tinggi yang sangat efisien dan sederhana tapi efektif untuk penerapan pemrograman berorientasi objek.
Python memiliki syntax dan type data dinamis yang elegan hingga membuatnya menjadi bahasa yang sangat ideal untuk scripting dan pengembangan aplikasi diberbagai bidang dan flatform system operasi.
Interpreter Python dan kumpulan library-nya bisa didapatkan gratis di situs resminya http://www.python.org/, dan boleh didisribusikan secara bebas. Di situs ini Anda juga bisa mendapatkan distribusi dan modul serta link-link situs yang menyediakan modul, program dan tool serta dokumentasi tambahan. Interpreter Python sangat mudah ditambahkan dengan fungsi-fungsi baru dan tipe data yang diimplementasikan dengan C/C++ atau bahas pemrograman lain yangdapat dipanggil menggunakan C. Python juga cocok untuk digunakan sebagai bahasa tambahan untuk kustomisasi aplikasi, seperti yang banyak digunakan dalam aplikasi GNU/Linux.(Python Documentation)
7. PERL
Perl umum adalah bahasa pemrograman-tujuan awalnya dikembangkan untuk manipulasi teks dan digunakan untuk berbagai tugas termasuk sistem administrasi, pengembangan web, pemrograman jaringan, pengembangan GUI, dan banyak lagi.
Berjalan pada mesin dengan sistem operasi Unix (SunOS, Linux, BSD, HP-UX), juga tersedia untuk sistem operasi seperti DOS, Windows, PowerPC, BeOS, VMS, EBCDIC, dan PocketPC. Biaisan bahasa ini dimaksudkan untuk menjadi praktis karena mudah digunakan, efisien, lengkap juga indah, kecil, elegan, minimal. Besar fitur yang mudah digunakan, mendukung kedua prosedural dan berorientasi objek (OO) pemrograman, telah built-in untuk mendukung pemrosesan teks, dan memiliki satu dunia yang paling mengesankan koleksi dari modul pihak ketiga
8. Objective-C
Objective-C adalah bahasa pemrograman yang dikembangkan dari bahasa C digabung dengan gaya bahasa SmallTalk. Dengan kata lain, Objective-C pada OOP-nya bergaya SmallTalk yaitu menggunakan message passing sedangkan C++ menggunakan pemanggilan method.
Objective-C saat ini banyak digunakan pada platform Mac OS X dan iOS (iOS adalah sistem operasi untuk iPhone, iPod Touch dan iPad… naahhhh!). Dengan adanya framework Cocos2D yang notabene adalah framework untuk membuat game di iPhone, maka Objective-C makin banyak yang mempelajarinya. Catatan Cocos2D merupakan bagian Cocoa Touch API (dari namanya sudah ketahuan untuk membuat aplikasi touchscreen) yang dibuat menggunakan Objective-C. Objective-C juga merupakan bahasa pemrograman utama pada sistem operasi NextStep. Kenapa Objective-C digunakan di sistem operasi Mac? karena Steve Jobs (pendiri Apple Inc.) membuat perusahaan bernama NeXT yang menggunakan Objective-C berlisensi dari StepStone untuk membuat sistem operasi NextStep. Karena NeXT diakuisisi Apple Inc. maka NextStep dimodif menjadi Mac OS dan tentu saja dibangun menggunakan Objective-C. Sehingga Objective-C menjadi bahasa pemrograman utama pada produk-produk MacIntosh.
9. DELPHI
Delphi adalah kompiler / penterjemah bahasa Delphi (awalnya dari Pascal) yang merupakan bahasa tingkat tinggi sekelas dengan Basic atau C yang merupakan produk dari Borland corp. Bahasa Pemrograman di Delphi disebut bahasa procedural artinya bahasa/sintaknya mengikuti urutan tertentu / prosedur. Delphi termasuk Keluarga Visual sekelas Visual Basic, Visual C, artinya perintah-perintah untuk membuat objek dapat dilakukan secara visual. Pemrogram tinggal memilih objek apa yang ingin dimasukkan kedalam Form/Window, lalu tingkah laku objek tersebut saat menerima event/aksi tinggal dibuat programnya.
10. Rust
Bahasa pemrograman Rust merupakan sebuah bahasa pemrograman general-purpose yang dikembangkan berdasarkan bahasa pemrograman C. Bahasa pemrograman Rust dikembangan oleh perusahaan Mozilla untuk menangani arsitektur multi-core dengan lebih aman dan efisien dengan bayak paradigma.
Bahasa pemrograman ini dirilis pertama kali pada tahun 2014 sebagai alternatif bahasa pemrograman C++ oleh Mozilla. Bahasa pemrograman Rust memiliki solusi keamanan terkait isu kelemahan yang dimiliki oleh bahasa pemrograman C++. Bahasa pemrograman ini dikembangkan oleh Mozilla untuk meningkatkan kinerja, paralelisasi, serta keamanan memori.
Bahasa pemrograman ini tidak hanya digunakan oleh perusahaan pengembang peramban Firefox untuk mengembangkan produknya seperti Servo Browser Engine dan integrasinya ke dalam Firefox. Akan tetapi, terdapat juga beberapa perusahaan yang mengembangkan produknya dengan kelebihan bahasa pemrograman Rust yang ditawarkan, termasuk di dalamnya Academia dan Dropbox.
Academia menggunakan bahasa pemrograman Rust ini untuk mengubah strings ke dalam data pengarang dan kertas terstruktur. Sedangkan perusahaan Dropbox menggunakan bahasa pemrograman ini untuk mengoptimalkan penyimpanan data cloud yang dimilikinya.
Bahasa pemrograman Rust menawarkan jaminan keamanan memori sebagai salah satu kelebihan bahasa pemrograman tersebut. Para developer atau pembuat program dapat menggunakan bahasa pemrograman ini untuk membuat kode dengan aman dibandingkan dengan bahasa pemrograman C atau C++.
Meskipun developer menuliskan baris-baris kode yang tidak aman, bahasa pemrograman ini secara default akan membuat kode-kode tersebut menjadi kode yang aman.
Para developer tidak perlu mengelola memori ataupun memberikan petunjuk aritmatik lagi untuk membuat program, seperti yang biasa terjadi untuk membuat program-program dari bahasa C atau C++. Keamana kode yang ditawarkan ini akan membuat obyek-obyek terkelola dengan baik dari mulai awal sampai dengan akhir.
Kelebihan bahasa pemrograman Rust lainnya adalah efisiensi dalam penggunaannya. Karena bahasa pemrograman ini dikembangkan berdasarkan bahasa pemrograman C maka efisiensi yang ditawarkan oleh bahasa pemrograman C juga dimiliki oleh bahasa pemrograman ini.
Bahasa pemrograman ini juga dapat digunakan lebih cepat karena memiliki runtime yang lebih sedikit. Bahkan, Academia menyatakan bahwa bahasa pemrograman ini lebih cepat daripada bahasa pemrograman Ruby untuk mengembangkan produk layanannya.
Kelebihan bahasa pemrograman ini tentu dapat menjadi salah satu kriteria dalam memilih bahasa pemrograman yang tepat. Secara khusus bahasa ini dirancang agar dapat digunakan untuk melakukan pemrograman sistem dengan aman, cepat, dan efisien.
Sumber refesensi :