Lenguajes de programación

Un lenguaje de programación es un lenguaje formal (o artificial, es decir, un lenguaje con reglas gramaticales bien definidas) que le proporciona a una persona, en este caso el programador, la capacidad de escribir (o programar) una serie de instrucciones o secuencias de órdenes en forma de algoritmos con el fin de controlar el comportamiento físico y/o lógico de una computadora, de manera que se puedan obtener diversas clases de datos. A todo este conjunto de órdenes escritas mediante un lenguaje de programación se le denomina programa.

Antes que nada

Primeros pasos en la lógica de programación

Lo que te puede generar más confusión al inicio de este camino es escoger el lenguaje de programación indicado. Sin embargo, déjame decirte que el lenguaje en sí no importa mucho al inicio, puesto que la lógica es la misma para todos, por esta razón no te preocupes, comenzar aprendiendo la lógica de programación es el mejor camino.

La lógica es la base de todo el conocimiento en programación, ya que es posible aprender a escribir un código para que la computadora interprete correctamente. Es decir que aprendes a comunicarte con la máquina a partir de un lenguaje.

¿Qué es exactamente la lógica de programación?

Lógica es la técnica utilizada para desarrollar instrucciones en una secuencia para lograr determinado objetivo.

Es la organización y planificación de instrucciones en un algoritmo, con el objetivo de tornar visible la implementación de un programa o software.

La lógica de la programación es la organización coherente de las instrucciones del programa para que su objetivo sea alcanzado.

Desafío del programador:

El gran desafío del programador es entonces montar la estructura del programa para que este sea ejecutado por la computadora. Y es necesario partir del principio de que la computadora no piensa de la misma forma que el ser humano, y no es inteligente para saber qué es lo que tiene que hacer, ni comprender mensajes subjetivos.

Por eso organizar la información de forma clara y en el orden adecuado es primordial para que la acción sea ejecutada correctamente.


Para ello te aconsejo

1. Programar es aplicar la logica

La logica es la parte de la filosofía que estudia las formas y principios generales que rigen el conocimiento y el pensamiento humano, considerado puramente en sí mismo, sin referencia a los objetos.

Si logramos desarrollar una buena lógica podremos movernos a través de los diferentes lenguajes de programación de una manera flexible, y tendremos más independencia a la hora de elegir un lenguaje en concreto para programar aplicaciones.

2. Piensa cómo ser resolutivo

La programación se basa principalmente en resolver problemas, y una buena técnica es dividir el «gran» problema en muchos problemas «pequeños» para poder focalizarse en cada problema de manera más detallada. Una buena forma de practicar esto es trabajar con pseudocódigo.

3. Practica

El punto más importante es el siguiente: practica. Un algoritmo no es nada más que un conjunto de operaciones ordenadas y finitas que llevamos a cabo con el único propósito de encontrarle una solución a un problema. Así que intenta practicar con problemas lo más simples posibles para obtener una lógica mejor.

Estos son 10 lenguajes de programación entre los más usados entre los desarrolladores

1. Lenguaje de programación PHP

PHP es de código abierto muy usado en el desarrollo web, ya que puede incrustarse en HTML. El código se ejecuta en el servidor, genera HTML y se lo envía al cliente.

  • Muy fácil de usar si estás empezando en esto de la programación, pero muy completo para los programadores profesionales.
  • Se orienta al desarrollo de aplicaciones web dinámicas.
  • Es un código seguro y confiable, ya que el código fuente está oculto para el navegador y cliente.
  • Licencia abierta de uso.
  • Las últimas versiones hacen que PHP sea una lenguaje orientado a objetos muy potente y con un rendimiento muy mejorado.
  • Necesitas un servidor web para ejecutar una aplicación, aunque las últimas versiones traen un servidor incorporado.
  • Debes tener un conocimiento genérico de HTML para trabajar con PHP o con JSON.

Gracias a la curva de aprendizaje y flexibilidad que nos ha aportado PHP hemos construido un gran abanico de aplicaciones tanto para nuestros clientes como para de uso interno.

2. Perl

