Software de programacion


Software de Programación.
Información sobre la plantilla
Sw programacion.jpg
Fecha de CreaciónDécada de 1950
Plataformas soportadasMultiplataformas
Sistemas Operativos compatiblesWindows, Linux, Mac.
IdiomaTodos los idiomas

Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas de informática, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluyen en forma básica: Editores de texto. Compiladores.

Definición Formal

Un software de programación es un tipo especial de software que nos permite crear/desarrollar/programar otras aplicaciones. Los software de programación son los que dan origen a los programas que utilizamos día a día. Si en algún momento te interesas en el desarrollo de software, pues vas a tener que utilizar definitivamente algún tipo de software de programación. Un software de programación nos ofrece una serie de herramientas para poder desarrollar programas o aplicaciones. Es en ellos donde se emplean los lenguajes de programación, los cuales sirven para crear las instrucciones que luego la computadora realizará. Para adelantarte un poco el tema de los lenguajes de programación te comentaré que es como un idioma más que uno debe aprender para poder comunicarse con la computadora. Cuando uno crea un programa, la computadora hace exactamente lo que nosotros le decimos que haga. Haciendo una analogía, imagina que la computadora es Vicky de la serie Small Wonder (La Pequeña Maravilla/Un Robot en Casa) o que es Jennie de la serie I Dream of Jennie (Mi Bella Genio), y que tienes que decirles exactamente lo que quieres, si te equivocas ya sabes lo que pasa, los protagonistas terminan sufriendo las consecuencias. En programación estos errores en la forma cómo se les pide a las computadoras que hagan una tarea, se les llaman Bugs o simplemente defectos.

Antiguamente el programador se veía obligado a utilizar diversos software de programación para poder crear un programa. Se escribía el código fuente en un procesador de texto, se tenían que compilar estas fuentes, utilizar enlazadores para integrarlos con otros programas, depuradores para verificar y corregir errores en el programa y más. Hoy en día existen software de programación que integran casi todas las herramientas que se pueden necesitar para crear un programa. Este tipo de software se llama IDE (Integrated development environment) o Entorno de Desarrollo Integrado y facilitan enormemente la labor de los programadores. Uno de los IDE que yo utilizo con frecuencia es el Microsoft Visual Studio, el cual me permite desarrollar aplicaciones empleando la tecnología .NET (el enlace anterior te llevará a un post con 11 webs que te ayudarán a programar en .NET). Estas IDEs realizan todas las labores tediosas y repetitivas del proceso de creación de un programa.

Historia

La historia de las herramientas de software de programación se inició con las primeras computadoras en la década de 1950 que utilizan máquinas para hacer uniones, cargadores, y programas de control. Herramientas con Unix se hicieron famosas en la década de 1970 como grep, awk y make que estaban destinados a ser combinadas con flexibilidad con pipes. El término "herramientas de software" proviene del libro del mismo nombre de Brian Kernighan y PJ Plauger. Las herramientas originalmente eran simples y ligeras. Dado que algunas herramientas se han mantenido, estas se han integrado en los entornos de desarrollo más potente (IDE). Estos entornos integrados consolidan la funcionalidad en un solo lugar, aumentando la simplicidad y la productividad, aunque a veces sacrificando la flexibilidad y extensibilidad. El flujo de trabajo de la IDE de forma rutinaria en contraste con los enfoques alternativos, tales como el uso de herramientas de shell de Unix con los editores de texto como Vim y Emacs.

La distinción entre herramientas y aplicaciones es turbia. Por ejemplo, los desarrolladores utilizar bases de datos simples (como un archivo que contiene una lista de valores importantes) todo el tiempo como herramientas. Sin embargo, una base de datos en toda regla se suele considerar como una aplicación.

Durante muchos años, se buscó la ingeniería de software asistida por ordenador (CASE). Pero herramientas de éxito han sido difíciles de lograr. En un sentido, hizo hincapié en ejemplos de software como las herramientas CASE de diseño y arquitectura de soporte tipo UML. Pero la más exitosas de estas herramientas son IDEs. La capacidad de utilizar una variedad de herramientas de forma productiva es un sello distintivo de un ingeniero de software especializado.

