jueves, 21 de mayo de 2015

Cuarta Estancia - El Lenguaje de Programación y el Software Libre

El Lenguaje de Programación y el Software Libre.

Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras.Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación.


También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
•El desarrollo lógico del programa para resolver un problema en particular.
•Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
•Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
•Prueba y depuración del programa.
•Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten estructurar el contenido de los documentos).
Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural. Una característica relevante de los lenguajes de programación es precisamente que más de un programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos para realizar la construcción de un programa de forma colaborativa.

Clasificación

En la actualidad hay más de 100 lenguajes de programación diferentes. No vamos a definir todos los lenguajes de programación que existen porque son muchos pero sí os hablaremos de los más importantes y para qué se utilizan.
Un ordenador no entiende un lenguaje como el que utilizan los humanos, sino que el lenguaje que entiende se llama “lenguaje binario” o “código binario” o “código máquina” que consiste en ceros y unos básicamente, es decir, una máquina sólo utiliza los números 0 y 1 para codificar cualquier acción a tomar. Si quieres conocer mejor este sistema de numeración te recomendamos este enlace: Sistema Binario


Se clasifican en dos tipos:
•Los Lenguajes de Programación de Bajo Nivel: que son aquellos utilizados fundamentalmente para controlar el “hardware” del ordenador y dependen totalmente de la máquina y no se pueden utilizar en otras máquinas. Están orientados exclusivamente para la máquina Estos lenguajes son los que ordenan a la máquina operaciones fundamentales para que pueda funcionar. Utiliza básicamente ceros, unos y abreviaturas de letras. Estos lenguajes también se llaman de código máquina. Son los más complicados,  pero solo los usan prácticamente los creadores de las máquinas. Con este tipo de lenguajes programan la asignación y liberación de memoria, el uso de punteros, el poder usar paso por valor y por referencia, la creación de tipos de datos, etc.

•Los Lenguajes de Programación de Alto Nivel: Estos lenguajes son más parecidos al lenguaje natural humano y no dependen de la máquina y sirven fundamentalmente para crear programas informáticos que solucionan diferentes problemas. Son los más usados por los programadores y por todo del mundo que realiza programas informáticos.

   TIPOS DE LENGUAJES DE PROGRAMACION
LENGUAJES DE PROGRAMACIÓN MÁS USADOS
•Lenguaje de Programación “HTML”: Este lenguaje es con el que se crean las páginas web, por ejemplo, que básicamente es un conjunto de etiquetas que sirven para definir el texto y otros elementos que puedes ver en las páginas web. HTML significa HyperText Markup Lenguaje («lenguaje de marcas de hipertexto») y es muy fácil de aprender. Luego ya depende de si queremos una web más o menos elaborada podremos profundizar en este lenguaje. Por ejemplo, el lenguaje de programación CSS (Cascading Style Sheets) son hojas que sirven para dar “estilo” a las páginas web como su color, definir su fondo, tipos de letra…etc
•Lenguaje de Programación “SQL”: Este lenguaje está creado para realizar consultas a bases de datos principalmente. SQL son las siglas de Structured Query Lenguaje ( Lenguaje estructurado de consultas) y se utiliza para páginas web y también para aplicaciones de ordenadores, para manejar datos sobre todo. (Introducir datos, actualizar datos, eliminar o seleccionar datos) 


