domingo, 3 de septiembre de 2017

Historia de la programación

1)

Sobre los últimos 50 años, los idiomas que programan han evolucionado del código binario de máquina a herramientas poderosas que crean las abstracciones complejas. Es importante entender por qué los idiomas han evolucionado, y qué capacidades que los idiomas más nuevos nos dan.
Tan largo como no había máquinas, programar era ningún problema; cuando tuvimos unos pocas computadoras débiles, programar llegó a ser un problema templado y ahora que tenemos las computadoras gigantescas, programar ha llegado a ser un problema igualmente gigantesco. En este sentido que la industria electrónica no ha resuelto un solo problema, tiene sólo los creó - ha creado el problema de usar su producto.
Edsger. W. Dijkstra. “El Programista Humilde”.
La Conferencia del Premio de Turing, Comunicaciones del ACM, Vol 15, No. 10 (el octubre 1972).
Resultado de imagen para Edsger. W. Dijkstra

E. W. Dijkstra habló estas palabras proféticas casi hace 28 años en su es la conferencia del Premio de Turing. En aquel momento, el 'las computadoras gigantescas él radio de probablemente tenido entre 64 y 128 kilobytes de la memoria verdadera, y a lo más unos pocos megaoctetos de artefactos de almacenamiento de acceso directo. Si él pensó que el problema era gigantesco entonces...
Uno de las llaves a programar exitoso son el concepto de la abstracción. La abstracción es la llave a la construcción sistemas complejos de software. Como el tamaño de nuestros problemas crece, la necesidad para la abstracción dramáticamente aumentos. En sistemas sencillos, característica de idiomas usados en el 1950s y '60s, un solo programista podría entender el problema entero, y por lo tanto manipula todas estructuras del programa y datos. Los programistas son hoy incapaces de entender todos los programas y los datos - es apenas demasiado grande. La abstracción se requiere a permitir que el programista para agarrar los conceptos necesarios.
La mayoría de los libros y el reglamento en la historia de programar los idiomas tienden a discutir los idiomas en términos de generaciones. Esto es un arreglo útil para clasificar los idiomas por la edad.


Tabla de contenidos

  1. Primera Generación.
  2. Segunda Generación.
  3. Tercera Generación.
  4. Cuarta Generación.
  5. Quinta Generación.
  6. Lenguajes de programación más importantes.

Primera Generación

Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno.
John Von Neumann desarrolló el modelo que lleva su nombre, para describir este concepto de “programa almacenado”. En este modelo, se tiene una abstracción de la memoria como un conjunto de celdas, que almacenan simplemente números. Estos números pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en sí.
¿Cómo es que describimos un programa como números? Se tenía el problema de representar las acciones que iba a realizar la computadora, y que la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permitía almacenar números binarios.
La solución que se tomó fue la siguiente: a cada acción que sea capaz de realizar nuestra computadora, asociarle un número, que será su código de operación (opcode). Por ejemplo, una calculadora programable simple podría asignar los opcodes:
1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE.
Supongamos que queremos realizar la operación 5 * 3 + 2, en la calculadora descrita arriba. En memoria, podríamos “escribir” el programa de la siguiente forma:
Representacion operaciones.
Podemos ver que con esta representación, es simple expresar las operaciones de las que es capaz el hardware (en este caso, nuestra calculadora imaginaria), en la memoria.
La descripción y uso de los opcodes es lo que llamamos lenguaje de máquina. Es decir, la lista de códigos que la máquina va a interpretar como instrucciones, describe las capacidades de programación que tenemos de ella; es el lenguaje más primitivo, depende directamente del hardware, y requiere del programador que conozca el funcionamiento de la máquina al más bajo nivel.
Los lenguajes más primitivos fueron los lenguajes de máquina. Esto, ya que el hardware se desarrolló antes del software, y además cualquier software finalmente tiene que expresarse en el lenguaje que maneja el hardware.
La programación en esos momentos era sumamente tediosa, pues el programador tenía que “bajarse” al nivel de la máquina y decirle, paso a pasito, cada punto de la tarea que tenía que realizar. Además, debía expresarlo en forma numérica; y por supuesto, este proceso era propenso a errores, con lo que la productividad del programador era muy limitada. Sin embargo, hay que recordar que en estos momentos, simplemente aún no existía alternativa.

