Live data from Hacker News

“I'm basically giving myself a permanent vacation from being BDFL”

mail.python.org

541–550 of 764 posts

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#541

Earlier quoted context omitted.

> If Ben and Jerrys left a bunch of ice cream on the sidewalk and a bunch of people ate it and got sick then there would be zero liability on Ben and Jerrys. Citation? That doesn't seem right, based on my anecdotal knowledge that restaurants take care to throw leftovers into a garbage bin rather than leave them out somewhere where someone could eat them and expose the business to liability. I looked up this claim mys…

In your analogy you're citing a business. Then if you open source something you wrote, are you claiming you are a business? No matter how un/business-like the open source claim may be: has any money changed ownership between the parties in the course of the person writing and maintaining software vs the person using that software? If no business transaction has been formalized then why should either party be liable?…

IANAL but here are a few things to consider.

Every person has a duty of care to minimize the possibility of harm to others. In some professions the standard is higher and may be codified into statute and/or bylaws of their professional association e.g. medical and legal professions. What this means is that, for example, in certain jurisdictions a doctor is bound by his Hippocratic oath and has to render medical assistance to a person who is in urgent need of it, as quickly as practicable. Ignoring this exposes him to liability. So in the particular case of software, a malware author could in theory be found liable by posting his proof of concept in the public domain.

Secondly, in certain jurisdictions, there is an implied warranty of merchantability and also of fitness for a particular purpose. In the US this is under the Uniform Commercial Code.

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#542

Earlier quoted context omitted.

That could be considered a feature. At least you have to read what you have copied and pasted.

That's cute but I hope no one reading this thinks you are being serious. If they do, to wit: So many webforums strip leading indents from code. It's not like it looks right on the forum, and then gets inserted into your editor wrong. It's often not right on the source side either. So if you're trying to learn an algorithm from the Python code, you're SOL. This has happened to me.

It isn't cute at all and I am quite serious. It is an accident that Python syntax pitted against sufficiently unsophisticated code displayers causes copy n paste breakage.

However, that breakage does mean that you have to at least read the code a bit. You either get to avoid a potential security flaw or gain a deeper understanding of an algorithm.

Fixing syntax does not break your ability to learn an algorithm but it will get you closer to its description.

With Python you are generally SIL not SOL.

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#543

Earlier quoted context omitted.

It's a free product, not a child support obligation. Even if you do walk away, it's open source and can be maintained by anybody interested in stepping up. This is the price of adoption, not guaranteed updates for life from the creator. But I get where you're coming from. It's even worse on Steam, where developers will actually collect money during the "early access" phase and then walk away once a (closed-source) te…

> This is the price of adoption, not guaranteed updates for life from the creator. I’m not saying anyone should be obligated to do free work. This issue is that most people don’t feel comfortable publishing a public fork without the blessing of the creator, or at least knowing the creator no longer intends to work on the project in the near future. So you end up with these situations where there are thousands of peop…

eww, that's called entitlement.

no one promised you anything. you merged some code into your project. now deal with the consequences. be responsible for your work.

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#544

Earlier quoted context omitted.

Not using toy libraries for production systems is a lesson every young developer learns early on in their career.

Fortunately every young developer is also schooled extensively in telling toy libraries apart from serious ones.

By definition, they aren't though-- for the truly green, that extensive schooling comes from `npm/pip/gem install`ing random packages with implementations they don't understand or can't account for, then having to deal with the fallout in whatever form it chooses to manifest itself. Could be a maintainability nightmare, or it could be losing your job.

My advice to mentees is that if installing a package to achieve x saves (a significant amount of) time/money that outweighs the risks to self/company or has value added by means of product maturity or domain expertise, then by all means do not roll your own crypto, web framework, db connector or machine learning library. But if one is going to introduce dependencies on things as trivial as leftpad or someone's Show HN single-pass weekend hackathon proof-of-concept, they will soon learn why we don't bring toys to work.

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#545

I don't know if it's just me, but if you read the forums and bug reports related to open source projects, it feels like programmers today are a really entitled lot. The tone that people take when filing bug reports for what is basically free software is reprehensible. People are doing work for FREE to benefit you, and you take a tone with them like you are a prince and they are your royal goblet holders? Who taught t…

I think what you're saying is true in the case of someone just throwing up some code they wrote online without any plan of supporting or developing it further. But once you call it an open-source project, and you have docs and a roadmap and an issues page and stuff, you're making an implicit contract with people who use it that it will do a reasonable job of solving the problem it claims to solve. The user is choosin…

> But once you call it an open-source project, and you have docs and a roadmap and an issues page and stuff, you're making an implicit contract with people who use it that it will do a reasonable job of solving the problem it claims to solve. The user is choosing to use it over other alternatives and investing time learning and integrating it, so it doesn't seem at all unreasonable to me for them to be frustrated when they realize that due to some bug or limitation it doesn't actually solve the problem for them that it claims to.

