viernes, 9 de julio de 2021

¿Qué es un lenguaje de programación?

Un lenguaje de programación, consiste en todos los símbolos, caracteres y reglas de uso que permiten a las personas comunicarse con las computadoras. Existen varios cientos de lenguajes y dialectos de programación diferentes. Algunos se crean para una aplicación específica, otros tienen un carácter general. En cualquier caso los lenguajes de programación tienen instrucciones clasificadas por categorías como: Entrada/Salida, Cálculo/Manipulación, Lógica/Comparación, Almacenamiento/Recuperación.

Aunque todos los lenguajes de programación permiten hacer casi las mismas cosas, existen muchas diferencias en los conjuntos de instrucciones que permiten realizar dichas operaciones y en los símbolos definidos para llevar a cabo cada tarea. Existen tres tipos principales de lenguajes de programación: Lenguaje de bajo nivel, lenguaje de medio nivel y lenguajes de alto nivel.

Lenguaje de programación Python
Fuente: Elaboración propia.

La programación consiste en desarrollar programas (software) para procesar información, una computadora es totalmente inútil si no dispone de programas capaces de procesar adecuadamente la información, para que dicha información sea procesada, es necesario pensar, construir y crear un programa  que al ejecutarse complete las tareas para las que fue diseñado. Esta tarea de programar no está exenta de errores, y es allí donde se requiere de personas capacitadas para pensar utilizando la lógica de programación implementada por el lenguaje de programación que se está utilizando, realmente sería imposible dominar todos los lenguajes de programación que existen en el mercado, es por ello que los programadores expertos eligen de entre cientos, uno o algunos que sirvan a los propósitos de sus tareas específicas ya que entre mayor sea su nivel de dominio de los lenguajes seleccionados, más fácil será completar las tareas que le sean asignadas.

Un objetivo fundamental de la programación es que los programas se codifique de modo tal que si un programador inicia el desarrollo de un programa y por algún motivo lo abandona, cualquier otro programador sea capaz de continuar con el trabajo y finalizarlo, por desgracia, no todos los que aprenden a programar siguen las recomendaciones de diseño y codificación, y existe infinidad de programas que son difíciles de mantener funcionando debido principalmente a la falta de método en su diseño.

Existen dos tipos de lenguajes de programación, los lenguajes interpretados y los lenguajes compilados, la diferencia principal radica en que los programas interpretados pueden ejecutarse en diferentes entornos con pocas modificaciones pero generalmente se ejecutan más lento, y los programas compilados son específicos de las plataformas en las que fueron diseñados, en un principio todos los lenguajes solían ser compilados, ya que no existía tanta necesidad de compartir datos fuera de instalaciones específicas; pero hoy día con el ambiente interconectado de trabajo que nos permite disfrutar Internet, la mayor parte de las aplicaciones son interpretadas y pueden ejecutarse independientemente del ambiente de trabajo en el que deseemos visualizarla, como ejemplo están los contenidos manejados por  las aplicaciones de los teléfonos móviles que acceden a datos almacenados en la nube y que pueden ser visualizados en dispositivos muy distintos como son la tableta, el celular, la computadora de escritorio y las televisiones inteligentes.

Criterios de selección de lenguajes de programación.

Dado que existen muchos lenguajes de programación y muchas diferencias entre la orientación de los mismos, es recomendable seguir algunos consejos antes de seleccionar aquel que deseamos aprender.

  • Utilidad. Fácil de aprender.
  • Rendimiento. Velocidad de ejecución de los programas creados.
  • Portabilidad y flexibilidad. Posibilidad de crear aplicaciones que se ejecuten en distintos entornos operativos.
  • Continuidad. Que tenga el respaldo de una amplia comunidad de programadores que permita asegurar que estará disponible mucho tiempo y que será actualizado periódicamente.

Clasificación de los Lenguajes.

Lenguaje de bajo nivel.

Este tipo de lenguaje son específicos de la máquina en la que se encuentran, generalmente son los más eficientes para realizar las tareas en el equipo, pero nos obligan a la dependencia absoluta de la plataforma en la que programamos. Generalmente no son muy amigables con el programador y obligan al mismo a tener un amplio conocimiento del hardware.

