utilizado utiliza usos uso usados todos tipos son sirve quien que puede programas programar programacion por para mejor mas los lenguajes lenguaje hechos evolucion ejemplos donde cuales creadas con como caracteristicas aprender aplicaciones c# java python ruby perl

c# - utiliza - todos los lenguajes de programacion



¿Por qué aprender Perl, Python, Ruby si la compañía usa C++, C#o Java como lenguaje de aplicación? (30)

Me pregunto por qué un desarrollador de C ++, C #, Java, quiere aprender un lenguaje dinámico.

Suponiendo que la compañía no cambiará su lenguaje de desarrollo principal de C ++ / C # / Java a uno dinámico, ¿qué uso hay para un lenguaje dinámico?

¿Qué tareas auxiliares pueden realizar los lenguajes dinámicos más rápido o mejor después de unos pocos días de aprendizaje que con el lenguaje estático que ha estado utilizando durante varios años?

Actualizar

Después de ver las primeras respuestas, está claro que hay dos problemas. Mi principal interés sería algo que se justifica para el empleador como un gasto. Es decir, estoy buscando justificaciones para que el empleador financie el aprendizaje de un lenguaje dinámico. Aparte de lo obvio de que el empleado tendrá una visión más amplia, los empleadores generalmente buscan algún beneficio "real".


¿Esperas trabajar para esta compañía para siempre? Si alguna vez está en el mercado laboral, quizás algunos posibles empleadores conozcan la paradoja de Python .


A menudo he descubierto que aprender otro idioma, especialmente un lenguaje de tipado dinámico, puede enseñarte cosas sobre otros idiomas y convertirte en un mejor programador general. El aprendizaje de ruby, por ejemplo, le enseñará programación orientada a objetos en formas que Java no usará, y viceversa. En general, creo que es mejor ser un programador completo que estar atrapado en un solo idioma. Te hace más valioso para las empresas / clientes para los que trabajas.


A menudo, los lenguajes dinámicos (especialmente python y lua) están integrados en los programas para agregar una funcionalidad más similar a un plugin y porque son lenguajes de alto nivel que facilitan la adición de cierto comportamiento, donde no se necesita un lenguaje de nivel bajo / medio .

Lua carece específicamente de todas las llamadas al sistema de bajo nivel porque fue diseñado para facilitar el uso para agregar funcionalidad dentro del programa, no como un lenguaje de programación general.


Aprender algo con un sistema OOP flexible, como Lisp o Perl (ver Moose), le permitirá expandir y comprender mejor sus ideas sobre ingeniería de software. Idealmente, cada idioma tiene alguna faceta única (ya sea CLOS o alguna otra técnica) que mejore, amplíe y aumente tus habilidades como programador.


Aprender un nuevo idioma es un proceso a largo plazo. En un par de días aprenderás los conceptos básicos, sí. ¡Pero! Como probablemente sepa, la aplicabilidad práctica real de cualquier idioma está ligada a la biblioteca estándar y a otros componentes disponibles. Aprender cómo usar de manera eficiente requiere mucha experiencia práctica.

Quizás el único beneficio inmediato a corto plazo es que los desarrolladores aprenden a distinguir las uñas que necesitan un martillo Python / Perl / Ruby. Y, si son buenos, pueden estudiar un poco más (¡en línea, quizás!) Y convertirse en verdaderos expertos.

