Comments on: Ruby Vs C# http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/ La Cara Oscura del Desarrollo de Software Tue, 09 Sep 2008 23:45:52 +0000 http://wordpress.org/?v=2.6.1 By: Abraham http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-1021 Abraham Fri, 01 Aug 2008 07:26:20 +0000 http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-1021 Ruby es un bebé que se compara con el viejo C... déjalo que crezca. Personalmente apoyo ruby porque es libre, puedo venderlo sin pagarle a nadie, aprendo sin pagar derechos de nada (C#? copiar C, ponerle una almohadilla, retocarlo y hacerlo privado?) si tambien os quejais de la SGAE, Micro$oft son iguales. Vendo mi trabajo, no sus productos.... Ruby es un bebé que se compara con el viejo C… déjalo que crezca. Personalmente apoyo ruby porque es libre, puedo venderlo sin pagarle a nadie, aprendo sin pagar derechos de nada (C#? copiar C, ponerle una almohadilla, retocarlo y hacerlo privado?) si tambien os quejais de la SGAE, Micro$oft son iguales. Vendo mi trabajo, no sus productos….

]]>
By: Abelardo http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-979 Abelardo Thu, 10 Apr 2008 21:49:03 +0000 http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-979 Es ridiculo que creas que Ruby es superior a Java o el pesimo C#, acaso no sabes que es un lenguaje interpretado no fuertemente tipado? Si no lo sabes estas grave. Bueno, el hecho es que si no garantizas datos fuertemente tipados, entonces tu programa el compilador genera estructuras de datos enormes (de paso lentas), y tu codigo sera lentisimo. Solo te servira para bases de datos y nada mas. Los programadores malos creen que todo es programar base de datos y alli se acabo, pero a ver que pasa cuando tienen bases de datos enormes, no me digan que lo van a hacer en Ruby, solo les sirve para bases de datos, pero para el simplista, que lo disfrute. Bueno espero sinceramente no ofender, pero saber para que sirve cada lenguaje es vital. Cuidense y exitos, Es ridiculo que creas que Ruby es superior a Java o el pesimo C#, acaso no sabes que es un lenguaje interpretado no fuertemente tipado?

Si no lo sabes estas grave.

Bueno, el hecho es que si no garantizas datos fuertemente tipados, entonces tu programa el compilador genera estructuras de datos enormes (de paso lentas), y tu codigo sera lentisimo. Solo te servira para bases de datos y nada mas.

Los programadores malos creen que todo es programar base de datos y alli se acabo, pero a ver que pasa cuando tienen bases de datos enormes, no me digan que lo van a hacer en Ruby, solo les sirve para bases de datos, pero para el simplista, que lo disfrute.

Bueno espero sinceramente no ofender, pero saber para que sirve cada lenguaje es vital.
Cuidense y exitos,

]]>
By: Pablo http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-961 Pablo Wed, 05 Mar 2008 23:45:55 +0000 http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-961 Bueno Señores despues de haberme pasado como 40 minutos leyendo y analizando sus opiniones, comentarios, criticas, observaciones y cojudeces, llegue a la conclusión de que la estupidez humana por no aceptar lo distinto, lo nuevo y que el aferrarse con uñas y dientes a lo que se tiene y el creer que nada más que lo que cada uno sabe o tiene es lo mejor para todo. En vista de todo esto yo desarrollador de software con solo 10 años de experiencia, solo puedo decir; tratando de rescatar lo que alguien definió como "CODIGOEGO", que solo el requerimiento cumplido y la sonrisa franca de un cliente satisfecho hará que una u otra herramienta se defina como la mejor usada para esa necesidad, con la tranquilidad de haber hecho un buen trabajo iré a casa dormiré tranquilo sabiendo que dimos lo mejor de nosotros mi equipo y yo y guardaremos la mayor gratitud a quienes desarrollaron el puto lenguaje en el que decidimos desarrollar el trabajo por que sabemos que fue fruto de mucho esfuerzo para que cojudos como muchos de nosotros andemos menospreciando trabaja ajeno. Atte, Pablo Vidal. Bueno Señores despues de haberme pasado como 40 minutos leyendo y analizando sus opiniones, comentarios, criticas, observaciones y cojudeces, llegue a la conclusión de que la estupidez humana por no aceptar lo distinto, lo nuevo y que el aferrarse con uñas y dientes a lo que se tiene y el creer que nada más que lo que cada uno sabe o tiene es lo mejor para todo.

