En su opinión, ¿cuál es el mejor lenguaje de programación y por qué?

No existe el mejor lenguaje de programación.

Diferentes idiomas son buenos en diferentes contextos. Los idiomas que no son claramente mejores que todos los demás idiomas en al menos un área importante desaparecen; es por eso que hay literalmente miles de idiomas, pero la cantidad de idiomas que realmente usa la mayoría de las personas se calcula en las decenas.

Para darle una idea de las fortalezas de algunos de los lenguajes más populares, voy a cortar y pegar de mi respuesta a “¿Qué lenguaje de programación debe aprender para el desarrollo de software?”

Java: si será un proyecto a gran escala, y no se ocupa de problemas del sistema de bajo nivel (es decir, está en gran medida en middleware / aplicaciones), y la escalabilidad / rendimiento es una preocupación importante. (Sugerencia: en la mayoría de los casos, las personas sobrestiman la importancia de la escalabilidad / rendimiento. La mayoría de los proyectos probablemente mueren sin alcanzar un nivel de uso que requiera tanta escalabilidad / rendimiento. Además, la mayoría del software está sujeto a IO, no a CPU, así que de nuevo, la elección del idioma no ayudará con la velocidad / escalabilidad). O si estás haciendo una aplicación de Android.

Scala / Clojure: si desea interoperar con Java, viva en la JVM, es probable que tenga implementaciones empresariales, pero quiere un lenguaje que ofrezca abstracciones de mayor nivel (léase: más productividad) de lo que Java proporciona, y está dispuesto a ser un poco a la vanguardia, y estás dispuesto a comprometerte a trabajar siempre con solo un buen programador, sin importar lo difícil que sea contratarlos.

C ++: si será un proyecto a gran escala, con muchos contribuyentes, y la compatibilidad con C es importante

C: Si vas a lidiar con núcleos, controladores de dispositivos, almacenamiento o cualquier cosa baja en el sistema

Ruby: si desea crear un sitio web con requisitos mal especificados, de modo que necesita ser ágil y lidiar con los requisitos cambiantes, la experimentación rápida y furiosa con nuevas características, y no espera necesitar una gran cantidad de aplicaciones no web cosas (como análisis de datos, o computación científica, o piratería de sistemas)

Python: si no tiene idea de los requisitos, o es probable que los requisitos cambien drásticamente en el futuro, o si los requisitos abarcan varios de los campos anteriores. Es un lenguaje que es bastante bueno en todo lo anterior. Es el mejor lenguaje de propósito general en este momento.

Erlang: si el tiempo de actividad, la resistencia, la tolerancia a fallas, la capacidad de actualizar el código de producción sin ningún tiempo de inactividad, etc. son muy importantes.

JavaScript + HTML + CSS: para cualquier front-end moderno basado en web

Objetivo C: si estás haciendo una aplicación para iPhone.

PHP: no.

Lisp / Haskell: si realmente quieres mejorar tu programación, expande tu mente (en lo que respecta a las habilidades de programación), y si eres el único programador en el proyecto (o tendrá muy pocas personas muy brillantes trabajando en ello) eso).

Perl. Para citar la introducción a Modern Perl (con énfasis agregado):

Perl hace las cosas: es flexible, indulgente y maleable. Los programadores capacitados lo usan todos los días para todo, desde una sola línea y automatizaciones únicas hasta proyectos de varios años y múltiples programadores.

Perl es pragmático. Estás a cargo. Tú decides cómo resolver tus problemas y Perl se moldeará para hacer lo que quieres decir , con poca frustración y sin ceremonia.

La mayoría de los lenguajes de computadora restringen su sintaxis para hacerlos más fáciles de analizar. Perl es bastante único en el sentido de que le ofrece una sintaxis flexible, incluso cuando dificulta que el compilador analice su código.

Algunos argumentarían (con cierto grado de mérito) que Perl es demasiado flexible, que su falta de reglas hace que las personas escriban código ilegible. Pero esa crítica se aborda fácilmente mediante estándares de codificación y el uso de herramientas de análisis de código como Perlcritic. En lugar de imponerle ciegamente la noción de “estilo apropiado” de otra persona, Perl confía en que sea autodisciplinado y le brinda las herramientas para ayudar a desarrollar esa autodisciplina si lo desea (o su jefe lo hace).

Perl te permite hacer cosas que otros idiomas no harán. Esto puede ser complicado, pero también es increíblemente poderoso si lo usa con cuidado.

