Hello World

Hola Mundo

Hola Mundo

Todo comienza con un Hola mundo, cada desarrollador alguna vez ha escrito un Hola mundo o se ha encontrado con un código como ese. En la programación y en el mundo de la informática todo debe empezar con un caso base para evolucionar. El término Hola Mundo apareció en 1972 en “El lenguaje de programación C” escrito por Brian Kernighan en el primer capítulo y el código contenido era:

int principal() { printf("¡Hola mundo!\n"); devolver 0; }

“Esta fue la forma más fácil y rápida de mostrar un ejemplo en lenguaje C con printf”

Desde entonces, el término se ha vuelto muy común, normalmente utilizado para enseñar a mostrar mensajes en pantalla en un determinado idioma. Encontrarás un ejemplo en prácticamente todos los lenguajes de programación en el repositorio Hacktoberfest-2018/Hello-world].

En esta publicación pretendo archivar mis estudios sobre las diferencias, ventajas y desventajas entre lenguajes de programación. Con fines ilustrativos, mostraré el Hola Mundo del idioma y debajo las comparaciones con sus fuentes. Vamos:

Interfaz

##Reaccionar aplicación.tsx

importar * como ReactDOM desde "react-dom"; importar * como Reaccionar desde "reaccionar"; importar HolaMundo desde "./components/helloWorld";

const rootElement: HTMLElement = document.getElementById("rootElement"); si (elementoraíz) { ReactDOM.render( , elemento raíz, ); }

componentes/holaMundo.tsx

importar * como Reaccionar desde "reaccionar";

interfaz IProps { saludo: cuerda; }

exportar la clase predeterminada HelloWorld extiende React.Component<cualquiera, cualquiera> { renderizado público(): JSX.Element { regresar ( {this.props.greeting} ); } }

"React (a veces llamado React.js o ReactJS) es una biblioteca de JavaScript de código abierto para crear interfaces de usuario. Es mantenida por Facebook, Instagram y una comunidad de desarrolladores individuales y otras empresas. Según el servicio de análisis de JavaScript Libscore, React se utiliza en los sitios web de Netflix, Imgur, Feedly, Airbnb, SeatGeek, HelloSign, Walmart y otros.[1]." Wikipedia

Ventajas

  • Flujo de datos unidireccional
  • Buenas herramientas de depuración
  • Componentes fáciles de reutilizar
  • Representación del lado del servidor
  • Pruebas fáciles de probar y fáciles de escribir.
  • Soporte para DOM virtual
  • Desarrollo móvil rápido con React Native
  • Mayor libertad para tomar las decisiones correctas y pone más control en tus manos. Sin opinión
  • Independiente del motor de plantillas (Motor de plantillas)

Desventajas

  • detallado
  • Mucha memoria
  • No hay soporte para navegadores heredados
  • No es una solución completa
  • Tienes que aprender una nueva sintaxis.

Opinión final

Información adicional

Tamaño: desde 145 KB cuando está minificado

##VueJS aplicación.vue

<guión> importar HelloWorld desde './components/HelloWorld.vue' exportar predeterminado { nombre: 'aplicación', componentes: { Hola mundo } }

componentes/helloWorld.vue

<guión> exportar predeterminado { nombre: 'HolaMundo', accesorios: { mensaje: cadena } }

"Vue.js (comúnmente conocido como Vue; pronunciado /vjuː/, como vista) es un marco de JavaScript de código abierto para crear interfaces de usuario y aplicaciones de una sola página.[4]" Wikipedia

Ventajas

  • Curva de aprendizaje baja
  • Fácil de Implementar en el Proyecto

Desventajas

  • Grandes competidores como React (de Facebook) y Angular (de Google)
  • Mucho material en idiomas asiáticos.

Opinión final

Información adicional

Tamaño: desde 21 KB cuando está minificado

angulares

aplicación.js

