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.

    He was not impressed.

    Fanboys start showing up, trying to defend the framework.

    Including the framework author.

    Shit hits the fan...

    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.


  • Discourse touched me in a no-no place

    @cartman82 said in Zed Shaw VS Phoenix/Elixir:

    And so forth...

    Oh dear, Zed is getting a bit angry. :popcorn:

    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.)


  • area_can

    @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?


  • area_can

    @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."


  • Impossible Mission Players - A

    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


  • Discourse touched me in a no-no place

    @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.


  • Dupa

    Here, let me save you another 40 posts or so:

    :boy: Zed Shaw is a jerk
    :girl: But he's kinda right, this software is shit.
    :boy: Sure, but bringing up guy's job? It was a horrible ad hominem.
    :girl: Yeah, but OSS is shit.
    :older_man: 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.



  • @kt_ said in Zed Shaw VS Phoenix/Elixir:

    :very_old_man: Phoenix?


  • Grade A Premium Asshole

    @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.

    1. 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.

    1. Edited 4 files to make an .html show.

    Isn't that de rigueur for web frameworks?

    1. A w vs. W gives cryptic endpoint errors.
    2. Lovely error page showing cryptic endpoint errors goes blank on refresh, have to look at red spewed console log in terminal. ...
    3. 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.
    1. Phoenix doesn't lack hot code reload, he hit a bug.
    2. The underlying bug was embarrassing.
    3. The typo he's talking caused a compile failure... it's not as innocuous as he makes it sound.
    4. 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 that q<CR> works, too.

    1. 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.


  • Discourse touched me in a no-no place

    @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.


  • Grade A Premium Asshole

    @dkf said in Zed Shaw VS Phoenix/Elixir:

    Agreed. The problem is partly that the documentation claims that it is easy,...

    Might be :pendant: :fa_tree: , 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.


  • Discourse touched me in a no-no place

    @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. ;)


  • Discourse touched me in a no-no place

    @Lorne-Kates you beautiful man. Never change.


  • :belt_onion:

    @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?


  • Discourse touched me in a no-no place

    @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. :imp:


  • :belt_onion:

    @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!

  • Discourse touched me in a no-no place

    @Onyx said in Zed Shaw VS Phoenix/Elixir:

    Pffft. Luddite.

    :thumbsup:

    (OTOH, I was thinking about using Parallel-SNUSP instead. For fun and I've already written an interpreter for it…)


  • area_can

    @dkf why not malbolge? 😈


  • Winner of the 2016 Presidential Election

    @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?


  • Discourse touched me in a no-no place

    @bb36e said in Zed Shaw VS Phoenix/Elixir:

    why not malbolge?

    0_1470824238930_upload-29b8718c-0c4f-41f3-86a4-64bcdf309540


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.