Dudas sobre CSharp y mono

Buenas gente! Pues como propuesta para este semestre me he propuesto aprender a programar en algun lenguaje nuevo. En mente se me habia ocurrido php (me gustaria, pero me da mucha pereza tenerme que empapar de html), Ruby (me pica la curiosidad de por que se esta extendiendo tanto), JAVA, c++ o c#.

Finalmente creo que me he decidido por C# ya que me parece bastante interesante.

Segun lo que he estado leyendo tiene un funcionamiento tipo Java (funciona sobre una maquina virtual) y es algo que no me acaba de gustar por que consuma mucha memoria. ¿Realmente consume mucha? Segun he visto algun forero, estaba bastante contento con el funcionamiento sobre maquinas no muy potentes.

Otra cosa. En caso de ponerme, lo haria con mono, pero no me acaba de quedar claro una cosa. ¿Mono es la VM, no? Y luego el compilador es cscc ¿no?

¿Me recomendais algun IDE para Linux y Mac?

Por ultimo ¿Merece la pena aprender este lenguaje o me decanto por alguno de los anteriores?

Salu2 y muchas gracias!
Yo cuando programaba en Slackware, usaba Monodevelop como IDE.

Para más info, puedes ir consultando el blog de Miguel de Icaza.
Sobre los recursos y demás:
http://tirania.org/blog/archive/2005/Feb-09.html

También puedes utilizar Python más GTK+ que también está muy entretenido... PHP más GTK+ y no te hará falta empaparte mucho o casi nada de HTML -que realmente, sabiendo programar no tiene mucha complicación el lenguaje de marcado-.

Personalmente, lo interesante no es el lenguaje, sino el proyecto que quieras desarrollar.

Aunque si te quieres complicar la vida, puedes programar en algún lenguaje esotérico, tipo brainfuck :P
Muchas gracias ^atlas^ por la info ;) A ver si alguien me puede contestar a lo otro :)

Salu2 y muchas gracias!
No tengo conocimiento profundo ni de Java ni de C# pero algo he jugado con ambos lenguajes y te aseguro que C# es mas entretenido. Quizas algun dia lo retome mas en serio. Java lo odio. Pero esto es algo personal.

Para programar usaba el monodevelop que no se si tiene version para Mac pero es bastante probable que si.

Una cosa importante si te vas a poner con mono es que te informes sobre los posibles problemas de patentes y demas que te podrias encontrar en un posible futuro. No es que yo crea que sea lo que va a pasar, pero es algo que es remotamente posible y debes estar informado y asumir los infimos riesgos.
Yo he programado tanto en java como en c#. Bajo mi punto de vista si quieres algo multiplataforma, tienes q usar java. Si unicamente quieres usarlo bajo windows, pues usa c#. El problema del java son las swing, q son un huevo complicadas de usar, y para cualquier cambio tienes q liar una buena. En cambio, para el c# esto se simplifica bastante usando el SharpDeveloper, ya que se basa en arrastrar los botones.

Donde trabajaba antiguamente, diseñamos en Java una aplicación para la publicación de material en un portal bancario. Te puedo decir q cada dos por tres nos daba error de memoria y teniamos que tener cuidado a la hora de manejar el recolector de basura y demas (aunq tambien es verdad q teniamos mas de 15000 objetos cargados en memoria).
Si lo que quieres es algo multiplataforma, entonces OLVIDATE de Java.

- ferdy
Ferdy escribió:Si lo que quieres es algo multiplataforma, entonces OLVIDATE de Java.

- ferdy

+1
Vale pues me ire olvidando de Java por ahora [carcajad] Lo que mas me interesaria es que fuese orientado a objetos por eso la opcion.

Hechare un vistazo a las patentes (cuando consiga instalar monodevelop que me parece que va para largo xD).

Salu2 y muchas gracias!!!

