Necesitaremos conocimiento de sistemas operativos si vamos a ser programadores, pero no te preocupes, no vamos a comenzar programando kernels, vamos a repasar las plataformas más populares, por cultura general y por que necesitamos conocer en que vamos a programar, por supuesto.
En computadoras de escritorio, hay tres grandes sistemas operativos: Microsoft Windows, Apple OS X y los *nix (Unix & GNU Linux). Los primeros dos son comerciales, del tercero los hay comerciales como gratuitos. El primero es de código cerrado (solo la compañía tiene acceso al código fuente) y los últimos pueden ser tanto de código cerrado (Unix) como de código abierto (cualquiera puede tener acceso al código fuente, como Linux).
Todo comienza con Unix, haya por los 60’s. A partir de este sistema operativo, basado en un estándar llamado POSIX, se crearon BSD que es una distribución cerrada y Linux, que es una distribución libre, que son implementaciones de Unix, es decir, re escritas inspiradas por Unix, basadas en POSIX, no utilizando el código de Unix.
Apple OS X fue desarrollado a finales de los 90’s, basado en NeXTSEP, un sistema Unix (POSIX). El sistema anterior (Macintosh de los 80’s) no estaba basado en Unix.
Windows es otra historia, es un sistema operativo no basado en Unix, sino extendiendo MS-DOS, y tratando de “copiar” las interfaces de Macintosh, para competirles en este mercado. Actualmente, solo Windows no está basado en Unix (POSIX).
En el mercado móvil (teléfonos inteligentes), cada vez más emergente, hay dos sistema operativos que destacan, aunque un tercero insiste en hacerles la competencia. Cada uno de los tres más populares, están basado o derivados de su versión de escritorio:
¨ iOS de OS X
¨ Windows Phone / Mobile de Windows
¨ Android está basado en Linux.
Por lo tanto, tenemos, actualmente, en sistemas operativos, algo como esto:
Veamos ahora las diferencias más marcadas:
Ni Windows ni OS X son gratis, tienes que comprarlos. OS X libera su código luego de seis meses de cada versión, pero tienes que compilarlo (ya vimos lo que es un compilador, pero llegaremos a esto un poco más tarde).
La mayor parte de las distribuciones de Linux son de código abierto y hay una gran comunidad de personas que regalan su tiempo para distribuir versiones instalables de Linux.
Puedes instalar Linux y Windows en cualquier computadora compatible (que actualmente son casi todas), pero OS X esta diseñado para funcionar exclusivamente y/o de mejor manera con el hardware (las piezas físicas) de Apple.
Linux, al ser de código libre, tiene muchas distribuciones. Los otros dos, solo tienen una distribución, aunque muchas versiones.
Por lo tanto, en distribuciones, tenemos algo como esto:
Muy bien, ya sabemos en donde estamos por los sistema operativos, pero ¿Para que queremos saber todo esto? Pues bien, por regla general, un programa para Windows no corre en Linux, ni en Mac y viceversa, como lo vimos anteriormente.
Como los tres son bastante populares, y no se que sistema operativo estas usando tu (muy probablemente sea Windows, pero uno nunca sabe, puede que seas un Macero o Linuxero), pues tenemos que programar en algún lenguaje “multiplataforma”, para que no haya problemas.
La primera versión de esta serie de post la escribí para usuarios de Windows, con la clara intención de que no se tuviera que instalar nada, pero rápidamente me di cuenta de que era un error excluir a los otras dos plataformas, no es algo con lo que me sienta cómodo.
Yo aprendí en Windows, como la mayoría de estudiantes y oficinistas en México, pero ahora me siento cómodo utilizando las tres plataformas, aunque mi favorita por mucho es Linux.
Como te decía, en la primera versión, enfocada a Windows, decidí que no instalaras nada y utilizaba primero DOS, luego Javascript desde la consola, luego en el explorador. Posteriormente tenía planeado enseñarte a compilar con C# y a hacer algo de desarrollo web con Php. Sin embargo, esto solo es posible para Windows (o con configuraciones avanzadas en los demás, o cambiando algunas cosas), y como quiero que cualquier persona, no importa la arquitectura que utilice, pueda aprender, decidí cambiar esto.
El segundo punto para decidir nuestro lenguaje es la facilidad de uso, debe tener una curva de aprendizaje pequeña, ser fácil, intuitivo y que nos enseñe buenas prácticas a la hora de escribir nuestro código. La respuesta estuvo allí todo el tiempo, solo hay un lenguaje así: Python.
Python es multiplataforma, corto, simple, elegante y estricto a la hora de indentar (organizar nuestro código con sangrías—espacios entre una línea y otra para denotar organización —). Es el lenguaje perfecto para nuestros propósitos. Así que en los próximos post usaremos Python.
Un saldo a todos chic@s!
L.
admin
July 27, 2017
La Alegría de Programar
No Comment