Los beneficios a largo plazo son más fáciles de imaginar:

  1. El empleado se convierte en un mejor desarrollador. Mejor desarrollador => mejor calidad. Estamos viviendo en una economía del conocimiento en estos días. Es más inteligente invertir en esos cerebros que ya funcionan para ti.

  2. Es más fácil adaptarse cuando surge el siguiente gran lenguaje. Es muy probable que el NBL tenga muchas de las características presentes en los lenguajes de scripting actuales: funciones de primera clase, cierres, transmisiones / generadores, etc.

  3. Nuevas posibilidades de mercado y capacidad para responder más rápidamente. Incluso si no estás escribiendo Python, otras personas sí lo están . Tus clientes? ¿Otro proveedor en el proyecto? ¿Quizás un componente crítico fue escrito en algún otro idioma? Le costará dinero y tiempo, si no tiene personas que puedan entender el código e interactuar con él.

  4. Reclutamiento. Si su empresa tiene la reputación de enseñar cosas nuevas e interesantes a las personas, será más fácil contratar a las personas más importantes. Todo el mundo está haciendo Java / C # / C ++. No es una forma muy efectiva de diferenciarse en el mercado laboral.


Creo que los principales beneficios de los lenguajes dinámicos pueden reducirse a

  1. Desarrollo rápido
  2. pegamento

El breve tiempo del ciclo de prueba del código de diseño hace que los lenguajes dinámicos sean ideales para prototipos, herramientas y scripts únicos rápidos y sucios. En mi humilde opinión, los dos últimos pueden tener un gran impacto en la productividad de un programador. Me sorprende la cantidad de gente que camina a través de las cosas de forma manual en lugar de utilizar una herramienta para hacerlo por ellos. Creo que es porque no tienen algo como Perl en su caja de herramientas.

La capacidad de interactuar con casi cualquier cosa (otros programas o idiomas, bases de datos, etc.) hace que sea fácil reutilizar el trabajo existente y automatizar las tareas que de otro modo tendrían que hacerse manualmente.


Cuando recién aprendí Python, trabajé para una tienda de Java. Ocasionalmente tenía que hacer tareas serias de procesamiento de texto que eran mucho más fáciles de hacer con los scripts de Python rápidos que con los programas de Java. Por ejemplo, si tuviera que analizar un archivo CSV complejo y descubrir cuál de sus filas correspondía a filas en nuestra base de datos Oracle, esto era mucho más fácil de hacer con Python que con Java.

Más que eso, descubrí que aprender Python me hizo un programador de Java mucho mejor; Después de haber aprendido muchos de los mismos conceptos en otro idioma, siento que entiendo esos conceptos mucho mejor. Y en cuanto a lo que hace que Python sea más fácil que Java, puede ver esta pregunta: ¿ Java -> Python?


Dado el enfoque cada vez mayor para ejecutar lenguajes dinámicos (da-vinci vm etc.) en la JVM y el creciente número de lenguajes dinámicos que se ejecutan en ella (JRuby, Grrovy, Jython), creo que los usos están aumentando. Algunos de los escenarios que encontré realmente benéficos son

  1. Creación de prototipos : utilice RoR o Grails para crear prototipos rápidos con la ventaja de poder ejecutarlos en el servidor de aplicaciones estándar y (quizás) reutilizar los servicios existentes, etc.

  2. Pruebas : la unidad correcta prueba mucho más rápido en idiomas dinámicos

  3. Scripts de prueba de rendimiento / automatización : algunas de estas herramientas están comenzando a permitir el uso del lenguaje dinámico estándar elegido para escribir los scripts de prueba en lugar de los lenguajes de scripts propietarios. El beneficio adicional podría ser para poder reutilizar algún código de prueba unitaria que ya haya escrito.


Dejando a un lado las cuestiones filosóficas, sé que he obtenido valor de escribir scripts de Ruby rápidos y sucios para resolver problemas de fuerza bruta para los que Java era demasiado grande. El año pasado tuve tres estructuras de directorios separadas que eran más o menos iguales, pero con muchas diferencias entre los archivos (el cliente no había oído hablar del control de la versión y dejaré el resto a su imaginación).

Hubiera necesitado una gran cantidad de sobrecarga para escribir un analizador en Java, pero en Ruby tuve uno trabajando en unos 40 minutos.


El "beneficio real" que un empleador podría ver es un mejor programador que puede implementar soluciones más rápidamente; sin embargo, no podrá proporcionar ningún número difícil para justificar el gasto y lo más probable es que un empleador lo obligue a trabajar en lo que hace dinero ahora, en lugar de hacer que trabaje en cosas que mejoren el futuro.

