Programar en .NET, ¿de acuerdo con mi moral?

Buenas!

Cuánto tiempo... Como soy como el Guadalquivir que vengo y desaparezco, y vuelvo a aparecer, pues me voy encontrando con muchos cambios y muchas cosas que poner al día. Que si ubuntú, que si ya está gentoo 2004.3... en fin, que llego tarde, como siempre.

Bueno, al tajo. Entre este tiempo que he dedicado intensivamente a mejorar mi vida intelectual (amos, que por una vez me he puesto a estudiar algo más en serio), he empezado a aprender VB.NET, por exigencia de la universidad. Hasta aquí bien. El problema: siempre me he proclamado en general contra MS, y nunca me acabó de convencer todo esto del .NEt. Sí, sé que es multiplataforma, que a mucha gente le gusta el C# y nuevas cosas que han hecho, pero... no sé, supongo que no acabo de fiarme del todo. La idea de tener algo de MS en un Linux sigue dándome reparo, qué se le va a hacer. Sé que para el .Net en Linux está "Mono", ¿pero ayudó MS a la implementación de Mono?, ¿el la tecnología .NEt libre? Éstas preguntas no son retóricas, es que no las sé realmente.

Bueno el caso, que con esa idea de reparo ante cualquier cosa que pueda dañar a mi amado software libre ó en su defecto open source, ¿estaré yendo contra mis propias ideas e intereses si empezara a desarrollar aplicaciones en VB.NET?

Por supuesto, no pretendo que me soluciones el dilema moral :P, sino a ver si alguien me puede guiar un poco en cuanto a cómo puede afectar en cualquier mínima cosa esta tecnología al software libre, si hay mejores opciones que el .Net y cuales, y en general, cualquier información que pueda ser de utilidad.

Muchas gracias a tosssssss.

Saludos!

P.D: Si alguien después de leer este ladrillo para esta mierda de post sigue con ganas de responderme, he expuesto otros dos hilos más o menos relacionados con éste en "Varios". Bye bye!
VB es el "anti-lenguaje", al menos para mí. Sobre .NET, en fin, la idea no es mala, si no fuese por las chapuzas que he visto.

MS por supuesto que no da soporte a Mono, y ha "liberado" las especificaciones al estilo de Macromedia con su Flash, siendo casi imposible hacer algo parecido al .NET propio de ellos.
No es cierto, C# y las clases base de .NET son estándares del Ecma. Mono es una implementación de libre de estos estándares. Las librerías que no son estándar, se desarrollan como buenamente se puede, y por otro lado se desarrollan muchas librerías aparte como parsers XML, XSL y toolkits como Gtk# y Cocoa#

No afecta en NADA al open source.

Salu2.Ferdy
Me estais diciendo que con 4 modificaciones en el codigo de un programa 100% VB.net se puede compilar para linux???
No

