69
O que eh que O que eh que o o java java nao nao tem? tem?

O que é que o Java não tem?

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: O que é que o Java não tem?

O que eh que O que eh que o o javajava nao nao

tem?tem?

Page 2: O que é que o Java não tem?

Denis costaDenis costa@deniscostadsc@deniscostadsc

Page 3: O que é que o Java não tem?

Etb Etb fatecfatec

open source open source linuxlinuxregexregex webweb pythonpython

Coding dojoCoding dojo traducao traducao django django javascriptjavascript

comunidadecomunidade

Page 4: O que é que o Java não tem?

sou programadorsou programador

Page 5: O que é que o Java não tem?

20062006 pascal, – pascal, – delphi delphi 20072007 shell script, regex– shell script, regex–20082008 python– python–20102010 Javascript– Javascript–20112011 C, java– C, java–20122012 javascript– javascript–

Page 6: O que é que o Java não tem?

20062006 pascal, – pascal, – delphi delphi 20072007 shell script, regex– shell script, regex–20082008 python– python–20102010 Javascript– Javascript–20112011 C, java– C, java–20122012 – – javascriptjavascript

Page 7: O que é que o Java não tem?

Por que aprender Por que aprender javascript de novo?javascript de novo?

Page 8: O que é que o Java não tem?

de novo nao, de novo nao, de verdadede verdade

Page 9: O que é que o Java não tem?