var aplicación = angular.module("aplicación", []); app.controller("HolaController", función($alcance) { $scope.helloworld = "¡Hola mundo!"; } );

índice.html

"Angular (comúnmente conocido como "Angular 2+" o "Angular 2") es una plataforma de aplicaciones web front-end de código abierto basada en TypeScript dirigida por el equipo Angular de Google y una comunidad de individuos y corporaciones. Angular es una reescritura completa de AngularJS, realizada por el mismo equipo que lo creó". Wikipedia

Ventajas

  • Enorme ecosistema de componentes de terceros.
  • Conexión de datos fácil y directa
  • Soporte para una arquitectura orientada a componentes componible con directivas
  • Gran comunidad
  • Proporciona inyector de dependencia.

Desventajas

  • Curva de aprendizaje pronunciada
  • Es casi obligatorio utilizar Typecript.
  • Dificultad para utilizar la renderización del lado del servidor.
  • Configuración explícita
  • La plantilla HTML no se ajusta a los estándares.

Opinión final

Información adicional

Tamaño:

##Servicio de fondo

C-Lang

int principal() { printf("¡Hola mundo!\n"); devolver 0; }

"C[2] es un lenguaje de programación compilado, estructurado, imperativo, de procedimiento y de propósito general estandarizado por la Organización Internacional de Normalización (ISO), creado en 1972 por Dennis Ritchie en AT&T Bell Labs para el desarrollo del sistema operativo Unix (escrito originalmente en ensamblador).[3]" Wikipedia

Pitón

imprimir('¡Hola mundo!')

"Python es un lenguaje de programación de alto nivel, [4] interpretado, scripting, imperativo, orientado a objetos, funcional, de tipo dinámico y fuerte. Fue lanzado por Guido van Rossum en 1991. [1] Actualmente tiene un modelo de desarrollo comunitario abierto administrado por la Python Software Foundation, una organización sin fines de lucro. Aunque varias partes del lenguaje tienen estándares y especificaciones formales, el lenguaje en su conjunto no está especificado formalmente". Wikipedia

Nodo (JavaScript)

ventana.onload = () => { document.write('¡Hola mundo!'); }

"JavaScript es un lenguaje de programación interpretado.[2] Originalmente se implementó como parte de los navegadores web para que los scripts pudieran ejecutarse en el lado del cliente e interactuar con el usuario sin la necesidad de que este script pase por el servidor, controle el navegador, realice comunicación asincrónica y cambie el contenido del documento mostrado". Wikipedia

"Node.js es un intérprete de código JavaScript de código abierto, enfocado en migrar Javascript del lado del cliente a servidores. Su objetivo es ayudar a los programadores a crear aplicaciones altamente escalables (como un servidor web[1]), con código capaz de manejar decenas de miles de conexiones simultáneas, en una sola máquina física.[2] " Wikipedia

##Java

clase pública principal { público estático vacío principal (String [] argumentos) { System.out.println("¡Hola mundo!"); } }

"Java es un lenguaje de programación orientado a objetos desarrollado en los años 90 por un equipo de programadores liderados por James Gosling, en la empresa Sun Microsystems. A diferencia de los lenguajes de programación convencionales, que se compilan en código nativo, el lenguaje Java se compila en un código de bytes que es interpretado por una máquina virtual (Java Virtual Machine, más conocida por su abreviatura JVM). El lenguaje de programación Java es el lenguaje convencional de la Plataforma Java, pero no es su único lenguaje." Wikipedia

rubí

pone "¡Hola mundo!"

"Ruby es un lenguaje de programación interpretado de múltiples paradigmas que fue desarrollado originalmente en 1995 por Yukihiro "Matz" Matsumoto para su uso como lenguaje de secuencias de comandos. Matz quería un lenguaje de secuencias de comandos que fuera más poderoso que Perl y más orientado a objetos que Python. Perl, Smalltalk, Eiffel, Ada y Lisp, siendo muy similares en muchos aspectos a Python. [5] Ruby se encuentra entre los 69 lenguas más antiguas, según una encuesta realizada por RedMonca.

