¿Se siente en Java o es sólo mi imaginación?

Bueno, de momento estoy en transición de programador RoR y Play! a programador J2EE. Y de algo me doy cuenta, creo que Java ahora es cómo el C en los 80's-90's, ¿porqué?, pues porqué es un lenguaje que se aprende en la escuela y no se usa en las empresas.

Digo esto porqué casi por lo general en blogs o foros relacionados con Java la mayoría de las entradas son: "Ayuda con JFrame..." ó "¿Cómo mando X valor a K formulario?"...Lo que no veo mal, pero, si lo veo cómo que únicamente estudiantes usan Java en su día a día, y una vez terminada la escuela (por lo general) se mudan a otra plataforma (en México, por lo general, .NET).

Esto es algo que de cierta manera me molesta, porqué la verdad a lo que he visto en las universidades (de mi localidad) enseñan Java...pero cómo usando de referencia libros: "¡Java 1.3 compatible con 1.4!". Lo que me hace pensar que no están actualizados y por lo tanto enseñan cosas que quizás ya no se usan o ya no son necesarias porqué hubo un loco que optimizo la metodología para hacerlo.

Y cómo digo, encuentras en foros y demás relacionados con Java, pero sólo información "for beginners". Cuando uno quiere hacer cosas más interesantes en Java es de menester (si o si) comprarse un libro en X tema (lo que por este lado sale caro se desarrollador Java, ya que hay libros para cada cosa: Maven2, Struts2, Wicket, Hibernate, Spring, etc...).

