Comunidad de diseño web y desarrollo en internet online

¿Como programo con C++ y Java?

Citar            
MensajeEscrito el 12 Dic 2007 04:27 pm
Hola, hace tiempo no planteaba una duda.
Ok, mi problema es que leí algunas cosas sobre programación en C++ y Java, pero entendí que debía tener un compilador o algo así. He aquí mi problema, no se donde programar y eso de compilar.
Además aprovechando el post les pregunto.
¿Vale la pena aprender estos lenguajes? ¿Que otros lenguajes me recomiendan aprender?
¿Cuales son más potentes?
Es que quiero saber más, especialmente lo relacionado con el Sistema y los códigos.
He leído que sistemas operativos se han creado con C++, se crean programas con Java y que con C++ incluso se pueden crear otros códigos de Programación.
En cierto sentido quiero ir a la raíz de todo. Tal vez este siendo demasiado soñador, pero con soñar nada se pierde si me puedo despertar.

Ok, espero sus respuestas. :wink: Muchas Gracias.

Por JaLeRu

Claber

1913 de clabLevel

7 tutoriales

Genero:Masculino  

Existo

firefox
Citar            
MensajeEscrito el 13 Dic 2007 08:30 am
No existen "lenguajes potentes", existen lenguajes potentes para algo donde "algo" es aquello para lo que fue creado el lenguaje en cuestión. Por ejemplo C es potente para programar sistemas operativos mientras que FoxPro no lo es simplemente porque FoxPro no fue creado para eso. Espero que entiendas esta cuestión.
Hay varias formas de clasificar los lenguajes pero la clasificación que estás preguntando es: lenguajes compilados y lenguajes interpretados (hay mezcla de los dos también).

Los lenguajes compilados requieren un programa que se llama compilador, el cual toma el código fuente de un programa y lo traduce a código máquina el cual es directamente ejecutable, es decir, el programa ya compilado no necesita de nada externo a él mismo para ejecutarse (excepto que el propio programa lo requiera, claro), este tipo de ejecutables se suelen llamas "stand alone" ("se sostienen solos").

Los lenguajes interpretados requieren de un programa llamado intérprete que lee sentencia por sentencia del código fuente y las ejecuta sin más trámites.

Cada uno de estos tipos de lenguajes tienen sus ventajas y desventajas.

Los lenguajes compilados tienen la ventaja de ser más rápidos porque el código final puede ser optimizado para un sistema operativo y un hardware en particular, pero tienen la desventaja de que solo se ejecutan en ese SO y en ese hardware. Los lenguajes compilados se compilan *para* un SO y un hardware particular. Si deseas obtener un ejecutable para otro SO u otro hardware necesitas cambiar de compilador (aunque hoy en día hay compiladores que generan código ejecutable para más de un SO, lo cual es una solución a este problema).

Mientras que los lenguajes interpretados suelen no tener esa dependencia hacia un SO y un hardware particular, basta con cambiar de intérprete y ya esta. La desventaja es que la ejecución suele ser más lenta (ya que la optimización corre por cuenta del programador y no puede hacer "ajuste fino") y la dependencia con el intérprete (sin intérprete no se puede ejecutar). Además, estos lenguajes tampoco suelen tener soporte de hardware a menos que se le agreguen módulos externos.

Pero también hay mezcla de los dos. Algunos lenguajes pueden ser semicompilados o semiinterpretados. En este caso hay dos programas, un compilador que genera un pseudoejecutable o "codebyte" y un intérprete que ejecuta ese codebyte. La idea es combinar las ventajas de cada tipo. La compilación permite optimizar mientras que la interpretación permite la independencia entre sistemas operativos.

Como supongo te habrás dado cuenta PHP es un lenguaje interpretado, así también lo es JavaScript. Por otro lado Java es un tipo intermedio, se genera un codebyte y se requiere de un intérprete (llamado "máquina virtual java") para que ejecute ese codebyte. C y C++ son lenguajes compilados, por lo tanto necesitas conseguir un compilador para poder programar en C o C++.

Dejé para lo último tu pregunta más difícil de responder: ¿vale la pena aprender a programar en C o Java?.
Pues no tengo idea :S. Y no la tengo porque no sé qué pretendes hacer como para necesitar alguno de esos lenguajes ("la tarea hace al lenguaje y no el lenguaje a la tarea"). Ahora bien, si solo es por aprender otra cosa pues adelante!, aprende lo que quieras porque "lo que no aprendas hoy lo lamentarás mañana" y además te sirve para ampliar tus posibilidades de trabajo.