El uso de Perl está extendido en la construcción de aplicaciones CGI para la web. Se trata de un lenguaje muy práctico para extraer información de archivos de texto y generar informes a partir de su contenido. También es de licencia abierta.

  • Es uno de los lenguajes de programación más sencillos que existen.
  • Muy eficiente y de elevado rendimiento a la hora de tratar un gran volumen de datos.
  • Puede usarse tanto en desarrollo web como en otros entornos.
  • No necesitas hacer instalaciones a posteriori, ya que el intérprete viene por defecto.
  • Un mismo código corre en multitud de distribuciones sin necesidad de que toques una sola línea.
  • Puede ser lento comparado con otras herramientas, ya que se compila al principio de su ejecución.
  • Su código es difícil de leer.
  • Al no disponer de control de excepciones es complicado encontrar algunos errores.

lenguajes de programación

3. Java

Es uno de los lenguajes de programación de código abierto más populares. Java  fue comercializado por primera vez 1995 por Sun Microsystems. Está detrás de muchas webs y aplicaciones, de consolas y súper ordenadores, de móviles y de hasta Internet.

De hecho, no sé si sabes que Java es quien impulsa Android, el sistema operativo más usado del mundo.

  • Lenguaje multiplataforma, ejecutable en la mayoría de los sistemas operativos.
  • Software de distribución libre.
  • Lenguaje completo y dispone de una librería y utilidades amplias.
  • Lenguaje de ejecución lenta al ser interpretado.
  • Difícil de aprender debido a su compleja sintaxis.

4. C++

C++ permite la manipulación de objetos y tiene como base el lenguaje C. Se le reconoce como uno de los lenguajes de programación multiparadigma (programación orientada a objetos y estructurada). Es una de las herramientas más populares por su versatilidad y potencia.

  • Lenguaje muy didáctico, y a través del mismo puedes aprender otros como C#, Java, PHP.
  • Muy utilizado en la creación de sistemas operativos, utilidades, bibliotecas…
  • Permite programar con múltiples estilos, como los estructurados.
  • Admite la compilación de nuestro código en múltiples plataformas.
  • El uso de librerías dinámicas se hace muy complicado, ya que la carga y la liberación de memoria de la librería corre a cargo de los programadores.
  • No es muy usable para desarrollar páginas web.
  • Complejo programar bases de datos.
  • Más pesado que otros programas similares.

5. C#

C# es un lenguaje creado por Microsoft con seguridad de tipos y orientado a objetos. Se diseñó para ejecutarse en la plataforma .NET. C# se usa para el desarrollo de juegos, servicios web XML, componentes distribuidos, aplicaciones cliente-servidor, etc. La sintaxis de C# es muy reconocida, por lo que si estás familiarizado con Java o C++ no te será difícil aprenderlo.

  • Lenguaje muy potente y flexible.
  • Soporta la mayoría de paradigmas.
  • Es complicado hacer portabilidades.
  • Tiene una curva de aprendizaje bastante elevada.
  • No existe una correcta documentación de la herramienta.

6. Python

Python  se crea a finales de los 80 y principios de los 90. Su programación se orienta a objetos y se emplea para hacer aplicaciones genéricas (juegos, web o de escritorio), en la informática científica y big data, que ahora está muy de moda. Su código es de distribución libre, por lo que no tendrás que pagar licencias para usarlo.

  • Es escalable y flexible.
  • Funciona en múltiples plataformas (Windows, Mac, Linux).
  • Soporte de programación de interfaces gráficas de usuario.
  • Conexión con las bases de datos más usadas.
  • Se integra fácilmente con lenguajes como C, C++, y Java entre otros.
  • No dispone de una buena documentación.
  • Es más lento comparado con otros lenguajes como Java o C.
  • Difícil de ejecutar múltiples hilos.

lenguajes de programación

7. JavaScript

Es uno de los lenguajes de programación más importantes y según datos, lo utilizan un 80% de los desarrolladores y un 95% de todos los sitios web. Las ventajas de JavaScript se sitúan en el lado del front-end, y varios frameworks que soporta como React y Angular JS tienen un gran potencial para mejorar la experiencia del usuario en la web. Se trata en definitiva de un lenguaje ligero, multiplataforma, estructurado y orientado a objetos y eventos.

  • Es un lenguaje de programación seguro y fiable.
  • De fácil uso y muy completo.
  • Es ligero y permite la elaboración de múltiples aplicaciones web.
  • Es compatible con la mayoría de navegadores.
  • No proporciona muchos recursos.
  • Soporta 3D, pero las opciones que ofrece son limitadas.
  • Puede ser vulnerable, ya que el código de JavaScript está visible para todo el mundo.
  • Tienes que descargar completamente el código antes de procesarlo.

