jueves, 9 de noviembre de 2017

Alto nivel vs Bajo nivel – ¿Qué lenguaje de programación deberías aprender?

Cuando intentas averiguar qué lenguaje de programación aprender, es probable que encuentres los términos “alto nivel” y “bajo nivel”. La gente habla de lenguajes de programación de alto y bajo nivel todo el tiempo.



Pero, ¿qué significa eso exactamente? ¿Y qué significa aprender a escribir código? Comencemos con las definiciones de cada uno y partamos desde allí.

Lenguajes de programación “superior” y “bajo nivel”

A lo largo de este artículo, hablaré sobre los lenguajes de “alto” y “bajo”nivel . Pero no hay criterios de calificación específicos para ninguno de los dos. Por eso también hablaré sobre niveles “más altos” y “más bajos”.

Solo ten en cuenta que depende en gran medida de tu perspectiva. Si eres un programador de C, Java puede parecer bastante altoSi estás acostumbrado a Ruby, Java puede parecer un lenguaje de bajo nivel.

Alto nivel vs Bajo nivel – ¿Qué lenguaje de programación deberías aprender?

Lenguaje de máquina y lenguajes de bajo nivel
Si un lenguaje se considera de alto nivel o de bajo nivel (o en algún punto intermedio) tiene que ver con la abstracción. El lenguaje de máquina no tiene abstracción, contiene las instrucciones individuales pasadas a una computadora. Y dado que las máquinas solo tratan en números, están representadas en binario (aunque a veces están escritas en notación decimal o hexadecimal).

En el lenguaje de máquina, las operaciones deben especificarse exactamente. Por ejemplo, si es necesario recuperar una parte de la información de la memoria, el lenguaje de máquina deberá indicarle a la computadora dónde se encuentra en la memoria para encontrarla.

Escribir directamente en lenguaje de máquina es posible, pero muy difícil.

Los lenguajes de programación de bajo nivel agregan un poco de abstracción al lenguaje de máquina. Esta abstracción oculta instrucciones específicas de lenguaje de máquina detrás de declaraciones que son más legibles para el ser humano. Los lenguajes de assembler son los de nivel más bajo junto al lenguaje de máquina.

En el lenguaje de máquina, puedes escribir algo como “10110000 01100001” – pero un lenguaje ensamblador podrías simplificar eso a “MOV AL, 61h”. Todavía hay una correspondencia casi uno a uno entre lo que está escrito en el lenguaje ensamblador y las instrucciones pasadas a la máquina.

Entrando en los lenguajes de programación más populares, llegamos a algo así como C. Aunque no es tan bajo como un lenguaje ensamblador, todavía hay una gran correspondencia entre lo que está escrito en C y el lenguaje de máquina. La mayoría de las operaciones escritas en C se pueden completar con un pequeño número de instrucciones de lenguaje de máquina.

Lenguajes de programación de alto nivel
Al igual que los lenguajes de bajo nivel, los de alto nivel cubren un amplio espectro de abstracción. Algunos, como Java (que podría decirse que es en realidad un lenguaje de programación de nivel medio), aún te dan mucho control sobre cómo la computadora administra la memoria y los datos.

Otros, como Ruby y Python, son muy abstractos. Te dan menos acceso a esas funciones de bajo nivel, pero la sintaxis es mucho más fácil de leer y escribir. Puedes agrupar elementos en clases, que heredan características, por lo que solo debes declararlas una vez. 


Las variables, los objetos, las rutinas y los bucles son partes importantes de los lenguajes de alto nivel. Estos y otros conceptos te ayudan a decirle a la máquina que haga muchas cosas con declaraciones breves y concisas.

Cuando un lenguaje ensamblador tiene una correspondencia casi uno a uno entre sus comandos y los comandos de lenguaje de máquina, un lenguaje de alto nivel podría enviar docenas de comandos con una sola línea de código.

Es importante tener en cuenta que los “lenguajes de programación de alto nivel” pueden incluir todo lo que es más abstracto que un lenguaje ensamblador. Depende de quién esté discutiendo el tema. 