Ahora bien, si nunca has programado en lenguajes de propósito general (C es uno de ellos) mi personal recomendación es que aprendas Pascal/Object Pascal. Con Pascal puedes hacer lo mismo que con C pero tiene una curva de aprendizaje más pronunciada (además te obliga por diseño a tener buenas prácticas de programación).

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 13 Dic 2007 03:01 pm
Muchísimas gracias por la respuesta, de verdad me quedo todo claro.
Y si, aprendo solo por aprender. Leí sobre c++ y java y la verdad que el estilo de programación no me pareció tan complicado ya que se parecía en cierto grado a As3, Php, Javascript.
Entonces, entiendo que necesito descargarme un Compilador de C++ para poder ejecutarlo. Pero puedo programarlo en cualquier editor de texto. (¿O no?)
El pascal me habían dicho que no valía la pena por ser ya casi no estar vigente. Pero si tu me lo recomiendas voy a echarle una miradita.
¿Pascal es un lenguaje Compilado?
Muchas Gracias. :D

Por JaLeRu

Claber

1913 de clabLevel

7 tutoriales

Genero:Masculino  

Existo

firefox
Citar            
MensajeEscrito el 13 Dic 2007 04:04 pm
Me alegra haberte ayudado.

En realidad lo que leíste sería a la inversa, PHP, Java (y por extensión JavaScript) son lenguajes inspirados en C (entre otros). C se creó en 1970.

Hay productos de software que se llaman IDE (Integrated Developement Environment, entorno integrado de desarrollo) que incluye un editor de código (como un editor de texto pero con esteroides :P), un debugger, un administrador de proyectos y el compilador todo integrado en un solo paquete que puedes usar sin ejecutar más que el propio IDE, por ejemplo Visual C++ o Borland C++ Builder son IDEs para C/C++.

Quien te dijo que Pascal "casi no está vigente" no sabe una coma de Pascal. Actualmente los compiladores para Pascal que más se usan son Delphi y FreePascal, el IDE de este último es Lazarus, el primero es un IDE completo hecho por Borland/Codegear. Ambos soportan Object Pascal. FreePascal crea ejecutables para los sistemas operativos más populares, Delphi solo para Windows (Kylix sería la versión "para Linux" de Delphi).

Déjame decirte algo, al día de la fecha nadie ha sido capaz de presentarme un problema que se pueda resolver en C y no en Pascal.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 13 Dic 2007 05:44 pm
JaLeRu ... colmo dice DriverOp todo depende para qué lo quieras utilizar, aunque deja que te recomiende una cosa, si lo que quieres es aprender por aprender... olvídate de Java, es la mierda!.

Veamos, Java y AS3 están basados en el mismo estandard ECMA, lo que hace que su sintáxis sea parecida (que no igual) pero por ejemplo tienes algo como Objeto.subObjeto.método(); tanto en Java como en AS3. Java, al igual que Flash fue creado con al filosofía "Write Once, Run Everywhere", salvo que Java falló miserablemente en la tarea, ya que cada máquina virtual para cada SO es diferente, se comporta de manera diferente y al final tienes que ir con apaños aquí y allá cada dos líneas de código. Por no hablar si quieres trabajar con gráficos y menús,... que todo se convierte en una pesadilla horrible. Conozco varios proyectos que por hacerlos en Java se ha desperdiciado mucho dinero y tiempo y siguen sin estar terminados. Si ya sabes AS3 y sólo quieres "aprender por aprender" olvídate de Java, no es una buena idea.

En cambio te recomiendo C++ (¡ojo! C no es C++, C es un lenguaje imperativo como Pascal -no hablo de ObjectPascal- C++ es la "versión orientada a objetos" de C). Lo bueno de C/C++ es que te permite trabajar tanto a bajo nivel (moviendo bloques de memoria por ejemplo) como a un alto nivel (gracias a librerías de terceros, que hay un montón por ahí), además de que si usas librerías "cross-platform" con el mismo código puedes llegar a diferentes SO's (con muy pocos ajustes).



Pero sinceramente ... todo depende de lo que quieras hacer...

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 13 Dic 2007 07:24 pm
Wow gracias, entonces....
¿Me recomiendan investigar sobre c++, pascal y c?
Respecto a lo que quiero lograr o cuales son mis finalidades. Es simple solo quiero saber más :lol: abrirme nuevas posibilidades para cada vez lograr cosas más potentes e interesantes.
Ejemplo: Sueño con poder crear un juego para un PocketPc, una DS...
La verdad solo quiero salir un poco de mi estado actual que se basa mucho en Flash, Php, Css, en fin Internet. Quiero adentrarme a la maquina en si. No es que sea una necesidad de trabajo ni nada por es estilo es tan solo curiosidad, sana curiosidad.

