domingo, 2 de marzo de 2025

Python.... esta solo bien?

"Da a un hombre un pescado y lo alimentarás por un día. Enseña a un hombre a pescar y lo alimentarás para toda la vida." – Proverbio chino.

Según Wikipedia, la programación de computadoras es:

"La programación de computadoras o codificación es la composición de secuencias de instrucciones, llamadas programas, que las computadoras pueden seguir para realizar tareas. Implica diseñar e implementar algoritmos, especificaciones paso a paso de procedimientos, escribiendo código en uno o más lenguajes de programación. Los programadores suelen usar lenguajes de programación de alto nivel que son más fácilmente comprensibles para los humanos que el código máquina, que es ejecutado directamente por la unidad central de procesamiento. La programación competente generalmente requiere experiencia en varios temas diferentes, incluyendo conocimiento del dominio de la aplicación, detalles de los lenguajes de programación y bibliotecas de código genéricas, algoritmos especializados y lógica formal."

(https://en.wikipedia.org/wiki/Computer_programming)

En resumen, la programación de computadoras, o codificación, como a veces se le conoce, es decirle a una computadora que haga algo usando un lenguaje que ella entiende.

Las computadoras son herramientas muy poderosas, pero desafortunadamente, no pueden pensar por sí mismas. Necesitan que se les diga todo: cómo realizar una tarea; cómo evaluar una condición para decidir qué camino seguir; cómo manejar datos que provienen de un dispositivo, como una red o un disco; y cómo reaccionar cuando sucede algo imprevisto, en el caso de, digamos, que algo esté roto o falte.

Puedes programar en muchos estilos y lenguajes diferentes. ¿Es difícil? Diríamos que sí y no. Es un poco como escribir: es algo que todos pueden aprender. Pero, ¿y si quieres convertirte en poeta? Escribir solo no es suficiente. Tienes que adquirir todo un conjunto de habilidades adicionales, y esto implicará un esfuerzo mayor y más prolongado.

Al final, todo se reduce a qué tan lejos quieres llegar en el camino. Programar no es solo juntar algunas instrucciones que funcionen. ¡Es mucho más que eso!

El buen código es corto, rápido, elegante, fácil de leer y entender, simple, fácil de modificar y extender, fácil de escalar y refactorizar, y fácil de probar. Lleva tiempo poder escribir código que tenga todas estas cualidades al mismo tiempo, cualquiera puede; de hecho, todos programamos todo el tiempo, solo que no somos conscientes de ello.

Digamos, por ejemplo, que quieres hacer café instantáneo. Tienes que conseguir una taza, el frasco de café instantáneo, una cucharita, agua y la tetera. Incluso si no eres consciente de ello, estás evaluando muchos datos. Te aseguras de que haya agua en la tetera y de que la tetera esté enchufada, de que la taza esté limpia y de que haya suficiente café en el frasco. Luego hierves el agua y, tal vez mientras tanto, pones un poco de café en la taza. Cuando el agua está lista, la viertes en la taza y la revuelves. 

¿Cómo es esto de programación?

En el ejemplo de hacer café instantáneo, describimos una serie de pasos que siguen una lógica específica. Esto es similar a cómo funcionan los programas de computadora. Veamos el paralelismo:

Recopilación de recursos:

En el ejemplo, reunimos los recursos necesarios (tetera, café, agua, cucharita y taza). En programación, esto sería equivalente a inicializar variables o definir los datos necesarios para realizar una tarea.

Verificación de condiciones:

Verificamos que la tetera esté enchufada, que la taza esté limpia y que haya suficiente café. En programación, esto se traduce en el uso de condicionales (como if o else) para evaluar si se cumplen ciertas condiciones antes de proceder.

Ejecución de acciones:

Hervimos el agua y pusimos café en la taza. Estas son acciones secuenciales que, en programación, se representan como funciones o métodos que realizan tareas específicas.

Finalización del proceso:

Cuando ambas acciones se completaron, vertimos el agua en la taza y revolvimos. Esto es similar a cómo un programa ejecuta una serie de instrucciones y finaliza una tarea una vez que se cumplen todas las condiciones.

En resumen, lo que hicimos fue describir un algoritmo: una secuencia lógica de pasos para resolver un problema (en este caso, hacer café). Esto es exactamente lo que hacemos al programar: descomponer tareas en pasos lógicos que una computadora pueda entender y ejecutar.

Objetos, propiedades y métodos

En programación, especialmente en lenguajes orientados a objetos como Python, todo se organiza alrededor de objetos. Un objeto es una representación de algo en el mundo real (o abstracto) que tiene:

Propiedades:

Son características o atributos del objeto. Por ejemplo, una persona puede tener propiedades como nombre, edad, email, etc. En el ejemplo del café, la taza podría tener propiedades como color, tamaño o estado (limpia o sucia).

Métodos:

Son acciones que el objeto puede realizar. Por ejemplo, una persona puede tener métodos como caminar(), hablar(), dormir(), etc. En el ejemplo del café, la tetera podría tener métodos como hervir_agua() o apagar().

Ejemplo en código:

Imaginemos que queremos representar el proceso de hacer café en Python usando objetos. Podríamos crear una clase Cafetera con propiedades y métodos:

class Cafetera:
def __init__(self, agua, cafe, taza_limpia):
self.agua = agua
self.cafe = cafe
self.taza_limpia = taza_limpia
def hervir_agua(self):
if self.agua > 0:
print("Hirviendo agua...")
return True
else:
print("No hay agua en la tetera.")
return False
def servir_cafe(self):
if self.taza_limpia and self.cafe > 0:
print("Sirviendo café en la taza...")
print("¡Café listo!")
else:
print("No se puede servir café. Verifica la taza y el café.")
# Crear una instancia de Cafetera
mi_cafetera = Cafetera(agua=1, cafe=1, taza_limpia=True)
# Hacer café
if mi_cafetera.hervir_agua():
mi_cafetera.servir_cafe()
view raw prueba.py hosted with ❤ by GitHub

"Los objetos son la abstracción de Python para los datos. Todos los datos en un programa de Python están representados por objetos o por relaciones entre objetos."

Una vez creado, el ID de un objeto nunca cambia. Es un identificador único para él, y Python lo utiliza internamente para recuperar el objeto cuando queremos usarlo. El tipo tampoco cambia. El tipo define qué operaciones son compatibles con el objeto y los valores posibles que se le pueden asignar. El valor de algunos objetos puede cambiar; estos objetos se denominan mutables. Si el valor no puede cambiar, el objeto se considera inmutable.

Entonces, ¿cómo usamos un objeto? ¡Le damos un nombre, por supuesto! Cuando le das un nombre a un objeto, puedes usar ese nombre para recuperarlo y utilizarlo. En un sentido más genérico, los objetos, como números, cadenas de texto (strings) y colecciones, se asocian con un nombre. En otros lenguajes, el nombre normalmente se llama variable. Puedes ver la variable como una caja que puedes usar para guardar datos.

Los objetos representan datos. Estos datos se almacenan en bases de datos o se envían a través de conexiones de red. Es lo que ves cuando abres cualquier página web o trabajas en un documento. Los programas de computadora manipulan esos datos para realizar todo tipo de acciones. Regulan su flujo, evalúan condiciones, reaccionan a eventos y mucho más.

La llegada de Python

Python es la maravillosa creación de Guido Van Rossum, un científico de la computación y matemático holandés que decidió regalar al mundo un proyecto en el que estaba trabajando durante la Navidad de 1989. El lenguaje se dio a conocer al público alrededor de 1991, y desde entonces ha evolucionado hasta convertirse en uno de los lenguajes de programación líderes utilizados en todo el mundo hoy en día.

Python ejemplifica las siguientes cualidades:

Portabilidad:

Python funciona en todas partes, y portar un programa de Linux a Windows o Mac suele ser solo cuestión de ajustar rutas y configuraciones. Python está diseñado para ser portable y se encarga de los detalles específicos del sistema operativo (SO) detrás de interfaces que te protegen del dolor de tener que escribir código adaptado a una plataforma específica.

Coherencia:

Python es extremadamente lógico y coherente. Puedes ver que fue diseñado por un brillante científico de la computación. La mayoría de las veces, puedes adivinar cómo se llama un método si no lo sabes.

Puede que no te des cuenta de lo importante que es esto ahora, especialmente si no tienes mucha experiencia como programador, pero esta es una característica importante. Significa menos desorden en tu cabeza, menos necesidad de revisar la documentación y menos mapeos mentales cuando programas.

Productividad del desarrollador:

Según Mark Lutz (autor de Learning Python, 5th Edition, O'Reilly Media), un programa en Python suele ser de un quinto a un tercio del tamaño de un código equivalente en Java o C++. Esto significa que el trabajo se hace más rápido. Y más rápido es bueno. Más rápido significa poder responder más rápidamente al mercado. Menos código no solo significa menos código que escribir, sino también menos código que leer (y los programadores profesionales leen mucho más de lo que escriben), mantener, depurar y refactorizar.

Otro aspecto importante es que Python se ejecuta sin necesidad de largos y tediosos pasos de compilación y enlace, por lo que no hay que esperar para ver los resultados de tu trabajo.

Una biblioteca extensa:

Python tiene una biblioteca estándar increíblemente extensa (se dice que viene con "pilas incluidas"). Si eso no fuera suficiente, la comunidad internacional de Python mantiene un conjunto de bibliotecas de terceros, adaptadas a necesidades específicas, a las que puedes acceder libremente en el Índice de Paquetes de Python. Cuando programas en Python y te das cuenta de que necesitas una función específica, en la mayoría de los casos, ya existe al menos una biblioteca donde esa función ha sido implementada.

Calidad del software:

Python se enfoca mucho en la legibilidad, la coherencia y la calidad. La uniformidad del lenguaje permite una alta legibilidad, y esto es crucial hoy en día, ya que programar es más un esfuerzo colectivo que una tarea en solitario. Otro aspecto importante de Python es su naturaleza intrínsecamente multiparadigma. Puedes usarlo como un lenguaje de scripting, pero también puedes emplear estilos de programación orientada a objetos, imperativa y funcional; es extremadamente versátil.

Integración de software:

Otro aspecto importante es que Python puede extenderse e integrarse con muchos otros lenguajes, lo que significa que, incluso cuando una empresa utiliza un lenguaje diferente como su herramienta principal, Python puede actuar como un agente de unión entre aplicaciones complejas que necesitan comunicarse entre sí de alguna manera. Este es un tema más avanzado, pero en el mundo real, esta característica es importante.

Ciencia de datos:

Python está entre los lenguajes más populares (si no el más popular) utilizados en los campos de la Ciencia de Datos, el Aprendizaje Automático y la Inteligencia Artificial en la actualidad. Por lo tanto, el conocimiento de Python es casi esencial para quienes desean tener una carrera en estos campos.

Satisfacción y disfrute:

Por último, pero no menos importante, ¡está la diversión! Trabajar con Python es divertido; podemos programar durante ocho horas y salir de la oficina felices y satisfechos, sin sufrir la lucha que otros programadores tienen que soportar porque usan lenguajes que no les proporcionan la misma cantidad de estructuras y construcciones bien diseñadas. Python hace que programar sea divertido, no hay duda de eso. Y la diversión promueve la motivación y la productividad.


Related Posts:

  • Curso de Actualización NodeJSEsta es mi guiá de referencia de conceptos para JS; pero debemos de tener en cuenta que la documentación oficial es la que siempre se debe de revisar; comenzamos por establecer que JS es un lenguaje de programación de tipado … Read More
  • Desarrollo de Aplicaciones Web con DjangoCrear el directorio de mi proyecto, crear el entorno virtual de mi proyecto y activar el entorno virtual para crear la aplicación:verificar si tengo PIP instalado este es el gestor de paquetes de Python y se necesita para des… Read More
  • Conectar Postgresql con Django (Version 2) 1.- crear mi base de datos:2.- cambiar el archivo de configuración en mi proyecto principal:En este punto al tratar de hacer correr el servidor nos sale un error; pero eso solo pasa si no tengo instalado el “psycopg2” q… Read More
  • Algunas librerías(o paquetes) que son esenciales en NodeJSAlguna de las librerias que mas se usan en NodeJS son: http: sirven para crear un servidor y trabajar con las solicitudes que se hacen desde el navegador. Lanza el servidor y enviar solicitudes a la aplicación o a otro s… Read More
  • Conceptos Básicos de NodeJS veamos un esquema de “como funciona la web” de forma resumida se ve así:Los clientes acceden a la red por medio de cualquier navegador web, visitando paginas e interactuando con ellas; ingresa por medio de una URL (ej: … Read More