El único momento en que puede obtener capacitación sobre el centavo del empleador, es cuando perciben la necesidad y es más económico que contratar a una nueva persona que ya tenga ese conjunto de habilidades.


He descubierto que cuanto más juego con Ruby, mejor entiendo C #.

1) Al cambiar entre estos idiomas, cada uno de ellos tiene sus propias construcciones y filosofías detrás de los problemas que intentan resolver. Esto lo ayudará a encontrar la herramienta adecuada para el trabajo o el dominio de un problema .

2) El papel del compilador (o intérprete para algunos idiomas) se vuelve más prominente. ¿Por qué el sistema de tipos de Ruby difiere del sistema .Net / C #? ¿Qué problemas resuelve cada uno de estos? Te encontrarás entendiendo en un nivel inferior los constructos del compilador y su influencia en el lenguaje

3) Cambiar entre Ruby y C # realmente me ayudó a entender mejor los patrones de diseño . Realmente sugiero implementar patrones de diseño comunes en un lenguaje como C # y luego en un lenguaje como Ruby. A menudo me ayudó a ver a través de la ceremonia del compilador la filosofía de un patrón particular.

4) Una comunidad diferente. C #, Java, Ruby, Python, etc. todos tienen diferentes comunidades que pueden ayudar a comprometer tus habilidades. Es una excelente manera de llevar tu nave al siguiente nivel.

5) Por último, pero no menos importante, porque los nuevos lenguajes son divertidos :)


Los lenguajes dinámicos son fantásticos para generar prototipos de ideas. A menudo, por motivos de rendimiento, no funcionarán para soluciones o productos permanentes. Pero , con idiomas como Python, que le permiten incrustar C / C ++ / Java estándar dentro de ellos o viceversa, puede acelerar los bits realmente críticos pero dejarlos pegados con la flexibilidad de un lenguaje dinámico.

... y así obtienes lo mejor de ambos mundos. Si necesita justificar esto en términos de por qué más personas deberían aprender estos idiomas, simplemente señale mucho más rápido que puede desarrollar el mismo software y qué tan sólida es la solución (debido a que los problemas de depuración / reparación en lenguajes dinámicos están en mi experiencia, considerablemente más fácil!).


Muchas veces aparece una tarea rápida que no forma parte del software principal que está desarrollando. Algunas veces la tarea es única, es decir, compare este archivo con la base de datos y avíseme las diferencias. Es mucho más fácil hacer el análisis de texto en Perl / Ruby / Python que en Java o C # (en parte porque es mucho más fácil usar expresiones regulares). Probablemente tome mucho menos tiempo analizar el archivo de texto usando Perl / Ruby / Python (o tal vez incluso vbscript cringe y luego cargarlo en la base de datos de lo que crearía un programa Java / C # para hacerlo o hacerlo por mano.

Además, debido a la facilidad con la que la mayoría de los lenguajes dinámicos analizan el texto, son geniales para la generación de código. Seguro que su proyecto final debe estar en C # / Java / Transact SQL, pero en lugar de cortar y pegar 100 veces, encontrar errores y cortar y pegar otras 100 veces, a menudo (aunque no siempre) es más fácil usar un generador de código.

Un ejemplo reciente en el trabajo es que necesitamos obtener datos de un sistema de contabilidad en nuestro sistema de contabilidad. El sistema tiene un formato de importación, pero el sistema anterior tenía un formato completamente diferente (ancho fijo aunque algunas cosas tenían que coincidir). La tarea no es crear un programa para migrar los datos una y otra vez. Es meter los datos en nuestro sistema y luego mantenerlos allí en el futuro. Entonces, aunque somos una tienda de C # y SQL Server, utilicé Python para convertir los datos en el formato que podría importar nuestra aplicación. En última instancia, no importa que use python, es importante que los datos estén en el sistema. Mi jefe estaba bastante impresionado.

