¿Qué puedo hacer / construir con Python? ¿Python es mejor para ciertas necesidades de programación? ¿Qué puedes / no puedes hacer con Python?

No hace mucho, respondí una pregunta muy similar: ¿para qué se usa Python principalmente en el mundo real de hoy? ¡pero estoy realmente feliz de poder compartir mis conocimientos e investigaciones aquí también!

En el reciente artículo The Incredible Growth of Python que encontré en Stack Overflow, puede leer que Python ha estado creciendo rápidamente en los últimos años en países de altos ingresos como Estados Unidos, Alemania, Reino Unido y Canadá (y muchos otros países que hacen grandes contribuciones al ecosistema global de desarrollo de software como India, Brasil, Rusia y China también).

En este ejemplo, me gustaría destacar que Python se considera el lenguaje de programación principal de más rápido crecimiento.

Ok, pero ¿por qué Python es tan popular? No hace mucho, Wojciech Lichota, Jefe de Entrega de Servicios en STX Next, dijo que “ la legibilidad y flexibilidad de Python me impresionaron tanto que ese día, me convertí en un fanático de Python de por vida. “Y esa es realmente la verdad: Python es realmente claro y la prioridad es reducir el desorden y la complejidad.

Entonces, ¿qué campos e industrias usan Python?

Al principio, Python es ideal para el desarrollo web . En este caso, debo mencionar al menos Django, el framework Python más popular. Su característica es que dentro de un solo paquete hay todo lo que necesita para crear una aplicación web, desde los más bajos hasta los más sofisticados. ¡Vale la pena agregar que aplicaciones web tan populares como Google, Instagram, YouTube e incluso Quora usan Python! Puede leer más sobre Python Frameworks en el artículo: Introducción para principiantes a Python Frameworks .

No puede olvidar que Python es perfecto para el aprendizaje automático, el análisis de datos complejos y la visualización . Gracias a varias bibliotecas es un gran lenguaje para la informática científica.

¿Cuáles son las bibliotecas y herramientas científicas más populares? En el acceso directo hay una lista de las 5 bibliotecas y herramientas científicas más populares de Python a continuación:

  1. Astropy http://www.astropy.org
  2. Biopython http://biopython.org
  3. Pandas http://pandas.pydata.org
  4. matplotlib https://github.com/matplotlib/ma…
  5. NumPy http://www.numpy.org

Si desea obtener más información y conocer más bibliotecas y herramientas, puede consultar este artículo Las bibliotecas científicas más populares de Python .

Ok, es hora de algunos ejemplos prácticos del uso de Python. Hoy he encontrado un artículo sobre Monovar, el programa de computadora escrito en Python creado para combatir el cáncer. Es un algoritmo que ayuda a proporcionar un tratamiento más personalizado a los pacientes con cáncer al identificar variaciones importantes en una sola célula cancerosa. ¡Entonces, podemos usarlo incluso para salvar vidas!

El último ejemplo es usar Python como una opción tecnológica para Fintech . Su fintech necesita un lenguaje de programación que sea fácil de manejar, escalable, maduro, de alto rendimiento y junto con bibliotecas y componentes listos para usar. Python es un lenguaje de programación ideal para la industria financiera. Extendido en todas las industrias de banca de inversión y fondos de cobertura, los bancos están utilizando Python para resolver problemas cuantitativos para las plataformas de precios, gestión comercial y gestión de riesgos. Python también parece tener respuestas a la mayoría de los desafíos planteados por la industria financiera cuando se analizan los análisis, la regulación, el cumplimiento y los datos, que se ven facilitados por la abundancia de bibliotecas de soporte. ¿Necesita una prueba? Aquí hay una lista de las 15 principales empresas de Fintech que incluyen Python en su stack tecnológico .

Espero que mi respuesta te sea útil. No dude en enviarme un mensaje en caso de que tenga preguntas. Estaré encantado de ayudar o discutir.

Si te gusta mi respuesta y crees que fue útil, ¡me alegraré de votarla!

Python es un lenguaje muy versátil. Es muy popular porque hoy en día se puede usar para casi cualquier cosa: desarrollo de GUI, sitios web, análisis de datos, como un “pegamento” entre otros idiomas, etc. Incluso se puede usar para reemplazar el shell del sistema operativo.

Otros han proporcionado una gran cantidad de cosas que puede hacer con Python. Me gustaría cubrir algunas de sus limitaciones, ya que lo preguntaste. Como lenguaje interpretado, Python es inherentemente más lento que los lenguajes compilados. Esto significa que hay momentos en que el código se ejecuta más lento de lo deseado; Los avances en la tecnología informática alivian esto, pero solo mucho. Lo bueno es que, a menos que un programa completo tenga que escribirse en un lenguaje compilado, Python aún puede usarse; las partes críticas pueden reescribirse en C / C ++ y ampliarse o incrustarse en Python.

