Sep 19 2008

Lo que estos ojos ven:: Pastor

iceman

Bastante tiempo sin postear, quizá por la falta de tiempo o por la falta de un tema que realmente me inspirara a escribir y a expresar mi opinión (blogs-tutoriales no me gustan xD). Pero bueno por fin algo me inspiró…

Resulta ser que desde hace algún tiempo atrás (quizá 1 año o más), encontré cierto fastidio en mi área(Ing. En Sistemas Comp.), un cierto desinterés de mi parte y quizá cierta pérdida de la emoción. La razón se debió a la falta de nuevos conceptos…

A que me refiero???…bueno por un momento me encontré aburrido, de lenguajes de programación, sistemas operativos o redes… lo clásico y siempre es lo mismo…

Al principio aprendí bien java, luego C, C++, C#, poco tiempo después vino programación web, PHP,ASP, más Java, Ruby, (y los clásicos JavaScript, CSS, XHTML ,etc.) vinieron los frameworks Ruby on Rails,Struts, Symfony, Zend Framework,etc.

Luego vienen que las redes…que los routers, switches y todas esas cosas que ya conocemos,…

Después que me llama la atención “X” sistema operativo, ya manejaba MAC, y unos distros de Linux. Todo eso lo aprendí hasta cierto punto,…hasta el punto en que me aburrió…

Me enfado por que siempre es lo mismo, y nada nuevo, en los lenguajes de programación todo es lo mismo, hasta para Ruby que era donde pensaba que podía haber variedad…fue LO MISMO(hasta más fácil)…claro que podía esperar?… si a final de cuentas todos están basados en POO. Después de aprender y entender java, los otros lenguajes solo me tomaron como 1 semana(o menos), para ya programar proyectos en ellos, a final de cuentas el concepto era el mismo jejeje, que podía haber de difícil. Personalmente no decidí invertir más tiempo aprendiendo nuevos lenguajes porque solo iba a encontrar…LO MISMO,(ha y la misma historia para los manejadores de Bases de datos).

Ahora en cuestión de redes…me gusta el tema, pero se me hace más sencillo de aprender, que programar, y como que en tema de redes gran parte está dicho, solo es leerte todo cisco para tener una buena base general, y que tú puedas extender a otras marcas que no sean el clásico cisco.

Que los sistemas operativos,…quiérase o no también no es nada del otro mundo, con un poco de experiencia en cada uno es suficiente, y a lo mucho aprenderte sus comandos más importantes de ellos, para manipularlo a mas escala :) .

Analizando toda esta situación, decidí no perder más mi tiempo aprendiendo “nuevos lenguajes”, “profundizar más” en sistemas operativos, o manejadores de bases de datos, además hoy en día es eso, y mañana solo quedarán los conceptos y paradigmas,… por que los lenguajes avanzan hasta que pueden quedar obsoletos.

Si bien no conozco Perl o Delphi, si me pides que haga un sistema en el, estoy seguro que en poco tiempo lo hago, si bien no soy experto en Linux si me presionan a hacer cierta tarea,…se que en poco tiempo sabré como lograrla (como buenos ing. En sistemas). Si quieres una base de datos en “X” manejador, la haré también, si quieres una red, también la haré. El punto es…que ya podemos resolver el problema que se nos ponga enfrente relacionado con esos temas(creo yo).

Hay muchas personas que no son de nuestra área y sin embargo hacen estas tareas también, hay mecánicos, que se dedican a programar y a las redes,…al igual que electrónicos y hasta médicos que son excelentes en estas cosas también, y todo porque es su hobbie.

