Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como cpp

Ballerina en un vistazo (10): comparativa con C++

En este post haremos una comparativa entre Ballerina y C++ . Ballerina fue creado por WSO2 para aplicaciones distribuidas y cloud‑native, mientras que C++ (de Bjarne Stroustrup) es un lenguaje clásico de propósito general, orientado a alto rendimiento y sistemas críticos. Ambos lenguajes, Ballerina y C++ , representan dos filosofías muy distintas. Quien haya programado en C no nos dejará mentir: C++ no solo es su evolución directa natural, si no es su versión "hard". C++ no solo comparte las características que hicieron a C un lenguaje poderoso (punteros, asignación dinámica de memoria, etc.) sino que los expande con sus propias peculiaridades. Aqul que use C++ debe ser cuidadoso si no quiere otro colapso como el de Crowdstrike . Ballerina por su parte no es tan utilizado en la industria. Muy pocas empresas se atreven a usar lenguajes como este o cualquier otro como Go, Rust, Kotlin, etc. El nicho del mercado esta enfocado en lenguajes como Java, C#, C...

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Rust: un vistazo más (3)

En Rust existe una propiedad llamada `` Ownership ``, la cual es: la característica especial que permite a Rust garantizar la seguridad de la memoria sin necesidad de un recolector de basura . Ownership : es el un conjunto de reglas que rigen la forma en que un programa de Rust administra la memoria. Esta característica permite que la memoria se administre a través de un sistema de propiedad con un conjunto de reglas que el compilador verifica. Si se viola alguna de las reglas, el programa no se compilará. Heap, Stack y Garbage collection Heap :  son secciones de memoria que se utilizan para almacenar datos en un programa. Stack : es una estructura simple que se usa para variables locales y llamadas a funciones. Garbage collection : es un recolector de basura, un proceso automático que libera memoria de un programa. Reglas básicas de Ownership Cada valor en Rust tiene un propietario ; si se transfiere la propiedad (move), el propietario anterior pierde acce...

Ziglang, un lenguaje de programación similar a C++

Ziglang es: un lenguaje de programación de propósito general y cadena de herramientas para mantener un software robusto, óptimo y reutilizable. Anteriormente hemos hablado de los "nuevos" lenguajes de programación que vienen a ser la respuesta a los clásicos problemas de la programación: escalabilidad, robustez, rendimiento, manejo de memoria, control de errores, etc. Y Ziglang no se quiere quedar atrás. Ziglang es un lenguaje que: Promete ser simple.  Sin flujo de control oculto.  Sin asignaciones de memoria ocultas.  Sin preprocesador, sin macros.  Te permitirá invocar a cualquier función en tiempo de compilación.  Interoperabilidad con C/C++. Si quieres instalarlo, puedes echar un vistazo en ésta página: https://ziglang.org/learn/getting-started Si solo quieres probarlo, puedes echar un vistazo en ésta página: https://codapi.org/zig/ El clásico "Hola, mundo" Comencemos con un ejemplo sencillo: holamundo.zig const std = @ import( ...

Un vistazo a Carbon Language: un sucesor experimental de C++

Todo lenguaje de programación que se digne de serlo pretende ser la respuesta a todos los problemas de la programación (recolección de basura, seguridad, escalabilidad, rendimiento, portabilidad, etc.) y en ésta ocasión presentamos a Carbon Language , un "nuevo" lenguaje de programación que , nada humilde, pretende ser el reemplazo del poderoso, temido y odiado C++ (que a su vez pretendió ser el reemplazo del mítico C ). Carbon Language fue diseñado para tener lo mejor de C++ y lo peor mejor olvidarlo. Promete: Rendimiento equivalente a C++ mediante LLVM , con acceso de bajo nivel a bits y direcciones. Interopere con su código C++ existente, desde la herencia hasta las plantillas.  Compilaciones rápidas y escalables que funcionan con sus sistemas de compilación C++  existentes. ¿Por qué existe Carbon Language? El sitio trata de explicar el por qué de su creación: "C++ sigue siendo el lenguaje de programación dominante para software de rendimiento crít...

Odin Programming Language, un lenguaje orientado a datos

