Sin más demoras empecemos nuestro primer programa. Para nuestros primeros ejercicios vamos a usar una herramienta online que te permitirá ejecutar código en distintos lenguajes de programación sin necesidad de descargar nada a tu máquina.

De todas maneras estoy pensando en crear un pequeño tutorial para que, si lo deseas, puedas programar Python, Java y Javascript (usando nodejs)  en tu propia computadora.

Te invito a que crees una cuenta en https://repl.it/ ya que será la plataforma que usaremos como herramienta para escribir y ejecutar nuestro código.

A continuación podrás ver en ejecución el editor de codigo de repl.it en Javascript, Python y Java. Este pequeño editor, que podrás abrir en una pestaña aparte, haciendo click en el botón open in repl>it,

te permitirá escribir el código que iré explicando en este artículo y ver su ejecución pulsando el botón de play de color verde .

En la parte inferior de cada editor, he colocado la descripción del lenguaje que compila (Javascript - editor, Python - editor, Java - editor). Ten esto presente porque la sintaxis de cada lenguaje es diferente y es poco probable que, una instrucción en python, se ejecute correctamente en Javascript o Java, y esto es igual para los otros dos lenguajes. Así que, escribe cada código en el editor correspondiente.

Javascript - editor
Python - editor
Java - editor

El primer programa que vamos a escribir contendrá una simple instrucción, mostrar un mensaje en la terminal (a la terminal también se le conoce como consola o shell).

En el editor de Javascript, en la línea 3, escribe la siguiente instrucción:

Javascript

En el editor de python, en la línea 3 también, escribe esta instrucción:

python

En el editor de Java, en la línea 5, escribe esta instrucción:

Java

Ahora, en cada uno de los editores presiona el botón de play.

Verás que en la consola se muestra el mensaje Hola Mundo. Comúnmente, cuando mostramos un mensaje en la consola, podemos decir que estamos imprimiendo un mensaje en la terminal, así que, de ahora en adelante, cuando me refiera a Imprimir un mensaje, no vayas a pensar que vamos a imprimir en una impresora algún texto.

Imprimir un simple mensaje, aunque es algo muy simple, tiene todas las condiciones para clasificarse como un programa.

También, con esta simple instrucción, podemos observar algunas similitudes y diferencias entre los lenguajes. En Javascript, lo logramos con la instrucción console.log();, en python con print() y con Java con System.out.println("Hola Mundo");

Para empezar, entendamos que cada instrucción se le puede conocer como Sentencia. En diferentes lenguajes de programación, como en Java y Javascript, cada sentencia requiere que sea finalizada y/o separada por un punto y coma (;) (De hecho intenta poner, seguidamente, varios console.log(), en el caso de Javascript, o varios System.out.println(), en el caso de Java, en una sola línea y verás que todo va bien).

En el caso de python, sucede algo muy particular, cada sentencia se suele separar por líneas. El uso de (;) no es necesario en este lenguaje, sin embargo puedes ver que si pones varios print(), uno seguido del otro, separándolos por espacios tendras un error de sintaxis

Sin embargo, si lo haces de la siguiente manera, separando cada sentencia por punto y coma, todo irá bien.

Aunque pudiéramos hacer un programa en una sola línea separando cada sentencia por punto y coma, procuramos separar cada sentencia en una línea para hacer que el código sea legible.

Tan solo fijándonos en este detalle del punto y coma, podemos ver varias semejanzas y diferencias entre cada lenguaje de programación. Con el tiempo, podremos seguir aprendiendo un poco más sobre esto, pero veamos algo mucho más significativo que podemos aprender acerca de nuestra sentencia para imprimir un Hola Mundo.

Una básica intro sobre las funciones

Como probablemente te habrás percatado, para poder imprimir nuestro Hola Mundo, pasamos nuestro mensaje entre comillas simples o entre comillas dobles dentro de un paréntesis: (parámetro).


NOTA: Javascript y Python se pueden usar tanto comillas simples (') o dobles (") para encerrar un texto. En el caso de Java los textos solo van en comillas dobles (") debido a que las comillas simples (') encierran un tipo de dato de un solo caracter.


El uso de los paréntesis, por lo general, suele indicar la ejecución de una función y lo que pasemos dentro de los paréntesis son los parámetros que serán usados en su ejecución.

¿Pero qué es, entonces, una función? Según wikipedia, una función o subrutina, es:
"[subprograma]... Como idea general, se presenta como un subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea específica."

Suena como un concepto muy complejo, pero no lo es. Básicamente una función es una agrupación de sentencias que pueden ser reutilizadas en varias partes de nuestro programa, son subalgoritmos o subprogramas que, al mismo tiempo, pueden ser invocadas dentro de otras funciones.

Veamos un ejemplo. Por ahora, en este momento, solo sabemos hacer programas que imprimen mensajes en la consola (Por cierto y en tres lenguajes de programación. ¡Muy bien!).  Podemos crear (o definir) varias sentencias que impriman un mensaje en pantalla y encerrarlas en una función que invoquemos donde y cuantas veces queramos.

En Javascript existen varias formas de definir o declarar una función, pero una forma muy bien conocida es empezando con la palabra function seguido del nombre de nuestra función (en el ejemplo cocinarEspagueti). Luego, entre paréntesis, van los parámetros que queramos recibir dentro de la función. Por último, el cuerpo de la misma va entre llaves {}

Javascript

En el caso Python, la sintaxis es más sencilla. Debemos empezar la definición de una función con la palabra def, seguido del nombre de la función. Luego al igual que Javascript, entre paréntesis definimos los parámetros que queremos recibir dentro de la función y, finalmente, el cuerpo de la función va después de los dos puntos (:) en las siguientes líneas. Cabe notar que aunque no necesitamos las {} en Python, necesitamos identar (añadir una sangría) a cada sentencia que queramos que sea parte del cuerpo de la función.

