Duda con Java

Iniciado por Feedeex, 6 Marzo 2011, 00:07 AM

0 Miembros y 3 Visitantes están viendo este tema.

Feedeex

Bueno, no es algo que amerite hacer un post creo yo pero no se como ubicarlo o a quién preguntarle.
Yo antes aprendía sobre C++, iba bien y todo pero me dediqué más a fondo a lo que es PHP. Ahora quiero comenzar y leí que Java es un buen lenguaje aunque no muy difamado. Y que además, se corrigieron varios errores de C++.
Estuve leyendo manuales de Java (nada a fondo) y ví que siempre habla de programarse "en web" o algo así, como que siempre mezcla el tema "web". Entonces, yo lo que quiero es desarrollar programas como C++, pero esto de web me confunde demasiado. Al grano:

- ¿Java es más orientado a web o es para programas de ordenador?.

ACLARACIÓN: Se la diferencia entre java y javascript, y estuve leyendo de java.

Gracias por su tiempo.

Akai

#1
Cita de: Feedeex en  6 Marzo 2011, 00:07 AMleí que Java es un buen lenguaje aunque no muy difamado.

Eso no se entiende, difamado es precisamente perjudicado:

difamar: Desacreditar a una persona publicando cosas contra su buena fama.

Por otro lado

Cita de: Feedeex en  6 Marzo 2011, 00:07 AM
Y que además, se corrigieron varios errores de C++

Errores de C++, ¿perdona?
Si pretendes catalogar el manejo manual de memoria de C++ como un error, yo digo que un lenguaje que corre sobre una máquina virtual y que necesita un recolector de basura porque no tengo ese manejo directo de memoria si es un error.

Y NO lo estoy diciendo. Estoy exagerando.

No pretendo abrir un flame con eso, pero explica eso.

Cita de: Feedeex en  6 Marzo 2011, 00:07 AM
- ¿Java es más orientado a web o es para programas de ordenador?.

Java tiene "mil" frameworks,puedes hacer aplicaciones que no tengan interfaz gráfico con java, aplicaciones que lo tengan, aplicaciones para web, aplicaciones para android... mil cosas, dependiendo de que herramientas proporcionadas por el estándar del lenguaje y por otros desarrolladores uses. Es como decir si C++ es para hacer videojuegos o aplicaciones CLI (interfaz de consola). Obviamente será para lo que tu encamines tu programa y las herramientas adicionales que uses en su desarrollo.


Feedeex

Con lo de difamado quise decir de "tanto conocimiento sus características".
Respecto a los errores de C++, no se que tanto tiene de verdad, yo leí manuales en los que hablaba sobre más agilización respecto a ciertas formas de trabajar que tiene C++ (lo de manejo manual de memoria, por ejemplo).
Y bueno lo de orientado a web ya me quedó claro

Valkyr

Lo cierto y verdad es que Java corrige errores que se cometieron en C++ (habrá quien los considere errores más o menos graves) y también cambió cosas que en C++ estaban mucho mejor. A mi parecer Java tiene muchas cosas buenas, pero C++ también las tiene por el hecho de ser un lenguaje híbrido (entre imperativo y orientado a objetos).

Por otro lado, eso de "tanto conocimiento de sus caracteristicas"... Java hoy en día es un lenguaje muy conocido y muy muy usado (no tanto como C++, entre otras cosas, por las que menciona Akai).

Y en cuanto a lo de Web, java es un lenguaje orientado a objetos, se le puede dar uso en Web y en un millón de "plataformas" más.

Espero te haya servido de algo esta poca información, saludos.

Akai

#4
Cita de: Valkyr en  8 Marzo 2011, 01:54 AM
Lo cierto y verdad es que Java corrige errores que se cometieron en C++ (habrá quien los considere errores más o menos graves) y también cambió cosas que en C++ estaban mucho mejor.

Pero qué errores? WTF? !!

A qué consideras tu un "error cometido en C++"?

Y pregunto yo, qué categoría tienes para considerar que "sea" un error?
En qué momento una característica de un lenguaje A y que decide eliminarse en B se considera su existencia en A como error? Que alguien me explique eso, no lo entiendo.