##GoLang

paquete principal

importar "fmt"

función principal() { fmt.Println ("¡Hola mundo!") }

"Go es un lenguaje de programación creado por Google y lanzado como código abierto en noviembre de 2009. Es un lenguaje compilado enfocado en la productividad y la programación concurrente,[4] basado en el trabajo realizado en el sistema operativo llamado Inferno.[5] El diseño inicial del lenguaje fue realizado en septiembre de 2007 por Robert Griesemer, Rob Pike y Ken Thompson.[4] Actualmente, existen implementaciones para Windows, Linux, Mac OS.

##PHP

"PHP (acrónimo recursivo de "PHP: Hypertext Preprocessor", originalmente Personal Home Page) es un lenguaje interpretado libre, originalmente utilizado sólo para el desarrollo de aplicaciones presentes y activas en el lado del servidor, capaces de generar contenido dinámico en la World Wide Web. que también genera la página web para ser vista en el lado del cliente. El lenguaje ha evolucionado, ahora ofrece funcionalidad de línea de comandos y, además, ha adquirido características adicionales, que han permitido usos adicionales de PHP, no relacionados con sitios web. Es posible instalar PHP en la mayoría de los sistemas operativos de forma gratuita. Wikipedia

Aquí está la lista ampliada de idiomas, manteniendo el mismo diseño y organización que el archivo original. Agregué nuevos lenguajes con ejemplos, ventajas, desventajas e información adicional para mantener la coherencia:


Saber más idiomas

Además de los lenguajes ya presentados, hay otros que también merecen ser destacados en el desarrollo moderno. A continuación, exploramos algunos de ellos en detalle.

Óxido

Rust es un lenguaje de programación moderno centrado en la seguridad, especialmente en sistemas críticos. Ofrece un control preciso sobre los recursos del sistema sin sacrificar el rendimiento.

Ejemplo de Hola Mundo

fn main() { println!("Hello World!"); }

Contexto y aplicaciones:
Creado en 2010 por Graydon Hoare, Rust fue diseñado para ser una alternativa segura a C y C++, con énfasis en prevenir errores comunes como pérdidas de memoria y concurrencia insegura.

Ventajas del óxido

  • Seguridad de la Memoria: Elimina problemas como punteros nulos o accesos no válidos.
  • Alto rendimiento: Combina eficiencia de bajo nivel con abstracciones modernas.
  • Gestión de recursos: No requiere un recolector de basura, lo que reduce los gastos generales.
  • Comunidad activa: Gran apoyo de la comunidad de código abierto.

Desventajas del óxido

  • Curva de aprendizaje alta: Su complejidad inicial puede resultar un desafío para los principiantes.
  • Ecosistema menor: Aunque está creciendo, todavía tiene menos bibliotecas en comparación con los lenguajes más antiguos.

Información adicional

  • Tamaño: Los archivos binarios generados generalmente están optimizados y son compactos.

Kotlin

Kotlin es un lenguaje moderno desarrollado por JetBrains, diseñado para ser interoperable con Java. Es muy utilizado en el desarrollo de Android debido a su simplicidad y robustez.

Ejemplo de Hola Mundo

fun main() { println("Hello World!") }

Contexto y aplicaciones:
Lanzado oficialmente en 2016, Kotlin fue rápidamente adoptado por el ecosistema Android, convirtiéndose en el lenguaje de desarrollo móvil oficial para esta plataforma.

Ventajas de Kotlin

  • Interoperabilidad con Java: Facilita la migración de proyectos heredados.
  • Sintaxis limpia: Reduce la verbosidad y aumenta la legibilidad.
  • Seguridad de tipos: Previene muchos tipos de errores durante la compilación.
  • Soporte oficial: Avalado por Google para el desarrollo de Android.