•Lenguaje de Programación “Java”: Probablemente éste podría ser el favorito de más de uno ya que es el lenguaje utilizado para programas punteros como herramientas, juegos y aplicaciones. Este lenguaje de programación se utiliza en miles de millones de dispositivos móviles y aparatos de televisión y en más de 850 millones de ordenadores personales de todo el mundo. Java está instalado en inmensidad de aplicaciones y sitios web. Probablemente también te suene JavaScript, que es otro lenguaje utilizado para crear pequeños programas encargados de realizar acciones dentro de una web como por ejemplo para crear efectos especiales o para definir interactividades con los usuarios.
•Lenguaje de Programación “C”: Este lenguaje de programación está orientado a los Sistemas Operativos y es muy eficaz y con él podemos crear Softwares de sistemas operativos como Windows o Linux y también para aplicaciones. También sirve para experimentos informáticos, físicos, matemáticos…etc. Es también muy utilizado en robótica con el que se programan simuladores, etc.
•Lenguaje de Programación “XML”: Este lenguaje es también un lenguaje de etiquetas como el HTML, pero a diferencia de éste, el lenguaje XML separa el contenido de la presentación, es decir, XML se preocupa del significado del texto que define el HTML. Te da el dato + el significado de ese dato, mientras que el HTML te da el dato nada más. El XML es un complemento fundamental al HTML. 

•Lenguaje de Programación “PHP”: El PHP es un lenguaje de programación similar al HTML que nos sirve fundamentalmente para páginas web y se puede combinar con el lenguaje HTML. El lenguaje PHP se basa en los “scripts” que es un guion de órdenes o instrucciones que recibe un servidor de una página web para leer su código fuente.
Así podríamos seguir definiendo múltiples y variados lenguajes de programación. Como verás son verdaderamente útiles y necesarios y sirven prácticamente para cualquier cosa.
Casi todos los lenguajes de programación tienen unos fundamentos o bases comunes, esto hace que sea relativamente fácil aprender un lenguaje nuevo si ya conocemos otro. En el siguiente enlace puedes aprender estos fundamentos básicos: Fundamentos de Programación.
Si quieres aprender a programar te recomendamos una primera experiencia con Robomind muy sencillo, para niños, pero mejor empezar por aquí para no desilusionarnos desde el principio. Es muy sencillo para niños. Luego puedes seguir con MSWLOGO. Los dos son gratuitos y fáciles.


Lenguaje de Alto Nivel

•Los Lenguajes de Programación de Alto Nivel: Estos lenguajes son más parecidos al lenguaje natural humano y no dependen de la máquina y sirven fundamentalmente para crear programas informáticos que solucionan diferentes problemas. Son los más usados por los programadores y por todo del mundo que realiza programas informáticos.
En un lenguaje de alto nivel sólo tengo que poner sqt(x), que sería una función predeterminada, calcular el cuadrado de x.

Si fuera de bajo nivel, yo mismo tendría que crear la función sabiendo como funciona el cuadrado de un número:
cuadrado(x) = x * x
Como vemos para aprender a programar con un lenguaje de alto nivel debemos conocer el propio lenguaje que utiliza y todos sus comandos, en el ejemplo saber que sqt realiza el cuadrado de un número.

Para no extendernos mucho en esto que es bastante amplio, pasaremos a explicaros algunos de los lenguajes de programación más usados en las máquinas que más utilizamos.


Lenguaje de Bajo Nivel

Los Lenguajes de Programación de Bajo Nivel: que son aquellos utilizados fundamentalmente para controlar el “hardware” del ordenador y dependen totalmente de la máquina y no se pueden utilizar en otras máquinas. Están orientados exclusivamente para la máquina Estos lenguajes son los que ordenan a la máquina operaciones fundamentales para que pueda funcionar. Utiliza básicamente ceros, unos y abreviaturas de letras. Estos lenguajes también se llaman de código máquina. Son los más complicados,  pero solo los usan prácticamente los creadores de las máquinas. Con este tipo de lenguajes programan la asignación y liberación de memoria, el uso de punteros, el poder usar paso por valor y por referencia, la creación de tipos de datos, etc.

Software Libre

Software libre (en inglés free software, aunque esta denominación a veces se confunde con «gratis» por la ambigüedad del término free en el idioma inglés, por lo que también se usa libre software) es la denominación del software que respeta la libertad de todos los usuarios que adquirieron el producto y, por tanto, una vez obtenido el mismo, puede ser usado, copiado, estudiado, modificado, y redistribuido libremente de varias formas.2 Según su principal impulsora, la organización Free Software Foundation, el software libre se refiere a la seguridad de los usuarios para ejecutar, copiar, distribuir y estudiar el software, e incluso modificarlo y distribuirlo modificado.

