Muchos de nosotros, por no decir todos, que trabajamos haciendo Sitios o Paginas Web, yo aun formandome en este amplio y cambiante mundo, y con muchas ganas de seguir aprendiendo, estamos suscritos a una o mas Redes Sociales como Hi5, Facebook, Sonico, Linkedin, MySpace, Yahoo 360, Twitter,Vimeo, etc. Estos sitios tienen mucha audiencia y por ende muchos usuarios, y me perece que es menester tratar este punto aqui, el como estas grandes compañias trabajan :
Bueno creo yo que nos interesa mucho saber acerca del tipo de tecnologia que usan estas grandes compañias para tomarlas como referencia o modelo para nosotros a la hora realizar nuestros trabajos o proyectos, y si alguno de nosotros conoce o ha tenido experiencia con esto creo que es muy satisfactorio compartirlo.
Se que para el diseño de un sistema hay tres partes importantes que tomar en cuenta : la presentación de la información, la funcionalidad de la aplicación, la Arquitectura del Software. Eh leido este muy buen articulo en alzado.org y si no lo han echo los invito a leerlo. .
Quisiera empezar con estos datos que pude conseguir acerca de Vimeo :
Todo depende
Actualmente las mejores tecnologías lamentablemente se realizan bajo Windows aunque no se lo creo, ASP, ASPX, .NET y dichos sistemas son los mejores actualmente para poder desempeñar labores en tecnologías de redes sociales.
Es cierto PHP y MySQL aún poseen el mayor espacio del mercado respecto a tecnologías de la Web 2.0 y es que simplemente estos sistemas son mucho más fáciles de mantener, los costos de renovación son más baratos ya que es a base de Software Libre.
AJAX es la clave, AJAX se ha convertido en menos de lo que parece en el lenguaje más usado, hasta se puede decir que ha despazado a Flash, quien era el líder en aplicaciones dinámicas.
Acerca de tu tema creo que nos muestras algo que no me cuadra, tu pregunta es "Que tipo de lenguajes usan para el Frontend, Backend?" y en tu respuesta acerca de Vimeo, nos muestras como lenguaje a Linux, Apache, PHP, MySQL, etc. y exactamente el único lenguaje allí es PHP, y hasta cierto punto Apache también lo es.
El Frontend, es indispensable, indispensable (y lo repito) contar con fuentes RSS (Really Simple Sindicalization) ya que esto acelera tanto el movimiento de la información que en un abrir y cerrar de ojos podemos contar con infromación sin la necesidad de acceder a la página de la fuente (a veces si es necesario a veces no, depende del tipo de sindicalizacion).
Flash, como lo dije anteriormente ha dejado de ser quien antes era, porque lo que se hacía con Flash ahora se puede hacer con Ajax (arriegandose a más bugs) pero no gana quien no arriesga. Flash es usado solo para reproductores únicamente, pero también existen reproductores muy bueno en Ajax como le que posee Netvibes.
Acerca de sus requerimiento de arquitectura, todo empieza con algo que puede soportar algo natural (poniendo el ejemplo de Plurk) y de la noche a la mañana éste sitio increntó de una forma tal que supongo que se van a sorprender muchos, desde 100 usuarios activos al mismo tiempo, pasó hasta 2000 (dos mil) usuarios activos en un mismo momento, con lo cuál ocasionó la toma de medidas de alerta roja para poder hacer que el sistema soporte a la Web App. Entre las medidas que tomar se encuentran la de mudar todas la imágenes de los usuarios a los servicios S3 de Amazon, migración a servidores mucho más potentes que puedan soportar tremenda cantidad de queries en un solo instante, y actualmente sigue creciendo. El servicio es muy similar al de Twitter y aún no se cae como Twitter, increible pero cierto.
Espero que la información que te he brindado sea de tu utilidad.
Irving Joao Kcam Reyna
Estudiante de Ingeniería de Sistemas.
irving_kcre [at] cixhco [dot] com
CixHco Web Business
www.cixhco.com
Discrepo en algunas ideas
Por conocimiento de causa, sé que las tecnologías que actualmente Microsoft a impulsado en su plataforma son muy buenas, tanto para desarrollo Backend con C# o similares y con productos para el Frontend como lo es ASP .NET AJAX, pero indicar que son las mejores es una afirmación difícil.
Yo desarrollé aplicaciones web con .NET por unos cuatro años, hasta optar por nuevas tecnologías que actualmente utilizo (léase RoR o Django) y si bien .NET tiene una buena cadena de producción (VS STUDIO es uno de los mejores IDEs que he utilizado), existen formas de ser tan o más productivo con otras herramientas alternativas.
PHP y MySQL son los líderes por sus razones propias. Algunas son las que mencionaste, pero MySQL no tiene nada que envidiarle a un motor de base de datos privativo (sobretodo en las últimas versiones) y actualmente soporta millones de transacciones en muchos Sitios Web. No es sólo el factor económico el que hace que muchos opten por ésta solución.
En el caso de PHP, te refiero a este artículo de Jeff Atwood donde brinda su opinión sobre cómo este lenguaje, que tiene algunas deficiencias técnicas, las sobrelleva y toma un gran margen de mercado: http://www.codinghorror.com/blog/archives/001119.html
Continuando con los puntos, hay que tener en cuenta también, que AJAX no es un lenguaje. AJAX es simplemente un acrónimo de "Asynchronous JavaScript and XML". Es Javascript, el mismo lenguaje que siempre hemos usado, solo que potenciado por el objeto XMLHTTPRequest. La mayoría de efectos que vemos en sitios actuales son simplemente implementaciones más... "sutiles" de la Web en los 90s: donde antes cambiaban cursores por gif animados, ahora nos muestran transiciones de elementos y demás. Y eso no está mal, siempre y cuando se utilicen de manera correcta.
Y Flash no se ha visto afectado como crees. Flex, AIR y similares lo han hecho casi trascender del browser. Cierto, finalmente -gracias a Dios- la mayoría de Sitios hechos 100% en Flash, ocupando todo el espacio del navegador y robándole la libertad al usuario, sí han desaparecido, pero eso siempre fue culpa del implementador, no de la tecnología.
Flash es una alternativa excelente para el desarrollo de RIAs y hay cosas que nunca se podrían hacer con JS. Y eso está bien. No son competencia directa. Hay campos en común, sí, donde la habilidad de cada uno en una tecnología u otra definirá el resultado, pero no tienen porque "enfrentarse".
Finalmente, sobre Plurk, definitivamente era un servicio estable. Pero también lo era Twitter en los inicios. Cuando empezaron los problemas de Twitter y varios mudaron a Plurk, también empezó a presentar éste ciertas dificultades. Enviar los assets a otro servidor (cosa que Twitter hace desde hace muchísimo tiempo atrás) es una buena forma de reducir la carga, pero la única manera de ver si su arquitectura es mejor o peor, es cuando lleguen al mismo nivel de transacciones. 2000 usuarios activos es todavía poco comparado con Twitter (que tampoco tiene tantos).
Un buen recurso para revisar infraestructuras es http://highscalability.com/links/weblink/24
Cada tecnología tiene un propósito y un fin, y dependiendo de diversas variables, es nuestra labor identificar cuál es la que mejor se ajusta para resolver el problema.
Software Research & Development Peru
@: alvaro.pereyra@srdperu.com
www: http://www.srdperu.com