Categorías del software de programación

Las herramientas de desarrollo de software se pueden dividir en las siguientes categorías:

  • Herramientas de análisis de rendimiento
  • Herramientas de depuración
  • Análisis estático y herramientas formales de verificación
  • Herramientas de corrección y supervisión
  • Herramientas de uso de la memoria
  • Herramientas de construcción de aplicaciones
  • Entorno de desarrollo integrado

Ejemplos de Software de Programación y de Lenguajes de Programación

Algunos ejemplos de Software de programación:

  • Microsoft Visual Studio
  • .NET
  • Eclipse
  • Netbeans
  • WebDevStudio
  • Dev C++
  • Blocks
  • Lazarus
  • KDevelop
  • Xcode.

Ejemplos de aplicaciones hechas por los software de programación

-Ejemplos de aplicaciones Desktop:


  • Programas de Microsoft Office (Excel, Word, PowerPoint, etc).
  • Cliente FTP (FileZilla, CUTE FTP, etc)
  • Windows Live Messenger
  • iTunes
  • Adobe Photoshop
  • Winamp

Algunos ejemplos de lenguajes de programación

  • Visual Basic
  • .NET
  • C++
  • C#
  • Java
  • Objective-C
  • Javascript
  • Pascal
  • Assembler.

Ventajas:

Habitualmente su ejecución no requieren comunicación con el exterior, sino que se realiza de forma local. Esto repercute en mayor velocidad de procesamiento, y por tanto en mayores capacidades a la hora de programar herramientas más complicadas o funcionales.

  • Suelen ser más robustas y estables que las aplicaciones Web.
  • Rendimiento: el tiempo de respuesta es muy rápido.
  • Seguridad: pueden ser muy seguras (dependiendo del desarrollador).

Desventajas:

  • Su acceso se limita al ordenador donde están instaladas.
  • Son dependientes del sistema operativo que utilice el ordenador y sus capacidades (video, memoria, etc).
  • Requieren intalación personalizada.
  • Requieren actualización personalizada.
  • Suelen tener requerimientos especiales de software y librerías.

Ejemplos de aplicaciones Web:

  • Webmails (gmail, hotmail)
  • Weblogs (webs personales)
  • Tiendas online (amazon)
  • Enciclopedias en línea (Ecured)
  • Plataformas de información geográfica (google earth o google maps)
  • Àlbumes de fotos (flickr, picasa)

Ventajas

  • Portabilidad: se ejecutan desde cualquier ordenador con conexion a internet.
  • La información que manejan es accesible a través de internet, por lo que son especialmente interesantes para desarrollar aplicaciones multiusuario basadas en compartir información.
  • Son aplicaciones muy ligeras (el Navegador de Internet no contiene el programa) por lo que el Usuario no necesita tener un ordenador de grandes prestaciones para trabajar con ellas.
  • Consumen muy pocos recursos del equipo en el que están instaladas.
  • Son fáciles de actualizar y mantener.
  • Los usuarios pueden participar en la elaboración de los contenidos.
  • Se pueden distribuir e instalar en miles de equipos sin limitación o restricción alguna.
  • Su funcionalidad es independiente del sistema operativo instalado en el ordenador del usuario.
  • No hay problemas de incompatibilidad entre versiones, porque todos los Usuarios trabajan con la misma
  • Seguridad. Pueden ser muy seguras (dependiendo del desarrollador).

Desventajas

  • Es necesaria una conexión a Internet
  • La comunicación constante con el servidor que ejecuta la aplicación establece una dependencia a una buena conexión a internet.
  • El servidor debe tener las prestaciones necesarias para ejecutar la aplicación de manera fluida, no sólo para un usuario sino para todos los que la utilicen de forma concurrente.
  • Se pierde tiempo de desarrollo haciéndolas compatibles con los distintos navegadores (aunque los frameworks ayudan a solventar algunos de estos problemas).
  • Su tiempo de respuesta es más lento que el de las aplicaciones Desktop (esto ha mejorado mucho utilizando tecnologías como AJAX).
  • El tiempo de respuesta puede llegar a ser lento dependiendo de las características del ordenador y de la conexión a Internet que se utilice.

Fuentes