La naturaleza interpretada de Python también significa que hay ciertas aplicaciones que simplemente no se pueden hacer con Python. Si no hay una versión de Python disponible para el sistema operativo que desea usar, por ejemplo, Linux incorporado en un dispositivo IoT, no podrá usar Python directamente en el dispositivo. Puede evitar esto, de alguna manera, utilizando Python en un dispositivo externo que se comunica con otra cosa en el dispositivo IoT, pero obviamente tendrá limitaciones en lo que puede hacer.

Python tampoco puede manejar la interacción de dispositivos de bajo nivel, es decir, trabajar directamente con hardware. Ergo, Python no es ideal para hacer controladores de dispositivos u otras cosas que necesitan trabajar con metal desnudo o trabajar con el núcleo. Hay algunas formas de evitar esto, pero la respuesta corta es usar otro lenguaje como C / C ++.

Esto también significa que Python no se puede usar para escribir completamente un sistema operativo. Python requiere un intérprete para ejecutar el código Python, por lo que debe haber algo para que el intérprete se ejecute. Por lo tanto, a menos que haya cambios significativos en la informática en el futuro, no verá ningún sistema operativo escrito en Java, Python, Ruby, .NET o lenguajes similares. Eso no quiere decir que no pueda tener un “micro OS” subyacente escrito en C / C ++, luego ejecutar un shell de Python encima, pero no podrá tener un sistema operativo Python puro.

Python también se usa ampliamente en operaciones cibernéticas ofensivas y defensivas. Ofensivamente, la carga útil real del exploit puede escribirse en C, ensamblado o en algún otro lenguaje de bajo nivel dependiendo del dispositivo de destino, pero Python se usa para el comando y control del exploit.

Defensivamente, Python se puede usar para varias cosas, desde análisis de registros, gestión de bases de datos y tráfico de red, análisis de vulnerabilidades y malware conocido, etc. .

El poder y la versatilidad hacen de Python mi lenguaje de programación favorito. Aprendí a disfrutar tanto de Python que eventualmente escribí mi propia serie de libros de Python. Si está buscando apoyo para mejorar su probabilidad de éxito, le recomiendo que busque en un sitio de mentoría como Thinkful; Soy un mentor para el curso de Python de Thinkful.
Los mentores como yo brindan consejos de programación 1-a-1 a los nuevos estudiantes, guiándolos a través de las diferentes lecciones y ayudándoles a comprender los conceptos que están aprendiendo. Se ha demostrado que los estudiantes que aprenden 1 a 1 tienen un mejor desempeño que el 98% de los estudiantes que aprenden en un aula tradicional.

Los mentores proporcionan un conocimiento adicional de cómo y por qué detrás de escribir código de una manera particular. También podemos mostrar formas alternativas de escribir código, solo para que los estudiantes comprendan que no hay una “forma correcta” de codificar; siempre y cuando haga el trabajo, es una aplicación exitosa. Sin embargo, un mentor puede demostrar una forma diferente o más optimizada de escribir un bloque de código en particular, permitiendo al estudiante ver nuevas formas de ser creativo e identificar nuevos procesos de pensamiento.

Las lecciones reflexivas cubren una amplia gama de tecnología, que lo preparará para el aprendizaje futuro por su cuenta. Como mínimo, creo que tendrá suficiente conocimiento para obtener un trabajo de programación de nivel de entrada, ya que tendrá un proyecto final para poner en su cartera de programación.

Puede hacer todo lo siguiente con Python:

Fuente: Bienvenido a Python.org

Desarrollo web e internet

Python ofrece muchas opciones para el desarrollo web:

  • Marcos como Django y Pyramid.
  • Micro-marcos como Flask y Bottle.
  • Sistemas avanzados de gestión de contenido como Plone y django CMS.

La biblioteca estándar de Python admite muchos protocolos de Internet:

  • HTML y XML
  • JSON
  • Procesamiento de correo electrónico.
  • Soporte para FTP, IMAP y otros protocolos de Internet.
  • Interfaz de socket fácil de usar.

Y el índice del paquete tiene aún más bibliotecas:

  • Solicitudes, una potente biblioteca de cliente HTTP.
  • BeautifulSoup, un analizador de HTML que puede manejar todo tipo de HTML extraño.
  • Feedparser para analizar fuentes RSS / Atom.
  • Paramiko, implementando el protocolo SSH2.
  • Twisted Python, un marco para la programación de red asincrónica.

Científica y numérica

