Open rodrigogs opened 2 years ago
Confirmo #here
Vamos abrir o jogo e botar na mesa, que essa religiosidade veio boa parte do pessoal da pagarme e das fintechs de pagamentos (e dos amigos de quem trabalhava nessas empresas), pq se vc for ver é tudo um grupinho de amigos que andam juntos, frequentam eventos juntos, saem juntos, moram juntos, comem juntos, frequentam os mesmos grupos e tal.
O que não tem nada de errado ou ruim, mas eu acho que a "fonte" (início) veio por parte deles. A APDA tem um dedinho nisso, acho que lá sempre divulgaram bastante coisa.
E acho que tudo isso começou no JS com a pregação de uso do "map, filter, reduce" alguns anos atrás, depois evoluiu pra Ramda, e langs como Clojure, Haskell, Scheme/Racket, Elixir e daí nasceram novos discípulos e evangelistas dessas outras langs.
Só que no JS o legal é que ele é híbrido. Tu pode(e deve) usar essas ferramentas funcionais, mas não precisa fazer tudo funcional o tempo todo.
O que eu não sei de onde vem é essa pira de que linguagens funcionais são "melhores por natureza", e que você deveria fazer TUDO funcional. Isso é igual aquela história de "SQL é velho, você precisa usar NoSQL", olha no que deu...
E sim, concordo que essa seita ocultista começou através desses grupinhos das fintechs.
Também tem aqueles professores idosos e viciados em Haskell, é daí que sai aquele grupo de borther de faculdade que abre uma fintech que só usa Elixir.
Não existe bala de prata, mas eu acredito que elas são na maioria das vezes melhores por natureza, por causa do paralelismo nativo, imutabilidade, poder retornar funções já pré-computadas (currying, ou partial function application) e receber funções diretas como argumentos... Geralmente quase tudo em linguagens funcionais são funções.
Em Haskell por exemplo se vc fizer let f x = x*x + 4
o f
não é uma variável, é uma função! e o x
é o primeiro argumento dela.
Acredito que esse hype funcional no Brasil chegou meio tarde. No inicio dos anos 2000 já era amplamente ensinado FP no MIT como primeiro contato com programação, usando o famoso livro Structure and Interpretation of Computer Programs (SICP), cuja disciplina também era ministrada pelo autor.
Curiosidade minha em particular é que eu não conheci ninguém até hoje quem trabalha com desenvolvimento de linguagens de programação ou simplesmente parsers que não gostam de FP. Todos que conheci usam coisas como COQ, Idris, Agda, ou Haskell.
Eu entrei nessa parada de religião porque queria uma forma mais fácil de fazer freelas e projetos pessoais. E todos os projetos que tenho visto em .NET usam a tal da "arquitetura orientada a pastinhas" que ensinam nesses cursos de qualidade questionável.
E eu, claro, só sabia trabalhar assim. Até que um dia um cara postou no twitter que tinha migrado pra F# e reduzido o tempo de entrega, bugs e mesmo, o número necessário de devs. E eles estavam bem felizes. Eu fiquei curioso porque naquele momento eu tava fazendo um projeto pessoal usando a arquitetura orientada a pastinhas.
Parei e vi o curso de DDD do Scott Domain Modeling Made Functional - foi realmente um divisor de águas. E de fato, acabei ficando absurdamente desanimado em ter que ganhar a vida usando C#.
Com o tempo eu consegui usar F# em algumas oportunidades no Brasil e até mesmo agora, na Irlanda. Mas de fato, todo mundo caga pra funcional e na minha visão mais madura, tá tudo bem! Não é porque eu tive uma alegria ao conhecer programação funcional que os demais profissionais são ruins ou inferiores. Eles simplesmente não se interessaram (ainda) por isso e beleza. Antigamente eu era evangelista, mas agora, sou apenas um autoflagelista, trabalhando com C# e ganhando os dinheiros que dá.
Mas claro, pessoalmente eu acho impossível não continuar progredindo em FP. Meu maior interesse agora é Scala (sou fã de programação funcional tipada) e quem sabe um dia, eu consiga chegar a entender alguma coisa de Haskell.
Como provavelmente vai vir uma galera de funcional aqui gostaria de deixar um pedido de indicações, se possível em Português (se não tiver pode indicar em inglẽs), de material para iniciar estudos sobre a programação funcional. Muito obrigado desde já.
Tem esse curso de um cara foda, brasileiro: https://github.com/Guilherme775/Haskell4Noobs
@mariomeyrelles F# é uma das poucas tecnologias de domínio da Microsoft que me agrada tbm, eu tenho curiosidade de aprender
@jvhk cara, um dia eu comecei a ler o Learn You a Haskell for Great Good li acho que 2 ou 3 capítulos, parece bem interessante. Está em inglês, espero que isso não seja um problema.
Olha só como é religião mesmo, já tem até gente vendendo curso aqui.
Meu curso é gratuito. Ah, e vai ter Meetup nesta sexta com ex-alunos. Quem quiser participar é só dizer. Vai ser em inglês.
Primera vez que eu comento algo em um tópico assim, acho que dessa vez eu consigo melhorar a discussão de alguma forma. Caso esse comment não faça sentido e ou não está agregando eu com todo o prazer posso deletar o mesmo
Funcional é uma ferramenta como qualquer outra.
Mas me dizer que uma função pura não é bonita é pegado. Para deixar a discussão mais interessante eu gosto deixar esses videos que me fizeram correr atrás de outras formas de melhorar como eu trabalho no meu dia-dia, seja pensando em outra forma de trabalhar os problemas ou simplismente saber o pq de algo ser do jeito que é. Minhas recomendações são (tudo está no yt): Object-Oriented Programming is Bad - Video Why Isn't Functional Programming the Norm? – Richard Feldman Functional Programming in 40 Minutes • Russ Olsen • GOTO 2018 Imagem só para dar uma brincada com o tema
Você não pode dizer que é um programador melhor só porque buscou aprender funcional, e não tem nada de tão especial assim em uma função pura(é bom, só). Esse é o mesmo efeito que o NoSQL teve quando emplacou, e isso só cria gente empinada, que se "recusa a trabalhar" com coisa "velha"(funcional também é).
Uso funcional quase todos os dias, onde preciso... mas essa soberba aí de quem acha que deveria ser tudo funcional é ridícula!
Acho que se 'recusar a trabalhar' fala mais sobre a maturidade do programador do que com a capacidade técnica dele, ele está ignorando o 'contexto'.
Talvez o que incomode a ponto desse tópico existir é o fato das pessoas ficarem deslumbradas com algo novo, a ponto de depreciar os modelos tradicionais para que a nova ideia sobressaia, quando existe espaço para que tudo coexista.
Acho que se 'recusar a trabalhar' fala mais sobre a maturidade do programador do que com a capacidade técnica dele, ele está ignorando o 'contexto'.
Talvez o que incomode a ponto desse tópico existir é o fato das pessoas ficarem deslumbradas com algo novo, a ponto de depreciar os modelos tradicionais para que a nova ideia sobressaia, quando existe espaço para que tudo coexista.
Válido, concordo.
OO um dia foi o novo (depois da programação funcional, que é mais velha) e as pessoas também vendiam suas qualidades comparando, talvez de forma injusta, com outras abordagens.
Não é! Que religião prega a preguiça??? :)
"Haskell: Programação Funcional Preguiçosa Pedro Castilho"
@adolfont pois é, o Castilho tá no balaio aí dos que evangelizam e espalham FP.
E quando ele se refere a "computação preguiçosa" ele se refere a um dos talvez mais poderosos recursos de haskell: Lazy Loading
Não tenho nada contra funcional, e inclusive gosto. Mas é inegável que quem programa funcional fala do funcional igual quem faz crossfit fala do crossfit.