Considere este sencillo programa:
while (<>) { print }
Esa es una re-implementación completa del comando unix ‘cat’. Leerá de STDIN. Leerá de cualquier lista de nombres de archivos que le dé, abriéndolos y cerrándolos automáticamente, y manejando automáticamente cualquier error. Escribir un filtro estándar de Unix (como cat) requiere un conjunto de comportamientos sorprendentemente complejos y matizados. En cualquier otro idioma, esto requiere una cantidad no trivial de código repetitivo. Debido a que es una tarea tan común, Perl lo hace trivial para implementar.

Como otro ejemplo, supongamos que desea hacer una lista de nombres “nombre01” a “nombre99”. En perl:
@list = "name01" .. "name99";
Eso solo funciona mágicamente en Perl. Intenta eso en cualquier otro idioma.

EDITAR: Promocionado a partir de los comentarios:
Recursos para aprender Perl

  • Edición moderna Perl 2014 por chromatic
  • Aprenda Perl – learn.perl.org
  • Aprendiendo Perl, también conocido como el Libro de la Llama (un poco anticuado en términos de estilo de codificación, pero sigue siendo valioso. En particular, habla sobre el sistema de objetos de estilo antiguo, no Moose, el moderno sistema de objetos declarativos de Perl)

Después de haber entendido lo básico:

  • Perl de orden superior por Mark Jason Dominus
  • Mejores prácticas de Perl

Para cualquier idioma que use Expresiones regulares (independientemente de si son la variedad de salsa débil POSIX o el mojo compatible con Perl no modificado):

  • Dominar expresiones regulares

Gracias por la solicitud de respuesta (R2A) sobre esto. Las respuestas ya dadas cubren el territorio bastante bien. Estoy agregando mis $ .02 porque me lo pidieron, y porque esta es una de las preguntas religiosas de programación que siempre es fascinante (para aquellos de nosotros que somos susceptibles: codificadores y protocodificadores de todos los niveles y grados de habilidad); y eso nunca se puede resolver.

Si uno elige “mejor” para significar el más productivo, y el más productivo para manejar una gran cantidad de cómputo y una salida correcta y apropiada utilizando la menor cantidad de código de entrada, entonces todos los CPL (lenguajes de programación de computadora) de propósito general son bastante, bastante similares – estudio tras estudio ha demostrado que el factor determinante más importante en la productividad es el talento, la experiencia y el conocimiento del codificador, y no las diferencias de productividad inherentes en las herramientas de programación utilizadas (incluido el lenguaje empleado).

El propósito especial, los “4GL” (lenguajes de cuarta generación), están específicamente diseñados para tener un conocimiento incorporado (muchos supuestos estructurales válidos) sobre el contexto de superficie de ataque de problemas de programación particulares, y esto puede tener un efecto real. Probablemente, el ejemplo 4GL más conocido y utilizado es SQL, que está “conectado” a los tipos de metadatos de la tabla de la base de datos relacional y las estructuras internas, de modo que una pequeña instrucción “Seleccionar”, una oración de 4 a 25 líneas, produce resultados eso requeriría cientos o miles de líneas de código CPL de uso general para reproducirse. SQL es un lenguaje extremadamente enfocado y de un solo propósito, pero es tan productivo en su contexto que la mayoría de los CPL de propósito general como Java, FORTRAN y C ++ tienen bibliotecas especiales que permiten que SQL se use para informes y manipulación de DB desde el contexto del host. lenguaje (es decir, desde Java, C ++, etc.).

Los 4GL más generales (más generales que SQL) tienen un problema endémico porque las suposiciones que hacen y la flexibilidad que permiten para una pequeña cantidad de código escrito por el programador tiene el efecto de “hinchar” la imagen en tiempo de ejecución que el 4GL produce Los 4GL tienen un conocimiento incorporado, pero para los problemas generales de programación hay “demasiado” conocimiento y se incluye comúnmente “demasiado” que no se aplica al programa específico que se está escribiendo.

Cada solución programada de 4GL individual lleva mucho equipaje de suposiciones y generalizaciones integradas en las bibliotecas de 4GL y los “algoritmos de biblioteca estándar” que el codificador obtiene “gratis” con solo un esfuerzo de codificación indicativo. Esto afecta tanto la eficiencia de la memoria como la eficiencia del rendimiento en tiempo de ejecución del código 4GL. Tanto es así, que los 4GL de uso general han caído en mal estado y de mala reputación, y hoy en día no se usan ampliamente.

OTOH, hoy la potencia de cómputo sin procesar (64 bits y más) que tenemos disponible es enorme. Podemos permitirnos construir JVM grandes y de bajo nivel para emular alguna máquina ideal, para proporcionar portabilidad para lenguajes como Java, que son poco más productivos que C y FORTRAN, aunque C y FORTRAN son Java más simples y anteriores a una década. o más. Creamos enormes IDE y entornos para ensamblar y depurar código CPL antiguo (3GL).