Cosa contraria que veo en el panorama de otros lenguajes. Por ejemplo, cuando programé en .NET (con C#) NUNCA requerí de un libro; en blogs de .NET venían temas interesantes/útiles y avanzados. O por ejemplo en Ruby nunca me ha faltado documentación por parte de la comunidad y si hablamos de Python muchos menos.
Lo que no entiendo es porqué en Java es tan difícil encontrar temas más avanzados, hay ocasiones en que personas cómo yo nos quedamos en mudo, porqué ya dominamos lo "beginner" y aburre hablar/hacer lo mismo. Sin embargo aún no puedes hablar con alguien avanzado porqué no le entiendes del todo.

Y cómo digo, veo que ahora (tristemente, para la mayoría de egresados de las universidades) Java es un lenguaje muy potente, pero es muy difícil hacer una aplicación real por su (¿)"complejidad"(?), y la gran mayoría de los egresados se pasan a algo "más fácil" cómo C# o Basic.

Será que cómo digo: ¿Esto sólo pasa en Java?...¿O en todos los lenguajes sólo que no me doy cuenta?

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Empresas?

Java no se usa en empresas? En qué planeta? Muchos bancos usan Java y no sólo para sus portales web sino en otras aplicaciones internas. El SAT usa Java para un buen de cosas. Varias empresas privadas tienen sitios funcionando en Java, o aplicaciones internas hechas en Java. Conozco a varias personas (algunas de las que postean aquí) que llevan varios años desarrollando en Java, haciendo varios proyectos para clientes de las consultoras donde trabajan.

Tal vez nunca requeriste leer un libro para aprender .NET pero habría que ver a qué nivel lo manejas, lo necesitas manejar, etc. Yo aprendí .NET leyendo un libro y me ayudó bastante porque cuando me metí a leer blogs y foros de .NET en 2002-2004 me di cuenta que la mayoría de los programadores que estaban ahí no tenían la menor idea (muchas dudas similares a lo que ves en este sitio a veces, o hasta peores) pero la bronca no eran las dudas, sino las respuestas, que se nota que las daban programadores igual de novatos pero que se habían estado peleando durante días con un problema similar y encontraron una solución que ciertamente no era la óptima. Al fin son puros foros de "cómo hago esto?" y la respuesta es "ps hazle así y con eso jala" pero esa solución resulta que consume mucha memoria, o no es thread-safe, o tiene un desempeño muy pobre, etc pero pues entre puro novato, con que jale es suficiente, ahí se queda porque eso es como el único requerimiento, ya hacer que jale bien es como para otro día que nunca llegará.

Pero bueno, mediocridad puedes encontrar en cualquier plataforma, cualquier lenguaje y de hecho cualquier profesión.

De diferencias entre Java y .NET pues la mayor diferencia es que .NET viene de una empresa que tiene acostumbrados a sus desarrolladores a que todo debe emanar del mismo lugar. La empresa que te da la plataforma es la que te da los cursos los libros el IDE los patrones de diseño etc, es raro ver frameworks en .NET como los que se ven en Java; ahora es más común pero antes de .NET creo que ni existían frameworks o librerías de componentes para VB por ejemplo (había pocas, todas comerciales).

A mí la documentación de Ruby me parece bastante pobre. Hay muchos foros y puedes poner la duda y te la resuelven y demás pero la documentación que sería equivalente al javadoc la verdad no me pareció buena.

No creo que sea difícil encontrar temas avanzados en Java. Pero pues si no necesitas meterte a uno de esos temas, normalmente no lo haces. Ciertamente JavaMéxico es como el sitio por excelencia para que los estudiantes pidan que les hagan su tarea, pero no es todo lo que hay aquí. Habemos quienes publicamos cosas en nuestros blogs de temas que rebasan lo básico, algunas cosas especializadas, temas avanzados como dices.

Y eso último que dices de que los programadores dejan Java por su complejidad y se van a otra cosa más fácil... pues ojalá y los programadores pudieran siempre dictaminar cuál es la tecnología que van a usar, pero es raro el caso; los freelanceros pueden, pero los que trabajan en consultoras rara vez deciden eso. Los que están en niveles altos en la empresa son quienes deciden qué tecnología van a usar si es que se especializan en algo. Solamente adoptan nuevas cosas cuando hay varios clientes que piden algo; una consultora que usa puro Java va a entrar a .NET cuando encuentren clientes que les pidan sistemas hechos en .NET, pero esos clientes no piden .NET porque un programador dijo; generalmente es porque el director de algo en la empresa cliente leyó una revista de tecnología o le preguntó a su cuate qué es lo de hoy y si le dicen que es .NET pues pide .NET sin saber más.
Y bueno, al final si estudiaste Java y es lo que dominas y por eso trabajas en X lugar, no te salvas que un día tu jefe llegue y te diga "pues ahora aprendes .NET a ver cómo" porque ahora ya ni se quieren molestar en invertir en cursos para sus programadores, quieren que mejor lean algo en internet y rapidito dominen una tecnología nueva (y puede ser el caso inverso, que sepas .NET y te pasen a Java o que sepas X y te pasen a Z).

De acuerdo con ezamudio

Hola,

Estoy totalmente de acuerdo con ezamudio. Java es quizas el lenguaje mas usado en las empresas, sin duda el lenguaje que mejor te permite aprender temas avanzados en el desarrollo de software.

Opino que no es bueno dejarse llevar por las percepciones. Si asi fuera, yo diria que todos los programadores son mediocres, pues cuando les hablas de temas avanzados de desarrollo de sw; estos no tienen ni idea de lo que les hablo. Pero muy bien que no es cierto, en algun lugar debera haber algun sitio donde hayan DESARROLLADORES .NET de calidad y no simples programadores.

Imagen de benek

Imaginación

Definitivamente es tu imaginación, inclusive es posible que Java se utilice más en las empresas que en las escuelas.

Java es uno de los lenguajes más utilizados en el mercado de las TIC's, MUY por encima de la plataforma .Net. (ver aquí y aquí. Como bien dice ezamudio, muchos bancos lo utilizan, y déjame decirte que no he visto al momento un solo banco en los que he trabajado (en Java por supuesto) que no lo maneje (Inbursa, BBVA, Santander, Banorte, Banamex, Banco del Bajío).

Hay otro rubro muy importante en la influencia de Java, que es el de las buenas prácticas, frameworks y patrones de diseño. En Java han surgido o se han desarrollado o se han consolidado muchas de las "buenas ideas" en las que se basan o han adoptado otros lenguajes de programación recientes aparentemente "novedosos". No quito mérito a las buenas ideas que han surgido en los nuevos lenguajes también, sin embargo la influencia de Java es muy notoria, ahora ya todos los lenguajes tienen una implementación MVC por ejemplo (que ciertamente no nació en Java pero sí se consolidó ahí). Ni qué decir de la Inyección de Dependencias, los ORM y otras prácticas que los demás lenguajes están adoptando.

También, Java es actualmente la "potencia" en cuanto a proyectos de software libre, tanto en cantidad como en uso extendido (y no dudo que en calidad).

No trato de decir que Java "es el chingón" en todo, cada lenguaje tiene su propósito, pero de acuerdo al tema que expones Java es mucho más de lo que piensas, ojalá te des la oportunidad de conocerlo.

¡Saludos!

Imagen de JaimeItlzc

Delphi

Recuerdo que una vez me dijieron que si queria entrar a una empresa como programador deberia de aprender Delphi, cuando fui al cluster Team en morelia me dijieron que PHP, ellos te daban capacitacion(Cursos) , el unico requisito era que pues fueras de facilidad de aprendizaje y suspieras algo de programacion.

Java ha ido apliando su campo y irse reconociendo en muchos de los sectores economicos, sociales, tecnologicos y porsupuesto al nivel academico.
Y donde queda android? Pues quien sabe.
jaja

Saludos.

Imagen de ezamudio

Java y Android

Java ya tenía mucho terreno ganado para mediados de la década; de hecho .NET llegó a comerle terreno. PHP ganaron mucho terreno para aplicaciones sencillas porque puedes hacer algo que medio funciona muy rápido, pero pues ha tenido muchas broncas desde que salió, creo que ya son menos, IMHO la bronca de PHP es que es muy fácil hacer las cosas mal, no te obliga a hacerlas bien. Combinado con MySQL que durante tanto tiempo no forzaba reglas de integridad de ningún tipo, el resultado fueron muchas historias de horror cuando se empezó a usar la combinación para cosas más serias.

Y de los lenguajes, pues a veces es un poquito como las religiones; cada quien te dirá que el suyo es la neta y que todos los demás están mal, no sirven para nada, o tienen un uso muy específico pero es como académico nada más y nadie en su sano juicio lo aplicaría al mundo real.

Y Android, si te refieres a la plataforma, pues ahí va ganando terreno. Que si la fragmentación, que si el control de los carriers, etc pero esos son temas más bien comerciales. Android es un sistema operativo con kernel Linux, y si entras por la puerta de los programadores hay un letrero que dice "se habla Java"

Imagen de AlexSnake

La biblia de java

Totalmente de acuerdo con ezamudio, de hecho la religión perdón quise decir lenguaje de prog que he visto que se ocupa comunmente es Java. He tendio la fortuna de trabajar en Inbursa (confirmando lo que dice benek) y en otras consultoras (como en la que hoy laboro y que su cliente es Banamex) que ocupan Java. Y claro hay que estar abierto a la posibilidad de programar en otros lenguajes, por mi parte he dearrollado en Visual, C++, Php, pero me quedo con java.

Imagen de JaimeItlzc

Eweek

Segun Eweek estos son los 10 lenguajes de programacion que destacan por su trabajo de comercializacion y que si estas estas buscando impulsar tu carrera o algo nuevo tienes que empezar por aqui:

1.-PHP
2. C#
3. AJAX (Asynchronous JavaScript and XML)
4. JavaScript
5. Perl
6. C
7. Ruby and Ruby on Rails
8. Java
What it is: An object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s.
Why you should learn it: Hailed by many developers as a "beautiful" language, it is central to the non-.Net programming experience. "Learning Java is critical if you are non-Microsoft," said Duquaine.
Job availabilities: 14,408
9. Python
10. VB.Net (Visual Basic .Net)

Aqui les dejo el articulo 10 Programming Languages You Should Learn Right Now

Opinen

Imagen de lordpancho

Hablando de mujeres y listas de lenguajes

Jaime respecto a tu comentario, solo quiero decirte tres cosas:
1. Citar un articulo de lo mas "in" de lenguajes de programación escrito en el 2006, estando en el 2010 como que es useless.
2. Según tu articulo Php es lo mas de lo mas, en mi experiencia personal Php es muy mal pagado, soy un desarrollador certificado en Php y de lejos me han tocado en php ver los proyectos del calibre que he hecho en java, tanto en prestigio como en el sueldo.
3. Ajax no es un lenguaje de programación.

Y respecto a la nota y los comentarios completamente de acuerdo con lo que menciona ezamudio.

Saludos

Imagen de ezamudio

Métricas

Depende de la métrica que utilices, Java puede ser en primer lugar o puede ser de los últimos. Aquí algunos ejemplos.

Algunas medidas son muy subjetivas; si cuentas las menciones a un lenguaje en ciertos sitios, y únicamente cuentas las veces que se menciona la palabra, entonces no tienes contexto y puedes obtener un resultado como por ejemplo de que VB sea muy popular, cuando realmente los comentarios dicen "VB apesta", "VB causa impotencia", "VB provoca cáncer", "cada vez que haces un programa en VB, Dios mata un gatito", etc.

Si cuentas las preguntas o posts en foros, pues entonces significa que el que salga en primer lugar es el lenguaje acerca del cual hay más preguntas; pero eso puede deberse a que sea un lenguaje nuevo y que no hay cursos o documentación oficial, por lo tanto solamente quedan los foros.

Si cuentas las ofertas de trabajo, eso significa que se necesita gente que sepa X lenguaje, o sea que hay más necesidad de gente que domine el lenguaje, que programadores que lo conozcan; pero eso a qué se debe? tal vez es un lenguaje oscuro, obsoleto, que a ningún programador le interesa programar, y de repente tuvo un incremento en su popularidad (por ejemplo COBOL y RPG a finales de los 90's). O tal vez es un lenguaje muy nuevo y ya están pidiendo las empresas gente que conozca el lenguaje bien cuando apenas los programadores interesados lo están aprendiendo (por ejemplo C# por ahí del 2003).

Si cuentas el número de proyectos en SourceForge, ohloh, etc, pues es indicativo del interés de los programadores, pero y qué tal si están contando 50000 proyectos en Java de los cuales 35000 ni código tienen, son proyectos que alguien registró pero ya nunca subió código, etc? y de los 15mil restantes, 13mil son calendarios, 1500 son frameworks para desarrollo web que nadie conoce y los últimos 500 son los de Apache que todos conocemos.
Esta última métrica es más útil si contamos líneas de código efectivas. De modo que no importa cuántos proyectos hay, sino cuántas líneas de código. Esa medida sí la tiene ohloh, pero aún así... si tienes por ejemplo dos proyectos funcionalmente equivalentes, uno en Java y otro en Groovy o ruby, probablemente el proyecto en Java tendrá más LOC. Por lo tanto si solamente utilizas la cuenta de LOC, el resultado no es tan significativo porque los lenguajes más verborreicos salen ganando y resultaría que el lenguaje de programación más popular es XML. O qué tal si por ejemplo en C# existe tanto código porque los devs no están acostumbrados a usar frameworks, sufren el síndrome de NIH (Not Invented Here) y por lo tanto hay código muy similar repetido miles de veces?

En fin, por eso me gustó ese sitio de langpop, puedes ver esas distintas métricas y decidir tú mismo.

Imagen de WinDoctor

Joderrr

Joderrrr, por poco y me la creo cuando dicen que Java casi ni se usa xD.

Como lo comenta ezamudio, quiza en Marte o en otro planeta. Referente a México creo que Java es lo que más se utiliza, quizá el problema es el contexto en el que te mueves. Tu ves los portales, CMS, Webs, y similares y verás que es PHP. Ves varias app comerciales de escritorio y muchas son en C++, C#, etc.

Hoy por la tarde con un amigo de Twitter, que no le gusta Java, discutiamos algunas cosas. El prefiere PHP y Ruby, Java seguro no le gusta por que nunca le entendió. El se mueve mucho en las redes sociales, FaceBook, Twitter y en el movimiento del "Marketing Político", por lo cual muchas aplicaciones que desarrolla son portales, con alguna conexión a FaceBook, Twitter, etc., por esta razón de momento piensa que lo que él hace es lo "wowww" y Java le parece aburrido. Sin duda que lo anterior suena divertido, pero lo comparo como el tener una pistola real y una de juguete, donde la de juguete tiene lucecitas, hace soniditos, etc., y uno como adulto hasta le llama la atención por un rato, pero a final de cuentas no deja de ser un juguete para niños. No hablemos de la parte de seguridad de las aplicaciones que mi amigo desarrolla, por que dudo que realmente conozca algo.

Siempre lo he dicho, pienso que Java te proporciona mayores habilidades. PHP sin duda que induce a muchas malas prácticas con todo y sus famosos Frameworks como CodeIgniter (aunque la vez que lo revise, se veia bueno, pero muy verde como para pensar en compararlo con Spring).

Para mi, tanto Java como .NET son buenos, me inclino por Java pero la vdd es que yo encantado si me ponen a desarrollar en .NET, no tengo pretextos para no hacerlo. Ruby me parece un lenguaje divertido, fácil y rápido. PHP en verdad que hasta ofendido me siento cuando leo o escucho su nombre, su sintaxis me parece horrible y de verdad que no entiendo como induce a muchas malas prácticas tan fácilmente y sobre todo muchos de quienes lo usan no se den cuenta. PHP va enfocado a un sector con menor capacidad intelectual (aunque conozco 2 o 3 excepciones por ahí que son bastante buenos y hacen codigo php de calidad).

Saludos!!

Ya no ha evolucionado, pero sigue vigente.

No leí las anteriores respuestas, así que si repito algo, perdonen, uds.

La cuestión es que Java es un lenguaje que no ha evolucionado mucho desde hace ya unos 4 - 5 años, cuando saliron las ultimas modificaciones a la syntaxis.

Esto es a propósito, por que para tener un lenguaje que sea soportado por las empresas se necesita tener consistencia entre versiones.

Java si se usa en las empresas, ahora más que nunca, pero definitivamente no ha habido inovación en el lenguaje.

C# por otro lado, saca en cada versión algo nuevo, a veces radicalmente diferente a lo que había anteriormente y es por eso que hay mucha informacion sobre los últimos cambios.

Lo mismo pasa con lenguajes que han empezado a tener un boom reciente.

Luego entonces, en mi opinión la falta de noticias, se debe en realidad a la falta de cambios en el lenguaje y no tanto a que no sea usado.

Mucha de la información relevante sobre java está ahora pasando no en el lenguaje mismo, sino en la plataforma, y si, hay un montón de información relevante aún pasando ahí.

Saludos.

Imagen de aorix

Java4Ever

Hola que tal...

La verdad de las cosas que de todos los lenguajes que existen con la que más contacto he tenido ha sido con Java y sus tecnologías, muy poco con .net, c# así como php, pero tuve la oportunidad de sentar buenas bases en una empresa pequeña que se dedica al desarrollo de software y la fortuna de conocer grandes compañeros de trabajo de los cuales aprendí muchas cosas, me di cuenta que no importa mucho en el lenguaje que ocupes si no lo que logres implementar con él, he visto de todo en este camino, gente que trabajan con java de manera muy sucia y desordenada y gente que trabaja con php de manera muy limpia, aquí más que nada son los buenos hábitos de desarrollo que cada uno de nosotros haya formado a lo largo de su carrera profesional, la verdad de las cosas que para mí todas las tecnologías para desarrollo se me hacen buenas opciones pero hay algo que se le llama arquitectura de software y que es ahí donde tu como buen arquitecto debes de saber cómo mezclarlas para hacer que tu solución realmente sea una solución de software, así como saber que componentes usar y cuáles no todo para dar la mejor solución, sería algo así como construir la casa perfecta para la familia perfecta, prever muchos detalles como el si van a tener mascotas o van a tener más hijos, etc.

Un amigo me decía hace como 2 días, que las bases de datos no le gustaban pero que por necesidad tenía que hacer uso de ellas y lo que es peor que desaparecerían, yo le pregunto qué mundo existiría hoy sin las bases de datos, todo gira alrededor de la información que se encuentra almacenada en bases de datos, donde demonios cree que se encuentra alojado su perfil de Facebook o de twitter, pero a lo que voy es que muchas veces se ven las cosas de manera superficial y a pesar de haber estudiado la misma carrera no logren ver lo que hay detrás de todo lo que ahorita usa, esta personita tiene gran conocimiento de las aplicaciones de moda pero muy pocas tablas de las tecnologías base, y ahorita que anda leyendo acerca de ello manda vía twitter un sin número de ligas de comparación que si Java vs Ruby que si noSQL que si no a las bases de datos relacionales, y copiándolas en sentido retorico como diciendo que nosotros por el simple hecho de trabajar con java no sabemos que hay más cosas, diablos… pues si de eso vivimos, claro que conocemos y sabemos que existen muchas tecnologías que te ayudan a crear aplicaciones más rápidamente y más atractivas al ojo del usuario final…. en fin ya tengo sueño y ya no quiero seguir recordando las experiencias y los twitts de este pseudo ing en sistemas. Buena noche a todos.

PD para los que dicen que Java no ha evolucionado es por qué solamente conocen una parte muy pequeña o han trabajo muy poco con él, ya que java ha crecido y evolucionado tanto al grado que hoy día no es de considerarse como un lenguaje de programación si no toda una plataforma de desarrollo.

Imagen de ezamudio

Madurez

Java también ha cambiado poco últimamente porque es un lenguaje que ya ha alcanzado bastante madurez. Desde que salieron PHP y C# hasta ahora, han sufrido muchísimos cambios porque eran lenguajes nuevos y les han estado aventando cosas encima, han ido creciendo mucho y mejorando porque lo necesitaban, similar a cuando fue el paso de Java 1.1 a 1.2 y hasta 1.4, luego en Java 5 vienen anotaciones, generics, etc y en Java 6 agregan otras cosas que ciertamente fueron menos llamativas que las de 1.4 a 5 pero eso es porque realmente ya tiene bastantes cosas. Incluso para la versión 7 vienen pocos cambios importantes, y creo que es bueno por una parte que tampoco se dejen llevar por modas y que le metan cosas nomás porque otros lenguajes las tienen; que le metan cosas nuevas porque realmente son útiles.

Imagen de WinDoctor

Evolución Lenta

No creo que no haya evolucionado, más bien ha evoluacionado Lento, de lo contrario no tendríamos:

EJB 2 ---> EJB3
Applets ---> JavaFX
AWT ---> Swing
JSP ---> JSF

Más bien creo que el comentario de Oscar va encaminado a decir que su evolución ha sido lenta comparada con otros lenguajes que en cada versión incorporan varias cosas "llamativas"...

Saludos!!

Imagen de ezamudio

Opinión de .NET

Encontré esto hace unos minutos, una opinión de .NET similar a lo que dije en mi primer comentario, de parte de un programador que ya se hartó y se pasa a Ruby. Muchas cosas similares, de modo que ya compruebo que no estoy loco y mi percepción es acertada: los programadores en .NET están acostumbrados a usar únicamente lo que viene de Microsoft. No hay espíritu colaborativo. En fin, léanlo está interesante.

RE: Empresas

Me refiero a que, las empresas que hacen los egresados (pocas, yo sé). Yo sé que Java si no es el lenguaje más usado es uno de los más usados...Pero hablo de lo que veo, por ejemplo cuando he entrado a OCC o a EmpleosTI o algún sitio de empleos (por lo general) se pide .NET y para web PHP, y de vez en cuando veo uno de Java.

Luego hablas cómo si siempre fueras empleado y de ahí no sales. En realidad estamos hablando de cosas distintas (yo me refería a Freelancers, gente que apunta a una empresa, etc). Antes en TIOBE veías a Java subir, ahora puedes ver esto: ... Por otra parte podemos ver C# ... Y si te fijas esto ha estado pasando pocos años después de qué Java se convirtió en el lenguaje de facto en las universidades.

Por cierto, a mi se me hace raro que digas que la documentación Ruby es mala. A mí se me ha hecho muy buena desde la documentación del Core hasta la de Rails y la de Rhodes, me ha permitido hacer las cosas y ver ejemplos...Hay muchas cosas buenas y sitios cómo railscasts que te ayudan a entender muchos temas y es algo que yo no he visto en Java.

RE: De acuerdo con ezamudio

Si...pero lo que veo ultimamente (sin contar los últimos 5 años en donde Java seguro era la opción 'default' de todo programador egresado) es que .NET viene fuerte y la gente se deja llevar por ello (que cómo comenté antes he visto más empleos en .NET que en Java aquí en México).

Y te digo, la documentación .NET es simple de encontrar...Incluso en la documentación de Microsoft encuentras ejemplos buenos y muy explicados sobre cómo usar X cosa...Lo que en Java es irte al libro si o si, para verlo de manera no aplicada.

RE: Benek

Bueno, pues eso de las "buenas prácticas" a veces creo que son algo ambiguo. No creo que una sana práctica sea configurar cada framework que necesites en XML, pero es mi muy personal punto de vista.

La influencia en Java si bien es cierto. Aunque con el patrón MVC creo que ya estaba consolidado en otros lenguajes antes de Java, más bien Java lo hizo famoso. Sin embargo hay cosas que en lenguajes ya no son necesarias (esa es otra, muchas veces veo que los programadores Java toman una actitud de: "si no es difícil de configurar, no vale la pena"...incluso un desarrollador Javalero me dijo: "No nos hagas mucho caso a los de Java, nosotros tenemos pensamiento de programador 'Old-school' en donde todo tiene que ser difícil para que algo sea bueno").

Lo que te debato totalmente es esto:

También, Java es actualmente la "potencia" en cuanto a proyectos de software libre, tanto en cantidad como en uso extendido (y no dudo que en calidad).

Temo decirte que Java (o al menos la Java de Oracle) no es usado en proyectos software libre, sino opensource...En software libre C/C++ siguen siendo reyes. ¿Porqué? pues porqué Java no es software libre, tiene "fragmentos" opensource, pero también tiene "fragmentos" privados, ergo no se usa en software libre. Y lo puedes corroborar viendo artículos de Richard Stallman (padre de la filosofía del software libre).

Y si me doy la oportunidad de conocerlo, y aunque tengo muchas cosas en contra o me quedo de: "¡A poco acá todavía usan eso!"...Y de hecho lo que he visto en Java es que hay pocos frameworks que apoyan la máxima productividad y para todo tienes que tener un plan super bueno, de lo contrario terminas con monstruos que ni los desarrolladores que iniciaron el proyecto pueden manejar. Sin embargo espero ver cosas mejores y que ayuden en lo importante, la capacidad de resolver problemas.

RE: Java y Android

Pues las cosas también se pueden hacer bien en PHP...cómo también se pueden hacer mal en Java o cómo se pueden hacer mal en Python (que tiene fama de: "las cosas se hacen de una forma, la más simple"). En fin, en PHP se pueden hacer buenas cosas también y proyectos grandes.

No hay cosas que puedas hacer X lenguaje y en Y no...Para mí que es cuestión de gustos, lo que yo digo es que últimamente la gente va dejando de lado Java y se va pasando a cosas sencillas.

RE: Métricas

Pues yo creo que si un lenguaje produce mas LOC que otro en parte es factor y no...Quizás en uno tendrás que escribir 500 LOC simples, que quizás en otro lenguaje escribir 30 sea un reto mental tremendo. Aunque por lo general en Java se da muchas mas LOC que en otro lenguaje (ej. Ruby, al menos en los desarrollos que he hecho).

RE: Joderrr

Antes de hablar así (de qué es un juguete de niños) de Ruby te recomiendo verte esta ponencia en RubyConf:

Y esta entrada:

RE: Ya no ha evolucionado, pero sigue vigente.

Este es un punto que nadie había tocado y creo es muy necesario...Tienes razón, los lenguajes que tienen el "boom" cada rato hacen cosas que (estando en Java) te quedas de a 0.

RE: Java4Ever

No considero que por no saber Java, seas un mal programador. Creo que hay programadores Basic que nos dan un repaso a más de uno.
A lo que voy es que no depende del lenguaje que tan bueno o malo seas...Claro que cuando vienes de X a Y estás en un "¿Qué pero si en X podía hacerlo en 2 líneas?" y llegas a Java y te encuentras con que hay que configurar 1 XML o poner 30 anotaciones.
Espero que tengas otros argumentos para decirle a esta persona "pseudo ing. en sistemas" de lo contrario, mal vamos.

Digo, Java no es nada difícil de comprender...Vamos es un lenguaje sencillo pero farragoso en exceso, y es algo a lo que yo atribuyo la decaída Java en los últimos años, agregando que últimamente la gente es más floja y quiere todo a 1 click XD; también creo que por el simple hecho de qué en Java (por lo general, sé que hay plug-ins para esto) no hay un drag and drop de botoncitos y demás la gente le huye; y las empresas al no conseguir gente en lo que necesitan, se adaptan a lo que hay...aunque habrá otras empresas que no tendrán que hacerlo (empresas muy grandes cómo bancos).

RE: Evolución Lenta

Swing ya tiene añales, y de hecho ya dejó de ser soportado (en Netbeans te dice: "Swing ya no será desarrollado, sin embargo puede seguir siendo usado en su última versión")...Luego con EJB, puedes buscar en Google: EJB's 101 Damnations, y ya tu dices si es avance lento o no. Según lo que entiendo se quedarán para aplicaciones de escritorio Netbeansplatform y creo que eclipse también tiene algo similar.

RE:Opinión de .NET

No digo lo contrario...De hecho en ese punto tienes mucha razón, pero lo que no entiendo es porqué está teniendo más "Boom" lenguajes cómo C# o Ruby y no Java...De hecho la llegada de gente a Ruby desde el 2002 se ha visto tremenda.

Imagen de WinDoctor

Antes de hablarrr

Antes de hablar, mejor lee bien lo que publique.

Mi queja no fué sobre Ruby, sino sobre PHP. De Ruby dije que es un excelente lenguaje.

Saludos!!

Imagen de ezamudio

OpenJDK 7

Sun liberó los fuentes de Java después que salió la versión 6, de modo que la versión 7 ya será software libre. Lo que los detuvo un buen rato fue una parte de manejo de imágenes donde había código patentado y no recuerdo si al final lo cambiaron o consiguieron la licencia para que ya no haya bronca.

Sin meterme mucho a discusiones religiosas, yo creo que se puede hacer un proyecto de software libre incluso en un lenguaje que en sí no sea software libre. Una cosa es el lenguaje, otra cosa lo que codificas con él. Puedo publicar código en el lenguaje que sea y le pongo la GPL y listo; el lenguaje en sí no es libre, pero el código sí.

Imagen de luxspes

Sabes lo que es el "survivor bias"?

Lo que no entiendo es porqué en Java es tan difícil encontrar temas más avanzados, hay ocasiones en que personas cómo yo nos quedamos en mudo, porqué ya dominamos lo "beginner" y aburre hablar/hacer lo mismo. Sin embargo aún no puedes hablar con alguien avanzado porqué no le entiendes del todo.

Si aprender de temas avanzados relacionados con Java es lo que quieres, te sugiero que empieces por leer Head First Design Paterns, y de ahi te pases a Enterprise Patterns para que aprendas de patrones de diseño orientados a objetos y puedas realmente explotar las capacidades orientadas a objetos de Java (y por que no, de cualquier otro lenguaje OO)

Aunque la verdad, si deberas quieres aprender algo que mucha gente cree que domina, pero que la mayoria casi no comprende, aprende bases de datos relacionales, y entrale a Rel

Bueno, de momento estoy en transición de programador RoR y Play! a programador J2EE. Y de algo me doy cuenta, creo que Java ahora es cómo el C en los 80's-90's, ¿porqué?, pues porqué es un lenguaje que se aprende en la escuela y no se usa en las empresas.

Digo esto porqué casi por lo general en blogs o foros relacionados con Java la mayoría de las entradas son: "Ayuda con JFrame..." ó "¿Cómo mando X valor a K formulario?"...Lo que no veo mal, pero, si lo veo cómo que únicamente estudiantes usan Java en su día a día, y una vez terminada la escuela (por lo general) se mudan a otra plataforma (en México, por lo general, .NET).

Con respecto a lo que sientes de Java ya no se usa en la empresas y que RoR tiene mas "factor wow", como dirian mis papas "cada quien habla como le va en la feria", lo que pasa es que en el entorno en que te estas moviendo, no tienes contacto con personas que tengan que ver con Java. Yo por ejemplo, acabo de cambiar de trabajo hace menos de 6 meses, y entonces, todo lo que veia era Java para un lado y Java para el otro, y PHP siendo removido poco a poco para ser reemplazado por Java. Ahora que me mude a 800 kilómetros de distancia, todo lo que veo es .NET a la derecha y .NET a la izquierda, y toneladas de proyectos para Sharepoint y otras tecnologías con las que no habia tenido contacto... en como 4 años, cuando, en otro trabajo, a 1600 km y 6 años de distancia de distancia, todo era .NET, ya y... bueno, he conocido personas (hace 2 años) que renuncian de un lugar para irse a otro por que "lo que les gusta mas es PHP y prefieren irse a donde lo usen, por que PHP bien usado es mejor que cualquier otra tecnología". Conozco por otro lado, empresas que piensan que Genexus es lo maximo, y no hay nada que siquiera se le compare (habías oido de Genexus? o de su aun mas desconocida (pero sorprendente) mecanica para automatizar la normalizacion de base de datos? ).

Inclusive dentro de Java mismo, me he enfrentado con experiencias que muchos aqui consideran extrañas, y que me hacen pensar que Java podría haber evolucionado (y quizá todavía puede evolucionar) de "mejor manera" (desde mi muy subjetivo punto de vista).

La verdad, es que como humanos tenemos muy pocas bases para decir que lo que es nuestra experiencia es la experiencia general en el mundo. Si te interesa aprender acerca de lo fácilmente que caemos en ese tipo de trampas, te recomiendo el libro El Cisne negro, en donde se manejan conceptos como el cementerio de los desconocidos y la tendenciosidad del superviviente (survivor bias), que te permiten ver lo limitada que realidad esta nuestra capacidad para entender o controlar el mundo

Imagen de luxspes

Para regarla (o hacerla), con la tecnologia que gustes

Y si me doy la oportunidad de conocerlo, y aunque tengo muchas cosas en contra o me quedo de: "¡A poco acá todavía usan eso!"...Y de hecho lo que he visto en Java es que hay pocos frameworks que apoyan la máxima productividad y para todo tienes que tener un plan super bueno, de lo contrario terminas con monstruos que ni los desarrolladores que iniciaron el proyecto pueden manejar. Sin embargo espero ver cosas mejores y que ayuden en lo importante, la capacidad de resolver problemas.

Yo he visto (y oido) de proyectos mal llevados, que acabaron convertidos en monstruos que ni los desarrolladores que iniciaron el proyecto pueden manejar, escritos en C#, en Java, en Delphi, en Genexus, en C++, en Ruby, en Lisp, en Prolog, bueno, para regarla, con la tecnologia que gustes se puede...

Lo curioso, es que para hacerla... tambien... algo que todavia nos falta en esta rama del conocimiento, es un mecanismo para poder medir de forma objetiva los beneficios de un paradigma sobre otro.... es como con la medicina, hace años, nadie creia que lavarse las manos (o limpiar los utensilios médicos) ayudara para nada, de hecho, quien lo descubrio, fue ridiculizado, faltaba todavia la tecnica que permitiera demostra los beneficios... con la ingenieria de software pasa igual, sabemos que en general se requiere de orden y buena coordinacion, y que en general ciertas tecnicas paracen ayudar, pero estamos lejos de entender de forma concreta por que, y como, mucha gente dice hoy en dia "usa OOP" y tendras exito, otros dicen "usa programacion funcional" y tendras exito, otros mas dicen "no uses bases de datos relacionales, por que fracasaras", y sin embargo, cuando investigas a fondo, te das cuenta que muchas veces ni ellos mismos entienden lo que apoyan o lo que rechazan, simplemente estan acostumbrados a utilizarlo, y como les ha funcionado, creen que es ese es el factor de exito, tal ves alguno de ello se el Ignaz Semmelweis del software, pero todavia falta que aparezca el Luis Pasteur que lo demuestre...

Imagen de luxspes

La mayoria siempre tiene la razon... o no? ;-)

No digo lo contrario...De hecho en ese punto tienes mucha razón, pero lo que no entiendo es porqué está teniendo más "Boom" lenguajes cómo C# o Ruby y no Java...De hecho la llegada de gente a Ruby desde el 2002 se ha visto tremenda.

Si, definitivamente, la demostracion de que C# y Ruby son superiores, es el "Boom", por que digo, cualquiera sabe que la mayoria siempre tiene la razon no? Como cuando la mayoria creia que la tierra era plana... o que te daba gripa por que te habian hechado mal de ojo... o que no hacia falta limpiarse antes de iniciar una cirugía.. ;-)

Que algo sea popular, no quiere decir que que sea mejor, solo quiere decir una cosa: que es popular. Desafortunadamente, con los años vamos cayendo en esta falacia, y creyendo que por que algo se usa mucho, o le gusta a mucha gente, es mejor :'(

@WinDoctor, yeap, pero todos

@WinDoctor, yeap, pero todos esos ejemplos, de cambios en las bibliotecas, no en el lenguaje. Lo último que fue en Java 5 ( 30 sep 2004, hace 6 años ) incorporó: generics, annotations, varargs, enhanced for y .... no recuerdo que otro cambio, anterior a eso, fue Java 1.4 ( feb 2002 ) que introdujo, "assert" y pus básicamente eso.

Desde entonces, no ha habido cambios en el lenguaje, y con esto de la adquicisión de Oracle, estan con que si sale o no la v7.

En fin. Lo malo de los "otros" lenguajes, es que cada vez que le cambian algo, lo hacen practicamente incompatible con lo anterior.

RE: OpenJDK7

Pues tengo entendido que incluso hay librerías (que no son de imágenes) que incluso Maven te dice: "X library must be removed for production" o algo así (casi todas las com.sun.).
Recuerda que software libre es hacer software en el que puedas ver, modificar y redistribuir tanto el contenido, cómo la herramienta...De lo que hablas es de open source.

RE: Sabes lo que es el "survivor bias"?

Pues de hecho en la empresa que trabajo usamos Java. Y tienes razón, quizás por acá no hay mucha gente Java; pero, he visto las ofertas de trabajo de otras empresas fuera de mi localidad y lo que veo es más para PHP y .NET. Sin incluir que la mayoría de foros Java que he visitado (salvo los de Hibernate) tienen cosas muy básicas. Voy a ver eso de los Epiciclos, ya te diré que tal =). Y con REL, pues no me llama la atención bases de datos Relacionales, prefiero las bases de datos orientadas a objetos =).