Python

En el caso de Java es un poco más complicado que Javascript y Python, ya que sigue varias reglas que, quizás, conversemos más adelante. Pero en este caso definiremos nuestra función usando la siguiente sintaxis:

Java

En todos los ejemplos se imprimirá el mismo mensaje en la terminal:

Como puedes ver, pudimos invocar (en 2 partes distintas) una función cocinarEspagueti tanto en Javascript, como Python y en Java.

¿Pero qué sucede con la función misma que estamos usando para imprimir nuestros textos? ¿De donde proviene la definición, lógica y sentencias dentro de console.log, print y System.out.println?

Cada lenguaje de programación nos provee cientos de  funciones, muchos tipos de datos, varios operadores lógicos y otras características que le dan forma a su sintaxis.

Es por eso que no hemos necesitado definir las funciones console.log, ni print, ni System.out.println.


NOTA BREVEMENTE IMPORTANTE: Hay que mencionar algo importante sobre console.log y System.out.println. En el ejemplo definimos una función cocinarEspagueti. Las funciones deben ser de una sola palabra, por lo que, cuando queramos usar dos, las unimos siguiendo este patrón: notaciónCamello.

NO podemos hacer esto: cocinar espagueti() porque tendremos un error de sintaxis.

¿Y qué pasa si intentamos declarar la función de esta manera: function cocinar.espagueti() {....? ¿Será que es así que están definida las funciones console.log, en Javascript y System.out.println, en Java?

La respuesta es que no. En realidad console es un tipo de dato en javascript que tiene otras propiedades internas (A este tipo de datos se le conoce como objeto), entre esas propiedades tiene una función log que hace el mismo trabajo que print en python, imprimir un mensaje en la terminal. En Java ocurre lo mismo. Tenemos un objeto System que contiene una propiedad out, a su vez, out es un objeto que tiene una función println que hace el mismo trabajo que log, en Javascript y print en Python. El punto (.) es la manera de acceder a propiedades internas de un objeto.


Es bueno que entendamos el concepto de funciones apenas iniciamos en el mundo de la programación, ya sea que definamos nuestras propias funciones o invoquemos funciones que provea el lenguaje que estemos usando, ya que utilizaremos y haremos muchas funciones cuando estemos programando.

Pero ahora avancemos hacia otro concepto, los tipos de datos y las variables.

Breve introducción a los tipos de datos

En nuestros primeros ejemplos usamos una función que recibe un mensaje de texto "Hola Mundo" para que este se imprima en pantalla.

Mientras hacíamos los ejemplos pudimos notar el uso de comillas simples o dobles para encerrar nuestro mensaje. Esto abre la interrogante, ¿Qué sucede si omitimos las comillas, (en algunos países, se les conoce como bastardillas), dejando nuestra función de esta manera console.log(Hola mundo);? Puedes verificar, en el editor de texto, que te devolverá un error cuando no encierras tu texto entre comillas. Lo mismo sucede en Python y en Java (Mira la nota sobre las comillas) .

Esto sucede porque, en todo lenguaje de programación, tenemos distintos tipos de datos.

Nuevamente, si buscamos en internet, podemos encontrar conceptos complicados y confusos sobre los tipos de datos. Sin embargo, es algo sumamente sencillo. Un tipo de dato es justamente eso... un tipo de propiedad.

Por ejemplo, las comillas (bastardillas) denotan un dato de tipo cadena de texto, o como comúnmente se conoce, un dato de tipo String.

También existen datos de tipo entero, también conocidos como Integer (Números positivos y negativos sin decimales).

Si ejecutas, en el editor de Python, la instrucción print(25), notarás que imprime en pantalla 25. Algo obvio, sin embargo, como también puedes esperar, si haces print(25 + 25), console.log(25 + 25); o System.out.println(25 + 25); veras en la consola 50.

Eso era de esperar, ¿verdad?. Sin embargo, observa lo que sucede cuando encierras cada número entre comillas e intentas sumarlos '25' + '25' (Recuerda que en Java los Strings son en comillas dobles ["]). ¿Que esperarías ver en pantalla, '50'? Lamentablemente, verás un '2525'. ¿Por qué?

Porque los operadores tales como +, -, *, %, etc trabajan de manera distinta según el tipo de dato. Para los datos de tipo String, el + sirve para concatenar o juntar las cadenas de textos. Es por eso que "25" + "25" da como resultado "2525", porque es igual a que hicieras console.log("Un mensaje, " + "Otro mensaje"). Esto imprimirá en la consola "Un mensaje, Otro mensaje".

A medida que nos adentramos en la programación iremos conociendo y entendiendo más acerca de tipos de datos y operadores.

No en todos los lenguajes de programación existen los mismos tipos de datos. Por ejemplo, tanto en Java como en Python, existen varios tipos de datos numéricos (Integer, Float, Double, etc) pero en Javascript solo existe un solo tipo de dato numérico (Number).

Así que pudiéramos pasar días hablando de cuales son los tipos de datos de cada lenguaje, en que se diferencian, y cómo usarlos. Pero realmente no quiero marearte con todos esos conceptos puesto que la mejor manera de aprender esto es mediante la práctica.

Ahora pasemos a otro punto importante en la programación. Las variables.

Pero eso será tema del siguiente artículo.


Si quieres conocer más información acerca de los tipos de datos en Python, Java y Javascript, te dejo los siguientes enlaces:

Tipos de datos en Java

Tipos de datos en Javascript

Tipos de datos en Python