En un entorno de desarrollo de PHP que visité recientemente, el desarrollador principal se mantuvo firme en que usan Linux en sus máquinas para el desarrollo de Zend.
Yo personalmente uso Windows y obtengo los mismos resultados durante el desarrollo. También diseño muchos gráficos y me siento más cómodo usando Windows.
¿Hay alguna ventaja de usar Linux sobre Windows en un entorno de desarrollo? De ser así, ¿cuáles podrían ser?
Una diferencia notable es el sistema de archivos que distingue entre mayúsculas y minúsculas. Por ejemplo, si tiene un archivo llamado "Bootstrap.php" (mayúscula B) y su código contiene la línea
require_once('bootstrap.php');
(minúscula b), funcionará en Windows y fallará en Linux.A veces también hay errores específicos de Windows, Linux o incluso versiones específicas con diferentes bibliotecas utilizadas por PHP.
En resumen, con frecuencia es mejor desarrollarse en un entorno que sea lo más cercano posible al sistema de producción.
Si es necesario, una posible configuración es usar una colección de máquinas virtuales para cada entorno para el que termines programando.
fuente
Algunos scripts php de línea de comandos se encuentran con varios problemas en mi máquina Windows.
Por ejemplo, he tenido la CLI de Symfony que arrojará caché: borre errores dentro de Windows, mientras que funciona perfectamente en mi entorno Linux.
También una vez me encontré con la alegría de ejecutar ~ 60 consultas porque usé el caso de camello en los nombres de mi tabla y me referí a ellos como tal en mis consultas (que funciona en Windows ya que ignora el caso). Cuando coloqué el proyecto en nuestra pila LAMP, las consultas fallaron porque MySql en Linux almacena los nombres de las tablas en minúsculas y distinguen entre mayúsculas y minúsculas.
Además, dado que mi máquina Windows era mi servidor de prueba local, una vez me encontré con una biblioteca PHP que no necesitaba estar disponible para Windows.
Pequeñas minucias como esa me han costado productividad en el pasado. Por otra parte, también tiene casi todas las actualizaciones de Ubuntu, por lo que es un toma y daca;)
fuente
El más simple que se me ocurre es que si su entorno de desarrollo y el entorno de implementación son similares, es más fácil obtener dependencias. Si es un proyecto autónomo, está bien, pero en muchas aplicaciones basadas en web es necesario extraer dependencias externas: pregúntele a su desarrollador principal qué bibliotecas externas usan y cómo se actualizan.
Muchos desarrolladores también tienen preferencia por las herramientas que pueden estar en un sistema operativo u otro, posiblemente sus otros desarrolladores son fanáticos de Vim o Emacs, por ejemplo, o usan un cliente del sistema de control de fuente cli por preferencia.
Por supuesto, podría obtener lo mejor de ambos mundos con una VM (o un servidor Linux separado), y / o el uso de masilla y smb para compartir archivos.
Sin embargo, al final del día, debe sentirse cómodo con su configuración básica. Comience a trabajar en Windows: encuentre los problemas reales que enfrenta en el entorno y descubra cómo solucionarlos.
fuente