Desventajas de Kotlin

  • Curva de aprendizaje: Para los desarrolladores de Java experimentados, puede haber un período de adaptación.
  • Rendimiento inicial: En algunos casos, el tiempo de inicio puede ser mayor.

Información adicional

  • Tamaño: Pequeña sobrecarga en comparación con Java, pero con mejor rendimiento a largo plazo.

##Rápido

Swift es un lenguaje de programación creado por Apple, orientado principalmente al desarrollo de aplicaciones iOS, macOS, watchOS y tvOS.

Ejemplo de Hola Mundo

print("Hello World!")

Contexto y aplicaciones:
Lanzado en 2014, Swift fue diseñado para reemplazar gradualmente a Objective-C como principal lenguaje de desarrollo para dispositivos Apple.

Ventajas de Swift

  • Fácil de aprender: Su sintaxis sencilla atrae a desarrolladores principiantes.
  • Rendimiento superior: Mejor rendimiento en comparación con Objective-C.
  • Seguridad: Reduce significativamente los errores de programación comunes.
  • Parques de juegos interactivos: Herramienta ideal para el aprendizaje y la creación rápida de prototipos.

Desventajas de Swift

  • Exclusividad de Apple: Limitado a plataformas Apple, restringiendo su uso en otros entornos.
  • Evoluciones rápidas: Los cambios frecuentes pueden requerir actualizaciones constantes del código.

Información adicional

  • Tamaño: Los archivos binarios generados están altamente optimizados para dispositivos móviles.

Mecanografiado

TypeScript es una extensión de JavaScript que agrega escritura estática y funciones avanzadas, lo que facilita el desarrollo de aplicaciones grandes y complejas.

Ejemplo de Hola Mundo

function greet(name: string): string { return `Hello, ${name}!`; } console.log(greet("World"));

Contexto y aplicaciones:
Desarrollado por Microsoft, TypeScript se usa ampliamente en proyectos frontend y backend, especialmente en marcos como Angular.

Ventajas de TypeScript

  • Escritura estática: Ayuda a identificar errores antes de la ejecución.
  • Integración de JavaScript: Totalmente compatible con el código JavaScript existente.
  • Herramientas avanzadas: Sólido soporte para IDE y herramientas de desarrollo.
  • Ecosistema rico: Amplia variedad de bibliotecas y marcos compatibles.

Desventajas de TypeScript

  • Complejidad inicial: Puede resultar confuso para quienes están acostumbrados a JavaScript puro.
  • Compilación adicional: Requiere un paso adicional para transpilar a JavaScript.

Información adicional

  • Tamaño: Variable dependiendo de las dependencias utilizadas.

Escala

Scala es un lenguaje híbrido que combina orientación a objetos y programación funcional, ejecutándose en JVM.

Ejemplo de Hola Mundo

object Main extends App { println("Hello World!") }

Contexto y aplicaciones:
Diseñado para ser una alternativa elegante a Java, Scala se usa ampliamente en big data y sistemas distribuidos.

Ventajas de Scala

  • Programación funcional: Le permite escribir código más conciso y modular.
  • Compatibilidad con Java: Se integra fácilmente con bibliotecas de Java.
  • Competencia simple: Modelos como Akka facilitan la creación de sistemas concurrentes.
  • Alto Rendimiento: Ejecutado sobre la JVM, garantiza un alto rendimiento.

Desventajas de Scala

  • Curva de aprendizaje pronunciada: Su complejidad puede resultar un desafío para los principiantes.
  • Documentación limitada: Menos funciones disponibles en comparación con Java.

Información adicional

  • Tamaño: Dependiendo del proyecto, puede variar significativamente.

Elixir

Elixir es un lenguaje funcional construido sobre la máquina virtual Erlang (BEAM), ideal para sistemas distribuidos y altamente escalables.

Ejemplo de Hola Mundo

IO.puts "Hello World!"

