Tujuan Notasi Hongaria adalah untuk menyandikan informasi ke dalam pengidentifikasi yang tidak dapat dikodekan dalam sistem tipe. Pendapat saya sendiri adalah bahwa jika informasi ini cukup penting untuk dikodekan, maka itu cukup penting untuk dikodekan dalam sistem tipe, di mana ia dapat diperiksa dengan benar. Dan jika informasi itu tidak penting, lalu mengapa Anda ingin mengacaukan kode sumber Anda dengannya?
Atau, lebih tepatnya: ketik informasi yang termasuk dalam sistem tipe. (Catatan: itu tidak harus menjadi sistem tipe statis . Selama itu menangkap kesalahan ketik, saya tidak peduli ketika menangkapnya.)
Beberapa jawaban lain menyebutkan Unit Ukur sebagai penggunaan Notasi Hongaria yang dapat diterima. (Saya agak terkejut bahwa belum ada yang menyebutkan NASA Mars Climate Orbiter, karena itu sepertinya muncul setiap saat dalam diskusi tentang Notasi Hongaria).
Berikut ini contoh sederhana dalam F #:
[<Measure>] type m
[<Measure>] type ft
let someLength = 48.15<m>
let someOtherLength = 16.2342<ft>
someLength + someOtherLength
// someLength + someOtherLength
// -------------^^^^^^^^^^^^^^^
// error FS0001: The unit of measure 'ft' does not match the unit of measure 'm'.
Lihat, Bu, jangan orang Hongaria!
Jika saya adalah untuk menggunakan Hungaria Notasi bukan jenis di sini, itu tidak akan membantu saya sedikit:
let mSomeLength = 48.15
let ftSomeOtherLength = 16.2342
mSomeLength + ftSomeOtherLength
// > val it : float = 64.3842
Kompiler membiarkannya lurus. Saya sekarang mengandalkan manusia untuk menemukan apa yang pada dasarnya adalah kesalahan tipe. Bukankah itu untuk tipe checker?
Lebih baik lagi, menggunakan bahasa pemrograman Frink :
someLength = 48.15m
someOtherLength = 16.2342ft
someLength + someOtherLength
// 53.09818416 m (length)
// Wanna know the answer in a good old fashioned American unit?
someLength + someOtherLength -> yd
// 58.06888031496062992
// Are you an astrophysicist?
someLength + someOtherLength -> parsec
// 1.7207949554318336148e-15
// ... or a fundmentalist Christian who refuses to use units invented
// less than 2000 years ago?
someLength + someOtherLength -> biblicalcubits
// 95.893563822870765006
Jadi, secara ringkas: Saya tidak suka Notasi Hongaria. Anda seharusnya tidak pernah menggunakannya.
Yang sedang berkata, saya pikir menggunakan Notasi Hongaria adalah ide yang baik. Tunggu apa?
Iya nih! Dalam kasus khusus ini , Anda menyebutkan:
Selain itu, sebagian besar kode kami harus dijalankan pada beberapa DSP aneh, di mana konsep seperti bool atau float tidak ada
Tapi itu justru satu-satunya kasus penggunaan masuk akal untuk Hungaria Notasi!
PS: Dengan sepenuh hati saya merekomendasikan untuk melihat Frink. Manualnya berisi beberapa lelucon kentut yang paling mengagumkan yang pernah ada. Ini juga bahasa yang cukup keren :-)