Está en la página 1de 5

Cómo Lenguajes de

Programación Evolve
Tom Jepsen

O
luchar para reemplazar them.These nuevas ayudarle a seleccionar un idioma para su
era simple. Grandes especies incluyen un remolino confuso de las proyecto de desarrollo.
ordenadores monolíticas, por lo general lenguas que son
pintadas rase unacorrieron
de azul, vez, la vida
programas Enviar en los clones
por lotes de un solo subproceso bajo la • compilado, Gran parte de la programación de
atenta mirada de un operador y un • interpretado, software consiste en reinventar la rueda
programador del sistema. Un lector de • basado en la Web, con un esquema de color ligeramente
tarjetas • secuencias de comandos y el modelado diferente, el radio de giro, y habló
servido como el dispositivo de entrada, una capaz, orientation.This realización lanzó
unidad de cinta de almacenamiento proporcionado, • orientado a objetos, programadores en una búsqueda para
• basado gráficamente, desarrollar técnicas para la clonación y el

Aprender lo que las • de procesamiento de texto basado, o código de reciclado utilizado en proyectos
• fundada el arti fi ciales anteriores. La programación estructurada
fuerzas de la rutinas de inteligencia. condujo a la modularización de código, que
a su vez llevó a la programación orientada
evolución en coche
Además, todo tipo de lenguajes de a objetos para el desarrollo y
programminglanguage especialidad frente a los problemas de componentbased. La búsqueda de software
desarrollo de aplicaciones específicas. Para reutilizable también contribuyó al desarrollo
puede ayudarle a
un observador externo, esta proliferación de las lenguas Architecture- y
escoger uno para su puede parecer extraño. ¿Por qué no los platformindependent.
informáticos y los profesionales de TI la
proyecto.
gente en general científica y racional casi a
una en la creación de unas pocas lenguas
de resolución de problemas robustos y El equipo Incredible
adaptables que podrían tener éxito en Shrinking
cualquier entorno informático centrado en la Con cada nueva generación, los ordenadores
culpa? han albergado la misma capacidad de
procesamiento en paquetes más pequeños: En
primer lugar, los mainframes se redujeron a
y una impresora de líneas procesado de salida. minicomputadoras, a continuación, las
Los programadores escribieron las aplicaciones NICHOS ECOLÓGICOS minicomputadoras se redujeron a los escritorios.
de negocio en COBOL, aplicaciones cientí fi cos En pocas palabras, la rápida propagación Ahora los ordenadores cada vez más pequeños
en Fortran. En cualquiera de los casos, de la informática en todas las fases de la vida encuentran su camino en mano asistentes
trabajaron a cabo la lógica del programa en el moderna y la diversidad de dominios de digitales personales, ropa y joyas. Las
primer artículo, utilizaron una perforadora para aplicación y problemáticas esta tendencia ha computadoras se han convertido en
producir tarjetas perforadas, y luego corrió la creado-requerir una amplia gama de omnipresente. Casi todos los artefactos
cubierta resultante a través del lector de tarjetas. herramientas de resolución de problemas. tecnológicos ahora contienen un programa
Después de unas pocas sesiones de depuración, lenguajes de programación han evolucionado almacenado de algún tipo. Tales pequeños
que recibieron sus resultados computados en para proporcionar este tipo de herramientas y, ordenadores exigen económica
hojas de papel continuo. Si un programa requiere al igual que la evolución en la naturaleza, han
la documentación, los programadores produjeron generado numerosas mutaciones en el idiomas que
en una máquina de escribir manual. proceso, algunos con éxito y algunos not.â dejar una pequeña huella comparable.
pocas fuerzas empujando este proceso
evolutivo; la comprensión de ellos y qué
idiomas evolucionado como una respuesta a Tienen código, viajará
Hoy en día, un par de lenguajes de estas fuerzas pueden Los fabricantes de ordenadores centrales e

programación torpes aferrarse a la vida, incluso los primeros ordenadores diseñados para

