Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > JAVA
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-05-2013
Avatar de cesarsoftware
cesarsoftware cesarsoftware is offline
Miembro
 
Registrado: nov 2006
Posts: 241
Poder: 18
cesarsoftware Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 07-05-2013
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.918
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
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.
Responder Con Cita
  #3  
Antiguo 08-05-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
mamcx,

Cita:
...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...

...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"...

...desde la version 4 .NET ha dejado de ser una "burda" imitacion a Java (y en algunos aspectos, mejor que Java 7)...
Pregunto:

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.
Responder Con Cita
  #4  
Antiguo 08-05-2013
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.918
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por nlsgarcia Ver Mensaje
1- ¿Que quieres decir con "forma de trabajar burocratica y toma una ruta mas agil" en .NET?
Digamos que todo empieza como dice el dicho: Cuando todo lo que tienes es un martillo, todo parecera un clavo.

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:
Empezado por nlsgarcia Ver Mensaje
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?
EL problema de fondo, era que Winforms no tenias soporte de hardware para la tarjeta grafica (todo el render es por software). Con lo nuevo si hay soporte de hardware, pero requiere direct-x, asi que los equipos viejos no pueden. Java es igual, al usar widgets no nativos no hay aceleracion y todo es lento. Si siquiera usara open-gl pero nada (luego por ahi se inventaron unos widgets que enlazan a lo nativo y sale mejor).

Cita:
Empezado por nlsgarcia Ver Mensaje
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?.
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.
Responder Con Cita
  #5  
Antiguo 08-05-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
mamcx,

Gracias por tu detallada respuesta

Seria valiosa tu opinión sobre Visual Basic 2010 y C# 2010 en Aplicaciones Desktop y Web dada tu experiencia con la plataforma .NET

Nelson.


Última edición por nlsgarcia fecha: 08-05-2013 a las 02:32:19.
Responder Con Cita
  #6  
Antiguo 08-05-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.099
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por cesarsoftware Ver Mensaje
¿ Tenéis tiempo o la mujer os llama para cenar?
Creo que el amigo mamcx come frio todos los días, ¡¡¡qué manera de escribir!!!
Responder Con Cita
  #7  
Antiguo 08-05-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.099
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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
Responder Con Cita
  #8  
Antiguo 08-05-2013
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.235
Poder: 20
ElKurgan Va camino a la fama
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
Responder Con Cita
  #9  
Antiguo 08-05-2013
Avatar de Julián
Julián Julián is offline
Merodeador
 
Registrado: may 2003
Ubicación: en mi casa
Posts: 2.020
Poder: 10
Julián Va por buen camino
http://local.joelonsoftware.com/wiki..._Java-escuelas
__________________
"la única iglesia que ilumina es la que arde"
Anonimo
Responder Con Cita
  #10  
Antiguo 08-05-2013
Avatar de cesarsoftware
cesarsoftware cesarsoftware is offline
Miembro
 
Registrado: nov 2006
Posts: 241
Poder: 18
cesarsoftware Va por buen camino
Jodooooo......

Entre la lectura de mamcx y el articulo de julian, creo que me ha quedado claro que mi primera impresión era correcta.

Ahora voy a trabajar un poco (en delphi) y luego sigo.

Gracias a todos, este tipo de opiniones era lo que buscaba.
__________________
Disfruta de la vida ahora, vas a estar muerto mucho tiempo.
Responder Con Cita
  #11  
Antiguo 08-05-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.099
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¡Qué bueno!
Responder Con Cita
  #12  
Antiguo 08-05-2013
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
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
Al menos, el modelo de objetos es mejor que el de C++:
  • Todos los objetos se referencian por punteros (en C++ hay "objetos automáticos" ).
  • [Si no recuerdo mal] No tiene herencia múltiple.
  • Los constructores de conversión no hacen cosas raras cuando sobrecargas operadores, porque no puedes sobrecargar estos fuera de una clase. Es decir, que el compilador nunca se encuentra con la disyuntiva de adivinar qué operador usar (como a veces ocurre con C++), sino que le basta con ver cuál es la clase de la izquierda y cuál la de la derecha del operador para saber qué hacer (De hecho esta es la principal razón por la que decidí no volver a usar C++).