Python es ampliamente utilizado en informática científica y numérica:

  • SciPy es una colección de paquetes para matemáticas, ciencias e ingeniería.
  • Pandas es una biblioteca de análisis y modelado de datos.
  • IPython es un potente shell interactivo que presenta una fácil edición y grabación de una sesión de trabajo, y admite visualizaciones y computación paralela.
  • El curso de Carpintería de software enseña habilidades básicas para la informática científica, ejecutar bootcamps y proporcionar materiales de enseñanza de acceso abierto.
    Nota: Si está particularmente interesado en Python científico y numérico, le sugiero que consulte el curso: Python paso a paso: cree un programa de análisis de datos

Educación

Python es un lenguaje excelente para enseñar programación, tanto a nivel introductorio como en cursos más avanzados.

  • Libros como How to Think Like a Computer Scientist, Python Programming: An Introduction to Computer Science, and Practical Programming.
  • El Grupo de Interés Especial para la Educación es un buen lugar para discutir temas de enseñanza.

GUI de escritorio

La biblioteca Tk GUI se incluye con la mayoría de las distribuciones binarias de Python.

Algunos kits de herramientas que se pueden usar en varias plataformas están disponibles por separado:

  • wxWidgets
  • Kivy, para escribir aplicaciones multitáctiles.
  • Qt vía pyqt o pyside

Los kits de herramientas específicos de la plataforma también están disponibles:

  • GTK +
  • Clases de Microsoft Foundation a través de las extensiones win32

Desarrollo de software

Python se usa a menudo como un lenguaje de soporte para desarrolladores de software, para control y administración de compilación, pruebas y de muchas otras maneras.

  • SCons para el control de construcción.
  • Buildbot y Apache Gump para compilación y pruebas continuas automatizadas.
  • Roundup o Trac para el seguimiento de errores y la gestión de proyectos.

Editar : Soy autor de un curso de Python de 22 horas asociado con Udemy. Es un curso práctico que cubre muchas de las aplicaciones mencionadas anteriormente. Si alguien interesado puede obtener el curso a través del siguiente enlace por $ 15 en lugar de su precio listado de $ 195:

The Python Mega Course: Build 10 Python Applications

Teóricamente, casi cualquier cosa que quisieras.

Siendo realistas, solo hay dos barreras reales para poder crear un programa.

Una es si tiene un lenguaje completo de Turing , y eso significa más o menos “cualquier lenguaje de programación “, e incluso muchas cosas que no esperaría que fueran lenguajes de “programación”.

La otra es si el lenguaje que está utilizando puede interactuar con algún recurso que le interese. En su mayor parte, cualquier idioma con una FFI (interfaz de función externa) puede ser persuadido para interactuar con cualquier cosa que el sistema operativo permita, y Python (como la mayoría de los idiomas) tiene una FFI.

Lo que queda por preguntar es si el dolor y el sufrimiento de hacerlo valen la pena. Por ejemplo, la conversión de un gran cuerpo de texto con líneas de doble línea que delimitan los párrafos en formato XML puede tomar solo una o dos líneas de Perl, pero miles de líneas de código FORTRAN. Ambos pueden hacerlo, pero las características de un idioma hacen que sea mucho más fácil hacerlo.

Python puede hacer casi cualquier cosa que otros lenguajes de programación puedan hacer (cosas como los sistemas operativos no se pueden hacer ya que es un lenguaje interpretado)

Aplicaciones móviles (aún no compatibles)
Servidores (HTTP, FTP, SMTP o anythign)
Aplicaciones de escritorio (cualquier cosa)
Juegos
Virus
Herramientas de piratería (SQLmap)
Escáneres

Como dije, puede hacer cualquier cosa que puedan hacer otros lenguajes de programación.

Casi todo lo que hace otro lenguaje de programación orientado a objetos.

1. Puede hacer aplicaciones de escritorio como c #, java, c ++, etc. (Visual Studio 2015 es compatible con Python en .NET Framework).
2. Cree una aplicación de Android usando “kivy”.
3. Scripting web (Django, Flask).
4. Juego de consola usando ‘pygame’.

Y otras actividades como penetración, criptografía, etc.
(Yo uso Python para los cuatro mencionados anteriormente)

Como Dave Buchfuhrer ya mencionó: el backend de Quora está escrito en Python. Por lo tanto, Python ofrece un buen marco web con Django. Además, Python ya se usa en campos amplios como el análisis de datos, instalar scripts o juegos más pequeños. Muchas compañías usan Python para crear prototipos de su software, ya que es fácil y rápido desarrollar tales cosas como prueba de concepto y, a menudo, el rendimiento es suficiente para que pueda usarse como aplicación de producción directamente. A veces, solo los componentes pequeños de los prototipos necesitan ser reemplazados o mejorados con, por ejemplo, extensiones C que son fáciles de hacer. ¿Entonces quieres saber qué puedes hacer con Python? Mi respuesta es, excepto las cosas reales del sistema operativo, casi todo.