8. Swift

Es uno de los lenguajes de programación más recientes y de más futuro y se lanza en 2014 para los sistemas iOS y macOS. Es open source y puedes encontrar toda la información necesaria para usarlo en su web o en su github.

  • No es un lenguaje exclusivo de iOS y puedes usarlo en Linux también.
  • Es más fácil de aprender y programar con él que otros lenguajes.
  • Ofrece un código muy seguro ya que evita ciertas estructuras o condiciones.
  • Tareas como la encriptación se ejecutan más rápidamente.
  • Cada vez que salga una nueva versión, tendrás que reprogramar tu app.
  • Impone muchas reglas a hora de programar.

9. R

R está aumentando su popularidad debido al Big Data y del número creciente de trabajos de minería de datos, por lo que te vendrá muy bien aprender este lenguaje. Forma parte de un proyecto colaborativo y abierto y funciona mediante comandos. Ofrece una amplia gama de herramientas estadísticas con los que podrás generar gráficos de gran calidad.

  • Es software libre de código abierto, por lo que tendrás una gran comunidad detrás apoyándote en caso de dudas.
  • Multiplataforma. Funciona en Mac, Windows…
  • Los gráficos son de gran calidad.
  • Es difícil encontrar información específica dada la amplia documentación que circula.
  • Los mensajes de error que nos muestra no concretan los fallos.
  • Si no sabes mucho de programación, es complejo de usar.

10. Rust

Por último incorporamos a nuestra lista Rust. Aunque es de nicho, su popularidad está aumentando según datos de Google Trends y forma parte de esos nuevos lenguajes de programación. Lo fundaron ingenieros de Mozilla y permite desarrollar software de sistemas, donde la interacción con el usuario es escasa. Es apropiada para aplicaciones con el modelo cliente-servidor.

  • Lenguaje rápido y seguro (gestión automática del guardado y el manejo de la memoria).
  • Basado en expresiones.
  • No puedes utilizar un valor que no haya sido inicializado previamente.
  • Necesitamos por lo menos una función de inicio (la función main).
  • Es más complejo de aprender que otros lenguajes, ya que algunas de sus reglas son diferentes a las habituales.

Ya ves que cada uno tiene sus particularidades y no existe un mejor lenguaje de programación.

10 ejemplos de Hola Mundo

1. Java

public class HolaMundo {
   public static void main(String[] args) {
     System.out.println("Hola, Mundo");
   }
}

2. Python

print "Hola, Mundo"

3. Ruby

puts "Hola Mundo"

4. JavaScript

document.write('¡Hola, Mundo!');

5. C

#include 
#include 

 int main(void)
 {
  printf("Hola, mundo\n");
  return EXIT_SUCCESS;
 }

6. C++

#include 

main()
{
	std::cout << "hola, mundo.";
}

7. Bash

#!/bin/sh
 echo "Hola Mundo"

8. Go

package main

 import "fmt"

 func main() {
	fmt.Printf("Hola, Mundo\n")
 }

10. PHP



Casi todos los lenguajes de programacion



¿A que no te los sabes todos?


B

  • Bertrand
  • BETA
  • Bigwig
  • Bistro
  • BitC
  • BLISS
  • Blue
  • Bon

C

  • C
  • C–
  • C++ – ISO/IEC 14882
  • C# – ISO/IEC 23270
  • C/AL
  • Caché ObjectScript
  • C Shell
  • Caml
  • Candle
  • Cayenne
  • CDuce
  • Cecil
  • Cel
  • Cesil
  • Ceylon
  • CFML
  • Cg
  • Chapel
  • CHAIN
  • Charity
  • Charm
  • Chef
  • CHILL

D

  • D
  • DaVinci Concurrente
  • DASL (Datapoint’s Advanced Systems Language)
  • DASL
  • Dart
  • DataFlex
  • Datalog
  • DATATRIEVE
  • DAVID SASTRE
  • dBase
  • DC
  • DCL
  • Deesel (formalmente G)
  • Delphi