PD: Ferdy, ¿qué seria buena opción para programar multiplataforma? :)
Mmmm, para multiplataforma yo recomiendo python + Pygtk (o wxWidgets si quieres) es realmente productivo, lo aprendes en 2 tardes y puedes hacer de TODO y hay librerias para TODO, inclusive te puedo mandar/hacer algun ejemplillo para que veas.

Yo he hecho muchos programas para mi novia en linux y ella usarlos en windows sin cambiar una linea :P

Un saludo.
Fox escribió:Mmmm, para multiplataforma yo recomiendo python + Pygtk (o wxWidgets si quieres) es realmente productivo, lo aprendes en 2 tardes y puedes hacer de TODO y hay librerias para TODO, inclusive te puedo mandar/hacer algun ejemplillo para que veas.

Yo he hecho muchos programas para mi novia en linux y ella usarlos en windows sin cambiar una linea :P

Un saludo.


Python puede ser interesante pero la verdad esque no lo veo como algo que se me ponga como un "reto" :P Como has dicho, por ser interpretado, "en dos tardes se puede aprender" x)

Salu2!
\-\adEs escribió:
Python puede ser interesante pero la verdad esque no lo veo como algo que se me ponga como un "reto" :P Como has dicho, por ser interpretado, "en dos tardes se puede aprender" x)

Salu2!


Oh, pensé que querias aprender un lenguaje nuevo y no tener un reto.

Si quieres reto pues c++.
Juas, ya esta el ranz de \-\ades spameando mwahahaha.

Aprende antes C++ que C# xD
Un lenguaje muy bueno y completo es Perl, algunos dicen que esta muriendo pero no saben lo que dicen :P
Txukie escribió:No tengo conocimiento profundo ni de Java ni de C# pero algo he jugado con ambos lenguajes y te aseguro que C# es mas entretenido. Quizas algun dia lo retome mas en serio. Java lo odio. Pero esto es algo personal.

Por curiosidad, ¿por qué odias uno y el otro no? Creo que normalmente los sentimientos sobre ambos suelen ir de la mano.

Como has dicho, por ser interpretado, "en dos tardes se puede aprender"

PHP Y Ruby también son interpretados. Lo que comentas de que Ruby está pegando fuerte, creo que es más bien Ruby on Rails, que también está orientado al desarrollo web. Primero sería mejor que definieses un poco qué quieres hacer.

Un saludo.
bastian escribió:PHP Y Ruby también son interpretados. Lo que comentas de que Ruby está pegando fuerte, creo que es más bien Ruby on Rails, que también está orientado al desarrollo web. Primero sería mejor que definieses un poco qué quieres hacer.


Pues principalmente aprender algun otro lenguaje de programacion. Si puedo aprender uno orientado a objetos, mejor que mejor ya que creo que tengo una asignatura cd c++ en 3º de la carrera.

PHP sabia que era interpretado (lo de ruby no lo sabia) pero php me parece (desde mi mas completa ignorancia) mas util que phyton.

Salu2!

PD: efectivamente, me referia a Ruby on Rails :)
... pero php me parece (desde mi mas completa ignorancia) mas util que phyton.


cawento

¿Eso va en serio?
NeoRave escribió:

cawento

¿Eso va en serio?



Resaltese el "desde mi completa ignorancia" :P

Salu2!
No, si yo conozco poco php. Pero tengo la idea totalmente contraria a lo que has dicho.

¿En qué sentido puede considerarse más útil php que python? Se me ocurriría algo relacionado con la web aunque no lo tendría muy claro. Por supuesto, es una pregunta abierta a todos, no sólo dirigida a \-\adEs (jodío, que nick más lioso :p )


A mi me parece una opción muy acertada aprender python, pero vamos que si quieres convertirte en un tipo duro, dale a C++ y apréndelo a fondo xD


Saludos


Por cierto: es PYTHON, hereje!! [burla3]
\-\adEs escribió:Si puedo aprender uno orientado a objetos, mejor que mejor ya que creo que tengo una asignatura cd c++ en 3º de la carrera.