RE: Para regarla (o hacerla), con la tecnologia que gustes

No digo qué se pueda o no con Java, sé que se puede. Pero (usando Play -qué es Java, pero no cumple con J2EE- y Ruby) llegando a J2EE, francamente no veo nada productivo; lo único regularmente productivo que he visto es Spring Roo.
De momento quiero conocer bien J2EE, porqué lo que le conozco es configura, configura y configura, y esto es algo que me ha quitado mucho tiempo para hacer las cosas. Así cómo también he visto que J2EE (con Wicket y Struts, que es lo que estoy usando) es muy poco flexible a cambios, o sea tienes que planear, si o si (y esto en la web es casi imposible). No sé quizás de momento me parezca así, pero ya veremos más delante.

RE: La mayoria siempre tiene la razon... o no? ;-)

No es cuestión de razón o no, y cuando en TI se ve la tendencia en algo tienes que de menos ponerle el ojo para que "no te agarren en curva". Yo se lo puse a C# y la verdad no hay mucha diferencia a Java en cuanto a sintáctica, cambia muy poco; sin embargo en 2 o 3 clases se usan de formas diferentes (ej. Thread de crossed-parameters/variables). Y es bueno ver la tendencia, porqué quizás hay algo que te pueda ayudar.

No sólo he visto Ruby, también he visto Python; y de verdad que veo muchas cosas que te ayudan, ves más herramientas y otras formas de pensar...Incluso aunque Ruby sea orientado a objetos (cómo en Java), Ruby tiene más enfoque declarativo (qué hacer y no cómo hacerlo)...En Python se tiene una filosofía "Sólo hay una forma de hacerlo...la más simple". Muchas veces veo otros lenguajes no por el hecho de aprender el lenguaje en sí, sino porqué hay metodologías/ideas que me gustaría usar y por ejemplo con Ruby me era simple usar ideas de Java, Perl, Python, etc...Pero en Java es difícil usar ideas de Ruby.

