Kod C Arthur Whitney yang Terkenal: Jenius atau Kegilaan yang Tidak Boleh Dikekalkan?

Pasukan Komuniti BigGo
Kod C Arthur Whitney yang Terkenal: Jenius atau Kegilaan yang Tidak Boleh Dikekalkan?

Dalam dunia pengaturcaraan, hanya beberapa topik yang mampu menjana perdebatan yang begitu penuh semangat seperti gaya pengekodan. Baru-baru ini, komuniti teknologi telah membincangkan secara intensif karya Arthur Whitney, saintis komputer di sebalik bahasa pengaturcaraan yang berpengaruh seperti K dan Q, serta pangkalan data berprestasi tinggi termasuk Kdb+. Perbualan ini tidak memfokuskan pada bahasanya itu sendiri, tetapi pada gaya pengekodan C-nya yang terkenal padat dan ringkas, yang memuatkan keseluruhan penterjemah ke dalam hanya beberapa dozen baris.

Perbincangan ini dicetuskan oleh analisis terperinci mengenai kod C Arthur Whitney yang tersedia secara umum untuk penterjemah mudah, ditulis dalam gaya yang ramai gambarkan sebagai hampir mustahil difahami. Kod ini merupakan contoh pendekatan Whitney: penggunaan makro aksara tunggal yang meluas, ruang putih yang minima, dan keseluruhan fungsi diringkaskan menjadi baris tunggal. Semasa pembangun mengkaji metodologi pengekodan yang kontroversial ini, mereka menanyakan soalan asas tentang apa yang membentuk kod yang baik dan sama ada kekompakan yang melampau datang dengan kos yang terlalu tinggi.

Daya Tarikan Ketumpatan dan Pengaturcaraan Satu Skrin

Falsafah pengekodan Arthur Whitney berpusat pada mengekalkan keseluruhan unit logik kelihatan pada satu skrin. Pendekatan ini telah menarik minat yang ketara daripada pembangun yang bergelut dengan navigasi kod sumber yang besar. Komuniti mengakui bahawa gaya Whitney mewakili percubaan yang sengaja untuk mengurus kerumitan melalui keringkasan yang melampur berbanding menyebarkannya merentasi pelbagai fail dan fungsi.

Ketumpatannya adalah berkali-kali ganda lebih tinggi daripada kebanyakan program C, tetapi itu bukan halangan besar untuk pemahaman jika anda tidak cuba 'membaca sepintas lalu'; anda perlu membacanya aksara demi aksara dari atas ke bawah.

Ramai pembangun mengakui bahawa sebaik sahaja anda menyesuaikan diri dengan ketumpatan itu, terdapat keanggunan tertentu dalam mempunyai semua kod yang berkaitan kelihatan serta-merta. Ini menghapuskan beban kognitif untuk menatal melalui beribu-ribu baris untuk memahami bagaimana bahagian sistem yang berbeza berinteraksi. Gaya ini amat menarik minat mereka yang bekerja pada sistem matematik atau kewangan yang kompleks di mana melihat gambaran keseluruhan adalah paling penting.

Kebimbangan Mimpi Ngeri Penyelenggaraan

Walaupun terdapat daya tarikan intelek, pengaturcara C yang berpengalaman menyuarakan kebimbangan serius tentang implikasi praktikal kod yang begitu padat. Kebergantungan berat pada makro pra-pemproses C mencipta apa yang ramai anggap sebagai keadaan yang tidak boleh diselenggara. Apabila makro mentakrifkan semula konstruk bahasa asas dan memperkenalkan pembolehubah tersirat, mereka berhujah, hasilnya pada dasarnya menjadi bahasa domain-spesifik baru yang dibina atas C.

Pembangun berpengalaman menegaskan bahawa gaya ini melanggar prinsip kejuruteraan perisian asas. Kekurangan nama deskriptif, ketiadaan ulasan, dan kekompakan yang melampau menjadikan kod itu hampir mustahil untuk difahami dan diubah suai oleh sesiapa pun kecuali pengarang asal. Seperti yang dinyatakan oleh seorang pengulas, pendekatan ini mengandaikan anda akan sentiasa ingat tepat apa yang anda bina—andaian yang berbahaya dalam mana-mana persekitaran pembangunan perisian profesional.

Cabaran penyahpepijatan amat mendebarkan. Apabila setiap baris mengandungi pelbagai operasi dan pra-pemproses telah mengubah C yang mudah menjadi sesuatu yang sama sekali berbeza, mengenal pasti dan membetulkan pepijat menjadi semakin sukar. Ini menjadi amat penting dalam sistem kewangan di mana teknologi Whitney digunakan.

Kritikan Umum Terhadap Gaya Pengkodan Whitney:

  • Pergantungan berat pada makro pemproses C yang mencipta DSL
  • Nama pembolehubah dan fungsi satu aksara
  • Kekurangan komen dan dokumentasi
  • Keseluruhan fungsi ditulis sebagai baris tunggal
  • Argumen tersirat dan kebergantungan pembolehubah
  • Penyahpepijatan dan penyelenggaraan yang sukar
  • Sambungan C bukan standard yang mengehadkan kebolehpindahan

Pengaruh APL atau Keanehan Peribadi?