Un famoso estudio que olvidé la cita mostró que los programadores producían la misma cantidad de líneas de código “bueno” por día, independientemente del idioma que usaran. Siendo ese el caso, debe elegir un idioma para el que cada declaración sea la más poderosa. He realizado varios proyectos de conversión para traducir código de Java a Python y descubrí que tenemos un 40% menos de código cuando hayamos terminado. Eso me dice que Python es un lenguaje altamente eficiente en términos del recurso más costoso en un proyecto: el tiempo del programador.

Puede usar Python para aplicaciones de bases de datos, aplicaciones web, procesamiento de datos clásico, análisis numérico, programación paralela, big data, juegos, realidad virtual, y así sucesivamente. No puede usar Python para escribir su propio sistema operativo, aunque podría escribir un emulador para una CPU u otro sistema operativo.

Dado que Python es un lenguaje completo de Turing, puede hacer cualquier cosa con él. Pero hay cosas que no son prácticas (pero no imposibles) en Python, principalmente cualquier cosa que necesite hablar directamente con el hardware o ser extremadamente eficiente (aunque PyPy puede ayudar, y también está Cython …)

Pero Python se destaca en análisis de datos (interactivos o no), automatización de tareas, secuencias de comandos, secuencias de comandos del lado del servidor, desarrollo rápido de aplicaciones, creación de prototipos y cálculos numéricos.

Por estas razones, es el idioma más popular en la academia y la investigación científica, y uno de los idiomas más utilizados para el desarrollo web.

Diría que Python es el más adecuado para la lógica empresarial de nivel superior que no es computacionalmente intensiva. Es ideal para situaciones en las que desea moverse rápido y está dispuesto a sacrificar la velocidad y la mecanografía estricta (y sus beneficios de seguridad asociados) por menos repetitivo, más portabilidad y código que es mucho más fácil de leer.

Pero es engañoso decir que no puede usarlo para aplicaciones en las que necesita velocidad y seguridad de tipo. Como la mayoría de los lenguajes de secuencias de comandos, puede usarlo fácilmente en combinación con otros idiomas. Es un lenguaje muy versátil adecuado para todo, desde el desarrollo web hasta la computación científica, debido a las muchas bibliotecas poderosas que se han escrito para él y porque puede escribir módulos de extensión en C / C ++.

El hecho de que algunas partes importantes de su aplicación deban escribirse en C / C ++ no significa que todo deba ser así. Por ejemplo, no es raro que una aplicación tenga un backend REST implementado como un servidor Python WSGI que usa SQL para acceder a una base de datos relacional, usa un módulo escrito en C / C ++ para procesar los datos (y / o usa protobufs para comunicarse con otros servicios) escrito en cualquier número de otros idiomas), y tiene una interfaz web escrita en HTML / CSS / JS, así como clientes móviles escritos en Objective-C y Java.

Incluso puede usar Python para computación de alto rendimiento hoy en día (consulte también: Intel lanza Python optimizado para HPC – insideHPC, GPU Accelerated Computing with Python).

Python puede hacer cualquier cosa, excepto cosas de bajo nivel y dependientes del rendimiento que es dominio C / C ++ (quizás en pocos años Rust).
Su mejor apuesta en python es el desarrollo web, el análisis de datos y la creación de scripts simples.
Hay un amplio ecosistema construido para el desarrollo web y el análisis de datos.
Para el desarrollador web, puede mirar django o frasco. Hay muchos más paquetes, pero son simples para principiantes y tienen una gran comunidad capaz de ayudar en caso de necesidad.
Para el análisis de datos hay muchas herramientas como cuadernos numpy, scipy, ipython, etc.
Y es bueno para las secuencias de comandos debido a la naturaleza interpretada y la gran carga de azúcar sintáctica. De esta manera, el código se escribe rápido y fácil de depurar a pequeña escala.

Como las personas que dieron respuestas aquí, Python se puede utilizar como un excelente lenguaje de secuencias de comandos. Ya sean aplicaciones móviles o Servidor de cliente, ayuda en todo.

He usado Python en muchas categorías, desde el procesamiento de señales hasta el análisis de datos.
La mejor ventaja de nivel más bajo para usar Python es la manipulación de cadenas y la facilidad de manejo de archivos.
Incluso el manejo de estructuras de datos es más fácil.

La otra mejor ventaja es el intérprete. No necesita escribir todo el código y probar las funciones tal como están.
Por otro lado, el único momento en que un programador no preferiría Python se debe a los problemas de tiempo.
Si eres alguien a quien no le importará mucho la diferencia de segundos, Python es todo lo que necesitas 😉

Pruebas de software

Tutorial paso a paso de Python