Actually it does seem unreasonable to get irate at the developers when fitness for use is explicit in the license that enables use of the software in the first place. Open source licenses in general and the Python license in particular are very clear about this. The Python 3.7 license has the following term in section 4:

  4. PSF is making Python 3.7.0 available to Licensee on an "AS IS" basis.
   PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.  BY WAY OF
   EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR
   WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
   USE OF PYTHON 3.7.0 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
If you use Python 3.7.0 and it displeases you, that's just part of the deal. On the other hand you do have the right to make your own copy and fix it to serve your purposes.

Edit: fixed typo

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#546
post #357

Earlier quoted context omitted.

What are they supposed to do? Python is bigger than GvR. A pretty big chunk of the tech industry depends on it. We were probably long past the point where a "BDFL" was healthy --- not because of any moral issue, but because over the long term the market is going to dictate where Python goes and how it grows, and people should stop kidding themselves that it might be otherwise. I don't think it's at all unseemly that…

> but because over the long term the market is going to dictate where Python goes and how it grows The market gave us the absolute mess that is HTML/CSS/Javascript today, so I'm sincerely hoping the Python community will keep agreeing on some greater design principles instead of leaving everything to market forces and pragmatism.

I think Javascript has been rapidly getting better, as a language. Every time you hear a front end dev complain about having to support IE, consider that an endorsement of the way HTML/CSS/Javascript has been improving. No one is complaining about having to use the latest version of Javascript to support the new Chrome.

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#547

Earlier quoted context omitted.

how is python like lisp?

The future we were promised when we bought into what lisp would/could be, with all the practicality we see now in python. Norvig wrote about it more here: http://www.norvig.com/python-lisp.html It was from that article when I gave python a serious try and it stuck with me as a go to language for all the small things one does often, but also exploratory programming as well (with iPython/jupyter).

have you ever tried f#? if you think python is what lisp could be (a little confused by that...see racket...but...), then i am curious what you think about something like f#. it’s like python in a way, in that it has oop and uses indentation and not brackets, but it is so much more. and it’s more regular in its semantics. everything returns a value.

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#548

Earlier quoted context omitted.

Here you are very wrong. Look at https://www.cdc.gov/motorvehiclesafety/seatbelts/facts.html#... or https://en.wikipedia.org/wiki/Seat_belt

that's exactly what I mean. Seatbelts won't save you every time but they save you enough times that they are mandatory. > In another study that examined injuries presenting to the ER pre- and post-seat belt law introduction, it was found that 40% more escaped injury and 35% more escaped mild and moderate injuries.[83] I don't know how many bugs can use of all possible explicit typing and compiler warnings avert but I…

And as a former motorcyclist the idea of putting a seatbelt on a bike is terrifying, but under the umbrella of 'mandatory' I'd have to risk getting cut in half in a fender bender 'because that's how it's done'. If you blindly follow guidelines without understanding why they were put in place and when they should be circumvented you do more harm than good. In this context specifically, a python thread, I've not even found formatters that 'just work' in python to the degree that they do in java - I get and support significant whitespace but that combined with the crazy calling convention frequently lead me to just have to suffix spans of lines with noqa because I'm communicating to the reader something that a dumb bot doesn't understand. And that's not even getting into the heavier stuff, I type annotate everything but mypy is beyond useless for my relevant codebases - it no longer just outputs walls of useless noise it straight up crashes, from the most minimal use of even descriptors much less metaclasses. Tools and policies are essential but at the end of the day humans and situations are still currently authoritative.

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#549
post #534

Earlier quoted context omitted.

Missing assingment.

int success = NULL; if(success = malloc(...)) { } if(success = malloc(...)) { } if(success = malloc(...)) { }

That will result in undefined behaviour if the value returned by malloc is greater than INT_MAX. If you really need an integer, use intptr_t. But, generally it makes more sense to just use a pointer.

    char* p = NULL;
    if (p = malloc(...)) {
      ...
    }

Re: “I'm basically giving myself a permanent vacation from being BDFL”

#550

Earlier quoted context omitted.

The indentation should be almost the same as any other language. Unless you have an aversion to consistent code-style. Python whitespace was only annoying for me years ago when it still had trouble handling tabs and spaces in the same file, and you would run into literally invisible bugs. I haven't run into that in a long time, though.

It's also basically impossible to cut-and-paste code from a web forum. Was that "else" from the inner or the outer "if"?

How so? If the code was properly indented on the forum, it'll still be properly indented when you paste it. The only thing you'll need to do is to make sure that indentation of the entire pasted block is consistent with whatever's around it... but pretty much any editor these days, at least the ones meant for code, let you easily adjust indentation of an arbitrary selection (just highlight and Tab or Shift-Tab as needed).
Post reply on HN