Lo siento de antemano por este largo post.
Tuve un borrador de esta respuesta saliendo por una semana más o menos. Originalmente respondí después de que el cartel de aquí me molestara y me dijera que esencialmente “nunca es mejor aprender JS en ningún año”.
Qué desgracia para la programación tener tal actitud.
Pero ahora que mi disgusto ha terminado, responderé con una breve historia que no es sobre lenguajes de programación. Se trata de la relevancia, y resulta que utiliza un ejemplo de JS. Desde el año 2000.
- ¿Cómo se puede empezar a aprender tecnología web?
- ¿De qué libro debería empezar a aprender visual basic6.0?
- ¿Puedo aprender física avanzada sin ir a la universidad?
- ¿Qué lenguaje de programación debo aprender en estos tiempos y por qué?
- Soy un probador de control de calidad con un poco de experiencia en TI, pero no tengo habilidades de desarrollo. ¿Debo aprenderlo? ¿Es necesario para mí y mi carrera?
Primero- No vivo y respiro JS. Prefiero los lenguajes funcionales porque se adaptan mucho mejor a mi estilo. De hecho, después de haber evitado con éxito PHP toda mi carrera, prácticamente me involucré en el estilo de pandillas por la abrumadora demanda de desarrollo de WP por parte de los clientes. No tuve ningún problema con PHP, pero soy un experto y me pareció desagradable. Mi código resultó ser muy potente pero bastante feo, porque estaba codificando en un estilo funcional utilizando un lenguaje que ni siquiera es muy querido para la POO.
Actualmente estoy trabajando mucho con Native C y Nginx / Lua en estos días gracias al progreso y la capacidad para codificar tantas cosas que antes solo eran posibles con idiomas de nivel superior. Efectivamente, esto significa que estoy usando lenguajes de bajo nivel para realizar algunas de las implementaciones más simples que se consideraron exclusivamente de alto nivel hace una década. Esto significa que nunca tengo que cargar PHP en mi servidor y la velocidad es muy rápida. Esto se adapta mejor a los sitios de HTML estático y las aplicaciones especializadas que no requieren funciones dinámicas.
Si bien esto refleja una gran cantidad de desarrollo comunitario y el proceso orgánico dentro de la industria de TI que eleva lentamente el estándar de manera agregada, aún es real. Ahora, JavaScript también se ha desarrollado, y puede asumir muchos roles más sofisticados, incluido un estilo decididamente más declarativo.
Predigo un cambio en el hardware en 2018 que revolucionará lo que se solicita en la comunidad de codificación. Mientras tanto, echemos un vistazo a JS.
La relevancia de JS se remonta al día en que se adoptó como el idioma oficial del navegador. En 1996–2000, JS fue calumniado de manera similar, y ese comportamiento se repite de manera similar hoy, aquí en Quora. Aquí hay algunos insultos familiares lanzados a JS circa 1999:
“¡Ni siquiera es un lenguaje de programación real!” (Cf. Ruby, que también es un poderoso lenguaje de scripting creado por 1 persona)
“¡Estos niños que usan JS no pueden programarse por sí mismos fuera de una caja!” (Véase el elemento canvas. Al parecer, los niños pueden dibujar la caja en la que se colocan antes de programarse a sí mismos)
“Hah. Esta cosa de punto-com se derrumbará y entonces ¿dónde estarán todos?
(cf. salarios JS. A partir de 2016 se consideran mejores que la mayoría)
Así que en enero de 2000 tuve el cliente más grande de nuestra empresa emergente en mi regazo. Pedí que me probaran por mis habilidades y, por defecto, dibujé la pajita corta.
Descubrí que habíamos pospuesto el desarrollo del proyecto y dejé que la fecha de la promesa del 14 de febrero aumentara de manera tal que solo faltaban 31 días para el lanzamiento. En aquel entonces no era inusual que todo lo que una compañía le decía a un cliente fuera “sí, sí, sí” sin razón, aunque habíamos permitido 3 meses para el proyecto.
En teoría, puede haber sido suficiente tiempo para construir el sitio de comercio electrónico más grande del mundo (15,000 artículos individuales, independientemente de las variaciones simples, como la elección de colores alternativos, etc.), pero ¿quién realmente lo sabía?
Me dio la bienvenida a la tarea. Ya trabajaba 80 horas a la semana. ¿Por qué no 100?
Tuve que interactuar con la tecnología patentada de construcción de sitios ofrecida por nuestra compañía escrita en C y Perl, y tuve que descubrir cómo automatizar la tarea de compilar todos los productos individuales y sus descripciones cortas / largas, los 3 tamaños de jpeg. Las fotos (miniatura, web y web grande), y cómo interactuar con las fuentes de archivos planos desde la escritura de controladores de base de datos únicos no hubieran sido oportunos.
Realicé ingeniería inversa del html generado por nuestro sistema y creé plantillas para cada vista de categoría utilizando un conjunto de datos de muestra. Luego, creé formularios HTML / JS en las páginas del sitio web de nuestra empresa para recibir la información del producto 8 a la vez, mientras que nuestro sistema normalmente solo permite 4. ¿Por qué usar JS en la red en lugar de crear páginas en localhost? Recuerda, yo estaba falsificando resultados válidos.
Ajusté los nombres de los archivos de origen para cumplir con la entrada de datos numéricos ya que quería minimizar la escritura en los formularios; y escribí preprocesadores para los datos para extraer elementos tales como el título del producto de las descripciones, y para extraer meta palabras clave relevantes, y para suplantar la nomenclatura de archivos y las extensiones de archivo necesarias para las vistas de imágenes en Clic , etc. Luego inyecté estos resultados en las plantillas en Enviar .
El código resultante coincidía exactamente con la salida normal del software original de creación de sitios. Las únicas cosas que aún se necesitaban eran los permisos de archivo para los archivos pirateados y abrir cada archivo en modo de edición desde nuestro sistema back-end para activarlos antes de entregarlos al cliente.
Tomé un asistente administrativo y, después de completar con éxito las pruebas de mi sistema de plantillas para garantizar que el proceso funcionara en su totalidad, pasamos 4 días después de las horas haciendo el trabajo más frenético y tedioso que se pueda imaginar. 15,000 productos ingresaron 8 a la vez como referencias numéricas de archivos en formularios de espera en 2 máquinas diferentes, presione Entrar para representar la plantilla, copie / pegue la plantilla en un archivo de texto y guárdela en el servidor. Literalmente no tuve tiempo suficiente para completar el código para automatizar el guardado de los archivos, así que lo hicimos a mano.
El resultado fue que el 2/11/2000, nuestra compañía completó exitosamente el proyecto a tiempo (¡evitando una reducción del 25% en las tarifas prometidas en caso de que llegáramos tarde!), Y el 2/14/2000 la oferta de productos individuales más grande del mundo en un solo sitio de comercio electrónico se puso en marcha.
Gracias a Javascript y al código que escribí, se requirió que 2 empleados tuvieran un total de 40 horas (2 x 20 horas) de ingreso de datos para hacer esto posible, y se necesitaron 28 días desde el inicio hasta el final para que esto sucediera.
No puedo imaginar que este sea el trabajo más importante que se haya completado en el mundo, incluso si se tratara de la ballena de nuestra compañía, sin embargo, demuestra adecuadamente el impacto económico de JS.
Eso fue hace 16 años, y después de desarrollar al menos 2 órdenes de magnitud, se puede decir que JS es EL lenguaje más relevante para saber en 2016. Ha logrado este estado porque Internet es LA tecnología más relevante de nuestro tiempo, al menos desde la década de 1980, y JS es el enlace del navegador.
Por supuesto, creo que todo depende de cómo uses un idioma. Si no eres experto tal vez quieras un idioma que haga tu trabajo por ti. C es increíble, pero no es la mejor opción para un principiante, y no es tan relevante para el futuro de la industria como JS, incluso si lo llamo el lenguaje más importante de todos los tiempos.
El futuro lenguaje moderado es funcional. Siempre será funcional, porque las necesidades de maduración de cualquier sistema se deslizan constantemente hacia los modismos de FP, tal vez a diferentes velocidades, pero seguramente sucederá.
El idioma de hoy, incluso si proviene de alguien que ama otros idiomas, es Native JS.