Me preguntaba si hay un gran ingreso directo al lanzar un lenguaje de programación como Java o C #.
Vender IDE, licenciar su marca para libros u obtener prestigio empresarial me parece un beneficio marginal en comparación con el esfuerzo que indudablemente llevó el desarrollo (aunque podría estar equivocado, por supuesto).
Respuestas:
En términos generales, no hay dinero en el desarrollo de lenguajes de programación.
C # ciertamente le da dinero a Microsoft, pero esencialmente está haciendo dinero indirectamente al promover el marco .NET y otras tecnologías de Microsoft.
fuente
Es muy poco probable que uno gane dinero con los lenguajes de programación, por la sencilla razón de que la mayoría de los proyectos de lenguaje de programación fallan miserablemente: el lenguaje termina siendo utilizado por su diseñador (y a veces ni siquiera por ellos) y por nadie más. Por cada C # o Java hay miles de lenguajes que no fueron a ninguna parte.
Sin embargo, el diseño del lenguaje es divertido, por lo que las personas siguen desconectadas. Y si tiene suerte, puede ganar bastante dinero. Por ejemplo, el libro de Stroustrup, El lenguaje de programación C ++, había vendido 500.000 copias cuando salió la tercera edición, lo que significa que supongo que las ventas ahora deben superar el millón. Mi 3ra ed. me costó £ 27.95, e incluso permitiendo recortes de editores y minoristas, ¡puedes ver que debe haber hecho un pequeño cambio!
fuente
Ciertos lenguajes propietarios dirigidos a dominios específicos terminan como grandes negocios de "estilo de vida", como MATLAB ( MathWorks ) y Mathematica ( Wolfram Research ). También se puede comercializar un lenguaje como middleware, como lo hizo Kx Systems con q / kdb + (lo venden como una base de datos en lugar de un idioma).
Un modelo de negocio alternativo es proporcionar alojamiento, como lo hace Heroku para Ruby on Rails . ( 37Signals efectivamente cedió ese negocio al no perseguirlo).
Y como otros han dicho, un lenguaje puede usarse como un líder de pérdidas para encerrar a los desarrolladores de aplicaciones en una plataforma específica, como lo hizo C # para .NET.
Con respecto a la consultoría o los libros, estos son modelos de ingresos bastante limitados; La consulta requiere mucha mano de obra para escalar, y los libros tienen un punto de saturación. Mejores modelos son hosting o licencias empresariales.
fuente
Entonces , digamos que quiere ganarse la vida escribiendo el próximo idioma popular. Suponga que "ganarse la vida" significa el equivalente a un salario razonable en un trabajo a tiempo completo (cualquier trabajo, no necesariamente uno técnico). Si realmente ama lo que hace, probablemente acepte un poco menos para hacerlo, así que digamos $ 12.50 por hora , o $ 2000 / mes .
Mientras trabaja en un trabajo estable, lanza su primera versión y configura una instalación para donaciones. Luego, participa en un desarrollo continuo y marketing, en un grado proporcional al número de usuarios de su idioma. Hagamos una estimación conservadora de que el 1% de sus usuarios donará , y cada uno de ellos donará un promedio de $ 1 / año .
Eso significa que para obtener su salario de $ 2000 / mes , necesita tener 2000 usuarios donadores por cada uno de los 12 meses del año. Eso es 2,4 millones de usuarios en total. Supongamos ahora que un idioma tarda 10 años en hacerse tan popular: por lo tanto, debe adquirir un promedio de 240 000 usuarios por año , o 20 000 usuarios por mes .
Si está trabajando el equivalente a tiempo completo ( 160 horas / mes ), su estrategia de promoción y la calidad de implementación deben ser suficientes para obtener un promedio de 125 usuarios por hora . Y eso es usuarios habituales, por supuesto: si el 20% de las personas que prueban su idioma se convierten en usuarios habituales, en realidad necesita una tasa de conversión de 625 personas / hora .
Incluso si cada una de las personas a las que convences convence directamente a otras cuatro personas para que prueben tu idioma, y por simplicidad, suponiendo que no continúen tratando de convencer a los demás, entonces todavía estás de vuelta al 125 usuarios / hora .
Ahora, esto puede parecer totalmente irracional, pero créalo o no, todavía puede funcionar: digamos que su estrategia de marketing produce un crecimiento aproximadamente lineal durante el período de 10 años durante el cual su idioma está ganando terreno y luego se estabiliza. Eso significa que al principio estarás convirtiendo un promedio de 0 usuarios / hora , y 10 años después estarás ganando 250 usuarios . (De nuevo, cada hora . Perspectiva, aquí.)
Es un aumento promedio de 25 usuarios por hora por año : al final de cada año, está convirtiendo a 25 personas más por hora, o 4000 personas más por mes, que a principios de año.
Volvamos a ese estadio de 2.4 millones de usuarios : ¿es factible ganar tantos usuarios en 10 años ? Si aceptamos las estadísticas (inherentemente defectuosas, pero utilizables de todos modos) ofrecidas por Langpop como precisas, obtenemos la siguiente información sobre los 7 idiomas principales que actualmente están en tendencia a través de la búsqueda de Yahoo. Si se acepta un resultado como representante de un usuario (lo sé, tengan paciencia conmigo), estos números indican el número promedio aproximado de usuarios ganados por año desde que apareció el idioma por primera vez.
Esto vuelve a poner las cosas en el reino de las posibilidades: si crea un lenguaje tan popular como, por ejemplo, Python, en 20 años tendrá suficientes usuarios para desarrollar y apoyar (y comercializar) ese lenguaje en su totalidad. Hora de trabajo.
Haga uno tan popular como C # , y puede hacerlo en 10 . ¡Guay!
... Excepto, por supuesto, que decirlo de esa manera trivializa la tarea sumamente improbable y difícil que está haciendo que un lenguaje sea tan popular. Pero bueno, si tienes una buena idea y puedes llegar a la cima por tu cuenta, sin las contribuciones de ningún otro desarrollador que acepte una parte de tu donación, entonces eres un genio, y te lo mereces
fuente
Para explicar lo que dijo @Peter: es muy común que el software se cree para admitir algo más. Casi todo lo que se regala de forma gratuita se utiliza para promocionar algo más, ya sea publicidad, una plataforma, un dispositivo o un servicio.
En el caso de los lenguajes de programación, se trata de promover una plataforma atrayendo desarrolladores. Si atrae a los desarrolladores, obtiene más software escrito para su plataforma, y eso fortalece la plataforma. La manera de atraer a los desarrolladores es dándoles herramientas increíbles, y el lenguaje es una de esas herramientas. De hecho, una de las tarjetas más fuertes de Microsoft en su batalla cuesta arriba para recuperar su lugar en el mercado de teléfonos inteligentes son sus herramientas de desarrollo. "Es fácil recrear las aplicaciones que creó para iPhone y Android para Windows Phone 7", "es fácil hacer que las aplicaciones escritas para Windows Phone 7 estén listas para otras pantallas", etc., etc.
Además, a veces solo está creando un lenguaje de programación para su propio uso porque necesita la herramienta usted mismo.
fuente
Puede obtener un poco más de beneficio al desarrollar "pequeños" lenguajes específicos de dominio. Sin embargo, no por venderlos. Hay algunas DSL que se venden con fines de lucro, pero muchos más éxitos de código abierto e incluso más fracasos (tanto abiertos como cerrados).
Donde puede beneficiarse es de las ganancias de productividad que puede obtener de ellos. Existe una especie de paradigma de desarrollo basado en esta idea.
Las ventajas y desventajas son similares a la programación basada en plantillas en C ++, pero más aún. Por ejemplo, un DSL requiere más trabajo inicial que una biblioteca normal, pero puede dar mucha más flexibilidad, robustez y "agilidad" una vez escrito. Es poco probable que lo haga a menos que el rendimiento sea una gran preocupación, de lo contrario, probablemente sea más fácil retrasar el trabajo involucrado hasta el tiempo de ejecución; por ejemplo, use un motor de escaneo basado en expresiones regulares en tiempo de ejecución en lugar de un generador de código de escáner.
"Agilidad" recibe citas de miedo porque estar demasiado ansioso por escribir un DSL es una clara violación de los principios ágiles. Incluso en un entorno con mucho DSL, es extremadamente improbable que trabajes en desarrollar un DSL como parte de tu rutina diaria.
Una razón para usar un DSL podría ser codificar algunas reglas de negocio (una especie de especificación de sistema experta) y generar código que funcione con esas reglas. Debido a que la traducción de las reglas comerciales declarativas al código resultante puede ser bastante sofisticada, se pueden manejar grandes cambios en el código generado haciendo cambios bastante directos en la especificación de las reglas comerciales. Por ejemplo, el DSL puede generar árboles de decisión, o puede rastrear dependencias a través de un dígrafo para garantizar automáticamente que todo lo que necesita una reevaluación sea reevaluado y que no haya ciclos ("hoja de cálculo" compilada).
Una versión extrema de esto podría ser usar un lenguaje lógico como Prolog para alguna parte de su sistema, aunque esto es solo extremo en cierto sentido: también es solo la selección de idioma de caballos para cursos en lugar de construir su propio DSL paradigma.
fuente
Desarrollar un lenguaje de programación y estandarizarlo no se hace realmente con una sola persona. Incluso Stroustrup es el inventor de C ++, hay muchos otros expertos industriales que participan en todo el mundo. Es más como un servicio voluntario. Personas que tienen mucho talento para escribir libros como Scott Mayers haciendo dinero con eso. Otras personas trabajan como consultores independientes o consultores para grandes organizaciones.
El mejor ejemplo es la estandarización C ++ 0x. Se ha retrasado por años ahora. La razón es porque los miembros del comité están ocupados con su trabajo principal y es difícil hacer un quórum para finalizar las especificaciones.
Empresas como Microsoft Sun (Oracle) han desarrollado sus propios lenguajes de programación y han ganado dinero con IDE, y también proporcionando un soporte continuo a través de sus plataformas. Es más como una solución cerrada para los problemas. Pero lo bueno es que estos lenguajes de programación están estandarizados / aprobados por ISO o comités similares. Parece que Java está vendiendo su IP para empresas por usar su lenguaje de programación. Recientemente, Oracle ha demandado a Google por infracciones de IP en Java.
En una sola oración, es más como un servicio voluntario que un negocio para aquellos que trabajan para estándares abiertos.
fuente
Si logras (supongo que te refieres a un individuo y no a una compañía) crear un lenguaje de programación exitoso, ciertamente es posible ganar una vida decente vendiendo libros, hablando en conferencias sin mencionar la consulta o ser adquirido o contratado . Incluso puede ganar dinero al otorgar licencias de su lenguaje de programación a diferentes compañías, lo que hará que sea menos probable que tenga éxito.
Por otra parte, hay formas mucho más fáciles de ganar dinero y la mayoría de las personas (corporaciones como Sun y Microsoft excluidas) lo hacen más por el desafío y posiblemente por la geek.
Las posibilidades de que una pequeña empresa / individuo cree un lenguaje de programación convencional son extremadamente pequeñas, probablemente sea más fácil intentar llenar un nicho de algún tipo. Por otra parte, ciertamente no es imposible hacerlo y quienes dicen que no puedo hacerlo a menudo son interrumpidos por quienes lo hacen :)
fuente