¿Qué se puede hacer con el aprendizaje de un lenguaje de script del lado del servidor? ¿Cuál debería aprender?

Al menos se pueden esperar dos tipos de respuestas como “¿por qué lado del servidor?” Y “¿por qué lenguaje de scripting?”

¿Por qué un lenguaje del lado del servidor?

Por supuesto, un objetivo es almacenar datos y poder recuperarlos desde cualquier lugar (al menos con alguna conexión de red) y, a menudo, compartirlos, pero los servicios en la nube como Backend como servicio a menudo pueden ser suficientes para eso a menos que desee un control total en qué máquinas se guardan los datos.

Una razón realmente más importante será que a menudo necesitará implementar reglas de negocio que no deben ser ignoradas por los piratas informáticos del lado del cliente o del intermediario (tenga cuidado con el uso de SSL siempre que las cosas sean razonables). Cualquier control de formulario de front-end siempre debe hacerse de nuevo en el lado del servidor, y por coherencia, poder reutilizar exactamente el mismo código para controlar las entradas en ambos extremos es una ventaja interesante que se vuelve aún más significativa cuando el código del lado del cliente también funciona sin conexión … (transición interesante a los lenguajes de secuencias de comandos 😉)

¿Por qué un lenguaje de script?

Técnicamente, los lenguajes de secuencias de comandos del lado del servidor son muy adecuados para las metodologías ágiles, y más específicamente para el desarrollo basado en pruebas

Esto se debe principalmente a que casi no tiene tiempo de compilación y, a menudo, ni siquiera tiene que reiniciar un servidor para probar los cambios (pero es posible que deba borrar o deshabilitar algo de memoria o caché del módulo)

Vojta Jina realizó demostraciones bastante buenas con Karma JavaScript Test Runner (también conocido como Testacular) al mostrar los resultados de las pruebas unitarias actualizadas incluso mientras escribía su código. La demostración fue del lado del cliente, pero las mismas herramientas se pueden aplicar del lado del servidor con node.js u otras plataformas JavaScript del lado del servidor como wakanda, SilkJS u otras, y estoy bastante seguro de que puede encontrar herramientas similares para otros lenguajes de secuencias de comandos como PHP, Python ruby ​​u otros.

En realidad, incluso los proyectos Java y C ++ han visto parte de su código hecho en JavaScript con fines de flexibilidad.

Tenga en cuenta que todos los diferentes lenguajes de secuencias de comandos del lado del servidor tienen sus propias ventajas y que generalmente debe considerar qué encaja mejor con su caso:
– con qué idiomas, marcos trabajan sus compañeros de trabajo
– cuál proporciona las mejores bibliotecas, herramientas y arquitecturas para su dominio específico
– cuál se adapta mejor a tu propia forma de pensar

Algunos son puramente funcionales, otros son simplemente objetos, y otros son una especie de mezcla que depende de la forma en que lo use (JavaScript, PHP)

comienza a aprender

No es el único, pero, mientras busca aprender uno, a partir de hoy JavaScript es un lenguaje de script muy interesante para el lado del servidor:
– grandes actuaciones
– excelente y servicial comunidad
– ser activamente mejorado a través de implementaciones y estándares
– lado del cliente potencialmente reutilizable
– Muy flexible con mecanismos todavía estrictos y de congelación.

Otra ventaja es que, si bien el conocimiento de JavaScript también es muy útil para el desarrollo front-end, también se puede usar en bases de datos (MongoDB, Couchbase, WakandaDB, …), para construir herramientas de línea de comandos (Inquirer.js, commander.js, .. ), para configurar scripts proxy (archivos de ejemplo de JavaScript o JScript Auto-Proxy)

Creo que hemos pasado de aplicaciones web o sitios web con script del lado del servidor en los últimos años, a todo tipo de aplicaciones mixtas de servidor-cliente a aplicaciones web totalmente del lado del cliente hoy.

El motivo es Javascript. Los programadores temían la idea de trabajar con JavaScript durante muchos años porque era muy lento y tenía muchos problemas.
Recientemente, se volvió más eficiente y, con jQuery, su uso explotó, haciéndolo útil para crear aplicaciones que se parecen en muchos aspectos a las capacidades de las aplicaciones de escritorio tradicionales.