Les agradezco por todas sus respuestas, que no fueron más de 3 pero me dejaron todo claro.
:wink:
Le cuento si tengo algún problema. ^^

Por JaLeRu

Claber

1913 de clabLevel

7 tutoriales

Genero:Masculino  

Existo

firefox
Citar            
MensajeEscrito el 13 Dic 2007 11:16 pm
NDS, PSP, GameCube, GP32, GP2X, ... todas se programan en C/C++
Para la NDS hay algunos ports (muy básicos) de Python o de basic. En el caso de basic es más como un emulador (hay emuladores de atari, c64, etc etc para la NDS) o una "máquina virtual" (es decir, el código no se ejecuta directamente sobre el hardware. En el caso de python creo que que lo que hace es convertir python>>C>>hardware , es decir, programas con la sintáxis de python pero al final el código se convierte a C/C++ antes de pasar a bytecode (o código máquina)

Para la NDS te recomiendo estos links :
http://www.theninjabunny.com/499/instalar-devkitpropalibulib-en-ubuntu/
http://www.theninjabunny.com/libro-nds/
htp://www.palib.info/
http://brunni.palib.info/new/index.php?page=ndssoft_ulib

Los libros de Bruce Eckel "Thinking in C++" y "Thinking in C++ v2" (v2 es volumen 2, no la segunda versión). El primero (volumen 1) quizás no te diga mucho, pero es obligatorio tenerlo porque sino algunos de los conceptos del v2 se te pueden escapar.


En general, cualquier hardware se va a poder programar en C/C++ mediante algunas librerías de medio-alto nivel, por lo que va a ser bastante cómodo.


Sobre Pascal ya no te puedo aconsejar, yo aprendí a programar con pascal (bueno, algo parecido "DIV2" - del famoso Div Games Studio) y desde entonces (hablo de mis años de colegio) ya no lo volví a tocar

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 14 Dic 2007 01:16 am
Antes que programar creo que debes aprender lo que es un algoritmo, ya que si quieres aprender a "programar" con los consejos de un libro solamente podrás hacer programas tipo Hello World!. Una vez resuelto el problema en tu cabeza podrás programarlo en lo que sea(bash, c++,java, as3 ...).
Si quieres aprender a programar en c++ o Java procura conocer que es la programación orientada a objetos (herencia,encapsulamiento,etc.). Te dejo este sitio, donde puedes resolver problemas trillados que requieren de más habilidad para resolver problemas que conocer trucos y bugs de un lenguaje de programación en particular. Y acá problemas del mismo sitio para alguien que tenga tiempo de resolver estos problemas :)

Por zickedhelik

93 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 14 Dic 2007 01:52 am

zickedhelik escribió:

Antes que programar creo que debes aprender lo que es un algoritmo, ya que si quieres aprender a "programar" con los consejos de un libro solamente podrás hacer programas tipo Hello World!.



En matemáticas, ciencias de la computación, y disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa al-Jwarizmi) es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución.


O sea... nada, la gran chorrada, no necesitas aprender qué es un algoritmo porque no es nada, sólo una serie de pasos a seguir para resolver un problema. Instrucciones simples para hacer una acción mayor. Por ejemplo si quieres "hacer un filete a la plancha" el algoritmo sería :
  • calentar plancha
  • poner filete en plancha
  • esperar un rato
  • dar la vuelta al filete
  • esperar un rato
  • sacar filete


Pero vamos, que si programas en AS, ya sabes lo que es. De todas formas zickedhelik, no sé qué libros lees tú, pero en todos los que he podido coger explican algunos algoritmos sencillos (los de bajo nivel) y otros más guays en libros más complicados.

En cambio, después de algo tan sencillo te metes directamente con herencia, encapsulamiento, polimorfismo,... cosas que sí, teóricamente están muy bien, pero luego en la práctica se pueden olvidar en la gran mayoría de casos para tener un código limpio y sencillo. Así que Jaleru, cuando leas sobre herencia, polimorfismo y demás, estate atento, pero luego no intentes llevarlo a pie juntillas a la práctica, porque en la mayoría de casos no es viable si quieres un código limpio y sin líneas de sobra rebundantes como los llamados "Java Monkeys" (Java es un lenguaje que te hace repetir muchas líneas de código de manera innecesarias para que todo sea "correcto" y compile)

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 14 Dic 2007 02:30 am