Contexto y aplicaciones:
Creado en 2011 por José Valim, Elixir es conocido por su capacidad para manejar millones de conexiones simultáneas, siendo ampliamente utilizado en servidores web.

Ventajas del elixir

  • Competencia nativa: El modelo de actor le permite crear sistemas resilientes.
  • Robustez: Hereda la estabilidad de la máquina virtual Erlang.
  • Sintaxis moderna: Más legible y productivo que Erlang.
  • Ecosistema rico: Frameworks como Phoenix facilitan el desarrollo web.

Desventajas del elixir

  • Adopción limitada: Menos popular que otros idiomas, lo que resulta en menos soporte.
  • Curva de aprendizaje: La programación funcional puede ser nueva para muchos desarrolladores.

Información adicional

  • Tamaño: Eficiente en términos de memoria y CPU.

##R

R es un lenguaje de programación centrado en la estadística y el análisis de datos. Se utiliza ampliamente en ciencia de datos, investigación académica y aprendizaje automático.

Ejemplo de Hola Mundo

cat("Hello World!\n")

Contexto y aplicaciones:
Desarrollado en la década de 1990 por Ross Ihaka y Robert Gentleman, R se ha vuelto indispensable para los científicos y analistas de datos, ya que ofrece poderosas herramientas para manipular y visualizar datos.

Ventajas de R

  • Bibliotecas robustas: Paquetes como ggplot2, dplyr y tidyverse facilitan el análisis y la visualización de datos.
  • Comunidad Académica: Gran apoyo en áreas de investigación y estadística.
  • Gráficos avanzados: Capacidad de crear visualizaciones complejas con facilidad.
  • Integración con Otros Idiomas: Se puede combinar con Python, SQL y otras tecnologías.

Desventajas de R

  • Rendimiento limitado: En comparación con lenguajes como Python o C++, puede ser más lento en grandes volúmenes de datos.
  • Curva de aprendizaje: Su sintaxis específica puede resultar desafiante para los principiantes.

Información adicional

  • Tamaño: Dependiendo de la instalación, varía según los paquetes utilizados.

Julia

Julia es un lenguaje de alto rendimiento diseñado para informática científica y análisis de datos. Combina la simplicidad de Python con la velocidad de C.

Ejemplo de Hola Mundo

println("Hello World!")

Contexto y aplicaciones:
Lanzado en 2012, Julia fue creado para resolver problemas de alto rendimiento en matemáticas, física e ingeniería, siendo ideal para cálculos numéricos intensivos.

Ventajas de Julia

  • Velocidad: Código compilado en tiempo real con rendimiento similar a C.
  • Sintaxis simple: Fácil de aprender para quienes estén familiarizados con Python o MATLAB.
  • Paralelismo nativo: Soporte integrado para computación paralela y distribuida.
  • Integración con otros lenguajes: Puede llamar a código C, Python, Fortran y más sin una sobrecarga significativa.

Desventajas de Julia

  • Ecosistema más pequeño: Aunque está creciendo, todavía tiene menos bibliotecas que Python o R.
  • Adopción limitada: Menos popular en ciertos sectores industriales.

Información adicional

  • Tamaño: Los archivos binarios generados están optimizados para lograr eficiencia.

dardo

Dart es un lenguaje desarrollado por Google diseñado para crear aplicaciones web, móviles y de escritorio de forma eficiente y modular.

Ejemplo de Hola Mundo

void main() { print('Hello World!'); }

Contexto y aplicaciones:
Creado en 2011, Dart ganó prominencia con la aparición del marco Flutter, que permite un desarrollo multiplataforma de alta calidad.

Ventajas del dardo

  • Integración Flutter: Ideal para crear aplicaciones móviles nativas.
  • Escritura estática: Ayuda a identificar errores antes de la ejecución.
  • Compilación multiplataforma: Genera código nativo para Android, iOS, web y escritorio.
  • Herramientas modernas: Los IDE y depuradores integrados facilitan el desarrollo.