Entonces, ahora, la mayoría de las aplicaciones que generalmente se escribieron en el lado del servidor ahora se pueden codificar como aplicaciones javascript del lado del cliente, lo que las hace más rápidas y más receptivas, ya que js es más rápido hoy en día, pero principalmente porque evita tener que enviar solicitudes al servidor y esperar por sus respuestas todo el tiempo.

Entonces, ¿por qué no hacemos todo en el lado del cliente ahora?
Por algunas razones Principalmente, seguridad. El código escrito en el lado del cliente es visible para cualquier persona (a menos que se ofusque o “ponga en evidencia” con herramientas hechas para ese propósito).
Además, el servidor sigue siendo responsable de gestionar datos, conexiones de bases de datos y de interactuar con componentes y servicios de terceros.

Incluso si crea una aplicación javascript / Ajax compleja que se conecta directamente a la base de datos desde el cliente, deberá crear al menos una interfaz simple y tranquila para manejar las interacciones de la base de datos.
Algunos servicios de base de datos NoSQL que se ejecutan en mongo o couchdb pueden permitirle conectarse directamente a través de sus interfaces de descanso incorporadas, pero no son muy comunes.

En pocas palabras: cada vez que su aplicación necesite interactuar con una base de datos, tendrá que ensuciarse las manos con la codificación del lado del servidor. Al menos, para crear una interfaz REST para su base de datos.
Y si está desarrollando una aplicación bancaria o una tienda en línea, es probable que desee ocultar su lógica de negocios (a menos que esté completamente loco o no le importe exponer todos sus secretos), por lo que el lado del servidor sigue siendo el lugar para hacer todo esto

¿Que lenguaje?
Evitaría usar soluciones excesivas (c, c ++, java) o lenguajes de un solo propósito (php).
Elegiría un lenguaje de script de propósito general que sea bueno para todo y que sea excelente en la programación del lado del servidor.
Mi elección: Python o Ruby.

Puede crear sitios web solo del lado del cliente. Sin embargo, la mayoría de los sitios web de hoy requieren algún código del lado del servidor para conservar los datos. Es posible que desee encontrar una manera conveniente de actualizar el contenido de su sitio, por ejemplo, o capturar datos del usuario, o recordar las elecciones que un usuario puede haber hecho, etc. Entonces definitivamente necesitas una tecnología del lado del servidor.
La mayoría de los sitios web de hoy en día usan algún tipo de contenido dinámico, y la mayor parte de ese contenido se administra con secuencias de comandos del lado del servidor.

Recomiendo NodeJS si está aprendiendo un lenguaje de script del lado del servidor, pero también recomendaría incursionar en PHP y Ruby.

Recomiendo tomarse el tiempo para aprender C # / ASP.NET MVC. Creo que es más fácil de aprender simplemente porque VisualStudio es un editor excelente, lo que lo hace mucho más simple que tratar de aprender Java usando Eclipse, por ejemplo.

La razón por la que no solo aprendería un lenguaje de script para el lado del servidor es porque siento que es difícil apreciar completamente los beneficios de un lenguaje compilado en el lado del servidor.

Si pudiera responder, lo haría, pero esto está fuera de mi área cuando se trata de secuencias de comandos para sitios web y demás.

Por cierto, me gustan los lenguajes de secuencias de comandos de alto nivel debido a su naturaleza indulgente y la facilidad de aprendizaje (mi opinión). Soy especialmente aficionado a Lua. En realidad, soy nuevo en la programación orientada a objetos, pero hasta ahora me estoy divirtiendo mucho. Es mucho más indulgente que decir PASCAL, FORTRAN o COBOL, lo que me pareció tedioso (en los años 80) y que personalmente hizo que la codificación me resultara aburrida. Por supuesto, me doy cuenta de que esta divagación es irrelevante para su pregunta.

Gracias por el A2A, lo siento, no pude proporcionar una respuesta suficiente.