Un programa informático es software libre si otorga a los usuarios todas estas libertades de manera adecuada. De lo contrario no es libre. Existen diversos esquemas de distribución que no son libres, y si bien podemos distinguirlos en base a cuánto les falta para llegar a ser libres, su uso bien puede ser considerado contrario a la ética en todos los casos por igual.2

El software libre suele estar disponible gratuitamente, o al precio de coste de la distribución a través de otros medios; sin embargo no es obligatorio que sea así, por lo tanto no hay que asociar «software libre» a «software gratuito» (denominado usualmente freeware), ya que, conservando su carácter de libre, puede ser distribuido comercialmente. Análogamente, el software gratis o gratuito incluye en ocasiones el código fuente; no obstante, este tipo de software no es «libre» en el mismo sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa.

Tampoco debe confundirse software libre con «software de dominio público». Éste último es aquel que no requiere de licencia, pues sus derechos de explotación son para toda la humanidad, porque pertenece a todos por igual. Cualquiera puede hacer uso de él, consignando su autoría original. Este software sería aquel cuyo autor lo dona a la humanidad o cuyos derechos de autor han expirado. Si un autor condiciona su uso bajo una licencia, por muy débil que sea, ya no es del dominio público.


Programas de software libre

Mozilla Firefox: Navegador Web con todo lo que puedes esperar, una cantidad inmensa de extensiones, que pueden ayudarte a lo que necesites, además es rápido y fiable, actualizaciones habituales.
GIMP: Editor gráfico, muy potente, y con muchas capacidades, se pueden obtener grandes resultados con un poco de empeño.
Notepad++: Es para mi, una herramienta indispensable, siempre lo instalo, en todos los equipos que uso, ya que lee texto en practicamente, cualquier formato, y detecta palabras reservadas de multiples lenguajes de programación, y de etiquetas.
Open Office: El sustituto de la suite de ofimática de Microsoft, la verdad es que es completisima, y además plenamente compatible con la versión de la empresa de Redmond.
Eclipse: Es para mi, mi herramienta favorita para los programas Java, muy util, consume quizá muchos recursos, pero los resultados y sus complementos la hacen muy útil para el desarrollo de aplicaciones de todo tipo.
Videloan VLC mediaplayer: El reproductor por excelencia, potente , rápido y bajo consmo, además está lleno de sorpresas, cada día puedes descubirr una nueva funcionalidad.
Ubuntu Linux: El sistema operativo de Linux, más usable y cercano para el usuario habituado a Windows, es muy completo, y con unas pocas indicaciones, puede sustituir en todo al apreciado por todos Windows XP (digo apreciado, porque seamos realist,a la cantidad de nosotros que lo usamos).
aMSN: Comunicación en tiempo real, con cuentas de hotmail, yahoo, gmail… vamos un programa de mensajeria instantanea.
Thunderbird: La mejor forma de no usar outlook, nuca más, si lo pruebas, te lo quedas para siempre.
ClamWin: Antivirus, puede que no sea lo mejor del mercado, pero es abierto, y eso le da un plus.
BitTorrent: Con lo de moda que está hablar del P2P, con un poco de suerte desligamos la mula, como único programa mundial de P2P. ;)
TrueCrypt: Realmente nadie podía esperar, que uno de criptografía no fuera a caer, en este listado, cifra PenDrives, discos duros, carpetas, lo que quieras. Es una gran herramienta, para los que nos gusta la seguridad.
PDFCreator: sirve para crear una impresora virtual, que imprime, lo que sea en formato PDF, muy util, que digo realemnte util, además aunque suene a chino, es facilísmo de utilizar.
musikCube: Reproductor de música, y control de bibliotecas tipo iTunes.

No hay comentarios.:

Publicar un comentario