Blogia
Geeks i d'altres

Analogia beneita

Fà un bon grapat de dies que no comentava res per aqui, però estic molt ocupat amb els estudis, i ara ja només queda una setmaneta que intentaré aprofitar al máxim.

Realment escric aquesta entrada perque he comentat el tema del programari lliure a un blog d'un programador, que alabava a un IDE privatiu, i jo als comentaris vaig dir que el que trobava pitjor d'aquest software, a priori, era la seva llicència. I s'em va tirar al coll ...
Així que perque entengués una mica la meva postura, vaig escriure aixó :

No sé, para mi el problema no es que sea comercial. En ningún caso creo que el desarrollo de software debe ser un trabajo altruista por definición, el software tiene que poderse vender.
Pero me parece una aberración no distribuir el código fuente de los programas que vendas, a la par que permites modificar, mejorar y/o ampliar el código.

Es como si tienes una empresa que vende calculadoras a las PYMES para hacer las cuentas. Pero las calculadoras que vendes sólo tienen capacidad para hacer sumas, restas, multiplicaciones y divisiones. Además no les explicas como funciona, simplemente tienen una caja con una entrada y una salida, de la que desconocen la forma en que opera.
Sólo con esto, ya le estas quitando la oportunidad de aprender a hacer sumas al contable :)

A parte de esto, imaginate que un dia la empresa, tu cliente, necesita una calculadora que haga logaritmos. Está ligada a tu empresa, porque sólo tu tienes el código, y puedes exigirle lo que quieras. O puede contratar a otra empresa que le haga el trabajo desde 0, añadiendo la funcionalidad de los logaritmos.

En cambio, si tu calculadora fuera libre, el contable podría aprender C, i aprendería que c += 10 es lo mismo que incrementar el valor de la variable c en diez. Así, poco a poco aprendería a programar, y el mismo podría canviar el codigo de SU programa para que también hiciera logaritmos.

También lo podría liberar, y todas las PYMES podrían modernizarse y usar logaritmos. Dios dijo que ayudarais al prójimo ... y Richard Stallman también (a pesar de ser un atéo declarado).

Personalmente creo que el modélo del software libre es totalmente compatible con un negocio del software espledoroso. Aún más, te diré que la única opción que tenemos muchos de vivir desarrollando software es desarrollando software libre.

De todas formas, no debemos irnos por las nubes, sino recordar que el objetivo del movimiento a favor del software libre es la libertad. Si tu vendes software privativo, PRIVAS a tu cliente de sus libertades más básicas, y eso no es ético.


Què en pensau? Cualque comentari o crítica?
Sempre està bé que t'ajudin a millorar el teu discurs a favor del programari lliure :P

8 comentarios

Guti -

Es la mejor forma de potenciar el software libre.

Un saludo.

ServoMac -

Ya esta publicado , en
http://servomac.coolinc.info/testing/codigo_php.txt
Saludos!

ServoMac -

Ostras, se ha montado un revuelo impresionante :P
Uf, me gustaría pedirte perdón por "airear" nuestras conversaciones, pero la intención no era críticarte sin que tu estuvieras presente, sino solo comprovar que no hubiera dicho ninguna "parrafada" con lo de las calculadoras :)

Por otro lado, no contribuido a ningún proyecto libre, porque no me veo, ni de lejos, a la altura de entrar a codear. Lo que si podría hacer es alguna traducción y tal, como comentas.

Y lo de las fórmulas, me has hecho picar el gusanillo y las voy a publicar aqui mismo :D

¡Saludos!

Guti -

