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
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.
<
Recent Comments