Segunda Generación

El primer gran avance que se dio, como ya se comentó, fue la abstracción dada por el Lenguaje Ensamblador, y con él, el nacimiento de las primeras herramientas automáticas para generar el código máquina. Esto redujo los errores triviales, como podía ser el número que correspondía a una operación, que son sumamente engorrosos y difíciles de detectar, pero fáciles de cometer. Sin embargo, aún aquí es fácil para el programador perderse y cometer errores de lógica, pues debe bajar al nivel de la forma en que trabaja el CPU, y entender bien todo lo que sucede dentro de él.


Tercera Generación

Con el desarrollo en los 50s y 60s de algoritmos de más elevado nivel, y el aumento de poder del hardware, empezaron a entrar al uso de computadoras científicos de otras ramas; ellos conocían mucho de Física, Química y otras ramas similares, pero no de Computación, y por supuesto, les era sumamente complicado trabajar con lenguaje Ensamblador en vez de fórmulas. Así, nació el concepto de Lenguaje de Alto Nivel, con el primer compilador de FORTRAN (FORmula TRANslation), que, como su nombre indica, inició como un “simple” esfuerzo de traducir un lenguaje de fórmulas, al lenguaje ensamblador y por consiguiente al lenguaje de máquina. A partir de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: buscar la mayor abstracción posible, y facilitar la vida al programador, aumentando la productividad, encargándose los compiladores o intérpretes de traducir el lenguaje de alto nivel, al lenguaje de computadora.
Hay que notar la existencia de lenguajes que combinan características de los de alto nivel y los de bajo nivel (es decir, Ensamblador). Mi ejemplo favorito es C: contiene estructuras de programación de alto nivel, y la facilidad de usar librerías que también son características de alto nivel; sin embargo, fue diseñado con muy pocas instrucciones, las cuales son sumamente sencillas, fáciles de traducir al lenguaje de la máquina; y requiere de un entendimiento apropiado de cómo funciona la máquina, el uso de la memoria, etcétera. Por ello, muchas personas consideramos a lenguajes como C (que fue diseñado para hacer sistemas operativos), lenguajes de nivel medio.


Cuarta Generación

Los idiomas de la cuarta generación parecen según las instrucciones a las de la tercera generación. Lo nuevo de estas lenguajes son conceptos como clases, objetos y eventos que permiten soluciones más fáciles y lógicos. Lenguajes como C++, java y C# se llaman lenguajes orientadas al objeto.
Los idiomas modernos, tal como C++ y Java, no sólo permite las abstracciones, pero permite la implementación impuesta de restricciones en abstracciones. La mayoría de los idiomas modernos son objetivas orientado, que permite que mí modele el mundo verdadero que usa mi idioma. Además, puedo limitar el acceso para modelar las restricciones de mundo verdadero en datos. La llave es que usé el término “mundo verdadero”. Por la primera vez, yo modelo mi solución en términos del problema. Quiero que mi solución sea orientado de problema, para que la solución refleje el mundo verdadero en términos de estructuras de datos y acceso a los datos. Yo también puedo aplicar directamente y para poder modelar objetos de mundo verdadero usando las clases (en C + + o Java).


Quinta Generación

