[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Pinchón de Desarrollador



Ipsissima verba DRI:
> Hola Amigos... soy super-nuevo y quiero meterme en esto de
> desarrollar un Sistema Libre....

Excelente, permíteme ser el primero en agradecerte por lo que sea que
vayas a regalar al mundo.

> ¿por donde empiezo?

Supongo que por aclararte a ti mismo exactamente qué quieres hacer, si
no lo tienes claro ya.  Eso puede sonar obvio, pero mi punto es que
corres un riesgo alto de reinventar el hilo negro.  Quiero decir, a
menos que estés pensando en algo muy, muy innovador, lo más probable
es que hayan ya proyectos de desarrollo de cosas similares a la que
tienes en mente.  En tal caso, quizá te convenga explorar la
posibilidad de sumarte a un proyecto que ya está en marcha, en vez de
iniciar uno nuevo.  Puede resultarte más fácil adaptarte a un grupo de
gente que ya hace las cosas de una manera determinada, que inventar
desde cero tu propia infraestructura.

> Programo en VisualBasic.... ¿que hago primero?
> ¿Estudio C... CSharp.... C++?
> (supongo que la mayoria de las cosas estaran en algunos de estos
> lenguajes)

Pues mira, la mayoría de programas existentes están en C y C++, sí.  A
reserva de saber más acerca de tus planes, se me ocurre que lo mejor
que puedes hacer es aprender C.

En "Cash" lo único que encontrarás será cosas de Mono, supongo, que no
es software maduro ni popular (si es que alguna vez llega a serlo, que
tengo mis dudas).  Pero puedes ir a echarles una mano, si las máquinas
virtuales son lo tuyo.  Icaza te lo agradecerá :-)

Dicho lo anterior, nota que la variedad de herramientas y lenguajes
que se usan para desarrollar software para Linux (que no es lo que
dijiste que quieres hacer, yo sé, pero la mayoría del software libre
se hace en Linux y para Linux) es mucho más amplia y heterogenea que
la que se usa en el mundo de Microsoft.  C es lo más popular, pero
mucha gente desarrolla en Perl ó Python.  Para aplicaciones "web", PHP
es lo más común.  Hay software libre en Java, en dialectos de Lisp, y
aún en simple lenguaje de shell (sh).  Puedes optar por Objective C,
con lo cual tu desarrollo será ideal para GNUStep y, por extensión,
MacOS X; o puedes usar Caml o Ruby y aprender en el proceso acerca de
lenguajes alternativos extremadamente interesantes y bien diseñados.

Como vienes del otro sistema operativo, quizá que llame la atención
saber que las interfaces gráficas (GUI) no es algo que se espere por
defecto en cada aplicación, ni mucho menos.  Hay gente que incluso las
considera indeseables en muchos casos (yo me cuento entre esa gente).
Y en los casos en los que se usa un GUI no siempre es el mismo.  El
"toolkit" que vas a usar (la biblioteca con controles y demás
parafernalia GUI) lo tienes qué elegir tú, entre diferentes
alternativas; y de esa elección depende qué manuales y tutoriales
tienes qué leer.  Y puedes desarrollar aplicaciones que se "integren"
de varias formas a ambientes como Gnome y KDE, pero ten en cuenta que
habemos quienes no usamos ni uno ni otro, y probablemente no estaremos
dispuestos a usar una aplicación que dependa de ellos para funcionar.

Y la misma historia ocurre con las herramientas para desarrollo.
Puedes usar un IDE (hay muchos, y ninguno es realmente predominante),
o puedes usar Make y un editor separado (Emacs, Vi o cualquiera de los
otros cuatrocientos mil editores disponibles en Linux).

En fin.  Este es un ecosistema muy diverso.  Tienes una pila de
elecciones por hacer.

> ¿estudio la arquitectura del kernel, estudio linux, estudio unix?

Si realmente vienes de VB y nunca has tocado C, olvida el kernel por
el momento.  Mi recomendación es que te pongas a empaparte de la
filosofía y los conceptos de UNIX.  Esto incluye el shell (como
lenguaje de programación, no sólo como interfaz de usuario), los
comandos y herramientas básicas, y los manuales.  Lee por lo menos
superficialmente acerca de procesos, señales, variables de ambiente y
permisos.  Asimila el concepto de los descriptores de archivo (que
incluyen pipas y sockets).  Intenta aprender un poco de expresiones
regulares.

> ¿con quien me conecto?

No sé.  Cuando tengas una duda más concreta, o una idea menos vaga de
qué es lo que vas a hacer, sin duda resultará obvio con quién tienes
qué hablar.

> POR DONDE EMPIIIIIEEEEEEEEEEEZZZZZZZOOOOOOOOOO...

Si lees inglés,

 http://rute.sourceforge.net/

Eso es un tutorial de UNIX, no una guía de programación (aunque
incluye una sección con rudimentos de C).  Realmente no te puedo
apuntar a literatura para desarrollador hasta que sepas qué quieres
hacer.

Espero que alguien aquí te apunte a más recursos disponibles en
nuestro idioma.  O llégale al Google.

> Gracias, amigos .. . por quitarme el stress..

Pues no sé si te quité el estrés o te acabo de infundir más...  :-)
pero honestamente espero que algo de esto te ayude.

Que te diviertas.

 -CR

-- 
Ceterum censeo: SCO delenda est.



Reply to: