O que é que o Java não tem?
Upcoming SlideShare
Loading in...5
×
 

O que é que o Java não tem?

on

  • 1,345 views

 

Statistics

Views

Total Views
1,345
Views on SlideShare
1,135
Embed Views
210

Actions

Likes
3
Downloads
2
Comments
0

8 Embeds 210

http://deniscostadsc.blogspot.com.br 179
http://deniscostadsc.blogspot.ru 15
http://deniscostadsc.blogspot.com 7
https://twimg0-a.akamaihd.net 3
https://twitter.com 3
http://www.linkedin.com 1
http://deniscostadsc.blogspot.com.es 1
http://deniscostadsc.blogspot.it 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    O que é que o Java não tem? O que é que o Java não tem? Presentation Transcript

    • O que eh que o java nao tem?
    • Denis costa@deniscostadsc
    • Etb fatec open source linux regex web python Coding dojotraducao django javascript comunidade
    • sou programador
    • 2006 – pascal, delphi2007 – shell script, regex2008 – python2010 – Javascript2011 – C, java2012 – javascript
    • 2006 – pascal, delphi2007 – shell script, regex2008 – python2010 – Javascript2011 – C, java2012 – javascript
    • Por que aprenderjavascript de novo?
    • de novo nao, de verdade
    • 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
    • vai dizer que essasgambiarras sao boas?
    • essas coisas naosao gambiarras,e eu vou explicar o motivo
    • Pascal == C == java
    • Abra sua mente
    • afinal, o que eh que ojava nao tem?
    • tipagemdinamica
    • Variaveis sem tipo variavel objeto
    • Checagem de tipos em tempo de execucaonumber = (1..100).to_a.choiceif number == 42 # runtime error puts(4 + 2)end
    • Pros econtras
    • Contras- Sem checagem em tempo de compilacao
    • pros- sem casting- sem interfaces ou classes em comum
    • Quem tem? Ruby, Python,Javascript, Php, lua perl, smalltalk...
    • Ducktyping
    • "quando eu vejo um passaroque anda como um pato, nadacomo um pato e grasna como um pato, eu chamo essa passaro de pato." James Whitcomb Riley
    • alex martelli
    • interfaceimplicita
    • polimorfismosem interfaces ou heranca
    • def foo(my_object): my_object.my_method()
    • my_object[1]
    • my_object.__getitem__(1)
    • Quem tem? Ruby, Python,Javascript, Php, perl,smalltalk, C#, lua...
    • Passagemflexivel deparametros
    • def foo(*args): passfoo()foo(1, 2, 3, 4, 5)foo(*[1, 2, 3, 4, 5])
    • def foo(**kwargs): passfoo()foo(a=1, b=2, c=3)foo(**{a: 1, b: 2, c: 3})
    • def foo(param=True): passfoo()foo(False)foo(param=False)
    • def foo(param, param_two=True, *args, **kwargs): pass
    • semsobrecargade metodos
    • Quem tem?Python, ruby, lua, Javascript*...
    • first classfunctions
    • funcoes saoobjetos comuns,como inteiros e strings
    • podem ser passadas como parametro eretornadas como valor de outra funcao
    • def calculate(number, functions): for function in functions: number = function(number) return numberdef sum_one(number): return number + 1def multiply_two(number): return number * 2def power_three(number): return number ** 3functions = [sum_one, multiply_two, power_three]print calculate(2, functions)
    • def my_map(function, items): result = [] for item in items: result.append(function(item)) return result
    • 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>
    • Quem tem?Python, ruby, lua,Javascript, c++*, lisp...
    • closure
    • eh umanecessidade de funcoes deprimeira classe
    • var counter = function () { var number = 0; return function () { return ++number; };}();
    • 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
    • Quem tem?Python, ruby, lua,Javascript, c++*, lisp...
    • listcomprehension
    • inspirado nosconjuntos da matematica
    • cria listabaseado em lista existente
    • even = [s for s in range(1001) if s % 2 == 0]
    • Quem tem?Python, ruby, erlang, scala, smalltalk...
    • lambda functions
    • funcao declarada que pode ser executada semestar ligada a uma referencia
    • lambda x: x + x
    • lambda{|x| x + x}
    • (int x) -> x + x() -> 42(String s) -> { System.out.println(s); }
    • map(lambda x: x + x, [1, 2, 3, 4])
    • Quem tem?Python, ruby, javascript, lua, erlang, scala, smalltalk, java*...
    • Obrigado Q & A