mientras hordas de nuevos tipos sus productos autónomo

68 IT Pro noviembre | de diciembre de de 1999 1520-9202 / 99 / $ 10.00 © 1999 IEEE


operación. El desarrollo de las redes de área local, ond edición (Prentice Hall, Englewood Cliffs, NJ, carecía de funciones comúnmente requeridas, tales como
la arquitectura cliente-servidor, y el Internet han 1988), Ritchie y coautor Brian Kernighan la capacidad de convertir números a cadenas.
alterado enormemente la naturaleza y el alcance reconocieron que ellos diseñaron C sea
de la informática. la ubicación física del software ya deliberadamente minimalista, señalando que “C no El desarrollo de C ++ por Bjarne Stroustrup a
no es un problema: Los componentes se pueden es un gran lenguaje, y no está bien servido por un finales de 1980 superó muchos de shortcomings.A
ejecutar de forma local o viajar a otro lugar para gran libro. ”los dos programadores desarrollaron C compilado lenguaje de Smalltalk al igual que su
ejecutar de forma remota. corredores de objetos para cumplir con el doble y objetivos, a veces antecesor C, C ++ proporcionan un buen
pueden ser utilizados para establecer “relaciones” contradictorias de la independencia arquitectura y un rendimiento en tiempo de ejecución. También
temporales entre unidades de función de software alto grado de control sobre operations.Thus proporcionó la tipificación fuerte, lo que resultó en
y clientes que solicitan en un entorno de objetos programador de la máquina, mientras que C dio a una mejor comprobación de errores y cualidades
distribuidos. Operación en este entorno exige los programadores la capacidad de asignar de forma optimization.These ayudó C ++ OO movimiento en la
móvil, código de platformindependent. explícita y liberar memoria, sino que también hizo corriente principal de programación. Sin embargo, C
que la longitud de una número entero dependen de ++ tiene sus propios inconvenientes. Complejo y
la plataforma subyacente. Ken Thompson desarrolló difícil de aprender, que sufría de bibliotecas de
el sistema operativo Unix en tándem con, y en gran clases no estructuradas que requieren
medida basada en, C. Thompson pensado programadores para pasar el tiempo mirando las
SELECCIÓN DE originalmente para Unix para ser independiente de cosas. C ++ también heredó la dependencia de la
Velocidad y flexibilidad la plataforma; una de sus características distintivas plataforma C. A pesar de sus imperfecciones, C y C
De acuerdo con Perl creador Larry Wall, es su genérico abrir / cerrar / lectura / escritura ++ formó la columna vertebral durante gran parte de
“lenguas reales evolucionan, no giran. En verdad abstracciones de entrada / salida. Unix, sin la programación de sistemas que sustenta la
los lenguajes de programación revolucionarios embargo, desarrollado rápidamente en las revolución del ordenador personal de la década de
no tienden a hacerse popular”(‘Una revolución en dependencias del hardware subyacente. La 1990, incluyendo el desarrollo de DOS y Windows
curso’ necesidad de puerto de Unix para diferentes que opera el lenguaje systems.Another fi de
Computadora, Mayo 1999, pp. 48-49) plataformas contribuyó a la proliferación de Microsoft llena el nicho computadora personal
.Companies con grandes inversiones en versiones de Unix y de la incapacidad resultante de cuando IBM
software heredado muestran una comprensible cualquier versión de captar una cuota de mercado
renuencia a experimentar con nuevos enfoques del usuario.
de programación, lo que contribuye a la
tendencia de los lenguajes de programación a
quedarse hasta que se convierten “dinosaurios.”
Tomar una instantánea de cualquier momento
de la historia del desarrollo del lenguaje de lo que interesa
programación, y verá el mismo picture.Even ya OO invade el escritorio
¿Tú?
que estos dinosaurios torpes tomar bocados La búsqueda de la reutilización dio lugar a la
gigantescos de la selva cuota de mercado, noción de objeto: una unidad pequeña, reutilizable de
Como editor para lenguajes de
pequeños mamíferos, fastermoving corren a software que encapsula el comportamiento en
programación, me gustaría para lograr que
toda prisa, buscando un nicho por alto que términos de datos y los métodos que operan sobre
la información de líderes de la industria y
pueden ocupar mientras que la evolución en especies it.An principios de OO, Smalltalk, resultó ser
visionarios que abordarán el alcance y la
algo mayor. La historia de la evolución lenguaje muy adecuado para el modelado y la creación rápida
dirección del cambio en el software. Me
de programación narra el triunfo lento pero de prototipos. un lenguaje pequeño, interpretados con
gustaría que hablan de la evolución de la
constante de estos velocistas más compactos la tipificación débil, Smalltalk fue uno de los idiomas
computación orientada a objetos, la interfaz
gigantes letárgicos. primeros a utilizar la recolección de basura
de usuario de próxima generación, y el
automática, una función en la que asigna la memoria
movimiento de código abierto. Por favor,
que ya no se utiliza se libera de forma automática, sin
póngase en contacto conmigo en
necesidad de una llamada explícita por el
tom.jepsen@fnc.fujitsu.com con
programador. La recolección automática de basura
comentarios sobre estas ideas o
hace que la gestión de memoria más fácil y menos
sugerencias para otros temas.
errorprone. En última instancia, sin embargo,
Smalltalk nunca se convirtió en un lenguaje para el
Los primeros mamíferos desarrollo de software a gran escala, ya que, como un
Tom Jepsen es un ingeniero de sistemas
Creado por Dennis Ritchie en los años 1970, C lenguaje interpretado, que carecía de la eficiencia en
en la planificación del interruptor de Fujitsu
se convirtió en una de las fi mamíferos primera tiempo de ejecución. También
red de comunicaciones.
rápidas para emergen de la selva de programación.
En su prefacio
El lenguaje de programación C 'S sec-

