domingo, 11 de octubre de 2026

El lenguaje de programación C

El mítico lenguaje de programación C sigue siendo el lenguaje que definió todo. Y con todo nos referimos a todo lo referente a la informática y programación. En épocas que ya no existen más, el programador de computadoras, término y profesión que aún no se consideraba algo serio, tenía que cambiar la configuración de la máquina para que realizará otras operaciones. Enormes máquinas que ocupaban salas enteras apenas estaban diseñadas para ciertas tareas muy específicas.

Con la llegada de los programas almacenados está tarea reducía en gran medida ese esfuerzo. Sin embargo, los lenguajes de programación estaban muy ligados a la arquitectura de la máquina. Los programas no podían ser compartidos. Si querías un programa para cálculos vectoriales en tu máquina, tendrías que programarlo de acuerdo a la arquitectura de tu máquina (sic).

Es ahí cuando llegan los lenguajes de alto nivel. Lenguajes que están a un paso de los lenguajes máquinas y que no están ligados a ciertas arquitecturas.

Dennis Ritchie ideó un lenguaje de programmación al que denominó simplemente C. Un lenguaje de programación muy rápido, eficiente y tiene un control directo sobre el hardware y la memoria.

Un lenguaje que inspiró a otros como Java, C++, C#, entre otros más (y la lista crece). Un lenguaje intermedio entre el lenguaje máquina y los de alto nivel.

¿Qué es el lenguaje C?

"C es un lenguaje de programación de propósito general que ofrece como ventajas ecnonomía de expresión, control de flujo y estructuras de datos modernos y un conjunto rico de operadores. Además, C no es un lenguaje de muy alto nivel ni grande y no está especializado en alguna área especial de aplicación."

Puedes instalar el compilador gcc. Se puede instalar tanto en Mac OS, Linux y Windows.

Compilador gcc

Abrimos una terminal y listamos la versión:

$ gcc --version

Listamos la ayuda disponible:

$ gcc --help

Hola, mundo en C

Ejemplo 1. Escribamos el famoso programa del "Hola, mundo" en C.

holamundo.c

#include<stdio.h>

int main(){
 puts("Hola, mundo en C.");
 return 0;
}

Compilaremos el programa:

$ gcc -o holamundo.exe holamundo.c
$ ./holamundo.exe

Salida:

Hola, mundo en C.

Tipos en C

El lenguaje de programación C es un lenguaje estáticamente tipado pero con un sistema de tipos débil (o permisivo), lo que significa que requiere declarar el tipo de cada variable antes de usarla, pero permite conversiones implícitas automáticas entre tipos de datos compatibles.

Algunos de los tipos en este lenguaje son:

  • char 
  • int 
  • byte 
  • short 
  • float 
  • double

También permite definir tipos propios con typedef TipoDato NombreNuevaVaariable.

Como en muchos otros lenguajes no aplica el dicho de "Una variable es una variable". Un número entero deberá ser declarado con tipo int, y su valor es entero, un número con coma flotante (float) causará un error de compilación.

Miremos un ejemplo de conversión implícita:

#include<stdio.h>

int main(){
 int numero = 45;
 float numero_float = (float) numero;
 printf("Numero int = %d\n", numero);
 printf("Numero float = %.2f\n", numero_float);
 printf("Casteo = %d\n", (int) numero_float);
 return 0;
}

Esto también lo podemos observar en lenguajes modernos como Java o C#.

Programación modular

Un módulo se considera como una colección de paquetes y sus dependencias. En C los proyectos pueden estar divididos por módulos. Un programa puede tener cierta dependencia de archivos externos o dentro de su mismo ámbito. Es usual ver proyecto C con archivos de encabezados (*.h) y su implementación así como programas tipo "main" quienes son los encargados de realizar las operaciones principales.

Esto se puede observar en lenguajes como Java, C#, Python, etc.

Punteros y asignación dinámica de memoria

En C debemos tener cuidado con los punteros. Estos nos sirven para almacenar y manipular direcciones de memoria de la computadora, en lugar de guardar un valor directo (como un número o un texto). Un mal uso puede causar daños al programa o incluso a nuestra máquina.

También hay que tener cuidado con el mecanismo de asignación dinámica de memoria, el cual se usa para reservar espacio en la memoria RAM mientras el programa se está ejecutando (en tiempo de ejecución), en lugar de definirlo de forma fija cuando se compila.

Ambas "técnicas" son indispensables en el lenguaje, no son una opción aunque así pareciera. Conforme un programa se hace más grande y complejo se verán las ventajas de esto.

En próximas entregas veremos más sobre este lenguaje.

Enlaces:

