Alguém aqui já está usando Elm no frontend? #200
Replies: 21 comments
-
Invoco @matheusml! Sei que ele estava escrevendo sobre o assunto |
Beta Was this translation helpful? Give feedback.
-
Olha que maneiro, não tinha visto posts em português sobre o Elm, apesar de ter bastante brazuca falando sofre em inglês. Valeu @woliveiras Já assinei a newsletter do @matheusml também! @matheusml vc está usando em algum projeto em produção? |
Beta Was this translation helpful? Give feedback.
-
E aí galera :) Eu fiz uma palestra recentemente, Elm: Front-End do jeito certo, e nela eu respondi exatamente a mesma pergunta. Na palestra eu respondi que vou continuar ligado na linguagem Elm, nas mudanças que acontecem nela e nos membros da comunidade, mas eu ainda não vejo o Elm como production-ready pra nossas aplicações do dia-a-dia. Abraços! |
Beta Was this translation helpful? Give feedback.
-
@matheusml lá fora já tem gente usando, como a @NoRedInk e a Pretzi. Acredito que a linguagem sim já esteja production ready em termos de estabilidade e features, o que pode impactar provavelmente é o tamanho da comunidade que ainda é pequeno. Mas se vc se envolver nas listas de dicussões, Slack e IRC, você consegue obter ajuda muito rapidamente, eu to conseguindo ir bem com a implementação do Decora em Elm. |
Beta Was this translation helpful? Give feedback.
-
Sim, eu conheço o case da NoRedInk, da Pretzi e da Dreamwriter. Portanto, se temos esses casos reais podemos inferir que é possível sim construir aplicações com a linguagem. Ser possível não significa ser ideal. Quando eu digo que Elm ainda não é production-ready, o que eu quis dizer é que eu não escolheria o Elm hoje para uma aplicação em produção, por não ser a escolha ideal (ainda). E quando eu digo isso, eu tenho que pensar em múltiplos fatores:
Nós recebemos para entregar o máximo de valor possível, no menor tempo possível. Com esses 4 pontos anteriores, não acredito que Elm tenha um custo/benefício melhor do que Angular ou React. Espero ter sido mais claro dessa vez. Abraços! |
Beta Was this translation helpful? Give feedback.
-
Da pra se acostumar a escrever a UI com function calls ao invés de declarar algum markup? Isso me afastou o Elm. Enquanto você vê HelloWorlds parece ok, mas fico imaginando fazer um "HTML" com mais elementos e coisas aninhadas daquela forma deve ser sinistro. |
Beta Was this translation helpful? Give feedback.
-
@leocavalcante se vc pensar bem vc já faz isso com React, quando vc cria um component na realidade vc tá criando uma funcão que vai renderizar html, exatamente como o Elm faz. No caso do React, o JSX dá uma "mascarada" nisso e deixa a sintaxe um pouco mais "HTML-like" mas depois tudo é convertido pra algo do tipo React.createElement.... @matheusml eu concordo com os fatores que vc colocou, a falta de um ecosistema grande e sólido é realmente um ponto a se considerar, além é claro dos problemas de retro-conmpatibilidade que todas as versões pré-1.0 podem ter. Mas, por outro lado, acho que as vantagens são muito mais interessantes:
Mas acredito que ainda há muito que evoluir, principalmente falando em comunidade e ecossistema, mas acho que o "advento" da programação funcional vai ajudar o Elm, assim como outras linguagens funcionais como Purescript, se popularizarem também no frontend. |
Beta Was this translation helpful? Give feedback.
-
Isso @douglascorrea, o JSX existe justamente pra você não precisar fazer o que é feito no Elm. Porque declarar a UI com markups soa muito mais natural do que com function calls. E não é questão de costume com HTML, é sobre legibilidade mesmo, imagina uma tree view gigante. Um cara no Slack do Elm falou que tem um projeto pra fazer uma especie de JSX pra ele. |
Beta Was this translation helpful? Give feedback.
-
@leocavalcante engraçado que a markup do JSX e também das diretivas do angular é uma das coisas que eu não gosto dos framework/libraries frontend. Pq, de qualquer forma, via markup ou function, vc estará misturando lógica com apresentação. Por exemplo o CycleJS usa o hyperscript para implementar HTML usando funções ao invés de markup como o JSX. Eu penso que se vc está escrevendo Javascript, não tem pq você misturar linguagem de marcação. Por isso JSX fica "estranho". Além do que, as funções HTML do Elm são simples de serem entendidas: primeiro parâmetro atributos (props do React/JSX) do elemento, segundo parâmetro os filhos (children do React/JSX). Sobre a legibilidade num caso de uma tree view gigante, assim como vc faria com React ou Angular "componentizando" cada item dessa tree view, vc pode (e deve) fazer exatamente o mesmo com Elm. Na realidade com relação a criar componentes Elm e React são bem parecidos. Você pode comparar usando http://magic.reactjs.net/htmltojsx.htm para Html -> React/JSX e http://mbylstra.github.io/html-to-elm/ para fazer HTML -> Elm. Veja como fica esse exemplo: HTML <div class="awesome" style="border: 1px solid red">
<label for="name">Enter your name: </label>
<input type="text" id="name" />
</div>
<p>Enter your HTML here</p> React/JS var NewComponent = React.createClass({
render: function() {
return (
<div>
{/* Hello world */}
<div className="awesome" style={{border: '1px solid red'}}>
<label htmlFor="name">Enter your name: </label>
<input type="text" id="name" />
</div>
<p>Enter your HTML here</p>
</div>
);
}
}); Elm newComponent = div []
[ div [ class "awesome", attribute "style" "border: 1px solid red" ]
[ label [ for "name" ]
[ text "Enter your name: " ]
, input [ id "name", type' "text" ]
[]
]
, p []
[ text "Enter your HTML here" ]
] Acho, inclusive, Elm mais legível que React/JSX, principalmente se vc começar a colocar componentes no meio. |
Beta Was this translation helpful? Give feedback.
-
É, como falei antes deve ser questão de costume, inclusive no Slack o pessoal falou: "Sim, as pessoas aprendem a se acostumar com isso" kkk. Fazendo várias vezes uma hora fica mais automático pra bater o olho e saber o que tá acontecendo. |
Beta Was this translation helpful? Give feedback.
-
@douglascorrea vim abrir uma issue justamente sobre isso que você comentou aqui, e meu pensamento hoje está totalmente alinhado e de acordo com o que você citou aqui. Viu mais alguma coisa que mudou sua visão em relação ao Elm? "Vendo de fora", os benefícios são muito grandes e claros em relação a manutenabilidade de um grande projeto. Vou investir um tempo para aprender Elm 😄 |
Beta Was this translation helpful? Give feedback.
-
@ericdouglas o que eu vi foi a comunidade Elm crescer ainda mais. Eu também comecei a trabalhar com Elixir, e as duas comunidades são bem ligadas. Vejo muita gente no Slack de Elm falando de Elixir e vice-versa. Vai com tudo que vc só tem a ganhar, mesmo que não esteja usando no trabalho, os conceitos irão fazer você pensar diferente. Recomendo essa playlist com os vídeos da ElmConf 2016 |
Beta Was this translation helpful? Give feedback.
-
Eu não tenho certeza de como vai ser o futuro, mas já faz algum tempo que tenho estudado funcional, acho fantástico os conceitos e divertido de aplicar. |
Beta Was this translation helpful? Give feedback.
-
Fala galera, tudo bem? Muito interessante a discussão de vocês. ;) Agradeço também pelas dicas, artigos e pela tradução do livro Mostly Adequate Guide to Functional Programming feita pelo @expalmer. Aliás, já li o livro traduzido quase por completo. Também decidi contribuir traduzindo para pt-BR o manual de Elm do projeto Learn X in Y minutes. Espero que gostem! |
Beta Was this translation helpful? Give feedback.
-
@douglascorrea ótimo cara, obrigado pelo link e pelas infos nessa issue! @expalmer show cara, quais capítulos faltam? Sobre o Elm, vi que quem está começando com uma linguagem funcional, Elm é bem recomendado por ser user-friendly. Já quem tem uma boa base de funcional, vindo de Haskell por exemplo, pode sentir falta de algumas features, e ai geralmente essa galera opta por PureScript. @marcelgsantos show cara! Obrigado por compartilhar 😄 O que consegui entender até agora é que:
Isso quer dizer que mesmo que façamos tudo certo* com JS, usando o que há de mais moderno hoje, ainda sim não teremos os mesmos benefícios do que o Elm tem a oferecer de início. Alguns pontos aqui. * : vamos considerar "tudo certo" no atual momento como sendo o ecossistema React que despontou no último ano e vem ditando como o frontend deve ser construído para se ter uma melhor manutenabilidade/escalabilidade. |
Beta Was this translation helpful? Give feedback.
-
@ericdouglas cara falta o último, mas precisa também de um trabalho de revisão por ter muitos termos técnicos. |
Beta Was this translation helpful? Give feedback.
-
Grande coincidência vocês terem revivido esse tópico. A propósito, por mais que eu curta a linguagem, a minha opinião continua exatamente igual: pra aplicações profissionais vou continuar preferindo React enquanto o seu ecossistema for mais bem preparado e completo do que o do Elm. Mas vou continuar acompanhando a linguagem porque acredito que algum momento, talvez ano que vem, ela vai ser a next big thing. |
Beta Was this translation helpful? Give feedback.
-
Aproveitando e compartilhando pra quem tiver interesse: Mini-curso de Elm online: http://cuducos.me/2016/10/24/vamos-aprender-elm.html Tambem está rolando uma discussão no telegram: https://telegram.me/joinchat/ACJyTAj_HjLqJ5q9UFnATA |
Beta Was this translation helpful? Give feedback.
-
Só passei aqui para dizer que Funcional é <3 |
Beta Was this translation helpful? Give feedback.
-
ps: Adobe com vaga para Elm + Elixir 😄 |
Beta Was this translation helpful? Give feedback.
-
Fala galera, tudo bem? No último final de semana falei sobre Elm no Front In Floripa 2016 e os slides da apresentação podem ser vistos em Introdução a Elm - programação funcional no front-end. O objetivo da palestra era de ser uma introdução a Elm. Falei sobre o que é a linguagem, suas características, o ambiente Elm, introduzi o conceito de programação funcional, falei sobre a linguagem propriamente dita (funções, operadores, tipos, ...), arquitetura de uma aplicação Elm, quem utiliza, referências e um pouco de live coding. Ficaria muito feliz com feedbacks para ajudar a melhorar a palestra. ;) PS: citei esta thread na apresentação. \o/ Obrigado. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Eu sou um entusiasta da programação funcional (acho que todo mundo tá virando com esse "buzz" que o Redux gerou), por isso eu me interessei em aprender Elm.
Estou utilizando ele na reformulação do Decora.
Alguém mais está usando?
Beta Was this translation helpful? Give feedback.
All reactions