Semua orang tahu pepatah lama bahwa pemrogram terbaik bisa menjadi urutan besarnya lebih baik daripada rata-rata. Saya pribadi melihat kode dan programer yang baik, tetapi tidak pernah ada yang begitu absurd. Jadi pertanyaannya adalah, prestasi pemrograman apa yang paling mengesankan yang pernah Anda saksikan atau dengar?
Anda dapat mendefinisikan mengesankan dengan:
Ruang lingkup tugas yang dihadapi misalnya John seorang diri mengembangkan kerangka kerja untuk perusahaannya, sebuah pekerjaan yang sebanding dengan apa yang dipadukan oleh 200 pekerja lainnya.
Kecepatan mis. Stu memprogram OS aplikasi multi-tugas waktu nyata secara keseluruhan pada minggu termasuk alat kompiler C dan perintah baris shell sendiri
Kompleksitas misalnya, Jane mengatur ulang seluruh aplikasi LOC 10 milon kami untuk bekerja di sekelompok server. Dan dia melakukannya pada sore hari.
Kualitas misalnya kode Charles memiliki tingkat kerusakan per LOC 100 kali lebih rendah daripada rata-rata perusahaan. Lebih jauh lagi, dia kode bersih dan dimengerti oleh semua.
Jelas, semakin banyak karakteristik ini digabungkan, dan semakin ekstrim masing-masing, semakin mengesankan adalah prestasi.
Jadi, biarkan saya memilikinya. Apa prestasi paling absurd yang bisa Anda ingat? Berikan sedetail mungkin dan cobalah untuk menghindari legenda kota atau berlebihan. Poskan hanya apa yang benar-benar dapat Anda perjuangkan
Pertanyaan bonus:
- Apakah tugasnya sangat berat, atau apakah individu itu secara teratur membuat orang takjub?
- Bagaimana Anda menjelaskan kinerja yang begitu mengesankan?
- Bagaimana programmer diakui untuk pekerjaan luar biasa seperti itu?
sumber
Jawaban:
Meskipun saya tidak dapat secara resmi menjaminnya, saya selalu terkesan dengan Chris Sawyer yang mengembangkan Rollercoaster Tycoon hampir seluruhnya dalam bahasa assembly.
sumber
Akar kuadrat terbalik cepat . Bagaimana seseorang dapat menemukan sesuatu seperti itu benar-benar di luar jangkauan saya.
sumber
Game arcade awal.
Benar-benar dibatasi oleh memori, daya pemrosesan, I / O ...
Apa yang dicapai oleh para programmer di lingkungan ini sangat mengagumkan.
Misalnya Pacman - Sempurna. Masih bisa dimainkan setelah bertahun-tahun.
sumber
Ada satu programmer ini di mana saya bekerja yang telah melakukan hal berikut pada lebih dari satu kesempatan.
Contoh terbaru adalah proyek dalam grup kami yang ditugaskan untuk 3 orang. Itu adalah aplikasi LOB yang kompleks dengan jadwal 6 bulan (itu adalah timeline yang sangat agresif).
Pengodean minggu akan dimulai, 1 dari 3 orang berhenti (karena alasan pribadi) dan satu lagi pergi dengan cuti medis yang sangat mendadak. Satu-satunya programmer yang tersisa pulang untuk memulai pemrograman dan kembali 3 bulan kemudian dengan aplikasi yang lengkap.
EDIT
Hanya untuk menambahkan beberapa klarifikasi. Kode yang dihasilkan hampir sempurna, sesuai dengan persyaratan dan grup QA kami hanya dapat mendokumentasikan 3 cacat.
sumber
Mungkin saya hanya menunjukkan usia saya, tetapi saya pikir beberapa prestasi pemrograman yang benar-benar mengesankan diabaikan.
Steve Wozniak, Apple Disk II / RWTS
Steve merancang perangkat keras dan perangkat lunak bersama, menggunakan trik yang sangat keren dalam perangkat lunak untuk menghilangkan banyak kerumitan (dan biaya) dalam perangkat keras. Floppy disk drive biasa menggunakan LED dan fotosensor di dekat hub disk untuk bersinar melalui lubang menekan substrat disk. Output dari fotosensor dihubungkan ke prosesor interupsi sehingga prosesor akan tahu kapan harus memulai pengaturan waktunya untuk menunggu sektor yang benar di trek berada di bawah kepala baca / tulis (meskipun beberapa "disk sektor keras" yang digunakan sebelumnya) yang memiliki lubang untuk menandai dimulainya setiap sektor, bukan hanya satu untuk awal trek).
Steve menghilangkan perangkat keras itu dengan merancang perangkat lunak untuk menyandikan data dengan cara yang akan membuat Anda mulai membaca dari tempat yang sewenang-wenang pada disk, dan tidak hanya men-decode data itu sendiri, tetapi mencari tahu di mana (secara logis) di trek Anda berada. Drive Disk II tidak memiliki pengaturan LED / photsensor, dan sepenuhnya mengabaikan lubang di floppy disk.
Gordon Letwin, HPFS
Gordon Letwin adalah seorang arsitek (dan pembuat kode) di tim OS / 2. Setidaknya seperti yang saya dengar ceritanya, pada satu titik dia pergi berlibur untuk menjauh dari hal-hal, dan menghabiskan tiga minggu (atau lebih) berlayar di kapal pesiar (ya, karyawan MS awal bisa membeli hal-hal seperti itu ... ) ... tetapi agar tidak terlalu bosan, dia memutuskan untuk membawa laptopnya.
Ketika dia kembali, dia menulis HPFS, debugged, dan berfungsi - sepenuhnya dalam bahasa assembly Intel 386. Kode yang ditulisnya akhirnya dijual sebagai "HPFS386" yang eksklusif (setidaknya pada saat itu) ke LAN Manager Edition OS / 2. Tim lain kemudian menghabiskan sekitar enam bulan untuk menulis versi dalam C yang menjadi "normal" HPFS yang termasuk dalam edisi normal OS / 2 (dan setelah IBM dan MS bubar, IBM memperbarui dan mengompilasi ulang kode C untuk mendapatkan kode mereka. "HPFS386"). Meskipun sudah dimodifikasi dan memperbarui sejak, jika Anda sedang adil tentang hal-hal, NTFS mungkin akan disebut "HPFS 2.0" (atau mungkin 3,0) - tidak ada pertanyaan bahwa sistem file saat terbaik Microsoft masih erat berasal dari apa yang ia dirancang.
Membungkus kaset B220
Ini mewujudkan (setidaknya IMO) awal sebenarnya dari pemrograman berorientasi objek. Di mana kaset IBM (misalnya) memiliki "label" untuk memberi tahu tentang format data pada kaset itu, kaset Burroughs mengembangkan konvensi (saya tidak berpikir ada yang tahu pasti siapa yang memulainya) menempatkan serangkaian kecil rutinitas pada rekaman yang akan memahami data dan bagaimana itu diformat, sehingga Anda bisa memanipulasi data dengan benar tanpa mengetahui detail bagaimana itu diformat. Dengan kata lain, beberapa "blok" pertama pada kaset itu pada dasarnya adalah sebuah tabel dalam bentuk yang bertahan. Anda pada dasarnya akan membaca vtable ke dalam memori, kemudian menggunakan metode yang didefinisikan untuk memanipulasi data pada sisa rekaman. Semua sangat rapi dan sederhana (jika hanya sedikit kurang dari sepenuhnya portabel).
sumber
John Carmack secara teratur mengesankan saya dengan prestasi pemrograman epiknya. Menurut sebuah cerita, dia bosan di kamar hotelnya, jadi dia menulis mesin penerangan Doom 3 di laptopnya selama akhir pekan.
sumber
Terlepas dari tujuan yang dipertanyakan, saya masih kagum tentang skrip pengguna captcha solver untuk MegaUpload . Ini adalah skrip GreaseMonkey yang ditulis dalam JavaScript yang memiliki decoder bitmap dan jaringan saraf yang mengenali huruf-huruf dalam gambar captcha, dan saya ulangi, semua ini dibuat menggunakan JavaScript.
sumber
Miguel de Icaza - proyek Mono.
(Dia juga sangat lucu, jenaka dan menghibur - setidaknya dari ceramah singkat yang saya lihat dia berikan dan dalam mendengarkan beberapa wawancara podcast)
sumber
Anders Hejlsberg: bahasa Turbo Pascal dan kompiler . Saya masih berpikir setelah bertahun-tahun TPC adalah mahakarya rekayasa perangkat lunak. Ini adalah kompiler kode asli yang paling ringkas dan tercepat (mulai dari versi tertentu juga yang mengoptimalkan) yang pernah saya lihat. Dalam Borland Pascal IDE pada dasarnya tidak ada "kompilasi". Anda memodifikasi kode Anda, tekan F9 dan menyaksikan program Anda berjalan langsung, dan itu pada mesin 8MHz atau 12MHz. TPC kemudian berevolusi menjadi Delphi, kemudian Hejlsberg bergabung dengan Microsoft dan ikut menulis C #.
Saya ingin melihat sumber-sumber versi TPC sebelumnya, tetapi sayangnya meskipun banyak permintaan, Borland tidak pernah membukanya.
Kompiler Hejlsberg terinspirasi oleh buku ini: Niklaus Wirth, Algoritma + Data Structures = Programs
sumber
Atasan pelatihan saya di Gemplus (sekarang Gemalto) menulis penerjemah JavaCard pertama dan OS selama 3 bulan masa pelatihan sarjana sendiri. Dia sendirian menghasilkan kode dari spec. Untuk menghasilkan v.2, Gemplus membentuk tim 30+ pria, tanpa pria, yang bekerja selama lebih dari setahun. Ketika selesai tetapi tidak bisa mendapatkan kinerja yang layak, mereka memanggilnya untuk meminta bantuan, dan dalam beberapa hari dia dan seorang kolega menunjukkan puluhan kemacetan.
Java Card adalah subset dari Java yang dimaksudkan untuk berjalan di perangkat yang sangat kecil. Implementasinya berjalan di kartu pintar, yang memiliki beberapa jam MHz dan 2 atau 3 KB RAM.
Hanya untuk bersenang-senang: prestasi sehari-hari pribadinya adalah menyelam ke dalam kesurupan kerja, tidak menjawab pertanyaan yang kami latih berteriak di dalam ruangan, dan kemudian, tiba-tiba 2 jam kemudian muncul hidup-hidup lagi ketika pekerjaannya selesai dan menjawab 5 atau 10 pertanyaan berturut-turut.
sumber
Saya mengingatnya dengan sangat jelas; di sekolah menengah, seorang teman sekelas telah membuat kode videogame mengemudi penuh dalam beberapa pelajaran dengan QB45 (Quick Basic 4.5). Pengguliran vertikal, stopwatch, masa pakai, level; Saya benar-benar terkejut.
sumber
Git dan / atau Linux
Linus Torvalds menulis kernel sistem operasi dan sistem kontrol versi dari awal. Saya tidak tahu siapa pun dengan produktivitas serupa.
sumber
Richard M Stallman muncul di benak saya. Pria ini mulai memberi kehidupan pada GNU Emacs, GCC, GDB dan banyak lagi program terkenal. Dia bahkan melanjutkan untuk menulis GPL asli. Saya telah mendengar pengetahuan tentang dia mengatakan, dia pergi ke gua selama 18 bulan dan kembali dengan lebih dari 150.000 baris kode yang membuat kompiler C suite GCC. 150.000 LOC itu memberi batu tempat tidur untuk g ++ nanti. Dalam kata-katanya sendiri, Emacs mulai sebagai editor teks, kemudian menjadi cara hidup, dan sekarang menjadi agama bagi sebagian dari kita. Bahkan hari ini, prinsip-prinsip desain Emacs digunakan dalam banyak program yang sukses.
Sistem TeX Donald E Knuth adalah program lain yang muncul di pikiran ketika berpikir tentang pemrograman yang luar biasa.
sumber
Di kelas gelar saya, teman sekelas saya membuat OS (walaupun sangat mendasar tetapi boot dari disket dan melakukan rutinitas yang diperlukan) sebagai persyaratan proyek dalam waktu kurang dari 30 hari. Lamanya termasuk membaca / penelitian yang diperlukan dan coding aktual.
Saya ingat milis os.com, orang-orang mengecilkan hatinya dengan mengatakan bahwa dia tidak akan melakukannya dalam beberapa hari dan saya juga telah melihatnya berjalan melalui asrama pada jam 5 pagi dalam keadaan setengah sadar berbicara omong kosong. :-)
Dia adalah programmer yang luar biasa.
sumber
Saya tidak akan mengatakan apa-apa, tetapi seseorang menyapa "Ruby adalah suatu prestasi", jadi
John McCarthy dengan FUNGSI RECURSIVE asli EKSPRESI SIMBOLIK DAN KOMPUTASI MEREKA DENGAN MESIN , yaitu makalah di mana ia mendefinisikan Lisp kembali pada tahun 1960, ketika
if
sebuah konsep orang mulai berpikir serius tentang. Bicara tentang menjadi di depan waktu Anda.sumber
Kompiler Symantec / Zortec C ++ milik Walter Bright mengikuti perkembangan kompiler yang diimplementasikan oleh tim programmer yang besar. Kemudian, desain dan implementasi D.
sumber
SHRDLU Terry Winograd .
Ahli Matematika Otomatis Doug Lenat .
sumber
Linus Trovalds menulis Linux
sumber
Pemrogram video game 8 bit di komputer dari tahun 80-an (yaitu: Commodore 64), beberapa permainan yang cukup bagus dalam bahasa mesin, dan ukurannya sering lebih kecil dari bitmap untuk ikon Windows ;-) Optimasi yang terbaik
Geos (OS WYSIWYG untuk Commdore 64) sangat mengesankan untuk saat ini
sumber
Saya tidak yakin ini benar-benar diperhitungkan ... tetapi orang yang mengembangkan ruby. Aku hanya tidak bisa melewati keanggunan bahasanya. Dan saya percaya itu adalah bahasa pertama yang mendukung pengetikan dinamis, meskipun saya bukan orang yang memulai dengan kartu punch dan menulis sehingga saya bisa salah.
sumber
David Heinemeier Hansson menciptakan Rails.
Pertama kali saya menginstal Rails dan mengatur situs uji terhadap database dan melakukan semua kerangka kerja dan hal-hal CRUD secara otomatis, mengatur situs pengujian dan rasanya seperti mata saya terbuka untuk pertama kalinya untuk apa yang dapat dilakukan sebelum Anda mulai pemrograman. Itu benar-benar mengesankan dan saya telah melihat ide dari itu muncul di semua tempat dalam bahasa / platform lain sejak itu.
sumber