Como la quinta generación están conocidos los Lenguajes de inteligencia artificial. Han sido muy valorados al principio de las noventa - mientras ahora el desarrollo de software toma otras caminos.
Lo que veremos en el futuro es menos dependencia en el idioma, y más en el modelando herramientas, tal como el Unificado Modelando el Idioma (UML). La salida del modelando herramienta producirá mucho de nuestro código para nosotros; en el muy menos, producirá arquitectónico y los modelos del diseño y la estructura de nuestro código. Esto producirá un diseño (y posiblemente código) eso puede ser validado por el cliente antes de completar la implementación y probar. Cuando los problemas diarios que resolvemos llegan a ser más grande, nosotros tenemos cada vez menos tiempo “volver a hacer” el código. Los días de decir, “acabamos de escribir una versión de Beta y el cliente entonces pueden decir nosotros lo que ellos quieren realmente, son pasados”. Las organizaciones que fallan de obtener completa y corrige los requisitos de cliente antes de escribir el código saldrá del negocio. ¿Por qué? Porque toma demasiado largo, y cuesta también mucho, para escribir código dos o más vez. Las organizaciones que tienen un compromiso a la comprobación y la validación antes de producir código prosperarán - los otros fallarán.


Resultado de imagen para historia de la programacion informatica

Lenguajes de programación más importantes.

Algunos de los lenguajes de programación más importantes por año son:


  • 1943 - Plankalkül (Konrad Zuse)
  • 1943 - ENIAC
  • 1949 - C-10
  • 1951 - Regional Assembly Language
  • 1952 - Autocode
  • 1954 - FORTRAN
  • 1958 - LISP
  • 1958 - ALGOL
  • 1959 - COBOL
  • 1962 - APL
  • 1962 - Simula
  • 1964 - BASIC
  • 1964 - PL/I
  • 1966 - BCPL
  • 1969 - B
  • 1970 - Pascal
  • 1972 - C
  • 1972 - Smalltalk
  • 1972 - Prolog
  • 1973 - ML
  • 1974 - Comandos Guardados
  • 1978 - SQL
  • 1983 - Ada
  • 1983 - C++
  • 1985 - Eiffel
  • 1987 - Perl
  • 1989 - FL (Backus)
  • 1990 - Haskell
  • 1990 - Python
  • 1991 - Java
  • 1993 - Ruby
  • 2000 - C#
  • 2007 - UAP


Aquí les dejaré un vídeo donde puede ver un documental acerca la historia de la programación para que se pueda dejar todo con claridad


SCRATCH

Scratch es un lenguaje de programación que facilita crear historias interactivas, juegos y animaciones y compartir sus creaciones con otras personas en la Web.
Esta aplicación, que forma parte del software de las XO y también se utiliza con otros sistemas operativos, ofrece posibilidades educativas a través de un entorno que hace que la programación sea más atractiva y accesible para todo aquel que se enfrente por primera vez a aprender a programar.

Fuentes: http://rea.ceibal.edu.uy/UserFiles/P0001/ODEA/ORIGINAL/100910_scratch2.elp/qu_es_scratch.html


Resultado de imagen para scratch que es


JAVA

Java es un lenguaje de programación que lleva entre nosotros más de 18 años pero sigue siendo, en cierto modo, desconocido.
Hace unos años, mencionar el nombre Java te recordaba a applets y aplicaciones Java multiplataforma. Hoy en día el nombre es quizá más reconocido gracias a las aplicaciones y juegos Java para teléfonos o los continuos problemas de seguridad que afectaron a la plataforma.


Resultado de imagen para java



2)

SCRATCH

