Pitón. Un idioma que facilita pensar

¡Hola, Habr!



Podemos reservar la tan esperada segunda edición de Simple Python . La traducción de la primera edición salió en 2016 y sigue siendo uno de los más vendidos hasta el día de hoy.







Como estamos convencidos de que Python es el mejor lenguaje de programación para principiantes, así como para trabajar con ciencia de datos y aprendizaje automático, hoy te ofrecemos la traducción de varios post de cosmovisión del sitio web de Dropbox, donde Guido van Rossum terminó su carrera - sobre el significado e indispensabilidad del lenguaje Python.



Nada caracteriza más al siglo XXI que la penetrante influencia de la programación. Casi todo lo que hacemos, especialmente en el trabajo, lo hacemos a través de un monitor, que se hace a través de un monitor, que muestra los resultados de un trabajo computacional colosal, que hoy damos por sentado. Para ese 99,7% de la raza humana que no está involucrada en la programación, todo esto sucede como por arte de magia. Como señaló el gran escritor de ciencia ficción Arthur Clarke, "Cualquier tecnología lo suficientemente avanzada es indistinguible de la magia".



Por supuesto, esto no es magia. Pero la programación es un proceso complejo y multinivel, el tamaño de las bases de código en empresas de tecnología serias se mide en millones de líneas de código. Cuando piensa en cómo se puede implementar un sistema real a nivel de código, piensa en la compleja interacción de diferentes funciones a lo largo del tiempo. Su código puede ser más o menos complejo a nivel de estructura, pero la complejidad inherente es inherente al problema que está resolviendo, y esta complejidad no se puede reducir a algo más simple.



Ser programador no se trata solo de generar ideas, y no durarás mucho en esta profesión si no sabes cómo describir tus ideas en código con precisión quirúrgica. "Soy un poco escéptico de que el pensamiento sistémico sea lo más importante en este caso, ya que es mucho más fácil delinear una idea de un sistema que tomar esa idea y convertirla en código funcional", dice Guido van Rossum, creador y jubilado The Generous Life Dictator of Python ... La web sigue siendo JavaScript y Java ejecuta 2.500 millones de teléfonos Android, pero Python se ha convertido en el estándar de facto en programación y educación general.



Quien más hizo para facilitar que mucha gente codificara sus ideas fue Guido van Rossum, quien entregó 30 años de su vida al lenguaje Python. Además, lo hizo con modesta gracia y humor mudo. El lenguaje lleva el nombre del grotesco programa de comedia "Monty Python", no de la serpiente birmana. Sin más preámbulos, el lenguaje de programación Python ha hecho posible simplificar algunas cosas en la programación, especialmente para la comprensión.



Para comprender cómo hizo esto van Rossum, echemos un vistazo a la historia de la informática y saltemos a la era de los mainframes y el lenguaje de máquina. “El mainframe es una máquina de un millón de dólares y los salarios combinados de todos sus programadores son solo unos centavos en comparación con el costo del mainframe”, dice Rossum. Por lo tanto, es lógico que el tiempo de la máquina se considerara una prioridad más alta que el tiempo humano. "Pero cuando se trata de estaciones de trabajo de escritorio y PC, me di cuenta de que ya es hora de cambiar la actitud respecto a la relación entre el tiempo humano y el tiempo de la máquina". Van Rossum no se considera el primero en notar este cambio, pero realmente lo enfatizó al diseñar el lenguaje Python.



Esta simple idea de "máquina por hombre, no hombre por máquina" es la esencia de toda la filosofía del lenguaje Python. En concreto, el hecho de que sea un lenguaje interpretado, no un lenguaje compilado, implica que el programador ve el efecto del código escrito tan pronto como lo escribe, sin tener que recompilarlo después de cada cambio. Hoy en día, esta práctica es muy común, pero hace muchos años se percibía de manera ambigua, ya que parecía cierto que cuanto más rápido el ordenador, mejor. Redefinir esta creencia ha tenido un efecto positivo significativo en la productividad de los programadores.



