Eso depende completamente de cómo espera que se use.
Si se supone que es un software de escritorio independiente, iría con lo que sea que esté familiarizado o quiera aprender. No es probable que tenga una base de clientes, ya que la mayoría de los maestros no van a ser un escritorio Linux, por lo que también puede disfrutar.
Si se supone que es una aplicación web, tendrá que aprender HTML y CSS y casi seguramente Javascript para el lado del navegador. También tendrá que aprender sobre servidores web. Apache HTTPD (y NGINX, creo) tienen soporte para programas CGI, así como lenguajes incrustados: Perl, PHP, Python (e incluso Ruby, creo). Si prefieres usar Java, también deberías aprender sobre Tomcat y lo que requiere de los applets de Java. (Y de todos modos, probablemente terminará en la interfaz de Tomcat con Apache HTTPD para administrarlo correctamente. Tomcat es un servidor web marginal).
- ¿Existe algún software gratuito para correo electrónico masivo?
- ¿Cuál es el mejor software que puedo usar para raspar el sitio web de Yoox?
- ¿Cuál es su mayor obstáculo al aprender / comprender una base de código existente?
- ¿Cómo los sitios web / aplicaciones como Evensi, Nearify, Vamos obtienen eventos de Facebook?
- ¿Cuántas personas pueden acceder a mi aplicación al mismo tiempo sin que falle?
Dentro de la aplicación web, probablemente también tendrá que elegir lo que usará como tienda persistente. Los archivos simplemente no funcionan muy bien cuando varias personas pueden escribir en el mismo archivo al mismo tiempo, es por eso que se utilizan bases de datos. La mayoría de las bases de datos SQL ahora son compatibles (o están a punto de ser compatibles) en Linux. Dado que el usuario final son profesores, no tienen mucho dinero, por lo que Oracle y Enterprise MySQL están fuera, aunque MySQL de la comunidad está bien, al igual que la bifurcación de MySQL (MariaDB).
Existen diferencias sutiles entre los diferentes servidores de bases de datos SQL, principalmente en la forma en que se administran, pero algunos incluyen tipos de datos y otras sintaxis.
Probablemente desee proporcionar algún soporte de administración de bases de datos en su aplicación.
Probablemente también necesite tener un código de limpieza en el lado del servidor, para mantener todo esto en funcionamiento. Eso será / bin / sh (shell bourne – hay múltiples implementaciones), / bin / bash (bash, o Bourne Again Shell – hay diferencias con respecto al shell bourne original), Perl (Perl 5, no Perl 6 – no uno usa Perl 6 en serio todavía), o Python (pero ten cuidado con las diferencias entre Python 2.6, 2.7 y 3.x)
Creo que puede ignorar con seguridad el uso de FORTRAN, PL / 1, ALGOL, Assembler (de cualquier tipo), C, C ++, Objective C, Rust o Swift. En realidad, la lista de idiomas que puede ignorar es enorme, pero solo porque muchos son muy oscuros.
Probablemente necesitará aprender algunas secuencias de comandos de algún tipo para su proceso BUILD. Las herramientas automáticas son muy antiguas (y muy inestables, pero estoy familiarizado con ellas). Si utiliza las herramientas automáticas, definitivamente necesitará aprender M4 y posiblemente varios aspectos de las secuencias de comandos de shell Bourne.
También necesitará aprender una buena herramienta de control de versiones, aunque ese no es un lenguaje (per se.) “Git” es muy popular. “Svn” está luchando por mantenerse al día. “Cvs” es muy vieja escuela. “Rcs” está ahí, apenas.