Scratch es un lenguaje de programación creado por el MIT y especialmente diseñado para que todo el mundo pueda iniciarse en el mundo de la programación. Sirve para crear historias interactivas, juegos y animaciones; además de facilitar la difusión de las creaciones finales con otras personas vía Web.
El nombre proviene de la palabra: “Scratching” que en los lenguajes de programación, significa aquellos trozos de código que pueden ser reutilizados, fácilmente combinables y adaptados para nuevos usos.
Es un lenguaje que ha tenido una enorme difusión gracias a su gratuidad (es software libre) y a su facilidad de uso.
Resultado de imagen para SCRATCH
Una de las cosas más interesantes de Scratch es que esas acciones o comportamientos tienen forma de puzzle y nuestra misión como programadores será cocinar esas piezas para conseguir un determinada acción o comportamiento. Así que en esencia programa se convierte en algo parecido a resolver un puzzle, lo que elimina una de las principales barreras que tienen los neófitos en el mundo de la programación que es el aspecto árido y complejo de los entornos de programación. Convirtiendo el proceso de programar en algo parecido a un juego.
Las acciones y comportamientos están divididas en categorías y son estas:
  • Movimiento: Mover y girar un objeto por la pantalla.
  • Apariencia: Cambiar la visualización del objeto: el fondo, hacerlo más grande o pequeño, etc..
  • Sonido: Hacer sonar secuencias de audio.
  • Lápiz: Dibujar controlando el tamaño del pincel el color y la sombra del mismo.
  • Datos: Crear variables y su asignación en el programa.
  • Eventos: Manejadores de eventos que “disparan” determinadas acciones en un bloque.
  • Control: Condicionales: if-else, “forever”, “repeat”, and “stop”.
  • Sensores: Los objetos o “sprites” pueden interaccionar con el entorno o con elementos creados por el usuario como un robot lego por ejemplo.
  • Operadores: operadores matemáticos, generadores aleatorios de números, cooperadores de posiciones.
  • Más bloques: Bloques propios y controladores de aparatos externos.
  • Imagen relacionada
Resultado de imagen para scratch programa


¿Para qué sirve?

  • Permite el desarrollo de los procesos de pensamientos y habilidades mentales en los educandos
  • Es perfecto para introducirse en la programación
  • Permite compartir los proyectos a través del web, se pueden descargar y utilizar. Pudiendo ser descargados y utilizados por otras personas

¿Por que Scratch?

La programación es el el nuevo lenguaje que todos necesitamos conocer si queremos tener una buena comprensión del mundo actual y sobre todo del que viene así como buenas oportunidades laborales. se calcula que cerca del 50% de los puestos de trabajo que conocemos hoy en día desaparecerán y en buena medida serán sustituidos por la industria del software y al robótica. De este modo Scratch se convierte en una gran herramienta para comprender los conceptos y la lógica de la programación. además lo hace abordando su aprendizaje desde un punto de vista lúdico para evitar el rechazo inicial que para muchas personas suponen los entornos de programación más clásicos.
Resultado de imagen para gracias scratch

Para tener una idea de como usar SCRATCH a continuación les dejaré un video donde pueda ver una guía de como es su uso







En los siguientes enlaces se mostrarán una animación que da una moraleja y en el siguiente un videojuego, ambos realizado por este autor:

Animaación: Moraleja
https://scratch.mit.edu/projects/173358381/

Videojuego:
https://scratch.mit.edu/projects/173359391/

controles:  Jugador1: flechas de desplazamiento arriba, abajo, izquierda, derecha.
Jugador2: teclas w, s, a, d.

Manual de manejo del editor netbeans para utilizar el lenguaje JAVA

1. Introducción.

 Netbeans es una IDE sumamente completa, fácil de usar, cómoda y de excelente calidad; y es completamente gratis. Es muy famosa entre los programadores de java hoy en día, por lo que hay mucha información al respecto. En este documento intentaré darle algunas de las pautas para comenzar a usar este programa.
2. Instalación
 Antes de instalar NetBeans, instale el JRE y el JDK. • JRE: https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDSCDS_DeveloperSite/en_US/-/USD/ViewProductDetail-Start?ProductRef=jre-6u13-oth-JPR@CDSCDS_Developer • JDK: https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDSCDS_DeveloperSite/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u13-oth-JPR@CDSCDS_Developer Descargue netbeans desde http://www.netbeans.org/downloads/index.html. Podrá ver que se le presentan varias opciones de descarga, cada una con más o menos plugins. Le sugiero que descargue la versión más básica (Java SE) para partir. Esta versión es más liviana, se descarga más rápido y ocupa menos espacio en su disco duro, además, muchas veces las personas terminan descargando herramientas de netbeans que nunca van a utilizar. En el ramo elo329 sólo utilizará las herramientas presentes en Java SE, si más adelante quiere hacer desarrollos web en Java entonces necesitara las herramientas para java EE, si desea hacer desarrollo para dispositivos móviles necesitara las herramientas para java ME, y así sucesivamente. Por otra parte, puede descargar las herramientas que necesite de manera sumamente simple desde netbeans y cuando realmente las necesite (ver sección “plugins”). Ejecute el instalador. Éste intentará encontrar de manera automática la última versión de su JRE y JDK, pero puede ser que falle o simplemente le indique una versión que no es realmente la última. En estos casos, debe indicarle la ruta a la última versión de forma manual.
 La Ventana Estándar.


 Resultado de imagen para ventana estandar de java


