En mi grupo de proyecto usamos PHP con el framework CakePHP, que veíamos que era muy recomendado (nadie lo conocía de entrada). De todas formas de los 5 terminamos programando 3, uno la parte de Flash y el otro y yo, la parte de PHP / JavaScript (obviamente ni Flash ni JS es necesario para un proyecto estándar con CakePHP). Personalmente, mientras menos manos toquen, mejor (pero no un solo, si no se vuelve demasiado laburo y cuando rindas otra materia el proyecto queda en pelotas).
El framework al principio rompe un poco las bolas, porque uno quiere hacer todo a su manera, pero después te simplifica la vida (como la idea de casi todo FW) y sacás código funcionando bastante rápido.
Eso le da bastante mantenibilidad, y puede impactar algo negativamente en la testabilidad (al usarse un FW, uno ya no ve que es lo que hace esa parte por un tema de abstracción, pero si tenés un problema a veces cuesta detectarlo más que si todo lo hubieras escrito vos).
En general, los cambios que decidíamos se podían hacer fácil. El mapeo de los objetos con la base de datos es on-the-fly, por lo cual no tenés que tocar prácticamente nada de eso (sí tenés que indicar las relaciones entre los objetos como en los ORM más comunes, pero suelen ser cosas que casi nunca volvés a tocar).
Se pueden hacer casos de prueba pero la posta es que es mucho más fácil hacer un cambio en PHP y ver al toque el cambio en el browser (ya que no necesitás recompilar, eso hace que el desarrollo sea más rápido y no des tantas vueltas para cada cambio). Obviamente, los cambios pueden impactar en otros módulos y ahí los casos de prueba resultan útiles, pero sinceramente no los usamos.
PHP, por otro lado, te da un deploy mucho más sencillo. O sea, deployar es copiar y pegar archivos. No necesitás un IDE muy pesado si no querés (aunque recomiendo Eclipse) porque el código de PHP no se compila, pero lo bueno es que podés tocar un archivo con un editor de texto cualquiera, guardar y notar los cambios de una (
esto es porque a diferencia de .NET o Java, es un lenguaje interpretado). El tema de que sea interpretado es importante, porque por ejemplo, ningún IDE (entorno de desarrollo) te va a decir los métodos que tenes en las clases propias que definiste (o al menos nunca vi algo tan zarpado), lo cual es una contra.
De hecho laburo en .NET, pero desde el laburo y con escritorio remoto (o mismo con el SVN) podía tocar el código PHP y probarlo mientras esperaba la compilación de un proyecto del trabajo, por ejemplo
. Programar en .NET sería un poco más pesado (pero reconozco que si no saben NADA De HTML, puede venir muy bien).
También hay que tener en cuenta que acá hacés una aplicación que probablemente no sigas después de firmar proyecto (dado el perfil de los integrantes, digo), por lo cual la extensibilidad de la app (cuánto puede crecer) o el mantenimiento a largo plazo no te preocupa demasiado. Como un plus (o no, depende como se vea), la cátedra no revisa el código, por lo cual nadie te va a juzgar por cómo programes, por números mágicos, etc, si en un apuro lo necesitás (obviamente no recomendaría esto si quieren seguir con el proyecto luego).
Eso sí, la app tiene que hacer lo que ustedes dicen que hace, no vale dibujarla, porque se les va a complicar más y es probable que en las pruebas finales esos detalles se noten.
A nivel organización de equipo: si usan un SVN y se ponen de acuerdo con los que programan en quién hace qué, la organización ya avanza varios pasos. Pero recomiendo ampliamente que lo usen (y que aprendan si no saben usarlo). Esto lo va a necesitar todo el equipo, no solo los que programan, si no también para manejar el versionado de la documentación excesiva que se pide. Y obviamente, hay que aprender ciertas buenas prácticas para no perder mucho tiempo con la edición de los archivos (código o documentación).
Eso sí, para practicar un lenguaje deberían empezar ahora para no estar tan en bolas me parece. El proyecto generalmente se puede hacer en unos meses, pero dado el caso de ustedes, está bueno que recuperen parte de esa "experiencia perdida".
(26-11-2010 20:23)Adriano escribió: [ -> ]PHP no tiene...
Pero tiene parámetros opcionales, que les puede resultar mucho más natural.
(26-11-2010 08:57)DreamDrums escribió: [ -> ]A mi me da la sensación que la parte de objetos de PHP está un poco verde. Para algo bien objetoso yo diria .NET o java. Personalmente yo hice algunas cosas en java con jsp y jsf, y sale bastante facil. Con jsf en particular sale como piña, es muy facil armar la interfaz. Y si encima le agregas ajax ni hablar. Si fuera yo elegiría java pero es cuestión de gustos nomas.
No sé si está tan verde, pero a mí también me da esa sensación de PHP
.
De todas formas, no creo que les preocupe tanto hacer algo "objetoso". Quieren hacer el Proyecto y que salga andando
... los que rompemos más con las buenas prácticas/purismo vamos a ser los que ya tenemos bastante experiencia en programación. Eso es muy difícil inculcarlo para un proyecto aislado.
Eso sí, con PHP, la interfaz hay que tocarla más a mano (sobre todo estilos) si querés que quede decentemente presentable.
De última, pueden usar WinForms en .NET (o sea, típica aplicación de ventanitas) que ahí es mucho más intuitiva la creación de la interfaz (mucho más tosca también).