January 13th, 2009 Category: Programacion
27 Comments »
Es muy interesante ver que en la actualidad la mayoría de las empresas serias de desarrollo web se están volcando al uso de framework en sus desarrollos. Esto tiene una ventajas para el empleador, el empleado, y el cliente.
El empleado esta aprendiendo a desarrollar con un framework y no solo un framework sino una estructura de trabajo la cual le sirve para agregar en su currículum, el empleador consigue ahorrarse tiempo en desarrollos y en controles, y el cliente obtiene en menor tiempo y con una mejor calidad sus productos.
La explicacion es muy simple, los frameworks web actuales no son desarrollados por un equipo reducido de personas, sino que están continuamente creciendo gracias al apoyo de las comunidades virtuales.
Estos Frameworks, generalmente son open source, y están desarrollados y apoyado por grandes corporaciones, por ejemplo el caso de Symfony que tiene como Padrino a Yahoo, que utiliza este framework en la mayoría de sus desarrollos con PHP, como es el caso de Delicius, Yahoo Answerr y Yahoo Bookmarks. Zend Framework es apoyado por la creciente Zend Company que son los creadores del lenguaje PHP.
Estos dos son los grandes frameworks de PHP, pero hay muchos mas, muchisimos mas. La elección de cual les conviene mas, tiene que ser evaluada por la empresa, teniendo en cuenta quien le da mas o mejor de estos frameworks.
El caso de Akelos es bastante interesante, ya que su idea es construir aplicaciones en PHP al estilo Ruby On Rails, este ultimo también un gran framework y muy popular debido a la facilidad de uso y a su código bastante simple.
En la balanza aparecen muchos factores, y cada factor es importante. Yo elijo Zend Framework porque me da una flexibilidad sin atarme a ningun mecanismo. Puedo desarrollar si quiero sin implementar MVC, o incluir Zend Framework dentro de WordPress para manejar los plugins, como es el caso de este blog.
Lo mas importante, es que una empresa no tiene que preocuparse como hacer una librería para la conexion a la base de datos, o para crear a un web service, o como manejar templates dentro de su sistema, como validar formularios, etc. Y no tiene que preocuparse no porque no lo tenga que hacer, sino porque estos frameworks le brindan una solución, les dice como crear formularios, validarlos tanto del lado del cliente como del servidor, manejar distintos templates, manejar base de datos, etc, etc,etc. Y no solo soluciones del tipo “necesito conectarme a una base de la mejor manera posible”, es lo que no simplifica un framework, sino que nos brinda todo una forma de trabajo como es la division por capas MVC (Model View Controller), sino una estructura de directorios prolija, y clara. Sobre todo que hace fácil y organizable cualquier modulo o aplicacion.Ademas como el caso de Zend Framework, nos da una recomendacion de como escribir nuestro codigo, y trabajar en grupo.
Otro de los puntos a favor de un framework, es que es gratis. La empresa no tiene que poner un centavo y obtiene cientos o miles de lineas de código para que use sin ningún limite sin nada a cambio.
Recuerdo mucho tiempo haber rediseñado clases para la conexion a la abase de datos, o generar capas de abstracción para hacer ciertas funcionalidades, como el manejo de formularios. Y todo ese tiempo perdido si bien tengo que reconocer que aprendí bastante con la prueba y error (hubieron muchos errores lamentablemente), mis desarrollos hubiesen sido mejores y en menos tiempo aprovechando estos recursos.
Como dije en un post anterior de este blog, el costo de aprendizaje es mínimo, ya que no se tarda lo mismo generando código de cero, que aprender a usar un código existente que cumple lo que nosotros necesitamos.
Sobre el lenguaje de programacion a elegir para los desarrollos web, también depende de muchos factores, uno de los puntos a tener en cuenta, es la cantidad de programadores que hay en el mercado, y lo que cobran estos programadores. Viendo estos factores PHP parece la mejor alternativa, pero Python con Django esta pisando fuerte y mas solido de lo que hizo Ruby On Rails hasta ahora.
Links Interesantes
Invitame una Cerverza
Comentar
27 Responses
En cualquier linux o derivado vos tenes un comando que se llama symlink.
Si usas esto podes tener una unica carpeta con Zend Framework, y para el resto de lso desarrollos symlinks a esa carpeta
$ ln -s ../../Zend Zend
Y si conoces algun libro o documentacion para iniciar con el uso del framework de zend?
Ajax corre del lado del cliente, tranquilamente podrias usar javascripts del lado del cliente en un sistema hecho con Zend Framework.
Podes aplicar cualquier framework de javascripts, aunque tenes un componente Zend_Dojo, para la integracion con ZF y Dojo, y Zend_XJquery, para integrarlo con Jquery :)
Saludos.
Saludos !
Pero es dificl, y obviamente te vas a topar con gente que diga cosas como Los que programan con frameworks no merecen mucho respeto. Pero bueno trata de aprenderlo bien por tu cuenta, desarrollar lo suficiente para que el dia de maniana cuando pegues un trabajo donde si aprecien estos beneficios estes preparado ;)
yo: una estructura MVC facilita el mantenimiento de una aplicación web.
"jefe de área": no sabemos, hay muchos libros que dicen (sic) que el modelo MVC no sirve para web
Creo que la comparacion es errada, mas cuand se plantean sobre lenguajes tan diferentes como PHP y Ruby.
Es llamativo que quienes se pasan a Ruby desde PHP, no vuelven.
La unica ventaja que veo hoy de PHP es la cantidad de hosting que hay para usarlo. En el resto de las cosas, no le veo ventaja en comparacion.
Saludos.
Sin ir mas lejos, webs como paginas amarillas de UK o Twitter estan hechas sobre RoR y no creo que se les pueda llamar aplicaciones sencillas que se busco un desarrollo rapido.
Por ultimo, el gran problema de esto es no terminar como evangelizadores de los lenguajes o frameworks. Es muy dificil la discusion sin caer en fanatismos.
Actualmente estoy desarrollando con Flex + Action Scripts + PureMVC, pero apenas termine voy a meterme un poco con Ruby, para probar lo que me decis.
En algun momento me puse a leer un poco, recuerdo que me costo mucho instalar todo lo necesario en mi debian, y en el centos, de mi servidor. Pero voy a seguir probando.
Saludos, y gracias por los comentarios
Como dije antes, nadie viene a evangelizar al respecto de que lenguajes usar.
Creo que para hablar de comparaciones la unica forma util es haber trabajado con ellos. Y como marque antes, algo que me llama la atencion es que quienes empezaron a usar RoR no quieren salir del framework.
Los temas de escalabilidad, o de grandes desarrollos que tantos se discuten me parece que no son para los casos generales. Una web que se desarrolla para un cliente como los que se manejan en desarrollos chicos, uno de mis puntos de eleccion es que sea en un lenguaje que me de la mayor facilidad de mantener los codigos fuentes, y convengamos que PHP sin un buen framework permite ser muy desprolijo, cosa que con ROR no me pasa.
Pero como dije, para hablar de los frameworks o los lenguajes hay que haber trabajado en ellos. Y mucha gente habla de RoR sin haber escrito una linea en ese framework.
Pero como vos decis, no hay que quedarse con ningun lenguaje o framework, hay que tratar de buscar la mejor herramienta para aumentar la productividad, el rendimiento, y porque no la diversion.
Y si he programado en RoR, y probe otros como Django o Struts 2.
En claro, RoR me parece un gran framework, que hizo un gran aporte a lo que ya existia (sino hay que mirar hacia Grails de Java), solo que hay que reconocer las ventajas y desventajas de cada uno para saber elegir.
Ruby es orientado a objetos totalmente, PHP permite la orientacion a objetos que es distinto.
Pero como dije, es cuestion de lo que uno busca como programador, a mi hoy en dia me sirve mas que halla menos programadores ruby/ror porque eso indica que tengo mas trabajo.
grato si podriamos realizar intercambio de enlaces. Nuestra pagina para que ustedes nos enlacen es http://www.easycreate.es/ titulo: Programa de gestion inmobiliaria
y nuestra web para intercambios es http://www.easycreate.es/links.asp
Espero su respuesta, muchas gracias
Actualmente estoy definiendo mi tema de tesis y la estoy pensando hacer utilizando un framework, que mas posibles sea codeigniter porque ya lo he estado usando.
Así que si tuvieras unas recomendaciones para aplicar a un desarrollo Web para una sustentación de tesis utilizando un framework o alguma información te lo agradecería si la compartes...
Y felicidades por el blog
Con CodeIgniter trabaje poco , algunos parches de algun sistema. En uno de los proyectos que estoy trabajando ahora tiene CI y esta bastante bien. No se que info necesitas pero cualquier cosa que necesites podes preguntar
Saludos.
Cualquier cosa.
Lo mejor es que podes hacer algo super simple como un sistema mucho mas complejo.
Podes usarlo dentro de una estructura MVC, como en un .php sin usar MVC



