sábado, 1 de enero de 2011

Python, de programadores para programadores

Yo no soy un programador web, aunque tenga idea, ni soy diseñador web, que no tengo idea. Pero si soy desarrollador de software desde hace algunos años.

Python es framework un lenguaje de programacion de desarrollo multidimensional, esto es, sirve tanto para crear scripts de mantenimiento de sistemas (Windows, Unix, Mac), como creación de aplicaciones para móviles (Android, Symbian), aplicaciones gráficas de escritorio (wxPython, Qt, GTK, Tkinter), desarrollo web (Django, web2py, TurboGears, …).

En el mercado de desarrollo de software hay cantidad de productos, tales como PHP para programación web, y frameworks como Symfony, muy potentes, y todo lo hacen con MVC, como debería ser. Al igual que  está C++, que es el mejor lenguaje de programación, referido en cuestiones de potencia y flexibilidad, y el más difícil de aprender para mi.

Evidentemente, cada problemática tiene una solución, y cada lenguaje aporta ciertas características técnicas que lo hacen ideal para la solución propuesta.

Ahora bien, como lenguaje general, con aportes a web y demás, Python es uno de los lenguajes de programación más completos, que se diferencia en ciertos aspectos a otros lenguajes del mercado, y que algunas personas tenemos muy en cuenta, a saber:

1) Sintaxis fácil de aprender.
2) POO integrada desde sus inicios.
3) Multiparadigma y multiplataforma.
4) Dinámico, fuertemente tipado.
5) Multidimensional (referido a su campo de aplicación).
6) Ampliamente documentado.
7) Proyecto vivo (multitud de módulos, packages).
8) Respaldado por empresas grandes (Google, etc.).

Esta afirmación que hago es muy personal. Cuando se apuesta por un lenguaje como Python (y más en España, donde apenas existen programadores en comparación con otros países, como Argentina), significa varias cosas. Primero, que posiblemente la persona que se inicia en esta andadura ya haya visto muchas cosas en su vida (lenguajes), y necesita hacer las cosas bien. Segundo, los tiempos de desarrollo se acortan (y no me refiero a que un framework lleve CRUD incorporado), tanto para cualquier script como aplicación de la naturaleza que sea. Esto es debido a que es un lenguaje de muy alto nivel (de abstracción): lenguaje dinámico y estructuras de alto nivel, como listas y tablas hashing (también llamadas diccionarios).

Yo he trabajado con herrramientas de Microsoft (Visual Basic 6) y Sybase (PowerBuilder). No se mucho de desarrollo de software, es más, cada día que pasa y leo y leo sé que sé menos…

…pero al esforzarme por hacer las cosas bien, veo que Python me ayuda… y un lenguaje que implementa ciertos paradigmas de programación como POO tan fácilmente, ó en donde los bloques de código se escriben con tanta naturalidad (y esta palabra es muy importante en el desarrollo de software)… no se… da que pensar…

…y es que la legibilidad cuenta, que ya vendrán otros a mantener tu software, y deben saber lo que has hecho.

Yo he sido muy fanático de PowerBuilder, para gestión empresarial, donde sinceramente digo que no hay actualmente herramientas más potentes que los DataWindows para acceso a datos. Sin embargo, PB se ha hecho más complicado con el tiempo. Desde la versión 6 (la mejor) hasta la 12 (la más complicada), ha pasado mucho. Y yo necesitaba mejorar como desarrollador de software. Python hace mejor al desarrollador, ya que ayuda a escribir mejor, esto es, a escribir menos, para hacer lo mismo, lo que indica recortar tiempos de desarrollo, y en definitiva, acortar proyectos, lo que implica a su vez, dinero.

Pero la verdad, la realidad, es muy distinta. En España por lo menos. Python se utiliza muy poco, PHP lo que más, junto a las herramientas de Microsoft y Java.