Lenguaje de medio nivel.

Este tipo de lenguajes son más amigables con el usuario pero permite al mismo seguir teniendo un amplio dominio de la plataforma en la que programa, aunque no es tan fácil migrar al 100 por ciento, un programa a cualquier otro equipo sin modificar partes del código.

Lenguaje de alto nivel.

Este tipo de lenguajes son muy amigables con el programador y le permiten moverse de forma casi transparente entre diferentes plataformas, el programador gana en portabilidad, pero pierde en cuanto a dominio del equipo ya que muchas cosas que en otros lenguajes podía gestionar de forma directa, en este tipo de lenguajes quedan ocultos a su dominio y por lo general los programas creados en este tipo de lenguajes tienen un menor desempeño.

Ejemplos de lenguajes de programación. 

Lenguaje C, C++, C#

Estos lenguajes de programación derivan uno del otro pero, tienen diferencias muy claras.

Lenguaje C

Fue creado por Dennis Ritchie a principios de 1970, se basa en el paradigma de la programación estructurada. Pretende ser un lenguaje de propósito general que dé al programador control total sobre sus programas, permitiendo la programación a bajo nivel, pero a la vez, proporcionando estructuras de control de alto nivel que faciliten las tareas de programación. Se usó por primera vez en sistemas UNIX, en 1978 alcanzó gran popularidad y se convirtió en el lenguaje de referencia para la comunidad informática.

Lenguaje C++

Creado por Bjarne Stroustrup durante la primera mitad de los años 1980 con el fin de dotar a C de mecanismos que le permitieran usar el paradigma de la programación orientada a objetos. Su nombre original era C con clases, pero finalmente se decidió hacer un juego entre el nombre del lenguaje y uno de sus operadores más comunes (autoincremento ++) quedando su nombre como C++; inicialmente era totalmente compatible con C, es decir cualquier programa escrito en C se ejecutaba en C++, aunque lo contrario no siempre era cierto. Actualmente esa compatibilidad es menor, pero aún es significativa.

Lenguaje C#

Creado por Anders Hejlsberg en el año 2000 como una versión mejorada de C++ (C++++) C#; su objetivo es permitir la programación a alto nivel, la idea es que las capacidades de bajo nivel de C y C++ rara vez son utilizadas por los programadores, para los que el riesgo de manipular directamente la memoria y otros recursos es algo innecesario y peligroso; nace como un intento de Microsoft por hacer frente a la popularidad de Java, lenguaje que había arrebatado gran cantidad de adeptos a C y C++, debido a su facilidad de uso; además, se decidió hacerlo el lenguaje nativo de la plataforma .Net de Microsoft (Windows), originalmente C# estaba fuertemente basado en C++, pero con el paso del tiempo se ha ido separando y aún cuando mantiene compatibilidad, ya no es completa. C# es uno de los lenguajes más populares para programar aplicaciones para Windows.

