Perdebatan bahasa pemrograman favorit antar programmer adalah hal yang biasa terjadi ketika kita berada di kampus jurusan komputer atau start up dan cara mereka membela bahasa pemrograman favorit mereka pun beraneka ragam. Ada yang membahas sintaks yang lebih sederhana, ada yang membahas library yang dimiliki lebih melimpah dan ada juga yang membahas bahasa pemrograman tersebut lebih laku di dunia kerja.
Namun perdebatan antar programmer sekarang sudah bergeser kepada framework apa yang digunakan. Framework menjadi perdebatan antar programmer ketika menghadapi proyek pengembangan software. Contohnya ketika ada proyek sistem informasi berbasis web, maka pertimbangan programmer ada pada framework apa yang digunakan, bukan lagi bahasa pemrograman, misalnya Laravel, Zend, CodeIgniter, Ruby on Rails, Django dan lain-lain –meskipun pada beberapa kasus (mungkin banyak kasus) biasanya framework yang dipertimbangkan mengacu pada bahasa pemrograman apa yang dikuasai oleh programmer yang akan mengerjakan proyek tersebut. Tapi dalam hal ini, framework seolah-olah sudah seperti “bahasa pemrograman” baru. Berikut beberapa alasan mengapa saya katakan framework sudah seperti “bahasa pemrograman” baru.
Bahasa pemrograman sudah diringkas menjadi API
Kebanyakan bahasa pemrograman sudah diringkas menjadi API. Dan berbagai masalah API bisa ditangani dengan compiler dan garbage collector termutakhir. Otomasi sudah mulai menggantikan trik coding konvensional seperti pointer juggling, bit-banging dan smart coding. Kita cukup menjalankan pipelining antar API untuk menghasilkan output yang kita inginkan.Hal terpenting yang harus dipahami adalah bagaimana API tersebut bekerja dan bagaimana kita mengambil manfaat dari kelebihan API tersebut. Struktur data seperti apa yang diterima API tersebut? Bagaimana algoritma didalamnya berjalan ketika ukuran data mulai membesar? Hal-hal semacam inilah yang mestinya lebih diutamakan untuk dibahas. Selain itu, kini sudah banyak kakas yang bisa kita manfaatkan untuk memanggil suatu rutin dari suatu bahasa untuk digunakan di bahasa pemrograman yang lain, seperti memanggil library C ke dalam bahasa Java. Hal tersebut mestinya bisa lebih efektif dibanding bila kita mempelajari bahasa pemrograman baru dan mengkonversi libary bahasa pemrograman tersebut ke dalam bahasa pemrograman yang kita gunakan.
Framework adalah kerja keras programmer
Memanfaatkan framework sama halnya dengan menghargai kerja keras programmer terdahulu. Tapi lebih penting dari itu, menggunakan framework berarti memangkas waktu dan tenaga kita untuk hal-hal dasar yang sudah dilakukan oleh programmer terdahulu. Kita bisa saja membuat sebuah aplikasi dari nol, membuat semua fungsi sendiri. Tapi apakah kode yang kita buat sudah lebih optimal dibanding kode yang sudah dibuat orang lain, dan terlebih lagi, apakah itu sebanding dengan waktu yang kita keluarkan? Kita mungkin tidak suka arsitektur yang mereka pilih, tapi akan jauh lebih efisien bila kita berdamai dengan perbedaan tersebut dan cukup ikuti gaya aturan API mereka bila memang hal tersebut menjawab persoalan kita.Dominasi Algoritma
Berbagai algoritma kini sudah diringkas dalam API framework. Bila kita membuat sendiri suatu algoritma satu per satu sebenarnya hanya memperlambat pengembangan project kita. Mengapa? Karena waktu kita akan terbuang untuk memahami dan menerapkan algoritma dan struktur data tertentu dibanding bila kita menggunakan apa yang sudah tersedia dalam framework, terkecuali bila memang tujuan Kamu adalah memperdalam ilmu. Cara paling efisien dalam proses produksi adalah dengan mengoptimalkan penggunaan API framework. Framework sudah diuji bertahun-tahun dan dikembangkan oleh banyak kontributor sehingga programmer boleh sedikit merasa aman terkait reliabilitas API.IDE adalah asisten
Banyak programmer yang masih menggunakan text editor. Hal itu tidak salah. Namun bila pengembangan project kita ingin lebih cepat maka gunakanlah IDE. Dengan IDE, tak peduli kita salah meletakkan posisi titik koma dimanapun. IDE akan memberi arahan dan menjelaskan error yang kadangkala luput dari pandangan bila dideteksi dengan cara manual. Selain itu biasanya IDE juga sudah mendukung fitur autocomplete atau code snippets, baik untuk API dari bahasa pemrograman dasar maupun dari framework yang kita gunakan. Menggunakan IDE akan membantu kita bekerja lebih efisien.Drag and Drop mulai menggantikan sintaks
Framework pengembangan software dengan cara drag and drop sudah mulai bermunculan. Sintaks-sintaks pun mulai disembunyikan dengan bentuk yang lebih mudah dipahami sehingga bahasa pemrograman pun tak diperdebatkan. Contoh nyata adalah GUI Builder dan AndroidBuilder. Kita dapat mengembangkan software dan game hanya dengan drag n drop dari object fungsi yang diinginkan.Code is law
Larry Lessig, salah satu profesor hukum Harvard mengatakan, “Code is Law.” Seperti kita lihat, bahasa pemrograman bersifat agnostik. Maksudnya ia dibuat dan diatur seperti apa yang si pembuat inginkan, sehingga bahasa pemrograman dapat mengerjakan apapun yang dituliskan oleh programmer. Tentu saja dengan aturan penulisan tertentu sesuai dengan bahasa pemrograman tersebut. Tapi kita dapat yakin bahwa setiap kode yang kita tulis akan selalu menghasilkan keluaran yang tepat seperti yang kita inginkan. Bila tidak, itu artinya kode kita tidak sesuai dengan aturan.Tapi terkadang di luar hal sintaks, kita memang perlu menambahkan sedikit pengecekan di sana-sini untuk meminimalisir munculnya pesan kesalahan. Hal ini masih diperlukan karena program yang kita buat nantinya akan digunakan oleh pengguna dengan beragam variabel kondisi seperti sistem operasi yang digunakan, pada device apa ia dijalankan, dan sebagainya. Nah, dalam hal ini framework ibarat kitab undang-undang, kumpulan aturan-aturan yang bisa kita aplikasikan sehingga kode yang kita buat lebih efisien dan bebas kesalahan. Framework sudah menyelesaikan kebutuhan dasar seperti hal tersebut sehingga kita hanya perlu ‘patuh’ pada aturan framework dan biarkan framework yang mengurusi sisanya.
Itulah mengapa saat ini framework sudah seperti sebuah bahasa pemrograman baru. Sehingga terkadang dalam beberapa kasus, kita bisa menemukan bahwa ada orang yang mampu menguasai framework tertentu, sebut saja CodeIgniter atau Laravel, namun tidak mengerti secara fasih bahasa pemrograman PHP, yang notabene menjadi pondasinya. Hal itu dikarenakan keduanya memiliki aturan-aturan tertentu dalam penggunaannya, yang terkadang bisa dipelajari secara terpisah. Seolah seperti mempelajari bahasa pemrograman baru.
0 komentar:
Posting Komentar