No es una lista muy larga, pero ahora no recuerdo más. Yo también he usado Java muy poquito, y sólo por ver cómo es, igual que tú.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #13  
Antiguo 10-05-2013
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 20
rretamar Va camino a la famarretamar Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
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
Cierren el thread. Casimiro dijo en pocas palabras lo que muchos pensamos (y vemos).

__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma.
Responder Con Cita
  #14  
Antiguo 10-05-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Club Delphi,

Cita:
¿Por qué necesito Java?

Existe un gran número de aplicaciones y sitios Web que no funcionan a menos que Java esté instalado, y muchas más que se crean a diario. Java es rápido, seguro y fiable. De portátiles a centros de datos, de consolas de juegos a superequipos científicos, de teléfonos móviles a Internet, Java está en todas partes.

Tomado de: http://www.java.com/es/download/faq/whatis_java.xml
La importancia de Java se puede sintetizar en los siguientes puntos:

1- Conocimiento de un lenguaje de programación multiplataforma puramente orientado a objetos.

2- Interés económico motivado por fuentes de trabajo o oportunidades de negocio.

3- Su extensa utilización a nivel de aplicaciones Desktop, Web, Móviles y en diversos Dispositivos Electrónicos.

4- Amplia aceptación en el mundo académico y extensa bibliografía.

5- Actualización del lenguaje y mejoras periódicas a la Máquina Virtual (VM).

Todos los puntos anteriores son válidos, sin embargo esto no implica que el lenguaje sea fácil de aprender y/o implementar en comparación a otros lenguajes o que sea la mejor alternativa de programación actualmente, simplemente indica hechos puntuales que lo distinguen y que en su momento pueden ser factores de decisión en relación a su inclusión o no en determinados proyectos a nivel personal, académico o empresarial.

Otro punto importante es el indicador TIOBE, que aunque solo mide la popularidad de un lenguaje este indica la amplia aceptación de Java a nivel mundial.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 10-05-2013 a las 23:42:42.
Responder Con Cita
  #15  
Antiguo 11-05-2013
blackx5n blackx5n is offline
Miembro
 
Registrado: feb 2008
Posts: 51
Poder: 17
blackx5n Va por buen camino
Merece la pena java

Cita:
Empezado por nlsgarcia Ver Mensaje
Club Delphi,

4- Amplia aceptación en el mundo académico y extensa bibliografía.
Yo tengo algunas dudas ojala me ayudan aclararlas

1- ¿Porque java es ampliamente aceptado en el mundo academico?

2- ¿Porque de aumento de las java escuelas?

3- ¿El mercado laboral exige profesionistas que sepan java si o si?

4- ¿Cuantas paginas web conocen ustedes que verdaderamente usen applets, son muchas, son pocas que opinan?

5- ¿Java es verdaderamente mas seguro para hacer aplicaciones que utilizar otros lenguajes de programacion?
Siempre he escuchado que java es muy seguro debido a que no usan punteros y asi evita errores de memoria y que la maquina virtual hace comprobaciones para determinar la procedencia de las clases y asi evitar posibles daños.
¿Que opinan?

6- ¿Hace poco en portales de noticias se hablo de que el plugin de java en el navegador era vulnerable se enteraron de la noticia?

7- ¿Creen que estos portales de noticias exageran, y le dan mala fama al lenguaje o esta justificado?

8- ¿En el caso de java con los applets, y estos errores de seguridad en el navegador, quien es el verdadero responsable, el lenguaje en si, la empresa que tiene el control del lenguaje, los programadores, los usuarios finales o todos somos responsables?


Responder Con Cita
  #16  
Antiguo 11-05-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por blackx5n Ver Mensaje
[...] o todos somos responsables?
¿Los responsables son los que pusieron ahí las escaleras o los que se paran sobre ellas?

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 17:27:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi