Está en la página 1de 13

Universidad de Valparaso

Escuela de Ingeniera civil en Informtica

Investigacin sobre Lenguajes de Programacin

Versin 1.0
07/2015
ndice

Lua............................................................................................................................................. 3

1.
a)

Penetracin estimada en el mercado......................................................................................... 3

b)

Estructura............................................................................................................................... 3

c)

mbitos de comodidad............................................................................................................ 3

d)

Ejemplos................................................................................................................................. 4

e)

Apreciacin personal............................................................................................................... 4
GO.............................................................................................................................................. 5

2.
a)

Penetracin estimada en el mercado......................................................................................... 5

b)

Estructura............................................................................................................................... 5

c)

mbitos de comodidad............................................................................................................ 5

d)

Ejemplos................................................................................................................................. 5

e)

Apreciacin personal............................................................................................................... 6
R................................................................................................................................................. 6

3.
a)

Penetracin estimada en el mercado......................................................................................... 6

b)

Estructura............................................................................................................................... 6

c)

mbitos de comodidad............................................................................................................ 7

d)

Ejemplos................................................................................................................................. 7

e)

Apreciacin personal............................................................................................................... 7
RUBY......................................................................................................................................... 8

4.
a)

Penetracin estimada en el mercado......................................................................................... 8

b)

Estructura............................................................................................................................... 8

c)

mbitos de comodidad............................................................................................................ 8

d)

Ejemplos................................................................................................................................. 8

e)

Apreciacin personal............................................................................................................... 9
PHP............................................................................................................................................ 9

5.
a)

Penetracin estimada en el mercado.......................................................................................10

b)

Estructura............................................................................................................................. 10

c)

mbitos de comodidad.......................................................................................................... 10

d)

Ejemplos............................................................................................................................... 10

e)

Apreciacin personal............................................................................................................. 11
C............................................................................................................................................... 11

6.

7.

a)

Penetracin estimada en el mercado.......................................................................................11

b)

Estructura............................................................................................................................. 11

c)

mbitos de comodidad........................................................................................................... 11

d)

Ejemplos............................................................................................................................... 11

e)

Apreciacin personal............................................................................................................. 12
Bibliografa............................................................................................................................... 13

1. Lua

Lua se utiliza como lenguaje de script embebido ligero rpido, esta diseado para una
programacin procedimental general, tambin es til para la descripcin de datos.
Lua tiene un sinfn de caractersticas que hacen que sea un lenguaje que poco a poco se va
posicionando de mejor forma en el mercado, llegando a obtener el Premio Front Line de la
Revista Desarrolladores de Juegos en el ao 2011, estas caractersticas son:
Rpido: Lua es rpido no slo en los programas de referencia afinados, tambin en
la vida real. Partes importantes de grandes aplicaciones se han escrito en este
lenguaje.
Portable: Su distribucin es un paquete pequeo, esejecutable en todas las versiones
de Unix y Windows, ambien en dispositivos mviles( con Android , iOS , BREW ,
Symbian , Windows Phone ), adems de ser utilizable en microprocesadores
incorporados (como ARM, aplicaciones como Lego Mindstorms )
Gratuito: Es un software de cdigo libre, distribuido bajo licencia MIT, y puede
usarse para cualquier propsito sin ningn costos adicional
a) Penetracin estimada en el mercado
Lua es actualmente el lenguaje scripting lder en juegos. Lua tiene un manual de
referencia slido.

Figura 1: Penetracin de los lenguajes segn IDC


En base a la Figura 1 se puede apreciar que Lua se encuentra entre los lenguajes
menos utilizados.
b) Estructura
Este lenguaje se escribe de forma dinmica, se ejecuta mediante la interpretacin de
cdigo, cuenta con gestin de memoria automtica, esto ltimo es de alta utilidad
para la configuracin, scripts y rpido prototipado.
Adems Lua esta implementado como una biblioteca escrita en C.
Tambin ofrece un buen soporte para la programacin orientada a objetos,
programacin funcional y programacin orientada a datos.
En resumen los programas hechos en Lua no son interpretados directamente, sino
compilados a bytecode, y este es ejecutado en la mquina virtual de Lua.
c) mbitos de comodidad
Lua se ha utilizado en muchas aplicaciones industriales (Photoshop Lightroom de
Adobe), con nfasis en los sistemas integrados y juegos (World of Warcraft y Angry
Birds).Actualmente se sigue utilizando en la industria de los videojuegos ya que es
muy pequeo al momento de compilarlo, y la grfica es compatible con el Kernel
de las empresas Gamers.

d) Ejemplos
La sintaxis recuerda a una mezcla de Pascal con otros lenguajes:
function diHola(persona)
-- Un bucle:
for i=1,3 do
print("Hola " .. persona .. "!")
end
end
print("Cmo te llamas?")
nombre = io.read()
-- Llamada a una funcin:
diHola(nombre)

Como se puede apreciar en el ejemplo anterior, no es necesario declarar el tipo de


variable, puesto que estas no tienen tipo, debido a lo dinmico del lenguaje.
Lua soporta asignacin mltiple directa, sin necesidad de utilizar otros
mecanismos (listas, etc), de modo que es perfectamente posible intercambiar dos
valores en una nica instruccin sin efectos secundarios. Tambin las funciones
pueden, devolver varios valores. Por ejemplo:
a = 1
b = 2
a,b = b,a
print("a: " .. a .. ", b: " .. b)
-- imprimir: a: 2, b: 1

function numeros()
return 1,2,3,4
end
--Esta funcin retorna 1,2,3,4.

En Lua las tablas son la base de cualquier estructura de datos. Y no se quedan slo
ah, sino que proporcionan todos los mecanismos para la organizacin y
arquitectura del cdigo. La tabla, es como un array pero presenta algunas
particularidades:
print(tabla[3])
tabla[2] = 7
tabla["hola"] = 16
-- Es lo mismo que tabla.hola = 16
print(tabla[44])
-- No da un error, simplemente devuelve null

e) Apreciacin personal
Es un lenguaje que por el momento nos ha sorprendido, ya que tiene lo que todos
los lenguajes de scripting de hoy en da tienen, lo mejor de cada uno, y se ha
forjado en un entorno tan competitivo y fuerte como es el sector de los videojuegos

2. GO
Go es un lenguaje de programacin concurrente y compilado inspirado en la sintaxis de C.
Sus caractersticas principales radican en:
Rpido
Soporte de concurrencia
Open Source
Para este lenguaje existen dos compiladores:
GCCgo: Es un compilador basado en C.
Suite: Depende de la arquitectura se usa sus versiones(Suite 6g, Suite 8g, etc)
a) Penetracin estimada en el mercado
Go se usa para descargas en Google o para escalar las bases de datos de MySQL en
youtube.
Otras compaas que estn usando Go para sus proyectos son: BBC Worldwide,
Canonical, CloudFlare, Heroku, Iron.io, Novartis, SoundCloud, SmugMug,
StatHat, Tinkercad.
Go gan el lenguaje de programacin TIOBE del ao 2009 por obtener ms cuota
de mercado. Adems ha obtenido un aumento del 1,25% desde el anuncio de su
lanzamiento.
En base a la Figura 1 se puede apreciar que este lenguaje debido a lo nuevo que
es, aun no ocupa ningn lugar dentro del ranking, sin embargo las nuevas
actualizaciones y la confianza de grandes empresas pueden hacer que el uso de este
aumente en todos los sectores.
b) Estructura
Go admite el paradigma de programacin orientada a objetos, pero a diferencia de
los lenguajes de programacin ms populares no dispone de herencia de tipos y
tampoco de palabras que denoten el uso de este paradigma. Go permite el uso de
delegacin (a travs de embedded values) y polimorfismo (por medio de
interfaces).
Debido a que es similar a C, utiliza bloques que se encierran entre llaves, con
estructuras de control como for, switch e if.
c) mbitos de comodidad
d) Ejemplos
El clsico programa Hola mundo en Go es similiar a como se hara en C++. Con
este mtico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares:
package main
import "fmt"
func main() {
fmt.Printf("Hola, mundo.\n")
}

Fibonnacci Closure
package main
import "fmt"
// fib returns a function that returns
// successive Fibonacci numbers.
func fib() func() int {
a, b := 0, 1
return func() int {
a, b = b, a+b
return a
}
}
func main() {
f := fib()
// Function calls are evaluated left-to-right.
fmt.Println(f(), f(), f(), f(), f())
}

e) Apreciacin personal
Go es lenguaje muy sencillo de usar, adems cuenta Tour de Go, en el que se
muestra los primeros pasos con l. En s este lenguaje tiene todas las de triunfar y
posicionarse en un futuro en uno de los lenguajes compilados ms potentes, ya que
cuenta con un gran dinamismo y cobertura de los medios de comunicacin al
provenir de una empresa como Google.

3. R
R es un lenguaje de programacin para el anlisis de datos mediante la creacin de
script y funciones. Es un lenguaje completo, interactivo, orientado objetos, diseado
por estadsticos, para estadsticos. Provee objetos, operadores y funciones que hacen
el proceso de explorar, modelar y visualizar los datos, todo un completo anlisis de
datos en unas pocas lneas de cdigo.
Ventajas:
Es un ambiente para el anlisis estadstico: contiene funciones para cualquier
tipo de manipulacin de datos y modelos estadsticos, no solo los mtodos
estndar, tambin los ms innovadores en vanguardia de estadstica, los
cuales suelen salir primero en este lenguaje.
Es un proyecto de cdigo abierto con una comunidad de estadsticos e
informticos que la respaldan.
Visualizacin de datos: Una parte esencial es la visualizacin de datos a
travs de tablas y grficos para el proceso de anlisis de datos, por lo cual
contiene excelentes herramientas para esto.
Es un lenguaje de programacin bien desarrollado, simple y eficaz que
incluye condicionales, loops, funciones recursivas (definidas por el usuario)
y facilidades de entrada y salida.
a) Penetracin estimada en el mercado
La comunidad de R cuenta con ms de 2 millones de usuarios alrededor del
mundo en la posicin 17 de este mes de los lenguajes ms usados
b) Estructura
Es un lenguaje basado en C, se utiliza mediante la creacin de script a travs
cdigo por lnea de comando principalmente.

c) mbitos de comodidad
Anlisis de datos y minera de datos para el desarrollo de software
estadstico.
d) Ejemplos
Cdigo para calcular el conjunto de Mandelbrot con 20 iteraciones de la
ecuacin Z <- Z^2+C, del cual luego crea un archivo gif.
library(caTools)
# external package providing write.gif function
jet.colors <- colorRampPalette(c("#00007F", "blue", "#007FFF", "cyan",
"#7FFF7F",
"yellow", "#FF7F00", "red", "#7F0000"))
m <- 1000
# define size
C <- complex( real=rep(seq(-1.8,0.6, length.out=m), each=m ),
imag=rep(seq(-1.2,1.2, length.out=m), m ) )
C <- matrix(C,m,m)
# reshape as square matrix of complex numbers
Z <- 0
# initialize Z to zero
X <- array(0, c(m,m,20)) # initialize output 3D array
for (k in 1:20) {
# loop with 20 iterations
Z <- Z^2+C
# the central difference equation
X[,,k] <- exp(-abs(Z)) # capture results
}
write.gif(X, "Mandelbrot.gif", col=jet.colors, delay=800)

e) Apreciacin personal
Es un lenguaje con mucho uso en el mbito cientfico con gran utilidad para
la matemtica estadstica, que gracias a su comunidad, va incrementando las
capacidades del lenguaje mediante el uso de complementos llamados
paquetes, lo que le permite crecer y mantenerse es su mbito.

4. RUBY
Ruby es un lenguaje de scripts para una programacin orientada a objetos rpida y sencilla,
es un lenguaje de programacin interpretado, de muy alto nivel y orientado a objetos. Este
lenguaje se caracteriza por tener una programacin dinmica y ser de cdigo abierto, est
enfocado en la simplicidad y productividad. Su elegante sintaxis se siente natural al leerla y
fcil al escribirla.
a) Penetracin estimada en el mercado
De acuerdo al ndice TIOBE, que mide el crecimiento de los lenguajes de
programacin, Ruby se ubica en la posicin #13 del ranking mundial. Refirindose
a su crecimiento, predicen, Todo indica que Ruby llegar a estar entre los 10
primeros en menos de 6 meses. Gran parte de su crecimiento se atribuye a la
popularidad alcanzada por aplicaciones desarrolladas con Ruby, en particular el
framework de desarrollo web Ruby on Rails.1
b) Estructura
Ruby es una mezcla de lenguajes (Perl, Smalltalk, Eiffel, Ada y Lisp) por lo tanto
incorporara tanto la programacin funcional como la imperativa.
En Ruby, todo es un objeto. Se le puede asignar propiedades y acciones a toda
informacin y cdigo. La programacin orientada a objetos llama a las propiedades
variables de instancia y las acciones son conocidas como mtodos.
Ruby tiene un conjunto de otras funcionalidades entre las que se encuentran las
siguientes:
Manejo de excepciones, como Java y Python, para facilitar el manejo de
errores.
Tiene manejo de hilos (threading) independiente del sistema operativo.
De esta forma, tienes soporte multi-hilo en todas las plataformas en las
que corre Ruby.
Portable: se desarrolla mayoritariamente en GNU/Linux, pero corre en
varios tipos de UNIX, Mac OS X, Windows.
c) mbitos de comodidad
Ruby se utiliza esencialmente para el desarrollo de aplicaciones web, por lo que es
ampliamente utilizado, debido a que el crecimiento de estas aumenta
exponencialmente da a da.
d) Ejemplos
Las funciones se definen por la palabra clave def
def hola(programador)
puts "Hola #{programador}"
end
hola('Pepe')

# Hola Pepe

Definicin de clases
class Persona
def initialize(nombre)
@nombre = nombre
end
def saludar
"Hola, mi nombre es
#{@nombre}."
end
1 https://www.ruby-lang.org/es/about/
end
pepe = Person.new('Pepe')
puts pepe.saludar
# Hola, mi
nombre es Pepe

Excepciones
La captura se hace mediante rescue previo uso de begin:
begin
# Cdigo que puede dar problemas
rescue ClaseExcepcion1 =>
exception1
# Se ejecuta si se lanza una
ClaseExcepcion1
rescue ClaseExcepcion2 =>
exception2
# Se ejecuta si se lanza una
ClaseExcepcion2
rescue
# Captura cualquier excepcin
ensure
# Cdigo que siempre se ejecuta
end

e) Apreciacin personal
Ruby ha evolucionado muy bien. Un gran nmero de mtodos se han aadido he
incorporado en las clases y mdulos existentes, y el tamao de las libreras estndar
(las bibliotecas incluidas en la distribucin de Ruby) ha crecido enormemente, es
por ello que pensamos que ruby y su frameworks on rails son una potente
herramienta para la creacin y desarrollo de aplicaciones web potentes tanto en el
front como en el back-end.

5. PHP
Es un lenguaje de script de cdigo abierto ampliamente utilizado para el desarrollo
web y que puede ser embebido en HTML PHP se conoce como un lenguaje del lado
del servidor, eso es porque PHP no se ejecuta en el equipo de uno, pero s en el
equipo del que solicita la pgina, los resultados son entregados a uno, y se muestran
en el navegador.
Ventajas:
Gratuito: es de cdigo abierto y desarrollado y actualizado por una
comunidad de desarrolladores de todo el mundo. Todos sus componentes son
de libre distribucin y uso.
Poderoso: Puede ser usado para disear cualquier tipo de sitio web y
manejar altas cantidades de trfico. Facebook, Twitter, Wikipedia y muchos
otros sitios conocidos lo utilizan.
Es independiente de la plataforma, corre en la mayoria de los sistemas
operativos como Linux, UNIX, Mac OS y Windows.
a) Penetracin estimada en el mercado
PHP es usado un 81.9% de todos los sitios web que usan programacin por
el lado del servidor, ya que soporta la mayora de las bases de datos y
servidores web
b) Estructura

Entre las caractersticas de PHP, estn la inclusin de la visibilidad, clases y


mtodos abstractos y finales, mtodos mgicos, interfaces, clonacin y
determinacin de tipos.
PHP trata los objetos de la misma manera que las referencias o manejadores,
lo que significa que cada variable contiene una referencia a un objeto en
lugar de una copia de todo el objeto.
c) mbitos de comodidad
Script utilizado para programacin web por el lado del servidor con acceso a
informacin almacenada en bases de datos tanto SQL como NoSQL tales
como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL Server,
Firebird, SQLite o MongoDB.
d) Ejemplos
Ejemplo de cdigo php incrustado dentro de un html, que muestra "Hola,
soy un script de PHP!). El cdigo de PHP est encerrado entre las etiquetas
especiales de comienzo y final <?php y ?> que permiten entrar y salir del
"modo PHP".
<html>
<head>
<title>Ejemplo</title>
</head>
<body>

<?php
echo "Hola, soy un script de PHP!";
?>
</body>
</html>

El cliente solo recibir el resultado de ejecutar el script, aunque no se sabr


el cdigo subyacente que era. Por lo tanto solo ser un html con la respuesta:

<html>
<head>
<title>Ejemplo</title>
</head>
<body>
Hola, soy un script de PHP!
</body>
</html>

e) Apreciacin personal
PHP es un potente lenguaje ya que permite interactuar con muchos tipos de
bases de datos, hay gran variedad de frameworks para trabajar lo que facilita
mucho su implementacin y posee una extensa documentacin.

6. C
C es un lenguaje potente y flexible que proporciona una rpida ejecucin del
programa e impone pocas restricciones al programador. Esto hace que sea til para
cualquier tipo de programa
El potencial de C y su rpida ejecucin de programas proviene de su capacidad para
acceder a comandos de bajo nivel, similar al lenguaje ensamblador, pero con una
sintaxis de alto nivel. Esta flexibilidad proviene de las muchas maneras en que el
programador tiene que realizar las mismas tareas. C incluye operadores de bits junto
con potentes capacidades para la manipulacin de punteros. La principal muestra de
esto, est la falta de comprobacin de la sintaxis. Esto puede ser una gran ventaja
para un programador experimentado, pero una desventaja peligrosa para un novato.
Ventajas:
Modularidad. Las secciones de cdigo pueden ser almacenados en las bibliotecas
para su reutilizacin en futuros programas.
Es un lenguaje muy flexible que permite programar con mltiples estilos. Uno de
los ms empleados es el estructurado "no llevado al extremo"
Punteros a funciones y variables estticas, que permiten una forma rudimentaria de
encapsulado y polimorfismo.
a) Penetracin estimada en el mercado
C es utilizado para el desarrollo de sistemas operativos, programacin a
nivel de sistema, Sistemas Embebidos (incluyendo varios tipos de
microcontroladores como PIC, ARM, y micro-procesadores), RTOS,
compiladores, programacin web usando CGI y aplicaciones de
administracin de memoria.
b) Estructura
C usa el paradigma de la programacin imperativa, que describe la
programacin en trminos del estado del programa y sentencias que cambian
dicho estado.
c) mbitos de comodidad
Programacin de sistemas operativos
d) Ejemplos
Este programa imprime un Hola Mundo, la librera printf es usada para
mostrar el texto en pantalla, '\n' posiciona el cursor al inicio de la lnea de
texto, la cabecera stdio.h contiene las declaraciones de la funcin printf.
//C hello world example
#include <stdio.h>
int main()
{
printf("Hola Mundo\n");
return 0;
}

Ejemplo de un programa que suma 2 nmeros ingresados por el usuario.


Para esto, se debe crear una funcin especificando el tipo de dato de retorno,
y de igual manera a cada variable declarada.
#include<stdio.h>

int main()
{
int a, b, c;
printf("Enter two numbers to add\n");
scanf("%d%d",&a,&b);
c = a + b;
printf("Sum of entered numbers = %d\n",c);
}

return 0;

e) Apreciacin personal
C es un lenguaje simple y expresivo, su sintaxis y semntica es potente y
dinmica, hace que sea fcil razonar acerca de los algoritmos de alto nivel y
del hardware de bajo nivel a la vez, se puede usar en lenguajes de script,
cdigo para el kernel, cdigo embebido, etc.. La optimizacin en C es
directa y simple.

7. Bibliografa
a) About LUA, http://www.lua.org/about.html, last review: martes 14
julio,2015.
b) Lua Uses, http://lua-users.org/wiki/LuaUses, last review: martes14 julio
2015.
c) Documentatio GO, https://golang.org/doc/, last review: Viernes 17 julio
2015.
d) The C Programming Language,
http://groups.engin.umd.umich.edu/CIS/course.des/cis400/c/c.html, last
review: viernes 17 julio 2015.
e) Versions of PHP, http://w3techs.com/technologies/details/pl-php/all/all,
last review: viernes 17 julio 2015.
f) Why use R? , http://www.inside-r.org/why-use-r, viernes 17 julio 2015.
g) About R, http://www.r-project.org/about.html, last review: viernes 17 julio
2015.

También podría gustarte