2010-04-20 15 views
11

Al debatir qué plataforma usar para qué aplicaciones (específicamente debatimos C++, java, C# yf #) tratamos de encontrar investigación científica de calidad sobre la productividad (costo de propiedad real) de aplicaciones similares construidas en varias plataformas/usando los idiomas mencionados anteriormente. ¿Alguien sabe de tal investigación?Productivity research material

EDITAR: Veo que varios comentaron que el tipo de investigación solicitada no existe/no se puede ejecutar. Así que pensé que había aclarado, ya que el tipo de investigación que estoy pidiendo es ejecutable (y sé que ya leí una encuesta pero olvidé la fuente)

No pido un estudio que brinde conclusión sobre qué plataforma/lenguaje sería el "martillo" más productivo para cualquier "clavo". Estoy pidiendo una investigación que, dado un conjunto de pre-edición (como todas las investigaciones tienen), p. tipo de plataforma HW, tipo de aplicación con competencias comparables en el personal, investiga sobre las herramientas (específicamente el lenguaje) y su impacto en la productividad. No estoy tratando de iniciar una guerra religiosa, es por eso que no estoy pidiendo opiniones de la gente, pero calidad científica investigación :)

+1

Básicamente él está tratando de descubrir cuáles son las fortalezas de cada idioma. ¿Cuándo saco la caja de herramientas C contra la caja de herramientas de Java? Por ejemplo, usa C al hacer controladores de dispositivo, Ruby cuando hace aplicaciones web y Java cuando ... bueno, ya no sé para qué usa Java ;-) – Sixty4Bit

+0

Debates religiosos (dibujos animados): http: // payedcoder .wordpress.com/2010/05/07/religious-debates/ –

Respuesta

2

Aquí es a C++ vs Java study.

Aquí hay un estudio semi-científico de Python/Django vs. C#.

Y aquí hay uno en Java vs. C# vs. Ada.

todos los idiomas que usted está interesado en comparar, hacer una búsqueda en Google de

study of [LanguageX] vs [LanguageY] 

y ver lo que se puede deducir.

Pero estoy de acuerdo con la mayoría de los demás que mientras se encuentre en el lugar correcto con su selección de idioma, el resto de su productividad depende de la calidad de sus herramientas y personas, no con si elige Perl o Python .

0

dudo encontrará investigaciones concluyentes en ese nivel.

La productividad y los costos tienen muchos factores, incluidos, entre otros, sus desarrolladores, la relación costo/capacidad de los nuevos desarrolladores en esas plataformas, los sistemas ya instalados y otros factores que están relacionados con su negocio.

No es un problema para los investigadores, es uno para los administradores.

+0

siempre que esos factores se establezcan como una condición previa. Estoy de acuerdo con eso y estoy pensando en dos equipos diferentes de competiciones iguales en diferentes tecnologías. MI.g team a es desarrolladores de C++ y el equipo b es desarrolladores de java –

+1

¿Y cómo podría alguien determinar científicamente que dos equipos tienen las mismas competencias? –

1

He estado allí, hecho eso. De esto están hechas las guerras religiosas (en algunos lugares) ;-)

Dudo mucho que puedas llegar a una decisión definitiva independientemente de lo bien que investigues el tema. Todas las "plataformas" que mencionas arriba tienen muchas cualidades y, al final, en cualquier dirección que tomes, tendrás que comprometerte.

No excluya la opción de usar varias plataformas diferentes según las circunstancias (por ejemplo, en un contexto particular, he utilizado regularmente C++ junto con Java). Hay muchas maneras de despellejar a un gato y la interoperabilidad no es, por definición, inmanejable.

+0

No estoy buscando un estudio de investigación que abarque todas las combinaciones posibles de competencias del personal, tipos de aplicaciones de plataformas, etc. Estoy buscando investigación para cualquier configuración específica, básicamente –

+0

Creo que decir que "esto es de lo que están hechas las guerras religiosas "es demasiado simplista y sensible sobre una pregunta legítima. Un estudio (no puedo encontrar) dijo que, de hecho, algunos idiomas eran más productivos que otros. En particular, se dice que VB y Java toman en promedio 50% del tiempo de otros lenguajes como C++ o incluso C#. Los lenguajes de programación de 5ta generación incorporan el concepto de productividad (o RAD) mediante el uso de herramientas de diseño inteligentes. Hay una gran diferencia entre los fanáticos del lenguaje y las personas inteligentes que solo buscan eficacia. El tiempo es dinero. –

+0