¿Deberías aprender un lenguaje de bajo o alto nivel?
Esta seguramente será una pregunta común entre los programadores novatos y aspirantes. ¿Son mejores los lenguajes de programación de alto o bajo nivel? Como es el caso con muchas preguntas de programación, la pregunta de lenguajes de programación de alto nivel vs. de bajo nivel no es tan simple.

Ambos tipos de idiomas tienen importantes beneficios. Los lenguajes de bajo nivel, debido a que requieren poca interpretación por parte de la computadora, generalmente funcionan muy rápido. Y les dan a los programadores un gran control sobre el almacenamiento de datos, la memoria y la recuperación.

Sin embargo, los lenguajes de alto nivel son intuitivamente más fáciles de comprender y permiten a los programadores escribir el código de manera mucho más eficiente. Estos lenguajes también se consideran “más seguros”, ya que existen más medidas de seguridad que impiden que los programadores emitan comandos mal escritos que podrían causar daños. Pero no les dan a los programadores tanto control sobre los procesos de bajo nivel.

Teniendo esto en cuenta, aquí hay una selección de lenguajes populares en una escala de menor a mayor:
  • C
  • C++
  • Java
  • C#
  • Perl
  • Lisp
  • JavaScript
  • Python
  • Ruby
  • SQL
Por supuesto, esto es parcialmente subjetivo. Y solo incluye una pequeña sección de los lenguajes disponibles.
Pero debería darte una idea de qué lugar ocupan los lenguajes de programación más conocidos.
¿Qué quieres hacer?
Al decidir lo que quieres aprender, tu primera pregunta debe ser qué quieres programar.
Si estás buscando escribir sistemas operativos, núcleos o cualquier cosa que necesite ejecutarse a la velocidad más alta posible, un lenguaje de bajo nivel podría ser una buena opción. Gran parte de Windows, OS X y Linux están escritos en C y derivados de C, como C++ y Objective-C.

Muchas aplicaciones modernas están escritas en lenguajes de alto nivel . Python y Ruby son especialmente populares para aplicaciones web, aunque HTML5 es cada vez más poderoso. Los lenguajes como Swift, C#, JavaScript y SQL tienen todos sus puntos fuertes y débiles.

Considera aprender ambos
Recientemente leí un hilo acerca de esta misma pregunta en un foro de programación, y encontré una sugerencia interesante: aprende ambas cosas a la vez. Obtendrás una comprensión más profunda de los tipos de abstracciones que hacen que el lenguaje de alto nivel r sea más eficiente.

Por supuesto, aprender dos lenguajes a la vez no es fácil , por lo que es posible que desees escalonarlos un poco. Y elegir dos lenguajes similares también podría ser útil.
De nuevo, volveremos al punto que mencioné anteriormente: elije un lenguaje según lo que deseas construir. Investiga un poco para saber qué lenguajes usan las personas en su campo. Luego usa esa información para elegir un lenguajde de alto y bajo nivel, y comienza a estudiarlos.

Pronto los verás en paralelos y obtendrás una comprensión mucho más profunda de cómo funciona la programación.

Enfócate en los objetivos, no en los medios
Hay muchos criterios que se pueden usar para elegir un lenguaje de programación: Alto vs bajo nivel es uno de ellos. Pero en casi todos los casos, el criterio que debe usarse es el qué deseas programar.

Tu proyecto podría beneficiarse de un lenguaje de bajo nivel. O podría ser mucho más eficiente en uno de alto nivel. La clave es elegir la herramienta adecuada para el trabajo. Concéntrate en tu objetivo y elegirás el lenguaje correcto todo el tiempo.
¿Tienes experiencia con lenguajes de alto y bajo nivel? ¿Cuál prefieres? – Por favor comparte el post en las redes sociales.


Fuente: Makeuseof

1 comentario:

Tu opinión es importante para mí, porque me ayuda a mejorar. Si te gustó el articulo o tienes alguna sugerencia, déjame tu comentario con tu nombre para poder responderte tan pronto como pueda.