El sitio oficial define a Odin como: Un lenguaje de programación de propósito general con tipado diferenciado creado para sistemas modernos de alto rendimiento y programación orientada a datos. Principios de Odin Simplicidad.  Rendimiento alto. Enfocado a sistemas modernos. Para quienes disfrutan la programación. Promete ser un lenguaje escalable, eficiente en la administración de recursos y memoria, entre otras características más. Se considera un C disfrutable (sic). Si sabes C, C++ o incluso Java, Scala y Kotlin su sintaxis se te hará familiar. Junto con Rust, Vlang, Dlang, Golang son considerados lenguajes maduros que han aprendido de los errores de sus antecesores y han adoptados sus principales características. Nota: Para quienes no sepan, Odin es un dios nórdico, padre de Thor y de ahí el nombre del lenguaje de programación (de nada). Si quieres instalar el lenguaje en tu máquina, ve a este sitio: https://odin-lang.org/docs/install/ Si solo quieres p...

The Dream Programming Language? Lobster (Youtube)

Un vídeo sobre el lenguaje de programación Lobster. Enlaces: https://alquimistadecodigo.blogspot.com/2024/08/lobster-en-un-vistazo.html

Webassembly: Hola, mundo en C

WebAssembly (abreviado Wasm) es un formato de instrucción binaria para una máquina virtual basada en pila. Wasm está diseñado como un objetivo de compilación portátil para lenguajes de programación, lo que permite la implementación en la web para aplicaciones de cliente y servidor. Esto permite que podamos crear código en C, C++, Rust, etc. y ejecutarlo en nuestro navegador.  Características más importantes: Eficiente y rápido Seguro Abierto y depurable Parte de la plataforma web abierta ¿Y qué con Emscripten? Emscripten es una cadena de herramientas de compilación completa para WebAssembly , que utiliza LLVM, con un enfoque especial en la velocidad, el tamaño y la plataforma web. Con Emscripten se puede: 1. Compilar código C y C++, o cualquier otro lenguaje que use LLVM, en WebAssembly y ejecutarlo en la web, Node.js u otros tiempos de ejecución de wasm . 2. Compilar los tiempos de ejecución de C/C++ de otros lenguajes en WebAssembly y luego ...

Rust: usando Cargo para crear un proyecto

  En este post veremos como crear un proyecto usando Cargo , el cual es el sistema de construcción y administrador de paquetes de Rust. Instalamos Rust (en caso de no tenerlo ya instalado): curl --proto '=https' --tlsv1. 2 -sSf https: //sh.rustup.rs | sh Comprobamos la instalación de Rust y Cargo: rustc --version cargo --version Creamos un proyecto con Cargo: cargo new mi_paquete cd mi_paquete Si todo funcionó correctamente, te creará la siguiente estructura de archivos y carpetas: mi_paquete/ ├── Cargo. lock ├── Cargo. toml ├── src │   └── main. rs └── target ├── CACHEDIR. TAG Veremos a continuación el contenido de los archivos: Cargo.toml y main.rs Cargo.toml [package] name = "mi_paquete" version = "0.1.0" edition = "2021" authors = [ "Alquimista de Código <alquimista.codigo@gmail.com>" ] # See more keys and their definitions at https: //doc.rust-lang.org/cargo...

Go: declarando funciones(4)

Continuamos con la serie de post sobre Go(lang) y la declaración de funciones . En ésta ocasión haremos una serie de ejemplos con funciones. Pero antes, ¿Cuál es la diferencia entre funciones y procedimientos? Un procedimiento no devolverá ningún valor. Una función deberá devolver al menos un valor. Go(lang) nos permitirá no solo devolver un valor en una función, sino más de dos valores. func sumaResta(x, y int32 ) ( int32 , int32 ) { return (x + y), (x - y) } Se puede observar que los valores de regreso son el resultado de la suma y resta. // Asignamos los valores a las variables opr1 y opr2 var opr1, opr2 = sumaResta( 3 , 2 ) Mostramos los resultados en pantalla: // Imprimimos en pantalla los resultados fmt.Printf( "Suma = %d , Resta = %d\n" , opr1, opr2) Si definimos una función que devuelva más de dos valores: func sumaRestaMultiplica(x, y int32 ) ( int32 , int32 , int32 ) { return (x + y), (x - y), (x * y) } Como se puede obser...