Te recomiendo leas esta entrada de unos tipos españoles que hablan sobre una analogía: Java es como cantar gregoriano en un monasterio...Ruby es como cantar Hip-Hop y te dejo este vídeo en el que hay otra analogía: Java es cómo Lego, Ruby es Play-Doh

Imagen de ezamudio

J2EE

wishmaster77, Estoy de acuerdo en todo lo que dices de J2EE, lo que no entiendo es por qué quieren seguir con esa spec en vez de moverse a JEE 6. J2EE era como Java 1.4 y sufría de XMLitis aguda terminal. En JEE 6 ya le bajaron mucho al XML y se usan muchas anotaciones (al final parece terminar siendo una cosa por otra, pero las anotaciones son menos molestas que el XML, aunque tienen el problema de que van en el código y por lo tanto para cambiar algo tienes que recompilar y subir actualizaciones de clases en vez de simplemente editar un archivo de texto). Pero no solamente cambiaron XML por anotaciones; también mejoraron algunas specs y las simplificaron, integraron muchas otras cosas como JPA que en J2EE no existe, web services (que entraron como desde JEE 5 porque de hecho en Java 6 ya son parte de la JSE), etc.

No había escuchado nunca esa definición de software libre (ver, modificar y redistribuir, sí, pero eso de "tanto el contenido como la herramienta")... en fin. Ahora resulta que j8583 y jAlarms no son proyectos de software libre a pesar de tener LGPL sólo porque están hechos en Java. No me quita el sueño ni el hambre.