El punto es que estamos siendo alcanzados,…que puedes ofrecer tu como ing. En sistemas si otras personas que no lo son, también son buenos programadores, buenos linuxeros(hasta mejores), buenos en redes, bases de datos, etc,… o eres el clásico que dice…”son buenos pero yo soy mejor”…a final de cuentas hacen lo que tú sabes, y solo como hobbie, pero no aportas nada nuevo amigo :( , en una empresa pueden ser contratados si cumplen sus requerimientos y el ing. En sist. Donde queda???.

Siento que pierdo mi tiempo aprendiendo mas lenguajes, manejadores de BD o redes, más allá de cierto punto (donde ya huele a geek, jajaja) y lo veo como un desperdicio de tiempo. Si sé que soy capaz de hacer cualquier cosa en esas áreas, no le veo sentido querer abarcar todo y memorizar todo…cuando llegues a un trabajo no sabes que te van a pedir, lo único con lo que llegas es con tu capacidad de construir tu propio conocimiento y lo mejor que puede tener el ing. En sist. Es su autonomía y capacidad de aprendizaje.

Últimamente y con el tiempo,…este semestre he despertado un nuevo interés, algo nuevo y distinto,…algo en lo que no todo está dicho y aun queda mucho por descubrir, y donde si vale la pena estudiar, mejor que estar como máquina aprendiendo un nuevo lenguaje “X” jejeje.

Hablo del tema de la inteligencia artificial,…temas de sumo interés y que me he dado a la tarea de estar investigando cada vez con más interés, hablo de lógica difusa, Algoritmos Genéticos , Redes Neuronales, y Sistemas Expertos híbridos…temas que desde mi punto de vista es el nuevo paradigma de la computación y donde si vale la pena profundizar. Personalmente me gusta más aprender las ideas, modelos y paradigmas, que ser experto en un lenguaje o un sistema operativo especifico…como sea es mi punto de vista,…espero en un post futuro comentar sobre estos temas, claro si es que les interesa, porque no quiero dormirlos… por el momento es todo… y como todo, hoy es esto…mañana quien sabe…

Saludos,

Adrián Pastor López Monroy


Jul 11 2008

Una observación a Ruby y Ruby on Rails (RoR)

iceman

Que tal comunidad, en verdad bastante tiempo sin postear, pero bueno he aquí algo que me es interesante y he decidido compartir…

En algunos post de mis compañeros de ihtoa ya se ha hablado de este gran lenguaje de programación, un poco de su historia y sus excelentes características como lenguaje de programación, resumiendo rápidamente, ruby tiene una sintaxis muy fácil de entender y aprender, así como muy parecida a la de python. Este lenguaje ha venido ganando popularidad gracias al uso que a tenido sobre todo en la web, por medio del framework RoR y nadamas (creo yo).

Para los que nos lean y no sepan la diferencia de Ruby y RoR, ahí va rápido:

Ruby: Lenguaje de programación tal como Java o PHP, el cual es interpretado.

Ruby on Rails: Framework para desarrollar aplicaciones web siguiendo el patrón MVC(Modelo Vista Control) construido tomando como base a Ruby, tal como Struts(de java) o Symfony(de PHP).

Mucho se ha comentado acerca de Ruby y Ruby on Rails para el desarrollo de aplicaciones web orientadas a la web 2.0, en donde se habla de todas las bondades de que ruby tiene como lenguaje… haciendo a un lado a lenguajes potentes como PHP o aun mas J2EE :O . Un par de veces he oído “RoR supera fácilmente a PHP o Java”,...para comenzar la comparación es totalmente errónea, no podemos comparar un framework como RoR contra el lenguaje PHP… en todo caso sería

Ruby Vs PHP

Ruby Vs Java

…ó

Ruby on Rails Vs PHP On Zend Framework

Ruby on Rails Vs PHP On Symfony

Ruby on Rails Vs Struts On Java

Así si se puede ;)

Bien, durante una investigación que realice para cierta materia en mi escuela, me di a la tarea de profundizar en el lenguaje Ruby para averiguar que tanta verdad había. Ustedes y yo sabemos que en estos caminos de la informática no hay algo 100% bueno o como dicen 100% seguro, así que me di a la tarea de encontrarle algunos detalles al tal ruby… lo primero que hice fue aprenderlo hasta cierto punto para poder hacer pruebas y empezar a jugar cada vez mas serio con este…me di cuenta que es un lenguaje en verdad bastante poderoso, fácil de aprender y que implementa la POO de una forma excelente. Después de ello, empece a manejar un poco de RoR para probar que tal iban las cosas sobre web. Y me di cuenta que en verdad el desarrollar una aplicación web con el framework es bastante rápido y sencillo, y de verdad simplificaría las cosas en un proyecto a gran escala. Por otra parte no tuve la necesidad de estudiar mucho de PHP ya que amplia mente lo he usado en algunos trabajos incluyendo los frameworks para MVC de PHP.

