You are on page 1of 12

Chris Nash

Senior Specialist, Software Engineering (1993–present)Jan 18

What is the best way to approach the world of programming languages?

1. Figure out what you want to do


2. Find out which language best supports that
There may be more than one right answer. For example:

• DevOps: Probably Python. SQL too.


• PC and console video games: C++. Or C#.
• Mobile video games: Holy crap. Flutter? Kotlin? C#? Swift? Lots of choices, so
much confuse.
• Back end: Java or C#. C++ is sometimes to right answer. Probably Python too.
And SQL. Kotlin is great too.
• Front end: HTML, CSS, JavaScript. Maybe C# too if you use Blazor.
• Full stack: Everything for back end and front end.
Software engineers are rarely monolingual anymore. After learning one language, the others come
easier. And often you don’t even have to be EXPERTS at them to be effective.

Ilustración que muestra DevOps como la intersección de desarrollo, operaciones de tecnología y calidad (QA)

Chris Nash

·
Follow

Senior Specialist, Software Engineering (1993–present)Mon

What are the fundamental differences between Python, Java, Swift, and C?

Many.

Python:

• Interpreted at runtime
• i.e. Slow
• Easy to learn
• Deployment is a nightmare
• It’s take on OO is weird
• Great for small utilities and “scripts”

Java:

• Compiled to byte code, which is then executed by at runtime


• i.e. Pretty fast
• Not too bad to learn
• Deployment is easy and straight-forward
• Solid OO language
• Good for small applications and desktop apps, but great for backend operations

Swift:

• Compiles to native code


• i.e. Should be pretty fast
• An Apple-only language
• Better than Objective-C
• Never used it

C:

• The grand-daddy of most modern programming languages


• Compiles to native code
• i.e. Fast
• Not too bad to learn, but has many “gotchas”
• Easy deployment
• Completely procedural language; no OO features
• Good for desktop and low-level programs. Not the best for back end or web front end operations
2.2.1 Intérpretes
Un intérprete es un traductor que toma un programa fuente, lo traduce, y a continuación lo ejecuta. Los pasos
son:

1. Programa fuente -> 2. Intérprete -> 3. Traducción y ejecución línea a línea.

El lenguaje de programación Python es un lenguaje que se caracteriza por ser interpretado (es
decir, que no se compila), cuya filosofía hace hincapié en la legibilidad de su código. Es un
lenguaje de programación multiparadigma, ya que puede soportar programación orientada
a objetos, programación imperativa y funcional. Es un lenguaje dinámico y multiplataforma.

JavaScript® (a menudo abreviado como JS) es un lenguaje ligero, interpretado y orientado a objetos
con funciones de primera clase, y mejor conocido como el lenguaje de programación para las páginas
Web, pero también se utiliza en muchos entornos que no son de navegador.
Ver no obstante: https://ivanrobles.pro/javascript-compilado-o-interpretado/
Programa fuente

Compilador

Programa objeto

Fig. La compilación de programas

Ver: https://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n

https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/paradigmas-de-programacion/
Programación Estructurada
EJECUTAR EN LA CONSOLA COMO JAVASCRIPT.
JAVA
La idea de Java, por el contrario al de C++, es poner una capa sobre cualquier plataforma de hardware
y sobre cualquier sistema operativo para permitir que cualquier aplicación desarrollada en Java quede
ligada únicamente a Java, independizada, por lo tanto, de la plataforma. Esta concepción queda
recogida en el concepto de máquina virtual JVM (Java Virtual Machine), un software que interpreta
instrucciones para cualquier máquina sobre la que esté corriendo y que permite, una vez instalado, que
una misma aplicación pueda funcionar en un PC o en un Mac sin tener que tocarla. Hoy en día, cualquier
sistema operativo moderno ( Windows, Macintosh, Linux, Unix, Solaris, etc) cuenta con una JVM. Así,
lo que hace Java en combinación con esta “maquina” es funcionar como hardware y como sistema
operativo virtual, emulando en software una CPU universal. Al instalar Java ésta actuará como una capa
de abstracción entre un programa y el sistema operativo, otorgando una total independencia de lo que
haya por debajo, es decir: cualquier aplicación funcionará en cualquier máquina e incluso en cualquier
dispositivo. Otra gran ventaja es que los programadores no tendrán que desarrollar varias versiones de
la misma aplicación, puesto que el modelo de desarrollo es el mismo se trate del dispositivo más
pequeño o del más grande de los servidores. Otra gran ventaja es que permite que todas las máquinas,
plataformas y aplicaciones se comuniquen entre sí accediendo desde cualquier equipo, donde quiera
que esté situado, a las aplicaciones que residan en una red, ya sea Internet o una intranet o extranet.
En definitiva, se puede decir que Java es lo más cercano a un lenguaje de computación universal que
existe hoy día, lo que significa que puede correr en cualquier plataforma siempre y cuando una máquina
virtual haya sido escrita para ella.
Bytecode

Es un lenguaje intermedio. El programador, durante el proceso de desarrollo escribe el código


fuente en Java y lo pasa por un compilador, que da lugar a los bytecodes.
En la etapa de ejecución, estos bytecodes, independientes del equipo o dispositivo de destino,
son interpretados y ejecutados instrucción a instrucción por una máquina virtual Java (Java
VM). De este modo, frente a un único proceso de compilación tendremos tantos procesos de
interpretación como veces ejecutemos la aplicación correspondiente. Así, cada intérprete Java,
tanto si se trata de una herramienta de desarrollo como de un navegador web con capacidad
para ejecutar applets (pequeñas aplicaciones escritas en Java) se puede considerar como una
implementación de dicha máquina virtual.
Resumen
Una computadora es una máquina para procesar información y obtener resultados en función de
unos datos de entrada.
Hardware: parte física de una computadora (dispositivos electrónicos).
Software: parte lógica de una computadora (programas)
Las computadoras se componen de:
. Dispositivo de Entrada/Salida (E/S).
. Unidad Central de Proceso (Unidad de Control y Unidad Lógica y Aritmética).
. Memoria central.
. Dispositivos de almacenamiento masivo de información (memoria auxiliar o externa)

El software del sistema comprende, entre otros, el sistema operativo (Windows o Linux en
computadoras personales) y los compiladores e intérpretes de lenguajes de programación.
Los lenguajes de programación de alto nivel están diseñados para hacer más fácil la escritura de
programas que los lenguajes de bajo nivel. Existen numerosos lenguajes de programación, cada uno
de los cuales tiene sus propias características y especialidades. Los programas escritos en lenguajes de
alto nivel son, normalmente, más fáciles de transportar a máquinas diferentes que los escritos en
lenguajes de bajo nivel.
Los programas escritos en lenguajes de alto nivel deben ser traducidos por un compilador antes de
que se puedan ejecutar en una máquina específica. En la mayoría de los lenguajes de programación se
requiere un compilador para cada máquina en la que se desea ejecutar programas escritos en un
lenguaje específico. Los lenguajes de programación se clasifican en:

- alto nivel: Python, C, C++, C#, Java, Visual Basic, VB.NET, FORTRAN, Ada, Modula-2,
Delphi, etc.
- bajo nivel: Ensamblador.
- máquina: Código máquina.
Los programas traductores de lenguaje son:
- compiladores.
- intérpretes.

You might also like