¿Debo cambiar a Linux para CS y desarrollo de software?

Personalmente, no lo creo a menos que se esté centrando en gran medida en el desarrollo específico de Linux (como el desarrollo de aplicaciones nativas). Si es más que una necesidad ocasional de reflejar un entorno de servidor en vivo hasta t, siempre puede configurar VirtualBox o somesuch.

Prefiero seguir con mi iMac, que configuré para estar razonablemente cerca de los entornos en vivo en los que vivirán mis sitios (es decir, versiones similares de PHP, Apache y MySQL) mientras me permite tener todo lo mejor software diseñado que uso a diario (SequelPro, SourceTree, Textual, MailBox, etc.). También necesito las cosas de Adobe con bastante regularidad, lo que inmediatamente descalifica a Linux.

No tengo que sacrificar ni la experiencia de usuario de calidad ni la experiencia de desarrollador de calidad como hacen los usuarios de Linux y Windows respectivamente.

Creo que se beneficiaría de cambiar, o al menos ejecutar Ubuntu, o cualquier otra distribución de Linux popular en una máquina virtual.

Si bien puedes obtener la mayor parte de la experiencia jugando realmente con OSX, hay una serie de pequeñas diferencias entre las utilidades principales que OSX tiene frente a las que tiene Ubuntu.

En realidad, recientemente en el trabajo, nos encontramos con un error que surgió de un desarrollador que usa OSX, pero nuestros servidores están ejecutando Linux. El error se debe a que OSX por defecto no distingue entre mayúsculas y minúsculas (un archivo llamado ‘ABC’ es el mismo que uno llamado ‘abc’), mientras que bajo las distribuciones comunes de Linux son sensibles a mayúsculas y minúsculas.

Entonces, para el desarrollo, la mayoría de las mismas utilidades y programas están disponibles en OSX o Ubuntu. Creo que la gestión de paquetes de Ubuntu, Debian, Fedora, Arch, etc. es superior a Homebrew o MacPorts. Además, creo que estar familiarizado con un sistema Linux moderno será muy útil ya que la mayoría de las empresas tecnológicas ejecutan al menos algunos servidores Linux (con una tendencia hacia más servidores Linux).

Recomiendo familiarizarse con la línea de comandos tanto en OSX como en Ubuntu. Aprenda ya sea Vim o Emacs. Todavía tengo que conocer a muchos desarrolladores que no tienen que usar la línea de comandos de vez en cuando. Un poco de alfabetización en las herramientas básicas * nix le servirá bien.

Puede probarlo descargando VirtualBox de forma gratuita e instalando Ubuntu como VM (Máquina virtual) en su Mac.

En estos días, uso una MacBook Pro para la mayor parte de mi trabajo de desarrollo, pero inicio VirtualBox si quiero hacer algo que solo funciona en Linux, como desarrollar en Docker. Eso funciona bien para mi.

Estoy totalmente de acuerdo con la sugerencia de Sean Robertson de usar Linux en VirtualBox manteniendo OSX como sistema operativo principal.

Linux es posiblemente el mejor sistema operativo de servidor hoy en día y sin duda es bueno si puede usarlo y administrarlo (desde la línea de comandos). Como sistema operativo de escritorio, es inferior, y no hay buenas razones para usarlo a menos que disfrute de la solución de problemas como “¿por qué en el mundo mi tarjeta de sonido no es compatible?”

El cambio completo de Windows o Mac a Linux tuvo sentido hace 5 ~ 7 años cuando el hardware barato común no era lo suficientemente potente para la virtualización, pero esos días ya pasaron.

No. Yo diría “solo si cree que su enfoque es más práctico para desarrollar”, pero MacOS X viene con casi todas las ventajas de Linux en ese sentido, y tiene la mejor de Windows, que es tener un IDE muy pulido, si eso es lo tuyo.

Personalmente, prefiero un editor y un compilador por separado, y estoy relativamente seguro de lo que está sucediendo con el sistema de compilación en general, y para todo eso encontré Linux mejor que Windows. Pero el shell de MacOS X es tan bueno como cualquier otro Linux (y probablemente la mayoría de los Linux también se ejecutan en Mac). Mira, Mac es un * nix tanto como Linux.