Los lenguajes de la web

25

description

 

Transcript of Los lenguajes de la web

Page 1: Los lenguajes de la web
Page 2: Los lenguajes de la web

“Los  lenguajes    de  la  web”;  

Roberto Luis Bisbé - @rlbisbe

Page 3: Los lenguajes de la web
Page 4: Los lenguajes de la web

¿Qué hay en la web?

Frontend HTML

CSS

Javascript

Flash

Silverlight

Applets…

Backend PHP

Java EE

.NET

Python

Ruby

Scala

Clojure…

Datos *SQL

Oracle

XML

JSON

Page 5: Los lenguajes de la web

¿De qué vamos a hablar?

Lenguajes de programación menos “serios”

Formatos de marcado

Formatos de datos

Page 6: Los lenguajes de la web

PROGRAMACIÓN

Page 7: Los lenguajes de la web

Características comunes

Dinámicos

Orientados a objetos

Licencias Open Source

Comunidad

Page 8: Los lenguajes de la web

Javascript

Nada que ver con Java

Frameworks (jQuery, Prototype, Mootools)

Implementación en los navegadores web

Usado por: –  Todo el mundo…

Page 9: Los lenguajes de la web

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’/>  

Page 10: Los lenguajes de la web

Server-side Javascript:

var  http  =  require('http');          http.createServer(function  (request,  response)  {                  response.writeHead(  

         200,              {'Content-­‐Type':  'text/plain'}          );  

               response.end('Hello  World\n');          }).listen(8000);    console.log('Server  running  at  http://localhost:8000/');  

demo

Page 11: Los lenguajes de la web

Multiparadigma

Soporte para bibliotecas científicas

Usado por: –  Instagram

–  SageMath

Page 12: Los lenguajes de la web

#!/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()  

Page 13: Los lenguajes de la web

Alta abstracción y legibilidad Multiples frameworks (Rails, Sinatra) Sistema de paquetes (gemas)

Usado por: – GitHub

Page 14: Los lenguajes de la web

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

Page 15: Los lenguajes de la web

Programación funcional Rendimiento++ Compatible con bibliotecas java y C# •  Quien lo usa? – Twitter –  foursquare

Page 16: Los lenguajes de la web

def  qsort:  List[Int]  =>  List[Int]  =  {      case  Nil  =>  Nil      case  pivot  ::  tail  =>          val  (smaller,  rest)  =  tail.partition(_  <  pivot)          qsort(smaller)  :::  pivot  ::  qsort(rest)  }    

Page 17: Los lenguajes de la web

Alternativa en Java import  java.io.*;  import  java.util.*;    public  class  QuickSort  {        public  static  void  swap  (int  A[],  int  x,  int  y)        {              int  temp  =  A[x];              A[x]  =  A[y];              A[y]  =  temp;        }    public  static  int  partition(int  A[],  int  f,  int  l)        {              int  pivot  =  A[f];  

           while  (f  <  l)              {                    while  (A[f]  <  pivot)  f++;                    while  (A[l]  >  pivot)  l-­‐-­‐;                    swap  (A,  f,  l);              }              return  f;        }          public  static  void  Quicksort(int  A[],  int  f,  int  l)        {              if  (f  >=  l)  return;              int  pivot_index  =  partition(A,  f,  l);              Quicksort(A,  f,  pivot_index);              Quicksort(A,  pivot_index+1,  l);        }  

Page 18: Los lenguajes de la web

MARCADO

Page 19: Los lenguajes de la web

!!!  %head          %title  BoBlog          %link{"rel"  =>  "stylesheet",  "href"  =>  "main.css",  "type"  =>  "text/css"}      %body          #header              %h1  BoBlog              %h2  Blog  de  Bob          #content              -­‐  @entries.each  do  |entry|                  .entry                      %h3.title=  entry.title                      %p.date=  entry.posted.strftime("%A  %d  de  %B  de  %Y")                      %p.body=  entry.body          #footer              %p  

Page 20: Los lenguajes de la web

Razor

<ul>                  @for  (var  i  =  0;  i  <  5;  i++)          {                  <li>@i</li>          }          </ul>    @{        var  name  =  “Gilberto  Salazar”;        <div>            Nombre:  @name        </div>  }  

Page 21: Los lenguajes de la web

DATOS

Page 22: Los lenguajes de la web

JSON  {"menu":  {        "id":  "file",        "value":  "File",        "popup":  {            "menuitem":  [                {"value":  "New",  "onclick":  "CreateNewDoc()"},                {"value":  "Open",  "onclick":  "OpenDoc()"},                {"value":  "Close",  "onclick":  "CloseDoc()"}            ]        }    }}  

demo

Page 23: Los lenguajes de la web

Alternativa en XML

<menu  id="file"  value="File">      <popup>          <menuitem  value="New"  onclick="CreateNewDoc()"  />          <menuitem  value="Open"  onclick="OpenDoc()"  />          <menuitem  value="Close"  onclick="CloseDoc()"  />      </popup>  </menu>  

Page 24: Los lenguajes de la web

Recursos de aprendizaje

•  Javascript –  http://www.codecademy.com/courses –  http://nodejs.org/

•  Python

–  http://docs.python.org/tutorial/

•  Ruby –  http://www.ruby-lang.org/es/documentation/quickstart/

•  Scala –  http://www.scala-lang.org/docu/files/ScalaByExample.pdf

Page 25: Los lenguajes de la web

Gracias

http://rlbisbe.net