En Cult of Mac tuvieron hace unos días una discusión que si no fuera por los precedentes, sería muy entretenida y controvertida: ¿debería Apple unir iOS con OS X en el iPad Pro? Es una pregunta con trampa, por supuesto, pero voy adelantando mi respuesta: no, por favor.
iPad Pro es un gran dispositivo, en todos los sentidos. Y por ser tan grande, ha dado lugar a pensar en la posibilidad de utilizar ventanas y otros elementos de escritorio semejantes a los del PC o Mac convencionales, lo que desde el punto de vista del «tecno-friki» es algo así como el equivalente a las páginas centrales de una revista para adultos, dicho en plata. El problema es que esa fantasía ya la tuvo Microsoft, con desastrosas consecuencias. Estas son las razones por las que Apple NUNCA debería embarcarse en semejante cruzada tecnológica. Y por suerte, no hay visos de que ocurra.
Hace unos cuatro o cinco años Microsoft se embarcó en la idea de hacer que todos los dispositivos usaran el mismo Windows. PC, móvil, tablet, etc… De ahí salió Windows 8, el enésimo fracaso de la empresa de Redmond, que no ha sido aceptado ni por usuarios ni por técnicos. En realidad, el conjunto de cosas que salieron mal en este sistema fueron tantas que enumerarlas nos daría para un artículo de «No sólo Apple», pero eso para otro día… Me gustaría exponer las razones por las cuales Apple nunca debería embarcarse en una aventura de ese tipo, pero creo que la primera y principal de todas ellas, y en la primera en la que debería haber pensado Microsoft en su día, es tan tonta como esta: realmente, no hace falta.
Microsoft siempre desarrolló dos sistemas independientes, uno para escritorio y otro para móviles. Cada uno adaptado a las necesidades del momento. Y así debería haber sido. Tanto por razones prácticas como técnicas, dos entornos tan distintos como estos deberían haber seguido caminos divergentes pero compatibles. Pero se les metió entre ceja y ceja que debía existir la convergencia, usando como excusa (barata) que los desarrolladores podrían hacer una sola aplicación que funcionara en cualquier sitio sin cambios. Vamos, la excusa de Java que nunca llegó a cumplirse totalmente, ahora aplicada a Windows. Apple, sin embargo, decidió seguir con la divergencia, y aplicó la convergencia a los formatos, protocolos y la nube. ¿Por qué la solución de Apple es más inteligente? La razón principal es que el entorno móvil no tiene ni los paradigmas ni las estructuras que tienen las aplicaciones de escritorio convencionales, ni tampoco las mismas necesidades. Cuando Whatsapp decidió sacar la versión web, estructuró la app para que funcionara como un servidor, pero eso no funciona en iOS, que no permite que una app funcione de esa manera. El resultado fue que hasta hace cuatro días, no era posible usar Whatsapp en web si tenías un iPhone. ¿Por qué no permite Apple ese tipo de comportamientos? Porque un teléfono no es un ordenador. Para un fan total de la tecnología, acariciar la idea de llevar el ordenador encima en su móvil es una fantasía de las húmedas, pero poco práctica en el mundo real. Posiblemente dentro de unos años sea posible encapsular la potencia de un Mac de sobremesa en un iPhone (esto también vale para la relación PC-Windows Phone-Android), pero de momento no es realizable, y realmente es un problema logístico bastante más importante de lo que nos podemos imaginar.
Otra buena razón es que una tablet, aunque se le ponga un teclado y un ratón, no deja de ser una tablet. Es un dispositivo que aunque tenga una pantalla grande como el iPad, se maneja más cómodamente con los dedos y se usa para trabajos que no requieren un uso intensivo constante. Para eso están los portátiles, que además pueden tener mucha capacidad de disco y más complementos gracias a que son un poco más pesados y anchos. Si vas a escribir mucho rato y vas a usar ratón, además de tener varias aplicaciones en pantalla, varios escritorios, etc., siempre va a ser más cómodo el paradigma del escritorio de sobremesa. En ese sentido, OS X está plenamente adaptado a esas características, e iOS a las del entorno táctil. OS X viene a ocupar cerca de 20 GB de disco mientras que iOS viene a ocupar cerca de 2 GB. En un PC podemos tener discos de varios TB conectados para almacenar nuestros datos, y dudo que eso llegue a pasar en un contexto de iPad Pro. Como última razón, para no alargarlo más, creo que el iPad Pro no va a sustituir de ninguna manera a los portátiles de Apple. Como dispositivo, va a tener usos muy especializados en distintas áreas como el diseño, la logística y las presentaciones, pero no va a ser un aparato de uso masivo para las operaciones tradicionales que se realizan con el Mac de sobremesa o portátil.
Por estas y otras razones, Apple hace bien en no cambiar su estrategia. iOS, como sistema empotrado, es extensible a otros sistemas empotrados no móviles como el Apple TV, y otros que puedan ir apareciendo, que no requieren ni del código ni las florituras que se pueden ejercer en un Mac. A los desarrolladores realmente no nos hace un favor haciendo que las apps sean las mismas en todos los entornos, entre otras cosas porque eso es una falacia: cada entorno necesita de muchas adaptaciones ya que por mucho que nos pongamos, una ventana de escritorio no es una ventana de móvil o tablet, y eso el que haya trabajado en entornos mixtos lo sabe. El otro día asistía una charla sobre Windows 10 que me convenció de que lamentablemente, siguen por el camino equivocado. En uno de los puntos de la charla, el ponente comentó que se podía instalar Windows 10 en un Raspberry Pi, lo que es cierto, pero que no tiene ventanas, ni controles, ni nada de lo que tienen las versiones de PC o móvil. Pues señor mío, entonces no es lo mismo. Ni es el mismo sistema ni permite hacer las mismas cosas. Simplemente es un core que comparte código entre las distintas versiones. Pero ni las apps se comportarán igual ni harán lo mismo aunque sean universales. Es una falacia. Porque, en realidad, no es posible hacer que el mismo sistema funcione igual en todos sitios. Es un hecho técnico imposible de soslayar. Así que: Apple bien. Microsoft mal.
En realidad Windows 10 Core es igual en todos sitios.
El ejemplo que expones de que las apps no son las mismas…
Si son las mismas, el mismo código funciona en la Raspberry Pi (Windows 10 IoT Core), en Windows Mobile 10 y en dispositivos con Windows 10 de escritorio. Es el mismo código, compilado para distintas plataformas. (Algunas características como por ejemplo las llamadas telefónicas no están en IoT Core, pero si en Mobile y en Desktop, etc…, cosas lógicas).
Según tu, que compartir código entre varias apps no tiene sentido… Lo tiene y bastante, y de hecho es lo que la mayoría de gente hace cuando hace apps multiplataforma, por eso que cuando quieren hacer una app así la mayoría que no tienen recursos o tiempo, tienen que hacer una aplicación web y evitan una app nativa (o usan Cordova, Xamarin, etc…)
Los paradigmas de una app móvil y una app de escritorio pueden ser los mismos perfectamente, al fin y al cabo, lo suyo es que puedas ser igual de productivo en un móvil que en ordenador cuando lo necesites, y que si no tienes el ordenador encima, lo uses como tal, lo que cambie es la interfaz, para acomodar al usuario a una experiencia adaptativa.
Mas le gustaría a iOS y a OS X que el mismo subconjunto de APIs estuviese en ambas plataformas, que tuviesen controles ya predefinidos por la plataforma para dibujar en pantalla, reconocimiento de escritura, APIs de Machine Learning, una infraestructura de servidores que cualquiera pueda contratar para sus apps y que se integra con los servicios de su misma app Windows, y la posibilidad de programar en C#, HTML/JS, C++, Objetive-C (y próximamente incluso Swift!, aka Islanwood), etc… . Comparar esto con Java es un chiste.
Uso iOS y OS X y al igual que he usado Windows y Windows Phone, he de decir que el IDE, el subconjunto de API y las posibilidades que da Microsoft no las tiene Apple ni de aquí a lima (como se suele decir). Cada uno tiene su encanto, eh, yo he usado Visual Studio y Xcode, y como todo, le coges cariño a cada uno, pero Visual Studio es bastante superior.
Hay que ser objetivo con las cosas, y que investigar. Las cosas son como son.
Cada uno tiene sus cosas buenas y sus cosas malas.
Gracias por escribir. Particularmente el artículo no habla de compartir código entre plataformas, sino de que la misma app se ejecute en todas ellas con una sola escritura. El ejemplo de Raspberry Pi es evidente: puedes ejecutar un juego en él, pero no servirá para nada. No tiene sentido ejecutar un juego en una RP igual que no tiene sentido escribir una app de sensores para unas Windows convencionales o un móvil. Cada dispositivo tiene su porqué y se usa para lo que se usa.
Microsoft intentó universalizar un sistema operativo táctil, pero como se demostró con Windows 8, fue un fracaso. Indicas que los paradigmas pueden ser los mismos, pero si has desarrollado para ambas plataformas verás que eso no es posible, desde muchos puntos de vista. Yo sí, desde hace años, y he llegado a entender que por mucho que se quieran universalizar las aplicaciones, lo que es el del Cesar es del Cesar, e intentar implementar conceptos de ventanas de Windows para PC en un móvil es cuanto menos absurdo. Para apps como juegos que funcionan a pantalla completa, no te lo niego, pero para aplicaciones con controles, ventanas, MDI (este es un ejemplo clásico) y otros usos del estilo, no tiene sentido intentar que las apps funcionen con los mismos conceptos en entornos tan distintos. Lo que indicas de las apps web es cuanto menos ejemplificante: nunca llegarán a tener el nivel de rendimiento e interacción de las apps nativas. Lo he intentado, como todo hijo de vecino, y terminas volviendo a nativo porque lo que sale es lo que sale: algo de baja calidad. Como bien indicas, para cuando no tienes mucho tiempo o recursos. Lamentablemente, hay gente con tiempo y recursos que también lo está haciendo y luego salen las apps que salen. Muy malas en general. No digo que no las haya buenas. Simplemente que cuesta mucho más conseguir un producto de calidad que con las nativas.
La experiencia da una visión muy amplia del asunto. Evidentemente siempre habrá quien esté a favor de hacer este tipo de prácticas. Pero hay que remitirse a la realidad: Microsoft no está consiguiendo resultados y de hecho, no está logrando que su store remote, por razones obvias. El tiempo dará la razón como siempre, pero de momento están perdiendo la partida, por las razones que indico en el artículo. Y últimamente no están consiguiendo remontar el vuelo, con decisiones muy malas como las que han llevado a la catástrofe de OneDrive como ha publicado Eladio hoy. Si siguen así, el problema va a ser mucho más profundo y ojalá me equivoque, pero la cosa no pinta bien.
Madre mía, qué artículo más falaz.
Microsoft ha tenido dos sistemas: uno para pc y otro para smartphones sencillamente porque hasta la fecha estos últimos no tenían suficiente potencia para mover algo tan grande. EXACTAMENTE IGUAL que ocurre con Apple.
MS está haciendo las cosas muy bien desde hace dos o tres años. Siendo tan fanboys de Apple como para no tocar otra cosa que no sea un Mac, no entiendo por qué echáis mierda sobre una empresa de la que jamás váis a usar un producto. A no ser que esta web esté financiada por Apple…
Hola, gracias por escribir. Soy usuario habitual de productos Microsoft (de hecho tengo cursos de .NET) desde hace 20 años o más (empezando en 1991 con MS-DOS, que me gustaba más de lo que quiero admitir… ), así que tengo que rebatir tu opinión. Precisamente intento hablar de esto desde el conocimiento que me dan 25 años de experiencia programando sistemas Microsoft entre otros. Los aparatos móviles de hoy día no pueden, ni de lejos, hacer lo que hace un PC. La Surface no es un aparato móvil en el sentido estricto, si no portátil (como un PC portátil) y táctil, y de hecho tiene tanta potencia como un portátil convencional, por eso lleva Windows 10… Pero intenta mover lo mismo con un ARM de los que lleva cualquier teléfono. No lo conseguirás.
Siento discrepar en que Microsoft está haciendo las cosas bien. Lamentablemente no es así, pero sólo hay que mirar las noticias y los problemas que llevan teniendo desde hace, precisamente, tres años con la salida de Windows 8, para adaptarse a un mercado en el que Microsoft nunca se ha movido con naturalidad, que es el del usuario final. Saludos.
Habéis usado Windows 10 en una Surface o similar? No soy programador pero si os fijáis Microsoft saca dispositivos que pueden ser portátil y tablet (Lumia a parte). Así pues, al uso no desde el punto de vista de programador y si desde el usuario, si usas la Surface en modo tablet luego la abre en su escritorio con su barra de tareas y ventanas, por tanto si se puede conseguir las apps universales ya que la creas para escritorio y con una tile para el modo tablet. En los Lumia solo es el modo tablet o móvil y tienes que quitar la barra y ventana o bien dejar la "X" para cerrar o el "_" para minizar la app y que Windows gestione como la congela o la cierra en segundo plano. En mi opinión Apple si debería haber puesto OS X en el iPad Pro teniendo cuidado en detalles como que los desplegables sean más anchos (como ha hecho Microsoft) y este tipo de cosas, después la funda con el teclado o como sacarán otras empresas y que el iPad Air 2 ya tiene que le da un aspecto de portátil, porque he de reconocer que la Surface con el soporte y el teclado es extraño y no tan cómodo de usar. Así que un type cover con bisagras al iPad Pro le vendría de lujo y cada cual que escoja. Y esto del type cover para la Surface tambien vale. Evidentemente si Apple hubiese hecho eso el iPad Pro canibalizaría al Macbook y Macbook Air pero para el uso que se les da lo puede hacer un iPad y además en este caso para cosas de diseño pues con el Apple Pencil facilita las cosas. Si quieres más potencia y rendimiento entonces te quedan los Macbook Pro. Se reduce a que como Microsoft ya lo ha sacado así pues Apple lo tiene que hacer diferente pero acabara pasando como con el stylus que es muy útil y llegará a ser necesario. Como marketing Microsoft puede decir que 'no hace falta que me lo imprimas, enviamenlo y te lo firmo' Apple solo en el iPad Pro, el futuro va hacia un mundo sin papel y de paso más ecológico. Por último, recalco y remarco que me gustan mucho los productos de Apple desde el iPod, que tuve en su día, y pasando por el iPhone y iPad que tengo, ya llegará el día que podré permitirme un Mac. Y no denosto a Microsoft que esta sacando buenos productos gracias a Windows 10, por eso tengo la Surface Pro 3. Apple tendría que cambiar un poco ya que si OS X ocupa 20gb tendría que sacar el iPhone o iPad de 32gb y si le quitas el espacio del OS te quedan 12gb, ahora tienes 16gb que se quedan entre 12gb y 14gb y así sucesivamente.
Hola, gracias por escribir. El artículo no considera la parte de interface o de funcionamiento, se trata de un artículo orientado a la cuestión de programación técnica básicamente. Yo no digo que no se pueda hacer, digo que no se debe, o al menos, yo no lo haría. Se que las Windows 10 tienen un modo en el que, en el futuro, podrás conectar de alguna forma un teclado y un ratón a los teléfonos y por medio de una salida de vídeo, hacer que un móvil se comporte como un PC de bolsillo, y de hecho es algo que particularmente me gustaría ver, porque creo que sería la siguiente evolución del PC. Pero no en una tablet o un móvil, sino en una pantalla de 21 pulgadas al menos. Las interfaces de ventanas se hicieron para pantallas grandes, no para pantallas pequeñas, y su evolución así lo demuestra tras tres décadas de desarrollo visual.
Lo del espacio, sinceramente no creo que tenga que discutirse: cuando lo móviles tengan de serie 128 GB entonces podemos discutir si se puede meter o no un sistema operativo, pero con menos es inviable. Y no sólo por el tamaño del sistema, sino porque luego hay que meter apps: no quiero ni pensar en meter juegos de 20 GB como hay muchos hoy día o el archivo de intercambio, los temporales, etc… Es un suicidio técnico que ningún desarrollador de sistemas responsable pondría en práctica en las condiciones actuales. En el futuro no lo sé, pero hoy día no.
Por alguna extraña sensación que tengo, da la impresión de que mucha gente piensa que estos son artículos anti-microsoft, pero no es así… Son de hecho críticas constructivas orientadas a explicar porqué algunas cosas tienen más o menos sentido, insisto, desde el punto de vista técnico. Pero ni mucho menos son ataques a la empresa, lo que como digo no termino de entender… Saludos.
Y que opinarias si Apple hubiese puesto OS X en vez iOS? Ya se que el artículo va sobre programación, y como comentaba obvio que no se, pero si creo que si tienes una app (espacio aparte) desarrollada y hecha para OS X, tan es complicado adaptarla a una nueva interfaz?, en absoluto me parece malo tu articulo y el punto de vista desde el cual lo analizas. Pero se reduce a lo que comentaba del interfaz, si superas esa barrera no dirías que Microsoft lo ha hecho mal. Es importante el interfaz porque app como iTunes para Windows 10 se pausa cuando la pantalla se apaga y app con interfaz de Windows (no se como se llama) si funcionan con pantalla apagada, hecho aposta para que se puedan usar cómodamente en modo Tablet.
En cuanto al almacenamiento no estoy de acuerdo porque como digo ahora mismo todos los fabricantes mienten ya que te dicen Xgb y no restan lo que ocupa el OS. Tu que usas Mac lo haces con el escritorio normal o con el launcher? Hoy en día como demuestra el futuro Microsoft Lumia 950 si se podrá usar mediante un adaptador como ordenador ya que hoy en día puedes conectar por Bluetooth muchos teclados y mouse. Creo que el adaptador además de carga le ayuda en el tema de gráficos pero no de potencia y RAM. Yo mismo he usado el iPad Air como portátil y iOS es muy limitado de usar, la misma experiencia pero con Mac hoy en días es viable pero partiendo de 32gb para arriba, no todos los juegos ocupan 20gb, pero si sería más lógico que partieran de 64gb, de que memoria parte el IPad Pro. En ningún momento he hecho el comentario creyendo que eres anti-Microsoft pero si te ha faltado un poco de objetividad. Apple lo ha hecho así para ir diferente a Microsoft pero de lo que estoy seguro es que si Apple decide juntar los OS que tiene sería un OS excelente y con pocos problemas y no como lo que le pasó a Microsoft que la mayoría de dispositivos que había en el mercado dependían de un trackpad y necesitaba una pantalla táctil, lo que pasa es que ahora el mercado ya esta más adaptado y los fabricantes como HP, Dell o Toshiba ya están haciendo productos táctiles antes que no tanto, Samsung es un caso a parte porque tiene la posibilidad económica de poner el dispositivo que haga falta pero satura y colapsa el mercado. Ten en cuenta que quien use el iPad Pro para ofimática y multimedia se comprará un hub de puertos hdmi, USB quizás el mando steel que también es compatible con tvOS y le será más que suficiente.
Hola de nuevo. En lo que se refiere a lo técnico, por no alargarlo mucho, te diré que sí tiene mucha importancia. No es sólo un tema de interface. La potencia del hardware no es sólo una cuestión de gigabytes y gigahercios. Si fuera eso, cualquier aparato móvil de hoy día sería un PC de verdad en miniatura. El tamaño de la pantalla y el espacio es importante, pero no es lo más importante. Cuando usas un móvil, haces cosas que no haces con un PC, como pasar las pantallas con el dedo. Eso requiere código que no tiene sentido que exista en el PC, y viceversa. De hecho, como comentabas, cada versión para cada dispositivo hace las cosas ligeramente diferentes (muchas de ellas de hecho no se pueden replicar y han de hacerse específicamente). Esto que te pongo es un ejemplo sólo, porque la cantidad de características diferentes entre los distintos dispositivos son millares, aunque nosotros no las veamos al usarlo. En Windows 10, cada versión parece igual pero no lo es. Lo único que es realmente igual es el motor de ejecución. El resto de código es un mundo aparte. ¿Sabes la cantidad de ingenieros que han tenido que ocupar para hacer cada versión? Te puedo asegurar que Apple ha usado a muchos menos, simplemente porque no necesita probar cada característica en cada tipo de aparato, implementarla de forma diferente y demás zarandajas. Lo único que hay igual en cada versión como digo es el core y .NET, que es la librería en la que se basa todo. Si no, yo podría enseñar pantallas en un Raspberry Pi, y no podría. Cuando tu metes una app universal en un Raspberry Pi, sólo puedes ver una pantalla estática, a pesar de tener salida de vídeo, porque la versión para RP no tiene funcionalidades de ventanas. ¿Por potencia? No: RP tiene tanta potencia como ordenadores de hace menos de 10 años. Simplemente es que un RP no se usa para eso, y por eso no han incluido esas funciones. Sólo por eso, verás que no sólo NO son todas las versiones iguales si no que, aunque puedas ejecutar la app, esta simplemente no hará nada, porque no podrás hacer nada con ella.
Yo he usado el iPad 4 como ordenador portátil y excepto porque no he podido programar, lo demás lo he podido hacer todo con mucha soltura. Pero yo particularmente no pretendo usarlo como un portátil. Es una tablet. Tenemos la manía de intentar que las cosas funcionen para lo que no son, y eso nos lleva a equívocos. Ya veremos si el día de mañana podemos conectarle un teclado, ratón y pantalla a un iPhone. Entonces fliparemos. Pero cuando eso pase, lo que veremos en la pantalla externa no será lo mismo que veremos en la del teléfono. Será otra cosa, muy probablemente una versión de OS X. Y será lo lógico, porque no tiene sentido, como se ha demostrado con Windows 8, usar una interface táctil en un contexto de escritorio. Nadie lo ha querido.
Respecto a tu pregunta sobre si Apple hiciera eso mismo, te diré que lo dudo realmente mucho, pero si pasara, lo criticaría exactamente igual. Pero no porque no me facilitara la vida como programador, sino porque técnicamente yo no hubiera tomado nunca esa decisión. Pero insisto, creo que tardaremos muchos años en ver eso, si pasa…