Zed Shaw VS Phoenix/Elixir
-
Twitter flame war between Zed Shaw and Elixir team.
Here are the highlights.
Zed shaw tries to play around with Phoenix, a trendy web framework based on functional programming language called Elixir.
https://twitter.com/zedshaw/status/761662986939305985
He was not impressed.
https://twitter.com/zedshaw/status/761697134097739776
https://twitter.com/zedshaw/status/761697519969579008
https://twitter.com/zedshaw/status/761698113815875585
https://twitter.com/zedshaw/status/761699174429528065
https://twitter.com/zedshaw/status/761700579915673600
https://twitter.com/zedshaw/status/761701744669667328
https://twitter.com/zedshaw/status/761702454312349696
Fanboys start showing up, trying to defend the framework.
https://twitter.com/zedshaw/status/761703479630897152
https://twitter.com/zedshaw/status/761719500148502529
Including the framework author.
https://twitter.com/zedshaw/status/761723305044750336
Shit hits the fan...
https://twitter.com/zedshaw/status/761753410890633216
https://twitter.com/zedshaw/status/761754287571476480
https://twitter.com/zedshaw/status/761761725062320128
https://twitter.com/zedshaw/status/761768375533969408
https://twitter.com/zedshaw/status/761945996364427265
https://twitter.com/zedshaw/status/761754946857426944
https://twitter.com/cjvincent/status/761761828741406721
https://twitter.com/zedshaw/status/761766950087168000
And so forth...
There was more anti-OSS stuff there that I can't find now. And I think I saw a parody bug report on the phoneix github page too.
-
@cartman82 said in Zed Shaw VS Phoenix/Elixir:
And so forth...
Oh dear, Zed is getting a bit angry.
He might be right that the code he's trying to use is not yet mature enough, but blowing your top like that after one day? Sheesh…
-
@dkf He's right in at least one regard though: Shitty error messages don't endear a newcomer to your platform.
I mean, I recently got a "File not found" error message in Javascript. The problem was: I was actually trying to send an Outreport to a USB device (i.e. pushing raw USB packets around).
Took me a while to figure out where the "File not found" came from (short version: The Outreport has an IBuffer attached to it which you shall fill with exactly 64 bytes of data. Not more, not less. Even when you only send 2 bytes.)
-
@cartman82 said in Zed Shaw VS Phoenix/Elixir:
@antipax @chris_mccord You have a job stealing money from the poor so as usual, not nearly as nice as you claim to be self righteous prick.
!!!???never mind, referring to the betting site
-
@dkf said in Zed Shaw VS Phoenix/Elixir:
He might be right that the code he's trying to use is not yet mature enough, but blowing your top like that after one day? Sheesh…
He's an asshole, and I disagree with him a lot, but he has a point this time.
If you use software and it turns out it's shitty, why would anyone expect you to waste time trying to improve it? No, you look for an alternative that doesn't suck.
-
@dkf said in Zed Shaw VS Phoenix/Elixir:
Oh dear, Zed is getting a bit angry.
Justifiably.
(BTW am I supposed to recognize the name Zed Shaw?)
@dkf said in Zed Shaw VS Phoenix/Elixir:
He might be right that the code he's trying to use is not yet mature enough, but blowing your top like that after one day? Sheesh…
It's released to the public. Those developers said, "this is good enough, this is done, let's release it for people to use it."
If it's "not yet mature enough", that's not the poor user's fault. The user's just trying to make a simple app without having to jump through 500 hoops.
How many days of wasted time are you required to have before you're allowed to call a shitty product shitty? Is there a lookup table somewhere?
-
@blakeyrat said in Zed Shaw VS Phoenix/Elixir:
Those developers said, "this is good enough, this is done, let's release it for people to work on developing it, but if they're also free to use it."
-
Status: I can't wait until we have at least POSTS_PER_PAGE_COUNT when the iframely-adjusted jellypotato will finally mitigate.
-
Being on both sides of OSS, I can tell you - both are shitty places to be.
On one hand you often get devs who won't take responsibility for their project, ignore their users, and simply push things they think are the Right Way. "Software is broken? Who gives a shit? I have to incorporate new shiny icon set!", "Software is broken? File a bug so I can never look at it.", "Software is broken? Fix it yourself - it's open source." (last one I wish to dedicate to a certain person at a certain project which starts at Q and ends with t).
On the other hand, you often get a lot of freetards who insist you need to spend your time (for free) on their specific problem RIGHT NOW! You don't have the time? Well your software is shit; you are shit; OSS is shit!
-
@blakeyrat said in Zed Shaw VS Phoenix/Elixir:
(BTW am I supposed to recognize the name Zed Shaw?)
He's our old friend.
https://what.thedailywtf.com/topic/16422/zed-shaw-gets-schooled-on-c-undefined-behavior
@NeighborhoodButcher said in Zed Shaw VS Phoenix/Elixir:
Being on both sides of OSS, I can tell you - both are shitty places to be.
On one hand you often get devs who won't take responsibility for their project, ignore their users, and simply push things they think are the Right Way. "Software is broken? Who gives a shit? I have to incorporate new shiny icon set!", "Software is broken? File a bug so I can never look at it.", "Software is broken? Fix it yourself - it's open source." (last one I wish to dedicate to a certain person at a certain project which starts at Q and ends with t).
On the other hand, you often get a lot of freetards who insist you need to spend your time (for free) on their specific problem RIGHT NOW! You don't have the time? Well your software is shit; you are shit; OSS is shit!QFT
-
@blakeyrat said in Zed Shaw VS Phoenix/Elixir:
If it's "not yet mature enough", that's not the poor user's fault.
Well, it depends what for really. Much software is fine for an expert to set up, but horrible for a noob. I just don't get excited about that.
However…
I've just gone and read the website on Phoenix/Elixir, and it seems they're in the uncanny valley of documentation. It's just good enough to draw you in and think it might be good without having actually had a lot of battle-tested experience from dealing with new users actually applied to it. The installation page seems a little bit daunting (a pre-built VM image would be a way for them to address this, but they've not done it so far as I can tell). There's a bunch of guides on what to do, but they're still lost a bit in the weeds: nothing actually explains the model of what's going on, there's no map to the functionality and you're left wondering what now. The style is fine, the low-level content is bitty, and the high-level content just isn't there (or if it is, I didn't see it).
So… documentation needs a lot more work. I don't know about the code — I can't be bothered to actually run it, as it doesn't actually solve any of my current problems — but if the Phoenix/Elixir guys read this, here's a tip: make sure your error messages always get logged by default, and always say what is wrong in terms that let someone figure out how to fix the problem. Indeed, that's a piece of advice to anyone making a framework for anything; for ${DEITY}'s sake, make it debuggable! Don't rely on the user getting it right or knowing exactly what your internal architecture is.
I can see why Zed was getting frustrated. I just think that getting abusive after just one day is unprofessional. And no, I'm not going to contribute any fixes because I have my own stuff to do. I'm not really a big fan of the sort of approach that Elixir seems to take, but that might just be me.
-
@dkf said in Zed Shaw VS Phoenix/Elixir:
It's just good enough to draw you in and think it might be good without having actually had a lot of battle-tested experience from dealing with new users actually applied to it.
Not dissimilar to CakePHP IME (well when I last looked at it anyway, with a view to convert a website over to it. I decided not to bother.)
-
@dkf said in Zed Shaw VS Phoenix/Elixir:
I can see why Zed was getting frustrated. I just think that getting abusive after just one day is unprofessional.
Why?
He's not a robot. The software was being a jerk to him, and he was emotionally affected. If you don't want people to get angry at your software, don't write software that makes people angry. This isn't some kind of high wisdom from the mountaintop, it's plain common sense.
@dkf said in Zed Shaw VS Phoenix/Elixir:
And no, I'm not going to contribute any fixes because I have my own stuff to do.
So does he. The only difference is that he attempted to use the software and got angry as a result, and you did not.
-
@blakeyrat said in Zed Shaw VS Phoenix/Elixir:
Why?
He's not a robot. The software was being a jerk to him, and he was emotionally affected. If you don't want people to get angry at your software, don't write software that makes people angry. This isn't some kind of high wisdom from the mountaintop, it's plain common sense.What, really?
Do I really have to make an analogy to other forms of twitter abuse to show the problem with this statement?
"If that bitch didn't want to me to hurl abuse at her, she shouldn't have said things that made me angry"
-
@cartman82 I'm not saying it's desirable for him to be angry, I'm saying it's understandable that he would be angry.
If you're writing software that people are interacting with, you have to realize that you're also interacting with them by proxy. That's exactly why usability is so goddamned important. If you're a nice guy and don't want to be a jerk, you shouldn't be writing software that's a jerk.
-
@blakeyrat True. But even if he was angry, Shaw didn't have to be snarky when the author offered to help, or escalate the flame war. He could have brushed them off more politely.
-
Here, let me save you another 40 posts or so:
Zed Shaw is a jerk
But he's kinda right, this software is shit.
Sure, but bringing up guy's job? It was a horrible ad hominem.
Yeah, but OSS is shit.
Elixir? What the fuck, I thought it was this node js library for generating script files.
:very_old_man: Phoenix? That's where I am from.
-
-
@cartman82 said in Zed Shaw VS Phoenix/Elixir:
Twitter flame war between Zed Shaw and Elixir team.
Given his tone, it sounds like he decided to learn Phoenix and Elixir over a lunch break in an otherwise shitty day. Not the best time to do something new and unfamiliar.
I am going to attempt a small elixir app today.
...and then he dives straight in to Phoenix. Phoenix != a "small Elixir app".
Here are the highlights.
- Had to install pgsql, no sqlite.
sqlite is supported. Running
mix phoenix.new
tells you (among other things) that the --database parameter accepts postgres, mysql, mssql, sqlite, or mongodb and defaults to postgres.
- Edited 4 files to make an .html show.
Isn't that de rigueur for web frameworks?
- A w vs. W gives cryptic endpoint errors.
- Lovely error page showing cryptic endpoint errors goes blank on refresh, have to look at red spewed console log in terminal. ...
- A colon one space over again kills the server with obscure endpoint errors requiring a manual, 9 prompt, restart. ...
Finally, Phoenix lacking reliable hot code reload in the Erlang VM is fucking insane.
- Phoenix doesn't lack hot code reload, he hit a bug.
- The underlying bug was embarrassing.
- The typo he's talking caused a compile failure... it's not as innocuous as he makes it sound.
- The bug was fixed shortly after he spent seconds (rather than the "hour" he whined about) giving a bare-bones repro.
...Had to go to terminal, ctrl-c, answer a 9 choice prompt on what to do, then restart.
Here's the 9 choice prompt:
iex(1)>
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
(v)ersion (k)ill (D)b-tables (d)istribution
It turns out that the option that you want is the first one on the list. It also turns out thatq<CR>
works, too.- Nail in the coffin of Phoenix is it can only send email through [Mailgun].
This is like looking at the documentation for glibc and determining that it's impossible to use C or C++ to send email.
Phoenix can use any Elixir or Erlang code. (The Phoenix Overview strongly encourages you to read documentation that tells you exactly that.) There are many email transmission packages (SMTP or otherwise) for both languages. The tutorial only mentions one of those packages... it doesn't mean that it's the only way to do it.
-
@bugmenot said in Zed Shaw VS Phoenix/Elixir:
Given his tone, it sounds like he decided to learn Phoenix and Elixir over a lunch break in an otherwise shitty day. Not the best time to do something new and unfamiliar.
Agreed. The problem is partly that the documentation claims that it is easy, and it only is if you're already deeply versed in how most of the components of the system work. Not the usual definition of easy! The authors need to get someone from outside their clique, someone preferably with tech writing skills, to work with them on improving things. This might involve them finding money and hiring someone… unless they're really lucky and have that contributed. But there's not nearly as many tech writers worth the name as there are decent programmers, so payment may be required.
They might also need to fix the code and work on making easier deployments for testing purposes, but those are easier for developers to sort out, and not as pressing anyway.
-
@dkf said in Zed Shaw VS Phoenix/Elixir:
Agreed. The problem is partly that the documentation claims that it is easy,...
Might be , but the documentation doesn't say that Phoenix is easy. It says
Productive. Reliable. Fast.
A productive web framework that
does not compromise speed and maintainability.and
Phoenix is a web development framework written in Elixir which implements the server-side MVC pattern. Many of its components and concepts will seem familiar to those of us with experience in other web frameworks like Ruby on Rails or Python's Django.
Phoenix provides the best of both worlds - high developer productivity and high application performance. It also has some interesting new twists like channels for implementing realtime features and pre-compiled templates for blazing speed.
It then goes on to say "You need to be familiar with Elixir before proceeding":
If you are already familiar with Elixir, great! If not, there are a number of places to learn. The Elixir guides are a great place to start. We also have a list of helpful resources in the Learning Elixir and Erlang Guide.
It doesn't seem unreasonable to me to have to spend a day familiarizing yourself with the language used by a framework, and another day reading the high-level documentation and skimming the API reference before starting a non-trivial project.
(BTW, this is an example of the project's API documentation: https://hexdocs.pm/phoenix/Phoenix.Channel.html . I don't know about you, but I think it's pretty good.)
-
@dkf said in Zed Shaw VS Phoenix/Elixir:
but blowing your top like that after one day? Sheesh…
Yeah, only a real shit-head would go on a swears-filled rant against a piece of tech that gives them day-one troubles.
-
@Lorne-Kates said in Zed Shaw VS Phoenix/Elixir:
Yeah, only a real shit-head would go on a swears-filled rant against a piece of tech that gives them day-one troubles.
It usually takes me at least a week to reach that point, but then I'm more professional than Zed. ;)
-
@Lorne-Kates you beautiful man. Never change.
-
@NeighborhoodButcher said in Zed Shaw VS Phoenix/Elixir:
(last one I wish to dedicate to a certain person at a certain project which starts at Q and ends with t).
You managed to run away from that lovely one where light never shines?
-
@Onyx said in Zed Shaw VS Phoenix/Elixir:
@NeighborhoodButcher said in Zed Shaw VS Phoenix/Elixir:
(last one I wish to dedicate to a certain person at a certain project which starts at Q and ends with t).
You managed to run away from that lovely one where light never shines?
QdiscourseT?
-
I don't understand why this was made in the first place. There are too many frameworks, and considering nobody (ballpark figure) uses Elixir this seems pointless. What framework/CMS doesn't promise speed, ease of use and developer friendliness?
-
@aapis said in Zed Shaw VS Phoenix/Elixir:
What framework/CMS doesn't promise speed, ease of use and developer friendliness?
I guess I could make a framework that's simultaneously slow, hard to use and which hates developers, but I don't think it would get much use. I'd probably use Brainfuck as the configuration and routing language just because it would annoy some people so much.
-
@dkf said in Zed Shaw VS Phoenix/Elixir:
I'd probably use Brainfuck as the configuration and routing language
Pffft. Luddite. All the cool kids write configs in Whitespace these days!
-
This post is deleted!
-
@Onyx said in Zed Shaw VS Phoenix/Elixir:
Pffft. Luddite.
(OTOH, I was thinking about using Parallel-SNUSP instead. For fun and I've already written an interpreter for it…)
-
@dkf why not malbolge? 😈
-
@Onyx said in Zed Shaw VS Phoenix/Elixir:
All the cool kids write configs in Whitespace these days!
no love for my Unary based config format then?
-
@bb36e said in Zed Shaw VS Phoenix/Elixir:
why not malbolge?
-
Thank you for this post.
I realize this is an old post - however I'm going to give people some context as a long time Rails engineer ( since the beginning), an open source advocate and a professional developer.
Mr Shaw stepped into the Rails community and did some good work to learn and contribute. Over time it became clear that he was very good at public endorsement of himself and he learned how to contribute and assist people on his own terms.
Unfortunately, like many people, when the terms arn't his own - he has demonstrated a lack of maturity and tact.
Let's not try to excuse this kind of behaviour - being angry on the internet - as we all know this is the least mature we can act and we also know that there are many examples of public figures using the internet as a platform for narcissism and attention.
Instead let us recognize that the work of a programmer is never done, there is always more to learn, the attitude of respect, harmony and gratitude are as valid now as they ever were - and let us endeavor to be humble in our contributions and grand in our expressions of thanks.
Thank you for caring Mr Cartman and for raising the standard for acceptable behaviour.
-
@robotarmy said in Zed Shaw VS Phoenix/Elixir:
Instead let us recognize that the work of a programmer is never done, there is always more to learn, the attitude of respect, harmony and gratitude are as valid now as they ever were - and let us endeavor to be humble in our contributions and grand in our expressions of thanks.
Thank you for caring Mr Cartman and for raising the standard for acceptable behaviour.
That's my new tagline.
"Raising standards of acceptable behavior since 2014"
-
@robotarmy said in Zed Shaw VS Phoenix/Elixir:
acceptable behaviour
Does that mean much anymore though?
I do not accept lots of things, yet have no power to affect them.
-
@robotarmy said in Zed Shaw VS Phoenix/Elixir:
Let's not try to excuse this kind of behaviour - being angry on the internet
You must be new here.
-
So, now we need a GODAMMITFBNECROMACONEOFUS badge?
-
@robotarmy said in Zed Shaw VS Phoenix/Elixir:
Thank you for caring Mr Cartman and for raising the standard for acceptable behaviour.
Wow. You should maybe lurk before posting.
-
@adynathos said in Zed Shaw VS Phoenix/Elixir:
I do not accept lots of things, yet have no power to affect them.
You always have the power to walk away.
-
@robotarmy said in Zed Shaw VS Phoenix/Elixir:
as a long time Rails engineer ( since the beginning), an open source advocate and a professional developer.
You're like the anti-Blakey.
@robotarmy said in Zed Shaw VS Phoenix/Elixir:
Let's not try to excuse this kind of behaviour - being angry on the internet - as we all know this is the least mature we can act and we also know that there are many examples of public figures using the internet as a platform for narcissism and attention.
Say what? This forum is all about being angry on the internet.
@robotarmy said in Zed Shaw VS Phoenix/Elixir:
Thank you for caring Mr Cartman and for raising the standard for acceptable behaviour.
You really must be new here.
-