Encuesta sobre plataformas tecnológicas.
De la enorme gama de herramientas, framework y tecnologías que existen actualmente entorno a la plataforma Java.
¿Cuales se están utilizando actualmente en aplicaciones productivas?.
¿En qué tipo de proyectos?.
¿Para qué tipo o tamaño de cliente?.
¿Qué nivel de penetración tienen en el mercado?.
Para un desarrollador que vive y trabaja en ciudad de México. ¿Tiene sentido capacitarse en la tecnología X?.
¿Cuáles son los nichos de mercado, que actualmente no se están cubriendo adecuadamente?.
Con el mismo espíritu y en la misma línea de la encuesta sobre "cuánto dinero ganan los programadores Java" organizada por Abraham a comienzo de año. Estas, y otras preguntas similares, son las que queremos responder con una encuesta sobre plataformas tecnológicas.
¿Pero, cuales tecnologías son las que deberíamos considerar en la encuesta?
Ese, es el motivo de esta nota, no el realizar la encuesta, (eso lo haremos en unos días), sino presentar una lista tentativa de las tecnologías, y con vuestra colaboración, asegurarnos de no dejar fuera de la encuesta, ninguna que sea relevante para el interés general.
La lista preliminar es la siguiente. Demás está decir que todos los comentarios serán tomados en cuenta.
Web UI.
- Adobe Flex
- GWT
- JavaServer Faces
- Spring Framework
- Struts
- JSP / Servlets.
GUI.
- AWT
- Swing
- SWT
- JavaFX
- Qt Jambi
- java-gnome
- Adobe AIR
- Android
Lógica de negocios.
- EJB
- Spring
- Servlets/WS
- Servlets/json
Mensajería / manejo de colas.
- MQ (Apache ActiveMQ, WebSphere MQ, etc)
- JMS
- WebServices
- REST
ORM o Persistencia.
- JPA
- Hibernate
- TopLink
- iBatis
- DataNucleus
Bases de datos tanto SQL, NoSQL como orientadas a Objeto.
- Oracle
- PostgreSQL
- MySQL
- H2,
- HyperSQL
- Hypersonic SQL
- db4o
- Objectivity/DB
Datos de contexto, esto es para poder realizar el análisis.
Tipo de despliegue.
- Internet
- Intranet
- OFF line
Tamaño del cliente.
- Usuario final.
- Pequeña o mediana: ya sean PYME's, cooperativas, o administraciones publicas tipo municipal o centros de gestión ciudadana.
- De ámbito nacional: Empresas del país, estado nacional / provincial o cualquier otra organización que opere únicamente bajo una sola bandera.
- Región económica. (Unión Europea, MERCOSUR, etc)
- Global (con presencia en varios continentes).
De tu persona.
- País donde resides, (según ISO 3166-1 alfa-2): ejemplo ES, AR, MX, CO, US, etc..
- Tu ciudad (nombre de la ciudad en letra mayúscula).
Reader Comments (18)
Agregar JQuery, Javscript, etc.
Process server, Message Broker, Portales.
Saludos
deberian poner el IDE y la infraestructura
@JVC
html5, CSS3, JQuery, Javascript, etc.
Son complementarios (y no excluyentes) a los listados en categoría Web UI. Por lo que (en todo caso) podríamos dejarlo para otra encuesta ya directamente orientada al desarrollo / diseño web de manera específica.
De lo de " Process server, Message Broker, Portales. "
¿Podrías ampliarlo un poco?.
@montblack
Ok. con lo del IDE como categoría.
Opciones
• Eclipse (en cualquiera de sus formas, MyEclipse, IBM WebSphere, SAP NetWeaver, Oracle JDeveloper, etc..)
• IntelliJ IDEA
• NetBeans
• JCreator
• ¿Algún Otra?
Lo de "infraestructura" no me queda del todo claro a que te refieres.
En bases de datos, añadiría DB2.
Me choca que estemos mezclando GUIs que corren en navegador con las que corren en Desktop y las que corren en móviles o tabletas. La pregunta "¿Usted qué usa, GWT o Android?" Se me hace rara.
Saludos!
Francesc Rosés
Hola,
en Web añadiría Stripes, Play y Wicket
en ORM / Persitencia MyBatis, Spring JDBC y JDBC a pelo (sí, en pleno siglo xxi y todavía lo hay..)
También una categoría de construcción: Maven, Ant, Graddle, etc
y tal vez una categoría de lenguaje utilizado JDK5, 6, 7, Groovy, JRuby, Scala (no sé si ha salido en encuestas anteriores)
saludos,
perry
@froses
"¿Usted qué usa, GWT o Android?"
Un aclaración importante.
Las "categorías" solo son "etiquetas" para agrupar las opciones no tienen otra utilidad.
De las "opciones" no son excluyentes, podrás tildar todas las que estés utilizando.
"JDBC a pelo (sí, en pleno siglo xxi y todavía lo hay..)"
En pleno siglo XXI, las aplicaciones de escritorio que usan bases de datos embebidas, usan JDBC directamente, porque no tiene sentido un ORM. Aparte de obtener el mejor rendimiento posible al usarlo.
No entiendo esa "manía" que se le suele tener a JDBC, como si no fuese una herramienta más de las que se dispone en el JDK. Además de que es relativamente sencillo de usar, y de "envolver" cuando sea preciso.
Hola, en NoSQL agregaría CouchDB. Lo de tener Eclipse para todas las variantes no me gusta, en todo caso en el análisis se puede agrupar (al revés no).
También pondría cantidad de personas del grupo de desarrollo.
Otra, Openxava (que se nos enoja Javier!) en que categoría iría? Web UI?
Saludos
Y si añades Grails y Griffon?
Hola,
@Choces: efectivamente tal vez esté un poco viciado, vengo de ver nuevos desarrollos en jsp+servlet+jdbc, todo a pelo y no por nada en especial, sino porque la consultora de turno tenía 3 recién licenciados (derecho, matemáticas, abogado) con un curso de java básico, y no tienen muchas ganas de "innovar". Es en este sentido lo de "siglo xxi" y todo eso.
Por otra parte, tampoco soy muy partidario de los ORMs, MyBatis y Spring JDBC son dos alternativas bastante decentes que, dando el mismo rendimiento, te abstraen del código "boilerplate" asociado a JDBC: abrir conexión, abrir statement, resultset, recorrerlo, asociar las columnas a tu objeto, cerrar los objetos, try-catch-finally. Es probablemente por eso por lo que tiene tan mala fama.
Otra muy común: resultset, statement y connection tienen un close(), ¿era tan difícil ponerlo en un interfaz? Siendo puristas, en el finally asociado al try-catch de gestión de la consulta a bbdd tengo que poner otros tres try-catch para realizar los distintos close en vez de un método genérico para gestionar el cierre de los tres objetos - no es que sea malo per se, pero es engorroso..
También puedes tirar por la opción del wrapper propio, pero normalmente no lo he encontrado necesario, especialmente en ambientes web, que es dónde trabajo; en entornos embebidos todavía, en una aplicación de escritorio no lo veo tan claro como tú y seguramente tiraría por Spring/MyBatis, pero bueno, eso es una opinión y ya sabes lo que dicen de las opiniones :O)
Por otro lado, se me ocurre que también puede ser interesante conocer cuánto evoluciona las distintas plataformas: cuánto tarda en sustituirse una versión de un framework por una nueva release, en cambiar de versión de JDK, si se está abierto a estudiar nuevas herramientas para incorporarlas a producción, etc.
saludos,
perry
en NoSQL añadiría a Redis y ha MongoDB que son las que usamos nosotros.
http://antuansoft.blogspot.com/
saludos
@Perry
Entonces, los que están "en otro siglo" son quienes pretenden codificar en el siglo XXI, con "java básico" :D ¿Usan todavía JavaSE 1.0? :D
Creo que se abusa demasiado del concepto "boiler plate". En sentido estricto, se debería referir únicamente a estructuras sintácticas, que siendo necesarias por las especificaciones del lenguaje, no incorporan algoritmos.
Lo que mencionas sobre JDBC no es "boiler plate" sino instrucciones detalladas que resuelven decisiones lógicas concretas. Puedes decir que es "código de bajo nivel", pero según lo que se está difundiendo como "boiler plate", dan la impresión de ser superfluas, o fácilmente sustituibles por un tipo de sintaxis más "ligera".
En JavaSE 1.7 todos ellos implementan el nuevo AutoCloseable, con lo que no solamente se reducen los catch, sino que se pueden hasta eliminar por completo, en relación con el cierre de los recursos. Solo se necesita capturar o relanzar las excepciones como siempre, pero no para asegurar el cierre de recursos como antes.
Por otra parte, los nuevos try y multi-catch aligeran considerablemente el código, al permitir la agrupación de condiciones de prueba y captura.
Yo añadiría también un sección sobre el porcentaje (si se puede) de despliegue en las diferentes modalidades que hay: Servidor propio, hosts alquilado, nube,...
Aunque nos encante los binarios, estaría bien poder poner porcentajes en las opciones en vez de si o no.
Saludo
Gente,
A no olvidar que la encuesta estará acotada a aquellas tecnologías que están siendo utilizadas en este momento.
No a aquellas que están en proceso de evaluación o capacitación.
Esto es para tener una fotografía de la realidad actual y no de futuras tendencias.
Por otra la idea es no granularizar demasiado, ya que (y además de volverme loco cuando tenga que depurar los datos y hacer el análisis), se genera una mayor dispersión.
Por otra parte siempre podemos hacer una encuesta específica para ese punto en particular (IDE vasados en Eclipse, desarrollo / diseño web, sub conjuntos de Swing, de SWT, y demás).
En ese sentido lo de lenguajes alternativos de la plataforma, preferiría dejarlo para otra encuesta.
Con respecto a versiones de la JVM, creo que Abraham ya tenía algo.
Al final del día o 1ra hora del lunes estaré subiendo una versión revisada de la lista.
Pregunta,
¿Generadores de reportes?
En base datos falta Microsoft SQL SERVER
Agregar Grails y Griffon.
Stripes
http://www.stripesframework.org/display/stripes/Home
El debate continua en este enlace.