noviembre | de diciembre de de 1999 IT Pro 69


PERSPECTIVAS

¿Cómo maneja las variables del programa de mecanografía

Mecanografía se refiere a la asignación a una int c; main () {c = a + b; printf (


categoría de cada variable declarada en un "% d \ n", c); }
programa. Tales categorías-que incluyen número
entero, avena fl, secuencia, o una clase
de-determinan cómo se entenderá y utilizado por
el software de la variable. Typing tiene ventajas
para el programador que escribe el código fuente La misma función en Tcl tipos débiles se
y el compilador o intérprete que genera el código puede escribir como
objeto. Para el programador, habiendo un
conjunto estándar de los tipos de datos establecer un sistema de
proporciona mayor legibilidad, fiabilidad, y 2 b 2 expr $ a + $ b
facilidad de mantenimiento. Conocer el tipo de
una variable permite un compilador o intérprete
para asignar la cantidad adecuada de Sin embargo, en algunos casos, mecanografía débil
almacenamiento para la variable y para procesar ciones sobre las variables cómo pueden ser puede dar lugar a la ambigüedad. En Smalltalk, todas
su contenido correctamente. utilizados. idiomas tipos débiles son las variables se pueden considerar como de tipo

generalmente interpretados idiomas, con una “objeto”, ya que todas las variables son objetos de

sintaxis escasa y una buena capacidad de forma predeterminada. Pero ¿qué significa decir que

prototipado rápido. Inflexible de tipos idiomas, dos objetos son iguales o idénticos? Por ejemplo,
Los tipos pueden ser implícitas o pueden ser por el contrario, como C, C ++ y Java, requiere probando el número entero 5 de la identidad con ella
declaradas explícitamente. Fortran IV declaraciones de tipo explícitas para todas las misma
proporcionado tipos implícitos por defecto, si variables. Normalmente, los desarrolladores
usted declaró un nombre de variable que se inició compilar dichas lenguas y el compilador extensa
con I, J, K, L, M o N, el lenguaje tratado comprobación de tipos en tiempo de compilación 5 == 5
automáticamente la variable como un punto fijo para asegurar la compatibilidad de tipo de datos.
número entero fi; Fortran IV asume todas las otras Si el compilador detecta una incompatibilidad, se evaluará como verdadero, ya que el intérprete Smalltalk