E

  • Esterel
  • Etoys
  • Euclid
  • Euler
  • EUPHORIA
  • EusLisp Robot Lenguaje de programación
  • CMS EXEC
  • EXEC 2
  • EXCEL

F

  • F
  • F#
  • Factor
  • Falcon
  • Fancy
  • Fantom
  • FAUST
  • Felix
  • Ferite
  • FFP
  • Fjölnir

G

  • GJ
  • GEORGE (lenguaje de programación)
  • GLSL
  • GNU E
  • Go
  • Go!
  • GOAL
  • Gödel

H

  • Hope
  • Hugo
  • Hume
  • HyperTalk

I

  • IBM Basic assembly language
  • IBM HAScript
  • IBM Informix-4GL
  • ICI
  • Icon
  • Id

J

  • J
  • J#
  • J++
  • JADE
  • Jako
  • JAL
  • Janus

K

  • K
  • Kaleidoscope
  • Karel
  • Karel++
  • Kaya
  • KEE
  • KIF
  • KRC
  • KRL
  • KRL (KUKA Lenguaje Robot)
  • KRYPTON
  • ksh

L

  • L
  • L# .NET
  • LabVIEW
  • Ladder
  • Lagoona
  • LANSA
  • Lasso
  • LaTeX
  • Lava
  • LC-3
  • Leadwerks Script
  • Leda
  • Lithe
  • Little b
  • Logo
  • Logtalk
  • LPC
  • LSE
  • LSL
  • LiveCode
  • Lua
  • Lucid
  • Lustre
  • LYaPAS
  • Lynx

M

  • Maxima (ver también Macsyma)
  • Max (Max Msp – Entorno de programación gráfico)
  • MaxScript lenguaje interno de 3D Studio Max
  • Maya (MEL)
  • MDL
  • Mercury
  • Mesa
  • Metacard
  • Metafont
  • MetaL
  • Microcode
  • MicroScript
  • MIIS
  • MillScript
  • MIMIC
  • Mirah
  • Miranda
  • MIVA Script
  • ML
  • Moby
  • Model 204
  • Modelica
  • Modula
  • Modula-2
  • Modula-3
  • Mohol
  • Monkey X
  • MOO
  • Mortran
  • Mouse
  • MPD
  • MSIL – nombre deprecado por CIL
  • MSL
  • MUMPS

N

  • Napier88
  • NASM
  • NATURAL
  • Neko
  • Nemerle
  • NESL
  • Net.Data
  • NetLogo
  • NetRexx
  • NewLISP
  • NEWP
  • Newspeak
  • NewtonScript
  • NGL
  • Nial
  • Nice
  • Nickle
  • Nodejs
  • NPL
  • Not eXactly C (NXC)
  • Not Quite C (NQC)
  • Nu
  • NSIS
  • NoSQL (NoSQL)

O

  • OpenEdge ABL
  • OPL
  • OPS5
  • OptimJ
  • Orc
  • ORCA/Modula-2
  • Oriel
  • Orwell
  • Oxygene
  • Oz

P

Q

  • Q (lenguaje de programación ecuacional)
  • Q (lenguaje de programación de Kx Systems)
  • QuakeC
  • QPL

R

S

  • S
  • S2
  • S3
  • S-Lang
  • mIRC scripting
  • S-PLUS
  • SA-C
  • SabreTalk
  • SAIL
  • SALSA
  • SAM76
  • SAS
  • SASL
  • Sather
  • Sawzall
  • SBL
  • Scala
  • Scheme
  • Scilab
  • Scratch
  • Script.NET
  • SOL
  • Span
  • SPARK
  • SPIN
  • SP/k
  • SPS
  • Squeak
  • Squirrel
  • SR
  • S/SL
  • Starlogo
  • Strand
  • STATA
  • Stateflow
  • Subtext
  • Suneido
  • SuperCollider
  • SuperTalk
  • SYMPL
  • SyncCharts
  • SystemVerilog

T

U

V

W

  • WATFIV, WATFOR
  • WebDNA
  • Winbatch

X

  • X++
  • X10
  • XBL
  • XC (aprovecha XMOS architecture)

Y

  • Yorick
  • YQL

Z

  • Z notation
  • Zeno


