Cómo hacer un programa independiente

Estar dispuesto a trabajar muy duro …

Hablando de la experiencia, y desde un principio, es algo así:

Objetivo:
Diseñe, cree y comercialice un programa de software de forma independiente.

Requisitos:
Dese 15,000 horas (aproximadamente 5 años) entre hacer un trabajo de tiempo completo, criar hijos, hacer las tareas del hogar, arreglar la casa y el jardín y mantener feliz a su esposa (o distracciones equivalentes).

Calificaciones:
– Ser autodidacta por naturaleza.
– Esté dispuesto a trabajar cuando todos los demás estén dormidos hasta las 2 o 3 de la mañana, la mayoría de las noches.

Antes de:
1. Tenga una idea original que pueda resolver un problema.
2. Asegúrese de que sea original.
3. Asegúrese de que sea auténtico.
4. Asegúrese de que alguien además de usted lo use.

Empezar:
5. Esté entusiasmado y cómo hacerlo.
6. Enséñese cómo hacerlo para que aprenda en el camino.
7. Elija un idioma y aprenda a programar con él.
8. Copie todas las buenas ideas que pueda encontrar en los foros de códigos.
9 Intenta resolverlo tú mismo antes de hacer preguntas tontas.
10. Conozca los algoritmos, particularmente los de clasificación.

Sigue adelante:
11. No olvides registrar el TM e intentar patentarlo. *
12. Aguanta la respiración y pruébala con tus amigos tolerantes (y “enemigos”).
13. Escucha a tus amigos y enemigos.
14. No te sientas orgulloso cuando te den consejos, solo escucha buenos consejos.
15. Hazlo a tu manera porque eres el consumidor final.
16. Diseña una buena interfaz de usuario pero no seas demasiado quisquilloso.
17. Poner la función antes que la forma.
18. Mantenlo simple. Luego simplifícalo nuevamente.
19. No intentes impresionar con inteligencia.
20. Luego esconde todas las cosas que todavía son complicadas.

* (Presenté una provisional dentro de 1 año, pero la aplicación completa también debe hacerse dentro de un año. La provisional no tiene valor por sí misma).

Fin:
21. Diseña un logotipo y gráficos.
22. Encuentra un modelo de distribución
23. Cree un instalador que pueda volver a empaquetar su aplicación en 10 minutos en un abrir y cerrar de ojos.
24. Súbelo a un par de cientos de sitios shareware.
25. Intenta distribuir actualizaciones rápidamente e informar a tus usuarios cuando estén disponibles.
26. Aprenda a crear un sitio web.
27. Cree ese sitio web y encuentre un ISP asequible para alojarlo.
28. Mantener el sitio web.
29. Encuentra una manera de ver tu tráfico.
30. Aprende sobre SEO.
31. Compre Google Adwords.
32. Sigue actualizando el contenido.

Finalmente :
33. Comienza gratis pero encuentra una manera de alentar a las personas a comprarlo.
34. Cree un sistema de registro e integre con un servicio de pago.
35. Promoverlo, generar publicidad.
36. Consigue buena prensa.

No olvides :
37. Agregue un sistema de soporte mantenible.
38. Aleja a los molestos usuarios.
39. Infórmese sobre las empresas que distribuyen su software a sus empleados mientras pagan la licencia de cero a uno.
40. Cambie constantemente sus códigos de registro para evitar la piratería.
41. Controle los sitios en su mayoría asiáticos que están pirateando sus binarios.
42. Escriba la documentación (si es necesario).

Después:
43. Intenta vender el programa (una posibilidad muy remota).
44. Lanza una nueva versión todas las semanas sin introducir nuevos errores.
45. No sigas acumulando nuevas características incluso si, individualmente, mejoran alguna funcionalidad deseable. En cierto punto, la aplicación se vuelve menos ágil y menos útil.
46. ​​No pierda su valioso tiempo agregando características poco convincentes, propias o ajenas, que no harán nada para detener la inevitable disminución de la popularidad de su programa.
47. En algún momento, suéltalo y sigue adelante.

Recompensa:
– Una sensación de logro.
– Un poco de agradecimiento.
– Muchos clientes quejumbrosos, codiciosos y libres.
– Un buen karma.

Financiero:
– Una miseria (centavos por hora).
– La única esperanza: tratar de vender el producto o su patente a una empresa por una cantidad modesta.

Al leer sus comentarios suena como si fuera un estadístico. El código R solo se puede ejecutar realmente con el intérprete R (Hubo un compilador R que apareció en mis búsquedas que podría hacer que su código R se ejecutara solo, pero parece que ese compilador nunca ganó tracción y probablemente no sea utilizable). Por lo tanto, es probable que deba volver a implementar su código en otra cosa si debe ejecutarlo sin el intérprete. Si yo fuera usted, preferiría decirles a mis usuarios “Todos ustedes tendrán que instalar R para usar mi programa”.
En cuanto a la aparición de ventanas para la entrada, puede usar rwxwidgets, que es una biblioteca multiplataforma para el desarrollo de GUI. Probablemente también hay bibliotecas para Qt, GTK, y tal vez incluso la API de Windows. Pero al menos le daría un vistazo a WxWidgets. Estas son todas las bibliotecas C / C ++ en las que las personas han trabajado para trabajar con R.
Finalmente, empaquete todo como un paquete CRAN para que otras personas puedan instalarlo fácilmente y comenzar a distribuirlo.

Otros lenguajes que son verdaderamente independientes (y que no recomiendo en su situación) son C / C ++, Pascal, D, Fortran y otros que no puedo pensar en este momento.

RwxWidgets
GTK, un kit de herramientas GUI para R
Parece que hay un gWidgets2 disponible en CRAN para usar que parece bastante maduro a primera vista.

Editar: Parece que los RwxWidgets nunca alcanzaron realmente la estabilidad y todavía están en la versión 0.5 sin actualizaciones desde 2008, por lo que puede que no sea la mejor opción.