variables para ser fl punto flotante. Java, por el genera un mensaje de error de compilación y reconoce el pequeño número entero 5 como un objeto

contrario, no permite tipos predeterminados; todas termina la operación de compilación. de identidad. Sin embargo, las pruebas de la fracción

las declaraciones de variables deben especificar 1/5 de la identidad con ella misma

un tipo.

Los desarrolladores clasifican como lenguajes Adición de dos en dos en C fuertemente (1/5) == (1/5)
de programación tipos débiles o tipado requiere varias líneas de código:
inflexible. Tipos débiles idiomas, como evaluará como falso, ya que el programa
Smalltalk y Tcl, no requieren de las evalúa la expresión en tiempo de ejecución,
variables a tener una declaración de tipo y int a = 2; int b = 2; y crea y compara dos objetos diferentes.
el lugar sin restricción

envasada Basic, un lenguaje interpretado sencilla, con documentación del usuario; que tenía sentido para Language.GML permiten al usuario crear un documento
su PC original. Básico dio muchos nuevos usuarios de desarrollar la documentación en el equipo que dirigía con sólo el montaje de los componentes básicos
PC de su primera exposición a la programación. Más el program.Script, un lenguaje de procesamiento de necesarios de las partidas, párrafos y formatos. Algunos
tarde se convertiría en Visual Basic, una poderosa texto desarrollado en la Universidad de Waterloo de desarrolladores se dieron cuenta que el procesamiento
herramienta para el desarrollo de aplicaciones basadas Canadá en la década de 1970, a condición de de texto utilizando GML se parecía a la programación
en Windows de forma gráfica. comandos para dar formato a texto en documentos orientada a objetos: Se puede crear un bloque funcional
escritos y rápidamente se generalizó el uso de los genérico, como un párrafo, que podría ser modificado
ordenadores centrales. Los investigadores de IBM para requisitos particulares para un documento específico
Ramificación en texto crearon un macrolengua textprocessing Basado en el mediante la especificación de una instancia con una
Otro camino evolutivo comenzó con el uso de guión, llamado el marcado generalizado fuente fi co, diseño de página, etc. .
ordenadores para el procesamiento de texto. Los
programas de ordenador necesarios

70 IT Pro noviembre | de diciembre de de 1999