Cada vez que inicie Netbeans, posiblemente vea algo así:

Projects: permite tener a mano todos los proyectos en que uno está trabajando actualmente o en los que ha trabajado en el último tiempo. A través de la expansión o colapso de los nodos en el árbol uno puede ir navegando a través de los elementos que conforman el proyecto. Sugiero hacer clic derecho sobre el proyecto y revisar la ventana de propiedades.
 Files: permite navegar a través de las carpetas del proyecto. A veces algunos elementos pueden no aparecer en el árbol del proyecto en “Proyects”, pero si en “Files”. Por ejemplo, los archivos de salida al ejecutar o debugear un proyecto.
 Services: maneja conexiones a algunos servicios. Los más comunes son los de Bases de datos. Son una ayuda sumamente útil si uno realiza proyectos que interactúan con servidores de base de datos.
 Navigator: despliega los miembros de una clase. Se sugiere revisar su funcionamiento ya que puede ser de suma utilidad. Permite desplegar o esconder los 6 miembros heredados de una clase, desplegar o esconder los atributos de una clase, ir hasta la definición de un miembro (haciendo doble clic sobre este), encontrar ocurrencias del elemento (find usages), etc.

2- El lenguaje JAVA cuenta con distintas funciones que sirven para su mejor uso, tales como:

El compilador Java
Cuando usted programa para la plataforma Java, escribe el código de origen en archivos .java y luego los compila. El compilador verifica su código con las reglas de sintaxis del lenguaje, luego escribe los códigos byte en archivos .class. Los códigos byte son instrucciones estándar destinadas a ejecutarse en una Java Virtual Machine (JVM). Al agregar este nivel de abstracción, el compilador Java difiere de los otros compiladores de lenguaje, que escriben instrucciones apropiadas para el chipset de la CPU en el que el programa se ejecutará.
La JVM
Al momento de la ejecución, la JVM lee e interpreta archivos .class y ejecuta las instrucciones del programa en la plataforma de hardware nativo para la que se escribió la JVM. La JVM interpreta los códigos byte del mismo modo en que una CPU interpretaría las instrucciones del lenguaje del conjunto. La diferencia es que la JVM es un software escrito específicamente para una plataforma particular. La JVM es el corazón del principio "escrito una vez, ejecutado en cualquier lugar" del lenguaje Java. Su código se puede ejecutar en cualquier chipset para el cual una implementación apropiada de la JVM está disponible. Las JVM están disponibles para plataformas principales como Linux y Windows y se han implementado subconjuntos del lenguaje Java en las JVM para teléfonos móviles y aficionados de chips.
El recolector de basura
En lugar de forzarlo a mantenerse a la par con la asignación de memoria (o usar una biblioteca de terceros para hacer esto), la plataforma Java proporciona una gestión de memoria lista para usar. Cuando su aplicación Java crea una instancia de objeto al momento de ejecución, la JVM asigna automáticamente espacio de memoria para ese objeto desde el almacenamiento dinámico, que es una agrupación de memoria reservada para que use su programa. El recolector de basura Java se ejecuta en segundo plano y realiza un seguimiento de cuáles son los objetos que la aplicación ya no necesita y recupera la memoria que ellos ocupan. Este abordaje al manejo de la memoria se llama gestión de la memoria implícita porque no le exige que escriba cualquier código de manejo de la memoria. La recogida de basura es una de las funciones esenciales del rendimiento de la plataforma Java.