"Hay un montón de problemas de programación comunes que son más fáciles de resolver en Python", dice van Rossum. - "Para aquellos que aún no son programadores, pero solo quieren serlo, el umbral para ingresar a Python es especialmente bajo". De hecho, muchos cursos de programación están comenzando a alejarse de Java en favor de Python porque es mucho más comprensible para los principiantes. Las razones detrás de esta transición son complejas, con muchos factores, cada uno de los cuales ha eliminado algunas asperezas. La esencia de la filosofía está en el corazón de todas las mejoras: todo debe tener un propósito. Cuando no hay código redundante, es más fácil concentrarse en lo que realmente necesita. “En Python, todos los caracteres que escribes son importantes”, dice van Rossum.



Esta concisión asegura que Python sea fácil de lograr resultados tangibles, razón por la cual el lenguaje encuentra un uso tan extendido. “También es importante cómo presentamos Python a los programadores novatos. Puedes mostrarle a una persona fragmentos de código muy pequeños con los que puedes trabajar, casi sin entender la terminología y los conceptos de programación como tales, hasta que los entiendas ", explica van Rossum," mientras que en el programa Java más pequeño encontrarás un montón de símbolos que parecerán ondas para el ojo no iniciado ".



Con un diseño tan sencillo y tranquilo del lenguaje, es más fácil entender lo que está sucediendo en el código. “Python me parece increíblemente descriptivo”, dice van Rossum. “Cuando leo Python, definitivamente percibo su estructura como de dos niveles, no de un nivel. Probablemente esto se deba a que la sangría es importante en Python, y quizás a que me gusta pensar visualmente ".



Por supuesto, el pensamiento visual no es exclusivo de él. Todos pensamos así hasta cierto punto. Pero enfatiza especialmente el papel del componente visual en la actividad cognitiva. “Si el texto está mal formateado, me puede enfurecer. Entonces el análisis del flujo de texto se confunde en mi cabeza, y en este sentido realmente se puede argumentar que pienso en Python ", admite van Rossum. "Soy mucho mejor asimilando código si está bien formateado". La sangría en el código es arbitraria, entonces se requiere más información para desentrañar el significado del código que si cada sangría tiene un propósito claro, como en Python. Por lo tanto, es conveniente trabajar con Python: debe digerir menos información para comprender lo que está sucediendo.



Python no solo es legible en términos de tipografía, sino también conceptualmente. Van Rossum cree que Python es quizás más preciso que otros lenguajes de programación para nuestra percepción visual de las estructuras representadas en el código, porque "en Python, la adherencia a la estructura es imperativa".



Clive Thompson, autor de CODERS", Dice que" mientras me preparaba para escribir el libro, hablé con muchos desarrolladores que están completamente enamorados de Python. Casi todos, sin excepción, dijeron algo como "Python es hermoso". Les gustó la legibilidad y les resultó fácil echar un vistazo al código Python y comprender su propósito. Este lenguaje, desprovisto de llaves, con líneas dispuestas como ordenadas estanterías, se parece mucho a la poesía moderna ". También piensan que Python es divertido de escribir, lo cual es mucho más importante de lo que parece a primera vista. Thompson escribe que "cuando conoces a un codificador, ves frente a ti a una persona cuyo principal trabajo diario está lleno de interminables fracasos y frustración opresiva".



Cuando el respeto por el tiempo del programador se incorpora a un lenguaje, se refleja de una manera interesante en la comunidad lingüística. Hay una filosofía social que proviene de Python: el programador es responsable de su código, sabiendo que lo está escribiendo para otras personas. Hay una tesis tácita que el propio van Rossum promueve activamente en sus textos y conferencias: dedica un poco más de tiempo y hazlo un poco más fácil para la persona que leerá tu código en el futuro. Mostrar su propio respeto a sus colegas y demostrar que valora su tiempo es una ética que van Rossum promueve silenciosamente en todo el mundo. “Escribes código principalmente para comunicarte con otros programadores y, en menor medida, para imponer tu voluntad en la computadora”, dice.

La versatilidad de la cultura que rodea a Python ha permitido algo de la visión que tenía van Rossum hace unos veinte años cuando lanzó el proyecto de corta duración CP4E (Computer Programming For Everyone). “Por lo general, no puedo presumir de un talento visionario. La gente me pregunta qué le depara el futuro a Python y no lo sé. Pero mi profecía más importante, considero la tesis de que llegará el momento en que aprender a programar será conveniente para todos ". En ese momento, las computadoras personales habían existido durante unos 20 años, pero la mayoría de ellas eran máquinas de escribir y calculadoras publicitadas. Entonces van Rossum se preguntó: "¿No es una locura que tanta gente tenga computadoras, pero tan poca gente aprenda a programar?"



