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 “alto” 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 alto. Si
estás acostumbrado a Ruby, Java puede parecer un lenguaje de bajo nivel.
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
MuY buena explicación, muchas gracias.
ResponderBorrar