Komuniti terbahagi mengenai sama ada gaya C Whitney mewakili lanjutan prinsip pengaturcaraan APL atau sekadar keutamaan peribadi. Sesetengah berhujah bahawa dia pada dasarnya menulis APL menggunakan sintaks C, membawa sifat simbolik dan padat bahasa pengaturcaraan tatasusunan ke dalam kod pelaksanaannya. Yang lain membantah bahawa gaya itu sedikit kaitan dengan APL itu sendiri dan lebih berkaitan dengan pendekatan individu Whitney terhadap penyelesaian masalah.

Apa yang jelas ialah gaya itu telah konsisten secara luar biasa merentasi dekad kerja Whitney, dari penterjemah J awal hingga pelaksanaan K semasa. Konsistensi ini mencadangkan pendekatan itu adalah sengaja dan bukan secara kebetulan. Walau bagaimanapun, seperti yang diperhatikan oleh seorang pengulas, walaupun dalam komuniti APL, gaya C Whitney dianggap melampau dan bukan mewakili amalan biasa.

Perdebatan Kejuruteraan Lawan Seni

Pada terasnya, perbincangan ini mencerminkan ketegangan asas dalam pembangunan perisian: patutkah kod dianggap sebagai artifak kejuruteraan atau ekspresi peribadi? Penyokong pendekatan Whitney menghargai keindahan matematik dan kecekapan kod yang padat. Mereka melihatnya sebagai pencapaian intelek yang menunjukkan pemahaman mendalam tentang kedua-dua domain masalah dan bahasa pengaturcaraan.

Pengkritik membantah bahawa pembangunan perisian profesional memerlukan kerjasama dan kebolehselenggaraan di atas segalanya. Mereka menunjuk kepada Hukum Kernighan: Menyahpepijat adalah dua kali lebih sukar daripada menulis program pada mulanya. Jadi, jika anda sebijak mungkin semasa menulisnya, bagaimana anda akan menyahpepijatnya? Prinsip ini mencadangkan bahawa kod harus mengutamakan kejelasan berbanding kepintaran, terutamanya dalam sistem pengeluaran yang mengendalikan nilai kewangan yang signifikan.

Perbualan ini juga menyentuh dinamik pasukan dan pemindahan pengetahuan. Kod yang sepadat ini mencipta apa yang sesetengah panggil sebagai keselamatan pekerjaan melalui kekaburan—menjadikan diri sendiri tidak boleh diganti dengan menulis kod yang tidak dapat difahami. Walaupun ini mungkin memberi manfaat kepada pengaturcara individu dalam jangka pendek, ia mewujudkan risiko yang besar untuk organisasi yang perlu mengekalkan sistem kritikal dalam jangka panjang.

Konteks Moden dan Implikasi AI

Menariknya, perbincangan ini telah mendapat relevan baharu dalam era pembantu pengekodan AI. Sesetengah pembangun bimbang bahawa apabila lebih banyak kod ditulis dengan bantuan AI, kita mungkin melihat peningkatan dalam kod yang sukar difahami dan diubah suai oleh manusia. Gaya Whitney mewakili contoh melampau tentang apa yang boleh berlaku apabila kod mengutamakan kekompakan berbanding komunikasi.

Yang lain melihat nilai potensi dalam mengkaji gaya ini sebagai contoh bagaimana untuk menyatakan idea kompleks dengan ringkas. Walaupun kebanyakan pembangun tidak harus meniru pendekatan Whitney secara langsung, memahaminya mungkin membantu memperbaiki cara kita berfikir tentang organisasi kod dan abstraksi dalam gaya pengaturcaraan yang lebih konvensional.

Bahasa Pengaturcaraan dan Pangkalan Data Utama oleh Arthur Whitney:

  • Bahasa pengaturcaraan A, K, Q: Bahasa pengaturcaraan array yang digunakan secara meluas dalam bidang kewangan
  • Kdb+: Pangkalan data berprestasi tinggi yang dibina berdasarkan subset K
  • Shakti: Pengganti kepada Kdb+, direka untuk set data mikro-baris
  • J: Bahasa pengaturcaraan array sumber terbuka (pelaksanaan awal)

Kesimpulan

Perdebatan berterusan tentang gaya pengekodan C Arthur Whitney mendedahkan soalan yang lebih mendalam tentang apa yang menjadikan kod itu baik. Walaupun kebanyakan pembangun bersetuju bahawa pendekatannya tidak sesuai untuk pembangunan perisian berasaskan pasukan, ramai yang mengakui pencapaian intelek yang diwakilinya. Gaya ini menunjukkan bahawa fungsi yang signifikan boleh dinyatakan dengan ekonomi yang luar biasa, walaupun ekonomi itu datang dengan kos kebolehcapaian.

Seperti yang dirumuskan dengan sempurna oleh seorang pengulas mengenai pendapat yang terbahagi: sesetengah melihat setara dengan membaca necronomicon dan mendapat penyakit gila kosmik, manakala yang lain menghargai bagaimana gaya ini kelihatan 'memanjat tangga abstraksi' dengan sangat pantas. Akhirnya, perbincangan ini berfungsi sebagai peringatan yang berharga bahawa gaya pengekodan melibatkan pertukaran antara kekompakan, kejelasan, dan kebolehselenggaraan—pertukaran yang mesti dilayari oleh setiap pasukan pembangunan berdasarkan konteks dan keperluan khusus mereka.

Rujukan: Learning to read Arthur Whitney's C to become Smart