¿Cómo elegir un lenguaje de programación en la práctica de proyectos?
De hecho, es probable que adoptes algunos métodos populares y cites parte del lenguaje utilizado en el proyecto anterior. Tal vez seas una persona moderna y sensible a las cosas nuevas y elegirás algunos de los idiomas más recientes y geniales. Hace unos años, muchos jóvenes fantásticos estaban listos para partir. Y ahora me han hecho darme cuenta de lo fantástico que es el nodo que crearon y de lo lejos que han llegado los clojures. También noté la última vez que su lenguaje completo de Turing ya tiene las mismas capacidades de resolución de problemas que el mío. De hecho, insisten en que su lenguaje hace que Turing sea más expresivo, más rápido de escribir y más barato de mantener. La herramienta adecuada, el trabajo adecuado Los antiguos decían: si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas. Si necesita ejecutar automáticamente algunas tareas de mantenimiento realizadas por comandos, puede usar algunos lenguajes que sean buenos para la creación de secuencias de comandos: como bash, perl e incluso Ruby, si el problema que desea resolver. requiere un entorno de sistema operativo Microsoft. Para un cliente de escritorio que se pueda integrar perfectamente, pueden usar C#, no Java (fanáticos del escritorio Java, primero cálmense). Si el problema que está resolviendo requiere procesar una gran cantidad de XML y le gusta lidiar con el rastreo concatenado, entonces, por supuesto, use Java. A menudo, la mayor diferencia se reduce a la complejidad del sistema de reglas. Si está trabajando en una gran complejidad algorítmica del sistema de reglas, use algo que sea bueno para expresarla: un lenguaje funcional como Haskell o F#. O al igual que el 90% de las aplicaciones web, todo lo que hacen es ingresar y generar datos. Necesita un lenguaje con buenas capacidades orientadas a objetos para intentar darle forma a su campo: Java y C# son buenas opciones, y casi todos los demás lenguajes modernos. . Scala Quizás te odies tanto por querer llegar a un acuerdo: ¿por qué elegir sólo uno, funcional o procedimental, cuando puedes elegir dos? ¿Por qué faltan estas características del idioma, cuando las has tenido todas durante los últimos 50 años y ahora estás atrapado con un idioma desordenado? Sí, si esto te suena familiar, podrías pensar que eres un hipster sensible a las cosas nuevas, pero, en realidad, llevas años perdiéndote algo: es hora de conocer algunas Scalas. Sospecho que una gran parte de la razón por la que Scala se ha vuelto tan popular es que finalmente les dio a todos esos frustrados desarrolladores de Java las herramientas de lenguaje que querían. Java es un lenguaje que no responde en estos días y trabajar en él resulta muy frustrante. Algunas personas cambiaron a C# y comencé a disfrutar usando nuevas herramientas de lenguaje llamativas. ¿Mejoran el código? La introducción de muchos lenguajes nuevos ha aumentado la complejidad y la riqueza, pero también hace que el código sea difícil de entender y de mantener en el futuro. La cuestión es que Java es un lenguaje de juguete: cualquier idiota puede escribir Java decente que se ajuste a la especificación. Pero el problema es que, en un lenguaje de juguete como Java, no importa lo buenos que sean los programadores, todos se ven obligados a escribir código detallado. Código Java estúpido. Esto también hace imposible que muchas personas capacitadas demuestren su nivel escribiendo basura que sea difícil de descifrar. También me preocupa que Lambdas tenga tal impacto en la capacidad de mantenimiento de las bases de código Java que todos comiencen a encontrar formas nuevas y confusas de expresar todo. No existe una correlación necesaria entre lenguaje y habilidad: conocí a algunos desarrolladores de Java muy inteligentes y a otros francamente terribles que pensaban que estaban bien informados. Prefiero contratar tantos desarrolladores excelentes como sea posible que estén entusiasmados con el uso de la tecnología que utilizamos, en lugar de limitar las oportunidades en las que puedo reclutar talentos, que francamente ya son muy limitadas en este momento. Otro argumento que he escuchado es que la tecnología que utiliza limita la disposición de un candidato a trabajar para usted; algunos desarrolladores solo quieren trabajar en una plataforma específica, como Clojure. De hecho, están obstaculizando su propio crecimiento. Prefiero tener gente que quiera resolver problemas interesantes de forma proactiva sin tener que pensar en el lenguaje que hipsters moralistas que simplemente resuelven problemas de mierda. Si trabaja en un banco, ¿todos los problemas que encuentra son una tontería? Por supuesto, puedes usar un lenguaje hipster si te ayuda a contratar suficientes idiotas. Mantendría mucho talento lejos de mí.
En segundo lugar, ¿puede obtener asistencia fácilmente cuando tenga problemas? La comunidad de código abierto de Java es excelente: cuando te encuentras con un problema, tienen al menos 15 soluciones diferentes, algunas de las cuales incluso funcionan. Si usa C#, sus opciones serán muy limitadas, pero habrá opciones, algunas no admitidas por Microsoft. Si usas el último lenguaje hipster, ¿adivina qué? Pero para algunos, esto es exactamente lo que les atrae del lenguaje hipster. Pero para aquellos de nosotros que queremos hacer un buen trabajo, es una molestia.