Yo diría que no se ganó tanto como dejó de importar. El BRAZO que constituye básicamente todo el mercado móvil es bi-endian (¡oh, la herejía!). En el sentido de que x86 básicamente "ganó" el mercado de las computadoras de escritorio, supongo que se podría decir que Little Endian ganó, pero creo que dada la profundidad general del código (superficial) y la abstracción (lotes) de muchas de las aplicaciones actuales, es mucho menos un problema que solía ser. No recuerdo el endianness realmente en mi clase de Arquitectura de Computadores.
Sospecho que muchos desarrolladores ni siquiera son conscientes del endianness o por qué es importante. Porque para la gran mayoría (y me refiero a la gran mayoría) es completamente irrelevante para su entorno de trabajo diario. Esto fue diferente hace 30 años cuando todos codificaban mucho más cerca del metal en lugar de manipular archivos de texto en una pantalla de manera elegante y dramática.
Mi sospecha general es que la Programación Orientada a Objetos fue el principio del fin de preocuparse por la endianidad ya que las capas de acceso y abstracción en un buen sistema OO ocultan detalles de implementación del usuario. Dado que la implementación incluye endianness, la gente se acostumbró a que no sea un factor explícito.
Anexo: zxcdw mencionó que la portabilidad es una preocupación. Sin embargo, ¿qué ha surgido con venganza en los últimos 20 años? Lenguajes de programación construidos en máquinas virtuales. Claro que la resistencia de la máquina virtual puede ser importante, pero se puede hacer muy consistente para ese idioma hasta el punto de que básicamente no es un problema. Solo los implementadores de VM tendrían que preocuparse por la resistencia desde el punto de vista de la portabilidad.
x & 0xFF
siempre le da el byte menos significativo independientemente del orden endian (suponiendo que sus bytes sean de 8 bits cada uno) porque ha especificado los bits que le interesan por su valor, no su posición relativa en la memoria.Endians solo importa cuando transfieres sistemas de datos binarios.
Con el avance de la velocidad del procesador (y un costo de almacenamiento mucho más bajo), las interfaces de datos binarios se están volviendo más raras para que no las note en la capa de aplicación. Está utilizando un formato de transferencia de texto (XML / JSON) o está utilizando la abstracción de la capa de datos que se encarga de la traducción por usted (por lo que ni siquiera se da cuenta de que hay una traducción).
Pero cuando está codificando en la capa de datos binarios, lo nota y es muy importante. Por ejemplo, cuando trabajé en VERITAS (Symantec ahora) estaba creando software que se estaba construyendo en 25 plataformas de hardware diferentes (no solo endian grande / pequeño, hay otros tipos).
fuente
(char) (x & 0xFF)
en C le da el byte menos significativo independientemente de los problemas endianos, suponiendo solo que un byte es de 8 bits. Diseñé formatos de archivo binarios sin conocer las máquinas en las que se ejecutaría el software. Básicamente, elegí un pedido endian para el formato de archivo sin preocuparme por el hardware.No, nadie ha ganado. Nosotros, como especie, no hemos podido estandarizar el orden en el que almacenamos nuestros bytes, junto con la dirección en la que escribimos y el lado de la calle en la que conducimos.
Como consecuencia, cualquiera que quiera transferir datos entre dos sistemas diferentes a través de una red o en un archivo, tiene solo un 50% de posibilidades de que la versión inicial razonable de su código de descarga de datos sea correcta en su entorno, e incluso si funciona , tiene un 50% de posibilidades de trabajar en sus clientes.
Para lidiar con esto, debe buscar funciones específicas de la plataforma con nombres como "htonl" en los encabezados con nombres que obviamente datan de los años 70 como "arpa / inet.h", porque la situación no ha mejorado desde entonces y probablemente nunca lo hará. .
fuente
Todavía no hay consenso:
Entonces, a nivel de hardware, LE es mucho más común. Pero:
Ambas órdenes van a estar con nosotros en el futuro previsible.
fuente