RE: Antes de hablarrr

Perdón. Saludos!!

RE: J2EE

Bueno, no sabía que J2EE era diferente de EE en Java 6 (1.6). Sin embargo aún sigo viendo algún que otro XML. La única manera que he encontrado de "safarme" de eso es usando Spring Roo. Y por otra parte las @nnotations me parecen cómodas para proyectos chicos y poco complejos. Cuando tu proyecto es algo más complicado o en un proyecto con una DB "legacy" es donde tu código queda muy sucio y batallas en ver tus modelos (por ejemplo).

Aunque cómo dices, @nnotations ayudan mucho. Así cómo también JPA, lo único malo de JPA es que hay cosas de JPA que no funcionan en GAE (algo para mí crítico). Y pues con esas habilidades que hay que desarrollar en Java (de las que comentó WinDoctor) creo que es la razón por la que ahora se pide en mi región más .NET y PHP que Java. De entrada la DI, para muchos es difícil, seguido de la pleyade de frameworks que hay que utilizar o que combinar.

Creo que ya encontré la respuesta.

Con lo de software libre, mira el vídeo de la Free Software Foundation

Saludos

@ezamudio la confusión de codigo abierto - software libre es común (no lo digo por ti). Sobre el utilizar "solo herramientas que son software libre" es debido a que los entusiastas de dicha filosofía son digamos, un poco más "radicales". Te comparto el siguiente link.

