¿Cuál es la diferencia entre los lenguajes de programación back end y front end?

Los términos “front end” y “back end” surgieron del desarrollo web . Se entiende que el front end es la aplicación que se ejecuta en el navegador web. Es el principal responsable de interactuar con el usuario a través de formularios, botones y menús. Se entiende que el back-end es la aplicación que se ejecuta en el servidor web. Es el principal responsable de manejar las bases de datos y la lógica o los cálculos empresariales. Las dos aplicaciones se comunican (o cooperan) entre sí a través de la web.

Para el front-end (o navegador web), los únicos idiomas que son directamente aplicables son HTML, CSS y JavaScript. Sin embargo, para las llamadas aplicaciones de una sola página, es común usar lenguajes que se transfieren a JavaScript, como The Super Surrogates of JavaScript.

Para el back-end, hay una selección mucho mayor de lenguajes, como Java, C #, PHP, Python, C ++, Ruby, Go, Scala, etc.

Interfaz

JavaScript es el único idioma front-end, ya que es el único idioma implementado en todos los navegadores.

Backend

Los lenguajes de fondo populares que he usado para crear API, trabajos programados, aplicaciones de escritorio y procesos de trabajo del servidor son C #, Python, Ruby, Java y JavaScript (por ejemplo, Node.js).

Las diferencias

La diferencia entre JavaScript y la mayoría de los lenguajes de fondo es que los lenguajes de fondo tienden a estar basados ​​en clases, orientados a objetos y compilados. Los lenguajes de back-end se pueden ejecutar en múltiples plataformas desde un servidor a una computadora de escritorio o un dispositivo móvil. JavaScript es un lenguaje de secuencias de comandos interpretado que se ejecuta principalmente en los navegadores. JavaScript y un lenguaje de fondo como Java, aunque tienen un nombre similar, son bastante diferentes.

Java es a Javascript como Car es a Carpet

Popularidad

A continuación se muestran los idiomas más populares según la cantidad de usuarios activos en GitHub.

Clasificaciones al 24 de enero de 2018.

Por lo general, cuando se hace referencia a back-end y front-end, esto significa que está hablando de desarrollo web. El back-end se ejecuta en los servidores, mientras que el front-end se ejecuta dentro del navegador de las máquinas cliente.

No existe un lenguaje de back-end o un lenguaje de front-end. Es solo un caso de qué idioma está disponible y dónde. De hecho, el mismo lenguaje exacto podría usarse para ambos. Lo que es mucho más probable es un conjunto de bibliotecas y marcos diseñados para los diferentes fines. Y lo más probable es en qué está haciendo su programa y dónde.

Dicho esto, el front-end está vinculado a lo que proporciona el navegador del cliente. Usualmente no tienes nada que decir sobre lo que hay allí. En la actualidad, todos los navegadores proporcionan un intérprete de JavaScript (o compilador JIT / VM). Casi siempre el front end está escrito en JS. Ha habido otros en el pasado, por ejemplo, IE también solía venir con un intérprete de VBScript. Sin mencionar los archivos DLL ActiveX compilados nativos. Incluso Java WebApps alguna vez fueron bastante comunes. En estos días todavía estamos viendo Flash en algunos casos (aunque cada vez es menos frecuente), que también es un lenguaje.

Sin embargo, el back-end se ejecuta en sus propias máquinas (los servidores) para que pueda elegir entre cualquier cosa disponible. Desde ejecutar JS también (por ejemplo, a través de algunas bibliotecas como NodeJS) a través de Python, Ruby, Java, C #, Lisp, Perl, PHP, ASP, etc. hasta incluso compilar en nativo desde cualquiera de varios otros idiomas como C, C ++, Pascal, Lisp, Haskell, etc. Incluso podría usar lenguajes que generalmente se interpretan a través de diferentes herramientas que los compilan en binario, incluso en instrucciones de CPU binarias nativas, por ejemplo, Python a través de Nuitka.

Realmente no hay diferencia en los idiomas per se, pero hay una diferencia clara en el dominio del problema .

Por ejemplo, Java se puede usar para frontend (piense en las aplicaciones nativas de Android), pero también se puede usar para trabajos de backend como API, o incluso para trabajos ETL en ingeniería de datos. JavaScript es el único lenguaje compatible de forma nativa para los navegadores, pero también ha encontrado su camino en diferentes entornos (Node, NGINX, gestión de hardware, etc.).

Si bien los idiomas no difieren, la forma en que se usan y para qué se usan es muy diferente. Los problemas frontend se centran en interactuar con los seres humanos, mientras que los problemas de back-end se centran en la comunicación máquina a máquina y el almacenamiento de datos.

Como desarrollador, las opciones más importantes casi siempre consisten en comprender en qué dominio del problema está trabajando y qué idioma es el más adecuado para los matices del desafío en cuestión.

Un lenguaje front-end está diseñado para ejecutarse EN el navegador, y eso generalmente significa Javascript o uno de sus mejores primos, como CoffeeScript u Opal.

Se ejecuta un lenguaje de fondo en el servidor y tiene más opciones. Node.js (javascript), Ruby-on-Rails (ruby), Django (Python), etc.

El front-end es todo lo relacionado con lo que ve el usuario, incluido el diseño y algunos lenguajes como HTML y CSS.

El back-end, o el “lado del servidor”, es básicamente cómo funciona, actualiza y cambia el sitio. Esto se refiere a todo lo que el usuario no puede ver en el navegador, como bases de datos y servidores.

Debido a que cualquier idioma realmente puede ejecutarse en cualquier lugar , la respuesta correcta a esta pregunta es “convención”.

Es convencional ejecutar PHP en un servidor, pero usando transpiladores o ensamblaje web debería ser posible ejecutar PHP en un navegador, pero ¿por qué ?

Cuando se trata del status quo en tecnología, es saludable decir, “no es necesariamente así”.

El código que crea o ayuda a crear algo que puede ver se realiza mediante lenguajes de programación front-end, como sus menús, formularios, textos formateados, etc.

El código que ayuda en el procesamiento de datos será realizado por sus lenguajes de programación de back-end. Algo así como, verificación de contraseña, búsqueda de resultados filtrados, y algo así.

Espero que esto ayude.

PD: Sé que la respuesta es de naturaleza demasiado simple.

Sorprendentemente, no existe tal distinción en la mayoría de la realidad. Los lenguajes de programación son herramientas de uso general que se pueden utilizar para crear aplicaciones front-end o back-end. Tampoco el front-end / back-end es la única forma de cortar cosas.

Puedo escribir una interfaz de usuario en Java para Android, y un back-end en JavaScript para ello. O bien, puedo escribir una interfaz de usuario en JavaScript para Windows Phone y un back-end de Java para ello.