La naturaleza interpretada de Python también significa que hay ciertas aplicaciones que simplemente no se pueden hacer con Python. Si no hay una versión de Python disponible para el sistema operativo que desea usar, por ejemplo, Linux incrustado en un dispositivo IoT, no podrá usar Python directamente en el dispositivo. Puede evitar esto, de alguna manera, utilizando Python en un dispositivo externo que se comunica con otra cosa en el dispositivo IoT, pero obviamente tendrá limitaciones en lo que puede hacer.

Python tampoco puede manejar la interacción de dispositivos de bajo nivel, es decir, trabajar directamente con hardware. Ergo, Python no es ideal para hacer controladores de dispositivos u otras cosas que necesitan trabajar con metal desnudo o trabajar con el núcleo. Hay algunas formas de evitar esto, pero la respuesta corta es usar otro lenguaje como C / C ++.

Esto también significa que Python no se puede usar para escribir completamente un sistema operativo. Python requiere un intérprete para ejecutar el código Python, por lo que debe haber algo para que el intérprete se ejecute. Por lo tanto, a menos que haya cambios significativos en la informática en el futuro, no verá ningún sistema operativo escrito en Java, Python, Ruby, .NET o lenguajes similares. Eso no quiere decir que no pueda tener un “micro OS” subyacente escrito en C / C ++, luego ejecutar un shell de Python encima, pero no podrá tener un sistema operativo Python puro.

Python también se usa ampliamente en operaciones cibernéticas ofensivas y defensivas. Ofensivamente, la carga útil real del exploit puede escribirse en C, ensamblado o en algún otro lenguaje de bajo nivel dependiendo del dispositivo de destino, pero Python se usa para el comando y control del exploit.

Defensivamente, Python se puede usar para varias cosas, desde análisis de registros, gestión de bases de datos y tráfico de red, análisis de vulnerabilidades y malware conocido, etc. .

El poder y la versatilidad hacen de Python mi lenguaje de programación favorito. Aprendí a disfrutar tanto de Python que eventualmente escribí mi propia serie de libros de Python. Si está buscando apoyo para mejorar su probabilidad de éxito, le recomiendo que busque en un sitio de mentoría como Thinkful; Soy un mentor para el curso de Python de Thinkful.

Los mentores como yo brindan consejos de programación 1 a 1 a los nuevos estudiantes, guiándolos a través de las diferentes lecciones y ayudándoles a comprender los conceptos que están aprendiendo. Se ha demostrado que los estudiantes que aprenden 1 a 1 tienen un mejor desempeño que el 98% de los estudiantes que aprenden en un aula tradicional.

Los mentores proporcionan un conocimiento adicional de cómo y por qué detrás de escribir código de una manera particular. También podemos mostrar formas alternativas de escribir código, solo para que los estudiantes comprendan que no hay una “forma correcta” de codificar; siempre y cuando haga el trabajo, es una aplicación exitosa. Sin embargo, un mentor puede demostrar una forma diferente o más optimizada de escribir un bloque de código en particular, lo que le permite al estudiante ver nuevas formas de ser creativo e identificar nuevos procesos de pensamiento.

Las lecciones reflexivas cubren una amplia gama de tecnología, que lo preparará para el aprendizaje futuro por su cuenta. Como mínimo, creo que tendrá suficiente conocimiento para obtener un trabajo de programación de nivel de entrada, ya que tendrá un proyecto final para poner en su cartera de programación.

Uno puede hacer cualquier cosa en Python. Es un lenguaje de programación de uso general. Python es mucho más fácil de programar que la mayoría de los otros idiomas, por lo que termina tomando mucho menos tiempo para escribir y depurar programas. También alberga una gran cantidad de bibliotecas potentes, que a menudo están optimizadas para ejecutarse tan rápido como los programas nativos de C. Actualmente estoy terminando una maestría en CS en Georgia Tech con una especialización de aprendizaje automático, y pude usar Python para todos mis cursos.

Otra ventaja de Python es que es un gran lenguaje para principiantes en programación y ciencias de la computación. Hay muchos tutoriales en línea excelentes y muchos MOOC que usan Python como el idioma de elección. ¡Que te diviertas!

Python Brochure Project puede decirle para qué se está utilizando Python en todo el mundo. Desde el Gran Colisionador de Hardron hasta Marte, desde el acortamiento de las URL hasta la predicción del clima, elija lo que desea hacer. Solo eche un vistazo al PDF.

Según la solicitud en los comentarios, aquí hay un ejemplo.
Ejemplo 1
Una vez tuve alrededor de 400 archivos que necesitaba cambiar de nombre. Tenían nombre como
1 abc
2 def

10 xyz

Todo parece estar bien en lo de arriba? No. Cuando los clasifiqué, se clasificaron así
1 abc
10 xyz
11 algo
12 algo más