Donde a menudo veo los lenguajes dinámicos utilizados para probar es. Es mucho más fácil crear un programa de Python / Perl / Ruby para vincularlo a un servicio web y arrojar algunos datos contra él de lo que es crear el programa Java equivalente. También puede usar python para golpear contra programas de línea de comando, generar una tonelada de datos de prueba basura (pero aún válidos), etc. con bastante facilidad.

La otra cosa en la que los lenguajes dinámicos son importantes es la generación de código. Creando el código C # / C ++ / Java. Algunos ejemplos siguen:

La primera tarea de generación de código que veo a menudo es que las personas usan lenguajes dinámicos para mantener constantes en el sistema. En lugar de codificar manualmente un montón de enumeraciones, se puede usar un lenguaje dinámico para analizar con bastante facilidad un archivo de texto y crear el código Java / C # con las enumeraciones.

SQL es otro juego de pelota, pero a menudo obtienes mejor rendimiento cortando y pegando 100 veces en lugar de intentar hacer una función (debido al almacenamiento en caché de planes de ejecución o al poner una lógica complicada en una función que te hace ir fila por fila en lugar de un conjunto). De hecho, es bastante útil usar la definición de tabla para crear ciertos procedimientos almacenados automáticamente.

Siempre es mejor comprar un generador de código. Pero incluso si no lo hace, ¿es más divertido perder tiempo cortando / pegando o es más divertido crear una secuencia de comandos de Perl / Python / Ruby una vez y luego generar el código? Si te toma horas codificar manualmente algo, pero menos tiempo para crear un generador de código, incluso si lo usas una vez que hayas ahorrado tiempo y, por lo tanto, dinero. Si le toma más tiempo crear un generador de código de lo que se necesita para entregar el código una vez, pero sabe que tendrá que actualizar el código más de una vez, aún puede tener sentido. Si le toma 2 horas entregar el código, 4 horas para hacer el generador, pero sabe que tendrá que codificar manualmente el trabajo equivalente otras 5 o 6 veces más de lo que obviamente es mejor crear el generador.

También algunas cosas son más fáciles con los lenguajes dinámicos que Java / C # / C / C ++. En particular, vienen a la mente expresiones regulares. Si comienza a usar expresiones regulares en Perl y se da cuenta de su valor, de repente puede comenzar a utilizar la biblioteca de expresiones regulares de Java si no lo hizo antes. Si tiene, entonces puede haber algo más.

Los dejo con un último ejemplo de una tarea que hubiera sido genial para un lenguaje dinámico. Mi compañero de trabajo tuvo que tomar un directorio lleno de archivos y grabarlos en varios CD para varios clientes. Había pocos clientes pero muchos archivos y había que buscarlos para ver qué eran. Hizo esta tarea a mano ... Un programa Java / C # habría ahorrado tiempo, pero por una vez y con todos los gastos generales de desarrollo no vale la pena. Sin embargo, golpear algo juntos en Perl / Python / Ruby probablemente habría valido la pena. Pasó varias horas haciéndolo. Habría tomado menos de uno para crear la secuencia de comandos de Python para inspeccionar cada archivo, comparar a qué cliente se dirige y luego mover el archivo al lugar adecuado ... De nuevo, no forma parte del trabajo estándar. Pero la tarea surgió como una sola. ¿Es mejor hacerlo tú mismo, pasar la mayor cantidad de tiempo para hacer que Java / C # haga la tarea, o pasar mucho menos tiempo haciéndolo en Python / Perl / Ruby? Si está utilizando C o C ++, el punto es aún más dramático debido a las preocupaciones adicionales de programación en C o C ++ (punteros, sin verificación de límites de matriz, etc.).


No creo que nadie haya mencionado esto todavía. ¡Aprender un nuevo idioma puede ser divertido! Sin duda, esa es una buena razón para probar algo nuevo.