(estamos hablando de C#)

Salu2.Ferdy
Holas de nuevo.

Veamos, MS sigue los estándares de Ecma (he buscado por google y supongo que será ésto) pero no ayuda a mono, tiene librerías no estándar que de seguro son las que utilizarán el 95% de los que programen en .NET y que obviamente, no pueden "copiarse" ó portarse a otras plataformas.

Si es así... que no sé si me ha quedado claro del todo, quizá no afecta directamente al software libre, pero desde mi punto de vista, estamos en lo de siempre. MS saca algo que cautivará a la inmensísima mayoría, que lo utilizará, se convertirá en estándar de facto, y elm undo del software libre tendrá que buscarse la vida, jodiéndose y teniendo una clara desventaja. Repito, porque no lo sé seguro, que si eso es así, para mí lo perjudica igualmente. Son precisamente ese tipo de cosas las que quiero evitar. No quiero contribuir a establecer un estándar de facto gracias al cual el esfuerzo que tenga que hacer la comunidad open source ó de SL sea inmenso, máxime cuando hay alternativas reales al .NET (creo) que no perjudican, ó si se prefiere decirlo así, facilitan la tarea a todo el mundo relacionado con el software libre.

Sólo por curiosidad, y en relación a la última pregunta... a mí lo que me interesaba ahora era VB.NET (porque me lo imponen, no por gusto), pero ¿cómo de cierto es eso de una misma aplicación es igual en el entorno que sea? ¿Qué incompatibilidades ó problemas puede haber en una aplicación .net tanto en windows como en linux?

Muchas gracias.

Un saludín!

P.D: Ferdy, ¿tú qué cohone haces para saberte todas las putas licencias, estándares y demás? Sabía que cuando saliera el tema estándares/compatibilidad dirías todo sobre ésta, pero ¿de dónde sacas toda esa información? Debes haber estudiado "derecho informático ó algo así" porque no lo entiendo :D
Sobre lo de los estándares, aunque M$ no apoya abiertamente a Mono, creo recordar que Miguel de Icaza en una charla el año pasado comentó o dejó caer que si, que se reunían a menudo. Quizá la memoria me falle...

Ahora mismo hay aplicaciones que son 100% portables entre windows y linux gracias a mono. Yo creo que es una ventaja y no un inconveniente. Hay que ser realistas y en esto del software libre es como la política, no puedes pensar en una autarquía; tienes que ser 'compatible' (negociar) con los grandes. Y nos joda o no, el grande es Microsoft.

Yo no tendría ningún problema moral en programar C# con Mono; los problemas que tengo son de otra índole :P

Sobre lo de VB.NET creo que no hay desarrollo sobre Mono, así que... toca joderse. Quizá el código intermedio si lo ejecute, pero ni idea porque AFAIK tienen problemas con los Windows.Forms (no se si están soportados).

En fin que de mono se de oidas porque nunca me ha interesado sobremanera por aquello de que IMHO [ Java = SUN ( mierda ) y C# = M$ ( mierda ) y Java ~= C# ] pero eso ya son discusiones de otra índole :P

P.D: Ferdy, ¿tú qué cohone haces para saberte todas las putas licencias, estándares y demás? Sabía que cuando saliera el tema estándares/compatibilidad dirías todo sobre ésta, pero ¿de dónde sacas toda esa información? Debes haber estudiado "derecho informático ó algo así" porque no lo entiendo


Concretamente esto, de una charla de Miguel de Icaza y luego rebuscando sobre lo que contó en la web. Recomiendo que TODO el mundo vaya a verle en una charla alguna vez en su vida... ¡¡¡¡ es un espectáculo !!!!

Salu2.Ferdy
Ferdy escribió:Concretamente esto, de una charla de Miguel de Icaza y luego rebuscando sobre lo que contó en la web. Recomiendo que TODO el mundo vaya a verle en una charla alguna vez en su vida... ¡¡¡¡ es un espectáculo !!!!


Si a alguien le interesa en: http://www.uoc.edu/dt/esp/deicaza0904.html se puede descargar la conferencia que hizo en la UOC. Lo malo es que no tiene mucha calidad, esta en un wmv de 119MB.

La estuve biendo y la verdad es que esta muy bien, tal como dice Ferdy es un espectaculo.

Salu2
Ya que sacais el tema me gustaria a ver si alguno de vosotros sabria responderme una duda que tengo hace tiempo.

Vereis, Ferdy ha dicho:
Ferdy escribió:Ahora mismo hay aplicaciones que son 100% portables entre windows y linux gracias a mono

Pero, ¿qué de cierto hay en la multiplataformidad de .net?

Digo esto basandome en el "caso java". Yo he sido defensor de java durante mucho tiempo, pero ultimamente ya no lo soy tanto porque lo de multiplataforma es mentira. Una aplicacion sin GUI, basandose unicamente en consola, "puede serlo" hasta cierto punto.
Ferdy escribió:IMHO [ Java = SUN ( mierda ) y C# = M$ ( mierda ) y Java ~= C# ] pero eso ya son discusiones de otra índole :P

Empalmo esto con la pregunta de FuckingFreaky

java no es libre, asi que si te parece "inmoral" programar en .net tambien te puede resultar inmoral programar en java (a no ser porque veas a M$ de por medio)

Un saludo
Pero, ¿qué de cierto hay en la multiplataformidad de .net?


No lo se, de Icaza dijo que si lo es; pero yo no lo se.

java no es libre, asi que si te parece "inmoral" programar en .net tambien te puede resultar inmoral programar en java (a no ser porque veas a M$ de por medio)


Yo estoy empezando a programar Obj-C + Cocoa y no me parece inmoral... siempre y cuando mi software sea libre (que lo será :P)

Salu2.Ferdy
No es que te parezca inmoral a ti, me referia a que le pareciese inmoral a FuckingFreaky :P

Investigare un poco mas sobre la multiplataformidad de .NET, no sea que luego pase como con la de java. No es que necesite saberlo, es por curiosidad mas que nada.

Por cierto, si no me equivoco se puede usar mono en BSD, y con ello aplicaciones .NET en BSD, ¿verdad?. Al menos siempre podrias compilarlo y hacerlo rular, ¿o me equivoco?.

Por cierto FuckingFreaky, el rio que tiene fama de aparecer y desaparecer, al menos en mi barrio, es el guadiana XD

Saludetes
No es que te parezca inmoral a ti, me referia a que le pareciese inmoral a FuckingFreaky


Ah ya... pero ya que estaba daba mi opinion :P

Salu2.Ferdy
A ver, varias cosillas.

Ya que Raulex me ha hablado de que Java no es libre, planteo una chorrada que siempre me he preguntado: ¿Un lenguaje puede ser propietario? Es decir... Java no es libre, ok, pero cualquiera puede aprender java. Supongo que cuando decimos eso nos referimos a que la máquina de java no es libre. Pero si llegara alguien e hiciera una máquina de java libre, ¿sería ilegal?

Más cositas...

Me he bajado el video de Miguel de Icaza. Está muy interesante, pero ¿de dónde leches sacáis esos videos? Me interesaría tener videos así tanto de de Icaza como de otra gente y otros temas. En la porpia web de la uoc que es de donde he descargado el enlace de cafetino (ya les vale poner un wmv) no encuentro más. ¿Cómo buscar estos videos?¿Dónde?¿Alguno que conozcáis que merezca la pena?

Sé que esto no se ha ceñido al post, pero ahora voy con eso:
1. Miguel de Icaza, en el video dice medio coña medio en serio, que no van a dar ninguna clase de soporte a KDE con Mono. El tema es... ¿no se van a poder ejecutar aplicaicones mono en KDE? Supongo que sí sólo que tendrán que ser los de KDE los que implementen su módulo para correr aplicaciones Mono. ¿Sucederá lo mismo con el resto de escritorios que no sean GNome?

2.Los estándares están ahí, ok, y Mono es una implementación libre de ellos. Pero entre todo el rollo de librerías y demás cosas que ya sabemos, ¿no acabarán mono y .Net muy distantes? Los lenguajes serán los mismos, pero las excepciones pueden ser gigantes y la forma de programar totalmente distinta...

3.GTK#, deduzco que será el kit gráfico utilizado apra desarrollar aplicaciones visuales en Mono. Creo que es tanto para Linux como Windows, y que para MacOS existe cocoa#. Mi pregunta es... si yo por ejemplo desarrollo una aplicación en C# + GTK# sobre Mono... Se verá igual y correrá igual tanto en un Windows como en Linux que tengan instalada la máquina de Mono?

4. Se supone que Mono está desarrollando también una implementación de Windows.Forms, que si no me equivoco son las ventanitas de windows... ¿Correrá eso sobre linux ó es sólo para utilziarlo con windows? Qué punto de compatibilidad créeis que puede llegar a alcanzar?

5. La última... ¿alguien sabe más o menos qué diferencia de rendimiento puede haber entre una aplicación C++/GTK2 compilada a una C#/GTK#?Me refiero a velocidad de ejecución y todo eso. Al ir sobre una especie de máquina virtual supongo que se notará bastante y dependerá del tipo de aplicación que se desee hacer el que sea favorable ó no utilizar Mono. ¿para qué tipo de aplicaciones lo usaríais?

EDITO--> Se me olvidaba ésta!
Ferdy escribió:Yo no tendría ningún problema moral en programar C# con Mono; los problemas que tengo son de otra índole
¿Qué problemas son esos? Me gustaría saber qué desventajas le ves ó esas razones, si puede ser y no es muy personal, claro :P.

Weno, aun con todo esto por resolver, mi punto de vista es el siguiente. No veo nada de inmoral (mi omral, que quede claro) programar en C#/GTK# sobre mono, puesto que todo ello es puramente libre. Además esas aplicaciones podrían teóricamente correr sin problemas sobre mono en windows,linux, y BSD. El tema de MacOS ya es más complicado pero de momento no preocupa cocoa# aparte que cumple con todo lo anteriormente dicho.

A ver si me podéis responder auqnue sean sólo a algunas preguntas de este tostón, y criticar/debatir mi opinión al respecto.

Gracias a todos.

Salu2!

P.D: Raulex, mamoncete, no sabía que en Getafe hubiera un río... :P. Vale, joder, son mis lapsus mentales. Os juro aunque parezca increíble, que no soy tan sumamente inculto como algunas veces demuestro, jaja! Me alegro de leerte de nuevo tocape....;).
FuckingFreaky escribió:A ver, varias cosillas.
Me he bajado el video de Miguel de Icaza. Está muy interesante, pero ¿de dónde leches sacáis esos videos? Me interesaría tener videos así tanto de de Icaza como de otra gente y otros temas. En la porpia web de la uoc que es de donde he descargado el enlace de cafetino (ya les vale poner un wmv) no encuentro más. ¿Cómo buscar estos videos?¿Dónde?¿Alguno que conozcáis que merezca la pena?


Yo de la existencia de estos videos, la gran mayoria de veces me entero por este foro o por barrapunto. Otro video que valga la pena que conozco es el de una conferencia que hizo Stallman en mi universidad. Esta disponible en este ftp: ftp://sion.udg.es, aunque esta vez es la version dvd que ocupa casi 4 gigas.

Salu2


EDITO: He arreglado el problema con la coma del enlace [looco]
Cafetino escribió:Esta disponible en este ftp: ftp://sion.udg.es,

Pues a mi no me va el enlace este, aunque posiblemente sea mi culpa...

Edito, creo q es culpa de la coma final.
Primero pongo la coña y luego ya hablamos un poco más en serio:
FuckingFreaky escribió:P.D: Raulex, mamoncete, no sabía que en Getafe hubiera un río...

¿Qué tienen que ver el Guadiana y Getafe city?. Lo único que tienen en común es que empiezan por 'G' XD
FuckingFreaky escribió:Java no es libre, ok, pero cualquiera puede aprender java. Supongo que cuando decimos eso nos referimos a que la máquina de java no es libre. Pero si llegara alguien e hiciera una máquina de java libre, ¿sería ilegal?

Existen JVM que no son de SUN. Por ejemplo, si no me equivoco tienes backdown que si tampoco me equivoco es de IBM, que por asi decirlo es una JVM pero de IBM en vez de de SUN.

Se puede hacer una máquina virtual libre, de hecho están por ahí las especificaciones e incluso existe un compilador llamado gjc que genera binarios a partir de .java o .class.

¿Problemas?. Pues que es SUN quien dice qué se puede hacer con su lenguaje y qué no. Por una parte es totalmente comprensible puesto que es su negocio y segun ellos quieren que la multiplataformidad se asegure (que me parto la caja vamos). Por otro es un poco jodienda porque bailas al ritmo que te mandan.

Si no me equivoco creo que se han hecho repetidas peticiones a SUN para que incluyera ciertas cosas en el lenguaje que no ha incluido. Al final Microsoft sacó .NET e incluyo esa peticiones en C# y SUN las va a meter en su JDK 5.
FuckingFreaky escribió:1. Miguel de Icaza, en el video dice medio coña medio en serio, que no van a dar ninguna clase de soporte a KDE con Mono. El tema es... ¿no se van a poder ejecutar aplicaicones mono en KDE?...

¿Puedes ejecutar aplicaciones GNOME en KDE?. Si ¿verdad?, entonces tambien podras ejecutar aplicaciones mono en KDE. Yo creo que en ese comentario tira más por decir que el interfaz de las aplicaciones mono va a ser GTK en vez de QT.
FuckingFreaky escribió:2.Los estándares están ahí, ok, y Mono es una implementación libre de ellos. Pero entre todo el rollo de librerías y demás cosas que ya sabemos, ¿no acabarán mono y .Net muy distantes? Los lenguajes serán los mismos, pero las excepciones pueden ser gigantes y la forma de programar totalmente distinta...

No lo entiendo. De un lenguaje cualquiera generas un codigo intermedio que se ejecuta en mono, y este codigo se genera siguiendo unos estandares.
FuckingFreaky escribió:3.GTK#, deduzco que será el kit gráfico utilizado apra desarrollar aplicaciones visuales en Mono. Creo que es tanto para Linux como Windows, y que para MacOS existe cocoa#. Mi pregunta es... si yo por ejemplo desarrollo una aplicación en C# + GTK# sobre Mono... Se verá igual y correrá igual tanto en un Windows como en Linux que tengan instalada la máquina de Mono?

GTK# es solo para linux. Creo que eso va a ser un poco como el caso SWT de java, pero tampoco sabria qué decirte. Yo lo que espero es que si ejecutas la aplicacion con mono te salga con GTK como toolkit, y si lo ejecutas en windows que te salga con el toolkit de windows (que creo que es Windows.Forms que todavia esta sin implementar)

EL caso es que habiendo visto el video de Icaza he cambiado de opinion sobre .NET. El java ultimamente me tenia un poco frito asi que quiza sea hora de ir probando a programar en C# con mono. Si alguien tiene alguna experiencia agradeceria comentarios :)

Un placer leerte de nuevo tocapel.... XD

[bye]
A partir de la version 1.2 estara implementado el VB.NET... los windows.forms y otras cosillas

http://mono-project.com/about/mono-roadmap.html#mono12

- Generic types support: C# compiler, execution system and core class libraries.
- ASP.NET 2.0 improvements.
- Remoting improvements from Whidbey.
- System.XML: simpler improvements from Whidbey, lacking the large additions (XQuery for example).
- Console and Serial ports support.
- New compilers: VB.NET and JScript support.
- WSE1/WSE2 implementations.
- System.Windows.Forms officially debuts with .NET 1.0 API; 1.2 API available as an unstable addition
Bueno eso es solo un roadmap... del dicho al hecho...

Salu2.Ferdy
Wenas again.

RaUlEx, lo de getafe y guadiana iba por lo de "en mi pueblo el río que...". En fin, era una coña pésima que tooodos deberíamos olvidar e ignorar que yo dije nada, ok?XD.

Weno, al tajo. Gracias por lo de Java, no sabía que fuese así, y ahora que sé que una compañía puede decidir qué se puede hacer y qué no con su lenguaje, pues... no me mola tanto. Me llamaréis paranoico, pero yo soy muy excéptico con las compañías. Si Java es propiedad de Sun y ella decide qué hacer, ¿qué pasa con los casos de C y C++? Es por saber cómo está la situación. C# por lo que veo es diferente porque aunque lo haya creado MS no tiene poder sobre él, ¿me equivoco? Este tipo de cosas me joden...

Lo de GTK y KDE... ya, se puede utilizar aplicaciones GTK en KDE, pero supongo que eso es a través de una implementación para que GTK corra bajo KDE, ¿sí?¿no? No lo sé, es lo que yo imagino, pero mi cultura en esto es más que escasa. Si eso es así ahora, por lo que comentó de Icaza, ´deduzco que la implementación de GTK# para KDE se la van a tener que currar los de KDE. Nadie ha dicho que no se vayan a poder ejecutar aplicaciones GTK# en KDE, sino que para ello serán la gente de KDE quien tenga que dar el callo por implementarlo. Por un lado lo veo lógico, por otro no lo tengo tan claro...

RaUlEx escribió:No lo entiendo. De un lenguaje cualquiera generas un codigo intermedio que se ejecuta en mono, y este codigo se genera siguiendo unos estandares.
Sí, pero mi duda es... Las librerías serán distintas. MS tendrá sus librerías, los de mono las suyas y así sucesivamente, cada uno las que haga y quiera tener. Una serán libres y otras no. Ok, luego todo llega a un código intermedio universal, pero no es en ese código en lo que programa uno. Uno programaría, por ejemplo en C#, y dependiendo de quién y para qué (mono ó .net) utilizará unas librerías u otras. Al final, la forma de programar, aunque todo sea C# puede ser muy distinta. Era sólo eso, pero no sé si es así, ó estoy equivocado.

RauLeX escribió:Yo lo que espero es que si ejecutas la aplicacion con mono te salga con GTK como toolkit, y si lo ejecutas en windows que te salga con el toolkit de windows (que creo que es Windows.Forms que todavia esta sin implementar)
Esa es una de mis dudas, si va a ser así, ó si el programador va a tener que implementar diferentes interfaces.

Ferdy escribió:Bueno eso es solo un roadmap... del dicho al hecho...
Tú, tú, tú... no te me escaquees que seguro que tú sabes algo de todo esto... Acláranos, si puedes, alguna cosilla, porfa.

La verdad que el video está bien y me ha dado una idea distinta de la que tenía preestablecida sobre .NET.

Weno, un saludín a todos!

P.D: Sobre el tema de los videos, abriré un post, a ver si la gente conoce más videos interesantes de conferencias ó en general sobre todo lo que rodea al software libre.
FuckingFreaky escribió:Lo de GTK y KDE... ya, se puede utilizar aplicaciones GTK en KDE, pero supongo que eso es a través de una implementación para que GTK corra bajo KDE, ¿sí?¿no?


La "capa común" son las librerías de las X11. Tanto KDE (o sea, Qt) como GTK+ corren bajo las X11 por tanto funcionan independientemente. No hace falta un GTK para KDE ni nada parecido.

salu2
Viendo el color que toma el hilo he cambiado el titulo de este post XD

programar EN GENERAL, ¿de acuerdo con mi moral?

intereses de particulares
intereses de empresas
intereses de organizaciones
intereses de estados

modas en lo comercial
el gusto por lo raro
grupos de usuarios
frikis en general

y, sobre todo:

decenas de miles de lenguajes de programacion
decenas de plataformas
decenas de toolkits
decenas de metodologias
decenas de paradigmas

Es todo como muy confuso ¿no crees?

En sistemas como windows todavia la cosa esta mas centrada, pero en una plataforma como linux la variedad y la confusion crecen exponencialmente, y si tratas de hacer aplicaciones multiplataforma la cantidad de problemas aumentan, ya que hay que añadir decenas de librerias, unas acabadas, otras sin acabar, otras documentadas, otras sin documentar y suma y sigue y no pares sigue sigue.

Java trata de ser multiplataforma, pero no lo es y dudo que algun dia lo sea. Java es un negocio de SUN, y lo será por mucho tiempo.

.NET es un invento de Microsoft. Ellos lo hacen multiplataforma "para windows", y ya otros terceros lo hacen multiplataforma para linux entre otros. Por supuesto que la compatibilidad y la multiplataformidad no están aseguradas nada mas que bajo windows.

Linux es un SO como otros, pero que padece una diversidad enorme. Cada uno programa con el lenguaje que quiere, usando el toolkit que quiere, y haciendo las cosas como quiere. En "la catedral y el bazar" se pinta el bazar como la solucion y la catedral como un problema, pero yo creo que la solucion intermedia es lo mejor.

Estan los lenguajes especificos, los lenguajes generales y los lenguajes que tratan de ser todo pero luego no son nada. Especifico, por ejemplo, LISP, general, por ejemplo, C, y trata de ser todo por ejemplo java, pero no se yo si haria una aplicacion comercial con java y la venderia como "multiplataforma que funciona siempre y bien".

Software libre, codigo abierto y codigo cerrado. Todos conocemos las ventajas y los inconvenientes de las 3. ¿Es mejor hacer software libre?, depende. ¿Es mejor hacer software con codigo abierto?, depende. ¿Es mejor hacer software cerrado?, depende.

.NET y mono tratan de solucionar en parte el problema, pero ¿es una solucion?, ¿es mas solucion o mas complicacion?. Dependera del caso.

El software en general es un PUTO CAOS, asi que, programar EN GENERAL, ¿de acuerdo con mi moral?. Pues es una duda que llevo ya un par de semanas tratando de resolver.

Espero que este post de desahogo te ayude a resolver las dudas que tienes XD

Un saludo y perdonad la paranoia [bye]
Resolver las dudas no... pero partirme la caja y coger valor para enfrentarme a todo eso... pues mira, sí! A pesar de que creyeras que el efecto serái el contrario, jaja!

Vale, ahora ya veo que no soy yo sólo el que imagina ó piensa que esto es un puto caos. Quieras que no, me quedo más tranquilo...

Pues nada voy a seguir con mi combo de C,C++, y C#(en un futuro). Iremos intentando hacer multiplataformidad para Linux, XD.

Enga RaUleX, recupérate del soponcio, y muchas gracias por todo ;).

Un saludo!!!
21 respuestas