2 def
20 ghi tal vez?

¿Entiendes el problema? Decidí cambiar el nombre de los archivos a 001, 002, ..100, etc. para poder ordenarlos. Pero cambiar el nombre de ~ 400 archivos para agregar ceros no es interesante. Así que pasé 10 minutos para escribir un script de Python para hacer el trabajo por mí. Me ahorró mucho trabajo aburrido.

Python es realmente bueno en tales scripts.

La descarada respuesta es que Python está Turing completo y, por lo tanto, puede hacer * cualquier cosa * con Python que pueda hacer con cualquier otro lenguaje informático de propósito general. (Esa es una gran simplificación … pero lea el artículo de Wikipedia si desea profundizar en los detalles peludos de lo que significa).

Una respuesta más práctica es que puede escribir programas que realicen cálculos de una amplia gama e implemente una amplia gama de servicios e interfaces de usuario (UI y GUIS) utilizando Python. En términos generales, significa que puede hacer casi cualquier cosa que cualquier otro programa podría hacer “en el espacio del usuario”.

Es mucho más fácil abordar este tipo de preguntas describiendo lo que no puede, prácticamente, hacer con Python.

Python requiere un sistema operativo … generalmente un núcleo y un conjunto central de bibliotecas del sistema (“libc”). Por lo tanto, no podría escribir un núcleo del sistema operativo ni controladores para dicho núcleo en Python. (En un sentido profundamente técnico, podría argumentar que Python es una especificación de lenguaje y que * podría * ser capaz de crear un núcleo escrito en ese idioma si tuviera que proporcionar una implementación del lenguaje que realizara suficiente “magia” en las fuentes generar código en el nivel de máquina simple. Pero eso sería estirar la terminología más allá de lo razonable).

También hay una configuración de hardware mínima práctica para admitir Python … y eso se mide en megabytes de RAM y decenas a cientos de megabytes de almacenamiento (si incluye las “bibliotecas estándar de Python”).

En base a eso, Python no es adecuado para sistemas profundamente integrados (particularmente aquellos como Arduino, 6501, 8501 u otras arquitecturas de microcontroladores). En general, Python es demasiado grande para sistemas basados ​​en CPU de 8 y 16 bits.

(Tenga en cuenta que el término “sistema embebido” ahora abarca una gama bastante amplia de sistemas de 32 bits que son más que adecuados para ejecutar Python; los más populares son los sistemas Raspberry Pi. Para aquellos, Python es ampliamente recomendado y fácilmente es el dominante plataforma).

En general, puede hacer cualquier cosa con Python … en aquellos sistemas que admiten Python, cualquier cosa dentro de esos sistemas que se pueda hacer usando cualquier otro lenguaje de programación. Esto incluye acceder a funciones especiales del sistema que no son compatibles directamente con Python. Por ejemplo, se puede acceder a los “atributos” del sistema de archivos específicos de Linux (visibles desde el shell usando lsattr y cambiados con chattr ) usando el soporte de “interfaz de función externa” (FFI) de Python a través de ctypes (incluido en las bibliotecas estándar) ..

Sin embargo, hay un par de cosas que quizás no puedas hacer * bien *.

Por ejemplo, uno no intentaría reemplazar GCC con una implementación de Python ni escribiría un clon de MySQL o PostgreSQL en Python. Del mismo modo, la gente pensará que estás loco si intentas ejecutar Python como tu servidor web principal, público y de alto volumen (en lugar de Apache o NGINX, por ejemplo) o el transporte de correo electrónico (en lugar de sentmail o postfix o exim) o cualquiera de varios otros).

Este tipo de software se escribe principalmente en C con la expectativa de que las ventajas de tener un código compilado de forma nativa que se ejecute “cerca del metal” superan el considerable esfuerzo que se ha tomado para desarrollarlos, ajustar su rendimiento y refinar su resistencia de seguridad. (Por cierto, el lenguaje go está emergiendo como una alternativa viable a C / C ++ para aplicaciones de nivel de sistema (espacio de usuario) … pero es demasiado pronto para decir mucho al respecto)

Del mismo modo, hay una serie de sistemas y subsistemas de nivel “empresarial”, como Hadoop, Zookeeper, Storm, Cassandra, que están escritos en Java y otros, como MongoDB en C ++ y Couchbase y Riak (C ++ y Erlang).

Uno podría imaginar escribir tales sistemas en Python … pero la opinión generalizada es que están más allá de los límites prácticos del lenguaje y sus implementaciones.

Muchos argumentan que varios aspectos de Python hacen que sea poco práctico administrar sus bases de código más allá de un cierto tamaño y complejidad. No voy a opinar sobre esos argumentos aparte de decir que probablemente no pueda convencer a la gerencia detrás de cualquier proyecto de desarrollo de líneas multimillonarias para que se comprometa con Python para el núcleo de su base de código, independientemente de si tal esfuerzo podría Ser técnicamente factible.