@wishmaster77 de acuerdo a estudios realizados este año, desarrolladores java son de los más buscados por las empresa, dejo
link.
El estudio lo realizó addeco pero creo que de España, aún así no creo que sea tan diferente en Mexico. A todo esto... de que parte de México eres?

Por si no encuentras con quien compartir opinones sobre temas avanzados en Java te dejo el siguiente link

Imagen de Nopalin

Software libre != Codigo Abierto???? ahh!!!

Yo siempre habia creido que era lo mismo, es decir el mismo significado, pero en fin, como dice ezamudio no es algo que me quite el sueño.

Wishmaster, en realidad haz venido a crear una polémica tremenda y al mismo tiempo absurda. ¿Te vienes a quejar por que en la universidad "de tu localidad" se basan en libros viejos para dar clases? y además, que en internet no encuentras tópicos avanzados para aprender?

Para empezar, generalizas en todo el mundo por que asi sucede en tu localidad, esto es de risa jajaja.

En segundo, en contadas universidades te van a enseñar lo mas actual, para empezar por que el plan de estudios es algo que pasa por un proceso de validacion, no se hace de la noche a la mañana por lo tanto tarda en actualizar. Ademas no se que tanto conoces la vida de un profe, pero generalmente enseñar es su trabajo y lo usa para enseñarte lo que aprende en los libros viejos, no creo que quieran usar su tiempo libre navegando por internet haciendo programas con lo mas nuevo solo para enseñarselos a unos estudiantes que ni ponen atención la mayoria de las veces ni les interesa.

En tercero, y lo mas que mas me sorprendio fue: en los foros no hay temas actualizados. WTF??? quieres una pagina que diga... temas avanzandos de java para sus aplicaciones... (marca acme jajajaja). Generalmente uno cuando va aprendiendo, hasta la cosa mas logica se le dificulta, por eso la preguntas, pero una vez que dominas la mayoria de ellas, los temas avanzados van saliendo solitos y como ya eres buenillo, ya no necesitas preguntarlo en foros, lo intentas descubrir primero tu, despues le preguntas a otro amigo javero y al final si nada resulto preguntas en los foros, pero creeme, los foros es el ultimo recurso.

y por ultimo, los programadores cuando quieren hacer algo potente se pasan a .NET? por dioooooooosssss!! mas bien es: cuando los programadores quieren que programen por ellos se van a .NET. No necesito describirte un monton de cosas que la plataforma .NET ha tomado de la JVM y de otros lenguages, para eso ezamudio da explicaciones muy claras y contundentes, pero lo que si puedo decirte es que tu, con este comentario, haz demostrado que presisamente te estas "a.NETiando"

jaja sobras!

Imagen de luxspes

Estos temas se tienen que discutir, si no, no hay aprendizaje

Wishmaster, en realidad haz venido a crear una polémica tremenda y al mismo tiempo absurda. ¿Te vienes a quejar por que en la universidad "de tu localidad" se basan en libros viejos para dar clases? y además, que en internet no encuentras tópicos avanzados para aprender?

Polemica tremenda si, absurda... no estoy de acuerdo, si este tipo de temas no se hablan, como comunidad no hay forma de que surja la retroalimentacion que se requiere para que podamos entender mejor nuestro entorno. Tu mismo lo dices Nopalin: "y como ya eres buenillo, ya no necesitas preguntarlo en foros, lo intentas descubrir primero tu, despues le preguntas a otro amigo javero y al final si nada resulto preguntas en los foros, pero creeme, los foros es el ultimo recurso." y si asi pasa,pero es ese mismo fenomeno el que causa el aislamiento del conocimiento, cada quien trabaja por su lado, a su modo, y reinventa la rueda una y otra vez, por que nunca tiene tiempo de platicarle a los demas lo que ha descubierto.

Para empezar, generalizas en todo el mundo por que asi sucede en tu localidad, esto es de risa jajaja.

Ciertamente tiene su lado divertido que todos los humanos caigamos en ese tipo de errores, pero hay que tener cuidad en no ridiculizar a quien caiga en el (y mira que quien haya leido lo que yo escribo sabe que no me importa mucho herir susceptibilidades)

y por ultimo, los programadores cuando quieren hacer algo potente se pasan a .NET? por dioooooooosssss!! mas bien es: cuando los programadores quieren que programen por ellos se van a .NET.

