Estoy en segundo de un superior de desarrollo de aplicaciones web, aprendiendo tanto frontend como backend, hago sobretodo PHP y Javascript orientado a objetos, Java y un poco de HTML y CSS. Ahora mismo hago las practicas en una consultora, programado con Java, concretamente en este momento estoy con J2EE con Struts 2 y Spring 3.
Aunque a mi realmente lo que me llama, es mas el desarrollo web mas actual, y no con Java. Por mi cuenta me he estado mirando mas la parte frontend, maquetación en HTML 5, CSS3, responsive design, Bootstrap como framework CSS y jQuery y la duda esta en saber que lenguaje escoger para la parte backend.
Viendo la situación actual y como evoluciona todo, veo las siguientes opciones:
- La opción que menos me convence, es utilizar java para web, aunque he leido que ya no es tan lento, e incluso Scala y sus frameworks pintan bien, pero creo que se utiliza mas java en aplicaciones empresariales, entornos corporativos y tal.
- Ruby con RoR, o Python con Django. Me llaman bastante la atención, he visto cosas muy buenas de ellos y tienen buena pinta.
- Utilizar Javascript tanto para frontend (AngularJS, Backbone, Ember...), como para backend (NodeJS), ya que realmente ahora Javascript parece que es el lenguaje con mas futuro, con todas las librerías y frameworks que hay, con HTML5 y la posibilidad de hacer aplicación híbridas para móviles... Y aprender nuevas tecnologías relacionadas como Socket.IO, MongoDB, Redis...
- Centrarme principalmente en PHP, ya que es el lenguaje que he tocado mas, concretamente con Laravel que es el que mas me convence. Y luego ya ponerme mas adelante con otro lenguaje que me guste mas.
Mas o menos esa es la visión que tengo ahora mismo, me gustaría saber que pensáis y cual es vuestra visión del desarrollo web actualmente.
Si elegiríais Python o Ruby, como veis el desarrollo con Javascript (que por ahora es el que veo con mejores ojos, sobretodo apostando para el futuro), vuestra opinión de PHP... y realmente ahora parece que se busca mas la especialización en frontend o backend, porque ya las 2 son extensas, aunque no va mal saber de las 2 no?
Se que ahora en España lo mas utilizado es Java, pero me interesa sobretodo elegir y aprender lo mejor para mi y con mas futuro, y poder desarrollar mis propios proyectos a mi gusto. Tambien puede que la elección dependa del proyecto a realizar, pero sobretodo quiero tener claro con cual empezar y elegir el que me pueda aportar mas.
Espero que alguien me pueda dar su opinión y compartir su experiencia,
Muchas gracias
Sobre backend: lo que más futuro tiene es Java. Es así de simple, hay gente (no mucha, pero hace mucho ruido) que lleva intentando reemplazar Java desde hace años, pero eso no va a pasar. Por tres razones: la JVM es extremadamente portable, el ritmo de evolución es adecuado (vease Scala, Groovy, JEE7, Lambda en Java8), y el rendimiento y escalabilidad es excelente.
Las necesidades del mercado cambian, y siempre habrá alternativas adecuadas: lo fue Perl, luego PHP, Ruby y ahora NodeJS. Y eso está bien, de hecho es muy conveniente conocer varias soluciones para aplicar la adecuada. Pero a largo plazo (el futuro, lo que preguntas), Java parece que seguirá ahí.
Si quieres convertirte en un desarrollador full stack, puedes aprender JS/HTML/CSS. O programación para móviles en Java/Android. Al final lo importante es que aprendas el paradigma de programación orientada a eventos en comparación con la orientada a threads que se utiliza en backend. Una vez que aprendes lo conceptos fundamentales lo que te hará un buen desarrollador será tener la capacidad de pasar rápidamente a una nueva tecnología que te permita elegir la mejor opción para cada proyecto.
Java está ahí y tiene cuerda para varios años. C# muy buena opción pero creo que futuro Java será Go . Es de Google compilado , muy rápido y orientado totalmente al servidor. Futuros desarrolladores aprended Go.
Elige lo que te sea mas comodo y con lo que seas mas rapido, no dejarse llevar por el hype sino por la experiencia personal, muchos frameworks modernos sirven de sobra para el 90% de los casos y elegir uno u otro es cuestion de gustos.
Yo uso casi siempre Django para aplicaciones grandes o si solo necesitan un admin aunque la plataforma este en otro framework/lenguaje, o Flask para aplicaciones mas pequenyas, tambien librerias JS gordas(o no) si merece la pena o la aplicacion lo requiere.
En temas JS como dice Juan Riaza es mas cuestion de gustos, ahora estoy jugando con ReactJS y me gusta como se estructura todo, creo que me va a ahorrar trabajo y puedo hacer cosas complejas/la libreria es suficientemente madura. Angular y Backbone tienen la ventaja de tener una comunidad grande y que tus problemas puede haberlos tenido alguien antes, pero cada uno tambien tiene sus contras.
Si quiero hacer una aplicacion de cero pero hay ya algo hecho, intento reutilizar lo que hay y extenderlo si el codigo es limpio y no requiere una cantidad grande de trabajo.
Lo mas importante para mi en un framework es:
- La depuracion ha de ser lo mas facil posible, porque al final es en lo que gastas mas tiempo.
- El despliegue debe ser lo mas sencillo posible.
- Los tests tienen que ser facil de implementar y tener buenas herramientas para ello.
- El framework tiene plugins/herramientas que estan suficientemente maduros, asi no tengo que cocinarlo.
Mi opinión:
- No apostar por PHP. Fuera de España (EEUU) sólo se busca por tener legacy code. Dentro de España podrás encontrar trabajo seguro, pero creo que te gustaría moverte en empresas que se hayan movido de PHP.
- Ruby es el más trendy, y con razón. Si buscas empresas que nacieron en el último anyo en EEUU, seguramente te encuentras que una mayoría estén hechas con RoR (o con Python).
- La JVM diría que es el futuro para proyectos bien grandes, ya sea con Java o Scala.
He utilizado profesionalmente Python y PHP, y ahora Java para el backend de una API compleja. RoR para un side project, y aprendiendo Scala on the side. Me quedaría con RoR mirando a pasartelo bien con vistas a futuro, haciendo tus pinitos en cualquier Javascript MVC si quieres.
No hay una respuesta sino un conjunto de factores que tienes que mirar para decidir tu mismo.
- experiencia previa con una tecnologia
- facilidad de contratar gente con la experiencia necessaria
- necessidad de prototipaje rapido vs mantenabilty del codigo
- facilidad de integracion con DB y otros systems que vas a usar
- tu interes y curiosidad en probar nuevas tecnologias que te gustan.
luego tb depiende de que applicacion estas desarollando. no hay "one size fits all" para backend.
si vas a mirar la pasta y el trabajo, en frontend es personal, mi apuesta es un framework JS como AngularJS; en backend es OBLIGATORIO PHP, porque es el standard de facto en servidores (compartidos, vps, etc)
si lo vas a hacer por gusto, tira por donde más te llame
Como backend, según mi opinión :):
- Laravel en PHP, un placer conocerlo y cada día me encuentro más gente que comenta que disfruta con el.
- Node.js con los típicos frameworks
Yo ahora mismo me estoy metiendo con Dart añadiendo el binding para AngularJS. Me tiene buena pinta, las ventajas de javascript pero con un lenguaje más moderno y limpio (al menos para mi gusto).
Personalmente doy más valor a poder (y saber) desacoplar e integrar que al lenguaje/framework/herramienta en sí. Siempre que permitan aislar el modelo e integrar servicios pueden ser una buena elección para montar backends.
En función de la arquitectura, puede ser necesario externalizar y comunicar procesos, manejar diferentes tipos de caché, incluir librerías, manejar servicios y dependencias, gestionar persistencia, extraer un modelo complejo usando por ejemplo ddd, testar el modelo, integraciones, concurrencia, escalabilidad, inmutabilidad, agilidad en el desarrollo, soporte...
TE RECOMIENDO QUE APRENDAS A UTILIZAR ASP.NET MVC,C#,JAVASCRIPT,HTML5,CCS,QUERY,ANGULAR JS,Backbone, Ember.CODE FIRST,LINQ.AJAX,JSON,WEB API,SERVICIOS WEB WCF. Y AZURE TENDRIAS TRABAJO POR MUCHO TIEMPO.
Estoy en segundo de un superior de desarrollo de aplicaciones web, aprendiendo tanto frontend como backend, hago sobretodo PHP y Javascript orientado a objetos, Java y un poco de HTML y CSS. Ahora mismo hago las practicas en una consultora, programado con Java, concretamente en este momento estoy con J2EE con Struts 2 y Spring 3.
Aunque a mi realmente lo que me llama, es mas el desarrollo web mas actual, y no con Java. Por mi cuenta me he estado mirando mas la parte frontend, maquetación en HTML 5, CSS3, responsive design, Bootstrap como framework CSS y jQuery y la duda esta en saber que lenguaje escoger para la parte backend.
Viendo la situación actual y como evoluciona todo, veo las siguientes opciones:
- La opción que menos me convence, es utilizar java para web, aunque he leido que ya no es tan lento, e incluso Scala y sus frameworks pintan bien, pero creo que se utiliza mas java en aplicaciones empresariales, entornos corporativos y tal.
- Ruby con RoR, o Python con Django. Me llaman bastante la atención, he visto cosas muy buenas de ellos y tienen buena pinta.
- Utilizar Javascript tanto para frontend (AngularJS, Backbone, Ember...), como para backend (NodeJS), ya que realmente ahora Javascript parece que es el lenguaje con mas futuro, con todas las librerías y frameworks que hay, con HTML5 y la posibilidad de hacer aplicación híbridas para móviles... Y aprender nuevas tecnologías relacionadas como Socket.IO, MongoDB, Redis...
- Centrarme principalmente en PHP, ya que es el lenguaje que he tocado mas, concretamente con Laravel que es el que mas me convence. Y luego ya ponerme mas adelante con otro lenguaje que me guste mas.
Mas o menos esa es la visión que tengo ahora mismo, me gustaría saber que pensáis y cual es vuestra visión del desarrollo web actualmente.
Si elegiríais Python o Ruby, como veis el desarrollo con Javascript (que por ahora es el que veo con mejores ojos, sobretodo apostando para el futuro), vuestra opinión de PHP... y realmente ahora parece que se busca mas la especialización en frontend o backend, porque ya las 2 son extensas, aunque no va mal saber de las 2 no?
Se que ahora en España lo mas utilizado es Java, pero me interesa sobretodo elegir y aprender lo mejor para mi y con mas futuro, y poder desarrollar mis propios proyectos a mi gusto. Tambien puede que la elección dependa del proyecto a realizar, pero sobretodo quiero tener claro con cual empezar y elegir el que me pueda aportar mas.
Espero que alguien me pueda dar su opinión y compartir su experiencia,
Muchas gracias
05/02/2014 12:28
Las necesidades del mercado cambian, y siempre habrá alternativas adecuadas: lo fue Perl, luego PHP, Ruby y ahora NodeJS. Y eso está bien, de hecho es muy conveniente conocer varias soluciones para aplicar la adecuada. Pero a largo plazo (el futuro, lo que preguntas), Java parece que seguirá ahí.
Si quieres convertirte en un desarrollador full stack, puedes aprender JS/HTML/CSS. O programación para móviles en Java/Android. Al final lo importante es que aprendas el paradigma de programación orientada a eventos en comparación con la orientada a threads que se utiliza en backend. Una vez que aprendes lo conceptos fundamentales lo que te hará un buen desarrollador será tener la capacidad de pasar rápidamente a una nueva tecnología que te permita elegir la mejor opción para cada proyecto.
10/05/2016 16:17
16/02/2017 20:58
06/02/2014 13:14
Yo te aconsejaria mirar Meteor.js (http://meteor.com), hize una intro de meteor.js hace poco en el betabeers de palma de Mallorca.
Aqui tienes mis slides si te apetece : http://slid.es/kevohagan/intro-de-meteor-js
Tambien para avanzar un poco mas rapido tengo un boilerplate con Meteor.js + Semantic UI : http://github.com/kevohagan/meteor-semantic-boilerplate
Meteor.js es una pasada!!
05/02/2014 12:00
Elige lo que te sea mas comodo y con lo que seas mas rapido, no dejarse llevar por el hype sino por la experiencia personal, muchos frameworks modernos sirven de sobra para el 90% de los casos y elegir uno u otro es cuestion de gustos.
Yo uso casi siempre Django para aplicaciones grandes o si solo necesitan un admin aunque la plataforma este en otro framework/lenguaje, o Flask para aplicaciones mas pequenyas, tambien librerias JS gordas(o no) si merece la pena o la aplicacion lo requiere.
En temas JS como dice Juan Riaza es mas cuestion de gustos, ahora estoy jugando con ReactJS y me gusta como se estructura todo, creo que me va a ahorrar trabajo y puedo hacer cosas complejas/la libreria es suficientemente madura. Angular y Backbone tienen la ventaja de tener una comunidad grande y que tus problemas puede haberlos tenido alguien antes, pero cada uno tambien tiene sus contras.
Si quiero hacer una aplicacion de cero pero hay ya algo hecho, intento reutilizar lo que hay y extenderlo si el codigo es limpio y no requiere una cantidad grande de trabajo.
Lo mas importante para mi en un framework es:
- La depuracion ha de ser lo mas facil posible, porque al final es en lo que gastas mas tiempo.
- El despliegue debe ser lo mas sencillo posible.
- Los tests tienen que ser facil de implementar y tener buenas herramientas para ello.
- El framework tiene plugins/herramientas que estan suficientemente maduros, asi no tengo que cocinarlo.
06/02/2014 13:59
06/02/2014 21:25
- No apostar por PHP. Fuera de España (EEUU) sólo se busca por tener legacy code. Dentro de España podrás encontrar trabajo seguro, pero creo que te gustaría moverte en empresas que se hayan movido de PHP.
- Ruby es el más trendy, y con razón. Si buscas empresas que nacieron en el último anyo en EEUU, seguramente te encuentras que una mayoría estén hechas con RoR (o con Python).
- La JVM diría que es el futuro para proyectos bien grandes, ya sea con Java o Scala.
He utilizado profesionalmente Python y PHP, y ahora Java para el backend de una API compleja. RoR para un side project, y aprendiendo Scala on the side. Me quedaría con RoR mirando a pasartelo bien con vistas a futuro, haciendo tus pinitos en cualquier Javascript MVC si quieres.
06/02/2014 12:24
- experiencia previa con una tecnologia
- facilidad de contratar gente con la experiencia necessaria
- necessidad de prototipaje rapido vs mantenabilty del codigo
- facilidad de integracion con DB y otros systems que vas a usar
- tu interes y curiosidad en probar nuevas tecnologias que te gustan.
luego tb depiende de que applicacion estas desarollando. no hay "one size fits all" para backend.
06/02/2014 13:05
si lo vas a hacer por gusto, tira por donde más te llame
06/02/2014 13:17
- Laravel en PHP, un placer conocerlo y cada día me encuentro más gente que comenta que disfruta con el.
- Node.js con los típicos frameworks
06/02/2014 13:54
06/02/2014 20:01
En función de la arquitectura, puede ser necesario externalizar y comunicar procesos, manejar diferentes tipos de caché, incluir librerías, manejar servicios y dependencias, gestionar persistencia, extraer un modelo complejo usando por ejemplo ddd, testar el modelo, integraciones, concurrencia, escalabilidad, inmutabilidad, agilidad en el desarrollo, soporte...
10/05/2016 16:20
09/07/2019 21:55