Quizás eres un programador novel que está comenzando a desenvolverse en algún lenguaje de programación y te está constando arrancar o afianzar todos los conceptos nuevos que te vas encontrando. El aprendizaje de un lenguaje de programación es algo que requiere un relativo alto número de horas, por lo que cuánto mayor sea la calidad de ese tiempo que dediquemos mejor serán los resultados.

A continuación, os expongo una serie de tips o consejos (como queráis llamarlos) inspirados en experiencias propias y unos cuantos posts leídos sobre el tema que rozan la temática de la auto ayuda encapsulada en recetas.

Resuelve un problema real

En muchas ocasiones los ejemplos de código de los libros y tutoriales que nos encontramos se basan en simplonas aplicaciones alejadas de problemas reales. Aunque sea una tarea difícil, empieza a crear tus propios ejemplos. Piensa un proyecto real y traslada la aburrida teoría a una posible solución a un problema real.

Crear un proyecto con una aplicación simple y ve añadiéndole mayor complejidad según vayas avanzando. No hace falta que sea grandioso, simplemente hazlo. Te sentirás orgulloso de ir creado algo real, además de servirte para plasmar todo lo que has ido aprendiendo al cabo del tiempo.

Lee buenos libros y cuida siempre hacer buenas prácticas de programación

Para sentar las bases para ser un buen programador es fundamental aprender sobre patrones de diseño y buenas prácticas de programación. Para ello, es interesante contar con libros de referencia como Clean Code o el mítico “Patrones de diseño de Gamma y cía..”. No es igual de efectivo conocer la sintaxis de un lenguajes que saber programar bien. Más allá de que el propio código compile, e incluso que funcione, está la buena organización del código y su optima implementación.

Un libro relativamente corto (96 páginas) que habla sobre el tema es Code Simplicity. Un descubrimiento que trata de forma acertada cómo el buen diseño de software es simple y fácil de entender. Nos explica de forma concisa como evitar caer en la trampa de la complejidad del código, lo que provoca en la mayoría de los casos el fracaso del software que desarrollamos.

Elige la tecnología correcta

Tomate tu tiempo en elegir el lenguaje o la tecnología que más se ajusta a las necesidades de tu proyecto. Por lo general, lo buenos programadores son capaces de aprender cualquier lenguaje que ellos necesiten en un corto espacio de tiempo. Es fundamental investigar los pros y contras de cierta tecnología que queramos emplear. No te empeñes en seguir una moda simplemente, quizás al cabo de tiempo te des cuentas que no servía para tu proyecto.

No intentes aprender a programar leyendo o viendo vídeo simplemente

Leerse un libro de programación como si tratará de una novela no sirve de nada. Tampoco verse capítulos de cursos de programación como si fuera una serie de televisión. Ambos casos deben ser apoyados con tocar código e ir practicando poco a poco lo que se está aprendiendo.

Dedica todo el tiempo necesario a configurar tu entorno de programación

Cada lenguaje suele tener un entorno de programación característico, por eso es necesario conocer cada una de las herramientas e intentar personalizarlas al máximo con plugins, esquemas de color, conocer los atajos de teclado más importantes, etc… Cuanto más cómodo te sientas con tus herramientas, mejor atención prestarás a tu código.

No tengas prisas

Ya sabemos que muchas veces la necesidad de aprender un nuevo lenguaje o una tecnología surge un nuevo proyecto que realizar, pero tómate tu tiempo para asegurarte que no te olvidas de nada y comprendes. Cuando surja la tentación de utilizar alguna ñapa, sólo para conseguir que funcione, no lo hagas. Es importante tomarse el tiempo necesario para averiguar como hacerlo de la mejor forma posible.

Haz preguntas

Existen multitud de foros de programación donde plantear nuestras dudas. Uno de los más importantes es Stack Overflow. Crea un perfil y comienza a buscar preguntas. Si no encuentras tu duda escribela, seguro que alguien está dispuesto a echarte una mano.

Escribe y escribe código

No tengas miedo y ve practicando escribiendo código. Ten en cuenta un diseño y un análisis previo pero no tengas miedo a plantarte frente al editor de código y comenzar a crear tus propias funciones. Dale vueltas y refactoriza hasta que te sientas orgullo de tu código. El buen código es el que es bonito de leer y además hace correctamente para lo que está pensado.