Esta comparación resultó en el desarrollo del para el software de programación que podría aplicaciones iCal encadenar interfaz de usuario
lenguaje de marcado generalizado estándar. proporcionar el “pegamento” entre las peticiones de “controla” similar a Visual Basic.
SGML incluye el concepto de un tipo de usuario HTML y aplicaciones basadas en servidor
documento definición, que especi fi ca un escritos en lenguajes de programación convencionales.
conjunto de elementos y las variables utilizadas capacidad de adaptación definitiva
para definir cada elemento del documento. DTD, Los lenguajes de script resolvieron el problema de
la especificación de lenguaje de marcado de doctoring guión proporcionar interactividad entre los usuarios de la Web
hipertexto (HTML), jugaría un papel principal en El concepto de lenguajes de script es en realidad y las aplicaciones de servidor residentes. Esta solución
un desarrollo de la verdadera revolución muy antigua: IBM desarrolló Control de trabajos de no funciona bien, sin embargo, si todos los clientes
crecimiento de Internet y la World Wide Web. idiomas en la década de 1960 como un lenguaje de intentan acceder a la misma aplicación en once.A
programación para ordenadores centrales. Los forma más escalable de proporcionar interactividad
programadores utilizan JCL para iniciar la ejecución sería de fl oad la aplicación de servidor mediante la
de aplicaciones escritas en otros idiomas. En la distribución de partes de su funcionalidad. Un enfoque
Tejiendo una red en todo el mundo década de 1990, Visual Basic, aunque originalmente para el logro de tales oading de fl implica la descarga
Aunque Internet tiene su origen en la obra Arpanet pensado como un lenguaje de programación del de software a los clientes que solicitan para locales
patrocinado por el Departamento de la Agencia de sistema, entró en de amplio
Proyectos de Investigación Avanzada de la Defensa de
Estados Unidos en la década de 1960, lo que realmente ejecución. Con la introducción de Java en
despegó cuando la creación de redes a gran escala se 1995, este método se convirtió en una realidad.
hizo características añadidas de Java, Desarrollado por James Gosling y otros en Sun
factible Microsystems, Java y sus animaciones
a través del uso generalizado de las instituciones incluyendo su downloadability appletbased pronto bailaron a través de las
académicas de Unix a principios del 1980s.However, páginas web de todo el mundo, consumiendo ciclos
y la capacidad para proporcionar el
Internet basado en texto original de los años 1970 y de procesador PC cliente, más que el tiempo de
1980 formó una, los piratas informáticos de sólo contenido ejecutable, han llevado CPU de los servidores desde los que los usuarios
arcano mundo de que algunos departamentos de se han descargado. Los desarrolladores de Java,
a su popularidad instantánea.
informática fuera podían entrar. Esta situación sin embargo, imaginaron como susceptibles de
comenzó a cambiar en 1989, cuando Tim aplicación mucho más amplio que sirve como una
Berners-Lee, del CERN, la aspiración a un espacio herramienta para la decoración de pages.They
de trabajo compartido para el trabajo cientí fi co de uso se extendió como un lenguaje de programación para Web diseñado Java como lenguaje de
colaboración, desarrolló el Protocolo de el desarrollo de aplicaciones de Windows utilizando programación de propósito general que
Transferencia de Hipertexto (HTTP) y HTML, lo que componentes escritos en C o C ++. proporcionaría la reutilización, una pequeña huella,
sienta las bases para la World Wide Web. Sin y la independencia arquitectura. Un híbrido
embargo, la verdadera revolución se inició en 1993, Perl, desarrollado por Wall a principios de 1990, se avanzado, Java combina las fortalezas de muchos
cuando Marc Andreessen, un joven programador en ha convertido rápidamente en el idioma de su elección predecesores. Conserva la fuerte orientación
el Centro Nacional para Aplicaciones de para proporcionar los servidores web con CGI y escribir y objeto de C ++, pero elimina
Supercomputación, creado mosaico, un cliente funciones administrativas generales. Interpretado, complejidades como punteros. Java comparte la
basado en web de forma gráfica para tipos débiles, e independiente de plataforma, los capacidad de Smalltalk para la asignación de
browsing.Mosaic abrió la comunidad en línea para el scripts de Perl se ejecutan igual de bien en los memoria automática, independencia de la
público en general y se inició el crecimiento en diversos sabores de Unix, Windows NT, y MacOS. El plataforma de Perl, y excelentes capacidades de
fastpaced aplicaciones basadas en web que lenguaje, que todavía se puede descargar y utilizar de interfaz gráfica de usuario de desarrollo de Visual
continúa hoy. forma gratuita, también se convirtió en uno de los Basic. Sin embargo, las características agregadas
primeros ampliamente disponibles lenguajes de de Java, incluyendo su downloadability y la
código abierto. capacidad para proporcionar el contenido
ejecutable, han llevado a su popularidad
instantánea, creando posibilidades de una
Mientras que las páginas web se limitaron a Por primera vez en 1990, de John K. Ousterhout auténtica informática distribuida. Actualmente, Java
principios de exhibición estática de la información, las Tool Command Language-otro lenguaje y el lenguaje de programación JavaScript competir
aplicaciones Web rápidamente se hicieron más “pegamento” goza de un gran número de con ActiveX de Microsoft controles para convertirse
interactivo y requieren funciones de servidor complejas, seguidores. Ousterhout diseñado Tcl (pronunciado en el estándar de la industria
tales como búsquedas de bases de datos y la “cosquilleo”) como un lenguaje de script para la
actualización dinámica de contenido HTML por medio integración de aplicaciones escritas en otros
de la interfaz común de pasarela (CGI) en scripts.This idiomas. El código abierto y esencialmente sin tipo,
requisito a su vez creó la necesidad Tcl permite a los usuarios desarrollar graph-

