¿Por qué Python cubre tantas áreas de desarrollo de software?

Python no es realmente anormal aquí. Para una primera aproximación, se puede usar cualquier lenguaje para cualquier aplicación: muchos lenguajes son extremadamente inadecuados para la mayoría de las aplicaciones, pero eso nunca ha detenido los gustos de Java, C ++, Perl y PHP (que son extremadamente inadecuados para casi cada aplicación para la que se usan) de ser abusados ​​por sus fanáticos.

Sin embargo, hay un par de diferencias. Una es que Python es popular tanto entre los principiantes como entre los expertos (porque es fácil comenzar con una sintaxis bastante legible y una pequeña plantilla, y porque es muy adecuada para la creación de prototipos de cosas complicadas). Otra es que Python tiene un conjunto enorme de características relativamente raras (soporte para números imaginarios integrados en el lenguaje, implementaciones de la mayoría de las construcciones de programación funcional centrales sin ser remotamente ‘puras’) y una biblioteca estándar muy grande y un conjunto muy grande. de bibliotecas de terceros en varios repositorios centralizados. Esto significa que la creación de prototipos en python es fácil (y a diferencia de otros lenguajes donde la creación de prototipos es fácil, la creación de módulos y la distribución de paquetes también es bastante fácil: python está al menos a la par con node + npm en este sentido).

Esto no quiere decir que Python sea realmente adecuado para todas estas cosas. Muchas personas que son programadores reacios intentan minimizar la cantidad de idiomas que aprenden, y Python es lo suficientemente útil en todos los ámbitos para que no sea tan difícil estirarlo; en otras palabras, se abusará más a menudo alrededor de sus bordes. competencia simplemente porque el área de su competencia atrae a personas que prefieren no aprender una serie de idiomas más adecuados. Otras veces, python inicialmente está destinado solo a prototipos, pero se bloquea una vez que la complejidad alcanza un cierto punto.

La popularidad de Python como lenguaje introductorio alcanzó su punto máximo al mismo tiempo que el rendimiento de la CPU alcanzó su punto máximo en el hardware del consumidor (es decir, alrededor de 2005), que también ocurre aproximadamente cuando pasamos el umbral donde muy pocas aplicaciones reales se verían notablemente afectadas por la penalización de velocidad de un lenguaje interpretado por bytecode con recolección de basura y un bloqueo global de intérprete. Las personas usan python en áreas donde su velocidad realmente puede ser un problema (como el aprendizaje automático) porque han aprendido un par de trucos para evitar que sea uno en casos especiales, y porque fuera de esos pocos casos, en su mayoría no importa relativamente Código bien estructurado. Ya en el año 2000, aún sería normal rechazar los lenguajes de secuencias de comandos como un rendimiento insuficiente para aplicaciones reales y traducir minuciosamente su prototipo de Python a C optimizado si pretendía distribuir archivos binarios.

Los días de Python en ML pueden estar contados. Julia comparte la mayoría de los atributos que hicieron atractivo a Python, y luego agrega paralelismo implícito, un rendimiento promedio mucho mayor y soporte para la mayoría de los paquetes importantes. No se está adoptando tanto en este momento porque algunos comportamientos no se han estandarizado por completo, y dudo que despegue fuera del contexto de las estadísticas de gran volumen / ‘big data’ (no diré simplemente ‘big data’ porque , por razones políticas, la mayoría de lo que la gente llama ‘big data’ en la industria en lugar de la academia está dominada por entornos basados ​​en Java y lenguajes JRE como scala).

Dicho esto, Python probablemente continuará haciendo una buena presentación para las aplicaciones GUI, particularmente las simples destinadas a ser multiplataforma. Tk hace que las aplicaciones GUI simples sean triviales de una manera que avergüenza a otros marcos, y la traducción de Tkinter de la semántica de Tk de objetos de comando de estilo tcl a un modelo de objetos más parecido a Java realmente logra que sea mucho más sostenible; El buen soporte de Python para Qt y Wx (y presumiblemente gtk, aunque no he usado pygtk) significa que continuará dominando los prototipos y los proyectos más pequeños usando esos marcos.

La mayoría de las razones concretas por las que las personas usan Python son accidentes de la historia (como aprenderlo temprano o descubrir que hay un paquete para lo que quieren) o características que son comunes entre los lenguajes de secuencias de comandos (como un buen REPL y tipeo de pato). Muchas lenguas extremadamente pobres se ven elevadas por estos accidentes de la historia; hemos tenido suerte con Python, porque está realmente mejor diseñado y es más agradable de usar que el lenguaje de scripting promedio de finales de los 80.

Realmente no lo hace cuando eres un profesional. Sí, hace casi todo bien, es por eso que tanta gente lo aprende. A los equipos pequeños o contratistas independientes les encanta. Pero, ¿cuántas de esas personas realmente tienen una arquitectura de software realmente buena? No muchos. Se trata solo de reparar agujeros e intentar crear características un poco a tiempo. Python es excelente para eso, solo buscas un script y lo implementas de inmediato. Es el mejor lenguaje si planea reescribir cada pieza de código varias veces.

Sin embargo, si quieres escalar, Python probablemente te muerda el culo. Realmente necesita saber lo que está haciendo y optimizarlo muchísimo con C ++. Quora fue construido en Python y obviamente es genial, pero también fue iniciado por el primer CTO en Facebook. Los grandes proyectos de Python se vuelven tan desordenados de repente que es una locura. Me alegro de no haber empezado con Python porque mi confianza me habría conseguido un trabajo que no merecía y me hubiera jodido un poco de compañía 6 meses después.