El kit de desarrollo de Java
Cuando usted descarga un kit de desarrollo de Java (JDK), obtiene, — además del compilador y otras herramientas, — una librería de clase completa de programas de utilidad preconstruidos que lo ayudan a cumplir cualquier tarea común al desarrollo de aplicaciones. El mejor modo para tener una idea del ámbito de los paquetes y bibliotecas JDK es verificar la documentación API JDK
El Java Runtime Environment
El Java Runtime Environment (JRE, también conocido como el Java Runtime) incluye las bibliotecas de códigos de la JVM y los componentes que son necesarios para programas en ejecución escritos en el lenguaje Java. Está disponible para múltiples plataformas. Puede redistribuir libremente el JRE con sus aplicaciones, de acuerdo a los términos de la licencia del JRE, para darles a los usuarios de la aplicación una plataforma en la cual ejecutar su software. El JRE se incluye en el JDK.


HOLA MUNDO EN JAVA

Contenido

CREAMOS EL PROGRAMA

Para aprender bien las cosas de java, lo mejor es empezar los primeros programas con un editor de textos normalito (notepad, vi, xemcas, etc). No se te ocurra usar Word, WordPad, StarOffice o cualquier otro procesador de textos en condiciones, ya que los ficheros que almacenan no los entiende nadie, salvo ellos mismos. Por supuesto, mucho menos el compilador de java.
También es bueno para empezar compilar y ejecutar a mano, desde línea de comandos. Es mejor no usar un IDE (estilo eclipse, netbeans, jbuilder, etc). El IDE es muy listo y hace muchas cosas él sólo o con un simple click de ratón, por ejemplo, compilar y ejecutar. La consecuencia de esto es que tú no aprendes a hacerlas y luego, sin el IDE o con otro IDE distinto, estás perdido. También es bastante normal que los IDE añadan cosas propias de su cosecha, especialmente JBuilder, que no son estandard de java. Si las usas sin querer, estarás aprendiendo algo que no es java, sino propio del IDE.
Así que vamos en plan "rupestre": Lo primero que hacemos, es abrir una ventana de comandos (una de ms-dos en windows o una shell/bash de linux). En esa ventana nos vamos a un directorio que hayamos elegido para nuestro programa y abrimos el editor. En windows nos vale el notepad, en linux podemos usar el vi. Atención a las mayúsculas y minúsculas en el nombre del fichero y el nombre de la clase.
$ vi HolaMundo.java
c:\> notepad HolaMundo.java
Ahora escribimos nuestro programa
public class HolaMundo
{
    public static void main (String [ ] args)
    {
        System.out.println ("Hola mundo");
     }
}
Salvamos el programa y salimos del editor.

LA CLASE HolaMundo

Veamos qué es lo que hemos escrito:
Hemos hecho una clase que hemos llamado HolaMundo.
En java es habitual meter cada clase en un fichero distinto. Es obligatorio que la clase se llame igual que el fichero. Importan las mayúsculas y las minúsculas, así que no es lo mismo HolaMundo que holaMundo ni que Holamundo. Como nuestra clase se llama HolaMundo, debemos llamar a nuestro fichero HolaMundo.java.
Si hubiera varias clases en el mismo fichero, java sólo permite que se pueda usar una de ellas desde código que esté fuera del fichero. Esa clase que se puede ver desde todos lados debe llevar el modificador public. Además, la clase public debe ser obligatoriamente la que se lllama igual que el fichero.
En resumen, si hacemos un fichero HolaMundo.java, debemos meter dentro obligatoriamente y para que todo vaya bien una clase pública que se llame HolaMundo. Eso es lo que tenemos en la primera línea.
public class HolaMundo
¿Desde dónde hasta dónde va la clase?. En java lo marcamos con una llaves. Inmediatamente después del nombre de la clase, abrimos unas llaves. Luego hacemos el código de nuestra clase y finalmente la cerramos.
public class HolaMundo
{
...
}

EL MÉTODO MAIN