noviembre | de diciembre de de 1999 IT Pro 71


PERSPECTIVAS

UN DVERT ES ER | GESTI TI NDICE


para proporcionar el contenido ejecutable basado en la Web.

NOVIEMBRE | DE DICIEMBRE DE de 1999


GENERACIONES FUTURAS

anunciante / Productos Número de página Aunque Java parece mantener la corona de la


evolución actual, todavía me pregunto donde la
Addison Wesley 1 evolución del lenguaje de programación dará lugar
al lado. software orientado a objetos continúa
Productos CACI 63
desarrollándose en componentes de software, con
Epsilon Squared 63 interfaces estandarizadas y cotización functions.To

FlowPoint 62 Bertrand Meyer ( “On para componentes” Computadora,


Enero de 1999, págs. 139-140), “Un componente
La membresía IEEE Computer Society 4-6
verdadera debe ser utilizable por los
IT Professional 22 desarrolladores de software que construyen
nuevos sistemas no previstos por el autor del
ON! Software de contactos 64
componente.” Añadir downloadability y ha
Parasoft Corp. cubierta 3 distribuido componentes que le permiten crear
arquitecturas de red sin tener que preocuparse
Perforce Software cubierta 2
acerca de dónde el software reside realmente.
Southwest Research Institute cubierta 4
Ponga la inteligencia adicional en la mezcla, y
TechExcel 64 tiene agentes móviles capaces de moverse a
través de la red de una manera heurística e
Umax Tecnologías 62
interactuar inteligentemente con sus lenguajes
Negrita denota anuncios en esta edición. basados ​en la ejecución environments.Web seguir
evolucionando nuevas capacidades, así: El
Extensible Markup Language (XML) promete
ampliar las capacidades de HTML al permitir a los
usuarios crear tipos de componentes de
documentos personalizados y permitiendo enlaces
a varias fuentes. La combinación de lenguajes de

Oficinas de ventas de publicidad del


script XML y probablemente como resultado un
comportamiento aún más dinámico.
arena Aijala
10662 Los Vaqueros Círculo Los Alamitos,
California 90720 hasta 1314 Teléfono: (714)
821-8380 Fax: (714) 821-4010
saijala@computer.org

Kim Newman, Gene Selven


7291 Coronado Drive, Suite 8 San
José, California 95129 Teléfono: (408)
996-7401 Fax: (408) 996-7871
knewman @ ordenador. org

Para información sobre la producción, la conferencia, y la publicidad ed fi


cación, póngase en contacto con: Marian Anderson
Wcomo Java
siguen proliferando, o qué lenguajes
representan
lenguajes una tendencia
de programación hacia la
enfermos

convergencia? Serán los idiomas de uso sencillo que


permitirá el desarrollo de las personas sin
IT Professional
conocimientos técnicos crear programas? ¿El
10662 Los Vaqueros Círculo Los Alamitos,
California 90720 hasta 1314 Teléfono: (714) movimiento de código abierto de desarrollo de
821-8380 Fax: (714) 821-4010 software hacer más democrático y por lo tanto mayor
manderson@computer.org capacidad de respuesta a las diversas necesidades
de los diferentes usuarios? ¿El movimiento de
producir software más fiable? Tengo la intención de
explorar estas y otras cuestiones en futuros
artículos. ■

72 IT Pro noviembre | de diciembre de de 1999

También podría gustarte