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.
Great question. Speaking from my experience, it is a trade-off you have to consider. Imagine LiveView will have something out in October, having to wait until the next April to be able to talk about it in public, it is definitely too long.
For example, I announced StreamData for Elixir before it was part of master, and it turns out that it won’t be part of Elixir core anyway. But the discussions that happened in the months after the announcement were very productive.
So I don’t think doing the announcement before having something out is bad. We already have another thread about LiveView with @tmbb, @grych and I discussing possible implementations. I would just not jump to conclusions yet.
I’ve started to test Raxx due to its purity and simplicity. Why not adapt Drab for Raxx?
That way you wouldn’t need to throw away anything of the amazing library you have, you wouldn’t collide with/get in the way of LiveView and even better, I’m sure you would find ways to expand Drab using a different approach.
I would love to see your genius around a new approach to code web apps.
The reason I built Drab over Phoenix is because with Phoenix I have a lot of stuff already done, for free: channels, base eex engine, safe html, views, rendering. Especially channels made my life easier. Drab started as a proof-of-concept page, and I would probably not be able to do it if I need to implement channels myself.
Also, the popularity of Phoenix is important. You may take your existing project, and very easy add Drab to it.
By the other hand, if it would be completely independent, or based on the lighter framework, it might be better, because some stuff may be done differently. There is always a tradeoff.
Just like Raxx and Phoenix/Plug can co-exist in the “webserver” space Drab and a potential LiveView library can do so for server-side managed client side updates in Phoenix.
In my opinion it would’ve been nice if @chrismccord would’ve acknowledged Drab in his keynote (it might have prevented a bunch of discussion here) but I don’t get why people feel so competitive about Drab vs. LiveView right now.
Hindsight is a wonderful thing… I remembered some time after making our 2018 update (and then felt terribly bad bout it!) that I had forgotten to mention that Chris had deprecated the Phoenix Talk Mailing list in favour of the forum some months earlier (where the unity and consolidated traffic obviously helped). Sorry Chris!
(Hmmm I wonder if I can edit it in now somehow… ) (Edit: Done!)
I can understand both positions. But I make a distinction between EXPLORING new approaches and EXPLOITING what really emerges as the proven approach. While using Plug/Phoenix in production apps I started to Explore Raxx because I can see its merits too. The same with Drab/LiveView.
I can feel the pain of someone who devoted so much time and passion in developing (exploring) something that proved to work and now the Exploitation may be done under a different library.
Why not keep exploring that concept together with another exploration project that is Raxx? That is in line with what José Valim was proposing.
We need to keep exploring. I would be really sad when I see the author of Drab giving up especially because he paved the way in a brilliant manner. We can keep doing both, I think. This is what makes Elixir community so great.
Let’s say they did know: No acknowledgement of its existence whatsoever, just railroading through announcing something that has yet to have technical merit with no care of the consequences.
If they didn’t know: key people navigating blindly in their own community certainly fits the “out of touch” description. There’s a long thread about Drab on this very forum, it’s exceedingly likely that people who actually spend some time even just passively with the community will have seen it and read it. Unless they don’t care, of course.
Because you wanted to was a terrific reason to start the language because you didn’t have the position you have today in a community. It’s not a legitimate way to think when you have the capacity to change things just by announcing something at a keynote. Even if you do start a project, have the tact to plug what’s out there, maybe.
You are not a regular member of this community. If you did take some kind of public stand against something I hope you know that would require the project to somehow be morally reprehensible or the like.
The reason they have a voice to begin with is because they’ve contributed so much. If you think things should be handled differently, all you would have to do is contribute as much or more than them. I don’t think anyone writing open source has any obligation to anyone. If someone wants to contribute in a more optimal way, do it. If they want something else that’s fine too.
While your post raises some defensible points, I don’t think this part of your post has any basis on reality. You are ignoring the enormous influence that @josevalim had in the ruby language and community prior to developping Elixir. I’m a bit ignorant of Elixir’s initial history, but Inthink many people here have stated that they only decided to check ou Elixir because of José’s position in the Ruby community.
As an issue of degree, sure, but I’m well aware he was known in the Ruby community. It really has nothing on the position he is in today, though, especially with the way this community has evolved thus far. There is a special kind of responsibility that comes with being this kind of key figure.
I find it odd that you’re pointing fingers at them rather than yourself. You could’ve just as easily been marketing for drab and writing blogs posts to raise awareness, but instead you blame Jose and Chris
Because we’re not trying to start a flame war. (As far as I understand) This thread is to do with sorting out the aftermath of the somewhat clumsy way LiveView was announced and the effect it had on the development of Drab.
All handled as part of a new Raxx.Kit project. Built upon eex_html and Raxx.Vew part of core.
Completely fair. I don’t think anyone in open source has a responsibility to do more than build what they like for their own project. It’s their free time after all. Not that that doesn’t mean you can’t applaud people when they do make the extra effort
It’s unfair to expect Chris or José to be 100% perfect 100% of the time - because none of us are - not you, nor I nor anyone else. In a community you aim to be understanding, sympathetic, and at times, forgiving… just like we have been with some of your own actions on this very forum. We’re all human after all, and a little compassion goes a long way.
Unfortunately I’m not seeing that same courtesy being extended to José from you here.
Maybe they agonised over what to do, maybe they worked on it so long that it completely slipped their mind. Whatever the reason I’m pretty sure there was no malice behind it (do you seriously think they wanted this situation to occur?)
Yes, as the leader of this community what José says will come under intense scrutiny - and sometimes his words or actions may be less than perfect, but we can all help by trying to make things better (and not worse). Sometimes that means by being understanding or forgiving, sometimes it means using tact and thoughtfulness.
I think it’s perhaps best to close this thread now. The OP was answered early on in the thread and as has been explained here and elsewhere, there are major benefits in something like LiveView being a part of Phoenix (we need only look around the web to see the interest it has already generated; it could well be pivotal in taking Elixir and Phoenix to the next level) something that will hopefully be better for all of us in the long run, including Grych - who, I hasten to add, has acted impeccably throughout this. The way he’s already trying to help LiveView be the best it can be makes me respect him a million times more than I already did. Perhaps we should now all do what he’s trying to do… progress things forward.
Thank you Grych, and everyone else who’s been trying to do just that.
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.