Programación en Linux

Esta página intenta acumular links, información y toda clase de cosas útiles a los que se embarcan en la programación para Linux. Y tiene como objetivo secundario mostrar a los que todavía no conocen Linux las capacidades que ofrece.

Si "programar en Linux" es la primera y única idea que tenés en la mente, entonces necesitás algunas otras. Hay que elegir en qué lenguaje, y eso cambia todo. No se leen los mismos manuales si se quiere programar en "C" que en Python. El lenguaje más "oficial" y en el que están hechas la mayoría de las aplicaciones en Linux (y en cualquier UNIX) es C (o C++). La información de esta página es principalmente aplicable a este lenguaje, pero muchos de los conceptos se ven desde otros. Otras formas de crear programas para Linux es usar Java (tengo algunos artículos sobre Java), Ruby o Python.

Estos textos no son un reemplazo de una necesaria y esclarecedora visita al reino de las man pages. Las man pages son "páginas" sueltas de manual que se suelen instalar conjuntamente en los sistemas UNIX. Se leen ejecutando el comando "man QUÉ", por ejemplo "man fork". Su lectura es muy importante a la hora de aprender a programar en Linux, ya que este sistema expone todas sus funcionalidades con "llamadas de sistema" que están perfectamente documentadas en estas "páginas de manual". Es conveniente conseguirse las últimas versiones. Si su distribución es Debian o Ubuntu instale los paquetes manpages (páginas generales) y manpages-dev (páginas sobre programación).

Si bien se hace referencia a Linux, la mayoría de las cosas son conceptos genéricos de Unix, aplicables en muchas de sus encarnaciones. También muchos de estos conceptos fueron tomados por Win32, la API usada por Windows (claro que convenientemente modificados para que su uso sea más engorroso).

Pasando de DOS/Windows a Linux

Cuando uno se sienta en un coche desconocido, recorre el tablero, las palancas y pedales buscando una funcionalidad coincida. Análogamente el programador que llega desde DOS o Windows empieza a buscar como hacer cosas que antes sabía exáctamente cómo hacer.

Tareas específicas

Estas son algunas de las cosas que se me ocurre que pueden servir, ya iré agregando más.

Empezando: Herramientas de desarrollo

Interacción con el usuario

Archivos

Sobre el SO en general

Conceptos de Linux

A continuación algunos artículos sueltos sobre temas conceptuales muy importantes en Linux (o Unix).

¡Más...!

¿Qué te gustaría saber sobre programar en Linux? Decímelo por e-mail así voy agregando cosas en esta página.

Visitá también mi artículo introductorio sobre XML, o mis artículos sobre Java. También informate sobre la ley de medios!