Yo ni corto ni pincho mucho en POO, pero en Python se puede hacer POO.

De echo, y siendo usuario mac y programador a lo mejor te interesa, Apple tiene pensado adoptar Python (y parece ser q Ruby tambien) para poder acceder a Cocoa.

Y bueno, si sigue sin convencerte, yo por ser original te recomiendo Objective-C, lo veo mas multi q C#.

Salu2
El único problema que tiene Objective-C es que no existe una librería estándar. Es más, el gran problema que tiene Objective-C es que la única librería estándar decente no está disponible en muchísimos sistemas.

Por otro lado, el lenguaje en sí es curioso.

- ferdy
NeoRave escribió:¿En qué sentido puede considerarse más útil php que python?


No es que sea más útil o menos... son para cosas diferentes. PHP está mas orientado para la programación web mientras que python está más orientado a scripting (ya incluso aplicaciónes de escritorio con pygtk).

\-\ades escribió:i puedo aprender uno orientado a objetos, mejor que mejor ya que creo que tengo una asignatura cd c++ en 3º de la carrera.


Sí, hay una optativa en tercero, más que recomendable. Pero antes de meterte con un lenguaje orientado a objetos, es conveniente leerse la teoría y las bases de la programación orientada objetos, porque si no, intentarás hacer las cosas igual que con la programación estructurada, y no llegues a comprender las ventajas. Luego ya te puedes poner con cualquiera que soporte orientación a objetos, para empezar yo te recomiendo java, porque C++ puede resultar un poco espeso.

Salu2!

PD: Txukie, pos que sepas que java rulessss :D
NeoRave: (tu nick es mas facil que el mio xD) Veo mas util PHP que python (soy un poco muy dislecsico XD) por lo que ha dicho Dagaren, veo (personalmente) mas util un lenguaje de programacion para web que un lenguaje de scripting dedicado a objetos (repito, personalmente y desde mi mas completa ignorancia :P).

rYlEi: de Objetive-C no tengo ni pajolera, asique dedicare el finde a hechar un vistazo a ver como va, ya despues si eso opino :P.

Dagaren: tu mejor que nadie sabes que en la Universidad de salamanca, la asignatura de POO deberia ser imprescindible (si no haz una visita a coti y que te cuente xD) pero al ser lo que nos van a enseñar C++pues casi que prefiero aprenderlo en clase y no por libre.

Salu2!
Hola,

PHP también puede ser compilado.

Recuerdo haber leído un buen libro de Objective C, de la propia StepStone, de los años 80. Muy recomendado para aprender el tema de la POO.

Por cierto, no es que en Python se pueda hacer POO, es que todo son objetos en Python.

Vuelvo a insistir en la necesidad de definir un proyecto, para profundizar más en el tema del lenguaje, un lenguaje se aprende estrujándolo, y eso sólo pasa creando un buen proyecto.

Podrías darle por ejemplo, a C++ -como te dijeron antes- más LibSDL.

C++ nunca se acaba de aprender :Ð


Saludosss
Me estais tentando a meterme ya con C++ (tengo unas nociones muy muy basicas a la par que antiguas) XD


Por cierto:

C++ nunca se acaba de aprender


Eso me recuerda a una pregunta que hizo bastian a Ferdy XD

