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

Sua Linguagem Preferida - a sua maior fraqueza.

Sua Linguagem Preferida - a sua maior fraqueza.

A maioria dos programadores, se não todos, pode dizer que tem uma linguagem preferida. O que é muito natural, aquela linguagem em que nos sentimos fluentes. Mas em que idioma pensam pessoas poliglotas? Sabe aquele exemplo clássico da palavra saudade que só existe em PT-BR? É discutível: mas já pensou que a riqueza de vocabulário (ou mesmo fluência em vários idiomas) pode mudar a forma como você enxerga o mundo? Podemos aplicar as mesmas ideias quando se trata de programação? É sobre as fronteiras que ficam entre as linguagens de programação que eu quero conversar.

Ricardo Valeriano

November 28, 2015
Tweet

More Decks by Ricardo Valeriano

Other Decks in Programming

Transcript

  1. I don't think that we think in language, or think

    in words. I think we think in visual images, we think in auditory images, we think in abstract propositions about what is true about what. And I think that language is a way of communicating thoughts, of getting them out of one head and into another by making noise. "steven pinker
  2. I don't think that we think in language, or think

    in words. I think we think in visual images, we think in auditory images, we think in abstract propositions about what is true about what. And I think that language is a way of communicating thoughts, of getting them out of one head and into another by making noise. "steven pinker
  3. um

  4. .

  5. knows: - ruby - js - java - csharp valeriano

    hates: - csharp likes: - ruby
  6. @valeriano = { name: "valeriano", knows: %i{ ruby java csharp

    js }, likes: %i{ ruby js }, hates: %i{ csharp } } #knows(valeriano, ruby). #likes(valeriano, ruby). #hates(valeriano, csharp).
  7. # teaches(person, lang) if # knows?(person, lang), # !hates?(person, lang)

    def teaches(person, lang) knows?(person, lang) && !hates?(person, lang) end
  8. # teaches(person, lang) if # knows?(person, lang), # !hates?(person, lang)

    def teaches(person, lang) knows?(person, lang) && !hates?(person, lang) end def knows?(person, lang) if person[:knows].include?(lang) return true end end
  9. @valeriano = { name: "valeriano", knows: %i{ ruby java csharp

    js }, likes: %i{ ruby js }, hates: %i{ csharp } }
  10. @valeriano = { name: "valeriano", knows: %i{ ruby java csharp

    js }, likes: %i{ ruby js }, hates: %i{ csharp }, gave: { %i{ java } } }
  11. @valeriano = { name: "valeriano", knows: %i{ ruby java csharp

    js }, likes: %i{ ruby js }, hates: %i{ csharp }, gave: { last_month: %i{ java } } }
  12. @folha = { name: "folha", knows: %i{ ruby csharp brainfuck

    }, likes: %i{ brainfuck }, hates: [], gave: { last_month: [] } }
  13. knows(valeriano, ruby). knows(folha, ruby). likes(valeriano, ruby). likes(folha, brainfuck). hates(valeriano, csharp).

    gave(valeriano, last_month, java). teaches(Person, Lang) :- knows(Person, Lang), \+ hates(Person, Lang), \+ gave(Person, last_month, Lang).
  14. … if I’m doing this work, and it feels hard

    and frustrating, but I KNOW that concurrency is becoming more and more important. And I know that there are languages like Erlang and many others that solve this [concurrency] well… I need to do something! " José Valim
  15. … if I’m doing this work, and it feels hard

    and frustrating, but I KNOW that concurrency is becoming more and more important. And I know that they are languages like Erlang and many others that solve this [concurrency] well… I need to do something! " José Valim
  16. This has been my first week with Elixir, and I’m

    pretty excited. Elixir has a non-scary syntax and combines the good features of Ruby and Erlang. It’s not Erlang and it’s not Ruby and it has ideas of its own. "Joe Armstrong
  17. Ricardo Valeriano sua linguagem preferida - a sua maior fraqueza

    - @sr_valeriano ricardovaleriano OBRIGADO!