En vista de todo esto yo desarrollador de software con solo 10 años de experiencia, solo puedo decir; tratando de rescatar lo que alguien definió como “CODIGOEGO”, que solo el requerimiento cumplido y la sonrisa franca de un cliente satisfecho hará que una u otra herramienta se defina como la mejor usada para esa necesidad, con la tranquilidad de haber hecho un buen trabajo iré a casa dormiré tranquilo sabiendo que dimos lo mejor de nosotros mi equipo y yo y guardaremos la mayor gratitud a quienes desarrollaron el puto lenguaje en el que decidimos desarrollar el trabajo por que sabemos que fue fruto de mucho esfuerzo para que cojudos como muchos de nosotros andemos menospreciando trabaja ajeno.
Atte, Pablo Vidal.

]]>
By: Un visitante http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-960 Un visitante Tue, 04 Mar 2008 15:54:47 +0000 http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-960 bueno sin temor a equivocarme y de forma anticuada, me quedare en todo caso con el omnipotente C++ que es la esencia del POO, ya que hereaa la grandeza de C, quizas deberian ver algo de D bueno sin temor a equivocarme y de forma anticuada, me quedare en todo caso con el omnipotente C++ que es la esencia del POO, ya que hereaa la grandeza de C, quizas deberian ver algo de D

]]>
By: MATT http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-954 MATT Sat, 16 Feb 2008 18:36:02 +0000 http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-954 PORFAVOR TANTO PELEARCE POR CUAL LENGUAJE ES MEJOR, EN ESTO COMO EN TODO SOFTWARE EL MEJOR ES EL QUE CUMPLA TUS NECESIDADES, NO VAS HA PROGRAMAR UN MODULO PARA EL KERNEL DE LINUX EN JAVA O C# , NI DESARROLLARIAS UN EPR EN C O C++ CIERTO. PORFAVOR TANTO PELEARCE POR CUAL LENGUAJE ES MEJOR, EN ESTO COMO EN TODO SOFTWARE EL MEJOR ES EL QUE CUMPLA TUS NECESIDADES, NO VAS HA PROGRAMAR UN MODULO PARA EL KERNEL DE LINUX EN JAVA O C# , NI DESARROLLARIAS UN EPR EN C O C++ CIERTO.

]]>
By: christian ruiz http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-943 christian ruiz Thu, 10 Jan 2008 03:27:47 +0000 http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-943 en java todo se puede "pero falta implementarlo".. plop!! jaja en java todo se puede “pero falta implementarlo”.. plop!! jaja

]]>
By: Mauro http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-925 Mauro Tue, 11 Dec 2007 20:11:11 +0000 http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-925 Simios !!! Simios !!!

]]>
By: Mauro http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-923 Mauro Tue, 11 Dec 2007 13:25:59 +0000 http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-923 Idiotas como creen que ruby puede ser mejor que C# pfff... se nota que jamas han construido sistemas escalables y sin codigo generado por la maquina (codigo basura) Idiotas como creen que ruby puede ser mejor que C# pfff… se nota que jamas han construido sistemas escalables y sin codigo generado por la maquina (codigo basura)

]]>
By: Abelardo http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-903 Abelardo Sun, 25 Nov 2007 20:38:16 +0000 http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-903 Java y .NET tienen aspectos similares y cosas diferentes. Java es un lenguaje que se compila para correr en una maquina virtual JVM. Esta maquina virtual corre en casi cualquier sistema operativo: Windows, Linux, UNIX, Solaris, hasta en dispositivos mobiles. Es realmente fantastico ya que el mismo proyecto ya compilado como archivo .class o mejor .jar correra en cualquier otro sistema operativo sin ningun tipo de recompilacion. Basta con que des el archivo .jar y ya tienes una aplicacion completamente distribuitble. Incluso ademas si la combinas con las librerias SQLite puedes tienes en un tiro una aplicacion con base de datos totalmente portable y que se ejecutara en cualquier sistema operativo. .NET no es multiplataforma y eso es algo que es importante resaltar. Hay un proyecto llamado Mono que hace los programas compilados con .NET corran sobre Linux y UNIX pero te sere sincero, todavia hay muchos cuelgues (te lo digo por experiencia propia). Este proyecto Mono incluye un compilador (2 versiones: mcs para net 1.1 y gmcs para net 2.0) y una maquina virtual (llamada mono) y es organizado por Miguel de Icaza. Mono es una maquina virtual que emula al .NET y trata de emular a Java en ser multiplataforma. Pero el estado de Mono es a verdad incompleto sobre todo en el paquete Windows Forms que no esta completamente portado y es inestable. Recuerda que aqui hay mucho trabajo de ingenieria inversa y eso siempre sera muy lento. .NET aporta funcionalidad en que es posible ejecutar e interoperar diversos fragmentos de código escritos en distintos lenguajes, esto es, si codigas en C# o VisualBasic o J# todos estos lenguajes serán convertidos al lenguaje intermediario MSIL(”Microsoft Intermediate Language”) a través de un compilador determinado, este lenguaje intermediario es el que ejecuta el .Net Framework, de esta manera su código escrito en más de 20 lenguajes podrá interoperar. El codigo compilado desde cualquier lenguaje es compilado para correr sobre una maquina virtual que es el .NET Framework. Mono trata de implementar este .NET framework. Entonces aunque ambas son maquinas virtuales, la JVM y la .NET Framework son diferentes tambien, una es multiplataforma y la otra es solo para Windows. Una diferencia mas es que JVM es desde hace poco open-source desde que Sun la libero, asi que ahora es controlada ahora en su desarrollo por la comunidad y .NET si es controlada completamente por Microsoft. Personalmente te aconsejaria ir por Java, dado que .NET es una plataforma privativa y siempre en el fondo estaras amarrado a Microsoft. Para Java tienes entornos de desarrollo muy bueno como Netbeans y Eclipse (ambos corren en Windows, Linux, etc). Ademas paquetes con clases en Java hay a montones, que te permiten hacer casi cualquier cosa, incluso un compilador para tu propio lenguaje (clases JLex y Java CUP). Conexion para base de datos las tienes con JDBC que te permite conectarte a casi cualquier gestor de base de datos: Postgres (la mejor base de datos libre), MySQL (tiene defectos en respecto a relaciones por sus tablas de tipo ISAM), SQLite (la mejor opcion si quieres hacer una base de datos de un solo usuario igualito que Microsoft Access y gratis), Oracle (que tiene una edicion libre personal para Linux y Windows) Yo he comparado la performance actual en Linux Ubuntu de una aplicacion de ordenamiento de burbuja midiendo tiempo promedio y usando en cada medida un vector de 100 elementos con datos al azar, usando para compilarla el compilador C++ libre GNU, el compilador Intel C++ para Linux (libre tambien y se puede descargar de Internet), el compilador Java 1.6 y finalmente el compilador de Mono gmcs (para .NET 2.0) y los resultados son con respecto a performance: de mejor a mas lento 1. Intel C++ Compiler y GNU g++ (empate, promedio de 0.24s para el algoritmo, ambos compilan a codigo maquina, puse nivel de optimizacion -O2) 2. Java 1.6 (promedio 0.34s) 3. Mono (usando gmcs para compilar y mono para correr: promedio 0.43s) Algo interesante, he probado los tiempos tambien en Windows y los tiempos en Linux y son practicamente iguales, lo que indica que la JVM es superior a Mono en ambos sistemas. No he podido probar con Visual C++ 2005 asi que no podria decir si en codigo nativo en Windows es superior o igual o inferior a Linux. Si quieres aplicaciones que compilen a codigo nativo tanto en windows como en Linux hay ademas un framework para C++ que se llama wxWidgets. Se programan con un IDE para C++ que trabaja tanto en Windows como Linux que se llama Code::Blocks. Es muy bueno y puedes construir aplicaciones graficas en minutos. Personalmente lo uso cuando quiero que mis aplicaciones sean muy rapidas ya que no compila a ninguna maquina virtual. Las clases provistas por la wxWidgets se parecen muchisimo a las MFC (Microsoft Foundation Classes) del Visual C++ asi que aprenderlas es muy directo. Las librerias wxWidgets tambien son libres y el Code::Blocks tambien. Para aplicaciones multiplataforma que quieres que sean de alta velocidad te las recomendaria sobre las librerias GTK y sobre las Qt (Qt no son gratuitas en Windows) Finalmente mi recomendacion para aplicaciones con rapido tiempo de desarrollo, multiplataforma pero de verdad (no como con Mono), y que no estaras dominado a la larga por las decisiones de Microsoft, entonces usa Java + Netbeans + Swing + (Postgres o SQLite). No tendras que pagar a nadie por las herramientas de desarrollo y correra en cualquier plataforma: Windows, Linux (Ubuntu) o UNIX (PC-BSD). No aconsejo MySQL al menos por ahora (ya que la tabla por defecto ISAM no hacepta llaves foraneas e integridad referencial, el nuevo tipo de tabla InnoDB si). Ahora si quieren hacer una aplicacion con alta performance compilado a codigo nativo, recomendaria usar Code::Blocks Nightly Build + GNU Compiler + WxWidgets 2.8 Visiten mi blog www.pintucoperu.wordpress.com Muchos saludos, Abelardo Java y .NET tienen aspectos similares y cosas diferentes. Java es un lenguaje que se compila para correr en una maquina virtual JVM. Esta maquina virtual corre en casi cualquier sistema operativo: Windows, Linux, UNIX, Solaris, hasta en dispositivos mobiles. Es realmente fantastico ya que el mismo proyecto ya compilado como archivo .class o mejor .jar correra en cualquier otro sistema operativo sin ningun tipo de recompilacion. Basta con que des el archivo .jar y ya tienes una aplicacion completamente distribuitble. Incluso ademas si la combinas con las librerias SQLite puedes tienes en un tiro una aplicacion con base de datos totalmente portable y que se ejecutara en cualquier sistema operativo.

