Buena pregunta.
TL; DR Hay muchas razones. Al crear una página web, aplicación web o API web, existen diferentes tecnologías, habilidades, herramientas y disciplinas involucradas. Y hay personas incluyéndome a mí tratando de crear herramientas que lo unifiquen, pero son mucho trabajo. Echa un vistazo a http://www.radii8.com . Su objetivo es resolver los problemas exactos con los que muchos de nosotros lidiamos todos los días (es de código abierto para que cualquiera pueda trabajar en él, pero también podría usar fondos).
Podemos comenzar con los roles involucrados. Muchas veces una persona está haciendo las tareas de 2 o 3 roles.
Hay un diseñador que está a cargo de la apariencia del sitio web. Se le ocurren las maquetas o los diseños finales en el formato de un archivo de imagen PSD o PNG.
Luego está el desarrollador del lado del cliente. Tiene que convertir el diseño en una página web usando HTML, CSS. Debe asegurarse de que el diseño se refluya y se muestre correctamente con diferentes contenidos y pantallas de diferentes tamaños. También agrega la interactividad al sitio, incluido el envío de formularios, la visualización de videos o presentaciones de diapositivas. También tiene la enorme tarea de hacer que se vea igual o lo más cercano posible al diseño original. Diferentes navegadores pueden mostrar el mismo diseño HTML a veces drásticamente diferente (arruinando el diseño o diseño).
Luego está el desarrollador del lado del servidor. Él responde por obtener datos personalizados o realizar tareas específicas que no pertenecen a la computadora del cliente. Esto puede ser escribir el código que envía un correo electrónico a la compañía después de que el usuario envía un mensaje en un formulario de comentarios en la página web o cargando la página de inicio con las últimas publicaciones de blog de la base de datos.
Existe el administrador de la base de datos. Él crea la base de datos que contiene la información personalizada, como artículos, usuarios, etc., que necesitan persistir durante la vida útil del sitio web.
Luego están los componentes externos de terceros de un sitio web, como los anunciantes, diapositivas o widgets de video como YouTube, widgets sociales como Facebook, Twitter, widgets de comercio electrónico como PayPal, etc., que se integrarán en el sitio.
Para realizar cada uno de estos trabajos, existen herramientas que se han creado para ayudar a realizar estas tareas. Para los diseñadores hay Photoshop, Illustrator y MSPaint (broma).
Para los desarrolladores del lado del cliente hay Dreamweaver, Edge, Brackets, Cloud9, Sencha, PhoneGap, Firebug y alrededor de mil más. Muchos, si no todos, se especializan en una tarea o aspecto específico del desarrollo del lado del cliente.
Para los desarrolladores del lado del servidor y los administradores de bases de datos, hay muchas herramientas y tecnologías diferentes para elegir. Podría enumerarlos, pero sigamos adelante.
Cuando un cliente aprueba un diseño, corresponde a los desarrolladores convertir o reconstruir el diseño en HTML. Deben cortar o exportar las imágenes o recrear el diseño desde cero. Esto puede llevar semanas o meses, principalmente porque una vez que se ve bien en un navegador, debe asegurarse de que se vea correcto en los otros navegadores que ahora incluyen dispositivos móviles. Nuevamente, también tienen que asegurarse de que se refluya a los diversos tamaños de contenido y pantallas. … Luego, el cliente llama y dice que quiere rediseñar y usted debe construir la página y las animaciones nuevamente.
El punto es que los diversos componentes que componen un sitio web tienen diferentes flujos de trabajo, herramientas, formatos y procesos. Durante mucho tiempo, el proceso de integración ha sido engorroso. Debe recordar que el campo de la informática y el desarrollo web todavía está en su infancia en la gran escala de las cosas. Las herramientas y servicios de software como Photoshop destinados a la fotografía se han utilizado (mal utilizado) para crear sitios web, aplicaciones web, etc. El software ha tenido poca integración. Hay excepciones. Por ejemplo, durante muchos años Adobe trabajó en un proyecto llamado Flex que intentó crear un entorno de desarrollo, entorno de diseño, integración con otro software (Photoshop, Illustrator, Fireworks, etc.), una plataforma para llegar a todos los dispositivos y sistemas operativos. Fue increíble y gastaron 100 millones y luego Adobe contrató a un nuevo CEO que quería que la compañía hiciera marketing y análisis en lugar de software creativo. En lugar de crear un entorno de diseño y desarrollo nuevo y sorprendente para las necesidades de hoy (sueno como un anuncio) resolviendo la ruina del mundo del desarrollo, salieron con Adobe Omniture (como Google Analytics). Él canceló el proyecto, canceló muchos de los productos y despidió o reasignó a algunos de los mejores desarrolladores del mundo. Escribí mis pensamientos sobre el CEO de Adobe en una respuesta en otra publicación. BTW Flex sigue siendo una plataforma increíble y tiene una comunidad próspera en Apache.org. Su hermano más nuevo es FlexJS y tiene como objetivo traer lo mejor de Flex al desarrollo web HTML, CSS y JS.
Por lo tanto, hay muchos desarrolladores y diseñadores que desean un desarrollo de software unificado y, al igual que las otras respuestas en esta publicación, están surgiendo nuevos productos que redefinirán cómo hacemos el desarrollo web. Adobe ha creado un montón de nuevas herramientas de desarrollo, pero no están unificadas.
Después de que Adobe abandonó Flex, comencé a trabajar en un proyecto que resolvería algunos de los principales problemas con el desarrollo web (conector descarado). Planea unificar muchas de las partes del desarrollo web, incluidos los aspectos de diseño y desarrollo. Tiene un entorno de diseño visual que crea MXML, HTML y Android Markup. Tiene un complemento fácil de usar para que pueda producir otro tipo de salida de idioma para la salida (y entrada) del lado del cliente o servidor. Hay muchas cosas que aprende cuando ha realizado el diseño y desarrollo web desde el principio y me gustaría incluir esas cosas en el programa. Fue y es mucho trabajo, pero me he centrado en hacerlo lo suficientemente potente como para soportar una variedad de proyectos web y de aplicaciones. La visión está ahí y ha estado ahí por 10 años. Está en versión beta, pero para avanzar necesita desarrolladores y para que yo lo haga u obtenga un equipo necesita financiación. Sin embargo, hay suficientes personas por ahí que si no lo hago, alguien más lo hará eventualmente.