Salu2!
Porque odio Java? Por muchas razones, todas ellas totalmente subjetivas. Para empezar odio la prepotencia de los programadores Java y su creencia universal de que TODO se puede (y debe) hacer con java. Odio SWING por razones obvias, odio el recolector de basura y la gestion de la memoria. Odio que todo sea una clase (esto tambien pasa en c#). Odio el JDBC. Y lo que mas odio es cuando hago algo y lo pruebo en otra maquina de arquitectura diferente y NO FUNCIONA [boma] [boma] [boma]
Aqui estoy de nuevo.

Python aunque es un lenguaje de scripting, es un lenguaje de proposito general. Es orientado a objetos y tiene librerias para todo, incluso para hacer cosas webs:

Django
TurboGears

Luego para aplicaciones de escritorio multiplataforma tienes:

WxPython
PyGTK

Hay muchiiiiiiisimas más librerias para hacer casi de todo.

Un saludo.
Txukie escribió:Porque odio Java? Por muchas razones, todas ellas totalmente subjetivas. Para empezar odio la prepotencia de los programadores Java y su creencia universal de que TODO se puede (y debe) hacer con java. Odio SWING por razones obvias, odio el recolector de basura y la gestion de la memoria. Odio que todo sea una clase (esto tambien pasa en c#). Odio el JDBC. Y lo que mas odio es cuando hago algo y lo pruebo en otra maquina de arquitectura diferente y NO FUNCIONA [boma] [boma] [boma]

Me refería a por qué odias Java y no C# puesto que se le puede achacar la mayoría de los problemas de Java, como prácticamente todo lo que comentas.

Un saludo.
Resumiendo, Java me parece menos eficiente que C#, y odio mucho SWING. Con C# lo poco que hice, me lo pase bien, cosa de la que pocos lenguajes podrian presumir [carcajad]
Txukie escribió:Resumiendo, Java me parece menos eficiente que C#, y odio mucho SWING. Con C# lo poco que hice, me lo pase bien, cosa de la que pocos lenguajes podrian presumir [carcajad]

No, si a mí también me gusta C#. De hecho, a \-\adEs le preguntaba qué quería hacer (por cierto, lo de aprender un lenguaje era obvio, me refería a qué lo querías orientar) porque si quería hacer algo para web (aunque dice que no quiere aprender HTML, sí le llamaban PHP y RoR) y no le daba yuyu usar C#, a mí me gusta más ASP .NET que PHP (uy, lo que ha dicho! :-O XD). De RoR no opino porque tampoco lo conozco.

EDITO, que se me había olvidado.
\-\ades escribió:Eso me recuerda a una pregunta que hizo bastian a Ferdy smile_XD

¿Cuál? ^_^

Un saludo.
\-\ades escribió:Dagaren: tu mejor que nadie sabes que en la Universidad de salamanca, la asignatura de POO deberia ser imprescindible (si no haz una visita a coti y que te cuente xD) pero al ser lo que nos van a enseñar C++pues casi que prefiero aprenderlo en clase y no por libre.


Debería ser imprescindible en todos los sitios xD, pero sí en Salamanca sobre todo (no entiendo por qué es optativa, hace unos años todavía, pero ahora...) . C++ está muy bien, pero según mi punto de vista tiene un problema muy gordo, y es que tiene una sintaxis muyyyyy oscura y y compleja. Por eso yo para empezar a programar algo orientado a objetos recomendaría Java ( bueno, vale , C# también vale :D) porque es bastante sencillo de aprender y te oculta aspectos de bajo nivel, para poderte centrar en aprender la metodología.


Txukie escribió:Odio SWING por razones obvias


Jursss... la verdad es que es complejillo (pero también bastante flexible), pero bueno, en el fondo la programación de interfaces es cdifícil en general uses el API que uses. Yo lo que he estado probando últimamente es Matisse (con NetBeans) y la verdad es que me ha impresionado bastante. Te permite generar interfaces gráficas de una manera visual bastante rápida, e incluso te permite construir 'beans' o componentes gráficos reutilizables.

Yo lo que estoy estudiando ahora a cuenta de una asignatura de administración de sistemas es Perl, y la verdad es que está bien, para la programación de scripts y administración.

Si es que cada lenguaje tiene sus puntos fuertes y flojos, y la cuestión es saber donde se debe utilizar cada uno. :D

Salu2!
No es solo que sea complejillo, es que ademas es feo [buaaj]
Si alguien quiere lenguajes bonitos y legibles, python es su lenguaje. ¡Pero si se usa en lugar del pseudocódigo!

No, no me paga Guido, pero es que es de cajón: fácil, rápido y bonito [carcajad]


Saludos
Txukie escribió:No es solo que sea complejillo, es que ademas es feo smile_[buaaj]


Bueno pues si no te gusta el 'Look and Feel' por defecto lo puedes cambiar y poner el nativo del sistema operativo, u otro construido. Hace poco estuve en una página con un monton de estilos, y había algunos bastante bonitos. Así que hay opciones :D

Pero sí, tengo que reconocerlo, el que viene por defecto es bastante feote.

Salu2!
Para quienes gustan de Java como lenguaje, pero aborrecen sus toolkits gráficos...

http://www.trolltech.com/developer/downloads/qt/qtjambi-techpreview

No, a mí tampoco me paga Trolltech xD
FCKU está baneado del subforo por "No especificado"
Desde mi punto de vista te recomiendo aprender java. Desgraciadamente no te puedo dar razones técnicas en torno a usos de memoria o de procesador, pero si puedo darte otras que espero consideres interesantes:

- Busca las palabras "java" o "j2ee" en infojobs o en cualquier otro portal de empleo y date cuenta de la demanda que tiene.
- Java es libre.
- Sin ser multiplataforma es un lenguaje que puede ser usado en varias plataformas.
- Hay una comunidad de desarrolladores grande detrás. Si tienes problemas siempre podrás preguntar a alguien que sepa.
- Existen varios IDE libres bastante potentes, como eclipse o netbeans.
- Existen varios servidores de aplicaciones y contendores web libres, como jboss, tomcat o glassfish.
- Existen multitud de frameworks libres, como hibernate, spring o struts
- Existen multitud de herramientas libres que ayudan al desarrollo de aplicaciones, como ant, maven, xdoclet o cruisecontrol.
- Java es el lenguaje mas utilizado en sourceforge http://www.cs.berkeley.edu/~flab/languages.html

Si quieres aprender algo por el puro placer de hacerlo, yo de ti aprovechaba y aprendía algo que quizá dentro de algún tiempo me pueda venir bien laboralmente. Ademas hay muchos desarrollos libres en torno a este lenguaje bastante interesantes.

Un saludo
FCKU escribió:Sin ser multiplataforma es un lenguaje que puede ser usado en varias plataformas.


Vaya, de lo que se entera uno. Si Java no es multiplataforma apaga y vamonos.....
FCKU está baneado del subforo por "No especificado"
¿En cuantas plataformas has desarrollado con java?. Te lo digo porque existen otros sistemas operativos aparte de windows y linux y porque existen más micros aparte de los intel y los amd.
Si esta soportado por varias plataformas, es multiplataforma. Y más aún siendo en las plataformas principales. Ser multiplataforma no implica TODAS las plataformas. Además que está disponible en alguna más de las que has citado tú. Incluso en móviles...

Salu2!
Dagaren escribió:Si esta soportado por varias plataformas, es multiplataforma. Y más aún siendo en las plataformas principales. Ser multiplataforma no implica TODAS las plataformas. Además que está disponible en alguna más de las que has citado tú. Incluso en móviles...

Salu2!

¿Has ejecutado alguna aplicación de escritorio en un móvil u otro dispositivo embedido? Si no hay SWING ni AWT, ni,... Que se puede programar para ellos, vale. Pero, como ya han dicho, lo de "write once, run everywhere" es un poco cuento chino.

Un saludo.
Hasta donde yo sé a Mono no le afecta ningún tipo de patentes... Lo único con lo que podría haber problemas es con ASP.NET y ADO.NET, y sinceramente... veo harto difícil que sucediera algo respecto a eso. Aparte de que empiezan a aparecer alternativas a ellos.
Lo demás está cubierto por el estándar.

A mí me tiran C, C++ y C#... supongo que por manías. Luego hay lenguajes interesantes como Erlang (otra asignatura pendiente junto con C#), y mil cosas interesantes dentro de la programación en sí.

¡Saludos!
41 respuestas