Upgrade to Pro — share decks privately, control downloads, hide ads and more …

O que é que o Java Não tem?

Denis Costa
December 18, 2012

O que é que o Java Não tem?

Denis Costa

December 18, 2012
Tweet

More Decks by Denis Costa

Other Decks in Technology

Transcript

  1. O que eh que O que eh que o o

    java java nao nao tem? tem?
  2. Etb Etb fatec fatec open source open source linux linux

    regex regex web web python python Coding dojo Coding dojo traducao traducao django django javascript javascript comunidade comunidade
  3. 2006 2006 pascal, – pascal, – delphi delphi 2007 2007

    shell script, regex – shell script, regex – 2008 2008 python – python – 2010 2010 Javascript – Javascript – 2011 2011 C, java – C, java – 2012 2012 javascript – javascript –
  4. 2006 2006 pascal, – pascal, – delphi delphi 2007 2007

    shell script, regex – shell script, regex – 2008 2008 python – python – 2010 2010 Javascript – Javascript – 2011 2011 C, java – C, java – 2012 2012 – – javascript javascript
  5. 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 recursoes fatorial(6); // 720 - 2 recursoes
  6. essas coisas nao essas coisas nao sao gambiarras, sao gambiarras,

    e eu vou explicar e eu vou explicar o motivo o motivo
  7. afinal, o que afinal, o que eh que o eh

    que o java nao tem? java nao tem?
  8. number = (1..100).to_a.choice if number == 42 # runtime error

    puts('4' + 2) end Checagem de tipos em Checagem de tipos em tempo de execucao tempo de execucao
  9. Contras Contras - Sem checagem em tempo de compilacao -

    Sem checagem em tempo de compilacao
  10. pros pros - sem casting - sem casting - sem

    interfaces ou classes em comum - sem interfaces ou classes em comum
  11. Quem tem? Quem tem? Ruby, Python, Ruby, Python, Javascript, Php,

    lua Javascript, Php, lua perl, smalltalk... perl, smalltalk...
  12. "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 Riley James Whitcomb Riley
  13. Quem tem? Quem tem? Ruby, Python, Ruby, Python, Javascript, Php,

    perl, Javascript, Php, perl, smalltalk, smalltalk, C#, lua... C#, lua...
  14. podem ser podem ser passadas como passadas como parametro e

    parametro e retornadas como retornadas como valor de outra valor de outra funcao funcao
  15. 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)
  16. def my_map(function, items): result = [] for item in items:

    result.append(function(item)) return result
  17. 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>
  18. Quem tem? Quem tem? Python, ruby, lua, Python, ruby, lua,

    Javascript, c++ Javascript, c++* *, , lisp... lisp...
  19. eh uma eh uma necessidade de necessidade de funcoes de

    funcoes de primeira classe primeira classe
  20. var counter = function () { var number = 0;

    return function () { return ++number; }; }();
  21. 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 recursoes fatorial(6); // 720 - 2 recursoes
  22. Quem tem? Quem tem? Python, ruby, lua, Python, ruby, lua,

    Javascript, c++ Javascript, c++* *, , lisp... lisp...
  23. Quem tem? Quem tem? Python, ruby, erlang, Python, ruby, erlang,

    scala, smalltalk... scala, smalltalk...
  24. funcao declarada funcao declarada que pode ser que pode ser

    executada sem executada sem estar ligada a uma estar ligada a uma referencia referencia
  25. (int x) -> x + x () -> 42 (String

    s) -> { System.out.println(s); }
  26. Quem tem? Quem tem? Python, ruby, javascript, Python, ruby, javascript,

    lua, erlang, scala, lua, erlang, scala, smalltalk, java smalltalk, java* *... ...