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

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
mikl
I wanted to capitalize a string, and tried using String.capitalize(). That generally works well, until you try to capitalize a word like...
New
AstonJ
If a newbie asked you about Phoenix Contexts, how would you explain the basics to them? Feel free to be as concise or in-depth as you li...
New
Ankhers
Just a little information upfront. Generally speaking, if I feel like I need to either break a pipe chain or use an anonymous function in...
New
nunobernardes99
Hi there Elixir friends :vulcan_salute: In a recent task I was on, I needed to check in two dates which of them is the maximum and which...
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 19652 166
New
joeerl
I’m playing with Elixir - It’s fun. I think @rvirding does give Elixir courses these days. Re: files and database - when I given Erlang ...
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
sashaafm
Piggy backing a bit on @dvcrn topic BEAM optimization for functions with static return type?, I’ve been trying to understand in a deeper ...
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

AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
johnnyicon
Hi all, I’ve just started learning Elixir and Phoenix Framework, so please pardon my n00bness at this stage. I’m trying to use Postgres...
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New

We're in Beta

About us Mission Statement