Después investigue artículos indexados, noticias, etc. Sobre RoR y otros lenguajes y he aquí mis puntos de vista personales comenzando desde lo que yo creo que es pura publicidad hasta lo que yo creo que es verdad…

La publicidad :D

37signals (de RoR) hace una campaña en donde si bien no ataca agresivamente a PHP si lo hace con J2EE, tal ves no vea a PHP tan fuerte o quizás no quiere darle importancia.

Por otra parte PHP con Andi Gutmans tampoco ve a RoR peligrosamente o al menos tampoco lo demuestra pero dice algo así de: “Sentimos que PHP con Zend Framework es superior a RoR, y mientras otras personas lo vean de otra forma en cuanto a sus funcionalidades, definitivamente significa que Ruby estuvo siendo mejor publicitado.

El diseño ingenioso del sitio de RoR y el marketing viral usado por 37signals le dio a RoR un mejor boca a boca que a PHP. Afortunadamente, esto ayuda a elevar la imagen de Zend y a incitar aun mas el uso de su Framework.”

Si Ruby on Rails es lo mejor para web 2.0 debería ya haber muchas demostraciones y sitios web con este framework, pero no es así los ejemplos son contados y no digo ya el famoso “construya un blog en 15 minutos”, si no algo mas en serio, algo mas profesional. RoR ya tiene algo de tiempo y sus sitios son pocos sin mencionar que muchos de ellos son de la misma 37signals :S. (Se que el proyecto tal ves esta en sus fases iniciales y requiera cierto tiempo para crecer, pero mi objetivo es enfatizar lo que es hoy en día lo mas directo posible).

Potencia ;)

Muchos “developers” como ya dije, erróneamente dicen RoR es más organizado y rígido a la vez que PHP es mas flexible a la vez de desordenado.

Pero Ruby y PHP son lenguajes Scripting con propósitos parecidos, con algo de diferencia en los enfoques, estando ruby mas enfocado a POO y php con un sentido un poco mas estructurado. Pero la organización que Rails le brinda a ruby bien y fácilmente se la puede otorgar otro framework a php ;) .

Por otro lado una debilidad de ruby aveces poco conocida o no muy publicitada xD es su bajo rendimiento en cuanto a la velocidad de ejecución :O, pruebas se han hecho demostrando esto, y aveces es notable en una aplicación grande, ciertas pruebas que ralizé no reflejan mucho esta debilidad a menos que sugiera parámetros considerables.

Benchmarks en diversos equipos y varias rutinas señalan a Ruby como un lenguaje lento, en comparación con PHP4, y más lento aun en comparación a PHP5. Pero, posee una excelente gestión de memoria, superior a las 2 versiones de PHP en el mercado actual.

En mi opinión personal seria genial hacer uso de ambos lenguajes, por un lado tener a Ruby on Rails para cierta parte de la aplicación, aprovechando su gran simplicidad de desarrollo, pero contar con php para partes mas delicadas las cuales requieran respuestas mas veloces y optimas. Como siempre pienso, hay que usar y saber de todo…

Saludos,

Adrián Pastor López Monroy


May 3 2008

Por qué usar GNU/Linux???

iceman

El viernes pasado, pensando cómo hacer un proyecto escolar(una página web dinámica), me dispuse a hacer una parte del diseño de esta, y para empezar necesitaba una pequeña animación 3D, en realidad muy simple, pero muy útil. Para ello usaría el 3D’s Max(soy novato en 3D’s Max, pero con algo de esfuerzo podía hacer mi animación). Así que inicie Windows Vista. Después de usar Ubuntu por un buen rato el cambio fue notable, para empezar una vez que cargo (de 2 a 3 minutos), ¡el sistema me marcaba 85% de mi memoria de uso!(tengo 1 Gb), y ni siquiera tenía algún programa mío abierto, este duro así unos 2 minutos mas jejeje…pero después se estabilizo a un 50%, luego abrí el 3D’s max, Opera, Winamp y el MSN. Durante un rato todo iba bien, y de hecho por alguna razón el sistema no se colgó en ningún momento…y mientras realizaba mi animación, pensé por un momento que Windows no era tan malo jejeje…pero ho sorpresa jajaja, sucedió algo que nunca me había ocurrido en vista…una super Pantalla Azul jajaja, Lo que llevaba de mi animación, obviamente se fue por el caño, y tuve que reiniciar mi lap. Creelo o no, la siguiente vez que inicio, todo fue exactamente igual, mismo inicio, mismos programas, ¡misma pantalla azul!, jajaja. Así que volví a iniciar, abrí el puro 3D´s Max, hice mi animación, y regrese a ubuntu a seguir trabajando. 

Después de esta experiencia, quise hacer este post, y decir unas cuantas razones para usar un sistema GNU/Linux(Ubuntu como yo).

Cada vez más personas se animan a usar este sistema, unos se mantienen con ubuntu, mientras que otros les gusta especializarse en otras distribuciones (Slackware, Red hat, Fedora, Debian, Etc.), así que Linux empieza a adquirir una importancia que hace preocupar a más de un líder en el mundo de la informática, y aun que en muchos aspectos el proyecto está en sus etapas iníciales, se puede ver el gran futuro que esta por delante. 

Sé que no todos conocen Linux, sobre todo usuarios que no están en el área informática/tecnológica, unos no saben que es, como o por que trabaja, o como dicen, no saben ni de qué color es, y a veces lo único que saben o se imaginan es que es solo para expertos, y le tienen miedo.

En lo personal creo que si eres una persona con carrera a fin de sistemas o informática, saber usar Linux es una parte fundamental de tu formación, el usarlo te ayuda a saber cómo trabaja un verdadero sistema operativo, configurarlo y manipularlo al 100%. Linux no es para cobardes, muchos tienen miedo de perder su información, otros de des configurar X cosa, unos más, tienen miedo a perder su querido Windows, y algunos otros simplemente tienen miedo a un cambio…pero si estas en estos rumbos de la informática, tienes que probarlo, con Linux experimentas y aprendes.

 

Pues bien, he aquí mis razones por las que uso GNU/Linux(Ubuntu): 

 

1.- De todas la distribuciones es la más fácil de usar pero hay más de 100 distros diferentes, alguna te ha de gustar.

2.- Es software libre, así como la mayoría de software para este.

3.- No hay que instalarlo para probarlo (live CD)

4.- Yo manipulo al Sistema Operativo, no él a mí.

5.- es 100% personalizable incluso para sus escritorios (GNOME, KDE)

6.- Si lo aprendes a usar ganas experiencia y confianza en esto de la informática, además que creces creativamente y como investigador para solucionar los problemas.

7.- Si te gustan los efectos de navidad como los del Vista, en Ubuntu esta el beryl ó compiz, que es mucho mejor y no usa exageradamente recursos, y para muestra ve aquí. Por otro lado si te gusta que sea feo jejeje, puedes hacerlo feo y ganar mas pc.

8.- Si un programa se cuelga, no barre con todo el sistema operativo.

9.- Cada que instalas algo no tienes que reiniciar, a menos que sea para el Kernel y eso aveces jejeje.

10.- Puedes tener varios paneles configurables y así como varios escritorios para organizar todo tu trabajo.

11.- Prácticamente no hay virus ;) .

12.- Tienes una gran comunidad tras de ti para ayudarte con todos tus problemas, además esta gran comunidad ayuda a la mejora continua.

13.- Es unix, multiusuario y funcionan los 64 bits :D .

14.- Ordenadores “viejos”, pueden correr ubuntu como si nada (intenta con windows xD).

