Markusxmr

Markusxmr

Drab and Liveview community oddities

Since Drab has been developed for a while in the open, introducing the Liveview functionality in a way it happend appears to undermine the Drab efforts and in a way contradicts the ElixirConf 2018 moto that the future is in the hand of the community.

Am I missing something obvious with their differences?

Marked As Solved

josevalim

josevalim

Creator of Elixir

The fact two things tackle the same problem do not mean they are the same. I believe Drab put the focus on events, as they say, it is about accessing the browser User Interface from the Server Side. I believe LiveView put the focus on the state and re-rendering the same template when the state changes, sending diffs to the client instead of events. It could be seen as React on the server.

The two approaches are very distinct on how they solve the problem. The closest to LiveView is Texas VDOM, which was also announced at ElixirConf 2018.

Regarding the future is on your hands, there are two things to observe. First of all, the fact we have now three tools tackling the same problem shows the power of the platform. Once you make solving hard problems trivial, different solutions exploring different trade-offs will show up. The other part is that LiveView is equally part of the community as Drab.

We should not be worried about people exploring different solutions in the same space, regardless of what comes first and what comes last. Sometimes those experiments fail, other times multiple suceed. For example, if anybody stopped working on a type system because I was working on one, then it would have been a mistake, since my approach to the problem completely failed. If Chris did not create Phoenix because I was working on Dynamo at the time, it would have been a mistake. Even if LiveView already existed, we should have equally welcomed Drab too. Etc, etc. Let people experiment.

46
Post #2

Also Liked

josevalim

josevalim

Creator of Elixir

Why do you believe people called me irresponsible for creating Elixir? Because I had some influence in the Ruby community and that would lead people to use Elixir while it was still in development. This kind of thinking completely shifted the blame from people who actually made the decision to use Elixir and put it on me. It is very unreasonable.

I should have equal voice as everybody else in here. If the reason I can’t take a stand against something is because people would take my opinion for granted or side with me without critical thought, then that’s not my responsibility. Do not take what I say as correct or take what I do for granted, whatever I do is as prone to errors as everyone else.

It is not fair for you to impose your own standards on how people should behave and then hold people to standards they have not agreed with in the first place. The fact someone contributes a lot (or not at all) should not change the responsibilities and expectations they have within the community.

josevalim

josevalim

Creator of Elixir

I am sorry but this irks me way too much.

Maybe people were actually familiar with Drab and decided to try different approaches? Or maybe, based on Chris talk, this is a problem that he wanted to tackle since 2013, but first he had to create and maintain Phoenix before he could take a stab at it? And even if they had no clue about Drab, how is that even a problem?

I got a lot of flak over the years (and still do) for creating a new programming language. Some called me out of touch, others called me borderline irresponsible, etc. But you know what? “because I wanted to” is a completely valid and enough answer to starting a project. There are some projects in the Elixir community that I don’t agree with but that’s totally fine (hey, they wanted to!). As long as people can discuss the trade-offs clearly, people are not being mislead, etc, I am not going to lose sleep over it.

I know this sounds counter-intuitive, as we do need a community to push those ideas forward, but that should be conciliated with everyone’s “right” to tinker and experiment.

So let people experiment, prototype and try things out. Once the ideas have consolidated, the proof of concept is ready, etc, then everybody can sit together and have a reasonable discussion about trade-offs. For all we know, LiveView could be dead in 2 months, because all of Chris’ choices turned out to be bad.

So let’s not make any rash decisions on a proof of concept that isn’t even released yet.

l00ker

l00ker

I just watched the video of Chris’s talk last night and he indicated that LiveView would be developed independently from Phoenix and therefore wouldn’t ship as a dependency or as part of Phoenix itself.

But I do see your point though. The focus will probably shift to developing LiveView.

I think I speak for many of us in this community when I say THANK YOU! @grych for all of your hard work and effort in developing Drab and paving the way. You proved that the idea was a solid one. Great work!

24
Post #5

Where Next?

Popular in Discussions Top

matthias_toepp
I’d love to hear what people think about Wisp, the new Gleam web framework started by Gleam’s primary creator Louis Pilfold. Gleam, alon...
New
Jayshua
I recently came across the javascript library htmx. It reminded me a lot of liveview so I thought the community here might be interested....
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
mmmrrr
Just saw that dhh announced https://hotwire.dev/ Is it just me or is this essentially live view? :smiley: Although I like the “iFrame-e...
New
AlexMcConnell
The reason that Rails is as popular as it is is because it’s very easy for relatively inexperienced developers to get a lot of work done....
588 19675 166
New
mbenatti
Following https://github.com/tbrand/which_is_the_fastest |> https://raw.githubusercontent.com/tbrand/which_is_the_fastest/master/imgs...
New
shishini
I think this twitter post and youtube video didn’t get as much attention as I hoped I am still new to Elixir, so can’t really judge ...
New
griffinbyatt
Sobelow Sobelow is a security-focused static analysis tool for the Phoenix framework. For security researchers, it is a useful tool for g...
New
jesse
Hi everyone, I hesitated to post this here because I don’t want you to think I’m spamming, but I’ve been working on a Platform-as-a-Serv...
New
AstonJ
It’s been a while since we’ve had a thread like this, so what better way to kick off the year with :003: What does being an Elixir user ...
New

Other popular topics Top

aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New

We're in Beta

About us Mission Statement