No estoy seguro de si esto es lo que está buscando, pero escribimos nuestra aplicación principal con Java en la pequeña empresa para la que trabajo, pero he usado python para escribir guiones más pequeños rápidamente. Software de respaldo, scripts temporales para manipular datos y extraer resultados. A veces parece más fácil sentarse con Python y escribir un guión rápido que jugar con clases y cosas en Java.

Los scripts temporales que no se van a quedar, no necesitan mucho tiempo de diseño desperdiciado.

Y soy flojo, pero es bueno aprender todo lo que puedas por supuesto y ver qué características existen en otros idiomas. Saber más nunca te lastima en futuros cambios de carrera :)


No le diga a su empleador que quiere aprender Ruby. Dile que quieres aprender sobre el estado del arte en tecnologías de framework web. sucede que los mejores son Django y Ruby on Rails.


Para responder a la pregunta actualizada, es un problema de huevo / pollo. La mejor manera de justificar un gasto es mostrar cómo reduce un costo en otro lugar, por lo que es posible que deba gastar algún tiempo extra / personal para aprender algo primero para construir algún tipo de prototipo funcional.

Muestre a su jefe una demostración como "hey, hice esta cosa, y me ahorra tanto tiempo [o mejor aún, tanto $$], imagina si todos pudieran usar esto cuánto dinero ahorraríamos"

y luego, después de que acepten, explican cómo es otra tecnología y que vale la pena el gasto para obtener más capacitación y capacitación para otros sobre cómo hacerlo mejor.