Y aqui estas tu Nopalin, cayendo en el mismo error que wishmaster, generalisando rapido, solo por lo que en tu localidad has oido de .NET, o lo que superficialmente has usado, crees que es inferior a Java.

No necesito describirte un monton de cosas que la plataforma .NET ha tomado de la JVM y de otros lenguages, para eso ezamudio da explicaciones muy claras y contundentes, pero lo que si puedo decirte es que tu, con este comentario, haz demostrado que presisamente te estas "a.NETiando"

Y yo no necesito describirte un monton de cosas que Java le copio a otros lenguajes desde la version 1.0 (o las muchas funcionalidades como Generics o Annotations que incluyeron justo despues de que C# las incluyo... coincidencia?, si como no!).

Con respecto a lo de a.NETiarse, bueno, yo considero que es de lo mas saludable (y una de las razones por las por ejemplo los comentario de Zamudio son balanceados, el ya a jugado con .NET (y con muchas otras plataformas y lenguajes y conoce tanto sus puntos fuertes como sus puntos debiles), si no conoces como trabajan los otros lenguajes, acabaras durmiente en tus laureles, aisalado por que piensas que todos piensan como tu, y cuando te des cuenta, tu tecnologia favorita habra sido rebasada por otras, cuyos miembros si estuvieron atentos a lo que pasaba a su alrededor, y se adaptaron

Imagen de luxspes

Hay que seguir el camino de enmedio

Bueno, no sabía que J2EE era diferente de EE en Java 6 (1.6). Sin embargo aún sigo viendo algún que otro XML.

Hay que seguir el camino de enmedio, creer que es siempre es bueno usar XML es igual de malo que creer que siempre es malo. XML tiene su lugar, y cuando se le usa bien, puede reportar un gran beneficio, el problema es cuando se abusa de el.

De entrada la DI, para muchos es difícil, seguido de la pleyade de frameworks que hay que utilizar o que combinar.

Pues dominar .NET tampoco esta tan facil, tienes que dominar ADO.NET, LINQ, ASP.NET, ASP.NET MVC, Windows Forms, WPF, Silverlight, WCF, WWF, XNA, Sharepoint, etc, etc y por cierto, tambien hay frameworks de IoC para .NET, creo que que viene con la EnterpriseLibrary (otro conjunto de frameworks para .NET que dominar) se llama Unity.

Imagen de Nopalin

Pero este tipo de temas no...

luxspes:

Tal vez tengas razón, tal vez, por que si nos vamos a poner realistas nadie tiene la respuesta acertada para todo, por eso cada quien habla como le va en la feria.
En cierta forma comparto algo de lo que wishmaster77 dice al respecto de que los foros estan atascados de preguntas tontas, pero es presisamente por que los que saben las siguen respondiendo y los administradores no ponen reglas mas estrictas para la creación de nuevos temas. Yo creo que no se trata de darle granos de maiz a la gente, si no enseñarles a cultivar.

Ahora, no te creas que soy javero aferrado, yo he trabajado con C# .NET, he utilizado diferentes frameworks para este y tambien estoy de acuerdo que es fácil. Sin embargo, la única razón por la que mayoria de mis proyectos empresariales estan hechos con java es por la pura portabilidad (trabajo en linux e instalo en windows) y detesto que microsoft te quiera imponer que a fuerzas programes en su sistema operativo (y no, el proyecto mono no está tan maduro todavia, me pregunto que hara miguel de icaza cuando a microsoft se le ocurra cambiar drásticamente el modelo de trabajo de la CLR jeje, si de por si ya llevan un monton de años...).

Otra cosa que no me gusta de los programadores, y tal vez el motivo fuerte de mi post agresivo, es que no sean independientes a la hora de aprender.

Tambien, no se por que dices que el conocimiento se queda estancado o reinventando la rueda por que los programadores "buenos" no posteen en foros.. para nada. Basta con que pongas atención al internet y a los libros que hay para darte cuenta que es totalmente falso.

Por ultimo, lo de ridiculizar, como tu lo dices en verdad me vale un comino, por que no lo estoy haciendo con el fin de hacerlo sentir menos ni mucho menos de humillarlo (si lo quieren ver por ese lado, ps...), si no que lo hago para hacerle notar de una manera cruda que en realidad lo que piensa en este momento es mucho muy diferente a lo que en realidad sucede, ya que soy de los que opinan que un golpe da mejores resultados a las puras palabras para que un niño entienda no debe agarrarle dinero a su mama sin que ella se lo haya dado.

sobras!

Imagen de luxspes

Estos temas si ;-)

Otra cosa que no me gusta de los programadores, y tal vez el motivo fuerte de mi post agresivo, es que no sean independientes a la hora de aprender.

Estoy de acuerdo contigo, poner empeño en aprender por ti mismo es muy importante

Tambien, no se por que dices que el conocimiento se queda estancado o reinventando la rueda por que los programadores "buenos" no posteen en foros.. para nada. Basta con que pongas atención al internet y a los libros que hay para darte cuenta que es totalmente falso.

Bueno, hay que tener cuidado cuando se afirma que algo es totalmente falso, por que muchas veces no lo es ;-). Por otro lado, yo no dije "que los programadores "buenos" no posteen en foros", lo yo hice fue simplemente copiar y pegar lo que tu habias dicho, fuiste tu el que dijo que cuando ya eres buenillo, dejas a los a los foros como ultimo recurso. Yo solo derive la consecuencia logica de tu afirmacion, si los foros son el ultimo recurso, en muchos casos el conocimiento no llega a compartirse (solo lo hace, precisamente, cuando se llega al ultimo recurso).

Por ultimo, lo de ridiculizar, como tu lo dices en verdad me vale un comino, por que no lo estoy haciendo con el fin de hacerlo sentir menos ni mucho menos de humillarlo (si lo quieren ver por ese lado, ps...)

Oh, yo no creo que lo hagas con la intencion de hacerlo sentir menos, pero como ya lo he vivido de primera mano, luego lo que uno pone suena mas agresivo para los otros de lo que parece cuando uno lo escribe, lo se por que a mi me pasa de vez en cuando...

Imagen de luxspes

Cambia de foros, entra a: DWR, AribaWeb, GraniteDS, Maven...

Sin incluir que la mayoría de foros Java que he visitado (salvo los de Hibernate) tienen cosas muy básicas

Pues visita otros foros, los de JBoss Seam, o los de DWR, o GraniteDS, o los de AribaWeb, o de OpenLazlo o si te gusta lo deberas muy avanzado, entrale a crear plugins para Maven, o tambien, puedes ayudar en la evolucion de Scala o Clojure o unete a los foros de Eclipse o de Netbeans y aprende a crear plugins para los IDE que hagan mas facil el desarrollo para todos (ayuda a ponerle WYSWYG a Aptana, por ejemplo)... o contribuye, por ejemplo a integrar JBoss Teiid con Rel (mas avanzado que esto ultimo, veo dificil que encuentres .... o es que ya dominas todos estos temas?)

Y con REL, pues no me llama la atención bases de datos Relacionales, prefiero las bases de datos orientadas a objetos =).

Si, asi pasa con la mayoria, ni modo, es el producto de la mala publicidad de las bases de datos pseudo relacionales basadas en SQL (como Oracle, DB2, MsSqlServer, etc) que han pasado los ultimos años haciendole creer a todos que lo que ellas ofrecen es todo lo que una base de datos relacional puede ofrecer. Igual si tienes tiempo, hechale una leida por ejemplo al libro de Sql and Relational Theory, puede exponerte a toda una serie de experiencias desconocidas por muchos que se dicen expertos en bases de datos relacionales...

RE: Software libre != Codigo Abierto???? ahh!!!

A ver, creo que otros vienen a decir lo mismo que tú sin ofender o ser tan "estrictos" al respecto.

Segundo, yo jamás dije que "cuando quieren hacer algo potente"...si la gente quiere hacer algo potente en donde el rendimiento es crítico te puedo discutir (y de mano de muchos gurus, que no hace mencionar sus nombres) el porqué usar un lenguaje cómo C++...Pero no es lo que se discute.