Dentro de la clase podemos poner código de muchas maneras distintas. Una forma habitual es hacer "métodos". Un método es un trozo de código al que damos un nombre para poder identificarlo y llamarlo desde cualquier sitio.
En java hay un nombre especial de método que es main. Cuando a java le decimos que debe ejecutar el código de una clase, busca en dicha clase el método con nombre main y es el método que ejecuta.
Para que java entienda el método main, este debe estar declarado de una forma muy concreta, que es la siguiente
public static void main (String [ ] args)
{
...
}
Debe ser public. Eso quiere decir que se le puede llamar desde cualquier lado.
Debe ser static.  Esto quiere decir que se le puede llamar sin necesidad de instanciar la clase (lo veremos más adelante, no te asustes. Dejémoslo en que hay que ponerlo para que el código nos quede más simple y porque el main obliga a ponerlo).
Es void. Eso quiere decir que ese método no devuelve ningún resultado.
El parámetro del método, que va entre paréntesis detrás de él, es un array de String (cadenas de texto). Como no lo vamos a usar, de momento lo ignoramos y no detallo exáctamente qué quiere decir eso. Baste saber que hay que ponerlo siempre que hagamos un método main en una clase.

SACAR TEXTO POR LA PANTALLA

En java tenemos disponible la clase System que está accesible directamente en cualquier sitio, es decir, podemos usarla sin hacer nada especial siempre que queramos. Esta clase contiene cosas relacionadas con nuestro sistema, con nuestro ordenador. Dentro, entre otras cosas, tiene un atributo out que es público. Al ser público podemos acceder a él libremente. Para acceder a este atributo debemos indicar que está dentro de System. Eso se hace poniendo System.out.
Este atributo System.out esta ligado a la pantalla y es otra clase que a su vez tiene métodos. Tiene método para poder enviarle cadenas de caracteres que saldrán en pantalla. Los dos métodos más usados son print() y println(). Ambos sacan el texto que pongamos entre los paréntesis por pantalla, sólo que el segundo añade además un "nueva línea", de forma que lo siguiente que escribamos saldrá en una línea nueva. Si más adelante queremos escribir en la misma línea, debemos usar print().
El código dentro del main será entonces
System.out.println ("Hola Mundo");

COMPILAMOS EL PROGRAMA

Para compilar usamos el programa javac. Dicho programa está en el subdirectorio bin de donde hayamos instalado java. Es importante para que todo vaya bien que ese directorio bin esté en el path de busqueda de ejecutables.
Para comprobar si está, probamos a ejecutarlo
$ javac
c:\> javac
Si obtenemos un error del estilo "comando no se reconoce" o "command not found" o similar, es que javac no está en la variable de entorno PATH y debemos ponerlo.
$ PATH=$PATH:/directorio_java/bin
C:\> set PATH=%PATH%;directorio_java\bin
Si la ejecutar javac obtenemos un mensaje de "Usage: javac" y la lista de opciones, es que todo está correcto y podemos compilar nuestro programa.
Para compilar el programa, estando en el mismo directorio en el que está el fichero HolaMundo.java escribimos
javac HolaMundo.java
Si todo va bien, no obtendremos ninguna salida de error y habrá aparecido un fichero HolaMundo.class. Este fichero es nuestro programa compilado y lo que se puede ejecutar.
Si obtienes algún error, es que hay algo mal en algún sitio. Revisa que has escrito bien el comando javac y el nombre del fichero. Revisa también que tu fichero contiene lo mismo (mayúsculas y minúsculas incluidas) que el de este ejemplo.

EJECUTAR EL PROGRAMA