15.- Cada vez es mas fácil de usar, incluso de instalar, diría que es mas fácil y rápido de instalar que Windows. Además la instalación de programas es también sencilla, puedes hacerlo con GUI, o por consola.

16.- Los programas hacen su función sólo y exclusivamente, lo que los hace mucho más ligeros y eficaces.

17.- No hay necesidad de desfragmentar :D .

 

y para terminar, estas son mis razones más fuertes: 

18.- Lo uso por que me gusta y por curiosidad, me llama la atención y me siento bien usándolo, me gusta su rendimiento, y la forma en que me responde. Aun que unas cosas aparentan ser tediosas y latosas, creo que si lo analizamos, es necesario para tener un sistema operativo tan bueno. 

19.- Lo uso por que lo vale!!! :D … y tu por que lo usas? .

 

Saludos, 

Adrián Pastor López Monroy (iceman)


Apr 26 2008

Aprovecha todo…Desarrollo de software Windows – Linux, un punto de vista…

iceman

Hace unos días, mientras esperaba a un maestro en la planta alta del centro de computo del ITC, tuve la oportunidad de oír una conversación de unos chavos, que según alcance a escuchar, se decían “Linuxeros de hueso colorado”, me llamó la atención su conversación, porque a decir verdad me parece muy interesante toda esa onda de Linux y desde hace ya casi un año y medio, Ubuntu es el distro de Linux que más he usado. La decisión de instalar de base a Linux, fue debido a que por aquellos tiempos quería entrar en ese terreno y ver si en realidad ese tal “Linux” era tan bueno como me lo pintaban, y aun que al inicio fue tedioso (por que difícil no es) , los resultados que obtuve fueron muy satisfactorios, y hasta hoy no me deja de sorprender y gustar. Y en mi opinión personal, creo que es el mejor y más interesante sistema operativo hoy en día.

Antes de comenzar quiero aclarar que yo no me considero un amante de un sistema operativo en especifico (SO), dígase Windows, Macintosh, Linux, etc. y si bien no soy un mago de Windows, ni mucho menos un gurú de Linux, tengo cierto conocimiento sobre ambos sistemas operativos, y he tenido la oportunidad de probar ambos, y ver algunos pros y contras.

Windows es un SO muy vulnerable y poco estable en comparación con otros, debido a que lo he probado y me consta, pero mantengo una postura “neutral” hacia ambos sistemas operativos, y así con todos los lenguajes de programación y tecnologías que conozco. El motivo, se debe a que no me gusta quedarme con una sola forma de hacer las cosas, y mucho menos “casarme” con un método, siempre me gusta incursionar en nuevas alternativas y soluciones, sin hacer a un lado toda posibilidad, además me gusta y se me facilita aprender nuevas cosas en cuestión de tecnología informática. Una vez que creo que mi postura ha quedado claramente establecida, comenzaré con lo que realmente quiero decir.

Durante el tiempo que estuve escuchando a estos estudiantes, note que cuando decían “Windows”, o de alguna forma uno de ellos tocaba un tema relacionado con este sistema operativo, parecía como si les quemara, como si estuviera maldito, o como si fuera algo innombrable. Se me hizo muy curioso, sobre todo por la forma en que se expresaban de este. Después de un rato, cuando ya me dirigía a clases, me puse a analizar y recordar esa plática, y me di cuenta que la gran mayoría de personas que aman a Linux hacen exactamente lo mismo. En otras palabras, hacen a un lado a Windows, sin importar de lo que se trate. Y empezando por ahí, yo creo que Microsoft puede tener buenas herramientas y tecnologías (aunque sean unas pocas), y no hay que hacerlas aún lado por que solo sean de Microsoft, hay que estar abierto a toda posibilidad.

Pues bien aquí está mi gran interrogante, ¿Por qué algunos “Linuxeros” hacen eso?, y he aquí mi punto de vista personal al respecto…