var fatorial = function () {

// Memoization var results = []; return function fat (n) { if(results[n]) return results[n]; if(n === 0) result = 1; else result = fat(n – 1) * n; results[n] = result; return results[n]; };}();

fatorial(5); // 120 - 6 recursoesfatorial(6); // 720 - 2 recursoes

Page 10: O que é que o Java não tem?

vai dizer vai dizer que essas que essas

gambiarras gambiarras sao boas?sao boas?

Page 11: O que é que o Java não tem?

essas coisas nao essas coisas nao sao gambiarras, sao gambiarras, e eu vou explicar e eu vou explicar

o motivoo motivo

Page 12: O que é que o Java não tem?

Pascal == C == javaPascal == C == java

Page 13: O que é que o Java não tem?

Abra sua menteAbra sua mente

Page 14: O que é que o Java não tem?

afinal, o queafinal, o queeh que oeh que o

java nao tem?java nao tem?

Page 15: O que é que o Java não tem?

tipagem tipagem dinamicadinamica

Page 16: O que é que o Java não tem?

Variaveis sem tipoVariaveis sem tipo

variavelvariavel objetoobjeto

Page 17: O que é que o Java não tem?

number = (1..100).to_a.choiceif number == 42 # runtime error puts('4' + 2)end

Checagem de tipos em Checagem de tipos em tempo de execucaotempo de execucao

Page 18: O que é que o Java não tem?

ProsProsee

contrascontras

Page 19: O que é que o Java não tem?

ContrasContras

- Sem checagem em tempo de compilacao- Sem checagem em tempo de compilacao

Page 20: O que é que o Java não tem?

prospros

- sem casting- sem casting- sem interfaces ou classes em comum- sem interfaces ou classes em comum

Page 21: O que é que o Java não tem?

Quem tem?Quem tem?

Ruby, Python, Ruby, Python, Javascript, Php, lua Javascript, Php, lua perl, smalltalk...perl, smalltalk...

Page 22: O que é que o Java não tem?

Duck Duck typingtyping

Page 23: O que é que o Java não tem?

"quando eu vejo um passaro "quando eu vejo um passaro que anda como um pato, nada que anda como um pato, nada como um pato e grasna como como um pato e grasna como

um pato, eu chamo essa um pato, eu chamo essa passaro de pato."passaro de pato."

James Whitcomb RileyJames Whitcomb Riley

Page 24: O que é que o Java não tem?

alex martellialex martelli

Page 25: O que é que o Java não tem?

interface interface implicitaimplicita

Page 26: O que é que o Java não tem?

polimorfismo polimorfismo sem interfaces sem interfaces

ou herancaou heranca

Page 27: O que é que o Java não tem?

def foo(my_object): my_object.my_method()

Page 28: O que é que o Java não tem?

my_object[1]

Page 29: O que é que o Java não tem?

my_object.__getitem__(1)

Page 30: O que é que o Java não tem?

Quem tem?Quem tem?

Ruby, Python, Ruby, Python, Javascript, Php, perl, Javascript, Php, perl, smalltalk, smalltalk, C#, lua...C#, lua...

Page 31: O que é que o Java não tem?

Passagem Passagem flexivel de flexivel de parametrosparametros

Page 32: O que é que o Java não tem?

def foo(*args): pass foo()foo(1, 2, 3, 4, 5)foo(*[1, 2, 3, 4, 5])

Page 33: O que é que o Java não tem?

def foo(**kwargs): pass foo()foo(a=1, b=2, c=3)foo(**{'a': 1, 'b': 2, 'c': 3})

Page 34: O que é que o Java não tem?

def foo(param=True): pass foo()foo(False)foo(param=False)

Page 35: O que é que o Java não tem?

def foo(param, param_two=True, *args, **kwargs): pass

Page 36: O que é que o Java não tem?

sem sem sobrecarga sobrecarga de metodosde metodos

Page 37: O que é que o Java não tem?

Quem tem?Quem tem?

Python, ruby, lua, Python, ruby, lua, JavascriptJavascript**......

Page 38: O que é que o Java não tem?

first first class class

functionsfunctions

Page 39: O que é que o Java não tem?

funcoes sao funcoes sao objetos comuns, objetos comuns, como inteiros e como inteiros e

stringsstrings

Page 40: O que é que o Java não tem?

podem ser podem ser passadas como passadas como parametro e parametro e

retornadas como retornadas como valor de outra valor de outra

funcaofuncao

Page 41: O que é que o Java não tem?

def calculate(number, functions): for function in functions: number = function(number) return number def sum_one(number): return number + 1 def multiply_two(number): return number * 2 def power_three(number): return number ** 3 functions = [sum_one, multiply_two, power_three] print calculate(2, functions)

Page 42: O que é que o Java não tem?

def my_map(function, items): result = [] for item in items: result.append(function(item)) return result

Page 43: O que é que o Java não tem?

var surround = function (tag) { return function (text) { return '<' + tag + '>' + text + '</' + tag + '>'; };};

strong = surround('strong');small = surround('small');

strong('My text');// <strong>My text</strong>

small('My text');// <small>My text</small>

Page 44: O que é que o Java não tem?
Page 45: O que é que o Java não tem?
Page 46: O que é que o Java não tem?

Quem tem?Quem tem?

Python, ruby, lua, Python, ruby, lua, Javascript, c++Javascript, c++**, ,

lisp...lisp...

Page 47: O que é que o Java não tem?

closureclosure

Page 48: O que é que o Java não tem?

eh uma eh uma necessidade de necessidade de

funcoes de funcoes de primeira classeprimeira classe

Page 49: O que é que o Java não tem?

var counter = function () { var number = 0; return function () { return ++number; };}();

Page 50: O que é que o Java não tem?

var fatorial = function () {

// Memoization var results = []; return function fat (n) { if(results[n]) return results[n]; if(n === 0) result = 1; else result = fat(n – 1) * n; results[n] = result; return results[n]; };}();

fatorial(5); // 120 - 6 recursoesfatorial(6); // 720 - 2 recursoes

Page 51: O que é que o Java não tem?

Quem tem?Quem tem?

Python, ruby, lua, Python, ruby, lua, Javascript, c++Javascript, c++**, ,

lisp...lisp...

Page 52: O que é que o Java não tem?

list list comprehensioncomprehension

Page 53: O que é que o Java não tem?

inspirado nos inspirado nos conjuntos da conjuntos da matematicamatematica

Page 54: O que é que o Java não tem?

cria lista cria lista baseado em baseado em

lista lista existenteexistente

Page 55: O que é que o Java não tem?

even = [s for s in range(1001) if s % 2 == 0]

Page 56: O que é que o Java não tem?

Quem tem?Quem tem?

Python, ruby, erlang, Python, ruby, erlang, scala, smalltalk...scala, smalltalk...

Page 57: O que é que o Java não tem?

lambda functionslambda functions

Page 58: O que é que o Java não tem?

funcao declarada funcao declarada que pode ser que pode ser

executada sem executada sem estar ligada a uma estar ligada a uma

referenciareferencia

Page 59: O que é que o Java não tem?

lambda x: x + x

Page 60: O que é que o Java não tem?

lambda{|x| x + x}

Page 61: O que é que o Java não tem?

(int x) -> x + x () -> 42 (String s) -> { System.out.println(s); }

Page 62: O que é que o Java não tem?

map(lambda x: x + x, [1, 2, 3, 4])

Page 63: O que é que o Java não tem?

Quem tem?Quem tem?

Python, ruby, javascript, Python, ruby, javascript, lua, erlang, scala, lua, erlang, scala, smalltalk, javasmalltalk, java**......

Page 64: O que é que o Java não tem?
Page 65: O que é que o Java não tem?
Page 66: O que é que o Java não tem?
Page 67: O que é que o Java não tem?
Page 68: O que é que o Java não tem?
Page 69: O que é que o Java não tem?

ObrigadoObrigado

Q & AQ & A