Debido a que la gran cantidad de potencia de cómputo disponible podría hacer que los 4GL “derrochadores” fueran más inteligentes sobre la estructura de código incluida, y mucho más rápido en tiempo de ejecución, he esperado un renacimiento de nuevos entornos / lenguajes 4GL de nivel súper alto y de entrada pequeña . Esto no ha sucedido realmente y no estoy seguro de por qué.

O tal vez está sucediendo y un claro ganador simplemente aún no ha surgido. Si esto es cierto, parece que hay una escasez de ofertas de 4GL de código abierto en la mezcla.

Entonces podría decir que mi “mejor” lenguaje de programación aún no ha llegado. Me permitiría resolver problemas generales de codificación con la misma facilidad y compacidad que SQL resuelve los problemas de salida y de informes de la base de datos.

Gracias por el A2A.

No hay una talla para todos’.

Ningún lenguaje de programación puede denominarse mejor a menos que el producto final esté claramente definido.

Sin embargo, mi elección personal sería Java. Aunque no soy un experto o considero que es mi habilidad principal (trabajo en el conjunto de productos webMethods), atribuyo muchas de mis habilidades de programación a Java. Frameworks (spring) y API externa lo hacen más potente y flexible. Ayudó a comprender y explorar, diseñar patrones y otros conceptos de programación. Cada lenguaje de programación cumple su propósito, por ejemplo, alguien que busca desarrollar informes puede usar ‘R’ o las integraciones pueden usar webMethods o TIBCO o PEGA. Para desarrollar aplicaciones basadas en Microsoft, se puede usar Visual Basic o .NET Framework. En última instancia, según lo que pretendemos desarrollar, se debe elegir la tecnología más adecuada

Hola,

Mi opinión es que ningún idioma es “el mejor idioma”. Cada uno tiene su propia eficiencia en términos de rendimiento, curva de aprendizaje, etc. Personalmente, me gustan tanto C ++ como Java, ya que ambos son lenguajes de programación de alto nivel y los más populares (los aprendí primero antes de sumergirme en Python). Recomiendo encarecidamente que cualquiera que esté comenzando a aprender programación de computadoras, comience con el lenguaje Python . Es mucho más fácil de aprender que C ++ y Java. ¡Verás por qué cuando comiences a aprenderlo! Además, si está pensando en una carrera en ciencia de datos como aprendizaje automático, aprendizaje profundo y conceptos de alto nivel, Python será su amigo. Tiene bibliotecas potentes y extensas listas para ser utilizadas por principiantes o incluso programadores avanzados cuando sea necesario.

Cuando asista a las entrevistas, se le dará la opción de codificar en el lenguaje de su elección, ya sea Java, Python, C ++ y viceversa, pero le sugiero que elija uno de estos tres (en los que es competente) y continúe. Aquí hay algunas comparaciones clave:

Python : módulos de terceros amigables para el usuario, admite métodos orientados a objetos, bibliotecas potentes, fácil de aprender, código abierto y comunidad activa (¡¡Yay !!), estructuras de datos fáciles de usar, velocidad, código mucho más limpio que el C ++ y Java.

C ++ : Orientado a objetos, dependiente de la plataforma, lenguaje basado en sintaxis, portabilidad, bibliotecas, punteros (¡uno de los conceptos clave e importante!). Se utiliza principalmente para la programación del sistema.

Java : orientado a objetos, WORA (“Escribir una vez, ejecutar en cualquier lugar” con la ayuda de Java Virtual Machine), robusto, portátil (el código de bytes se puede mover a cualquier lugar), multiproceso. Utilizado principalmente para la programación de aplicaciones.

Sugerencias de IDE favoritas: PyCharm (Python), Eclipse o IntelliJ (Java), Visual Studio (C ++)

Entonces la elección es tuya. Si eres un principiante, definitivamente comienza con Python, de lo contrario, si eres competente en un idioma en particular, ¿por qué no aprender otros idiomas? Te ayudarán eventualmente de una forma u otra algún día.

¡Buena suerte!

¿El mejor lenguaje de programación para qué?

Desarrollo de juegos, desarrollo web, análisis de datos, consulta de bases de datos, aplicaciones comerciales, sistemas integrados, sistemas bancarios, programación de sistemas, sistemas de aviónica, etc.

Todos estos campos tienen requisitos muy diferentes que requieren diferentes compensaciones y, para el caso, diferentes niveles de habilidad del programador. Esto significa que no existe el mejor idioma en absoluto.

Ninguna.

Tal cosa no existe. Es puramente dependiente de lo que quiere hacer, cuánto tiempo tendrá que mantenerse, cuántas personas se supone que deben trabajar en él y cuál será su experiencia.