_CONEJO escribió:

Lo bueno de C/C++ es que te permite trabajar tanto a bajo nivel (moviendo bloques de memoria por ejemplo) como a un alto nivel (gracias a librerías de terceros, que hay un montón por ahí), además de que si usas librerías "cross-platform" con el mismo código puedes llegar a diferentes SO's (con muy pocos ajustes).

Pascal también lo hace ;)

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 14 Dic 2007 02:58 pm
La verdad es que no soy muy bueno para el Ingles, aunque leyendo entiendo bastante.
Gracias! Gracias! Gracias! Y eso de los algoritmo, creo que algo lo debo manejar.
Por ejemplo una vez cree un "juego" en que al clickear un cuadrado todos los cuadrados que estaban a su alrededor y tenían su mismo color se abrían, y así mismo con los que estaban alado de esto.
¿Creo que idear eso es un algoritmo no?
Por cierto eso de ubuntu?? Yo no tengo Ubuntu.... me parece que Ubuntu es algo de Linux XD (Siempre he querido instalar Linux, aunque no se como se hace) ¿O no es necesario tener Linux para entender eso de Ubuntu que me dijiste?

Por JaLeRu

Claber

1913 de clabLevel

7 tutoriales

Genero:Masculino  

Existo

firefox
Citar            
MensajeEscrito el 14 Dic 2007 03:36 pm
Ok, Leí todo lo que me diste Conejo, y me descargue tu libro ¡me lo leeré!
Pero antes de emocionarme y querer hacer algo tengo que empezar a programar en C++ que sea un simple hola mundo :lol:
Así que me voy a poner a leer y a programar. Si alguien me explica como instalar un compilador se lo agradecería mucho, ya que me enrede un poco con una explicación que leí en la web.

Por JaLeRu

Claber

1913 de clabLevel

7 tutoriales

Genero:Masculino  

Existo

firefox
Citar            
MensajeEscrito el 21 Dic 2007 04:33 pm
Yo te recomendaria si lo que quieres es aprender bien desde el principio utilizases Eiffel, este es un lenguaje que no te va a servir de mucho una vez aprendido
ya que no lo utiliza mucha gente y mucho menos en internet, pero el lenguaje en si es una obra de arte, como lenguaje OO quiza sea el mejor junto con Smalltalk. Si te interesa esto puedes echarle un vistazo a uno de los libros de su creador:
Construccion de software orientado a objetos, Bertrand Meyer.

Yo te recomendaria que mas que aprender lenguajes de programacion aprendieses OO, de esta manera podras programar en practicamente cualquier lenguaje OO. Para utilizar un lenguaje para solo aprender OO le puedes echar un vistazo a UML.

Como Eiffel es un lenguaje poco asentado, te recomiendo que eligas otro para poder realizar programas, en mi caso elegi PHP por que creo que es el mejor que esxiste para desarrollar en internet.

Por Pitxon

38 de clabLevel



Genero:Masculino  

Madrid

firefox
Citar            
MensajeEscrito el 17 May 2008 05:37 pm
Pues, he leido este post y me ha parecido muy interesante.. y quisiera que me ayudaran con las siguientes pregunta.

Para programar en Phascal, que seria mejor (FreePascal o Delphi) o es indiferente?... ya que he escuchado mucho Delphi pero nada del FreePascal. y la verdad siempre me ha intrigado este lenguaje.

Estuve en la pagina de FreePascal. y la verdad no encontre mucha ayuda, no se que programa debo bajar para empezar a programar en FreePascal.

Con respecto a C++ que programa seria el indicado. solo conosco y he utilizado el Borland C++.

Por tufik2

30 de clabLevel



 

msie7
Citar            
MensajeEscrito el 28 Ago 2009 08:08 am
FreePascal tiene el "problema" de ser open source y de desarrollo cooperativo, la coordinación entre los desarrolladores y los documentalistas es pobre. Yo también a pesar de estar programando en Pascal desde hace 20 años aún no entiendo varios "gliches" de este compilador ("¿Y esto es un bug o una feature?"). Mi sugerencia es que vayas a por Lazarus que es un IDE para FreePascal. Este IDE es similar a Delphi (de hecho la idea detrás de Lazarus es clonar Delphi). Eso sí, no esperes ayuda seria, tendrás que crecurrir a los foros.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.