Lenguajes de programación: Todo lo que un programador que se respeta debería saber
Lenguajes de programación hay muchos, sabes diferenciarlos? en este artículo te comento todo lo que un desarrollador debería saber de este tema 🔥

Esta entrada debería ser de lectura obligatoria para todo developer o entusiasta😄 y es que en un lenguaje sencillo te comentaré qué son los lenguajes de programacion y porqué hay tantos, que diferencia a uno de otro, en fin como ya verás, conceptos fundamentales del desarrollo de software pero que muchos se saltan y de ahí vienen los problemas. Comencemos.

Definiciones

La programación es el proceso mediante el cual se le brinda instrucciones a una máquina inteligente, que puede ser un móvil, un ordenador o cualquier cosa parecida, también llamada Hardware, para que realice las funciones y operaciones que nosotros le indiquemos.

Así como nosotros entre seres humanos nos comunicamos mediante el uso del lenguaje, como el que estoy usando en este preciso momento comunicándome contigo mediante el lenguaje escrito en Español, existen muchos otros lenguajes y lenguas, cada una con sus particularidades, ventajas y desventajas.

De igual manera para que podamos comunicarle lo que queremos que haga un programa informático o incluso hacer que un programa se comunique con otro, debemos "hablarles" en su idioma, y a esto se le llama "código informático" y este se escribe en un lenguaje de programación.

Veamos ahora cómo se clasifican los lenguajes de programación:

Clasificación por Niveles de código

El lenguaje que toda máquina computacional entiende naturalmente es decir el cual usa de forma nativa, es el lenguaje máquina que está formado por unos y ceros,

Es por esto que en películas cuando se habla de tecnología caen como una lluvia de 1 y 0 😄

Este es el lenguaje nativo de todo hardware como un microprocesador ya que el "entiende" pulsos eléctricos donde un pulso viene a ser 1 y una ausencia viene a ser 0, esto es el codigo binario. Profundizar en este tema es entrar ya en el mundo de la electrónica, pero para un desarrollador de software es bueno conocer estas bases de forma superficial al menos.

El hardware, Photo by Yogesh Phuyal on Unsplash

Como podrás imaginar nadie programa en lenguaje máquina ya que hacerlo sería además de tremendamente difícil, casi imposible y poco práctico.

Aquí es donde entra a tallar el concepto de Niveles de código, para entenderlo mejor hice este gráfico:

Elaboración propia

Low level o Bajo nivel

Podemos imaginarnos a la comunicación con las máquinas como una serie de capas de una cebolla en la cual el núcleo sería el hardware (parte física del equipo, por ejemplo el procesador) entonces mientras más cerca de él este un lenguaje de más bajo nivel será (y menos humano también, osea más difícil de entender 🤯).

El lenguaje de bajo nivel que se comunica directamente con el lenguaje máquina es el lenguaje llamado ensamblador o Assembler en Inglés.

Debido a que el lenguaje ensamblador es con el cual la máquina más se familiariza, esto lo hace poseedor de una gran ventaja: la velocidad, es como hablar con un buen amigo en nuestro lenguaje nativo, esa sería una conversación clara y directa.

Codificar en lenguaje ensamblador no es imposible, de hecho hay programadores que lo hacen en la actualidad, sin embargo, como podrán imaginar lo que es más fácil para las máquinas es más difícil para nosotros los humanos, entonces es bastante difícil dominarlo y poco práctico para que alguien inicie en este mundo de la programación, como es tan complejo tiende a ser voluminoso y es propenso a errores involuntarios y corregirlos o encontrar el error podría ser una pesadilla, esa es su desventaja principal.

High level o Alto nivel

Son lenguajes más "humanizados" ya que están orientados a resolver problemas y ser razonablemente más sencillos de utilizar por un ser humano, aquí es donde los desarrolladores de software actuamos y usamos cualquiera de los muchos lenguajes que hoy en día existen.

Incluso dentro del alto nivel existe algunos lenguajes más cercanos al bajo nivel que otros, es decir que aunque son de alto nivel, nos permiten poder acceder a la memoria y desarrollar sistemas operativos como es el caso del lenguaje C, muchas personas incluso lo llaman de nivel medio.

Si deseas sabe un poco más de C, en sistema operativo que se hizo gracias a él y su descubridor, te invito a leer esta entrada.

Clasificación por su paradigma

Los lenguajes de alto nivel también se clasifican por su paradigma, es decir sus características y pueden ser de dos clases:

  • Lenguajes imperativos

Son aquellos lenguajes que trabajan con instrucciones paso a paso y bien detalladas, las cuales se van ejecutando en un orden establecido a modo de secuencia de operaciones a realizar por el hardware.

Debido a que uno le dice las instrucciones que debe seguir el hardware, estos lenguajes se centran en el cómo resolver un problema.

Como ejemplo tenemos a BASIC, C, C#, C++, PHP, JAVA, SQL.

Dentro de los lenguajes imperativos tenemos algunos tipos de paradigmas:

Procedimentales: Tenemos a FORTRAN, COBOL, ALGOL, BASIC, C y PASCAL

Orientados a Objetos: C++, Java, C#, Python

  • Lenguajes declarativos

Son aquellos que en vez de decirle al ordenador cómo resolver una cosa, le dicen qué deben resolver

Como ejemplo tenemos a Prolog, Lisp, Haskell.

Dentro de este tipo de lenguajes declarativos, tenemos también algunos tipos de paradigmas:

Funcionales: Tenemos a Haskell, Miranda y Erlang.

Lógicos: Prolog

Matemáticos: Wolfram, R y Matlab.

Reactivos: RxJava, Rx.NET, RxGo (más información aquí)

Tener en cuenta que hay lenguajes multiparadigma como es el caso de C#, Java o Javascript los cuales soportan más de un paradigma de programación.

Photo by Austin Distel on Unsplash

Ahora que ya conoces un poco más de los lenguajes de programación podrás utilizarlos con más propiedad, y aplicar bien los conceptos, por ahí que te preguntan en alguna entrevista, entonces les dirás lo sé gracias a Bravedeveloper! 💪😄

Si esta entrada te ha gustado considera compartirla crack!

Un comentario en «Lenguajes de programación: Todo lo que un programador que se respeta debería saber»

Deja una respuesta

Tu dirección de correo electrónico no será publicada.