.NET no es multiplataforma y eso es algo que es importante resaltar. Hay un proyecto llamado Mono que hace los programas compilados con .NET corran sobre Linux y UNIX pero te sere sincero, todavia hay muchos cuelgues (te lo digo por experiencia propia). Este proyecto Mono incluye un compilador (2 versiones: mcs para net 1.1 y gmcs para net 2.0) y una maquina virtual (llamada mono) y es organizado por Miguel de Icaza. Mono es una maquina virtual que emula al .NET y trata de emular a Java en ser multiplataforma. Pero el estado de Mono es a verdad incompleto sobre todo en el paquete Windows Forms que no esta completamente portado y es inestable. Recuerda que aqui hay mucho trabajo de ingenieria inversa y eso siempre sera muy lento.

.NET aporta funcionalidad en que es posible ejecutar e interoperar diversos fragmentos de código escritos en distintos lenguajes, esto es, si codigas en C# o VisualBasic o J# todos estos lenguajes serán convertidos al lenguaje intermediario MSIL(”Microsoft Intermediate Language”) a través de un compilador determinado, este lenguaje intermediario es el que ejecuta el .Net Framework, de esta manera su código escrito en más de 20 lenguajes podrá interoperar. El codigo compilado desde cualquier lenguaje es compilado para correr sobre una maquina virtual que es el .NET Framework.
Mono trata de implementar este .NET framework.