Debci

El problema es que se entiende por error algo de mas dificil aprendizaje, que se tenga mas control (y por consecuente) mas errores de programación al crear un APP, no quiere decir que sean fallos.

Con C++ se pueden hacer cosas que dificilmente se hace con Java, y te lo dice un amante de Java.

Saludos

Valkyr

Con errores me refiero a una forma no muy...limpia (por decirlo de alguna forma) de reservar espacio en memoria para objetos, o los campos de los objetos que contenga contenido basura si no se han inicializado de la forma correcta, además de fallos cometidos por el programador (por supuesto que son el 99,9%) y que el compilador no informa, hasta que llegas en tiempo de ejecución y...zas. No trato de decir que Java sea el lenguaje Dios del Universo, simplemente expongo algo que opino por lo que yo mismo he visto.

Por otro lado yo no estoy criticando C ni C++ (además es un lenguaje que me encanta por el hecho de ser tan potente). El nivel que tengo para decir estas tonterias (porque al fin y al cabo, lo son) es el de un estudiante de informática que ha estudiado asignaturas de programación orientada a objetos y ha visto algunas diferencias básicas entre lenguajes de este tipo. Se de sobra que C o C++ son lenguajes potentisimos (para eso se creo, para abarcar todos los campos posibles) y se que muchas veces lo que yo he llamado "error" son debidos a fallos cometidos por el propio programador.

Y por supuesto no me refiero a algo de más dificil aprendizaje, no tiene nada que ver, por lo menos para mi, una cosa con la otra.

Así que repito, por error entiendo cosas que he aprendido sobre lo que he mencionado arriba, si estoy equivocado pues...gracias por haberlo dicho, prefiero saberlo.

Un saludo.

CitarEn qué momento una característica de un lenguaje A y que decide eliminarse en B se considera su existencia en A como error? Que alguien me explique eso, no lo entiendo.

Estoy de acuerdo contigo.

Akai

#7
Cita de: Valkyr en 10 Marzo 2011, 02:12 AM
Con errores me refiero a una forma no muy...limpia (por decirlo de alguna forma) de reservar espacio en memoria para objetos, o los campos de los objetos que contenga contenido basura si no se han inicializado de la forma correcta, además de fallos cometidos por el programador (por supuesto que son el 99,9%) y que el compilador no informa

Ah, pero "amigo", eso es cosa del programador, no del lenguaje. No se si entiendes lo que intento decir. Aquí la cosa cambia, entras ya en el uso de la herramienta frente a las características de la herramienta.

Por ponerte un ejemplo, necesitas hacer un túnel de parte a parte de una montaña, pero si no utilizas bien la tuneladora, se te va a caer la montaña encima. Pero eso no es culpa de la tuneladora, el que por ejemplo, tu no te hayas preparado un buen camino a la hora de hacer el tunel.

Entrando en un caso concreto, malloc es reserva de memoria tipo "C", simplemente te pide el espacio y punto porque en C no tienes objetos. Pero new, es tipo "C++", y te llama a los constructores. Si te has preparado constructores de copia, o por defecto para lo que le pases en ese momento (o no) desde el new, no tienes ese problema que mencionas (mismo para free( no llama al destructor) y delete (si lo hace)).

Como leí en un ligro de iniciación a C#, "usar el manejo de memoria de C o C++ es como usar una motosierra sin ninguna clase de limitación ni guardia, obviamente para el que la sepa manejar va a ser una herramienta muy útil, pero para alguien que no, se convierte en todo un peligro".

PD: También programo algo en java, y si insisto en el tema, es porque me gustaría que se viese que las características de un lenguaje en principio no deberían catalogarse como "errores", por el hecho de requerir prestar un poco más de atención a cambio de flexibilidad.

PD2: Espero que no te ofendieses por la pregunta de la categoría, lo preguntaba con total neutralidad y sin ánimo de ofensa. Podía darse el caso que en vez de un estudiante fueses un profesor o algo por el estilo.