Después de llevar con Python un año, de escribir en este blog por puro amor al arte, me niego a emprender otra andadura diferente en la que estoy. Creo firmemente que apostar por Python y sucedáneos, tales como Django para web, wxPython para escritorio, Plone para CMS, etcétera, es una apuesta a caballo ganador.

Las distancias hoy día no son barreras para asociarse y trabajar juntos, para eso está Internet...

Si eres una persona responsable, muy comprometida, que quiere embarcarse en algo diferente, apostar por el talento, el esfuerzo y hacer las cosas de la forma correcta, aquí espero para que hablemos.

Resumiendo, Python, siempre desde mi punto de vista, es un framework lenguaje de programación de desarrollo, de programadores para programadores, donde prima el hacer las cosas de la manera correcta, en el menor tiempo posible (¡y en este orden!).

Saludos.

15 comentarios:

  1. Buen dia..
    En realidad recien empiezo con python, y e conocido tu blog y me a agradado bastante, espero sigas aportando mas y mas cosas :=).. en realidad estoy aprendiendo python po hobbie, no creo que con 16 años me den trabajo jejeje.. pero bueno, espero seguir aprendiendo y si tienes documentos, libros o algo que creas que me pueda ayudar te lo agradeceria..

    Feliz y prospero 2011
    saludos y suerte(aunque no la necesitas)
    D14M4NT3

    ResponderEliminar
  2. "Python es framework" Python no es un framework. Por cierto me parece al menos gracioso que digas C++ el más dificil de aprender, eso es completamente falso, que las personas esten acostumbradas a sus recolectores de basuras y otras monadas se puede entender, pero C++ esta hecho para expresar ideas de forma muy particular y no hay nada más elegante y que brinde tanta solidez como el mismo

    ResponderEliminar
  3. Hola Leonardo. para mi C++ es mas complicado y difícil, mas potente, pero es una opinión muy personal, de los que yo he visto, y mas en comparación con Python. En ningún momento intento desprestigiar a C++, justo al contrario. Es mas, te digo que es el mejor, y el mas difícil de dominar, pero desde mi punto de vista, claro.
    Yo no intento ser gracioso, si te lo parezco, mejor para todos, supongo. Además, por la forma de expresarte, veo que sabes mucho de desarrollo de software, no creo que este blog pueda aportarte mucho. Perdona mi ignorancia.
    Un cordial saludo Leonardo.

    ResponderEliminar
  4. Hola Angel

    Yo aprendi a programar con C++, pero realmente no recuerdo nada al C++ le debo la logica de programacion, solo se que el python es mucho mas facil de entender, ahora programo python en la web, deberias pasarte para la web con python me parece que hay mas futuro que en el escritorio, hasta la misma gente de google usa python.

    https://groups.google.com/group/django-es?hl=es (ese grupo Django-es me parece que es español no estoy seguro)

    https://groups.google.com/group/web2py-usuarios?hl=es (aqui en america latina tenemos a web2py-usuarios de Argentina)

    Me parece que te vendria bien aprender un framework si eres un programador con experiencia en python se te va a ser facil.

    No te desanimes actualmente hay muchas compañias que estan migrando sus aplicaciones de PHP para Python solo es cuestion de tiempo.

    Este es mi blog.
    http://web2py-latino.blogspot.com/

    ResponderEliminar
  5. Hola Ariel. Muchas gracias por los ánimos y consejos que me das. Llevas razón en lo de que al final tendré que ir a trabajar en web, ya que las aplicaciones de escritorio parece ser algo a extinguir.

    Yo también empecé, en la universidad, con C y C++, aprendiendo algoritmia y estructuras de datos.

    La verdad que me da mucha envidia (sana) Argentina, por lo que se ha montado allí (PyAr, web2py-usuarios, etc), además que es uno de los países más bellos del mundo (ojalá pudiera visitarlo...).

    Saludos.

    ResponderEliminar
  6. No estoy seguro de si el escritorio vaya a desaparecer, pero python en la web es el futuro de esa forma podras seguir en python el cual cada dia se hace mas fuerte,si queres podes integrar aplicaciones escritorio con la web o a lo mejor creas un framework nuevo jejejeje... este fue un consejo que me dieron ya que estuve en una situacion parecida.....la especializacion de las especies llevan a la extincion ante cambios bruscos de la naturaleza.....es posible que en estos momentos te convenga migrar un tiempo para PHP hasta que pase la tormenta.....slds

    ResponderEliminar
  7. Hola Ariel. Las aplicaciones de escritorio terminarán por desaparecer, y sino al tiempo. El cloud computing, Internet y demás cosas harán que todo esté distribuido, todo en diferentes lugares, como servicios de software. Creo que todo irá por ahí. Pero claro, en esto de la informática, lo que parece no tiene por qué ser. Te digo esto hoy y mañana volvemos al MS-DOS... :)

    Saludos cordiales.

    ResponderEliminar
  8. Ok...bueno si queres animate y pasate para la web te digo que alguien que domina el python se le va a ser facil dominar un framework, tendrias que agregar un poco de html, css y jquery,nada dificil si empiezas con http://web2py.com/ si tenes tiempo pruebalo a ver que tal....slds

    ResponderEliminar
  9. Muchas gracias Ariel. Eso haré.
    Saludos.

    ResponderEliminar
  10. espero que estemos en contacto,no soy español pero vivo en Madrid.
    justamente tengo esta duda: que hago,sigo con el estudio del python o no,porque veo que en europa no hay tanto trabajo en esto.
    python es un lenguaje muy potente y la verdad es que adictivo(para mi),porque no me puedo parar del ordenador cundo empieso hacer cozas con el python.soy principiante.pero todo el mundo usa php,bueno la casi.un problema es que mira ajora unos dias queria enviar un programa a un tio mio en mi pais para que pued chatear con el pero vi que hay un problema con el compilado.me gustaria estar en contacto con tigo.mi email es bogdan_sebastian@yahoo.com
    y disculpa mi form de escribir.saludos.

    ResponderEliminar
  11. Hola
    He visto tus comentarios sobre python y estoy tratando de actualizar un software de SQL Server para programar en python pero tengo problemas con los campos image . Tendrias o me recomendarias algun lugar donde mirar como recuperar (y mostrar en un Qlabel), almacenar y modificar un campo image con un jpg ?

    desde ya muchas gracias mi correo es dardoschuster@hotmail.com
    un saludo

    ResponderEliminar
  12. No es que quiera ser anonimo pero ni modo.
    Mis saludos es interesante el tema Don Angel y el resto participantes.
    Parece ser que la NASA usa Python ese dice mucho.

    Canbiando el tema yo personalmente lo llamo el hermano menor de Python es www.lua.org/ no se queda atras y el hermano de C++ es Vala si asi como lo oyes vala www.live.gnome.org/Vala.

    Espero no ofender sus puntos de vista y tanbien meda ENVIDIA (sana) por su puesto no poder tener una carrera en la Universidad como mucho de ud.
    seles saluda desde El Salvador Centro America

    ResponderEliminar
  13. HOla, soy una estudiante de lingüística y quisiera saber si alguien sabe como resolver los los ejercicios del Book de NLTK: 25 del capítulo 2, 31 y 32 del capítulo 4.Por favor, necesito enviar el código de las soluciones. Si existe alguien que pueda ayudarme se lo agradeceria mucho.
    Mi correo es ginapati@hotmail.com

    ResponderEliminar
  14. Hola soy Gina de la UCA
    HOla, soy una estudiante de lingüística y quisiera saber si alguien sabe como resolver los los ejercicios del Book de NLTK: 25 del capítulo 2, 31 y 32 del capítulo 4.Por favor, necesito enviar el código de las soluciones. Si existe alguien que pueda ayudarme se lo agradeceria mucho.

    ResponderEliminar
  15. En este momento estoy como usted, hace una año en una encrucijada y empezando de nuevo y por última con Python, ya que soy programador hace mas de veinte años. Gracias por tus consejos.

    ResponderEliminar