Si diseña algo para un equipo que tiene como tarea principal analizar datos y usar principalmente python y sabe que tendrán que mantenerlo a lo largo del tiempo y nadie más, no lo codifique en C ++ o Java si no tiene un Muy, muy, muy buena razón para hacerlo.

Pila de PHP, Javascript, HTML y CSS, seguro que no es el mejor lenguaje de la sala, uno de ellos ni siquiera es un lenguaje de programación, pero estos son fáciles de aprender, fáciles de implementar y fáciles de obtener recursos en caso de que necesite ayuda.

Aprenda esas cosas en una semana y compre dominio + hosting barato y cree su propio sitio web para vender cosas o servicios web y auge … está en el negocio y es propietario de una startup.

Últimamente me he convertido en un gran fanático de Python. Las razones incluyen:

Genial para scripting

Grandes librerías para matemáticas y ciencias

Buen marco API como Falcon, matraz

Raspi lo usa.

Sintaxis simple

¡Me doy cuenta de que muchos frameworks y lenguajes de programación son solo una mierda sobrecargada! que hacen tu vida más difícil en lugar de más fácil! Así que a pesar de este hecho, existe la posibilidad de que yo sea feliz en la programación. ¡Hay un buen software también como Shopify o Apple!

Para los programadores experimentados y los profesionales de TI con 10 años de experiencia o más. ¿Si pudieras elegir tu carrera de nuevo desde cero? ¿Qué profesión elegiría? Ingeniería de software, qué tecnología, qué lenguaje de programación después de haber adquirido tanta experiencia, cuál es su elección favorita nuevamente.

Voy a ir no tradicional aquí, y diré JavaScript . Contexto simple, puede hacer bien cada parte de una pila web, y recientemente ha tenido mucha actividad.

Odio ser ese tipo, pero JavaScript es el futuro.

¿Para escribir software y controladores integrados? Definitivamente PHP. Para el desarrollo web, iría con ASM.

Para automatizar las tareas de administración del sistema, iría con R.

¿El idioma con la menor cantidad de mierda básica incluida?
DO.

Piénsalo. El lenguaje C no tiene una comprobación dinámica de tiempo de ejecución lenta, objetos horribles, bibliotecas inseguras y recolección de basura que devora la memoria.

Por otro lado, C no tiene verificación dinámica de tiempo de ejecución, objetos, bibliotecas o recolección de basura.

La razón por la cual C no tiene mentiras es porque no tiene toros en primer lugar.

Está limpio.

No hay un lenguaje / respuesta universal.

Simplemente use la herramienta adecuada para su tarea … pero tiene razón, para mí en realidad es JS (nodejs)

JavaScript, es simplemente mágico y fácil de codificar.

No hay uno mejor. Solo hay mejores para un cierto propósito, dado el conjunto de conocimientos y habilidades.

Con eso, me gusta el php, ha sido mi pan de cada 7 años. Antes de eso, era pesado en ASP / vbscript clásico.

C #, en mi opinión.

¿Qué es “mierda”? ¿Caracteristicas?

Probablemente la menor cantidad de mierda en ese sentido es Forth.

More Interesting

¿Por qué tantos desarrolladores se centran más en 'herramientas y lógica', en lugar de 'experiencia de producto y usuario'?

¿Algún servicio está ayudando a acelerar un sitio web?

Cómo evitar la detección de sitios de WordPress desde herramientas como Wappalyzer o herramientas similares

¿Es tonto tratar de aprender el desarrollo front end por mi cuenta mientras tomo un curso universitario que enseña a usar Java al mismo tiempo?

¿Por qué a tantas personas les resulta difícil crear su propio sitio web cuando existen herramientas como Squarespace y WordPress.com?

Cómo agregar administración de sesión en aplicaciones web usando la sesión HTTP de Java y Apache Tomcat

¿Sería más fácil ingresar a la industria en otro campo de programación que no sea el desarrollo web?

Cómo construir un sitio en un segundo dominio de WordPress adjunto a mi primero

¿Necesito agregar un redireccionamiento 301 a la versión 'no www' de mi sitio web para obtener los beneficios de los enlaces que apuntan al sitio 'no www'?

¿Cuál es la pila de tecnología utilizada en yourstory.com?

¿Cuál es la mejor manera de engañar a su agente de usuario sin estropear cómo funciona su navegador?

Cómo ingresar datos en una base de datos usando un formulario de Windows

¿Puedo usar Angular 4 y Firebase para recuperar / enviar datos sin un lado del servidor (Node.js, etc.)?

¿Cuántos años necesito como desarrollador web para tener demanda?

¿Qué lenguaje es mejor para el desarrollo web: J2EE o PHP?