Inilah Kode Sumber Historis Yang Harus Dilihat Setiap Developer
Seperti bidang lainnya, teknologi komputer memiliki sejarah progresif yang mengesankan. Hari ini, kami menggunakan komputer kelas atas, GUI modern berkualitas tinggi, bahasa pemrograman yang ramah manusia, dan aplikasi web futuristik waktu nyata, berkat kerja keras yang dilakukan oleh pemrogram sebelumnya. Mempelajari sejarah membuat kami bahagia— sangat menarik melihat pertumbuhan progresif dalam inovasi seiring berjalannya waktu. Misalnya, pikirkan tentang kerja keras di balik pesawat modern — bagaimana orang-orang di masa lalu mengembangkan ide terbang dari Ornithopter menjadi mesin terbang — sebuah pesawat terbang. Demikian pula, komputer diubah dari mesin mahal berukuran kamar menjadi perangkat serba guna yang modern (relatif) murah.
Saya sering menelusuri kode sumber publik yang tersedia di internet selama waktu luang saya. Beberapa basis kode berisi kode sumber modul perangkat lunak komputer populer modern. Sementara itu, saya menemukan beberapa basis kode sejarah yang mengesankan yang tidak lagi dipertahankan sebagai proyek yang dapat digunakan tetapi ada untuk dilestarikan untuk generasi berikutnya sebagai objek ilmu komputer bersejarah.
Dalam cerita ini, saya akan menjelaskan beberapa kode sumber sejarah yang membantu kemajuan seluruh teknologi komputer. Kita dapat memeriksa kode sumber ini, mempelajari, dan melihat bagaimana setiap proyek memengaruhi ekosistem komputer modern dan menjadikan hidup kita lebih baik!
Kode sumber demo World Wide Web (WWW).
Proyek WWW menawarkan cara untuk berbagi informasi melalui protokol jaringan seperti HTTP. Pada tahun 1989, Tim Berners-Lee mendemonstrasikan versi WWW pertama yang berfungsi dengan browser web dan server baru. Tim menulis browser web pertama, Nexus di C dan Objective-C menggunakan pustaka standar C dan pustaka AppKit GUI di NeXTSTEP OS. Lihatlah implementasi pertama parser HTML:
Sekarang kami memiliki banyak implementasi server web HTTP berfitur lengkap — Anda bahkan dapat membuat server HTTP sendiri dengan bahasa pemrograman pilihan. Apa server web pertama? Tim Berners-Lee mendemonstrasikan versi WWW pertama dengan server web httpd CERN.
Protokol HTTP lahir dengan proyek CERN httpd. Server menghasilkan header HTTP sebagai berikut:
Kode sumber kompiler C awal
Komputer adalah perangkat digital yang hanya dapat memahami serangkaian instruksi atom yang telah ditentukan sebelumnya yang dikenal sebagai Majelis ISA. Meskipun pemrogram masa lalu menulis program komputer awal (yaitu, POP II) dengan alat Assembler Assembly, menulis kode Assembly tidak diragukan lagi memakan waktu. Kemudian, mereka memperkenalkan konsep kompiler dan merancang bahasa pemrograman yang ramah manusia.
C adalah bahasa pemrograman terkompilasi yang terkenal. Kami masih menggunakan C untuk membangun berbagai sistem perangkat lunak. C tidak diragukan lagi adalah bahasa dasar — pemrogram menciptakan hampir semua komponen yang mendasari ekosistem komputer dengan C, jadi bahasa pemrograman modern tidak akan pernah menggantikan C sampai seseorang menulis ulang sejarah komputer masa lalu dengan bahasa lain.
Semua orang tahu kita dapat menemukan sumber kompiler GNU C dari repositori GitHub ini, tetapi di mana implementasi kompiler C pertama? Sumber kompiler C paling awal yang tersedia tersedia di repositori GitHub ini. Kompiler ini tidak ditulis dalam bahasa B, tetapi merupakan kompiler yang mengkompilasi sendiri yang ditulis dalam C:
Cuplikan kode sumber riset Unix awal
Unix tidak diragukan lagi adalah kakek dari semua sistem operasi mirip Unix dan berbasis Unix. Sistem operasi Apple yang populer menggunakan kernel Darwin-XNU. Kernel Darwin memperoleh implementasi dari BSD yang berasal dari sumber asli Unix. Di sisi lain, sistem mirip Unix, seperti Linux dan Minix dibuat berdasarkan konsep inti Unix.
Repositori GitHub unix-history-repo memungkinkan Anda menelusuri snapshot kode sumber Unix di berbagai tahapan historis melalui cabang Git. Misalnya, Anda dapat memeriksa sumber versi Unix paling awal yang tersedia sebagai berikut:
Seperti yang Anda lihat, basis kode versi Unix awal terdiri dari file sumber Majelis PDP-7, tetapi Anda dapat menemukan file sumber C di Unix versi 4. Pembuat repositori ini membuat riwayat berbasis Git untuk garis waktu pengembangan Unix dengan proyek unix-history-make.
Sangat senang melihat kontribusi perintis ilmu komputer seperti yang dilakukan Git di GitHub. Misalnya, lihat bagaimana tangkapan layar berikut menyiratkan bahwa GitHub ada pada tahun 1970 — meskipun itu tidak benar:
Rilis pertama Linux (v0.01)
Linus Torvalds menciptakan kernel Linux sebagai alternatif sumber terbuka dan gratis untuk sistem operasi Unix dan Minix. Kami dapat menelusuri kode sumber Linux dari repositori sumber terbuka resmi di GitHub, tetapi riwayat repositori tersebut dimulai dari v2.6. Namun, versi kernel Linux pertama adalah 0,01. Kita dapat menelusuri kode sumber Linux 0.01 historis dari repositori GitHub ini.
Meskipun basis kode Linux modern terlihat rumit untuk dipahami, basis kode versi Linux ini mudah dibaca karena file sumbernya relatif sedikit, dan hanya mendukung CPU i386. Lihatlah fungsi utama minimal dari kernel Linux v0.01:
Awalnya, proyek kernel Linux adalah proyek hobi pribadi, tetapi sekarang jutaan server cloud, perangkat seluler, dan perangkat yang disematkan menggunakan kernel Linux sebagai basisnya! Perusahaan otomotif juga memelihara garpu kernel Linux (mis., Tesla).
Mesin JavaScript pertama (Mocha)
Setelah penemuan WWW, orang mulai menerbitkan halaman web publik dengan konten statis dan hyperlink melalui konsep Web 1.0. Juga, programmer mulai mengembangkan browser web. Versi browser Netscape Navigator hadir dengan bahasa skrip sisi klien baru untuk membuat halaman web statis menjadi dinamis. Bahasa skrip ini dikenal sebagai "LiveScript" pada rilis pertama, namun kemudian, penulis aslinya, Brendan Eich dan Netscape mengubah namanya menjadi "JavaScript".
Dukungan browser web populer menggunakan API web modern, seperti WebSockets, WebGL, DOM, dan WebRTC karena JavaScript ada. JavaScript berfungsi sebagai lapisan perantara antara browser dan halaman web, dan menawarkan antarmuka bagi pengembang untuk mengakses API web. Ini juga membantu pemrogram untuk mengurangi beban kerja server dengan menggunakan daya komputasi sisi klien melalui browser web.
Repositori mocha1995 GitHub memungkinkan Anda bereksperimen dengan mesin JavaScript pertama di browser Anda melalui Emscripten. Tidak seperti kode sumber mesin JavaScript kompleks modern, kode sumber mesin Mocha sangat mudah dipahami.
Lihat bagaimana penerapan Math.random
built-in:
Kesimpulan
Setiap hari, teknologi berkembang — inovasi baru teknologi dapat menghilangkan atau meningkatkan teknologi yang ada. Namun, sangat penting untuk dipahami bahwa kami berinovasi dengan hal-hal baru dan membuat hidup kami lebih baik berkat kerja keras programmer sebelumnya. Jadi, kita harus melestarikan karya-karya mereka yang mengesankan dan biarkan generasi mendatang mempelajarinya. Mungkin, setelah ratusan tahun, generasi baru dapat menggunakan hal-hal yang diberikan oleh pemrogram masa lalu kepada kita, seperti C, arsitektur Unix, protokol HTTP, dll.
Ketika Anda mulai mempelajari bahasa pemrograman, pustaka, atau kerangka kerja baru, pertimbangkan untuk mempelajari bagian dalamnya, sejarah, dan ketergantungannya, maka Anda akan menjadi lebih baik dalam teknologi tertentu.