Es probable que otros argumenten que las implementaciones existentes de Python (CPython, PyPy, Jython, IronPython, etc.) probablemente planteen serios problemas operativos para ciertas aplicaciones y suites de nivel “empresarial”. (Específicamente, es probable que la administración de memoria y la utilización de la CPU de estos sistemas crezcan a niveles inmanejables en sistemas tan complejos. Este es otro asunto con el que no estaré de acuerdo personalmente. Sin embargo, las percepciones y el consenso pueden limitar lo que puede hacer con Python para cualquier cosa más allá de un proyecto personal. Si es algo que no puede codificar completamente por su cuenta, entonces tendrá que convencer a un equipo para que se una a usted en el esfuerzo.

(Probablemente, los conjuntos de aplicaciones más grandes escritos en Python son Odoo (originalmente OpenERP) y Tryton (¿una bifurcación del sistema OpenERP?). El sistema OpenStack Open Source Cloud Computing Software también puede ser un candidato para uno de los proyectos de software más grandes, que es, principalmente, escrito en Python).

Incluso con todo lo que mencionaría, Python a menudo se usa con dichos sistemas y, a veces, está disponible, en forma incrustada, desde dichos sistemas. Entonces hay un sentido en el que puede “hacer” PostgreSQL y MongoDB y Kafka / Storm / Cassandra y otras arquitecturas de flujo de datos “post-map / reduce”, con “Python (como su interfaz para estos sistemas, clústeres e infraestructuras) .

Una última cosa que diré. Python es un proyecto de código abierto. Si encuentra algo que no puede hacer con él, entonces puede implementar funciones que pueden hacerlo. El resultado puede no ser oficialmente parte de “Python” … pero, de nuevo, podría serlo.

Si encuentra algo que no puede hacer con Python, interactúe con la comunidad y escriba un PEP.

Entonces, ¿qué puedes hacer con Python … cualquier cosa?

Me hice esta pregunta hace aproximadamente un año y medio. Quería saber qué podía hacer con la tecnología en la que había invertido tanto tiempo. Quería ver hasta dónde podía llevar esta nueva habilidad. Quería que mis compañeros miraran este proyecto y contemplaran su belleza en una magnitud similar a la mía.

Entonces construí un mundo.

En realidad, construí cientos. Y si piensas en las posibilidades teóricas, construí una cantidad infinita de mundos. Atrapado en el tema? Estoy hablando del campo de la generación procesal .

Siempre he sido un creador. No quiero simplemente usar algo, o jugarlo, quiero hacerlo. Empecé a pensar y a jugar videojuegos para aliviar mi inquietud. Recuerdo estar sentado en mi dormitorio, jugando mi juego de sandbox favorito, cuando me golpeó. Quiero hacer la mía .

Entonces, en el espíritu de embarcarme en esta aventura de programación, hice una extensa investigación en el mundo de la generación de procedimientos. Me inspiraron juegos como Dwarf Fortress , Minecraft y Terraria (aunque mi proyecto no es tan impresionante como estos). Pasé cada momento de vigilia aprendiendo, experimentando y experimentando. Fue intenso y duro, por decir lo menos. Pero fue, con mucho, la experiencia más profunda que he tenido como programador. Honestamente fue un poco espiritual. Recuerdo haber pensado: “Por eso programo. Crear.”

Python es poderoso. Puede crear aplicaciones web, servidores web, herramientas comerciales, videojuegos y prácticamente cualquier otra cosa en el dominio del software. Pero tengo un vínculo emocional con el idioma debido a este proyecto. Era la primera vez que construía algo que me hacía sentir más grande que yo. Y, la mejor parte, Python me permitió hacer esto yo mismo .

Cuando la gente me pregunta qué puede hacer con Python, les cuento esta historia (más corta y mucho menos obsesiva, pero no puedo evitar escribir de esta manera). La gente mira juegos como Minecraft y no se da cuenta de lo que está viendo. Ellos están viendo un mundo . Un mundo hecho solo para ellos. Eso es intenso

Si pudiera regresar y revivir un proyecto de principio a fin, sería este. Mi corazón late con fuerza solo de pensar en la sensación que tuve cuando apareció mi primer mundo en la pantalla. No dudes de las cosas que puedes construir con un “lenguaje para principiantes” como Python. La belleza está en el ojo del espectador, y esto es especialmente cierto con Python.

Entonces, en resumen: un mundo. Mi mundo.

Nota: Como dije anteriormente, mi proyecto nunca fue un videojuego de mundo infinito muy pulido. Fue un proyecto hecho por razones personales. Llegó a un punto que me hizo feliz, y esto fue suficiente para mí. Lo reviso cuando me siento deprimido, y puedo trabajar un poco aquí y allá, pero está terminado. Ha cumplido su propósito.

Puedes hacer casi cualquier cosa con python. La única limitación es el navegador. Para eso tendrás que usar JavaScript. Sin embargo, también estamos trabajando para solucionarlo: PyPy.js

Python es excelente para la computación científica, lo que puede ser contradictorio ya que es un lenguaje bastante lento (a menudo 50 veces un programa C similar), pero se usa para expresar ideas de alto nivel e iterar sobre ellas mucho más rápido de lo que podría hacerlo en lenguajes “más rápidos” . Los bits crucialmente rápidos todavía se implementan en C (o Fortran) pero son buenos junto con Python.

Cualquier tarea de “programación de sistemas” que pueda imaginar se puede hacer de forma rápida y elegante en Python. Python fue escrito por programadores en C, por lo que se une muy bien a prácticamente todas las bibliotecas y funciones de C que pueda encontrar.

La motivación principal para usar Python es darse cuenta de que pasará más tiempo escribiendo y depurando programas que ejecutándolos; solo uno de cada mil programas se beneficiará más de la velocidad de computación sin procesar que la gran velocidad de iteración de diseño que proporciona python.

Hola,

Dado que Python es un lenguaje completo de Turing, puede hacer cualquier cosa con él. Pero hay cosas que no son prácticas (pero no imposibles) en Python, principalmente cualquier cosa que necesite hablar directamente con el hardware o ser extremadamente eficiente (aunque PyPy puede ayudar, y también está Cython …)

Pero Python se destaca en análisis de datos (interactivos o no), automatización de tareas, secuencias de comandos, secuencias de comandos del lado del servidor, desarrollo rápido de aplicaciones, creación de prototipos y cálculos numéricos.

Por estas razones, es el idioma más popular en la academia y la investigación científica, y uno de los idiomas más utilizados para el desarrollo web.

La mayoría de las aplicaciones actuales se construyen con Python.
Python es el más adecuado para el desarrollo de aplicaciones.
Python ayuda mucho en el desarrollo web.
Python tiene una buena cantidad de codificadores de la comunidad para ayudar cuando sea necesario.

Salud !!!!!

  1. Cree aplicaciones web increíbles con Django & Flask.
  2. Raspe los sitios web usando sopas hermosas o rudimentarias.
  3. Gestión de contenidos con Django.
  4. Analizar datos con pandas.
  5. Cree aplicaciones de escritorio con Tkinter.
  6. Escribe aplicaciones móviles usando Kivy.
  7. Realizar operaciones matemáticas científicas usando SciPy.
  8. Software de escritorio usando PyQt.
  9. Peticiones. La biblioteca http más famosa escrita por Kenneth Reitz. Es imprescindible para todos los desarrolladores de Python.
  10. Retorcido. La herramienta más importante para cualquier desarrollador de aplicaciones de red. Tiene una API muy hermosa y es utilizada por muchos desarrolladores famosos de Python.
  11. nariz. Un marco de prueba para python. Es utilizado por millones de desarrolladores de python. Es imprescindible si prueba el desarrollo impulsado.

Puedo continuar esto para siempre ……

More Interesting

¿Cuál es el mejor software clasificado de código abierto disponible?

¿Cuál es la mejor solución de licencia de software que existe?

¿Tiene un empleador la titularidad legal de un producto de software creado mediante el uso de herramientas de software de contrabando?

Como estadounidense que trabaja en la industria del software, ¿cuál es su opinión honesta sobre los técnicos indios?

Cómo evaluar el código fuente antes de comprarlo

¿Cuál es el error más grande que sucedió en su entorno de producción?

¿Cómo gestionan los programadores la migración de datos de la versión anterior de la base de datos a su nueva versión?

¿Puedo ser productor musical, diseñador gráfico, artista de efectos visuales y desarrollador de software al mismo tiempo?

¿Cuáles son algunos programas o programas educativos existentes que puedo aprovechar para hacer la transición al diseño de experiencias virtuales?

¿Cuál prefiere, desarrollo de software incrustado vs. aplicación? ¿Cuál tiene más demanda? ¿Tiene algún consejo para un futuro ingeniero de software integrado?

¿Cuál es todo el proceso de hacer cualquier tipo de software?

¿Cuáles son buenos ejemplos de abstracciones con fugas en la arquitectura de software?

¿Cuál es la forma más efectiva de enseñar una aplicación de software?

¿Deberían los proyectos de GitHub tener código de prueba?

¿El certificado NIIT me ayuda a lograr mi sueño de convertirme en ingeniero o desarrollador de software?