Realmente es solo el mejor lenguaje en el sector de aprendizaje automático / ciencia de datos, y eso es solo porque es realmente fácil y simple. Cualquier cosa que necesite ser rápida se puede escribir en C / C ++ muy fácilmente e integrarse en su código Python, que es lo que hacen la mayoría de los equipos. Las aplicaciones de Python tienen un tiempo de ejecución realmente lento para las personas que saben lo que están haciendo. Es realmente rápido para los legos como yo porque hay todos estos algoritmos y bibliotecas integrados que hacen cosas en las que nunca hubiera pensado. Es por eso que Python y JS siguen siendo viables, porque combinas cosas muy rápido y funciona muy bien. No significa que sea bueno construir toda su empresa sobre una base de código escrita en otra cosa que no sea Java.

La razón por la que Python es tan popular es porque la mayoría de las veces no importa si todo es perfecto, rápido, eficiente, lo que sea. Solo lo necesitas para calcular cosas y escupirlas. Cualquier lenguaje hace eso, pero Python es sustancialmente más simple.

Python tiene algunas características únicas que lo hacen favorito tanto para principiantes como para expertos

Son,

• Python es fácil de leer y escribir.

• Se puede usar para crear muchas funciones con menor cantidad de código

• Python puede convertirse fácilmente en los pasos iniciales de los estudiantes que desean aprender programación

• Es difícil equivocarse si tienes habilidades mínimas para usar Python

• Python es tan bueno haciendo prototipos

• La flexibilidad de Python es impecable.

• Una amplia biblioteca de recursos.

• Los marcos para Python son robustos

• Python se usa ampliamente en el desarrollo de IOT, AI y Machine Learning

• Por último, pero no menos importante, es de código abierto

¿Busca desarrolladores de Python expertos y con experiencia? Visita Python Development Company

Un lenguaje no se define por su uso, sino por su utilidad y usabilidad. Claro que Python puede hacer todas esas cosas. Pero es una cuestión de las bibliotecas que admiten la funcionalidad.

Digamos que usamos .NET framework como ejemplo … Puedo codificar en c #, vb. NET, ironPython, F # o incluso Cobol .net. Todo con un nivel similar de funcionalidad. Es el marco lo que hace el trabajo pesado … no el lenguaje.

Es más una cuestión de visibilidad que de aplicabilidad. Todos los idiomas se pueden usar para hacer todos los trabajos. Python tiene la ventaja de ser fácil de usar, de código abierto, ampliamente disponible. Muchos “sistemas de inicio” están escritos en Python para permitir una fácil experimentación. Cuando se pone serio, la gente cambia a otros idiomas. Pero al mismo tiempo, tiende a volverse profesional, comercial y desaparecer. Python es, y pretende ser, un buen lenguaje de “retoques”. Como tal, verá personas jugando en todas las áreas.

No diría que sí, en comparación con otros idiomas populares.

Lenguajes como C ++ se usan en juegos AAA y aplicaciones de escritorio profesionales, donde Python no ve casi ningún uso.

Java ve mucho más uso en la empresa y, por supuesto, mucho más popular en las aplicaciones de teléfonos inteligentes.

Python ve una amplia gama de usos, pero eso es normal para un lenguaje popular.

La gente cae presa de esta tentadora declaración

imprimir (“hola mundo”)

Como lenguaje, Python es muy simple, fácil de aprender e implementar y, como mencioné, el tentador programa hello world atrae a muchos programadores principiantes y experimentados.

More Interesting

¿Cuáles son las principales desventajas / características faltantes cuando se usa Trello para un desarrollo ágil?

¿Qué problemas algorítmicos has resuelto en tu trabajo?

¿Es posible graduarse de DigitalCrafts y obtener un trabajo en ingeniería de software en Atlanta?

¿Cuál es el problema más importante que su empresa está tratando de resolver para avanzar hacia una metodología de desarrollo de software "ágil"?

Suponiendo que sigas un primer principio de diseño móvil, ¿es posible tener una única base de código para plataformas web, web móvil, iOS y Android? En caso afirmativo, ¿cuáles son los pros y los contras de este enfoque?

¿Dónde puedo encontrar el probador de lágrimas Elmendorf TF140C?

Quiero crear una aplicación que se base en el reconocimiento de voz. ¿A quién necesito en mi equipo y qué conocimientos básicos necesito para examinar adecuadamente las posibles contrataciones?

Especificación de requisitos de software: ¿Qué tipo de procedimientos de documentación siguen las nuevas empresas en crecimiento como Quora?

¿Qué compañía ofrece un servicio de software de nómina fácil de usar en India?

¿Los ingenieros marinos obtienen el mismo respeto que los ingenieros de software?

En empresas tecnológicas como Google, ¿hay alguna diferencia entre el trabajo que realizan los doctores y los no doctores?

¿Cuál es la mejor manera de escribir funciones de software?

¿Cómo transformará Big Data la práctica del desarrollo de software?

¿Qué servicios ayudan a evaluar las habilidades de los programadores?

¿Es una buena idea obtener una licenciatura en filosofía y luego obtener una maestría en ingeniería de software?