Mi experiencia estudiando Ingeniería del software con un Mac
Publicado por Pablo Asekas
En 2012 empecé mis estudios universitarios, Ingeniería del software para ser exactos. Por aquella época yo ya usaba Mac, y no me planteé la opción de usar otro dispositivo en esa nueva aventura en la que me iba a meter.
Pero si estáis dudando entre si usar un Mac u otro tipo de ordenador, hoy os voy a contar mi experiencia usando un Mac para estudiar la carrera de Ingeniería del software, donde el uso del ordenador es tan variado que la misma asignatura puede cambiar radicalmente según el año en que se de.
Si estás estudiando, puede que esta guía para tomar apuntes en el iPad te sea de gran utilidad.
Sin bien ahora la diferencia entre un Mac y un PC portátil es cada vez menor, no siempre ha sido así. Estos últimos años, los PCs han reducido mucho esa enorme barrera que había antes.
Por supuesto, ese mismo tiempo en el que el hardware del PC ha ido cogiendo al Mac, lo mismo ha pasado desde el otro lado. El Mac –más concretamente macOS– ha ganado muchísimos adeptos en cuanto a software se refiere, y soluciones que antes estaban atadas a un sistema operativo como Windows, ahora están disponibles en más plataformas.
De modo que tenemos, por un lado, que los portátiles PC se han acercado mucho al Mac, aunque en mi opinión el Mac sigue por delante. Por otro lado, Windows sigue llevando la delantera en compatibilidad software, pero este terreno se ha reducido mucho gracias a las distintas soluciones abiertas que se han ido lanzando al mercado.
Lenguajes y tecnologías
Desde que inicié la carrera, hasta que la terminé, las asignaturas nos han ido trayendo una amplia variedad de lenguajes de programación y tecnologías con las que realizar prácticas y aprender conocimientos. Esta es una lista de algunas tecnologías y lenguajes que he podido desarrollar sin problemas en el Mac:
- Java
- C
- C++
- Shell script
- Haskell
- SQL
- PostgreSQL
- TypeScript
- Docker
- Desarrollo web con Spring Boot
- Gestión multihilo
- Diseño y desarrollo de interfaces
- Ruby
- PHP
- JavaScript
Dependiendo de la asignatura, el profesor, y la práctica en sí, tendremos mayor o menor similitud en los aspectos generales del entorno de trabajo: el editor de texto usado, el IDE, la forma de configurar algunos componentes, la gestión de las librerías externas, etc. Pero lo que está claro es que lo importante lo vamos a poder realizar sin problemas.
A lo mejor en la asignatura se usa un IDE que no está disponible en Mac, y hay que utilizar otro. Es posible. Pero os aseguro que con ese IDE vais a poder realizar la misma práctica sin problemas. Cambiarán algunas cosas, la forma de realizar algunas tareas, o incluso no tendrá alguna herramienta que en esa asignatura se usa (como un gestor de bases de datos integrado), pero no hay nada que no podáis realizar, lo único que hay que hacer es buscar otro camino.
Ventajas de usar un Mac
Las ventajas de usar un Mac son subjetivas a cada uno, por eso os voy a poner aquí unas cuantas que valoro y que hacen que usar el Mac sea una delicia.
- Velocidad general: macOS está tan bien optimizado que la separación de procesos hace que puedas realizar tareas pesadas en segundo plano sin apenas afectar a las tareas de menor peso. Puede que a simple vista os parezca una tontería, pero yo valoro muchísimo que mi ordenador esté siempre disponible, aunque por detrás esté realizando una tarea que dejaría bloqueados a la mitad de los ordenadores.
- La simplicidad y eficiencia: “It just works” es un lema que está vinculado a los productos de Apple. Y si bien es cierto que hay veces que no se cumple, la mayoría sí. Para mí es muy importante que todo aquello que tiene que funcionar, funcione, sin más. Bastante nos vamos a pegar en la carrera para averiguar qué está pasando y porqué no funcionan nuestros programas, como para encima tener que hacerlo con todas esas cosas que deberían funcionar, no lo hacen y encima se nos escapan de las manos 1Cuando le digo a la gente a lo que me dedico y que uso un Mac como equipo principal en casa, se sorprenden mucho porque piensan que alguien como yo tiene que tener un sistema super complejo. Yo siempre les respondo lo mismo: en el trabajo me pego con un ordenador por imposición, no quiero hacerlo al llegar a casa..
- Batería: como he comentado, los PCs se han acercado mucho al Mac en cuanto al hardware, pero aun así hay cosas que tienen pendiente. La batería es uno de esos aspectos, y no sabéis lo bien que se vive sabiendo que no tienes que llevar el cargador en ciertas circunstancias porque tu Mac va a aguantar todo lo que dure la jornada. Todavía recuerdo a gente peleándose por los escasos enchufes de las aulas, o cerrando los portátiles porque se habían quedado sin batería.
- Aspectos físicos: cuando estás en la universidad, es muy habitual que estés andando entre clases, edificios, y por todo el campus. Tener un equipo ligero como lo es un Mac, pero con la potencia de procesamiento adecuada, es una bendición. Es posible que ahora no notéis la diferencia entre llevar o no llevar medio kilo, pero se nota. La calidad de la pantalla también se nota mucho, vamos a estar horas y horas pegados a ella, por lo tanto, tener un equipo que ni dañe ni canse la vista es un requisito obligatorio.
Disfruto de la tecnología, me encanta saber que mis productos tecnológicos funcionan sin problemas, me ocurre con todos ellos, de modo que haber tenido un Mac 2Dos en realidad: mi viejo MacBook Pro de 2010 y mi actual MacBook Pro de 2015. en mi periodo universitario ha sido de lo más gratificante. Mis [email protected] lo pueden confirmar, rara vez estaba sin el ordenador encima, y todo eso se debe a que me encanta lo que me transmite este ordenador y este sistema operativo. Los ordenadores son mi pasión, y en el Mac he encontrado la mejor forma de disfrutar de esa pasión como con ningún otro.
Desventajas de usar un Mac
Si bien estoy enamorado de este ordenador y de su sistema, vamos a ser sinceros, siempre hay desventajas, en cualquier cosa. Y quien os diga que no hay desventajas, os miente.
En el caso del Mac en Ingeniería del software, el mayor problema que he encontrado ha sido relacionado con la compatibilidad de algunas tecnologías y programas.
Es muy normal que se toque de todo en la carrera, y no siempre va a estar disponible para macOS. Desde programas específicos de seguridad informática, hasta soluciones propias desarrolladas por la universidad, pasando por programas que, de lo antiguos que son, no saben cómo funcionan aún hoy en día.
Estos casos me afectaron a mi directamente. Por un lado, tuvimos un par de prácticas en las que se utilizaban herramientas de seguridad informática de una distribución de Linux que, o no estaban disponibles para Mac en ese momento, o su funcionamiento era mucho más limitado. Por otro lado, un par de profesores muy cracks de mi universidad crearon una modificación del famoso Eclipse, y extendieron su funcionalidad para que los alumnos pudiésemos utilizar una única interfaz con varios lenguajes y funciones que veríamos a lo largo de la carrera. Por desgracia, sólo es compatible con Windows y con Ubuntu.
Y, además de encontrar soluciones que funcionan a medias, o no funcionan directamente, también tenemos el caso de los errores particulares de la aplicación en el sistema. Estos tipos de errores se dan en aquellas aplicaciones que son multiplataforma, pero suelen usar otros componentes para funcionar.
Por ejemplo, un IDE de una tecnología concreta enfocada al desarrollo web: si bien la aplicación funciona bien, existe la posibilidad de que haya un error en el componente que ejecuta y gestiona el servicio web, y este puede ser distinto en Mac y Windows.
Esto puede hacer que la resolución de problemas con la ayuda del profesor se dificulte porque hay errores derivados que dependen del sistema, y el profesor al no estar familiarizado, no puede ayudar.
Virtualización: la solución
La virtualización es uno de esos inventos que ha cambiado la forma de trabajar con los ordenadores. De tener un ordenador ejecutando un solo sistema, a tener un ordenador ejecutando infinitos sistemas. Cada uno aislado, cada uno con su propio entorno y su propia naturaleza.
Gracias a los sistemas de virtualización, podemos usar nuestro Mac para ejecutar todo lo que sea compatible, y a la vez, virtualizar otros sistemas operativos para ejecutar todo aquello que no es compatible de entrada.
En Mac, además, hay varias soluciones, gratuitas y de pago, con las que podemos virtualizar sistemas operativos:
- VirtualBox: herramienta gratuita y open-source para virtualizar en Mac. No es de las mejores, pero siempre viene bien para saber si la virtualización soluciona nuestros problemas
- VMWare Fusion: solución propietaria de una empresa con muchos años de especialización en entornos virtuales. Fue la aplicación que elegí y usé durante mis años universitarios.
- Parallels Desktop: solución popular en entornos Mac que destaca por su versatilidad
- Boot Camp: no es técnicamente una solución para virtualizar porque lo que hacemos es instalar nativamente Windows, pero lo pongo porque viene incluido en todos nuestros Macs y a alguno de vosotros os puede servir
Gracias a la virtualización, podía tener todas mis aplicaciones del día a día y la herramienta particular y concreta, a la vez. No había que decidir, ni había incomodidades. Todo junto. Lo mejor de un lado y lo necesario del otro.
Además, y esto es importante en Ingeniería del software, vamos a tener que instalar un montón de cosas que sólo vamos a necesitar, a priori, para una asignatura o dos 3Y el problema ya no es el programa en sí, sino sus dependencias. Yo lo considero basura, porque se queda por ahí aunque desinstales la herramienta principal que lo ha instalado.. Si sois como yo, que hacéis de vuestro ordenador un templo, tener una máquina virtual donde podemos instalar de todo para realizar las prácticas de la asignatura, sin importar cuanto afecte al rendimiento de nuestros Macs, es una delicia. Después de esa asignatura, apagaba la máquina virtual y mi Mac se encontraba como si nada. Por no hablar de que eliminar y levantar máquinas es sumamente sencillo.
Por último, mencionaros que vuestra universidad puede tener algún acuerdo con Microsoft por el cual os den licencias de Windows gratuitas para estudiantes, que tienen una validez de 2 años. Eso a mí me facilitó mucho las cosas porque no tenía que preocuparme de nada. Creaba y eliminaba máquinas virtuales a placer, sin importar lo que instalaba en ellas, cómo lo dejaba todo al acabar, y sin preocuparme por el rendimiento.
¿Se puede estudiar una carrera de informática técnica con un Mac? Sí, sin lugar a duda, mucha gente somos la prueba de ello. Algún profesor os gastará bromas, otros os tomarán menos en serio, y otros os pondrán un punto más porque ellos también usan Mac.
Como anécdota, os contaré que en una asignatura de programación concurrente, yo estaba usando la máquina virtual por las distintas dependencias que necesitábamos para cursar la asignatura. Y un día, haciendo pruebas, mi código dio error. Un error muy raro. Tras mucho investigar y depurar el código paso a paso ¿cuál fue a solución? Ejecutarlo en Mac. Tal cual 😂 Mismo código, misma configuración, en uno funciona y en otro no. A día de hoy sigue siendo un misterio para mí.
Al comentárselo a mi profesor, que usaba Mac como equipo principal, la única respuesta que me dio fue: “Eso te pasa por usar Windows dentro de un Mac.”.
Bromas aparte, el Mac es un equipo brillante capacitado más que de sobra para realizar la parte técnica de una carrera como Ingeniería del software. Ya sea de forma nativa, o mediante virtualización.
Si tuviese que repetir 4Ya he tenido más que suficiente con una vez, así que esperemos que no haya que repetir 😝 no dudaría ni un segundo en volver a la carga con mi Mac.