Desde entonces, ha estado simplificando constantemente la programación, y este trabajo se remonta fácilmente al desarrollo de Python, que ahora ha alcanzado la versión 3.7. You Rossum sigue creyendo que la programación inculca habilidades generalmente útiles, en particular, la capacidad de resolver problemas, seguir cuidadosamente una dirección u otra y comprender el significado de esta dirección. Pero también encontró que “hay introducciones a la programación que son interesantes para los niños, aunque no para todos; por tanto, no creo que la programación deba incluirse en el currículo escolar como asignatura obligatoria ".



Al mismo tiempo, hoy en día ya no es tan importante que una persona programe su computadora, ya que han aparecido muchos programas listos para usar, especialmente en Internet, y le permiten hacer frente de manera intuitiva a tareas para las que las soluciones anteriormente requerían programación.



Sin embargo, ahora hay cada vez más personas que utilizan Python en una variedad de disciplinas. “Hoy prevalece una teoría que explica el éxito inesperado de Python”, dice van Rossum, “según la cual tuvo la suerte de tener un punto de apoyo en la ciencia de datos y el aprendizaje automático, y la ciencia de datos en general. Una vez que haya desarrollado una masa crítica de habilidades de Python, es más fácil trabajar con el mismo sistema que sus compañeros y competidores que aprender cosas nuevas ". Además, según van Rossum, aunque Python comenzó como una herramienta común para programadores, hoy también es un lenguaje para aficionados y, según van Rossum, es el mejor uso para Python.



Un proyecto de software de código abierto exitoso como Python sería fácil de aprender para los principiantes, pero también encontraría un uso práctico para resolver problemas del mundo real que los usuarios más avanzados necesitarían. Al igual que cuando trabajamos con principiantes, nos esforzamos por no complicar el lenguaje para que puedan dedicar toda su energía mental a aprender las complejidades inherentes al entorno de desarrollo, cuando se trabaja con usuarios avanzados, la simplicidad del lenguaje es útil, ya que facilita que una persona aprenda abstracciones competitivas. El deseo de hacer la implementación de Python lo más simple posible se debe en parte al hecho de que al trabajar con este lenguaje, es fácil cambiar de opinión, aprender, repetir. “Escribir un prototipo en Python y ponerlo en producción a menudo no es tan difícil”, dice van Rossum.“Y luego puede darse el lujo de deshacerse de este prototipo e implementarlo basándose en lo que ya ha aprendido. La segunda versión también se puede escribir en Python, pero será mucho mejor que la primera ".



El implacable atractivo de Python se debe en parte al optimismo del lenguaje y a lo fácil que es empezar de nuevo. "Si ha pasado mucho tiempo escribiendo y depurando código, entonces realmente no quiere tirarlo y empezar de nuevo". El cofundador y director ejecutivo de Drpopbox, Drew Houston, escribió el primer prototipo del servicio en Python en un viaje en autobús de cinco horas desde Boston a Nueva York. "Los primeros prototipos de Dropbox se desecharon en gran parte, muchas veces", dice van Rossum.



¿Qué puedes aprender de Python sobre cómo crear herramientas mentales de calidad? Tim Peters, uno de los mayores contribuyentes de Python, ofrece algunos consejos sobre este tema en el aforísticamente escrito “ Zen of Python", Lo que explica los principios que guiaron a van Rossum. En el contexto de este artículo, los dos siguientes son los más importantes: “Lo simple es mejor que lo complejo. Complicado es mejor que demasiado complicado ". Es prácticamente una receta para que el cerebro priorice sus propias funciones para un uso eficiente de la energía.



Para van Rossum, el aspecto social de pensar y crear herramientas es igualmente importante. ¿Qué aprendió de su odisea de treinta años con Python? “Aprendí que era imposible hacer frente a un asunto así solo, y fue una lección difícil para mí. Aprendí que no siempre se logra el resultado por el que se estaba esforzando, pero tal vez el resultado no sea peor o incluso mejor de lo que esperaba ".



All Articles