BASIC (Beginners' All-purpose Symbolic Instruction Code)

El lenguaje BASIC surge con la finalidad de hacer fácil la programación para los principiantes, su nombre es un acrónimo en inglés de “código simbólico de instrucciones de propósito general para principiantes”, fue originalmente diseñado en 1964 por John Kemeny y Thomas Eugene Kurtz para estudiantes y profesores no científicos, de este lenguaje  han derivado cientos de versiones en todas las plataformas existentes, muchos nuevos lenguajes de programación, ya no directamente relacionados con BASIC, toman su modelo como  Gambas en GNU/Linux o Microsoft Visual Basic .NET en Windows.

Una de las desventajas más notables de BASIC era no manejar el acceso directo a archivos, sino depender de una aplicación externa para acceder a ellos.

Los ocho principios de BASIC:

  • Facilidad de uso.
  • Propósito general.
  • Capacidad de añadir características avanzadas, sin complicar el lenguaje.
  • Ser interactivo.
  • Proveer mensajes de error claros y amigables.
  • Desempeño.
  • No requerir conocimientos del hardware donde se ejecuta.
  • Proteger al usuario del sistema operativo.

Visual Basic

Con la llegada de Microsoft Visual Basic que usaba todas las sentencias, forma de manejo y tipos de datos de Basic, pero con mayor potencia, Visual Basic se convirtió en uno de los lenguajes más utilizados para desarrollar soluciones en la plataforma Windows para el año 2002 se estimaba que cerca del 70% de los programas desarrollados para Windows se programaba en Visual Basic; en 2002, y con la introducción de la plataforma .NET, Visual Basic se orienta a Objetos y se convierte en multiplataforma. Hoy día es parte de la suite de programación conocida como Visual Studio, y comparte muchas instrucciones comunes con otros lenguajes basados en .NET, más que conservar las estructuras del Basic original.

Java

El lenguaje para la programación en Java, es un lenguaje orientado a objeto, de una plataforma independiente, fue desarrollado por la compañía Sun Microsystems en 1995, con la idea original de usarlo para la creación de paginas WEB. Java permite crear complementos tipo Apps que se ejecutan en un navegador o bien aplicaciones independientes más complejas como procesadores de textos, o juegos.

La programación JAVA permite crear aplicaciones orientadas a una arquitectura cliente/servidor, lo que hace capaz a un programa de ejecutarse en múltiples ordenadores simultáneamente, ejecutando un mismo proceso, es decir distribuyendo el trabajo.

JavaScript

Lenguaje de programación interpretado del lado cliente (principalmente), está orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. Se utiliza principalmente como parte de los navegadores (lado cliente) para dotar de funcionalidad a la páginas Web y permitir que sean dinámicas. Fue creado en 1995 por Netscape Communications Corp (Mozilla Foundation).

Todos los navegadores modernos interpretan el código JavaScript integrado en las páginas Web. Para interactuar con una página Web se provee JavaScript bajo el Modelo de Objetos Documento. Actualmente JavaScript se usa para interactuar con los servidores de Internet en conjunto con otras tecnologías del lado servidor como Ajax.

Python

Es un lenguaje de programación interpretado cuya filosofía es un código legible. Se trata de un lenguaje multiparadigma, soporta programación imperativa y orientada a objetos, así como en menor medida programación funcional. Es un lenguaje de tipado dinámico y multiplataforma. Posee licencia de código abierto.

Fue creado en 1991, por Guido van Rossum, su nombre proviene de la adicción de su creador por los humorista británicos Monty Python.

Filosofía de Python

  • Bello es mejor que feo.
  • Explícito es mejor que implícito.
  • Simple es mejor que complejo.
  • Complejo es mejor que complicado.
  • Plano es mejor que anidado.
  • Disperso es mejor que denso.
  • La legibilidad cuenta.
  • Los casos especiales no son tan especiales como para quebrantar las reglas.
  • Lo práctico gana a lo puro.
  • Los errores nunca deberían dejarse pasar silenciosamente.
  • A menos que hayan sido silenciados explícitamente.
  • Frente a la ambigüedad, rechaza la tentación de adivinar.
  • Debería haber una - y preferiblemente sólo una - manera obvia de hacerlo.
  • Aunque esa manera puede no ser obvia al principio a menos que usted sea holandés.
  • Ahora es mejor que nunca.
  • Aunque nunca es a menudo mejor que ya mismo.
  • Si la implementación es difícil de explicar, es una mala idea.
  • Si la implementación es fácil de explicar, puede que sea una buena idea.
  • Los espacios de nombres (namespaces) son una gran idea ¡Hagamos más de esas cosas!.

Bibliografía.

Fundamentos de la computación, (N/D), Instituto Politécnico Nacional, Unidad profesional de ingeniería y ciencias sociales y administrativas.

¿Qué es un Blog?

Un blog es una forma muy sencilla y fácil de hacer una página web y gratis. 

Esta página suele ser muy fácil de administrar por parte de su autor y las publicaciones guardan un orden cronológico.

Los blogs han supuesto una revolución en Internet. Una democratización de la información (The Heritage Foundation).

Cualquier usuario puede abrir un blog en cuestión de pocos minutos y empezar a publicar contenidos visibles en todo el mundo y en tiempo real.

Algunos blogueros (como Arianna Huffington) han superado a medios tradicionales de la reputación de The New York Times.

Un blog es una ventana al mundo por la que puedes enseñar lo que piensas, lo que haces, lo que sientes, lo que te gusta.

Características de los blogs

  1. Normalmente presentan contenidos en orden cronológico, aunque también se puede acceder a los contenidos con nubes de etiquetas, cuadros de búsqueda, etc.
  2. Normalmente tienen carácter informal y, muchas veces, personal. Pero también abundan los blogs corporativos e institucionales, incluso blogs personales que acaban de convertirse en auténticos medios de comunicación como el caso de The The Huffington Post.
  3. Lo lógico es que su actualización sea periódica y frecuente.
  4. Su gestión es muy sencilla. No requieren la intervención de profesionales o informáticos. Cualquier persona sin conocimientos informáticos puede llevar la gestión y administración del blog.
  5. Diversidad de la blogosfera. El formato, estilo y contenidos de los blogs pueden ser muy diversos. Como muchas veces son blogs personales, pues el estilo y los contenidos reflejan los de su autor en cada caso.
  6. ¿Cuál es la diferencia entre un weblog y una página personal? La gran diferencia radica en que los blogs son actualizados de forma más rápida, y no requieren conocimiento previo de html, ya que la mayoría de sitios que ofrecen blogs gratis ofrecen plantillas hechas en las que es muy fácil presentar la información que cada uno quiera publicar. También su formato implica algunas limitaciones que no tienen las páginas webs.
  7. Influencia y reputación de los bloggers. Los autores "bloggers" han adquirido popularidad y estatus social, no sólo en noticias. En esta materia por ejemplo, uno de los bloggers (autor de un blog) pioneros más famosos fue Salam Pax, alias el "Blogger de Bagdad", que ofrecía información independiente a través de su blog durante la guerra de Irak.
  8. Un blog es algo muy práctico. Es como una libreta, un diario, una bitácora digital. La mejor forma de conocer qué es un blog es leer algunos y luego hacer uno tú mismo. Puede ser un sitio informativo, un sitio en el que un experto ofrece información sobre su campo de especialidad con otros expertos, o simplemente un desahogo personal.
  9. El tráfico y la popularidad de los distintos blogs es muy variable. Algunos blogs tienen literalmente miles de lectores, otros sólo son leídos por sus autores. Los blogs dado su formato están bien pensados para lograr un posicionamiento "natural" en los buscadores como Google lo que aumenta su visibilidad.
  10. Impacto de los blogs en el desarrollo de nuevas herramientas. Los blogs han sido la inspiración de otras herramientas de gran impacto y popularidad. Los autores de Blogger crearon Twitter que frecuentemente se ha definido como "microblogging". El muro personal de una red social (Facebook, Google +...) está inspirado en el formato de un blog.

Partes y estructura de un Blog

La mejor forma de definir y explicar lo que es un blog es repasando su estructura y elementos que lo conforman.

El término fue acuñado por Jorn Barger en 1997. Y puede definirse como una página web sencilla consistente en unos párrafos de opinión, información, un diario personal, enlaces, organizados cronológicamente desde el más reciente al primero que se publicó.

La estructura básica de un blog

La estructura básica tiene los siguientes elementos que adelantamos en esta imagen:

Partes de un blog. Fuente: http://www.euroresidentes.com/Blogs/Bitacoras/img/estructura-de-un-blog.jpg
  • La cabecera, pie y lateral o laterales. recogen información sobre el blog, el autor, las temáticas o widgets que permiten funciones (buscar, suscribirse por correo, navegar por el blog, compartir en redes sociales...)
  • El post, artículo o entrada: La parte principal en la que el autor escribe el texto y otros contenidos como imágenes, gráficos, vídeos, audios, infografías...según la finalidad que se le dé al blog (diario personal, opiniones, noticias...).
  • Comentarios de los visitantes del Blog. La mayor parte de los blogs permiten a los visitantes realizar y dejar publicados comentarios para cada entrada o post. La interacción entradas (posts)- comentarios (comments). Representa todo un sistema de comunicación con los lectores que dejan sus impresiones y enriquecen el post
  • Algunos otros elementos de la estructura del blog
    • Su fecha. Fijada en hora, día, mes.... para cada post y ligada a la inmediatez de su publicación.
    • Su clasificación:
      • Temporal: la clasificación de las entradas por semanas, meses, años...
      • Temática: clasificada a través de etiquetas pestañas y nubes de términos por palabras clave que se asimilen a potenciales búsquedas.

Los blogs y la blogosfera: los enlaces

Los enlaces son un aspecto importante en los blogs. En la blogosfera se producen "conversaciones" facilitando la "referenciación" de la información en diferentes blogs.

  • Enlace permanente (permanent link), es un una "URL" fija que es generada por el sistema de blog y que se aplica a cada post o entrada. Aunque el post se archive, la URL se conserva en la base de datos para poder referenciar la entrada en cuestión individualmente.
  • Trackback (también denominado pingback). Es como un enlace inverso. Permite a un Blogger (A) notificar a otro Blogger B que ha sido comentado uno de los posts o entradas de B. Cuando B recibe la notificación desde el Blog A que un trackback ha sido creado, el sistema del Blog B crea un registro del enlace permanente del post referido. Trackback solo funciona si es activado en el blog referente y referido.
  • El Blogroll es una lista de enlaces de otros blogs que un blogger encuentra interesantes y útiles, Es similar a una lista de favoritos.
  • Sindicación. El software del blog facilita la sindicación de titulares o entradas vía RSS o Atom. La sindicación permite integrar estos titulares en otros blogs, páginas webs, o agregadores y lectores muy diversos.

Contenidos multimedia en los blogs

Conforme la tecnología se ha hecho más, los bloggers han empezado a incorporar contenidos multimedia en sus blogs, tales como:;

Foto - blogs, Compuestos principalmente por aportaciones fotográficas a las que se les añade algunos textos para contextualizar, las fotografías suelen ser escogidas y editadas de forma cuidadosa para atraer la mayor cantidad de seguidores.

Vídeo - blogs (vlogs), Compuestos principalmente por vídeos grabados o editados por el blogger, a los que puede o no acompañarse con textos complementarios, por lo general el material publicado ha sido editado cuidadosamente.

Mob - blogs, se denomina así cuando el blogger sube el material directamente desde su dispositivo movíl sin edición previa (mob-blogging).;

Música -blogs, archivos de música que pueden estar editados o bien ser contenido original del blogger.

Bibliografía.

Cómo hacer un Blog. (2016, May 18). Retrieved from https://www.euroresidentes.com/Blogs/Bitacoras/como_hacer_blog.htm

Tipos de tecnologías

 El sociologo estadounidense James D. Thompson fue uno de los primeros en proponer una clasificación para la tecnología, en 1967 en su libro "Organizaciones en acción" establece las basas para la teoría del desarrollo organizacional. A partir de su idea han surgido muchas clasificaciones de la tecnología basadas en los criterios más diversos, que tinenen que ver con el conjunto de conocimientos y aplicaciones de la misma en la práctica cotidiana de las empresas y las personas, algunas de estas clasificaciones son:

Diferentes tipos de clasificaciones de la tecnología.
Fuente: Elaboración propia.

Clasificación por su tangibilidad.

Tecnología blanda: es aquella que no es tangible como los son los conocimientos administrativos, la gestión, la supervisión y están relacionados con los procesos tecnológicos, pero sin sustancia material, también se consideran tecnologías blandas las intangibles como WiFi, Internet y el software.
Tecnología dura: ;es aquella que es tangible y entra en juego con la producción de materiales y otros elementos,  se manifiesta a través de las máquinas y  herramientasen general.

Clasificación por su adaptabilidad.

Tecnología fija: son aquellas que no suelen sufrir cambios en su utilización una vez que han sido implementadas, su fin es muy particular y no es viable cambiarlo sin incurrir en grandes costos, ejemplos de tecnología fija son las refinerías, las graveras, por lo general se consideran tecnología no reutilizable.
Tecnología flexible: son aquellas que pueden emplearse con facilidad para diversas finalidades sin necesidad de realizar grandes cambios o adaptaciones, ejemplos claros de ella son los procesadores, los circuitos integrados, los PLCs, la industria alimenticia, la industria automotriz y la industria farmaceútica.

Clasificación por su ámbito aplicación.

Tecnología de operación: esta tecnología surge de combinar distintas tecnologías así como de recombinar recursos y conocimientos, son de vital importancia para los profesionistas en el diseño de nuevos métodos de producción de bienes y servicios.
Tecnología de equipo: engloba procedimientos tecnológicos de distintas industrias fabricación, investigación, desarrollo; también incluye las herramientas en su conjunto y los procesos y conocimientos necesarios para trabajos tecnológicos, como por ejemplo la industria plástica y textil.
Tecnología limpia: es la que usa los recursos proporcionados por el medio ambiente en su justa medida, sin alterarlo significativamente de forma nociva. Estos recursos pueden ser solares, eólicos o similares, ejemplos de tecnología limpia son: las lamparas LED, y los paneles solares.
Tecnologías de materiales: engloba a todas aquellas tecnologías físicas como la electrónica, la química y la nuclear.
Tecnología de producto: es la que combina conocimientos y herramientas que permiten la creación de un producto específico y muchas veces personalizado, como la producción de automoviles, robots y maletas.

Clasificación por su grado de complejidad.

Tecnología adecuada: se clasifican aquí a aquellas tecnologías que requieren de pocos recursos como las estufas de lodo y arena, o las estufas solares, por lo general se usan en comunidades aisladas en las que las tecnologías convencionales no están disponibles o no cuentan con lo necesario para funcionar adecuadamente, su carcaterística principal consiste en su fácil adopción e implementación.
Tecnología de punta: es un termino que se utiliza para nombrar a las tecnologías más novedosas en cada ambito de aplicación de las mismas.
Tecnología intermedia o convencional: designa a toda aquella tecnología que es de uso común para casí todas las sociedades, se distingue por tener costos accesibles y materiales que resultan económicos, lo cual permite asegurar que este al alcance de la mayor cantidad de personas posibles.

Clasificación por área.

Existe otra forma común de clasificar a la tecnología y consiste en basarse en el área en la que son utilizados, de acuerdo a esta clasificación la tecnología se etiqueta por ramas como:
  • Militar.
  • Médica.
  • Espacial.
  • Nuclear.
  • Agrícola.
  • Educativa.
  • Industrial.

Consideraciones finales.

Es importante aclarar que estas clasificaciones de la tecnología corresponden unicamente una opción para organizarlas de modo lógico, no existe una que sea más válida que cualquier otra. Solo se hacen para tener una forma lógica de organizarlas y comprenderlas de modo más fácil.
La tecnología que utilizamos hoy en día suele ser más dificil de clasificar que antes, ya que esta tiende a la convergencia y la interoperabilidad, en el pasado existian claras fronteras entre las tecnologías estás solian no ser interoperables, sin embargo en la actualidad se busca que la tecnología sea de uso generalizado e interoperable, que pueda intercambiar información facilmente en base a lo que se ha denominado como IOT (Internet de las cosas) que permitirá que nuestros hogares y trabajos se automaticen  para hacer más fácil la vida de las personas, por desgracia estos avances no estan disponibles en todo el mundo por igual y existe una enorme brecha tecnológica entre los países avanzados y los países en desarrollo por cuestiones muy diversas. 

Bibliografía.

Equipo de expertos (2018) Los tipos de tecnología más representativos que debes conocer, Universidad Internacional de Valencia. disponible en universidad.com/los-tipos-tecnologia-mas-representativos-debes-conocer/.
José Luís R. (2018) Tipos de tecnología, 247Tecno, donde la tecnología se encuentra, disponible en 247tecno.com/tipos-de-tecnologia/.
Anonymous (2015) Los tipos de tecnología, disponible en diversidadtec.blogspot.com/2015/11/los-tipos-de-tecnologia-la-terminologia.html.