Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





C# vs Java: eficiencia de la VM

Iniciado por Daemon, 10 de Febrero de 2013, 02:29:30 PM

« anterior - próximo »

Daemon

Buenas,

Sé que esta pregunta puede suponer un flame, pero dejando a un lado las preferencias personales de cada uno: ¿conocéis algún estudio medianamente serio (o benchmarks) en donde se establezca qué rendimiento tiene C# vs Java a la hora de ejecutar código (con y sin que intervenga el GC)?

Y sin restringir el campo a estos dos, ¿qué lenguaje utilizáis para programar?

Imagina todo lo que puedes hacer. Despues hazlo.

echinocactus

Hace muchos años que no utilizo Java (desde la v5, aproximadamente). Por aquel entonces utilizaba ambas plataformas y lo curioso que recuerdo es que, en Windows, .NET ofrecía mejor rendimiento, mientras que en Linux lo ideal era Java (en Windows, el rendimiento de Java dejaba mucho qué desear; y en Linux no tenías de otra más que lo que hubiera de Mono en ese momento, para .NET).

Actualmente utilizo C#/.NET casi para todo, incluso juegos (XNA) y acceso a BD (Linq, Entity Framework). No solo estoy cómodo con el lenguaje en sí, sino con todo el entorno de desarrollo, ya sea Visual Studio, TFS y... no mucho más, todo lo tienes a la mano. Mientras que en el ambiente Java se tienen que integrar los pedazos de un ambiente de desarrollo antes de hacer cualquier cosa; hay más opciones, quizá, pero mi interés principal (ahora que me dedico profesionalmente a desarrollar sistemas) es productividad, y con un ambiente .NET siento que de forma inmediata puedo atender problemas (en lugar de arquitecturas y después el problema en sí).

Ésa es mi impresión empírica. Y repito: hace mucho que no utilizo Java. No digo que actualmente no sea una buena plataforma. Simplemente estoy a gusto con C# y .NET.

Vicente

Yo utilizo C# porque me siento muy muy comodo con el lenguaje, las librerías, el entorno,... Y además me parece que el equipo que lo lleva en Microsoft ha evolucionado el lenguaje a lo largo de los años de forma admirable

En la carrera Java me gustaba un montón, pero creo que al contrario que Microsoft Sun/Oracle no han conseguido evolucionar el lenguaje muy bien (la implementación de genéricos, ahora las lambdas, defensive methods,...).

Pero eso es personal respecto a los lenguajes, en términos de rendimiento ni idea la verdad :)

Manu343726

Hace un tiempo leí este artículo en el que se hace una comparativa entre diferentes lenguajes de programación en el campo de la bioinformatica. http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2267699/

Por los resultados que muestra, parece que C# suele consumir menos memoria que JAVA, pero en líneas generales el rendimiento es equivalente.

Pero sinceramente, cuando programas con cosas tipo Java/C# no tienes en mente el rendimiento. Tienes en mente la productividad. Al fin y al cabo, son plataformas que están diseñadas para RAD. Si necesitas estrujar la máquina, usa C o Cpp.

Y es en productividad donde, a día de hoy, todos estamos de acuerdo que .NET framework destaca sobre Java sin lugar a dudas. Sobre el diseño del lenguaje, estoy totalmente de acuerdo con Gorkinovich. Java esta estancado en un modelo de programación de hace casi veinte años, que no se ajusta para nada a las necesidades actuales.

C# ha evolucionado poco a poco, asustándose a los cambios, y sinceramente pienso que esta diseñado con bastante más cabeza que JAVA.

Daemon

Me he encontrado esto:

http://benchmarksgame.alioth.debian.org/u32/csharp.php
http://benchmarksgame.alioth.debian.org/u32q/benchmark.php?test=all&lang=csharp&lang2=java

Es difícil sacar conclusiones. Según eso, en rendimiento de tiempo de ejecución quizás las bibliotecas de Java están algo mejor implementadas que las de C#.

Como curiosidad este artículo de Google (el pdf dentro de la página). Me ha sorprendido Scala: http://readwrite.com/2011/06/06/cpp-go-java-scala-performance-benchmark
Imagina todo lo que puedes hacer. Despues hazlo.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.