4. ¿Qué hay en la web?
Frontend Backend Datos
HTML PHP *SQL
CSS Java EE Oracle
Javascript .NET XML
Flash Python JSON
Silverlight Ruby
Applets… Scala
Clojure…
5. ¿De qué vamos a hablar?
Lenguajes de programación menos “serios”
Formatos de marcado
Formatos de datos
8. Javascript
Nada que ver con Java
Frameworks (jQuery, Prototype, Mootools)
Implementación en los navegadores web
Usado por:
– Todo el mundo…
9. Client-side javascript:
Manejo del DOM
function
notEmpty(){
var
myTextField
=
document.getElementById('myText');
if(myTextField.value
===
"")
alert(“Introduzca
un
valor
en
el
campo”)
}
<input
type='text'
id='myText'
/>
<input
type=’button’
onclick=’notEmpty()’
value=Click’/>
12. #!/usr/bin/env
python
import
sys
import
os
def
main():
i
=
open('in.txt')
o
=
open('out.php','w')
o.write("<?php
$data
=
array(n")
counter
=
1
for
line
in
i:
data
=
line.split("n")
o.write(
str(counter)
+
'=>
"'
+
data[0]
+
'",n')
counter
+=1;
o.write(");n?>")
if
__name__
==
'__main__':
main()
13. Alta abstracción y legibilidad
Multiples frameworks (Rails, Sinatra)
Sistema de paquetes (gemas)
Usado por:
– GitHub
14. class
Anfitrion
def
initialize(nombre
=
"Mundo")
@nombre
=
nombre
end
def
decir_hola
puts
"Hola
#{@nombre}"
end
def
decir_adios
puts
"Adiós
#{@nombre},
vuelve
pronto."
end
end
demo
16. def
qsort:
List[Int]
=>
List[Int]
=
{
case
Nil
=>
Nil
case
pivot
::
tail
=>
val
(smaller,
rest)
=
tail.partition(_
<
pivot)
qsort(smaller)
:::
pivot
::
qsort(rest)
}
17. Alternativa en Java
import
java.io.*;
while
(f
<
l)
import
java.util.*;
{
while
(A[f]
<
pivot)
f++;
public
class
QuickSort
while
(A[l]
>
pivot)
l-‐-‐;
{
swap
(A,
f,
l);
public
static
void
swap
(int
A[],
int
x,
}
int
y)
return
f;
{
}
int
temp
=
A[x];
A[x]
=
A[y];
public
static
void
Quicksort(int
A[],
A[y]
=
temp;
int
f,
int
l)
}
{
if
(f
>=
l)
return;
public
static
int
partition(int
A[],
int
f,
int
pivot_index
=
partition(A,
f,
l);
int
l)
Quicksort(A,
f,
pivot_index);
{
Quicksort(A,
pivot_index+1,
l);
int
pivot
=
A[f];
}