Luego si lees mis comentarios digo que muchas empresas (de pequeñas a medianas) cambian su requerimiento de Java a .NET, por dos cosas (y ya lo había comentado yo) porqué es difícil encontrar gente que quiera desarrollar las habilidades Java (inserte aquí la pleyade de frameworks/utilerías Java necesarias); por lo cual tanto los egresados cómo los empresarios ven que es más difícil aprender Java que .NET, además que la gente es floja y por cosas tan superfluas cómo 'en Java no hay drag 'n drop para construir la UI out-of-box'...Y también dije: "Aunque habrá empresas grandes que no tengan que cambiar (como bancos)".

Continuando, nunca dije temas actualizados. Sino avanzados; y muchas veces uno no porqué no entienda sino porqué no sabe que hay más allá (que con esa intención hago entradas en los foros); no porqué no sepa bases, no porqué no entienda. Simplemente porqué no sé que más hay en Java.

Con lo de las universidades...¿entonces no se supone qué el sistema educativo en cualquier UA debe cambiar al menos cada 5 años?, además que en las UT el plan cambia cada 4 años (creo que perfectamente se puede enseñar Java 5 y Java 6...tampoco estoy diciendo que enseñen cosas más nuevas cómo WPF o JavaFX). Y precisamente cómo es trabajo de los profes enseñar, creo implícito en su trabajo está investigar y actualizarse de menos cada año, ¿qué viene qué se fue?.

Y no lo dice sólo mi localidad, puedes ver TIOBE, en donde antes Java iba de más a más, ahora ves esto: y lenguajes cómo C# los ves así: ; y para muestra los números un lenguaje que en 8 años ha alcanzado un 5%, mientras Java en el mismo lapso de tiempo ha ido teniendo bajas.

Con lo de qué .NET ha tomado cosas de otros lenguajes no te lo discuto. Pero de nuevo, no es el tema que se está tratando. Además que no me estoy "a.netiando", de hecho cómo he dicho vengo de Rails (Ruby) y Play (Java no EE); ambos me gustan. También programé en C# (hace cómo 1 año) y quedé convencido de no volver a utilizarlo a no ser que necesite hacer algo para Windows Mobile.

A cerca de lo de "aprender de forma individual", ¿dije qué no sé aprender de forma independiente?, no, dije que a veces gente cómo yo nos quedamos sin ver el horizonte, además no siempre es bueno aprender de forma independiente, hay un dicho que dice: "A veces importa mucho más la experiencia que el conocimiento acumulado."; y eso es lo que hago en los foros, buscar experiencias, tips, etc...Todo con el fin de mejorar en lo importante, la capacidad de resolver problemas.

RE: Hay que seguir el camino de enmedio

Pues a mi se me hizo sencillo usar .NET hasta donde llegué (WCM y WPF)...toqué un poco de ASP.NET y ADO.NET esto es sencillito...LINQ es fácil mientras uses MS SQL Server, cómo uses otro (bueno al menos a la version 3.5) es un problema. Y también hice proyectos buenos con .NET Compact Framework 2.0, 3.0 y 3.5...Por el simple hecho que en la MSDN vienen varios ejemplos muy buenos y muy bien explicados (al menos con C#). O bueno al menos esa fue mi experiencia en .NET; mientras que en Java al principio con Hibernate batallé para encontrar buenos ejemplos.

Imagen de luxspes

La apariencias engañan, si quieres viajar lejos viaja acompañado

Luego si lees mis comentarios digo que muchas empresas (de pequeñas a medianas) cambian su requerimiento de Java a .NET, por dos cosas (y ya lo había comentado yo) porqué es difícil encontrar gente que quiera desarrollar las habilidades Java (inserte aquí la pleyade de frameworks/utilerías Java necesarias); por lo cual tanto los egresados cómo los empresarios ven que es más difícil aprender Java que .NET, además que la gente es floja y por cosas tan superfluas cómo 'en Java no hay drag 'n drop para construir la UI out-of-box'...Y también dije: "Aunque habrá empresas grandes que no tengan que cambiar (como bancos)".

Pues, tambien es dificil encontrar gente que quiera desarrollar las habilidades de .NET, yo todavia no conozco a nadie que domine toda la pleyade de tecnologias .net necesarias (ADO.NET, LINQ, ASP.NET, ASP.NET MVC, Windows Forms, WPF, Silverlight, WCF, WWF, XNA, Sharepoint) tu si conoces a varios? a mi me toca entrevistar gente para darles trabajo en .NET y de cada 10 candidatos, con con suerte sale 1 bueno.

Y precisamente cómo es trabajo de los profes enseñar, creo implícito en su trabajo está investigar y actualizarse de menos cada año,

En esto coincido contigo, deberian pedirles que se actualizaran... pero en este momento, desfortunadametne la realidad es otra, a mi por ejemplo, me gustaria ser maestro y dedicarme a investigar, pero hasta donde se, no esta tan facil conseguir un trabajo de ese tipo. (Ademas de que esta la bronca que si te actualizas mas rapido que el plan de tu universidad, te puedes meter en lios politico/administrativos)

Con lo de qué .NET ha tomado cosas de otros lenguajes no te lo discuto

Todos han tomado de otros, Java tambien, solo que poca gente lo sabe.

Además que no me estoy "a.netiando", de hecho cómo he dicho vengo de Rails (Ruby) y Play (Java no EE); ambos me gustan.

Bueno, podriamos decir que te estas aRubyando entonces (a mi, por ejemplo, me gusta mas C#, F# o Scala e inclusive Java mas que Ruby). Pero que te ARubyes, o te a.NETees no es malo, al contrario, enriquece tu perspectiva: ARubyate,AHaskelleate, ASchemeate, APrologate, ARELeate, eso ampliara tus horizontes. La especializacion es para los insectos o los reclutadores ;-).

También programé en C# (hace cómo 1 año) y quedé convencido de no volver a utilizarlo a no ser que necesite hacer algo para Windows Mobile.

Pues que lastima, el entorno Windows Mobile es de los mas limitados, C# (y .NET en general) es bueno para hacer cosas mucho mas interesas y poderosas.

A cerca de lo de "aprender de forma individual", ¿dije qué no sé aprender de forma independiente?, no, dije que a veces gente cómo yo nos quedamos sin ver el horizonte, además no siempre es bueno aprender de forma independiente,

Totalmente de acuerdo, hay por ahi un dicho que dice: "Si quieres viajar rapido, viaja solo, si viajar lejos, viaja acompañado".

RE: Cambia de foros, entra a: DWR, AribaWeb, GraniteDS, Maven...

Gracias por la recomendación la tendré muy en cuenta...Igual no creo estar a nivel de crear plug-ins para las herramientas que dices, y de lejos conozco Scala (sé que es un lenguaje funcional, base JVM...es todo lo que sé). Seguido de que si me pongo a hacer plug-ins para Maven (por ejemplo) descuidaría mi trabajo.

Con lo que dices del camino de en medio, me ha llamado la atención. Quizás es que yo considere XML tan 'estercolero' por el hecho que para todo veo XML, agregando que (IMHO) el hacer las tags es un proceso poco productivo. Considero YML como mejor opción para configuración; aunque viniendo de Ruby es raro tener archivos de configuración para varias cosas (de ahí el "resentiemiento" que no es tal contra XML).

RE: Saludos

Bueno, pues soy de Chihuahua. Por acá lo que 'rules' en las entrevistas de trabajo son los PHP y los .NET. Hay pocos de Java y en la mayoría: "necesario inglés con Toefl, 6 años de experiencia mínima en: Struts, Eclipse Platform, Hibernate, jQuery, JBoss, Unix/Linux."

Las que menos piden con 4 años con X framework Java. O sea son pocos los puestos Java en realidad para un casi egresado de Ingeniería cómo yo (qué por la escuela soy Freelancer), por lo que esos empleos no son para alcanzables por gente como yo.

Y de hecho coderanch es de lo mejor que he encontrado...aunque igual muchas veces no veo temas de los que necesito =P.