Para empezar, se lo que es Windows y lo que no es, y hoy por hoy Microsoft sigue siendo el magnate de la computación a nivel mundial, y el anticristo (Bill Gates) continua teniendo gran poder, dominando el mercado mundial (no me interesa si en “X” años, “X” persona o corporación dice que ya no será así, por eso hay que saber de todo, pero la cosa es que hoy Microsoft es el gigante) , así que para comenzar lo que más se comercializa en cuestión de software va dirigido hacia el producto de Microsoft, le pese a quien le pese. Y comenzando por ahí, creo que es uno de los puntos más fuertes de Microsoft, “Casi todo va dirigido a Windows”.

Sé lo que están pensando, – ”pero guindous es una &%$#)(/”­ – pero aun así con todo, es lo más comercial y quieras o no es también una gran oportunidad de producir y crecer, y probablemente los muchos o pocos conocimientos que tengas de él o sus tecnologías, en un futuro no muy lejano, te estén dando de comer, aun que duela.

Yo se que el software libre tiene mucha calidad, y es muy bueno, y mil cosas más…ya he leído mucho sobre eso y lo sé, pero… a final de cuentas lo que creo que es más importante es ser productivo, rápido y eficiente, generando soluciones de calidad que puedan satisfacer las necesidades del mundo real, puntos que usando cierto software para Linux o libre, indudablemente costaría más cubrir en ciertas cosas, sobre todo en tiempo y esfuerzo.

Y aun que digas – ”pero es gratis” – pues si es gratis, pero eso se paga con mas esfuerzo y más tiempo de desarrollo, debido a que desde mi perspectiva, el desarrollo sobre Linux o software libre es considerablemente más lento, en ciertos lenguajes o tecnologías. En este momento, me gustaría poder acotar algo..mientras escribo esto, considero que eres un ingeniero “estándar”, uno que desarrolla sistemas de manera independiente o en grupo, para empresas medianas o pequeñas, justo como sería un estudiante “normal” que acaba de egresar, y comienza a trabajar de manera independiente con su propia “empresa de desarrollo”, y no un ingeniero ya establecido que trabaja para Google, Microsoft, Amazon o algo así donde el trabajo está bien definido y dividido…digo esto porque sé que probablemente en esas grandes “compañías”, no usan herramientas IDE, como las que tenemos a nuestro alcance, quiero suponer que son más avanzadas, pero que al mismo tiempo hay grandes cantidades de código, en donde no tienen nada que ver los IDE’s que usan y todo se lo avientan a “capela”, y en este caso el desarrollo de software estaría a la misma velocidad sobre Windows o Linux, ya que no se usaría ningún IDE o cosas de ese tipo, y estoy de acuerdo que la elección seria el sistema operativo basado en unix,…y aun que para muchos nuestro objetivo es estar en puestos de ese nivel, muchos aun no lo estamos…así que no somos ese tipo de developers todavía, y tenemos que ver todas nuestras alternativas.

Bueno una vez eso en claro, creo que el desarrollo es más lento, porque por parte de Linux en ciertas tecnologías carecemos de herramientas que estén a la altura de las que hay en Windows, ya sea por que esa tecnología siempre ha estado en Windows o cualquier otra razón. Por ejemplo, el clásico ¿no?…Programar en C#,…por parte de Windows tengo el C# Express, que también es gratis y muy bueno (Ya no digo Visual Studio 2008, porque hasta con el Express es suficiente), y por parte de Linux tengo MonoDevelop, he visto ambos y a decir verdad lo que hago en C# express en 10 minutos, en el Mono me tardo 1 hora o más, por ejemplo una conexión a una base de datos, con todas las acciones necesarias (altas,bajas,consultas,etc.). Visual C# Express me genera código muy bien ordenado y entendible (como en web WYSIWYG), el cual puedo modificar si en cierto momento lo necesito. Tal vez dirás, “pero no sabes ni que hace por dentro el asistente y si lo haces desde abajo aprendes mas”, bueno en parte tienes razón en ese comentario, para un estudiante de ingeniería en sistemas que va en primer semestre o segundo, y que va incursionando en este mundo de la informática,…ahí si te creo ese comentario…pero por ejemplo en mi caso, me considero una persona con las bases bien firmes en POO, y con un conocimiento firme y fuerte, sobre el lenguaje JAVA, gracias a esto y a que logre entender toda la filosofía en este lenguaje, y el porqué de las cosas , no necesito saber más que la sintaxis básica, para programar aplicaciones de calidad en cualquier otro lenguaje orientado a objetos, como C#, C++,Ruby, Python, SmallTalk, etc. debido a que es la misma filosofía P y por lo general su sintaxis habla por sí sola ;P . Es por eso que puedo entender al 100% lo que está haciendo C# Express, dentro de mi aplicación.

