Érase una vez en la web, un campo de batalla
Con la nueva era de HTML5, la web móvil y todas las nuevas tecnologías, mucha gente ha olvidado o simplemente nunca vivió la "Guerra de Navegadores", una época oscura en internet donde todos peleaban contra todos, todos se odiaban entre si, ningun navegador implementaba algo que otro ya lo tenía, y sentía la necesidad de tener su propia versión de dicha característica.
Era como "Game of Thrones", pero en internet.
Ésta página está optimizada para Internet Explorer 5.5 con resoluciones de 800x600
Es esa fecha en la que "Esta página web está diseñada para correr en tu viejo Internet Explorer 5.5 en resoluciones 1024x768 y tu que usas Netscape con 800x600 no me importas" era practicamente ley, y el resto de gente que usaba Netscape u Opera sufría en el olvido.
Señores, esto está ocurriendo otra vez, les presento la nueva guerra de navegadores del 2012 en la era móvil y el pésimo uso de los prefijos de CSS.
Los prefijos de los navegadores en CSS3
Código :
#logo { -webkit-animation: annoying_blink_effect 0.150s infinite; -webkit-transform: rotate(-15deg); -webkit-transition: all 10s linear; }
Safari, el navegador por defecto del iPhone y iPad, con su motor de rendereado WebKit introdujo muchas caracteristicas que han sido un boom a nivel gráfico para la web, incluyendo a las transiciones, animaciones, transformaciones, y muy pronto Adobe esta implementará los shaders para CSS, que ahora se volvieron parte del estandar de CSS3 - estas nuevas caracteristicas nos han brindado muchas nuevas posibilidades en la web; nuestras apps son mas rapidas, mas bonitas y hasta a veces su interfaz se puede comparar a la de una aplicacion nativa.
Pero esto trajo un nuevo problema, al ser los pioneros, mucha gente empezó a usar estas propiedades sin importarle el resto de navegadores, cada vez vemos menos websites siendo probadas con otros navegadores que usen la última versión de WebKit, y esta resultando en websites muy pobres que solo fueron "Diseñadas para correr en iPhone 4S", olvidando al 3GS o a los Android, ni hablar de los Window Phone, y Opera Mobile... alguien se acuerda de Opera?
Opera en el vacío: "ya nadie me quiere ;__;"
Opera, Microsoft y Mozilla se hartaron, se cansaron que aunque sus navegadores soporten muchas de estas opciones de CSS3, los "diseñadores web" solo estan diseñando, maquetando y programando para WebKit.
Es entonces cuando Opera mandó a los estándares al diablo e implementó los prefijos -webkit- a su navegador en versión "experimental", echando la culpa de todo esto a nosotros, los que trabajan en la web. ¿Y saben qué? Creo que es cierto, muchos de nosotros usan -o, -ms, -moz además de -webkit, y por último muy pocos usan la propiedad SIN los prefijos en su código.
¿Oh, no, y ahora qué podemos hacer?
No mucho, solo rezar que Opera nunca pase esto a su versión estable, esperar a que algún día todos los navegadores decidan dejar de usar prefijos (muy improbable), y aprender a escribir buen CSS.
El estándar indica que uno debe escribirlo su código asi.
Código :
#logo { animation: annoying_blink_effect 0.150s infinite; transform: rotate(-15deg); transition: all 10s linear; }
Pero esta es la web, los navegadores nunca quieren hacerte la vida fácil, entoncestienes que incluir todos los prefijos de los como se debe, además de la propiedad por defecto.
Código :
#logo { -o-animation: annoying_blink_effect 0.150s infinite; -ms-animation: annoying_blink_effect 0.150s infinite; -moz-animation: annoying_blink_effect 0.150s infinite; -webkit-animation: annoying_blink_effect 0.150s infinite; animation: annoying_blink_effect 0.150s infinite; -o-transform: rotate(-15deg); -ms-transform: rotate(-15deg); -moz-transform: rotate(-15deg); -webkit-transform: rotate(-15deg); transform: rotate(-15deg); -o-transition: all 10s linear; -ms-transition: all 10s linear; -moz-transition: all 10s linear; -webkit-transition: all 10s linear; transition: all 10s linear; }
Pero los prefijos son horribles, arruinan mi código y los odio
Entonces, haz como los pros, aprende a usar pre-procesadores como Stylus, Less o Sass.
Y si por nada del mundo puedes usar uno de ellos, arruina la velocidad de carga de tu web usando prefix free.
Siempre usen los prefijos, no dejen que las empresas detras de los navegadores nos usen de excusa para hacernos la vida imposible.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Freddie el 26 de Abril de 2012
¿Cómo es posible que haya navegadores que en vez de tomar la versión simple y estandar de las nuevas propiedades, prefieran irse por las extensiones propietarias porque "más gente las usa"? ¿Es esto otro marquee?
Microsoft por su alianza oscura en MPEG-LA con Apple, puedo entender por qué van allá ¿Pero Firefox? ¿Opera? Esto es como saber que tus padres no lo saben todo y pueden fallar.
Que Tupac se apiade de nosotros.
Por The Fricky! el 26 de Abril de 2012
Ahora, esto al menos yo lo tengo claro, como le comenté hace un tiempo a Addy Osmani en Twitter "no son los prefijos los que están matando internet sino los desarrolladores front end flojos (perezosos)".
Todavía no he encontrado una excusa convincente que justifique crear un sitio web "optimizado para Webkit" (otra cosa son las aplicaciones empaquetadas), y que Opera decida (como pensó y al final no hizo Firefox) incorporar el prefijo -webkit en su navegador es un paso en el camino equivocado, en mi opinión.
Como bien dice Neo, Pre-processors FTW! Y si no quieres eso ni quieres usar Prefix Free, siempre puedes usar el bueno y fiel Zen Coding y crear snippets (que es lo que yo he hecho antes de que los pre-processors me hicieran mejor ser humano)
Por Ramm el 26 de Abril de 2012
Aparte, honestamente no puedo entender bajo que circunstancias alguien no pueda/quiera usar preprocesors, aunque solo sea por las variables y mixins, con los que puedes escribir css regular pero ahorrando un monton de trabajo y mejorando mucho el mantenimiento.
Hubiera querido decir "Ellos se lo pierden", pero lamentablemente sus malas practicas ahora nos afectan a todos.
Por NEO_JP el 26 de Abril de 2012
Ramm :
Este es exactamente el problema =/
Por jseros el 26 de Abril de 2012
Por NEO_JP el 26 de Abril de 2012
John Acot :
Es importante, porque aunque en 5 o 10 versiones despues (1 o 2 años) las quiten, todas las versiones anteriores solo funcionan con prefijos. Esto es el internet, no una imprenta, uno trabaja con todos los navegadores, no solo las ultimas versiones del navegador mas cool.
Y el problema no son los prefijos, son la gente que no los usa, el drama se origina cuando un navegador que NO es webkit, decide usar prefijos propietarios que empiezan por -webkit-.
Lo peor es que no solo es Opera, Microsoft y hasta Firefox estan pensando en hacerlo tambien. He ahi el drama.
Por Lunatic el 26 de Abril de 2012
Por edge el 26 de Abril de 2012
P.D.: Es "echando la culpa", no "hechando la culpa"
Por jseros el 26 de Abril de 2012
Por NEO_JP el 26 de Abril de 2012
jseros :
Yo siento que lo es porque lo hacen todo mas dificil, es una guerra movil, y los prefijos es el inicio
Por El Semántico el 26 de Abril de 2012
¿Alguien tiene algún ejemplo de un sitio -webkit-only?
Me da curiosidad verla.
Por The Fricky! el 26 de Abril de 2012
Es una guerra porque los fabricantes crean estos features incluso antes de proponerlos a la W3C buscando ganar mercado (obligándote a verlo desde X browser)
El mundo maravilloso de "todos caminamos felizmente hacia el mismo camino" no existe. No ha existido antes y no existe ahora.
Por antonionavajas el 26 de Abril de 2012
Por Pha el 26 de Abril de 2012
La "filosofía" que intentan instaurar las grandes empresas y los diferentes organismos a nivel mundial de utilizar unos "estandares" para el desarrollo de una serie de productos sería buena si existiera solo un "runtime" o un navegador que ejecutase "lo que sea", y todos contribuyesen a actualizarlo de forma común.
Mientras haya diferentes navegadores de diferentes fabricantes con sus propios intereses en el mercado, todo esto será un "caos".
"Yo me invento tal nueva feature (ejemplo: 3d en navegador), y me paso por le forro lo que hagan los demás"
Hasta que cada nueva caracterísitica, sobre todo las que implican más que un simple "estilo css", sea "usable" para la mayor parte de la población con la fragmentación de navegadores, dispositivos, ordenadores que existen, y lo lentos que avanzan los "estandares", pasarán años...
Y estaremos así por los siglos de los siglos con este modelo de negocio... Lo cojonudo es que mucha gente piensa que es "el ideal". Pues nada, todo pa ellos.
Por ElSiniestro el 26 de Abril de 2012
Según parece, el único estándar es la manera en la cual se desarrolla la guerra:
Por Freddie el 26 de Abril de 2012
Pha-blog :
Sí, eso funcionó genial entre el 98 y el 2004. Eres un genio, Pha.
Por Freddie el 26 de Abril de 2012
The Fricky! :
Mucha gente no ve el problema porque asumen que -webkit- y similares desaparecerán y eventualmente, todos usaremos la versión estandar sin extensión. La gente sensata pone todas las versiones (aunque la versión sin extensión no se use) y cuando los navegadores implementen el estandar normal, todo feliz. Mientras, usamos precompiladores, scripts, etc.
PERO NO. Resulta que la gente es perezosa. En github hay millones de proyectos que sólo implementan -webkit- y lo preocupante es que la gente que usa github tiende a ser más "iluminada" en la realidad de la web que los que no. Y ahora los navegadores dicen "bueeeno... si ellos son así, pues hagamos caso" y NO. Ese no es el camino, el camino es adoptar el estandar real, abandonar las extensiones propietariasy que los sitios web se rompan si están mal codeados.
Necesitamos un browser con huevos, pero ni Chrome quiere ese rol.
Por ThonyFD el 26 de Abril de 2012
Si solo siguiéramos los estándares no habría innovación y estaríamos algo atrasados...
Pero igual estos nos hace la vida un poco mas difícil,
Ojo no estoy diciendo que este bien solo digo que algo bueno se puede rescatar...
Por NEO_JP el 26 de Abril de 2012
ThonyFD :
Si, personalmente yo soy pro prefijos para evitar que una propiedad propietaria se mezcle con otra, el problema es que los navegadores no estan migrando a usar la version estandarizada y la gente solo esta usando 1 prefijo en vez de los 4 que se deben usar, generando todo este problema.
Por Pha el 26 de Abril de 2012
"Porque lo mejor es que el futuro de la web lo controle una sola empresa, un solo consorcio, un monopolio quizás? ¿Que fuera cerrado? ¿Sin input de la comunidad? ¿Sin sparks creativos que cambien la web como la conocemos?..."
Lo que tienes tu y los que piensan como tu, es un lavado de cerebro de tres pares de narices. Por muchas vueltas que le des, por mucha demagogia que utilices, la situación no es buena ni de lejos.
Es cuestión de pragmatismo y no de pajas mentales. Es más óptimo tener un "runtime" único (que no tiene que por qué ser propiedad de nadie) y compacto, que tener veinte runtimes de diferentes empresas (éstos también son propiedad de alguien, menuda putada...), con los que tienes que pegarte para que lo que haces se ejecute como Dios manda. Para mi esto es surrealista.
El resto es demagogia barata y lavados de cerebro.
Y como dije alguna otra vez. Esto lo dice alguien que trabaja también en web de toda la vida ("estandar", como dicen por ahí).
Por torrealbaruben el 26 de Abril de 2012
Necesitamos un standard y como dice Freddy un navegador con los huevos bien puestos.
Por jarlest el 26 de Abril de 2012
Por XKlibur el 27 de Abril de 2012
Tu planteamiento incita a una reflexión profunda y duele un poco.
Por v3on el 27 de Abril de 2012
Por Freddie el 27 de Abril de 2012
v3on :
Por Pha el 27 de Abril de 2012
http://westcoastlogic.com/slides/debug-mobile/
Por elwawi el 27 de Abril de 2012
Sería cómodo que IE agregara solo el prefijo suyo al leer cada linea en css
google lo propio con webkit, etc.
de esa manera los que programamos las páginas no tenemos que cargar ni rutinas en header
ni tipear tanto.
Pueden tildarnos de lentos , de perezosos por no querer poner los prefijos cuando en realidad si ellos leen un archivo css , que en el lector de esos archivos coloquen el prefijos ellos y listo
Por JoseAlejandro_Realza el 28 de Abril de 2012
Es asi como Prefix Free llego para resolvernos estos problemas http://leaverou.github.com/prefixfree/
Por Eclypse el 01 de Mayo de 2012
Por The Fricky! el 01 de Mayo de 2012
Por falconmasters el 02 de Mayo de 2012
La verdad creo que no, dejaran atras a IE, Opera, etc pero a firefox no señores, es cierto que mucha gente usa chrome, pero la otra mitad esta en firefox!
Por edderleonardo el 03 de Mayo de 2012
Por mostaza4 el 05 de Mayo de 2012
Por The Fricky! el 06 de Mayo de 2012
Por NEO_JP el 07 de Mayo de 2012
Por Seth69 el 09 de Mayo de 2012
Por Lawebera el 16 de Mayo de 2012
PD. No estoy de acuerdo con que una sola empresa manipule la web, esto trae más desventajas que ventajas, si hay monopolio con varias empresas ahora imaginen una sola que haga y decida lo que quiera y nosotros sin tener alternativas.
Que viva un estándar y que los sitios perjudicados se actualicen y hagan las cosas bien, porque hay que pensar en un futuro firme.
Por Cotelandia el 12 de Agosto de 2012
Por cesc1989 el 23 de Noviembre de 2012
Por @marcogomesr el 27 de Noviembre de 2012
o si no usen framework para css llamado compass...el se encargara de agregar toodos esos prefijos esta basado en sass...