Entonces aunque ambas son maquinas virtuales, la JVM y la .NET Framework son diferentes tambien, una es multiplataforma y la otra es solo para Windows. Una diferencia mas es que JVM es desde hace poco open-source desde que Sun la libero, asi que ahora es controlada ahora en su desarrollo por la comunidad y .NET si es controlada completamente por Microsoft.

Personalmente te aconsejaria ir por Java, dado que .NET es una plataforma privativa y siempre en el fondo estaras amarrado a Microsoft. Para Java tienes entornos de desarrollo muy bueno como Netbeans y Eclipse (ambos corren en Windows, Linux, etc). Ademas paquetes con clases en Java hay a montones, que te permiten hacer casi cualquier cosa, incluso un compilador para tu propio lenguaje (clases JLex y Java CUP). Conexion para base de datos las tienes con JDBC que te permite conectarte a casi cualquier gestor de base de datos: Postgres (la mejor base de datos libre), MySQL (tiene defectos en respecto a relaciones por sus tablas de tipo ISAM), SQLite (la mejor opcion si quieres hacer una base de datos de un solo usuario igualito que Microsoft Access y gratis), Oracle (que tiene una edicion libre personal para Linux y Windows)

Yo he comparado la performance actual en Linux Ubuntu de una aplicacion de ordenamiento de burbuja midiendo tiempo promedio y usando en cada medida un vector de 100 elementos con datos al azar, usando para compilarla el compilador C++ libre GNU, el compilador Intel C++ para Linux (libre tambien y se puede descargar de Internet), el compilador Java 1.6 y finalmente el compilador de Mono gmcs (para .NET 2.0) y los resultados son con respecto a performance:
de mejor a mas lento
1. Intel C++ Compiler y GNU g++ (empate, promedio de 0.24s para el algoritmo, ambos compilan a codigo maquina, puse nivel de optimizacion -O2)
2. Java 1.6 (promedio 0.34s)
3. Mono (usando gmcs para compilar y mono para correr: promedio 0.43s)