https://codemonkeyjunior.blogspot.com/2024/06/el-lenguaje-de-programacion-d.html
https://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)
https://www.mingw-w64.org/
https://sourceware.org/cygwin/


El lenguaje de programación Go

Go es un lenguaje que ha ido cobrando algo de popularidad actualmente. Al igual que muchos este promete resolver todos los problemas de la computación.

Los desarrolladores empiezan a conocer las bondades que ofrece y promete. Crear microservicios y complejos sistemas concurrentes tolerantes a fallos ya es una realidad.

Desarrolladores que usan los lenguajes de programación habituales como C, C++, C#, Java, Python y hasta Kotlin ven como este lenguaje permite hacer cosas complicadas de una manera más accesible.

Empresas del sector financiero, educativo y otros rubros migran sus desarrollos hechos en PHP, C# y Java, por mencionar algunos lenguajes, a este poderoso lenguaje.

Este lenguaje esta basado en una arquitectura modular similar a los que se hace con otros lenguajes.

Un poderoso y concurrente lenguaje: Go

Al igual que C, es un lenguaje compilado. Permite la programación concurrente como Rust o Erlang/Elixir. En este lenguaje los tipos de datos son importantes.

Go es un lenguaje en el que si importas algo y no lo usas en el código, automáticamente lo descartará. Si defines un variable y no la usas, el compilador de Go te lo dirá.

Contrario al compilador de Java o C que ya compilado y ejecutado tu programa tendrá algunos errores y tú dirás "¿por qué no me avisaron que no estoy declarando tal o cual valor y no uso la variable "x" o "z" y me dejaste ejecutar?". Esto obliga al desarrollador a crear un mejor código.

Creando un proyecto Go

Hay dos formas para crear proyectos con Go:

  • La clásica. 
  • Con Go-Blueprint.

Crear un proyecto Go (la forma clásica)

Crearemos el clásico "Hola, mundo". Para ello crearemos el directorio y nos ubicaremos en el:

$ mkdir holamundo
$ cd holamundo

Iniciaremos un módulo (colección de paquetes y sus dependencias):

$ go mod init example.com\holamundo

Esto nos creará el módulo ``go.mod``. Ahora crearemos el ``main.go``:

package main

import "fmt"

func main() {
  fmt.Println("¡Hola, mundo en Go!")
}

La estructura de nuestro proyecto lucirá así:

holamundo/
   go.mod
   main.go

Ejecutamos:

$ go run main.go

Salida:

¡Hola, mundo en Go!

Continuamos con la segunda forma.

Crear proyecto con go-blueprint

Go-Blueprint,llanamente, es una herramienta que nos permite crear proyectos con Go. Desde la línea de comandos podremos armar un proyecto Go, además de agregarle funcionalidades. Como el hecho de integrar, por ejemplo, el framework Fiber, Gin, Gorilla/mux, configuración Docker, conexión a PostgeSQL a nuestro proyecto, entre otras cosas más.

Instalamos la herramienta:

$ go install github.com/melkeydev/go-blueprint@latest

Creamos un proyecto. Nos ubicaremos en un directorio y tecleamos desde la línea de comandos esta instrucción:

$ go-blueprint create --name hola-mundo

Nos ubicamos en el directorio creado:

$ cd hola-mundo

La estructura del proyecto lucirá así:

hola-mundo/
   .air.toml
   .env
   .gitignore
   cmd
   go.mod
   go.sum
   internal
   Makefile
   README.md

Editamos el programa principal ``cmd\api\main.go``:

package main

import "fmt"

func main() {
   fmt.Println("¡Hola, mundo con Go-Blueprint!")
}

Ejecutamos:

$ go run cmd\api\main.go

Salida:

¡Hola, mundo con Go-Blueprint!

Go-Blueprint es muy útil para quienes ya han trabajado con proyectos Go. No es recomendable para quienes apenas comienzan.

Quienes han trabajado con C encontrarán en este lenguaje algo similar. No es de sobra que uno de los co-creadores de C, Ken Thompson, también estuvo involucrado en su desarrollo. Tomando mucha inspiración de C; tomando lo mejor y olvidando lo peor.

Continuaremos hablando del lenguaje en próximas entregas.

Enlaces:

https://go.dev/
https://alquimistadecodigo.blogspot.com/2026/04/creando-proyectos-go-con-go-blueprint.html
https://alquimistadecodigo.blogspot.com/2025/12/creando-proyectos-con-go.html


El lenguaje de programación C

El mítico lenguaje de programación C sigue siendo el lenguaje que definió todo. Y con todo nos referimos a todo lo referente a la inf...

Etiquetas

Archivo del blog