Aquí, me gustaría resaltar otro punto, ya que andamos en esto, para Microsoft contamos con una cantidad grande de IDE´s potentes para un solo lenguaje, y cuyas contrapartes en Linux suelen ser un tanto más limitados, además de que hay menos variedad(estoy consciente que NO aplica para todos los lenguajes o tecnologías), así que hay que aprovechar esos IDE’s…hacer aplicaciones usando solo editores de texto simples, o dígase algún otro que no sea un IDE potente, es buena idea cuando estas empezando con un nuevo lenguaje de programación en el que aun no incursionas y trabajas con aplicaciones y ejercicios sencillos, debido a te sirve para aprender la sintaxis de este y como dice un amigo “asi se hacen los hombres”,…pero aun que es bueno saberse toda la sintaxis de “X” lenguaje de programación, desde mi punto de vista creo que no es tan esencial, sobre todo en estos terrenos de la informática, donde todo rápidamente cambia, a menos que sea un lenguaje con el cual trabajas y desarrollas la mayoría de tus aplicaciones para tu trabajo. Lo que sí es importante, es comprender y aplicar la filosofía o paradigma que dicho lenguaje usa, porque este te servirá, para futuros lenguajes que quieras aprender,…a diferencia de la sintaxis, que es especifica de este. No te hagas la vida de cuadritos y aprende a sacarle lo máximo a esas herramientas, es como si quisieras usar “VI”, en vez de OpenOffice, ¡¡¡por favor!!!.

Algo que me es interesante, es cuando le pregunto a unos compañeros,…”oye y en que sabes programar”, y me dicen,…”Se programar en Java, Ruby, C, C++, PHP, ASP, etc.”, pero lo interesante no es la respuesta, si no la forma en que la dicen,… la dicen como si el hecho de saber programar en muchos lenguajes te hiciera “mejor” (aclaro, algunos no lo dicen en esa forma), pero no creo que sea así, es mejor quedarse con la filosofía que tiene el lenguaje, porque así como ayer fue, basic, qbasic, Pascal, Lisp, etc, y hoy es Ajax, Python,Ruby, etc. mañana será cualquier otra cosa que salga nueva, y que podrá desplazar a cualquiera de ellos, y lo único que te quedará, será su filosofía, y no su sintaxis(se usan hoy pascal-fc y scheme para verificacion formal y demostraciones de teoremas que son la base de cualquier buen lenguaje que se jacte de ello). Así que si hoy, inviertes tiempo en aprender sintaxis de cabo a rabo, de “X” número de lenguajes de programación, ¡considéralo!, y piensa si con ese tiempo, mejor no podrías invertirlo en aprender algo diferente, o un concepto nuevo que indudablemente te puede servir más en un futuro. Lee más, pero no desperdicies tu tiempo preocupándote por saberte de memoria, esos lenguajes,…lo que importa es la idea y saber sacarles jugo,…y para eso no me tengo que aprender su sintaxis ;) .

Continuando con lo del desarrollo, a la hora de desarrollarle algo al cliente dudo que le interese mucho si usaste puro notepad, Scite, ultra edit o notepad++, él quiere su aplicación rápida y funcional, lo que me interesa es el ahorro de tiempo, y generación RAPIDA de código de calidad, cosa que no cumplo con MonoDevelop, o editores sencillos de ese estilo. Si bien puede haber o salir un plug-in para MonoDevelop que me haga esta tarea también,…de una u otra forma, Microsoft te da todo en la boca, sin pelearte con los programas o plug-ins beta que andan por ahí.

