Abstraksi adalah konsep kunci pemrograman komputer dan kerangka kerja membantu programmer mencapai ini. Ini hal yang baik. Saya ragu banyak dari kita ingin mengembangkan sistem yang kompleks dalam bahasa assembly! Masalahnya datang, saya pikir, ketika programmer memiliki sedikit gagasan tentang apa yang lapisan abstraksi menutupi. Dengan kata lain, Anda perlu memiliki gagasan tentang apa yang terjadi di bawah tenda, bahkan jika Anda tidak berinteraksi atau berinteraksi secara langsung dengannya.
Saya ingat mengembangkan beberapa situs web dinamis pertama di pertengahan 90-an, menggunakan C dan CGI (pada saat sebagian besar situs web masih HTML statis). Sebenarnya tidak ada bahasa skrip sisi server yang matang (seperti PHP atau ASP) dan sangat sedikit perpustakaan, jadi Anda harus menuliskan seluruh aliran respons HTTP ke server dengan setiap halaman. Parsing parameter GET dan POST diperlukan untuk menulis perpustakaan Anda sendiri. Itu membosankan, lambat, kerja keras dan sangat rawan kesalahan. Saya tidak ketinggalan sedikit pun!
Namun, saya juga merasakan kerangka kerja seperti ASP.NET web-bentuk abstrak seluruh sifat tanpa kewarganegaraan web ke titik di mana banyak pengembang web baru memiliki sedikit petunjuk tentang apa yang sebenarnya terjadi di bawah tenda. Ini mengarah pada kode yang tidak efisien dan membengkak yang berkinerja buruk karena pengembang memasang komponen bersama-sama menggunakan metodologi "drag'n'drop" tanpa menyadari apa yang terjadi di tingkat HTTP.
Jadi, saya percaya kerangka kerja sangat penting untuk mengembangkan perangkat lunak tingkat tinggi, tetapi mereka tidak membebaskan pengembang untuk memiliki pemahaman tentang apa yang sedang diabstraksi. Ya, kerangka kerja bisa membuat Anda bodoh, tetapi hanya jika Anda gagal memahaminya.