Mi observación sobre "guerras religiosas" tenía la intención de transmitir la idea de que no hay una respuesta clara a esta pregunta. Hay muchos caminos que conducen a la cima de la montaña, por así decirlo. Las herramientas RAD ahorran tiempo, pero están diseñadas para dominios de aplicaciones particulares. Yo llamo elegir tal herramienta como un compromiso. En el mundo real, se tendrán que tener en cuenta muchas variables. No creo en una respuesta "científica" a esta pregunta. –

0

¿Investigación científica? Yo tampoco pienso eso. Estos vendrían de la experiencia y FUD a través de Internet. Además, todos los proveedores (IBM, M $, Oracle ...) tendrían su propia historia de productividad basada en su "investigación de búsqueda". Usted puede encontrar algo útil en el sitio de la investigación PWC PWC innovation technology

0

Soy de la opinión de que si es puramente productividad que está buscando, un equipo de aplicación desarrolladores que trabajan en C++ serán menos éxito que un equipo de trabajo en C# o Java. Por qué: administración de memoria, pérdidas de memoria, errores de puntero que consumen mucho tiempo, errores desagradables y bloqueos que deben ser corregidos, etc. No voy a decir algo sobre F # (¿hay una comunidad de desarrolladores de F # a los que puedan recurrir los programadores?) . Entonces, allí, reduje su selección a Java o C#. Y eso es lo más lejos que iré.

+1

No estoy tratando de restringir una selección :) Estoy tratando de apoyar una posible decisión con material científico. Todos podemos tener nuestras corazonadas, pero ese es el combustible para las guerras religiosas y esta pregunta fue motivada en parte para terminar con uno: p –

0

Las ganancias de productividad dependen de la aplicación en cuestión. Para una aplicación en particular, existen claramente ajustes y inadaptados en el uso de diferentes lenguajes o patrones de programación. Por ejemplo, usar código orientado a objetos en lugar de código de procedimiento tiene ganancias de productividad claras para un software grande. De forma similar, existen varios patrones/antipatrones para diferentes aplicaciones. Los lenguajes de script tienen un claro beneficio de productividad para el programador. Encontré este artículo que compara algunos de los lenguajes de programación para diferentes tareas.

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.56.2977&rep=rep1&type=pdf

2

Esto no es ciencia, pero se basa en 28 años en el negocio, observando y participando en equipos que utilizan una gran variedad de tecnologías, desde el montaje hasta una larga lista de idiomas de alto nivel, además, por supuesto, letanía de silver-bullet-du-jours:

Lo que realmente afecta la productividad es su gente, específicamente, qué tan buenos son y qué tan bien liderados están.

Por lo tanto, si está tratando de elegir un idioma u otra tecnología, elija la que sea más competente para su equipo. Si es un lanzamiento brusco, o si es realmente de campo verde, contrate a las mejores personas que pueda encontrar, y luego elija la mejor tecnología compatible con los proveedores cuya tecnología dependerá ... o arroje una moneda.

+0

Estoy de acuerdo con usted en que las personas son más importantes que el idioma. La pregunta es una comparación de idiomas, no factores de productividad en general. ¿Algún día llegaría a ser una elección real para mí? Me encontraría en la afortunada situación de poder elegir equipos de igual fortaleza en Java, C# y C/C++ –

+0

@Rune Entiendo tu pregunta, y simpatizo con tu deseo de evitar las guerras religiosas Personalmente, abandoné esos debates hace mucho tiempo, y ahora busco personas que lo sean, como Joel diría "Inteligente y haz las cosas bien". – CPerkins

2

Ya tiene la respuesta a esta pregunta en su proyecto.

Tome cada uno de los idiomas que le interesan y pida a cada persona que se califique en ese idioma del 1 al 5, siendo 1 un novato y 5 un experto en dicho idioma. Luego haga un recuento de cada idioma, el idioma que tenga el nivel más alto es el más productivo para su grupo.

Si está haciendo una aplicación web, tenga en cuenta Ruby. Si está haciendo un cliente grueso, tenga en cuenta C#. Si solo intenta hacer dinero consultando, use Java.

+1

No estoy tratando de averiguar qué tecnología usar para mi grupo. Estoy tratando de estar bien informado de cuándo ir con qué tecnología. –

+0

Realmente debería agregar este comentario a su pregunta. Cambia drásticamente la naturaleza de la respuesta. Básicamente, dos de las respuestas dadas no se habrían dado si lo hubiera dicho de esta manera en la pregunta. Interesante discusión sin embargo. – Sixty4Bit

Cuestiones relacionadas