Esto es una batalla que viene desde hace mucho tiempo. Lenguajes "lindos, interesantes, flexibles, etc" versus el dia a dia de sistemas. Por un lado Java (.net es una copia de java asi que...lo que diga es simil..) copio muchas cosas de smalltalk, "el lenguaje de programacion orientado a objetos". El problema de smalltalk y porque no triunfo era la epoca en la que se desarrollo los equipos del momento y la curva de aprendizaje. Smalltalk sin querer armar un thread sobre el tema es muy complicado sobre todo para los que venimos de "otros tipos de objetos". Para mi todo esto es una simple evolucion como se dice los sistemas orientados a objetos estan desde hace mucho entre nosotros pero sin embargo se pusieron de moda en la ultima decada. Para ponerse de moda tuvieron mucho que ver lenguajes digamos... tristes... ej..
Visual Basic ...sep aunque duela .. el programar "con objetos" y no orientado a objetos que ofrece visual basic permitio que las personas (sin animos de ofender...pero bue.. la verdad no ofende) que no querian aprender un lenguaje nuevo utilicen algo de objetos...(Los que querian aprender aprendieron Delphi). Java... sin dudas java hizo lo suyo permitio simplificar mucho la programacion de C++ y aceptemoslo C++ es otro lenguaje con gran curva de aprendizaje. Ademas otra vez sin animos de ofender permitio a mucha gente que con dificultad podrian si quiera dominar el complejo mundo de C++ aprender objetos y programar feliz sin ocuparse de muchas cosas. La publicidad, el fanatismo, y una gran comunidad hicieron el resto. Java tiene muchos frameworks que permiten facilitar el desarrollo del dia a dia..Sin embargo no todo es feliz en java. Un gran problema que la gente java se olvida y a mi entender porque justamente no tocaron otros lenguajes que Java. Es la performance los requisitos no funcionales de los sistemas, muchas veces se habla de que la memoria es barata.. de que se pide mas hardware y listo. Java es un monstruo te consume toda la maquina para hacer algo que en otros lenguajes necesitaria muy pocos recursos. Java es un hibrido (al igual que C++) y a los puristas no les gusta. En fin java es Java. Un tema controvertido tambien es que la gente que le gusta java cree que CUALQUIER problema se resuelve con java. En resumen de porque java es tan requerido es por como decian otros compañeros los requerimientos(pero solo algunos) de personal, es medianamente facil conseguir gente, flexibilidad, java no es tampoco el lenguaje mas inflexible del mundo permite hacer cosas interesantes (tiene reflection por ej), productos, java tiene una gama de frameworks y productos interesantisimos desde buenos hasta muy malos... Mi consejo, aprende cualquiera de los dos C# me gusto mas personalmente. Pero Java tiene muchas cosas interesantes. Otro consejo domina C++ te va a permitir pensar mejor en Java o C# muchas veces me cruce con gente que no programo en C++ y las locuras que intentaron hacer en java en C++ jamas se les hubiera ocurrido con lo cual yo veo a C++ como una guia...Ultimo consejo aprende smalltalk ahi vas a conocer la BELLEZA de la programacion orientada a objetos. Ademas que si esto evoluciona como creo en un futuro van a existir mas lenguajes que incorporen conceptos de smalltalk (ej ruby). Pensa hace 10 años el que sabia patrones de diseño era genio de programacion hoy son norma comun... y la mayoria los conoce. POO tambien es lenguaje comun para muchos (lamentablemente conocerlos y dominarlos son conceptos distintos no?...). Saludos Leonardo El día 30 de junio de 2008 15:00, Pablo Suez <[EMAIL PROTECTED]> escribió: > Si mal no lei antes, dijeron que Java es un lenguaje que sirve para > aprender (meterse en el tema) y que se le rescataba sólo lo didáctico. ¿Por > qué entonces es tan requerido Java en la industria local si es tan cuadrado? > ¿La industria no debería orientarse a algo más flexible? > Por lo que se comentó recién, C# es más didáctico que Java por lo que me > voy a iniciar en C#. > ¿C# también cae en la categorización de "más cuadrado que adoquín"? > > - Pablo > > El día 30/06/08, Carlos Fontela <[EMAIL PROTECTED]> escribió: > >> >> >> > Me avisaron varias personas por mail privado que en esta lista no se >> > puede hablar de Java. ¿Qué onda? >> > O sea, si hay posturas distintas, me parece que deberian compartirse >> > para enriquecer la lista. >> >> No creo que no se pueda hablar de Java. De hecho, hay mucha gente >> razonable >> en esta lista. Lo que sí tengo en claro es que a la inmensa mayoría de la >> lista no les gusta mucho Java ;-) >> >> La pregunta original era entre Java y C#, con la aclaración de que no >> quería >> una salida laboral, sino aprender. >> >> Así que vamos por partes: >> >> 1) Entre Java y C#, para aprender, prefiero C#. Las diferencias >> sintácticas >> y semánticas son pocas, pero C# tiene abstraídos algunos conceptos que - a >> mi jucio - lo hacen mejor para aprender. >> >> 2) Se ha dicho mucho, en la lista, que Java es un subconjunto de C++, tal >> vez con mayores bibliotecas (esto último lo entendí yo, implícitamente). >> Esto de acuerdo casi totalmente. Ahora bien, creo que Java (y C# también), >> lo que hacen en gran medida, es abstraer más que C++: por ejemplo, el tema >> de referencias, de recolección de basura, etc. C#, al introducir conceptos >> como propiedades y eventos, abstrae en estas áreas más que Java. Y la >> abstracción no la veo necesariamente como un problema. Yo enseño con Java >> / >> C#, por dos razones: >> - los alumnos que llegan a Algoritmos III ya han trabajado con C++ >> - Java / C# me permiten explicar conceptos más elaborados sin entrar en >> tanto nivel de detalle (una ventaja de la abstracción), y Algoritmos III >> tiene como objetivo enseñar POO, no un lenguaje Cuál es mejor o peor, >> entonces, es un tema de qué quiero lograr. Me queda totalmente claro que >> C++ >> me da mayores posibilidades, aunque con dos contras: más trabajo (no le >> rehuyo al trabajo, pero a veces la comodidad es una ventaja), y mayor >> propensión a errores (que, obviamente, los programadores más >> experimentados, >> como los de esta lista, no cometen ;-) ). >> Coincido con un artículo que leí hace un tiempo en la web: >> http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html >> En el que postula que es mejor, para formar buenos programadores, enseñar >> lenguajes más complejos, como C++. Léanlo, que no tiene desperdicio. >> Incluso, habla bien de la FIUBA, que enseña Java / C# después de que los >> alumnos ya se toparon con problemas complejos de C y C++. >> Pero eso no quita que, para enseñar conceptos más avanzados, nos venga >> mejor >> un lenguaje que nos abstraiga más. Esa es la razón por la que uso Java / >> C#. >> >> 4) Se recomendaron también lenguajes interpretados y/o de tipeo dinámico, >> como Python, Ruby, ¿Smalltalk?. >> Me parece una excelente opción para aprender objetos de una manera >> sencilla, >> y que te va a permitir aprender cosas nuevas. El único peligro que veo es >> que termines creyendo que POO va solamente con lenguajes interpretados y/o >> de tipeo dinámico, como he oído decir a mucha gente. Si te cuidás de esto, >> te los recomiendo. >> Si alguien pregunta por qué no los uso para enseñar POO, la razón es que, >> para alumnos que ya vienen de lenguajes compilados y con tipos estáticos, >> me >> resulta más sencillo enseñar con lenguajes parecidos, lo que, nuevamente, >> me >> facilita centrarme en los conceptos y abstraerme de los detalles. >> >> 3) Se aprovechó para recomendar lenguajes de otros paradigmas (funcional, >> sobre todo). >> Personalmente, trabajé mucho con lenguajes funcionales (y lógicos, como >> Prolog) hace un par de décadas. Creo que son buenos para abrir la cabeza. >> Sin embargo, me pasa lo mismo que Leandro: me cuesta seguir la lógica >> ("sintaxis fea" me parece un poco subjetivo). Será un problema de >> formación, >> supongo... >> De nuevo, si querés aprender cosas nuevas, me parece una buena opción. >> >> Dijo Leandro Lucarella: >> > Ya hemos tenido alguna discusión que pasó tangencialmente por el tema >> > con Carlos Fontela =) >> Espero esta vez haber sido más mesurado y no llegar a tanto... >> >> Saludos, >> >> Carlos Fontela >> (profesor de Algoritmos III) >> (docente de POO desde 1994, antes de la existencia de Java) >> (usuario de POO desde 1990, 10 años después del surgimiento de Smalltalk) >> >> >> >> >> _______________________________________________ >> Lista de correo Programacion. >> [email protected] >> http://listas.fi.uba.ar/mailman/listinfo/programacion >> > > > _______________________________________________ > Lista de correo Programacion. > [email protected] > http://listas.fi.uba.ar/mailman/listinfo/programacion > >
_______________________________________________ Lista de correo Programacion. [email protected] http://listas.fi.uba.ar/mailman/listinfo/programacion
