¿Por qué no hay tantos idiomas front-end como hay back-end?

Hasta ahora, todos han perdido el punto obvio: hay un montón de opciones para los idiomas front-end. No me refiero a bibliotecas o marcos. Idiomas

Los más populares incluyen TypeScript, Coffeescript, FlowType, Purescript, Elm y otros. Hay una lista con más de cien. [1]

Y con Emscripten [2] incluso puede compilar C ++ y otros lenguajes para ejecutarlos en el navegador.

¿Por qué más personas no los usan? El 99% no tiene cuota de mercado o mental. ES6 es prácticamente un estándar de facto ahora. Es el estándar literal. TypeScript es excelente y está ganando popularidad rápidamente. Coffeescript anteriormente tenía ese honor, pero TypeScript y ES6 combinados en su mayoría han matado su popularidad. Elm tiene seguidores leales.

Y Emscripten es más una novedad, desafortunadamente. Altos costos para que funcione, difícil de depurar. Buen rendimiento, pero la energía de activación es demasiado alta.

Es bastante fácil ejecutar muchos idiomas en un servidor. No es demasiado difícil incluir un transpilador en su proceso de desarrollo, y las personas lo están haciendo más de lo que solían hacerlo.

Finalmente, sin embargo, muchos desarrolladores front-end no parecen superar el nivel de habilidad junior. Y se resisten incluso a configurar un transpilador.

Notas al pie

[1] jashkenas / coffeescript

[2] kripken / emscripten

La razón principal es que JavaScript es el único idioma nativo admitido en el navegador web, por lo que usa JavaScript para el desarrollo front-end o debe usar un lenguaje que se transpile a JavaScript (para lo cual hay muchos; consulte The Super Surrogates of JavaScript)

La segunda razón es que, en el fondo, ha habido mucha historia para los idiomas. Entonces tienes Java, Python, C #, PHP, Ruby, Perl que se remontan a muchos años. El llamado desarrollo front-end es un fenómeno relativamente reciente.

Consideremos los lenguajes de programación de fondo. El desarrollo de una aplicación web con cualquiera de los más destacados como Python, PHP, Java, Ruby, etc. depende principalmente de los requisitos del servidor en el que se ejecuta la aplicación. El lenguaje de programación de su aplicación web se manejará en el servidor y solo la salida del programa se devolverá a su navegador. Dado que los servidores se personalizan fácilmente para satisfacer las necesidades de su aplicación, hay más libertad en el uso de diferentes idiomas. ¡Puede implementar Apache para ejecutar aplicaciones PHP y MySQL mientras que puede implementar Tomcat si su aplicación está escrita en Java!

¡Ese no es el mismo caso con los idiomas frontales! El principal problema es la estandarización. Ahora, todos los principales navegadores son compatibles con las reglas del W3C. El front-end de la aplicación se carga en el navegador del usuario y todas las aplicaciones siguen un estándar en esta preocupación, ya que es seguro que la siguiente aplicación puede ejecutarse en cualquier navegador principal. Crear nuevos interrumpirá la coherencia. Si hay un estándar diferente que no sea HTML y CSS, entonces Front-end será un gran dolor de cabeza ya que seguir diferentes estándares depende del usuario (¡qué navegador implementarán y qué estándares siguen esos navegadores!)

Además, HTML y CSS ya son buenos. Son ligeros y no tienen mayores problemas. PHP, por ejemplo, no es realmente confiable para ser utilizado en grandes proyectos. Tiene problemas de rendimiento con muchos otros problemas en su núcleo como idioma. Es por eso que las personas usan lenguajes como Java o Ruby cuando se trata de rendimiento y grandes aplicaciones. Si bien Java es una excelente opción para grandes proyectos empresariales, PHP es una opción perfecta para algunas aplicaciones que requieren menos rendimiento.

No estoy completamente seguro de lo que está obteniendo aquí, porque hay TONELADAS de idiomas front-end. Algunos de los marcos para front-end que existen:

Jquery

Oreja

Fundación

Yaml

La lista sigue y sigue y sigue.

De acuerdo con otras respuestas, JS es un lenguaje de navegador nativo, por lo que verá muchas bibliotecas JS que facilitan el trabajo de front-end. Además, hay muchas bibliotecas de casos que agilizarán su trabajo front-end.

Hay toneladas de idiomas frontales que solo debes encontrar y aprender.

Respuesta corta: estandarización.

Si hubiera más lenguajes de programación para desarrolladores front-end, los navegadores tendrían que incorporar intérpretes para todos ellos. Eso significa mantener, optimizar y adaptar todos los intérpretes.

Aunque tenemos HTML, CSS y JavaScript, la mayoría de los navegadores intentan hacer cosas basadas en sus propias reglas en lugar de reglas estandarizadas. Esto significa que los desarrolladores tienen que modificar el código para apuntar a cada uno de esos navegadores. Ahora imagine que si tuviéramos más de estos pocos idiomas, sería un desastre.

Supongo que te refieres a la interfaz del navegador.

La razón es que el único idioma que garantiza que todos los navegadores es compatible es Javascript. Y la razón detrás de esto es que la mayoría de los usuarios del navegador no son programadores ni ingenieros informáticos, y no puede obligarlos a instalar algún complemento sofisticado para admitir su lenguaje específico del lado del navegador.

Por otro lado, puede ejecutar una aplicación web escrita en cualquier idioma siempre que hable HTTP.

Porque para que un lenguaje frontend funcione, el usuario necesita descargarlo en su computadora. Los lenguajes de back-end se usan en servidores y dispositivos de desarrolladores que los han descargado porque los necesitan. Si hubiera más idiomas frontend, las personas tendrían que descargar todos sus intérpretes para poder usar los programas.

También tener menos idiomas frontend es algo positivo porque las personas solo necesitan aprender unos pocos.

More Interesting

¿Cuándo debería un principiante de programación comenzar a aprender el desarrollo de backend y la implementación en la nube?

¿Es efectivo tener un back-end y front-end separados?

¿Por qué la gente elige hacer desarrollo web front end en lugar de desarrollo backend?

Dadas mis circunstancias, ¿en qué dirección debo ir: desarrollo web front-end o desarrollo back-end o desarrollo de aplicaciones?

¿Cuáles son las razones por las que uno elegiría sumergirse en el desarrollo de iOS en lugar del desarrollo web front-end o backend? (Estoy pensando en un cambio de carrera)

¿Cuáles son las mejores soluciones alojadas para el desarrollo front-end en la actualidad? Me gustaría aprender algo como Angular, pero quiero una plataforma alojada que gestione la base de datos y el código de fondo. Sé JavaScript muy bien.

Cómo ganar 200 euros en línea, utilizando web básica y desarrollo de back-end

Soy un desarrollador de Android que pasa a un rol de servidor de fondo. ¿Qué cosas debo aprender primero?

¿Cuál es el mejor marco, CMS o API para aprender como desarrollador de back-end de PHP?

¿Qué es el backend como servicio?

En un automóvil RWD, ¿cómo afectará un diferencial de deslizamiento limitado a la forma en que el extremo trasero gira / desliza a través de una esquina?

¿Existe un gran desarrollador front-end y back-end?

¿Cuál es un buen marco de back-end para manejar llamadas AJAX?

¿Puedo construir un sitio web de red social atractivo y funcional usando solo ASP.NET, C # y SQL para back-end y HTML y CSS para front-end?

Si la programación es el camino para un ingeniero, y no el final, ¿cuál es el final?