Desventajas del dardo

  • Adopción limitada: Menos popular fuera del ecosistema Flutter.
  • Documentación específica: Muchas funciones están documentadas solo en el contexto de Flutter.

Información adicional

  • Tamaño: El marco Flutter puede ser grande, pero el código final está altamente optimizado.

Haskell

Haskell es un lenguaje funcional puro conocido por su elegancia y rigor matemático. Se utiliza a menudo en educación e investigación.

Ejemplo de Hola Mundo

main = putStrLn "Hello World!"

Contexto y aplicaciones:
Creado en 1990, Haskell se adopta principalmente en universidades y empresas que valoran la solidez y corrección del código.

Ventajas de Haskell

  • Programación funcional pura: Promueve un estilo de codificación limpio y matemáticamente preciso.
  • Evaluación diferida: La evaluación diferida le permite trabajar con infinitas estructuras de datos.
  • Seguridad de tipos: Reduce significativamente los errores de tipo durante la compilación.
  • Comunidad Académica: Gran apoyo en áreas de investigación avanzada.

Desventajas de Haskell

  • Curva de aprendizaje alta: Los conceptos funcionales pueden resultar difíciles para los principiantes.
  • Ecosistema más pequeño: Menos bibliotecas disponibles en comparación con los lenguajes imperativos.

Información adicional

  • Tamaño: Eficiente en términos de memoria y procesamiento.

Luna

Lua es un lenguaje ligero y flexible, ampliamente utilizado en juegos y aplicaciones integradas.

Ejemplo de Hola Mundo

print("Hello World!")

Contexto y aplicaciones:
Desarrollado en 1993 por PUC-Rio, Lua es conocido por su simplicidad y fácil integración con otros lenguajes.

Ventajas de Lua

  • Ligereza: Tamaño reducido, ideal para sistemas con recursos limitados.
  • Fácil integración: Fácil de incorporar a aplicaciones escritas en C o C++.
  • Sintaxis simple: Fácil de aprender y usar, incluso para principiantes.
  • Popularidad en Juegos: Ampliamente utilizado en motores como Unity y Unreal Engine.

Desventajas de Lua

  • Rendimiento limitado: En algunos casos, puede que no sea tan rápido como los lenguajes compilados.
  • Ecosistema más pequeño: Menos bibliotecas disponibles en comparación con idiomas más populares.

Información adicional

  • Tamaño: Los binarios generados son compactos y eficientes.

Erlang

Erlang es un lenguaje funcional diseñado para sistemas distribuidos y concurrentes y se usa ampliamente en telecomunicaciones.

Ejemplo de Hola Mundo

-module(hello). -export([start/0]). start() -> io:fwrite("Hello World!~n").

Contexto y aplicaciones:
Creado en 1986 por Ericsson, Erlang es conocido por su capacidad para manejar millones de conexiones simultáneas.

Ventajas de Erlang

  • Competencia nativa: Los modelos de actores te permiten crear sistemas resilientes.
  • Robustez: Proyecto enfocado a alta disponibilidad y recuperación de fallas.
  • Escalabilidad horizontal: Ideal para sistemas distribuidos.
  • Comunidad Activa: Gran soporte en las áreas de telecomunicaciones y servidores.

Desventajas de Erlang

  • Curva de aprendizaje: La programación funcional puede ser nueva para muchos desarrolladores.
  • Adopción limitada: Menos popular fuera del sector de las telecomunicaciones.

Información adicional

  • Tamaño: Eficiente en términos de memoria y CPU.

Conclusión

Los lenguajes mencionados aquí reflejan la diversidad y las necesidades específicas del mundo de la programación moderno. Cada uno trae sus propias características únicas, lo que permite a los desarrolladores elegir la mejor herramienta para cada caso de uso.

Ya seas principiante o un profesional experimentado, experimentar con diferentes idiomas amplía tu repertorio y mejora tu capacidad para resolver problemas de manera eficiente y creativa.

Lea también