Saya berpendapat bahwa itu tidak begitu banyak dimenangkan sebagai tidak lagi menjadi masalah. ARM yang pada dasarnya membentuk semua pasar ponsel adalah bi-endian (oh, bid'ah!). Dalam arti bahwa x86 pada dasarnya "memenangkan" pasar desktop, saya kira Anda bisa mengatakan bahwa sedikit endian menang, tetapi saya pikir mengingat keseluruhan kedalaman kode (dangkal) dan abstraksi (banyak) dari banyak aplikasi saat ini, itu jauh lebih sedikit masalah daripada dulu. Saya tidak ingat endianness benar-benar muncul di kelas Arsitektur Komputer saya.
Saya menduga bahwa banyak pengembang bahkan tidak menyadari endianness atau mengapa itu penting. Karena bagi sebagian besar (dan maksud saya luas ) mayoritas itu sama sekali tidak relevan dengan lingkungan kerja sehari-hari mereka. Ini berbeda 30 tahun yang lalu ketika semua orang mengkodekan lebih dekat ke logam sebagai lawan memanipulasi file teks pada layar dengan cara yang mewah dan dramatis.
Kecurigaan umum saya adalah bahwa Pemrograman Berorientasi Objek adalah awal dari akhir kepedulian terhadap endianness karena lapisan akses dan abstraksi dalam sistem OO yang baik menyembunyikan detail implementasi dari pengguna. Karena implementasi termasuk endianness, orang terbiasa tidak menjadi faktor eksplisit.
Tambahan: zxcdw menyebutkan portabilitas menjadi perhatian. Namun, apa yang muncul dengan pembalasan dalam 20 tahun terakhir? Bahasa Pemrograman yang dibangun pada mesin virtual. Tentu endianness mesin virtual mungkin penting tetapi dapat dibuat sangat konsisten untuk satu bahasa ke titik di mana pada dasarnya itu bukan masalah. Hanya para pelaksana VM yang bahkan harus khawatir tentang endianness dari sudut pandang portabilitas.
x & 0xFF
selalu memberi Anda byte paling signifikan terlepas dari pemesanan endian (dengan asumsi byte Anda masing-masing 8 bit) karena Anda telah menentukan bit yang Anda minati dengan nilainya, bukan posisi relatif mereka dalam memori.Endian hanya benar-benar penting ketika Anda mentransfer sistem data biner.
Dengan kemajuan kecepatan prosesor (dan biaya penyimpanan yang jauh lebih rendah) antarmuka data biner menjadi lebih langka sehingga Anda tidak melihatnya di lapisan aplikasi. Anda baik menggunakan format transfer tekstual (XML / JSON) atau Anda menggunakan abstraksi lapisan data yang menangani terjemahan untuk Anda (sehingga Anda bahkan tidak melihat ada terjemahan).
Tetapi ketika Anda coding pada lapisan data biner Anda perhatikan dan itu sangat penting. Misalnya Ketika saya bekerja di VERITAS (Symantec sekarang) saya sedang membangun perangkat lunak yang sedang dibangun pada 25 platform perangkat keras yang berbeda (tidak hanya big / little endian ada jenis lain).
sumber
(char) (x & 0xFF)
dalam C memberikan Anda byte paling signifikan terlepas dari masalah endian, dengan asumsi hanya bahwa byte adalah 8 bit. Saya telah merancang format file biner tanpa mengetahui mesin yang akan dijalankan oleh perangkat lunak - Saya pada dasarnya memilih pemesanan endian untuk format file tanpa peduli dengan perangkat kerasnya.Tidak, tidak ada yang menang. Kita sebagai spesies kita gagal untuk menstandarkan urutan di mana kita menyimpan byte kita, bersama dengan arah yang kita tulis dan sisi jalan yang kita lewati.
Sebagai akibatnya, siapa pun yang ingin mentransfer data antara dua sistem yang berbeda melalui jaringan atau dalam file, hanya memiliki peluang sekitar 50% dari versi awal yang wajar dari kode dumping data mereka yang benar di lingkungan mereka, dan bahkan jika itu berfungsi , memiliki peluang 50% untuk bekerja di pelanggan mereka.
Untuk mengatasinya, Anda perlu mencari fungsi-fungsi spesifik platform dengan nama-nama seperti "htonl" di header dengan nama-nama yang jelas berasal dari tahun 70-an seperti "arpa / inet.h", karena situasinya belum membaik sejak saat itu dan mungkin tidak akan pernah .
sumber
Masih belum ada konsensus:
Jadi pada level perangkat keras, LE jauh lebih umum. Tapi:
Kedua pesanan akan bersama kami untuk masa mendatang.
sumber