¿Para empezar, que tal publicar los fuentes de las fórmulas en PHP (http://blogia.com/servo/index.php?idarticulo=200504121)?

Guti -

Hola Servo, me satisface que hayas decidido comentar nuestras conversaciones, aunque tal vez por educación no estaría de más que me lo hubieras comunicado. Ya sabes el dicho que no está bien hablar de alguien que no está presente...

Gracias por el apoyo Cervecerix, no se si soy un crack o no, pero para mi es importante que lo sepas.

Ahora, y ya que Servo abre la puerta a recibir comentarios, aquí van los míos:

En cuanto a tu respuesta, primero de todo, el hilo completo está en http://guti.bitacoras.com/comments.php?y=05&m=06&entry=entry050603-194721, para quien lo quiera leer.

Y como respuesta al mismo, manifestar mi sorpresa, pero sobretodo mi admiración Servo. Estoy convencido que llegarás muy lejos en tu carrera profesional. Jamás en mi vida me había topado con un estudiante de ESO que conociera tan bien los puestos vacantes en el mundo empresarial, y sus oportunidades. Realmente creo que he perdido el tiempo en estos 9 años de carrera en el sector tecnológico, y no estoy a tu altura para discutir lo que tiene futuro o no, y si acabaremos todos viviendo del software GPL.

Como digo, no doy la taya, por lo que no entraré más al trapo. Tan solo comentar un poco por encima el código en C que publicas. A diferencia de estrategia empresarial, y futurología basada en suposiciones, el C se me da algo mejor. Las comparaciones en C se hacen con dos signos de igual (==), lo cual provocará que el código entre en todos los condicionales, ya que el valor de retorno de la asignación será el valor asignado (estándar ANSI), lo cual es diferente de cero, por lo que evalua a cero. No tiene importancia, pues estoy seguro que ha sido un error tipográfico.

El siguiente problema, es más elemental, y consiste solamente en no saber cuando aplicar if de else if. Si los condicionales son disjuntos (como el caso de que producte valga 1, 2 o 3), el uso correcto es else if, no else.

Para acabar, algunos detalles de estilo: No es recomendable utilizar funciones sin prototipar como es la de seguir, y se recomienda no definir las funciones () sino (void).

Acabas tu post pidiendo consejos para mejorar el discurso de apoyo al software libre. Tengo algo de experiencia en ello, aunque no te lo pueda parecer. Y consejo al respecto es que ayudes a la comunidad en la medida de tus posibilidades. Me encantará encontrar un tutorial de Open Office, una buena traducción al castellano del MAME, o alguna contribución al backend de GCC para generar código más eficiente.

Por curiosidad, ¿en qué desarrollos Open Source has colaborado?

Cervecerix -

Caram ServoMac!!! ¿Tens dos blogs a on escriure? Ja veig que sí que ets català... Conec al Guti personalment, i en cap moment t'ha volgut faltar, tan sols que, desde la meva humil opinió, potser has entrat una mica fort per ell. Pensa que es un tio que s'ho ha currat molt per arribar a on és (i sempre ha estat un tio molt humil). I també et diré una cosa més: el molt cabró es un "puto crack" de la informàtica ;) Però et puc dir, que en el fons, penso que li has caigut bé...

A tot això, vull saludar al Guillem aquest, m'ha caigut la llagrimeta quan he tornat a veure codi C... Us animo a picar algo en Assembler, per mi ¡el llenguatge amb el que un programador més disfruta!

Salut!!!

ServoMac -

Primer de tot, la meva enhorabona per començar a programar en C :D.
Però no trobes que aquest programa és una mica heavy com per començar?
Jo agafaria algun curs d'aquests que ronden per la xarxa i aniria tira tira daixo daixo aprenent-ne, i no hem posaria el primer dia amb un exercici amb funcions i tal.

Ademés, aquest no és el lloc adecuat ... ja saps que hem pots contactar per Jabber sempre que vulguis (servomac@jabber.org), i et resoldré tots els dubtes que pugi.

A primera vista, el codi sembla molt extrany, pero seria algo així ... (no m'escoltis massa perque ni tan sols he mirat si compilava :P)

#include /

void seguir(int preu)
{
int quantitat;
printf("nQuina quantitat en vols?n");
scanf("%d", &quantitat);
printf("La quantitat seleccionada és %d.n",quantitat);
printf("El preu total és : %d.n", quantitat * preu);
}

int main () {
int producte;

printf("Productes en stock: n 1-Cocacola n 2-Estrella damm (Cervesa)n 3-Agama (llet)n");
printf("Introdueix el numero del producte:n");

scanf("%d", &producte);
if(producte=1)
{
printf ("El producte selecionat es una Cocacola.");
seguir(1);
}
if(producte=2)
{
printf ("El producte selecionat es una Estrella Damm.");
seguir(2);
}
if(producte=3)
{
printf ("El producte selecionat es llet Agama.");
seguir(3); //El preu es 3 euros ... sa llet va cara :)
}

return 0;
}

guillem -

joder toni el deus haver deixat amb es coons a nes coll XDDDDDDDD
be era per dirte que estic comnçant a prendre c i he fet un codi que me dona error i vull saber perque mel podries correuir perfavor?? be tel deix aui i ja feras el que voldras:

#include

int main ()

{
void seguir ()
{
printf ("Quina quantitat en vols/?/n",);
fflush ( stdout );
quantitat=getche ();
printf ("La quantitat que selecionada es: %i. /n",quantitat);
printf ("El total es: %i",total);
}
int nom, preu, quantitat, total, nomp;

total= preu * quantitat;


printf ("productes amb stok: /n 1/-Cocacola /n 2/-Estrella damm /(Cervesa/)/n 3/-Agama /(llet/) /n ");
printf ("Introdueix el numero del producte:/n", );
fflush ( stdout );
nomp=getche ();
if (nomp=1);
{
printf ("El producte selecionat es una Cocacola.",);
seguir ()
}
if (nomp=2);
{
printf ("El producte selecionat es una estrella damm.",);
seguir ()
}
if (nomp=3);
{
printf ("El producte selecionat es llet Agama.",);
seguir ()
}

return 0;
}