तुलना-आदेश का उपयोग करने वाले डिफ़ॉल्ट-कोड ऑर्डर का डिफ़ॉल्ट क्रियान्वयन प्रदान करना ठीक है; इसे अंतिम रूप देना सूर्य की ओर से एक गलत कदम था। अध्यादेश पहले से ही घोषणा के आदेश के लिए जिम्मेदार है। मैं मानता हूं कि ज्यादातर स्थितियों में एक डेवलपर तार्किक रूप से अपने तत्वों का आदेश दे सकता है, लेकिन कभी-कभी कोई स्रोत कोड को इस तरह से व्यवस्थित करना चाहता है जो पठनीयता और रखरखाव को सर्वोपरि बनाता है। उदाहरण के लिए:
//===== SI BYTES (10^n) =====//
/** 1,000 bytes. */ KILOBYTE (false, true, 3, "kB"),
/** 106 bytes. */ MEGABYTE (false, true, 6, "MB"),
/** 109 bytes. */ GIGABYTE (false, true, 9, "GB"),
/** 1012 bytes. */ TERABYTE (false, true, 12, "TB"),
/** 1015 bytes. */ PETABYTE (false, true, 15, "PB"),
/** 1018 bytes. */ EXABYTE (false, true, 18, "EB"),
/** 1021 bytes. */ ZETTABYTE(false, true, 21, "ZB"),
/** 1024 bytes. */ YOTTABYTE(false, true, 24, "YB"),
//===== IEC BYTES (2^n) =====//
/** 1,024 bytes. */ KIBIBYTE(false, false, 10, "KiB"),
/** 220 bytes. */ MEBIBYTE(false, false, 20, "MiB"),
/** 230 bytes. */ GIBIBYTE(false, false, 30, "GiB"),
/** 240 bytes. */ TEBIBYTE(false, false, 40, "TiB"),
/** 250 bytes. */ PEBIBYTE(false, false, 50, "PiB"),
/** 260 bytes. */ EXBIBYTE(false, false, 60, "EiB"),
/** 270 bytes. */ ZEBIBYTE(false, false, 70, "ZiB"),
/** 280 bytes. */ YOBIBYTE(false, false, 80, "YiB");
उपरोक्त आदेश स्रोत कोड में अच्छा लग रहा है, लेकिन ऐसा नहीं है कि लेखक का मानना है कि तुलना करना चाहिए। वांछित तुलना व्यवहार को बाइट्स की संख्या के अनुसार क्रमबद्ध करना है। स्रोत-कोड आदेश जो ऐसा करेगा जो कोड के संगठन को नीचा दिखाता है।
एक गणना के एक ग्राहक के रूप में मैं कम परवाह नहीं कर सकता कि लेखक ने अपने स्रोत कोड को कैसे व्यवस्थित किया। मैं उनकी तुलना एल्गोरिथ्म को किसी तरह की समझ बनाना चाहता हूं, हालांकि। सूर्य ने अनावश्यक रूप से स्रोत कोड लेखकों को एक बाँध में रखा है।