Paul Graham publicó un artículo hace varios años acerca de por qué los programadores de Python hicieron mejores programadores de Java. ( http://www.paulgraham.com/pypar.html )

Básicamente, independientemente de si el nuevo idioma es relevante para la metodología actual de la compañía, aprender un nuevo idioma significa aprender nuevas ideas. Una persona que está dispuesta a aprender un idioma que no se considera de "clase ejecutiva" significa que está interesado en la programación, más allá de solo ganar un sueldo.

Para citar el sitio de Paul:

Y las personas no aprenden Python porque les conseguirá un trabajo; lo aprenden porque genuinamente les gusta programar y no están satisfechos con los idiomas que ya conocen.

Lo que los hace exactamente del tipo de programadores que las empresas deberían querer contratar. De ahí que, a falta de un mejor nombre, llamaré a la paradoja de Python: si una empresa elige escribir su software en un lenguaje comparativamente esotérico, podrán contratar mejores programadores, porque atraerán solo a aquellos que se preocupó lo suficiente como para aprenderlo. Y para los programadores, la paradoja es aún más pronunciada: el idioma para aprender, si quieres obtener un buen trabajo, es un idioma que las personas no aprenden simplemente para conseguir un trabajo.

Si un empleador estaba dispuesto a pagar por el costo de aprender un nuevo idioma, es probable que las personas que se ofrecieron voluntariamente para aprender (asumiendo que no era una clase obligatoria) fueran las mismas personas que ya están en la "vía rápida".


Permítanme convertir su pregunta en su cabeza preguntando de qué le sirve a un hablante de inglés americano aprender otro idioma.

Los idiomas que hablamos (y aquellos en los que programamos) informan la forma en que pensamos. Esto puede suceder en un nivel fundamental, como c ++ frente a javascript versus lisp, o en un nivel de implementación, en el que una construcción de ruby ​​proporciona un momento eureka para una solución en su "trabajo real".

Hablando de su trabajo real, si el mercado va hacia el sur y su empleador decide "darle la talla", ¿cómo crees que te enfrentarás a un tipo que es flexible porque ha escrito software en decenas de idiomas, en lugar de tu limitado ¿exposición? En igualdad de condiciones, creo que la respuesta es clara.

Finalmente, programa para ganarse la vida porque te encanta programar ... ¿verdad?


Personalmente, trabajo en una aplicación de Java, pero no podría funcionar sin perl para algunas secuencias de comandos de apoyo.

Tengo guiones para voltear rápidamente a qué DB estoy apuntando, guiones para ejecutar guiones de construcción, guiones para raspar datos y comparar cosas.

Claro que podría hacer todo eso con java, o quizás scripts de shell (también tengo algunos), pero ¿quién quiere compilar una clase (asegurándose de que el classpath esté configurado correctamente, etc.) cuando solo necesita algo rápido y sucio? Conocer un lenguaje de scripting puede eliminar el 90% de esas tareas manuales aburridas / repetitivas.


Principalmente programo en Java y C #, pero uso lenguajes dinámicos (ruby / perl) para admitir una implementación más fluida, iniciar tareas de sistema operativo, informes automatizados, algunos análisis de registro, etc.

Después de un corto tiempo de aprendizaje y experimentación con ruby ​​o Perl, debería ser capaz de escribir algunos scripts de manipulación de expresiones regulares que pueden alterar los formatos de datos o tomar información de los registros. Un ejemplo de un pequeño script de ruby ​​/ perl que podría escribirse rápidamente sería un script para analizar un archivo de registro muy grande y reportar solo algunos eventos de interés en un formato legible para humanos o en formato csv.

Además, tener experiencia con una variedad de lenguajes de programación diferentes te ayudará a pensar en nuevas formas de abordar problemas en lenguajes más estructurados como Java, C ++ y C #.


Sabiendo grep y ruby, fue posible reducir un problema y verificar la solución para un problema que involucraba toneladas de excepciones java en algunos servidores de producción. Debido a que arrojé la solución en rubí, se hizo (diseñada, implementada, probada, ejecutada, corregida, corregida, mejorada, analizados los resultados) en una tarde en lugar de en un par de días. Pude haber resuelto el mismo problema usando una solución totalmente Java o una solución C #, pero probablemente me hubiera demorado más.

Tener experiencia dinámica en el idioma también a veces lo lleva a soluciones más simples en idiomas menos dinámicos. En ruby, perl o python, simplemente busca intuitivamente arrays asociativos (hashes, diccionarios, cualquier palabra que quiera usar) para las cosas más pequeñas, donde podría estar tentado de crear una jerarquía de clases complejas en un lenguaje estáticamente tipado cuando el problema no necesariamente lo demanda.

Además, puedes conectar la mayoría de los lenguajes de scripting a la mayoría de los tiempos de ejecución. Por lo tanto, no tiene que ser ninguno de los dos.


Se trata de ampliar sus horizontes como desarrollador. Si se limita solo a los idiomas fuertes, puede que no termine con el mejor programador que pueda.

En cuanto a las tareas, Python / Lua / Ruby / Perl son ideales para pequeñas tareas simples, como encontrar algunos archivos y renombrarlos. También funcionan muy bien cuando se combinan con un marco (por ejemplo, Rails, Django, Lua para Windows) para desarrollar aplicaciones simples rápidamente. Demonios, 37Signals se basa en crear aplicaciones simples pero muy útiles en Ruby on Rails.


Si todo lo que tienes es un martillo, cada problema comienza a parecer un clavo.

Hay momentos en que tener un destornillador o un par de alicates hace que un problema complicado sea trivial.

Nadie pregunta a contratistas, carpinteros, etc., "¿Por qué aprender a usar un destornillador si ya tengo un martillo?". Los contratistas / carpinteros realmente buenos tienen toneladas de herramientas y saben cómo usarlas bien. Todos los programadores deberían hacer lo mismo, aprender a usar nuevas herramientas y usarlas bien.

Pero antes de usar cualquier herramienta eléctrica, tomemos un momento para hablar sobre la seguridad de la tienda. Asegúrese de leer, comprender y seguir todas las reglas de seguridad que vienen con sus herramientas eléctricas. Si lo hace, reducirá en gran medida el riesgo de lesiones personales. Y recuerde esto: no hay una regla más importante que usar estas: gafas de seguridad - Norma


Son útiles para el "Hack rápido", que es para tapar un espacio en su idioma principal para una solución rápida (y potencialmente sucia) más rápida de lo que tardaría en desarrollarla en su idioma principal. Un ejemplo: un script simple en perl para pasar por un archivo de texto grande y reemplazar todas las instancias de una dirección de correo electrónico por otro es trivial con una cantidad de tiempo en el rango de 10 minutos. Hackear una aplicación de consola para hacer lo mismo en su idioma principal tomaría múltiples de eso.

También tiene la ventaja de que exponerse a idiomas adicionales amplía sus habilidades y aprender a atacar los problemas desde una perspectiva de idiomas diferentes puede ser tan valiosa como el idioma en sí.

Finalmente, los lenguajes de scripting son muy útiles en el ámbito de la extensión. Tome LUA como ejemplo. Puede instalar un intérprete lua en su aplicación con muy poca sobrecarga y ahora tiene una manera de crear una funcionalidad de scripting enriquecida que puede exponerse a los usuarios finales o alterarse y distribuirse rápidamente sin necesidad de reconstruir toda la aplicación. Esto se usa con gran efecto en muchos juegos, especialmente en World of Warcraft.


También debería considerar aprender un lenguaje de programación funcional como Scala. Tiene muchas de las ventajas de Ruby, incluida una sintaxis concisa y funciones potentes como cierres. Pero se compila con los archivos de clase de Java e se integra perfectamente en una pila de Java, lo que puede hacer que sea mucho más fácil para su empleador tragar.

Scala no está tipeado dinámicamente, pero su característica de "conversión implícita" brinda muchos, tal vez incluso todos los beneficios del tipado dinámico, a la vez que retiene muchas de las ventajas del tipado estático.


Una gran razón para aprender Perl o Ruby es ayudarlo a automatizar cualquier tarea complicada que tenga que hacer una y otra vez.

O si tiene que analizar el contenido de los archivos de registro y necesita más mungeing de los disponibles usando grep, sed, etc.

También el uso de otros lenguajes, por ejemplo, Ruby, que no tienen mucho "costo de instalación" le permitirá prototipar ideas rápidamente antes de implementarlas en C ++, Java, etc.

HTH

aclamaciones,

Robar



Un buen jugador de hockey juega donde está el disco. Un gran jugador de hockey juega donde va a estar el disco. - Wayne Gretzky

Nuestra industria siempre está cambiando. Ningún idioma puede ser mainstream para siempre. Para mí, Java, C ++, .Net es donde está el disco en este momento. Y python, ruby, perl es donde va a estar el disco. ¡Decide por ti mismo si quieres ser bueno o genial!


Editar: escribí esto antes de leer la actualización de la pregunta original. Vea mi otra respuesta para una mejor respuesta a la pregunta actualizada. Voy a dejar esto como si fuera una advertencia contra ser el arma más rápida en el oeste =)

Hace más de una década, cuando estaba aprendiendo las formas de la computadora, los viejos sabios con barbas explicaron cómo C y C ++ son las herramientas de la industria. Nadie usó Pascal y solo los temerarios arriesgarían sus compañías con el ensamblador.

Y, por supuesto, nadie mencionaría siquiera la horrible y lenta cosa llamada Java . No será una herramienta para negocios serios.

Asi que. Um. Reemplace los idiomas en la historia anterior y quizás pueda predecir el futuro. Quizás no puedas. El punto es que Java no será el último lenguaje de programación y también es probable que cambie de empleador. El futuro te está cobrando las 24 horas del día. Estar preparado.

Aprender nuevos idiomas es bueno para ti. Además, en algunos casos puede otorgarte derechos de fanfarronear durante mucho tiempo. Mi primer curso universitario fue en Scheme. Entonces, cuando la gente me habla sobre el nuevo idioma du jour , mi respuesta es algo así como "¿Funciones de primera clase? Eso es el siglo pasado".

Y, por supuesto, obtienes más cosas con un lenguaje de alto nivel.