Una vez que tenemos HolaMundo.class, podemos ejecutarlo y ver el resultado. Para ejecutar este HolaMunod.class necesitamos un programa llamado java que está también en el bin de donde tengamos instalado java. Si hemos conseguido compilarlo, es que este directorio está en el PATH y no deberíamos tener problemas.
Si tienes un java más o menos moderno, bastará con hacer esto estando situados en el directorio donde esté el fichero HolaMundo.class
$ java HolaMundo
Hola Mundo
C:\> java HolaMundo
Hola Mundo
El comando java admite como parámetro el nombre de la clase, no el del fichero. La clase se llama HolaMundo, el fichero se llama HolaMundo.class. Por eso NO HAY QUE PONER .class AL EJECUTAR. Este despiste suele ser habitual en la gente que empieza y llega a dar bastantes quebraderos de cabeza hasta que se cae en la cuenta.
Si tienes un java más antiguo, es posible que no te funcione. Si obtienes un error del estilo "Class Not Found", verifica que estás en el mismo directorio que HolaMundo.class y que has escrito bien las mayúsculas y minúsculas. Si todo está bien y te sigue fallando, no queda más remedio que liarnos con el CLASSPATH...

CLASSPATH

Java busca los ficheros .class en determinados sitios. Las versiones más antiguas de java los buscan en el directorio en el que está instalado java. Las versiones más modernas los buscan en los mismos directorios y en el directorio actual. Si estás con un java moderno, java encontrará tu fichero HolaMundo.class y no tendrás problemas. Si estás con un java antiguo, entonces no lo encontrará y te dará el error de que no encuentra la clase HolaMundo.
Afortunadamente, java se puede configurar para que busque clases en otros directorios de los de defecto. Hay dos formas de hacerlo.

VARIABLE DE ENTORNO CLASSPATH

Una es por medio por la variable de entorno CLASSPATH. Simplemente debemos definir la variable diciéndole en qué directorios están los ficheros .class. En windows estos directorios van separados por punto y coma. En unix van separados por dos puntos.
Podemos dar este path relativo o absoluto. Pongo las dos opciones en cada sistema operativo, elige la que quieras.
$ CLASSPATH=.
$ CLASSPATH=/home/usuario/mi_proyecto_HolaMundo
$ export CLASSPATH
C:\> set CLASSAPTH=.
C:\> set CLASSPATH="C:\Dcouments and Settings\usuario\mi_proyecto_HolaMundo"
Bueno, hay varios detalles que comento por si las moscas.
En unix suele ser necesario poner "export CLASSPATH" después de definir la variable.  En unix, cuando se define una variable nueva por primera vez, si queremos que los demás procesos (por ejemplo java cuando lo ejecutemos) la vean, es necesario ejecutar un export.
En cuanto a windows, que tiene la costumbre de poner espacios en los nombres de directorio y ficheros, suele ser necesario meterlo todo entre comillas, para que sepa que el comando no termina en el espacio.
Una vez hecho esto, deberíamos poder ejecutar el programa HolaMundo sin problemas.

OPCION DEL COMANDO JAVA

La otra opción para definir el CLASSPATH es hacerlo como opción en la linea de comandos de java. Se haría así
$ java -cp . HolaMundo
$ java -cp /home/usuario/mi_proyecto_HolaMundo HolaMundo
C:\> java -cp . HolaMundo
C:\> java -cp "C:\Documents and Settings\usuario\mi_proyecto_HolaMundo" HolaMundo
Bueno, aquí debo advertir que no sé seguro si la opción es -cp o -classpath. Creo que la versión de windows admite las dos formas, pero la de unix sólo -cp. O quizás sea según la versión de java. En fin, si no te va así, prueba a poner -classpath entero.
Si usas esta opción, se ignora el valor de la variable CLASSPATH, así que por norma general y para evitar errores, elige qué forma te gusta más y usa sólo esa.
Puedes ir ahora a ver qué son los paquetes en java y cómo hacer un "hola mundo" dentro de un paquete, o bien volver a ver qué tienes que bajarte de java para empezar.

 A continuación se dejará un tutorial de aprendizaje acerca el lenguaje JAVA en NetBeans



No hay comentarios.:

Publicar un comentario

Manual NetBeans

Manual de manejo del editor netbeans para utilizar el lenguaje JAVA 1. Introducción.   Netbeans es una IDE sumamente completa, fáci...