FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Merece la pena java
Hola compis.
Lleva unos pocos días dándole vueltas al tema de programar en java, nooooo, de momento no voy a dejar delphi, solo que no se por que o que se yo, quizás es que últimamente lo veo por todas partes, el tema me ha interesado un poco, ! 3 mil millones de dispositivos usan java ! ¡ Leches, esto es el futuro ! Y entonces comienzo a investigar un poco .... visito la web de oracle/java, bajo el SDK, el NetBeans, me empiezo a enfadar, esto no funciona, se ve que no tengo ni idea, sigo, sigo, google, youtube, clubdelphi ... vaya, sección de java, leo, leo... Y ... como quien esta en la taberna y me siento generoso, saco una ronda para todos Pregunta al aire, esto del java vale para algo o es una cosa como el net.framework, a mi modesto entender, algo infumable e inprogramable, o al menos, los que nos hemos acostumbrado a programar casi cualquier cosa en delphi o c o basic o asm, que funciona "en cualquier pc a la primera con un único ejecutable", o esto solo vale para la web (pero dicen que vale para todo). No se, paso del tema o le dedico un montón de horas y comienzo "la migración" Saludos (Y si, estoy esperando respuestas, criticas, broncas ... Gracias ) PD: Si, he visitados foros de java y ya veo que este tampoco tienen mucho movimiento, pero he leído algo en este y algunos si sabéis java, que os he leido.
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo. Última edición por cesarsoftware fecha: 07-05-2013 a las 17:50:40. |
#3
|
||||
|
||||
Ja, ja, ja, el burro se llama java
En serio, ¿crees que es una mi**er**da esto del java?, a mi para empezar, que sea interpretado por un interpretador que yo no he instalado ya me da un poco de mal rollo, tampoco me gusta eso de las versiones cambiantes del jdk (me suena a net.framework y no me gusta, ya he hecho un proyecto entero en .net y no lo volvería a repetir), te tienes que llevar medio sistema con tu aplicación y luego todavía puede haber problemas de versiones. ¿Solo es puro marketing de oracle? ¿Hay alguna aplicación "seria" de escritorio escrita completamente en java? Veo que muchos programas comerciales de escritorio llevan embebido alguna versión de java y algunos solo funcionan con una versión de java concreta (según oracle "obsoleta"). Con lo gustoso que es llevar un ejecutable en un pen-driver, copiarlo a otro equipo y que funcione....querido delphi. ¿Es java el futuro?
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo. |
#4
|
||||
|
||||
Cita:
Respecto a lo de la JDK, es normal que te suene a .Net. No olvides que C# no es más que un burdo intento de Microsoft de robarle a Sun la cuota de mercado de Java. Sí en un 70% o más. Pero no de Oracle, sino de Sun. Oracle se deja llevar por la inercia, y muy mal, por cierto. Cita:
Bueno, casi olvido que hay una: Minecraft. No. |
#5
|
||||
|
||||
Respecto a algún programa respetable escrito en JAVA te puedo nombrar a Jdownload.
Futuro... Android es JAVA por lo que tienes mucho de futuro. Por otra parte, efectivamente .NET es la versión burda de JAVA pero con la diferencia que este último realmente es multiplataforma. Nada es más rápido que una aplicación programada nativamente y fuera de cualquier framework. Aprender JAVA te ayudara a entender lenguajes de programación de objetos. |
#6
|
||||
|
||||
Gracias Maxium.
¿Java permite algo de bajo nivel, como controlar los dispositivos, tipo puerto serie, sockets tcp/ip, etc? Ya he visto que tiene plugins Fx y 3D, así que de gráficos parece que controla algo. ¿Alguno de vosotros "cambiaria" delphi por java para una aplicación, digamos .... un programa de contabilidad o facturación con acceso a firebird? ¿Y en la industria? ¿Es verdad que casi cualquier cosa (un navegador tipo tom-tom, o una televisión, por ejemplo) están implementados en java, en vez de en C, por ejemplo? Cuantas dudas ¿ Tenéis tiempo o la mujer os llama para cenar?
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo. |
#7
|
||||
|
||||
Java, en general, es excelente. En especial desde la version 7. Es MUY rapido ahora - osea, como maquina virtual y en comparacion con otras maquinas de su rango, pero no para GUIs o apps intensivas numericas-.
"controlar los dispositivos, tipo puerto serie, sockets tcp/ip" es algo que se puede en casi todo. No para drivers de bajo nivel o que esten en el kernel. Un problema de mucha gente, que no ha trabajado en diversos lenguajes/entornos es que tienen una vision limitada de que significa "rapido" "desempeño" y cosas por el estilo. Una maquina virtual (VM) en muchas ocasiones hace codigo mas rapido y/o eficiente (rapido<>eficiente) que el que manualmente hace un programador promedio en un lenguaje como C/C++, porque tiene acceso a mas informacion sobre el entorno/tipos de datos/heuristica/patrones de acceso/etc y por ende, puede habilitar formas mas eficaces de operar. Si buscan "python/ruby/php/haskell/java/lua" faster than C/C++ veran que encontraran muchos ejemplos. Haskell es uno que particularmente vence a muchos programas en C/C++: http://paulspontifications.blogspot....er-than-c.html (Noten, que es posible hacer el codigo C MAS rapido. Pero eso requiere un programador MAS experto, mientras que una engine como esta NO). Un ejemplo radical es http://luajit.org/. El java VM es considerado *hoy* como una maquina muy eficiente. La de .NET no esta para nada mal, y honestamente, desde la version 4 .NET ha dejado de ser una "burda" imitacion a Java (y en algunos aspectos, mejor que Java 7). Esto se entiende en el momento que uno piensa como hacer un lenguaje de programacion. Y cuando se aprende que hace o no rapido ciertas cosas: https://speakerdeck.com/alex/why-pyt...cript-are-slow Hagan de cuenta que un VM/Runtime es como hacer un programa de facturacion: Automatiza procesos manuales que hace el usuario, en este caso, el usuario es el programador! Asi que, es mas probable que el programador "promedio" realmente escriba codigo terrible. Es algo que se ve todo el tiempo. Por ejemplo, una de las razones por las cuales los programas de contabilidad "se mantienen" en desempeño no es porque esten muy bien programado (cosa que muchos aqui atestiguamos) sino que el *engine de base de datos* "cubre" los problemas debido a que es un runtime/VM muy eficaz, que incluso en motores como sql server o postgres (y otros) hace analisis especializes que re-escriben las consultas en base a los planes de ejecucion. Si aceptamos que un motor de BD es rapido, tenemos que aceptar lo mismo de otras VM. Porque una BD: 1- No tiene manejo manual de memoria 2- No permite hacer nada a bajo nivel 3- Y maneja un tipo de programacion (declarativa) que *facilita* las optimizaciones programaticas... este punto tiene ventaja contra los lenguajes procedurales donde es mas facil embarrarla El grado de cada runtime/VM en cuanto a lo eficiente varia entre uno y otro, pero es una falsedad creer que porque tiene runtime, es lento. Recuerdo que en su epoca, Foxpro es lo mas rapido que habia. Rapido, si hablabamos de base de datos. Y en foxpro no se hacia nada a "bajo nivel" pero barria con todo. TODO, era increible. El problema de Java/.NET no es su VM en si, sino la GUI. En esa area son fatales. Es donde se nota la "lentitud". Son un bodrio. Es su punto debil. Tambien, y esa es la razon ppal porque la que, aunque reconozco las ventajas de java, no me gusta ni programaria en eso, es porque la cultura, idiosincracia, librerias, comunidad y forma de trabajar en si es muy "burocratica". Con .NET es igual. No me parecen que sean una eleccion buena para equipos de trabajo pequeños y/o individuos. Para estos, lenguajes como python, ruby, php, foxpro, delphi tienen la ventaja. No es tanto porque sean "rapidos" (me consta lo lento de ciertas apps hechas en delphi para contabilidad) sino mas bien que tiene un diseño que es mas acorde a la forma de trabajar de los que no somos una empresa grande. Osea, y esto es importante, la forma de "pensar" de un programador de Java conlleva a que terminen haciendo cosas "lentas". Mucha vuelta, mucho uso de XML y cosas que son lentisimas, mientras que uno aprende en otros lenguajes a hacer cosas mas simples y directas. La forma de pensar y de hacer las librerias tiene un efecto inmenso en el desempeño total de un sistema. Pero, por ejemplo, si uno coje .NET/Java y desecha la forma de trabajar burocratica y toma una ruta mas agil, con librerias acordes, la cosa cambia mucho. Un ejemplo en java es lo que hacen con http://clojure.org/. La gente que coje clojure es del mismo tipo de los que usan python/ruby: Equipos agiles, pequeños, startups. Gente que NO elige "java el lenguaje con sus vainas enterprise" pero que no les importa usar "java, el runtime muy eficiente" pero con una comunidad que es agil y un lenguaje acorde. Obviamente, hay cosas, como manejo de numeros y asuntos de bajo nivel donde C/Pascal tienen ventaja. Basicamente, no por su lenguaje, sino porque estan hechos para esas labores, y sus librerias trabajan en conjunto. UN ejemplo de contraste, con python -que es lento numericamente- es cuando se junta con http://www.numpy.org/ y de pronto, resulta tan o mas rapido que si esos calculos estuvieran hechos en C. Osea, el uso de estructuras de datos y algoritmos hace la gran diferencia, mas que los lenguajes. (Aunque al final, las VM estan hechas en C o similar, asi que....)
__________________
El malabarista. |
#8
|
||||
|
||||
mamcx,
Cita:
1- ¿Que quieres decir con "forma de trabajar burocratica y toma una ruta mas agil" en .NET? 2- He visto aplicaciones hechas en .NET para Desktop muy optimizadas nivel de GUI, ¿Podrías aclarar un poco lo relacionado a la GUI en .NET? 3- ¿Podrías darme tu opinión sobre Visual Basic 2010 y C# 2010 en Aplicaciones Desktop y Web y sus ventajas desventajas con respecto a Delphi?. Gracias de antemano Nelson. Última edición por nlsgarcia fecha: 08-05-2013 a las 00:12:25. |
#9
|
||||
|
||||
Cita:
Cada lenguaje/entorno promueve una cierta forma de trabajar y resolver las cosas. Por ejemplo, si alguien usa delphi y necesita manejar datos, quizas lo piense inmediatamente en terminos de TDataSource y TDataSets. Pero apuesto que pocos piensan en terminos de HashTable. En contraste, en python, todo es Listas y Diccionarios -que son una de las causas de que pueda ser lento-. En python, la idea de datasources y recordsets es practicamente inexistente. Un lenguaje OO te hace pensar en clases y subclases. Pero uno funcional, en funciones anidadas. Osea, el lenguaje moldea la forma de pensar de la gente, a un nivel profundo. Esto se expresa muy bien en http://steve-yegge.blogspot.com/2006...-of-nouns.html Ahora bien, esto tambien se da como cada cual aprende a hacer sus primeros programas. En java, es muy comun el uso de XML para configurar cosas. El crear clases que usan clases que se basan en clases con clases y mas clases, AD-INFINITUM http://www.quora.com/Java-programmin...from-real-code http://godsnotwheregodsnot.blogspot....va-coding.html Y luego todo la forma de como se hacen los proyectos. Cuando se comparan las librerias entre iOS y Android, hechas por la misma gente para hacer los mismo, es notable lo "verbosed" que son las hechas en Java (y eso que obj-c es para nada conciso). Luego esta el asunto de los IDEs y como operan, al igual que con .NET, uno no piensa: Voy a hacer un archivo unico para hacer esto simple. No, lo que se hace es un proyecto con un monton de cosas, referencias, configuraciones y archivos extras, osea, de entrada asumen proyectos complejos y grandes. En contraste, uno en python, por ejemplo, hace un archivo .py, hace su tarea, y se acabo. Hace poco rehice todo un proyecto hecho en .NET a python, y la cantidad de codigo y archivos que se redujo fue impresionante (al final, python fue como 20 archivos vs. casi 100 de .net). No toda esa reduccion es debido al lenguaje, sino a todo el "equipaje" de como se hacen las cosas en .NET. Es algo que tambien se vive con obj-c, donde los proyectos son masivos. Uno mira un repositorio open-source de algo y aunque sea un solo archivo donde esta el codigo importante, siempre vienen con unos 10 archivos extras hechos por el IDE. Luego, esta la forma de pensar. Es dificil de comunicarlo, pero te pongo un ejemplo. Imaginate que quieres hacer grafos, y hacer la siguiente tarea: En base a una lista de tablas, determinar de forma automatica como se hacen las relaciones de la forma mas eficiente posible, sin que el usuario haga los join manualmente. Osea, si hay Cliente, Factura, Detalle, y el usuario arrasta esas tablas, el programa solito sabe como hacer los joins entre los 3. Eso se hace con grafos. Asi que dale una buscada a como se hace eso en java (o .net). Luego mira el codigo, y como se hace todo ese cuento. Cuando me toco hacer eso, arrastre varios hiper-complejas librerias de .net. Super-enruedadas en ese entonces. Luego pense "a que en python es mas facil" y encontre esto: http://www.python.org/doc/essays/graphs/ Luego re-implemente eso en C#, puff!!! quedo como en 20-30 lineas de codigo. Ves? No fue el lenguaje, es la forma como se enfrentan las cosas. Cita:
Ya de eso se ha hablado bastante . La cosa, es que en mi opinion, no hay nada que supere al estilo VCL de delphi, con excepcion de Coccoa (osx). Hacer una GUI en .NET es entre facil (winforms) y limitado y lento y frustrante y dificil (WPF) enruedado y frustrante.
__________________
El malabarista. |
#10
|
||||
|
||||
Creo que el amigo mamcx come frio todos los días, ¡¡¡qué manera de escribir!!!
|
#11
|
||||
|
||||
Lo poco que he usado java (echándole un vistazo para aprender) me resultó leeeeeeento, pesado, aburrido, recargado, incómodo, insoportable, agobiante...
Aunque seguramente es una buena elección para... no sé, para algo debe servir bien |
#12
|
||||
|
||||
Totalmente de acuerdo con los compañeros.
Solo un apunte para el amigo CesarSoftware: Si quieres tutoriales no olvides pasarte por el foro de Java Hispano Un saludo |
#13
|
||||
|
||||
Cita:
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma. |
#14
|
||||
|
||||
Dentro de mi humilde opinion, java es multiplaraforma, aunque lazarus basado en pascal funciona tambien multiplataforma.
Lo que no he visto un sistema como delphi/lazarus para aplicaciones GUI que sean mas sencillas de hacer, con otros (contando visual basic) hay que tirar de widgets. Nose con que se programan las aplicaciones que se usan, desde procesadores dextexto, basescdexdatos,... pero desde luego cada lenguaje tiene su cometido como habeis dicho. Para mi aprender java como trampolin para android. Y si veo e defendeis mucho a python, quiere decir que tambien sirve para todo y es mas facil programar con ventanas?, no digo como delphi, pero algo mas sencillo que java?. Evidentemente este subforo es java pero esta dentro de de delphi, asi que el lenguaje a vender es delphi . Disculpadme por cel desvario, pero creo quecla pregunta inicial de este foro era, si merecia la pena aprender java y, en lineas generales habeis respondido que no con otras alternativas, lease haskel, ruby, python... |
#15
|
||||
|
||||
Pues yo que no veo lo de multiplataforma
Quiero decir, que el código fuente (en delphi, por ejemplo), se podría compilar en el compilador correspondiente a cada sistema, en vez de tener una VM que lo interprete, en cada sistema, y ya esta. En mi modesto entender, un lenguaje/compilador debe servir para todo, quiero decir, no me sirve un lenguaje que, por ejemplo, no disponga de acceso al sistema gráfico de forma nativa, ya, la culpa la tienen los sistemas, pero para eso están los compiladores o VM. Y volviendo a los lenguajes, os acordáis de Basic, GW-Basic, etc, con (creo recordar) 70 palabras clave hacías de todo, en CPM en DOS, en OS/2, etc. No te hacia falta gigas de ram ni de disco y en aquella época también estaban pascal, c y cobol, y cada uno tenia su sentido, no hacían falta clases ni objetos ni herencias, eran claros y concisos, todo se hacia con funciones y procedimientos. ¿Que es un objeto? Un conjunto de funciones, con sus variables, visto de otra forma pero al fin y a la postre, funciones y variables. No digo que tiempo pasados fueran mejores, pero recuerdo que cuando comprabas un lenguaje/compilador te daban el manual de usuario EN PAPEL con todas las funciones descritas y con ejemplos. Hoy en día, incluyendo a Delphi, encontrar que cosas sabe hacer tu nuevo compilador, es, cuando menos, tedioso. Creo que se están/nos están complicando la vida, no digo que no haya que avanzar, sino, como podríamos controlar ahora, por ejemplo una cámara web o internet, lógicamente con funciones o APIs disponibles POR EL SISTEMA o DRIVER y problema resuelto. Después de lo leido y escrito (buen intento mamcx), ¿porque un lenguaje te tiene que hacer cambiar la manera de pensar? Que pasa, que los que desarrollan java son mas listos que nosotros, seguramente no, pero su empresa (en la que trabajan) parece ser que si. En mi experiencia de programador (y ya van para unos ... digamos 30 años) (se ve que tengo mas, jejeje) e desarrollado e implementado infinidad de programas, algunos siguen funcionando en clientes desde el año 1990 (si hace ya 23 años, en el siglo pasado) escritos en CA-Clipper o Basic y digo siguen porque por ejemplo tengo dos mesas de medidas por láser (para tablones de madera) escritas en basic y siguen en la fabrica de muebles trabajando todos los días o una facturación escrita en CA-Clipper que el usuario no quiere cambiar porque le va genial y varios ejemplos mas. ¡Y no, no era programación orientada a objetos ni nada parecido! Entonces ¿Porque cambiar? ¿Porque aprender otro lenguaje? ¡Por que me gusta lo que hago y me considero un eterno aprendiz! De hay el intento de aprender java y este hilo. No entiendo, no entiendo porque un lenguaje es, cada vez mas complicado o incluso menos útil. ¿A que esto no le pasa a un albañil o fontanero? Quiero decir que claro que todas las profesiones tienen que aprender "lo nuevo", pero "lo nuevo" no tiene que ser radicalmente distinto a "lo actual". Da la impresión que para aprender java, tienes que olvidar delphi, no se si me explico bien. Que la informática es un entorno "nuevo" y por tanto "cambiante", Si, de acuerdo, eso nos dicen, pero nuevo, nuevo, tampoco, porque es una industria que ya lleva mas de 50 años en el mercado, suficiente para estar bien consolidada, pero, me da la sensación, que la industria (la mala) se aprovecha de nosotros para sacarnos el dinero con cursos, etc, o al menos es la conclusión que saco yo. Buff, que jart'a de escribir.
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo. |
#16
|
||||
|
||||
Cita:
La semana pasada me encontré con uno de mis primeros clientes al que le hice la gestión de su negocio en un lenguaje del que nadie aquí habrá oido nunca nombrar (boriar), fue en 1987 y sigue funcionando todavía con ese programa, al igual que otros clientes de esa época, no quieren cambiar porque, simplemente, les funciona bien y hacen todo lo que necesitan. Jamás tienen ningún problema y no tengo que ir a arreglarles nada, ni tampoco a cobrarles |
#17
|
||||
|
||||
Cita:
PD: born 1968, first learn 1982, first job 1985 ... today.
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo. |
#18
|
||||
|
||||
Hola.
Seguramente todos o casi todos (los mayores) tenemos clientes con programas muy antiguos sin ningún tipo de problema y que no quieren cambiar. Pero yo siempre digo lo mismo, no quieren cambiar porque seguramente no conocerán (o no querrán conocer) las ventajas de poder enviar correos electrónicos de los documentos y listados, de poder generar pdfs, usar bases de datos más robustas, y en definitiva aprovechar todas las posibilidades que nos ofrecen los nuevos lenguajes de programación. Otra cosa es el ejemplo del programita que hace una función muy específica y no se requiere nada más pero no creo que sea el caso de un programa de facturación o contabilidad que es en lo que nos movemos la mayoría.
__________________
Be water my friend. |
#19
|
||||
|
||||
Cita:
Cita:
|
#20
|
||||
|
||||
No, no me hecho para atras, bueno si, ya he desintalado netbeans y el jdk, bueno, quiero decir.
Si, estoy confuso, queria aprender java y tengo excusa, te cuento: Hace unos meses coincidi con un ingeniero portugues en una instalacion de una linea de montaje de amoriguadores, el se encargaba de 4 robots (colocar amoriguadores, sacarlos, soldarlos y prensarlos) y yo de obtener los datos de las celulas de carga, extension y compresion, graficarlos y decirle a uno de los robots que tenia que hacer con la pieza dependiendo de si era buena o mala y por que causa, bueno que me lio, el chico me hablaba de java, mucho, y me decia que los robots se podian/solian programar en java, y me enseño un juego hecho en java sobre robots "aprendices" y me dijo (ahi me toco la fibra), que eran un buen metodo para que mi hija de 7 años aprendiera a programar robots. Nota: Sus robots no los programo en java, pero parte de su aplicacion (extensa) creo que si. En esas circustancias, que quires, me puse como loco a querer aprender java, no me heche para atras, todo lo contrario, afronte que estaba dispuesto a dar un gran paso adelante...¡un viaje al futuro! ¡Usaria el nuevo estadard! ¡No me quedaria atras! Y es entonces, cuando despues de mucho mirar por mi cuenta, y entender que, me supondria un esfuerzo mayor del esperado (todos hemos aprendido nuevo leguajes o sistema sobre la marcha, eso no nos asusta ¿verdar?), y ver que lo que yo veo de java no es lo mismo que veia mi colega y compañero en ese momento, decido consultar con vosotros, hubiera preferido hacerlo tomandonos unas , pero de momento, es en el ciberespacio, por eso la claridad del titulo Queridos colegas, ¿Merece la pena java?
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Delphi XE3 Starter, ¿vale la pena? | to_to | Delphi para la web | 4 | 09-01-2013 07:13:14 |
Vale la pena MS-SERVER? | SSoft | Firebird e Interbase | 21 | 06-02-2008 16:49:29 |
Pena de muerte para los que tengan móvil (celular) | Casimiro Notevi | La Taberna | 2 | 17-06-2007 12:57:13 |
A veces MS da pena... | marceloalegre | Noticias | 9 | 03-02-2006 21:58:53 |
|