Algo interesante, he probado los tiempos tambien en Windows y los tiempos en Linux y son practicamente iguales, lo que indica que la JVM es superior a Mono en ambos sistemas. No he podido probar con Visual C++ 2005 asi que no podria decir si en codigo nativo en Windows es superior o igual o inferior a Linux.

Si quieres aplicaciones que compilen a codigo nativo tanto en windows como en Linux hay ademas un framework para C++ que se llama wxWidgets. Se programan con un IDE para C++ que trabaja tanto en Windows como Linux que se llama Code::Blocks. Es muy bueno y puedes construir aplicaciones graficas en minutos. Personalmente lo uso cuando quiero que mis aplicaciones sean muy rapidas ya que no compila a ninguna maquina virtual. Las clases provistas por la wxWidgets se parecen muchisimo a las MFC (Microsoft Foundation Classes) del Visual C++ asi que aprenderlas es muy directo. Las librerias wxWidgets tambien son libres y el Code::Blocks tambien. Para aplicaciones multiplataforma que quieres que sean de alta velocidad te las recomendaria sobre las librerias GTK y sobre las Qt (Qt no son gratuitas en Windows)

Finalmente mi recomendacion para aplicaciones con rapido tiempo de desarrollo, multiplataforma pero de verdad (no como con Mono), y que no estaras dominado a la larga por las decisiones de Microsoft, entonces usa Java + Netbeans + Swing + (Postgres o SQLite). No tendras que pagar a nadie por las herramientas de desarrollo y correra en cualquier plataforma: Windows, Linux (Ubuntu) o UNIX (PC-BSD). No aconsejo MySQL al menos por ahora (ya que la tabla por defecto ISAM no hacepta llaves foraneas e integridad referencial, el nuevo tipo de tabla InnoDB si).

Ahora si quieren hacer una aplicacion con alta performance compilado a codigo nativo, recomendaria usar Code::Blocks Nightly Build + GNU Compiler + WxWidgets 2.8

Visiten mi blog http://www.pintucoperu.wordpress.com
Muchos saludos,
Abelardo

]]>
By: jorge http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-836 jorge Fri, 21 Sep 2007 16:57:22 +0000 http://www.lacaraoscura.com/2006/11/28/ruby-vs-c/#comment-836 Nunca habia encontrado un punto de vista como la k da el invesil de PERCY REYES, para empezar para k C# desplase a Java es imposible es como k si kisieramos desplazar a lenguaje C. Lo mejor k a sucedido es k Sun libero a Java como GPL, y sobre el comentario de Linux, es de los mas estupidos, linux es un sistema muy estable, y k no le llega ni a los talones cualquier windows ni siquiera Win Vista, que supuestamente emplea toda la tecnologia .Net, ahi simplemente nos damos cuenta de la mediocridad de los productos de Microsoft y TU PERCY REYES, si kieres algun dia nos vemos y nos ponemos a ver kien da mas rendimiento tu C# vs Mi Java y Mi LInux con tu Windows. Y se mas objetivo ese comenario k haces es de retrasados mentales......JAJAJAJAJAJA Nunca habia encontrado un punto de vista como la k da el invesil de PERCY REYES, para empezar para k C# desplase a Java es imposible es como k si kisieramos desplazar a lenguaje C. Lo mejor k a sucedido es k Sun libero a Java como GPL, y sobre el comentario de Linux, es de los mas estupidos, linux es un sistema muy estable, y k no le llega ni a los talones cualquier windows ni siquiera Win Vista, que supuestamente emplea toda la tecnologia .Net, ahi simplemente nos damos cuenta de la mediocridad de los productos de Microsoft y TU PERCY REYES, si kieres algun dia nos vemos y nos ponemos a ver kien da mas rendimiento tu C# vs Mi Java y Mi LInux con tu Windows. Y se mas objetivo ese comenario k haces es de retrasados mentales……JAJAJAJAJAJA

]]>