Ahora bien, teniendo esto en cuenta, imagínate que te piden un sistema de facturación, o un punto de venta y te dicen, sabes que tienes un mes,…dentro de ese mes tienes que hacer análisis y estudios para saber que harás, y además programarlo. Por decir un número, supongamos que la aplicación con todo y su interfaz grafica llevan 10,000 líneas de código, no te creo que sea buena idea, desarrollar todo eso en Scite, MonoDevelop,etc. o una herramienta de ese estilo, sobre todo si eres solo. Mientras que sobre Microsoft, eso no sería una limitante, y te puedes concentrar en lo que necesitas realmente olvidandote de muchos problemas comunes, usando C# Express y SQL Express, o cualquier otro manejador de bases de datos.

Lo mismo pasa con el desarrollo web, aun que en este es ya menos notable, pero por poner un ejemplo, DreamWeaver de adobe, es un muy buen paquete para el desarrollo y diseño web por parte de Windows o Quanta es bueno para Linux, con el mismo fin, usa esas herramientas y aligera un poco tu carga ;) . Digamos DreamWeaver, si bien de repente hace cosas medias destrampadas con tu código, hay que aprender a utilizarlo y a sacarle provecho, personalmente, lo manejo bien, y sé que cosas hacer y qué cosas no hacer para que no me genere código raro, se como editar el código y configurar DreamWeaver para usarlo y sacarle el máximo provecho, sin que me destruya la semántica de mi aplicación, a diferencia de usar un simple editor de textos, no lo haría en un editor de textos porque si tengo que hacer una aplicación de 10,000 líneas, no me gustaría estarme peleando en ver que me falto en el código HTML para que se vea bien la tabla, ¡¡¡por favor!!!, ya sé cómo hacer tablas, necesito algo que me las genera a la voz de ¡¡¡ya!!!, solo por citar el ejemplo más simple, creo que es suficiente para obtener mi idea. Así que sería buena idea ir usando esas aplicaciones, para saber configurarlos y usarlos al 100%, haciendo menos tedioso nuestro trabajo, reflexiona un poco y pregúntate si acaso no son herramientas para facilitarnos la generación de código de alguna u otra forma,…por favor, no reinventes la rueda amigo ;) .

Regresando con Microsoft, hay empresas que usan C# .NET 2.0, no solo porque es una buena plataforma, si no por que al ser de Microsoft, toda la gama de productos de él es manipulable, pueden manejar Windows con sus aplicaciones, pueden interactuar directamente con Office, o cualquier otra aplicación que quieran, esto le da mucha fuerza a .NET, debido a que por ejemplo desde C#, puede operar con word de cierta forma, haciendo objetos word, o lo mismo para Excel por citar un ejemplo. Y si llegan a esa compañía promoviendo otra cosa, como software libre, van a perder toda esa gama de productos que interactúa con el lenguaje como lo es C# .NET y Office, y quizá Office sea su herramienta base, en donde la empresa ha invertido para capacitación, software, etc. y le convenga mas quedarse con ella, que adoptar una nueva tecnología, entonces se tendrá que lidiar con productos Microsoft.

Comparto mi opinión para hacer ver que si bien Linux y todo el software libre son excelentes, hay que saber sacar partido de las otras tecnologías que existen y no cerrar nuestras mentes solo por que son de Microsoft, y saber con cual tecnología somos más productivos, si bien es genial ser un genio de Linux, no hay que hacer a un lado las otras posibilidades que tenemos, y aunque a veces cuestan, eso se compensa con el esfuerzo y tiempo de desarrollo que nos pueden facilitar, y tengamos en cuenta que solo cuestan una vez, y si nos pensamos dedicar a algo así, sería bueno contar con esas herramientas también, y por supuesto no dejar de ser participantes del software libre, por que en algún momento podrá ser el número 1, o tal vez Macintosh llegue a serlo, y tendremos que moverle a sus productos también.

Bien todo esto es mi punto de vista personal, no es mi intención ofender a nadie en ningún sentido y me gustaría mucho saber sus comentarios al respecto, hasta luego…

Saludos,

Adrián Pastor López Monroy.

<