[HN Gopher] Guido van Rossum joins Microsoft
       ___________________________________________________________________
        
       Guido van Rossum joins Microsoft
        
       Author : 0xmohit
       Score  : 942 points
       Date   : 2020-11-12 17:03 UTC (5 hours ago)
        
 (HTM) web link (twitter.com)
 (TXT) w3m dump (twitter.com)
        
       | Donckele wrote:
       | Good for you Guido!
        
       | jawns wrote:
       | I would be curious to hear about other people who "retired" then
       | went back to work.
       | 
       | I feel like if I reached the FIRE point, I would continue to
       | work, but entirely on my own terms, not as an employee of
       | somebody else. Even at my favorite jobs, where I got to spend the
       | majority of my time doing interesting things, having to deal with
       | red tape, institutional slowness, upper management, etc. was not
       | fun, and I can't imagine it getting any better when you know you
       | are now working only because it's your hobby.
        
         | Denvercoder9 wrote:
         | At his level, there's very little red tape, institutional
         | slowness and management to deal with.
        
           | kortilla wrote:
           | As long as he doesn't do anything that impacts the actual
           | business. DEs working on Microsoft products absolutely have
           | red tape and institutional slowness.
        
           | NordSteve wrote:
           | I have exactly that deal at MS (and I know many others who
           | do), and I'm a couple levels away from DE.
           | 
           | I'm later in my career, don't need the job for $$ (they know
           | it), lead a great team, work on a meaningful project that I
           | pitched in an area where I'm an expert, great support from
           | management. The only thing remotely close to "red tape and
           | institutional slowness" is about making sure what we build
           | meets the promises (privacy and compliance, for example) that
           | we've made to customers.
        
           | chillacy wrote:
           | Not only that but he probably has a small legion of full time
           | developers working on his projects now that no normal FIRE
           | savings would be able to afford.
        
         | npsimons wrote:
         | > I feel like if I reached the FIRE point, I would continue to
         | work, but entirely on my own terms, not as an employee of
         | somebody else.
         | 
         | I'm right there with you - this is my number one goal for FIRE,
         | is basically to not have to put up with anyone else's
         | idiosyncrasies but my own. The only way I could see that
         | changing is if I see a group of people worth working with, or a
         | project worthwhile enough to work with other people, or I would
         | feel an obligation to be a mentor to others.
        
           | SmellTheGlove wrote:
           | Careful with FIRE though. Don't fully sacrifice living with
           | the goal of doing it later. I realize I'm not old by any
           | stretch, but I'm at 40 next year. I've definitely made some
           | sub-optimal decisions with money, but the experiences were
           | mostly worth it. My retirement goal is to be able to do it by
           | the time my kid is out of college - 14 years from now, unless
           | she's smart and does the 5th year I never did. Anyhow, I
           | digress, but I'm glad we traveled, ate, bought a house, sold
           | a house, moved around a bit, etc. because even as income
           | continues upward (along with some wealth if that's what you
           | want to call our tech equity comp), life still gets harder in
           | non-financial areas.
           | 
           | I'm convinced the worst thing we do to our kids is shove them
           | through school and stick them behind a desk the day they're
           | done. I didn't break into tech until my mid 30s, but for the
           | folks who came out of college doing this, you have a
           | legitimate shot to be set before you turn 40. That said, if I
           | could rewind, I'd happily push my own retirement goals back a
           | few more years in exchange for a financially secure year off
           | in my 20's or early 30's.
        
             | btkramer9 wrote:
             | What would you do in your financially secure year off in
             | your 20's or 30's?
        
               | ghaff wrote:
               | Not the parent, but I would have primarily traveled.
               | Might have hiked the AT or something like that.
               | 
               | That said, although I didn't take extended time off, I
               | did always max out my vacation time and took month-long
               | trips to places like Nepal.
        
               | SmellTheGlove wrote:
               | I'd travel. I mean, we travel now, but not way off the
               | beaten path. And we're mostly working around the school
               | calendar (I'm ok being a little looser with that than my
               | wife is). I'd also spend some time learning something
               | that doesn't translate to money - get better at golf,
               | work on my skating, etc. I'd also do enough nothing to be
               | ready to go back to work by the end of it!
        
               | aaronax wrote:
               | I bought a sailboat and lived on it while traveling up
               | and down the east coast of the USA, and Bahamas. Lots of
               | learning and character development.
        
               | npsimons wrote:
               | Triple Crown of Hiking.
        
             | npsimons wrote:
             | Oh, trust me, I've definitely drank deeply of the pleasures
             | of life and plan to continue down that road, just on a
             | smaller scale. Seven course meal with wine pairings at Chez
             | TJ in Mountain View when I did my Google on-site interview
             | was definitely worth it.
             | 
             | I'm also in my early 40's. I've been working nearly 20
             | years, I'm just looking at another 10 years in this job,
             | and I don't think I can take it. The being stuck behind a
             | desk for a majority of my waking hours during my 20's and
             | 30's definitely resonates, and despite my passion for
             | software, I (relatively) recently re-learned just how good
             | physical exertion feels.
             | 
             | So yeah, I cut back on a number of things to reduce my
             | monthly burn rate, but I'm not suffering by any means. If
             | anything, I'm happier now with less, and seriously
             | considering if I need to continue working, or maybe I can
             | coastFIRE. The possibility has not escaped me that maybe
             | it's just not the right job for me, and perhaps I'd be
             | better off consulting or even trying micropreneurship, but
             | on a more relaxed schedule.
             | 
             | I do wish that when I was laid off in 2001 (my early 20's)
             | I had hiked the PCT instead of trying to start a consulting
             | business. Burned through my savings, and I probably would
             | have just as much money at the end of the PCT through-hike,
             | and definitely been happier.
        
             | breckinloggins wrote:
             | Counterpoint: I sacrificed a lot of my 30s to become debt-
             | free. 40 now and pretty close to FIRE (well I don't know
             | about the retiring part, but the FI part is almost there).
             | 
             | It was totally worth it.
             | 
             | In the end, it's a personal decision. I do agree that if
             | you find the majority of weeks to be acutely miserable,
             | then you should honestly ask yourself if you're giving up
             | too much present for an uncertain future.
        
               | SmellTheGlove wrote:
               | I did as well, and we've remained debt free for a while.
               | We're now in that cash poor phase since I seem to love
               | pre-IPO companies :) Was it worth it? To some degree, but
               | at the same time there are some big things on the list
               | that we will probably have to defer for a while now that
               | we have a school-aged child, a pet, etc. All I can say
               | is, do some of those things, and don't fixate too badly
               | on sacrificing everything to retire early. Family,
               | friends, relationships matter, and so on.
        
         | ghaff wrote:
         | I think it really depends. I could see continuing working for
         | someone longer in an IC role if no one is breathing down my
         | neck to do things I don't really want to do and, especially, if
         | I could negotiate flexibility in terms of time off, etc. I'm
         | actually pretty close on both those things today and, post-
         | COVID, I could see making adjustments more in that general
         | direction.
         | 
         | ADDED: As Denvercoder9 writes, _some_ companies /groups can be
         | pretty good about being hands-off a senior person who they want
         | and also know doesn't _need_ the job. Others, of course, are
         | not. Certainly many Sun folks did not sit well with Oracle.
        
         | SmellTheGlove wrote:
         | We're in the same boat, but given that this is HN and I don't
         | know if you're actually a billionaire or something, let's
         | assume we both aren't. I'm not, for sure.
         | 
         | This is a rational position for folks like us who a) work to
         | live, and b) probably haven't built anything to the level of
         | the second most popular language in the world.
         | 
         | Now say you're Guido. I don't know him, but I feel like we're
         | on a first name basis. Guido is clearly driven to invent, and
         | has developed one of the major building blocks of modern tech.
         | He's probably set for life financially, but Guido has the urge
         | to innovate. Along comes Microsoft, who basically is paying him
         | to do whatever he wants, however he wants. If you're Guido, you
         | take that.
         | 
         | Now if you're me (and it sounds like probably you too), we
         | don't have those kinds of offers, and I personally don't have
         | that specific drive either. Ideal retirement for me is more
         | time in my yard and also probably spending the cold months
         | starting app projects that I'll never finish. The way life
         | should be!
        
         | marcinzm wrote:
         | >I feel like if I reached the FIRE point, I would continue to
         | work, but entirely on my own terms, not as an employee of
         | somebody else.
         | 
         | If you want do to something that impacts or depends on other
         | people then you will never be solely on your own terms. Plenty
         | of people burn out of OSS because they think otherwise and then
         | the angry users eat away at them. Likewise being FIRE doesn't
         | mean you have unlimited resources so if you want more resource
         | you will need to get them on someone else's terms.
         | 
         | I've known a number of senior people at these companies that
         | basically get to do whatever they want, pitch projects and then
         | have teams whose job is to work out the details. Their name
         | provides so much political clout that the org bends around them
         | rather than the other way around.
         | 
         | Personally I work at startups as a hands on manager so
         | generally haven't had much red tape, institutional slowness,
         | upper management, etc. hassles to deal with. Would continue
         | doing so if I reached FIRE although might cut down my hours.
        
       | lostmsu wrote:
       | If it is any indication, I have seen a spike in activity in
       | IronPython3 repo [0], which previously looked abandoned.
       | 
       | [0] https://github.com/IronLanguages/ironpython3
        
         | 1-6 wrote:
         | Yay, that's exciting. IronPython is necessary for scripting
         | into my .Net/C#-based Revit but it's been stuck on IP2 forever.
        
       | jMyles wrote:
       | Is this a sign of the path for Python to finally become part of a
       | typical web and consumer toolchain?
        
         | webmaven wrote:
         | _> Is this a sign of the path for Python to finally become part
         | of a typical web and consumer toolchain?_
         | 
         | Maybe? A likely first step would probably be something like an
         | Electron fork/distro with Python built in, along the lines of
         | the abandoned PythonWebkit:
         | https://www.gnu.org/software/pythonwebkit/
        
       | bmitc wrote:
       | That's all well and good, but it drives me crazy Microsoft
       | refused and refuses to invest in F#, which could have very well
       | been the Python of today if they had paid any attention to it.
        
         | iammiles wrote:
         | As another F# enthusiast, I share the sentiment, but
         | practically speaking I don't think F# would have been in any
         | position to be the Python of today. It might have had a greater
         | chance if .Net Core existed 15 years ago, but being tied to
         | Windows was a big show-stopper regardless.
        
           | bmitc wrote:
           | I agree that my comment takes into account too much
           | hindsight, but certainly this is part of the pain. If
           | Microsoft had transitioned .NET to be cross-platform much
           | sooner or from the beginning, then they would have been
           | better off. I was recently surprised to learn that Mono
           | basically existed from the beginning of .NET, as I had no
           | idea it was so old, so it's clear that people wanted
           | something like .NET Core from the beginning.
           | 
           | It's confusing to me that Microsoft embarked on their Iron
           | <x> project, or whatever it was called, to stress test the
           | CLR, got F# out of the project, and then decided to sit on
           | it. They have incorporated F# features into C#, but it is
           | confusing to me that they saw the rising popularity of Python
           | and decided to let it happen unchecked because C# will never
           | be F# or a language that appeals to Python programmers.
        
           | lostmsu wrote:
           | It worked on Mono
        
         | justin66 wrote:
         | > F#, which could have very well been the Python of today
         | 
         | There's a phrase you don't see every day.
        
         | altrunox wrote:
         | > which could have very well been the Python of today if they
         | had paid any attention to it.
         | 
         | Wow, really? I'm a big fan of Clojure and F#, but IDK, I think
         | there is a bias against functional languages since they, IMO,
         | are harder to start doing stuff.
        
           | bmitc wrote:
           | You can write F# just as you would with Python. This would be
           | just using OOP or just a collection of functions operating on
           | simple struct- or dictionary-like types, using for loops,
           | using list comprehensions, using if-else, etc. It will look
           | very similar and be just as easy or easier to understand.
        
         | oaiey wrote:
         | F# is a community with an independent mindset. That is not a
         | good investment target. Also there is a factor is 100:1 between
         | C# and F# developers. I think the investment is maybe even in
         | favor of F# compared to that.
        
       | MadWombat wrote:
       | "Embrace, extend and extinguish" (tm)
       | 
       | I might need to branch out into other languages.
        
       | Trias11 wrote:
       | Make Python Great Again!
        
       | _the_inflator wrote:
       | With Anders Hejlsberg also at Microsoft, maybe they do something
       | like type-safe Python similar to TypeScript?
       | 
       | Anyway, congrats to both MS and Anders! This will be very
       | interesting for Python.
        
         | Anka33 wrote:
         | And {}
        
         | duckerude wrote:
         | > something like type-safe Python similar to TypeScript
         | 
         | That already exists, and van Rossum worked on it: http://mypy-
         | lang.org/
        
           | ehsankia wrote:
           | Also Pyre [0] by Facebook and Pytype [1] by Google. More
           | importantly, the core part (type annotations) allowing these
           | libraries to exist has been added to core python for years
           | now and keeps on evolving, so it is an ongoing effort.
           | 
           | EDIT: As mentioned below, also added Pyright [2] by Microsoft
           | 
           | [0] https://github.com/facebook/pyre-check
           | 
           | [1] https://github.com/google/pytype
           | 
           | [2] https://github.com/microsoft/pyright
        
             | tracnar wrote:
             | You forgot the one made by Microsoft, Pyright (and
             | PyLance).
        
         | bmitc wrote:
         | Isn't that just F#?
        
           | augusto-moura wrote:
           | F# is not even close of Python, they are very distinct
        
             | bmitc wrote:
             | Of course, one is a sanely designed language. :)
             | 
             | Joking aside, my question centered around that if one wants
             | a type-safe Python, why wouldn't you just want something
             | similar to F#?
        
               | augusto-moura wrote:
               | This is the same as asking for typed JS and getting Rust
               | recommended just because the syntax is similar.
               | 
               | They are totally different, the core paradigm of
               | programming is totally changed and most of the points of
               | JS are not in Rust (meta-programming, garbage collection,
               | community)
        
               | duckerude wrote:
               | You can add typing to an existing codebase, saving you
               | vast amounts of work compared to rewriting in a different
               | language.
        
               | bmitc wrote:
               | Can that really be done for Python and the vast amount of
               | libraries? I don't get the sense that one could simply
               | slap on a static type system on Python and get libraries
               | typed for free.
               | 
               | That is unless we're talking about a gradual typing
               | system for Python, where new Python code could be typed
               | and integrated into untyped codebases, similar to Racket
               | and Typed Racket.
        
               | duckerude wrote:
               | The existing type system (see e.g. http://mypy-lang.org/)
               | is gradual. You can mix typed and untyped code, at the
               | cost of some safety.
               | 
               | You can also write type stubs for libraries that don't
               | provide type information.
        
           | estomagordo wrote:
           | In the sense that indentation has syntactical meaning, yes.
           | Otherwise, no no no.
        
             | bmitc wrote:
             | I don't understand. You can take Python code and basically
             | write the equivalent in F#, ignoring many of F#'s
             | additional features. It would look similar (probably even
             | be cleaner) and would be type-safe.
        
       | ExcavateGrandMa wrote:
       | Always thought python were a virus on windows...
       | 
       | Still using python 2.7 with GNU/Linux in 2020...
       | 
       | Okay!
        
       | shangxiao wrote:
       | I'm quietly hoping they'll ask him to work on a typescript-style
       | of project that adds static typing as a layer on top of Python :)
        
       | daxfohl wrote:
       | Ironically I had just stumbled across his LinkedIn profile for
       | some reason last night and it was "retired, recruiters please get
       | the memo" or something of that sort.
        
       | punnerud wrote:
       | Why do I get a bad feeling about Microsoft's open source effort?
       | And it is just getting stronger by the years.
        
       | laichzeit0 wrote:
       | I'd really like to see move emphasis on types. Working in C#
       | lately made me realize once again how shit it is writing non-
       | trivial applications without strong type checking.
        
       | m0zg wrote:
       | Sources familiar with their thinking say Torvalds and Stallman
       | will join Microsoft early next year.
       | 
       | On a more serious note, I hope Van Rossum and Hejlsberg spend
       | lots of quality time together and thoroughly pick each other's
       | brains. This could result in great things in the programming
       | language space.
        
         | SirYandi wrote:
         | You don't happen to have anywhere I could read about Stallman
         | potentially joining Microsoft? I find it hard to believe he
         | would.
        
           | m0zg wrote:
           | It was a joke. :-) Hence "sources familiar with their
           | thinking" and "on a more serious note".
        
       | FreekNortier wrote:
       | Python for Excel data manipulation would be great.
        
         | mcintyre1994 wrote:
         | It's been at the top of their public feedback request page for
         | ages: https://excel.uservoice.com/forums/304921-excel-for-
         | windows-...
         | 
         | They did officially respond in 2018 and put out a survey for
         | thoughts, don't think they've followed up since but they
         | definitely know demand is there.
        
         | carabiner wrote:
         | First-class integration in Excel would be a game changer. Holy
         | shit. Though adding a multiline editor with indentation in
         | Excel would be really nice as well. We've got to stop
         | pretending Excel functions don't constitute a programming
         | language.
        
           | SmellTheGlove wrote:
           | Bring in versioning/snapshotting with some git integration
           | while you're at it...
           | 
           | The finance folks I work with are fucking wizards. I'm
           | convinced many of them would have made great engineers given
           | what they can accomplish building applications in what might
           | be the world's worst IDE.
        
         | jaimebuelta wrote:
         | Interestingly enough, Libre Office (and OpenOffice before that)
         | allow you to use Python internally for Macros through PyUNO,
         | which is a pain to use given the lack of documentation, but
         | amazingly powerful.
         | 
         | It was one of my first usages of Python, and used that to
         | create quite complex Spreadsheets
        
         | claudeganon wrote:
         | Office suite automation with Python would be great across the
         | board. The external python libraries that do this are pretty
         | clunky and VB scripting is a hot mess.
        
           | tomjen3 wrote:
           | Office now allows you to script it using Typescript, so you
           | don't have to use VB any more.
        
             | claudeganon wrote:
             | Oh that's cool! Haven't had to do anything with it in a few
             | years, but excited to check out how this works.
        
             | jannes wrote:
             | I'm really curious what you are talking about?
             | 
             | I could only find "Office Scripts", which doesn't work in
             | the normal desktop apps (only the web version).
             | 
             | Edit: I just found out about "Script Lab". Is that what you
             | are talking about? https://appsource.microsoft.com/en-
             | us/product/office/WA10438...
        
         | binarycodedhex wrote:
         | Agreed. VBA makes by fingers and eyes ooze gangrenous pus.
        
       | tambourine_man wrote:
       | I really dislike Windows but Microsoft is doing everything it can
       | lately to please developers. It's kind of working, I have to say.
        
       | intricatedetail wrote:
       | I hope that when Microsoft announced Windows 10 is the last one,
       | it meant that the next will be Linux distribution able to run
       | Windows apps better than Wine.
        
       | qwerty456127 wrote:
       | Hopefully he is going to make a really good port of Python to
       | .Net.
        
       | poma88 wrote:
       | That is more boring than retirement.
        
       | g051051 wrote:
       | Man, there's so much stuff I want to do but don't have time for.
       | I can't imagine retirement being so dull that I would go back to
       | corporate work.
        
       | threesmegiste wrote:
       | VBA out PYTHON in
        
         | kevas wrote:
         | hey hey hey...
        
       | Deimorz wrote:
       | Huh. A throwaway account here on HN said that he was working at
       | Microsoft 8 days ago, and I assumed they were wrong and thinking
       | of Dropbox: https://news.ycombinator.com/item?id=24983394
       | 
       | Sorry, throwaway account! Apparently I was the one who was wrong!
        
       | mips_avatar wrote:
       | Hopefully Microsoft will make Python a first class language
       | internally. There's still far too much pressure to use C# for
       | everything.
        
       | MR4D wrote:
       | So instead of BDFL for Python, he's going "make using Python
       | better".
       | 
       | Congrats to him for finding something fun to do in retirement -
       | dictators usually end up with a different outcome. ;)
       | 
       | I'm looking forward to seeing the future of Python - I think this
       | move will be great for the whole community, and lets him push
       | boundaries without being bogged down on the management side.
        
         | DylanDmitri wrote:
         | I'm hoping for a Jupyter/Excel hybrid, but that's mostly
         | wishful thinking.
        
           | [deleted]
        
           | likelybear wrote:
           | That's arguably the goal of
           | [Pluto.jl](https://github.com/fonsp/Pluto.jl). It's a (Julia-
           | specific) reactive notebook that automatically updates all
           | affected cells and has no hidden state.
        
             | antupis wrote:
             | That looks so good that I am thinking about learning Julia.
        
               | O_H_E wrote:
               | Well then I would like to through this your way.
               | https://mitmath.github.io/18S191/Fall20/
        
             | DylanDmitri wrote:
             | Ooh that's really good, thank you for sharing!
        
           | st1x7 wrote:
           | Please no. Excel is great when it stays within its lane and
           | use case and doesn't try to be everything. Jupyter is okay-
           | ish is some places but in general is way overused. Mixing
           | them together would be a move in the wrong direction and a
           | bit of a mess.
        
           | causalmodels wrote:
           | It's already been done https://www.youtube.com/watch?v=Od-1cE
           | ac9U4&feature=emb_titl...
        
           | gota wrote:
           | If you mean to retire VB in favor of Python for writing
           | macros, I'm all for it. Not much Jupyter though
        
           | Aperocky wrote:
           | Oh no.
        
           | askvictor wrote:
           | There's been a few projects in this space (PySpread is the
           | first that jumps to mind), but also, not too long ago (last
           | year maybe?), MS was investigating making Python a first-
           | class inhabitant of Excel, so might already be in the
           | pipeline.
        
         | sireat wrote:
         | Solve "How to deploy my sweet Python script on grandma's
         | computer" problem.
         | 
         | That is some reasonable way to deploy to someone who is not a
         | programmer nor tech person.
         | 
         | Not sure how much has changed since this was written:
         | http://effbot.org/pyfaq/can-python-be-compiled-to-machine-co...
         | 
         | PyInstaller.. well.. it works okay with std.. sometimes it does
         | not. It is the Electron solution.. add pandas to a project and
         | you get a 600MB install.
         | 
         | As developers we can manage to deal with package managers.
        
           | Pxtl wrote:
           | Such a shame things like that used to be simple - Py2Exe was
           | fine and Windows didn't freak the hell out at the sight of an
           | unsigned binary.
        
           | askvictor wrote:
           | In the education space (where Python is pretty big), the
           | biggest problem we have is that Python code isn't 'shareable'
           | so it's hard for kids to show off their creations to Grandma.
           | Sure, there are some products which work to work around that
           | (like repl.it), but the core problem remains - a student
           | can't easily get their Python program to run on an arbitrary
           | computer. It's why I'm very tempted to move to JS for
           | teaching, despite all of the dragons lurking there.
        
           | benhurmarcel wrote:
           | Not just to grandma. I have trouble deploying my scripts to
           | my colleagues.
        
         | bxbna wrote:
         | I'm not sure that Python will profit form this. He has had 50%
         | positions before and most of the new things he did were
         | precisely in the period in which he did not work for a
         | corporation.
         | 
         | If anything, this further corporate influence on Python
         | development is not something to be applauded. I bet there will
         | be lots of more churn in the next five years, big announcements
         | and no results.
        
         | eznzt wrote:
         | I hope they use Microsoft's money to make Python fast (or at
         | least fast enough)
        
         | 29athrowaway wrote:
         | If I remember correctly, Guido resigned as BDFL in 2018.
        
         | ImaCake wrote:
         | >Congrats to him for finding something fun to do in retirement
         | - dictators usually end up with a different outcome. ;)
         | 
         | I guess he is going for a Diocletian cabbage farmer style
         | retirement.
        
         | nickbauman wrote:
         | This is good news. It's sad that I find a lot of interesting
         | possibilities on Azure end up being "windows only." Hopefully
         | having more support for Python will fix some of that.
        
         | business007 wrote:
         | Why dictator? lmao I'm not familiar with the guy on anything
         | else than he's PHP's creator
        
           | Pxtl wrote:
           | In the off chance this isn't a joke: Python, not PHP. And he
           | wasn't just its creator, he was the head of the project for
           | its whole life until his recent retirement. Typical term in
           | the OSS community for one guy who is in charge of a massive
           | OSS project is Benevolent Dictator For Life, or BDFL. And
           | Guido was definitely one of those.
        
         | URfejk wrote:
         | A dictator found himself a new master.
         | 
         | :)
        
         | systemvoltage wrote:
         | An official package manager with great dependency resolution
         | would be fantastic. Or over take pipenv or poetry and sponsor
         | it through Microsoft $$$.
         | 
         | The biggest hurdle to python right now is the stupid package
         | managers. We need cargo for Python.
        
           | meowface wrote:
           | poetry feels like the closest equivalent to cargo that I've
           | used. pipenv is better than the previous status quo but is
           | still oddly unstable, with random new issues I encounter with
           | every release. poetry "just works" for me, has better
           | dependency resolution, and IMO has a nicer interface and
           | terminal output to boot.
        
           | hodgesrm wrote:
           | But if you fix Python package managers that will remove 50%
           | of the audience for Docker. Think of the children! ;)
        
           | roel_v wrote:
           | I only know a bit about Python - in what sense is pip not a
           | package manager?
        
             | andi999 wrote:
             | in the functioning sense.
        
               | estomagordo wrote:
               | care to elaborate?
        
             | nickjj wrote:
             | > in what sense is pip not a package manager?
             | 
             | It is a package manager but it lacks features that many
             | other package managers have in Ruby, Node, Elixir, and
             | other languages.
             | 
             | For example there's no concept of a separate lock file with
             | pip.
             | 
             | Sure you can pip freeze your dependencies out to a file but
             | this includes dependencies of dependencies, not just your
             | app's top level dependencies.
             | 
             | The frozen file is good to replicate versions across builds
             | but it's really bad for human readability.
             | 
             | Ideally we should have a file made for humans to define
             | their top level dependencies (with version pinning support)
             | and a lock file that has every dependency with exact pinned
             | versions.
        
               | vlovich123 wrote:
               | FWIW I had a lot of success using
               | https://github.com/jazzband/pip-tools to have
               | dependencies automatically managed in a virtualenv.
               | 
               | * Basically I would have a single bash script that every
               | `.py` entrypoint links to.
               | 
               | * Beside that symlink is a `requirements.in` file that
               | just lists the top-level dependencies I know about.
               | 
               | * There's a `requirements.txt` file generated via pip-
               | tools that lists all the dependencies with explicit
               | version numbers.
               | 
               | * The bash script then makes sure there's a virtual
               | environment in that folder & the installed package list
               | matches exactly the `requirements.txt` file (i.e. any
               | extra packages are uninstalled, any missing/mismatched
               | version packages are installed correctly).
               | 
               | This was great because during development if you want to
               | add a new dependency or change the installed version
               | (i.e. pip-compile -U to update the dependency set), it
               | didn't matter what the build server had & could test any
               | diff independently & inexpensively. When developers
               | pulled a new revision, they didn't have to muck about
               | with the virtualenv - they could just launch the script
               | without thinking about python dependencies. Finally,
               | unrelated pieces of code would have their own dependency
               | chains so there wasn't even a global project-wide set of
               | dependencies (e.g. if 1 tool depends on component A, the
               | other tools don't need to).
               | 
               | I viewed the lack of `setup.py` as a good thing -
               | deploying new versions of tools was a git push away
               | rather than relying on chef or having users install new
               | versions manually.
               | 
               | This was the smoothest setup I've ever used for running
               | python from source without adopting something like
               | Bazel/BUCK (which add a lot of complexity for ingesting
               | new dependencies as you can't leverage pip & they don't
               | support running the python scripts in-place).
        
               | musingsole wrote:
               | Isn't that effectively the result of a typical `setup.py
               | -> pip compile -> requirements.txt` flow?
               | 
               | The setup.py file contains a human readable designation
               | of requirements and then `pip compile` generates a
               | requirements.txt with all deps' (and deps of deps')
               | versions specified.
        
               | xapata wrote:
               | > Sure you can pip freeze your dependencies out to a file
               | but this includes dependencies of dependencies, not just
               | your app's top level dependencies.
               | 
               | Isn't that a good thing?
               | 
               | > no concept of a separate lock file with pip.
               | 
               | setup.py/.cfg vs requirements.txt, no?
        
               | baq wrote:
               | yes, but don't underestimate the power of convention.
               | 
               | if you make pip run 'pip freeze > requirements.txt.lock'
               | after every 'pip install whatever', you almost solve that
               | particular problem if setup.py is configured to parse
               | that (it isn't by default and there's no easy way to do
               | that!)
        
               | xapata wrote:
               | That's the whole point of distinguishing between logical
               | dependencies and reproducibility dependencies. I use
               | setup.cfg to describe the logical dependencies, I supply
               | a requirements.txt (or environment.yml, or a Dockerfile)
               | to provide the tools necessary to create a deployable
               | build.
        
               | nickjj wrote:
               | > Isn't that a good thing?
               | 
               | Yes, a very good thing.
               | 
               | > setup.py/.cfg vs requirements.txt, no?
               | 
               | A lot of web applications aren't proper packages in the
               | sense that you pip install them.
               | 
               | They end up being applications you run inside of a Python
               | interpreter that happen to have dependencies and you kick
               | things off by running a web app server like gunicorn or
               | uwsgi.
               | 
               | For a Python analogy vs what other languages do, you
               | would end up having a requirements.txt file with your top
               | level dependencies and when you run a pip install, it
               | would auto-generate a separate requirements.lock file
               | with all deps pinned to their exact versions. Then you'd
               | commit both files to version control, but you would only
               | ever modify your requirements.txt by hand. If a lock file
               | is present that gets used during a pip install, otherwise
               | it would use your requirements.txt file.
               | 
               | The above work flow is how Ruby, Elixir and Node's
               | package managers operate out of the box. It seems to work
               | pretty well in practice for ensuring your top level deps
               | are readable and your builds are deterministic.
               | 
               | Currently there's no sane way to replicate that behavior
               | using pip. That's partly why other Python package
               | managers have come into existence over the years.
        
               | xapata wrote:
               | I don't understand the distinction you're making. Are you
               | pip-installing or not? If not, why not?
               | 
               | My method for deploying a web application is to have a
               | Dockerfile which pip-installs the Python package, but I
               | could see someone using a Makefile to pip-install from
               | requirements.txt instead. In fact, I use `make` to run
               | the commands in my Dockerfile.
        
               | nickjj wrote:
               | > Are you pip-installing or not? If not, why not?
               | 
               | I am running a pip install -r requirements.txt when I do
               | install new dependencies. I happen to be using Docker
               | too, but I don't think that matters much in the end.
        
             | snazz wrote:
             | It does a bad job of dealing with versioning conflicts and
             | multiple projects, so Python developers resort to hacks
             | like virtual environments to get work done. Compared to
             | Cargo or even Go modules, it's not a great solution. It's
             | also missing lots of features that are standard in other
             | package managers.
        
               | ptx wrote:
               | What's wrong with virtual environments? The required
               | tools come bundled with Python nowadays and are super
               | easy to use.
        
               | orf wrote:
               | The need for a virtualenv has nothing to do with pip.
               | _Python_ only has "global" dependencies due to the way
               | its import system works.
        
               | jrochkind1 wrote:
               | Ruby works the same way, but bundler dependency manager
               | solves it anyway to give you per-project dependencies not
               | just system-wide dependencies. (I believe other well-
               | liked dependency managers like cargo are largely based on
               | bundler's semantics).
               | 
               | Perhaps ruby was more "hackable" by bundler. (Bundler has
               | now become part of ruby stdlib, but didn't start out that
               | way, it definitely started hacking around the way the
               | more fundamental stdlib 'rubygems' worked).
        
               | orf wrote:
               | so they've just automated the virtual environment
               | creation then. There's nothing about pip that is global
               | or not global. It unzips files from pypi into a
               | directory. Python, not pip, doesn't really support a
               | "node_modules" style setup. We use virtual environments
               | (venv/) which is somewhat similar.
        
               | zo1 wrote:
               | Not quite true. Python import mechanics are quite
               | hackable and controllable programmatically and externally
               | via controlling the relevant PATH env variables. It's
               | just that no one bothers with it and instead seems to
               | rely on the set of global folder-path lookup mechanics
               | that are standard.
               | 
               | But nothing stops you from masking global-libraries with
               | local library versions (similar to node_modules). Why
               | hasn't anyone done this you may ask? I don't know the
               | answer to that.
        
               | orf wrote:
               | There are a few reasons you can't have multiple versions
               | of the same module at the same time. Consider a simple
               | enum class defined in a package: two versions now have
               | two different enum objects which may not compare equally.
               | Maybe a function from module A would return Enum.A and
               | pass it to module B, which would then compare A.Enum.A to
               | B.Enum.A, which fails. Super confusing.
               | 
               | So yes, Python's import system is dynamic enough to do
               | crazy things, but I don't see how we can ever retrofit
               | that into Python.
               | 
               | Regarding dependencies installed into a project-local
               | directory (node_modules): that's a virtual environment.
               | Just more flexible.
        
               | d0mine wrote:
               | It may depend on you experience with each language. I
               | have much more experience with Python than Go (almost
               | none with Rust) and therefore I have much better time
               | with python packaging tools (I don't remember a single
               | issue, that I didn't find a satisfactory solution -- as
               | much as possible in the packaging world with myriad
               | conflicting use-cases)
               | 
               | For example, my experience with `cargo` (that I mostly
               | use to install command-line utilities such as rg, fd,
               | dust): it is great when it works as written in the
               | instructions but sometimes it doesn't (running `cargo`
               | may involve a lot of compiling -- in contrast to `pip`
               | which can use wheels transparently and avoid compiling
               | even for modules with C extensions -- I guess there might
               | be a way to do something similar with `cargo` though not
               | by default).
        
               | vmchale wrote:
               | > so Python developers resort to hacks like virtual
               | environments to get work done
               | 
               | It's really hard with many deps, it's why cabal (for
               | instance) moved away from a global model.
        
               | [deleted]
        
             | pmiller2 wrote:
             | GP comment was objecting to "stupid" package managers.
             | Maybe they think pip is stupid, because it's unquestionably
             | a package manager.
        
             | zo1 wrote:
             | Honestly - My non-polite, personal impression of all the
             | complaints is that they're borne from a very specific
             | development environment. One that includes lots of
             | dependencies similar to "npm", wants "docker style" local
             | development, and the devs seem to think dependency-
             | management is hard and you need complicated "semantic"
             | versioning and version operators... but really it's just
             | because they're working in a complex ecosystem of
             | microservices.
             | 
             | But, for the other 99% projects though: Most of their
             | dependencies won't break compatibility, you'll never
             | uncover a hard version dependency that the package manager
             | can't solve, you'll never need to "freeze" your dependency
             | versions and you can pretty much just rely on a semi-
             | persistent environment with all your necessary packages
             | installed and semi-regularly updated. Essentially smooth-
             | sailing.
        
             | vlovich123 wrote:
             | It's a package manager in the vein of "old-school" package
             | managers that came from Linux distros and whatnot. It
             | maintains a global dependency chain across your entire
             | machine. This can be good for security fixes in that you
             | only have 1 copy of a package & everyone references it.
             | This is not good for development because it doesn't provide
             | a sandbox'ed environment for you to do development in (ala
             | cargo as others have mentioned). It also causes issue if
             | you try to install 2 packages but they rely on incompatible
             | versions of a popular package meaning you have to choose
             | which package you want installed.
             | 
             | Some of this has been mitigated with virtualenv but having
             | a project express it's packages & have that automatically
             | reflected in the environment.
             | 
             | Finally, Cargo to my knowledge actually lets multiple
             | dependencies exist (even within the same project!!!) so
             | that you can have a dependency like:
             | dep1 -- dep3 <= v1.6                           /
             | 
             | < my awesome project> -------- dep3 >= 3.0 \ dep2 -- dep3
             | >= 2.0
             | 
             | That's not possible if you don't have the right language
             | hooks because module resolution needs to be aware of the
             | version of the library (i.e. when you go `import numpy`, it
             | actually needs to be aware of the package it's being
             | imported _from_ to resolve that correctly).
             | 
             | Now whether or not it's a good idea to support this kind of
             | dependency stuff can be controversial. In practice though
             | clearly it does cause problems the larger your codebase
             | gets as you're more likely to have some nested dependency
             | chain that's time-consuming to upgrade so you'd rather move
             | faster than make sure you're only running 1 version of the
             | dependency.
        
               | eeZah7Ux wrote:
               | > Finally, Cargo to my knowledge actually lets multiple
               | dependencies exist
               | 
               | That's a bug, not a feature. It enables sloppy
               | development and the disasters like on NPM
        
               | cactus2093 wrote:
               | For some reason I've run into this type of dependency
               | chain issue many times in JS, but have never run into it
               | in Python despite using both languages pretty heavily.
               | Maybe because the JS ethos is to change things so
               | quickly, if you're not making a major breaking change to
               | your package's API every year or two then you're getting
               | left behind (only kind of joking). Also probably because
               | the standard library is so small in JS (or at least it
               | used to be, and may projects want to be compatible with
               | at least some older browsers) so the average number of
               | dependencies that a typical library has is probably much
               | higher than in Python.
               | 
               | I really don't get the fuss about the global dependency
               | management though, maybe I would change my mind if Python
               | shipedp a great implementation of it. But I feel like the
               | problem is already solvable in multiple ways with
               | containers, VMs, or virtualenvs and I don't think yet
               | another abstraction to separate environments would add
               | much value to my day to day workflow building python
               | apps.
        
               | divbzero wrote:
               | This is my experience too. I've never actually
               | encountered a global dependency conflict with Python pip
               | though in theory it's possible. But I _have_ encountered
               | the same version conflict problem in dependency chains
               | that exists with Node npm.
               | 
               | And yet, I hear so many more complaints about Python pip
               | and I really don't understand the disconnect. Perhaps
               | dislike of pip is actually triggered by usability issues?
               | And then people look for other reasons to explain their
               | dislike?
        
               | disgruntledphd2 wrote:
               | It happens with the data science/scientific programming
               | stack a lot, at least twice in the last month I've pulled
               | in a small dependency that changed my numpy version which
               | broke everything.
        
               | divbzero wrote:
               | Thanks. I suppose it could be related to the rate of
               | change in the ecosystem. Python's data science /
               | scientific programming stack definitely changes faster
               | than Python's web stack which is currently my primary use
               | case.
               | 
               | As mentioned elsewhere in this thread, resolving this
               | dependency issue would require a change in the Python
               | language itself.
        
               | d0mine wrote:
               | > It maintains a global dependency chain across your
               | entire machine.
               | 
               | There are per python binary, per user, per virtualenv
               | installation (per project or per whatever you like) that
               | make the conflict less likely.
               | 
               | Sometime packages "vendor" their dependencies e.g., there
               | is `pip._vendor.requests` (thus you may have different
               | `requests` versions in the same environment).
               | 
               | There were setuptools' multi-version installs
               | https://packaging.python.org/guides/multi-version-
               | installs/ (I don't remember using it explicitly ever --
               | no need)
        
           | dalfonso wrote:
           | Microsoft already bought NPM so there's precedent.
        
             | TheDesolate0 wrote:
             | Yeah, but do we REALLY want M$ to control, github, npm,
             | node, rust, python, and ...
        
               | vmchale wrote:
               | We still have Idris and ATS.
        
               | ampdepolymerase wrote:
               | Considering that half of all prominent functional PL
               | researchers are hired by Microsoft Research I won't be
               | too confident about that.
        
               | coldtea wrote:
               | M"$"? 1999 called, they want their edginess back...
        
               | webmaven wrote:
               | _> M "$"? 1999 called, they want their edginess back..._
               | 
               | You realize that we're potentially just one leadership
               | change away from returning to the 'bad old days', right?
        
               | oblio wrote:
               | You're missing the big picture. In 1999, Microsoft's
               | revenue was at least 10x that of the closest competitor.
               | 
               | It controlled the client (desktop) and was working on
               | controlling the server, too.
               | 
               | Google, Facebook, Netflix, etc didn't exist. Amazon was
               | much smaller and in a different niche. Apple was trying
               | to not keel over in 2 months.
               | 
               | We're not a leadership change away from anything. The
               | world has changed.
        
           | fmakunbound wrote:
           | Definitely this, but I doubt such a luminary of computer
           | science will interested in such work.
           | 
           | The XKCD comic on Python package managers/Python environments
           | is not an exaggeration. I've always wanted to get more into
           | Python but every time I attempt to, it's this hurdle that
           | dissuades me.
           | 
           | Edit: Also, I guess Poetry is another thing that came along
           | since my last attempt.
        
             | acqq wrote:
             | > The XKCD comic on Python package managers/Python
             | environments is not an exaggeration.
             | 
             | Thanks, I haven't seen it before. It's really quite close
             | to the state on my home machine:
             | 
             | https://xkcd.com/1987/
             | 
             | It's not that I couldn't eventually resolve the current
             | state, it's that at the moment a few programs I regularly
             | run work, in spite of the different dependencies they have,
             | and I know that starting "cleaning up" will cost too much
             | time.
        
               | webmaven wrote:
               | > > The XKCD comic on Python package managers/Python
               | environments is not an exaggeration.
               | 
               |  _> Thanks, I haven 't seen it before. It's really quite
               | close to the state on my home machine:_
               | 
               |  _> https://xkcd.com/1987/_
               | 
               | Hmm. I've had machines with similar states, though never
               | with _both_ Anaconda and Homebrew.
               | 
               | Instead, I often had (in addition to the rest of the
               | system-level snarl) isolated per-app Python interpreters
               | that were specified & constructed with Buildout for
               | development testing & deployment.
               | 
               | Though I don't quite get the arrow from Homebrew 2.7 to
               | Python.org 2.6. Is that actually a thing or hyperbole?
        
               | acqq wrote:
               | > Is that actually a thing or hyperbole?
               | 
               | It's fiction, of course. Art often has to exaggerate to
               | make a point. I exaggerated too, just to remain in the
               | artistic rather than the technical spirit of the comics.
               | But there are some important bits of truth there, like in
               | every good joke.
        
               | webmaven wrote:
               | Of course. I just wasn't sure which bin that bit belonged
               | to.
        
               | shurane wrote:
               | Is python the worst for package management?
               | 
               | I thought C and C++ might have similar issues since
               | there's no unified package management there either.
        
           | Yajirobe wrote:
           | pip is completely fine
        
             | jevgeni wrote:
             | It is, unless you want to ship.
        
               | nojito wrote:
               | Just ship a container to the server.
        
             | robmurrer wrote:
             | pip in virtualenv. It is solved problem.
        
               | coldtea wrote:
               | Not even pip developers believe "pip in virtualenv" makes
               | python dependencies and package management a "solved
               | problem"...
        
               | user5994461 wrote:
               | 90% of professional python developers believe that python
               | dependencies is a solved problem (with pip and
               | virtualenv).
               | 
               | The rest is too vocal.
        
               | coldtea wrote:
               | > _90% of professional python developers believe that
               | python dependencies is a solved problem (with pip and
               | virtualenv)._
               | 
               | 99% of professional python developers think that you've
               | pulled this statistic out of your ass!
        
               | webmaven wrote:
               | _> >90% of professional python developers believe that
               | python dependencies is a solved problem (with pip and
               | virtualenv)._
               | 
               |  _> 99% of professional python developers think that you
               | 've pulled this statistic out of your ass!_
               | 
               | 72.6% of all statistics are made up, anyway.
        
               | [deleted]
        
               | eeZah7Ux wrote:
               | Spot on!
        
               | dragonwriter wrote:
               | > 90% of professional python developers believe that
               | python dependencies is a solved problem (with pip and
               | virtualenv).
               | 
               | I doubt that even 90% of those professional python
               | developers who believe that python dependencies is a
               | solved problem believe that it is solved with pip and
               | virtualenv; the conda faction has to be bigger than 10%.
               | Plus there's the people that think pip/venv aren't
               | enough, but that tools on top of them plug the gaps
               | (poetry).
               | 
               | But I think that the share of professional developers who
               | see it as a solved problem at all is less than 90%.
               | Obviously, we've all got some way of working with/around
               | the issues, that doesn't mean that we don't feel that
               | they exist.
        
               | user5994461 wrote:
               | If I can give my anecdote, the last 3 companies I worked
               | at that were heavily using Python and the hundreds of
               | developers in them were all relying on pip and
               | virtualenv. And it worked just fine no matter what the HN
               | crowd would have you believe.
               | 
               | conda had minor usage in the last one for building a
               | handful of special projects mixing C++ and Python code
               | (highly specific code in the finance industry), after
               | build the artifacts could go into the python repository
               | (internal pypi) and be usable with pip. Everything was
               | down to pip at the end of the day. As a matter of fact,
               | the guys who used and pushed for conda were also the ones
               | pushing the hardest for pip because pip is the answer to
               | everything.
        
               | jevgeni wrote:
               | Well, if the consumers are all devs, then sure.
        
               | jevgeni wrote:
               | My pet conspiracy theory is that Docker was created in
               | part because Python code is un-shipable otherwise.
        
               | [deleted]
        
               | ghshephard wrote:
               | I often wonder what problem is being solved by Poetry,
               | that pip with virtualenv(+wrappers) doesn't solve
               | perfectly well. requirements.txt ensures you have the
               | right version of everything in production, and virtualenv
               | lets you explore various versions of libraries without
               | risking any destabilization of your development
               | environment.
               | 
               | I struggle to see what spending time looking at Poetry
               | will yield in terms of any actual benefit, though I would
               | love to be informed/educated otherwise.
        
               | freehunter wrote:
               | virtualenv always feels like a hack to me. Too many times
               | I've forgotten to activate the virtualenv halfway through
               | a project and now I'm troubleshooting all the problems I
               | just caused with some packages installed in the
               | virtualenv and some globally and oh half of them aren't
               | in my packages.txt so now I can't remember which package
               | I needed for this...
               | 
               | I don't expect my dev tools to be idiot proof, but they
               | should at least try to be "I've been hacking for 18 hours
               | straight and I just need to commit this last line and I
               | can finally go to bed" proof.
        
           | nickbauman wrote:
           | So I hear Poetry is the way to go these days for python.
           | 
           | But a plurality of the people I encounter in the Clojure
           | community came there because leiningen (Clojure's package
           | manager that uses Maven under the covers) "just works" and
           | they got tired of having a tough time reproducing builds
           | consistently on other platforms / OSs with Python; not to
           | mention the performance gains of the JVM.
        
           | shirakawasuna wrote:
           | Poetry is very good: https://python-poetry.org/
           | 
           | It should be heavily promoted as the official option and
           | included with the distribution.
        
           | staticassertion wrote:
           | I'd love to see Poetry take off. I'm watching it pretty
           | closely.
        
             | transcranial wrote:
             | Same here. Poetry has been a joy, after many bouts of
             | frustration with pipenv.
        
             | kamyarg wrote:
             | Same, we switched from pipenv ~6 months ago, had not had to
             | worry about package/env related stuff since then, "just
             | works".
             | 
             | "evangelized" a sibling team also to consider switching,
             | they were sceptical but just recently they mentioned they
             | also like it more.
        
           | birdyrooster wrote:
           | Python's biggest hurdle is and always will be speed. Pip and
           | wheels aren't great but I would rather stop using golang.
           | That's a bigger win for me to stop maintaining proficiency
           | and tooling for a language that I honestly consider inferior
           | for the way I think about problems.
        
             | systemvoltage wrote:
             | Strongly disagree. Python's adoption is primarily driven by
             | how easy it is to get started (barring some nasties in
             | datetime, typing, and ofcourse the package manager).
             | 
             | Python is plenty fast for most automation tasks.
        
               | fermigier wrote:
               | Python is fast enough for many tasks, including number
               | crunching for which it excels (as long as you are using
               | the right libraries).
               | 
               | Projects like Cython allow to tweak without too much
               | effort the parts of a program that need an extra-boost.
               | 
               | Last but not least, there have been discussions in the
               | Python community in the last weeks of ways to speed up
               | considerably the default (CPython) implementation.
               | 
               | Hopefully, all of this will bear some fruits in the next
               | 2-5 years. Guido will probably help from his new position
               | at Microsoft.
        
               | Radim wrote:
               | > discussions in the Python community in the last weeks
               | of ways to speed up CPython
               | 
               | This piqued my interest. I found this, by Mark Shannon:
               | https://mail.python.org/archives/list/python-
               | dev@python.org/...
               | 
               | Is that what you mean?
        
               | birdyrooster wrote:
               | Only because libraries have to use C bindings to make it
               | fast enough. I don't think Python performance is good
               | enough when I have to stop writing in the language that
               | we are benchmarking to get good results.
        
               | birdyrooster wrote:
               | You are talking past the point I am making. No doubt
               | Python has excellent adoption because the language is
               | incredibly idiomatic and easy to understand -- thus why
               | it is my favorite language. Python is great in all of the
               | ways you just stated but it could be better and I am
               | saying that speed for CPU bound tasks is the way it could
               | be better. I am so tired of binning Python in favor of
               | golang the moment latency becomes important, I would like
               | to use it all the time.
        
             | JAlexoid wrote:
             | Python's biggest hurdle is it's lack of good tooling.
             | 
             | Try building a Unix app, with data in standard Unix
             | locations(bin, shared, lib, etc) and you'll find that you
             | have to write custom code.
             | 
             | And Google searches don't help :(
        
           | robmurrer wrote:
           | Better not move to NuGeT.eXe
        
           | kitanata wrote:
           | We use poetry for apps in production. At this point I think
           | that's the winning solution and as it continues to grow and
           | improve I think it will overtake all the others in this
           | respect.
        
             | nxpnsv wrote:
             | I also use poetry for everything. I have 0 problems, things
             | work on my mac, my interns pc, aws instances, I don't even
             | see what problem people are having. Before that I was using
             | pipenv, and before that just good old requirements.txt -
             | there were a few occasional issues, but really not much
             | even then. At this point, I suspect it is more about
             | regurgitating a complaint than a real issue. But, I could
             | be lucky and completely wrong...
        
               | ifore wrote:
               | - until a few months ago no way to sync an environment
               | with a lockfile (remove packages that shouldn't be there)
               | 
               | - no way to check if the lock file is up to date with the
               | toml file
               | 
               | - no way to install packages from source if the version
               | number is calculated (this will likely never be fixed as
               | it's a design decision to use static package metadata
               | insetad of setup.py, but is an incompatibility with pip)
               | 
               | - no way to have handle multiple environments: you get
               | dependencies and dev-dependencies and that's it. You can
               | fake it with extras, but it's a hack
               | 
               | - if you upgrade to a new python minor version you also
               | have to upgrade to the latest poetry version or things
               | just fail (Something to do with the correct selection of
               | vendored dependencies. May have since been fixed -- new
               | python versions don't come out all that often for me to
               | run into it. And in fairness the latest pip is typically
               | bundled with each python so it avoids that issue)
               | 
               | I still use poetry because it's more standard than hand-
               | rolled pip freeze wrapper scripts, and there's definitely
               | progress (the inability to sync packages was a hard
               | requirement for me but is not fixed) but it's not quite
               | there yet
        
               | disgruntledphd2 wrote:
               | If you don't need c or c++ dependencies it's ok. If you
               | do, it's very very painful. To be fair, most of the DS
               | libraries can be handled by conda, but if you need both
               | conda and pip, then you're going to have a bad time.
               | (Source: this is my life right now).
        
             | roseway4 wrote:
             | Much of Python's growth has been driven by data science.
             | Here, the conda package manager is pretty ubiquitous. Conda
             | packages system and other non-Python dependencies (such as
             | the CUDA SDK), removing the need for data scientists to
             | resolve these non-trivial dependencies themselves. This is
             | likely unneeded/ unwanted for production web app
             | deployments.
             | 
             | Given the varied use cases for Python, the goal of a single
             | package manager may be misguided.
        
               | mumblemumble wrote:
               | My understanding is that the people who developed Conda
               | would love to have stuck with pip, and originally wanted
               | to see about upgrading pip to support their use cases.
               | And it was GvR himself who told them that that wasn't
               | going to happen.
               | 
               | That was a long time ago, though, when scientific
               | computing was a small niche for Python. It might have
               | been reasonable to say it's not worthwhile to take on all
               | that extra work just to support the needs of a small
               | minority of users. Fast forward the better part of a
               | decade, and it turns out that scientific computing did
               | not stay a small niche. I think that one could make a
               | strong argument that, in retrospect, that brush-off did
               | not end up ultimately serving the best interests of the
               | Python community. It made the community more fragmentary,
               | in a way that divided, and therefore hindered, efforts at
               | addressing what has proven to be one of Python's biggest
               | pain points.
        
               | mixmastamyk wrote:
               | Conda predates pip by perhaps a decade.
        
               | mkl wrote:
               | Really? The first release of pip was in 2011 [1] and the
               | earliest release of Conda I can find is 1.1.0 in Nov.
               | 2012 [2], and the first public commit (into an empty
               | repo) was a month earlier [3].
               | 
               | [1] https://en.wikipedia.org/wiki/Pip_(package_manager)
               | 
               | [2] https://github.com/conda/conda/tags?after=1.3.0
               | 
               | [3] https://github.com/conda/conda/commit/c9aea053d8619e1
               | 754b24b...
        
               | mixmastamyk wrote:
               | May be anaconda that I'm thinking of.
        
               | dragonwriter wrote:
               | Anaconda was released in 2012, as well. Conda is a tool
               | that is part of anaconda.
        
               | mixmastamyk wrote:
               | This one:
               | https://en.wikipedia.org/wiki/Anaconda_(installer)
               | 
               | I forgive myself, it's pretty confusing :D.
        
               | dragonwriter wrote:
               | Ah. Name collisions suck.
        
             | hobofan wrote:
             | Yes, Poetry is great! I avoided Python for a long time due
             | to it's bad package management/environment handling
             | situation, but Poetry solved all my problems there.
        
             | derefr wrote:
             | People keep saying that about every new solution. But then
             | another one comes along that's even better-er, and the
             | previous one peters out.
             | 
             | The biggest need for a package manager and its ecosystem is
             | _continuity_ : the stance that new features and paradigms
             | will be gradually shifted toward -- without package-
             | ecosystem incompatibilities, without CLI commands just
             | disappearing (but instead, with long deprecation
             | timelines), etc.
             | 
             | In other words, an officially-blessed package manager is
             | one where, when something better-er comes along, it _gets
             | absorbed by_ the existing thing, instead of replacing it.
             | 
             |  _That_ is what the Python ecosystem is missing.
        
               | throwaway894345 wrote:
               | I don't think it's that another one comes along that's
               | better as much as it is the new "better" ends up missing
               | some important corner case. Pipenv advertised itself as
               | solving all problems, but once someone tries it in
               | practice, they realize that it introduces a new problem:
               | every little interaction takes literally 30 minutes for
               | any non-toy project. I've heard mixed things about
               | poetry, but I wouldn't be surprised in the least of it
               | failed to behave as advertised just because this has been
               | my experience with every package manager I've tried to
               | use. And it's embarrassing when every other language has
               | a package manager that _just works_.
               | 
               | EDIT: It was probably misleading to characterize Pipenv
               | as advertising itself as solving all problems; it's
               | probably more correct to say that it's significant
               | weaknesses weren't advertised and thus one has to invest
               | considerably before discovering them for oneself.
        
               | michaelmior wrote:
               | Interesting. I haven't used pipenv on any very large
               | projects, but I'm surprised to hear about the slowness.
               | With the (admittedly small) projects I've tried it, I
               | found that it does more or less _just work_.
        
               | throwaway894345 wrote:
               | As I understand it, the problem is that Pipenv needs to
               | resolve the dependency tree to do just about anything;
               | however, the dependency tree is dynamic--to determine a
               | package's dependencies, you have to download the package
               | and run it's setup.py. To get the whole tree, you have to
               | recursively download and run each package. So the cost is
               | proportional to the size of the dependency tree, so it's
               | very plausible that it works fine for the smallest
               | projects.
        
               | memco wrote:
               | Just a heads up to anyone who hasn't looked recently:
               | pipenv has been very actively worked on since earlier
               | this year and has had four updates that fix a lot of
               | issues. Earlier this year I would have said Poetry is
               | better hands down, but after the updates and after using
               | poetry and seeing some of its quirks, it's a much closer
               | matchup.
        
               | ifore wrote:
               | If it wasn't so opinionated it might have been more
               | successful.
               | 
               | Just one example: you want your virtualenvs to be created
               | in ~/.virtualenvs so that pipenv is a drop-in replacement
               | for virtualenvwrapper+pip? Tough luck for you, Kenneth
               | Reitz doesn't think that's how it should be done.
               | 
               | At least 3 or 4 times some issue I've wanted resolved I
               | found in the issue tracker with the last message "we'll
               | have to check with kennethreitz42 whether we're allowed
               | to change that" and then silence for a year.
               | 
               | It could still catch up with poetry, but from what I've
               | seen there's a fundamental mindset difference in how
               | change requests are approached between pipenv and poetry.
        
               | DangitBobby wrote:
               | Yes, Poetry should be the blessed package manager.
        
               | mumblemumble wrote:
               | I only want Poetry to become the be-all-end-all of
               | package managers if it turns out that Python really is
               | never going to fix the core problems that have engendered
               | so many of the hacks upon which Poetry (and its
               | competitors) is precariously balanced. Pyenv and venv,
               | for example.
        
               | bshanks wrote:
               | If you were doing a green field redesign, how would you
               | want Python to fix the core problems?
        
               | dragonwriter wrote:
               | > Yes, Poetry should be the blessed package manager.
               | 
               | Last time I tried to use poetry (and this is why it was
               | the last time I tried to use poetry), it ignored global
               | pip settings and had no documented mechanism for its own
               | settings (I believe poetry uses its own implementation of
               | or captive install of pip) which made it completely
               | unusable in a corporate environment with annoying SSL
               | interception issues to work around where pip + venv
               | worked.
               | 
               | Poetry is a much smoother experience when it works,
               | though.
        
               | croh wrote:
               | > People keep saying that about every new solution. But
               | then another one comes along that's even better-er, and
               | the previous one peters out.
               | 
               | I think this is happening these days frequently. People
               | try to cover all use cases and then end up in biting more
               | than they can chew. It won't work that way. Good set of
               | MINIMALS, is easy to maintain, sustain and extend.
        
           | bengalister wrote:
           | I like the way npm does. It has a cache of all downloaded
           | versions and it tries to flatten the dependencies when
           | possible. If there are incompatible versions they remain deep
           | in the dependency hierarchy.
        
             | vorpalhex wrote:
             | Npm has so many woes though. Love the idea but the
             | execution leaves much to be desired.
        
               | symlinkk wrote:
               | Like what?
        
               | lootsauce wrote:
               | Can you go deeper on this, honestly interested. I use NPM
               | all the time have not run into too many issues.
        
           | dcolkitt wrote:
           | I think in general Python's biggest challenge is that it
           | doesn't scale well. This is an agglomeration of issues around
           | the same theme: bad packaging when there's a lot of cross-
           | cutting dependencies, slow performance, no concurrency,
           | typing as second-class citizens, etc. All of that is barely
           | noticeable when you're just getting started on a small
           | experimental project, but incredibly painful in large
           | production systems.
           | 
           | I strongly suspect that devs' satisfaction with Python is
           | strongly correlated with the size of the codebase they're
           | working on. Generally people using Python for one-off
           | projects or self-contained tools tend to be pretty happy.
           | People stuck in sprawling enterprise codebases, with
           | O(million) lines of code to wrangle, seem almost universally
           | miserable with the language.
           | 
           | What I've observed a lot is that many startups or greenfield
           | projects start with Python to get an MVP out the door as fast
           | as possible. Then as the scope of the software expands they
           | feel increasingly bogged down and trapped in the language.
        
             | talolard wrote:
             | This described is perfectly
        
             | d0mine wrote:
             | Have you ever seen O(million) lines enterprise codebase
             | that didn't suck?
        
               | lrem wrote:
               | I've worked on several separate projects of that size in
               | C++ and Go. None of them seemed to achieve a similar mess
               | as Python codebases with one or two dozen thousand lines
               | seem to. OTOH, all the typing developments in Python
               | should have helped? I don't have that much experience
               | with them in enterprise setting.
        
               | commonturtle wrote:
               | I've worked with an O(100k) line code base in Python that
               | was pure torture. Honestly, I was so desperate for
               | static-typing by the end that I would have preferred if
               | it was all written in C++.
               | 
               | Large codebases are really hard reason about without
               | types. I'm glad we now have projects like Pyre that are
               | trying to bring typing to Python.
        
               | chii wrote:
               | There's some confounding issues that are often confused
               | together tho.
               | 
               | large python code bases _could_ be written with well
               | modularized, clean separation of concerns and
               | composability. Or it could be written in spaghetti.
               | 
               | Using types _could_ help a code base from becoming
               | spaghetti, but it's not the only way. I think the
               | understandability and maintainability of a code base has
               | more to do with the person writing it than the
               | availability of a type system tbh.
        
               | ineedasername wrote:
               | _> desperate for static-typing _
               | 
               | Can you explain why? I honestly don't know, because my
               | experience with C++ was during school ~20 years ago, and
               | since then professionally I've used mostly python in
               | relatively small codebases where it's all my own code
               | (mostly for data processing/analysis). Thanks!
               | 
               | (Although I did have to write some C code to glue
               | together data in a _very_ old legacy system that didn 't
               | support C++, much less python. It took a lot more effort
               | to do something simple, but it was also strangely a
               | _really_ rewarding experience. Kind of similar to feeling
               | when I work with assembly on hobby projects)
        
               | johntb86 wrote:
               | The main problem with duck-typing like python has is the
               | lack of consistency between different objects that code
               | has to work on. Different callers may pass objects with
               | different sets of methods into a function and expect it
               | to work. You run into the case where the object that was
               | passed in is one with subtly-mismatched behavior from
               | what your method expects, but you don't know who created
               | it - it was probably stored as a member variable by
               | something 10 callstack levels and 5 classes distant from
               | what you're currently working on.
               | 
               | Static typing prevents that by telling you early where
               | the mismatch is happening - some method calls into
               | another with a variable of the wrong type, and that's
               | where the bug is. It also allows tooling to look up the
               | types of variables and quickly get information about
               | their properties.
        
               | ineedasername wrote:
               | Got it, that makes sense. It also makes sense why I've
               | not much been bothered by it in python since my relative
               | small code bases don't have that many layers of
               | abstraction laid on top of each other.
        
               | MR4D wrote:
               | LOL!!
               | 
               | Or even worse - could you imagine how many lines that
               | would be in C++ ?
               | 
               | Yowza!
        
               | oarabbus_ wrote:
               | n!
        
               | zo1 wrote:
               | I have - and it's not that bad. The key is you have to
               | have someone coordinating and driving a shared vision for
               | the codebase and patterns. But it's hard to find people
               | with that sort of passion and drive to follow-through as
               | it's a multi-year endeavor with politics all over.
               | 
               | Otherwise its a thousand implementations of the same
               | 100-line piece of code interspersed everywhere.
        
               | ineedasername wrote:
               | It seems like quality code management gets passed over by
               | (bad) management because it looks like it doesn't
               | directly move the project forward.
               | 
               | Which is strange because those same managers may be full
               | adherents to micro tasking projects in a project
               | management system whose purpose is basically to do for
               | the project what code management does for the code
               | itself.
               | 
               | In my workplace, we've recently had leadership that
               | appreciates these things, and the difference is night &
               | day. Simple requests from "stakeholders" (I hate that
               | term) are often filled in days, or same day, instead of
               | weeks. I think it helps tremendously that the primary
               | manager is also a coder herself, and still codes ~25% of
               | her job.
        
               | gordaco wrote:
               | This is surely anecdotic and very subjective, but I have
               | (in Java and in C++; IIRC the exact versions were Java 7
               | and C++03), and the level of pain was lower than with a
               | Python code base that was about one order of magnitude
               | smaller. In the case of C++, the pain was mostly
               | asociated with an ancient build system we used; the code
               | itself was relatively manageable. There was almost zero
               | template code, and maybe that helped (although in other
               | occasions I've worked with smaller C++03 codebases that
               | relied heavily on templates and I didn't find them that
               | bad).
               | 
               | Not all codebases are equal and maybe I was lucky, but in
               | my experience, using dynamic languages (or, to be exact,
               | any language where the compiler doesn't nag you when
               | there is a potential problem) doesn't scale well.
        
             | [deleted]
        
             | hobby-coder-guy wrote:
             | > O(million)
             | 
             | What does this mean?
        
             | adamc wrote:
             | At O(million), the problem wrangling it has more to do with
             | how well its architected and written than it being Python.
             | Python is at least easy to read. Its major deficiency is
             | the lack of annotation of parameters, and that's something
             | that could now be fixed... but it isn't going to be fixed
             | in that much historical code.
             | 
             | It you are trying to get _performance_ out of it (which
             | doesn 't really hinge on whether it's a million lines of
             | code), then Python might be the wrong choice. But you can
             | always write it in Rust or C and give Python an API to the
             | functionality.
             | 
             | I agree that packaging is a mess. Fixing that mess with
             | modularization in Java took a long time, and most other
             | languages have that problem, too.
        
             | ineedasername wrote:
             | _> People stuck in sprawling enterprise codebases, with
             | O(million) lines of code to wrangle, seem almost
             | universally miserable with the language._
             | 
             | This seems to be the case with most languages, especially
             | if good code control isn't practiced, and unfortunately
             | that's not uncommon.
        
             | Guthur wrote:
             | And how much of those problems are an artefact of moving
             | fast and getting things down.
             | 
             | I've seen the exact same scenario with other languages. The
             | problem is that in a start up environment you are likely
             | adding amd retiring more "features" at a speed that layers
             | so much complexity that you can no longer reason about what
             | business rules are actually valid any more.
        
               | EsotericAlgo wrote:
               | I think that's part of it. There is a convention over
               | configuration issue as well. A language like Go forces
               | some patterns like package management and formatting
               | unless you actively try to subvert it.
               | 
               | It wouldn't surprise me if many of these issues are self-
               | selecting in the language communities as well.
        
             | zmmmmm wrote:
             | Very much agree. I oversee a relatively small python
             | codebase, but getting good quality, safe code out of the
             | developers in a controlled way is really hard - there are
             | so many ways in which the language just doesn't have enough
             | power to serve the needs of more complex apps. We have
             | massive amounts of linting, type hinting, code reviews
             | spotting obvious errors that would be just invalid code in
             | other languages.
             | 
             | It's like getting on a roller coaster without a seat belt
             | or a guard rail. It's fun at first, and you will make it
             | around the first few bends OK ... then get ready ...
             | 
             | Of course, with enormous discipline, skill and effort you
             | can overcome all this. But it just leaves the question -
             | really, is this the best tool for the job in the end?
        
             | aserafini wrote:
             | No concurrency? asyncio is great for I/O bound network
             | stuff!
        
               | colonwqbang wrote:
               | "No parallelism" is probably what was meant.
        
               | dragonwriter wrote:
               | > "No parallelism" is probably what was meant.
               | 
               | Which is still wrong, of course, but "no in-process (or
               | in-single-runtime-instance) parallelism" would be
               | correct, as would "forking inconvenient parallelism".
        
             | jnwatson wrote:
             | I work on Python every day on a reasonably large code base
             | and have none of the issues you're talking about. I'm 10x
             | more productive than similar C or Java projects.
             | 
             | Dependency management is about as easy as it is going to
             | get. We have problems with our dependencies breaking stuff,
             | but who doesn't?
             | 
             | People talk as if packaging is a solved problem. It isn't
             | in any language. And then they complain that Python
             | packaging changes too much. That's because folks are
             | iterating on a hard problem.
        
               | disgruntledphd2 wrote:
               | Do you handle deployment of this Python application? For
               | me, that's where the pain points arise. I love writing
               | Python, but deploying it does not spark joy at all, at
               | all.
        
               | d0mine wrote:
               | Here's some of the ways to deploy Python code:
               | 
               | - `curl -L https://app.example.com/install | sh` that
               | downloads installer and runs for instance: apt/yum
               | install <your-package>
               | 
               | - in CI environment on a VM: `git checkout` & `pipenv
               | install --deploy`
               | 
               | - `pipx install glances` on a home computer
               | 
               | - just `pip install` e.g., in a docker container
               | [possibly in a virtualenv]. For pure Python packages, it
               | can work even in Pythonista for iOS (iphone/ipad)
               | 
               | - just copy a python module/archive (PyInstaller and the
               | like)
               | 
               | - give a link to a web app (deployed somewhere via e.g.,
               | git push)
               | 
               | - for education: there are python in the browser options
               | e.g., brython, repl.it, trinket.io, pythontutor.com
               | 
               | - just write a snippet in my favourite editor for
               | literate devops tasks/research (jupyter-emacs + tramp +
               | Org Babel) or give a link to a Jupyter notebook
               | 
               | - a useful work can be done even in a REPL (e.g., Python
               | as a powerful calculator)
        
               | erjiang wrote:
               | Curious to know what issues you have with deploying
               | Python codebases. Out of all of the minor and major
               | gripes I have with Python, deployment is not one of them.
        
               | tetha wrote:
               | To me, python deployments are painless, as long as you
               | can stick to pure dependencies and possibly wheels.
               | 
               | Once a pip install needs to start compiling C, things do
               | go way south very quickly. At that point you can install
               | the union of all common C development tools, kernel
               | headers and prepare for hours of header hunting.
               | 
               | I've done that too much to like python anymore.
        
               | wenc wrote:
               | I use Anaconda exclusively and deployments (with virtual
               | environments) have been fairly ok.
               | 
               | That said, I do run into trouble when I have a dependency
               | that requires compilation on Windows (i.e. like the
               | popular _turbodbc_ ) because say, a wheel isn't available
               | for a particular Python version. Any time a compilation
               | is needed, it's a headache. Windows machines don't come
               | with compilers, so one has to download and install a
               | multigigabyte Visual Studio Build Essentials package just
               | to compile. Sometimes the compilation fails for various
               | reasons.
               | 
               | Require gcc compilation is headache for installing
               | dependencies inside Docker containers too -- you have to
               | install gcc in order to install Python dependencies and
               | then remove gcc after.
               | 
               | I think requiring local compilation (instead of just
               | delivering the binary) is a UNIX-mindset that is holding
               | back many packaging solutions. I think a lot of pain
               | would be alleviated if we could somehow mandate
               | centralized wheel creation for all Python versions,
               | otherwise the package manager marks a package as broken
               | or unavailable and defaults to the last available wheel.
               | 
               | Also if only we applied some standards like R's CRAN repo
               | does -- ie. if it doesn't pass error checks or doesn't
               | build on certain architectures (institute a centralized
               | CI/CD build pipeline in the package repo), it doesn't get
               | published -- the Python packaging experience would be
               | much improved.
        
             | KaiserPro wrote:
             | "devop" here
             | 
             | > doesn't scale well.
             | 
             | Nothing scales well. scaling requires lots of effort. It
             | doesn't matter what language you use, you'll rapidly find
             | all its pain points.
             | 
             | > bad packaging when there's a lot of cross-cutting
             | dependencies
             | 
             | Much as I hate it, docker solves this. Failing that poetry
             | or if you must venv. (if you're being "clever" statically
             | compile everything and ship the whole environment,
             | including the interpreter) its packaging is a joy compared
             | to node. Even better, enforce standard environments, which
             | stops all of this. One version of everything. you want to
             | change it? best upgrade it for everyone else.
             | 
             | > slow performance
             | 
             | Meh, again depends on your use case. If you're really into
             | performance then dump out to C/C++ and pybind it. fronting
             | performance critical code in python is a fairly decent way
             | to allow non specialists handle and interface performance
             | critical code. Its far cheaper to staff it that way too.
             | standard python programmers are cheaper than performance
             | experts.
             | 
             | If we are being realistic, most of the time 80% of python
             | programs are spend waiting on network.
             | 
             | Granted, python is not overly fast, but then most of the
             | time your bottleneck is the developer not the language.
             | 
             | > no concurrency
             | 
             | Yes, this is a pain. I would really like some non GIL based
             | threading. However its not really been that much of a
             | problem. multiprocessing Queues are useful here, if
             | limited. Failing that, make more processes and use an rpc
             | system.
             | 
             | > typing as second-class citizens
             | 
             | The annotation is under developed. being reliant on
             | dataclass libraries to enforce typing is a bit poop.
             | 
             | > People stuck in sprawling enterprise codebases, with
             | O(million) lines of code to wrangle, seem almost
             | universally miserable with the language.
             | 
             | I work with a _massive_ monorepo. Python isn't the problem,
             | its programmer being "clever" or making needless
             | abstractions of abstractions. None of that is python's
             | issues, its egotistical programmer not wanting to read
             | other people's (un documented) code. And not wanting to
             | spend time make other people's code better.
        
               | ineedasername wrote:
               | _its programmer being "clever"_
               | 
               | When I have to revisit old code I've written, I
               | occasionally encounter my "cleverness" at the time. I
               | always hate that past version of me. I think I've
               | _mostly_ learned my lesson. I guess I 'll know in a few
               | years.
        
               | rovr138 wrote:
               | >Nothing scales well. scaling requires lots of effort. It
               | doesn't matter what language you use, you'll rapidly find
               | all its pain points.
               | 
               | This is very important. A lot of people think that just
               | using go or rust or whatever other language is new fixes
               | all of this. But with a big enough project, you'll find
               | all the issues. It's just a matter of time.
        
               | sanderjd wrote:
               | This is _somewhat_ true - scaling is hard no matter what
               | - but some things scale much better than others. I have
               | been miserable working with ruby on rails codebases that
               | are much smaller than java codebases I have been content
               | working on. This is despite personally enjoying the ruby
               | language _far_ more than the java language.
        
               | loup-vaillant wrote:
               | Do not miss that one will find all of the _language 's_
               | pain points. I'd wager that a dynamically typed languages
               | such as Python has quit a few more pain points at scale
               | than a more principled language such as OCaml.
               | 
               | I love Python's bignum arithmetic when I write small
               | prototypes for public key cryptography. I love Python's
               | extensive standard library when I'm scrapping a couple
               | web pages for easier local reading. But I would never
               | willingly chose it for anything bigger than a few hundred
               | lines. I'm simply not capable of dealing with large
               | dynamically typed programs.
               | 
               | Now if people try Rust or OCaml with the mentality of an
               | early startup's Lisp developer, they're going to get hurt
               | right away ("fighting the language" and "pleasing the
               | compiler" is neither pleasing nor productive), and
               | they're going to get hurt in the long run (once you've
               | worked around the language annoying checks, you won't
               | reap as much benefits).
               | 
               | If you'll allow the caricature, don't force Coq down Alan
               | Kay's throat, and don't torture Edsger Dijkstra with TCL.
        
               | nope_42 wrote:
               | > Much as I hate it, docker solves this. Failing that
               | poetry or if you must venv. (if you're being "clever"
               | statically compile everything and ship the whole
               | environment, including the interpreter) its packaging is
               | a joy compared to node. Even better, enforce standard
               | environments, which stops all of this. One version of
               | everything. you want to change it? best upgrade it for
               | everyone else.
               | 
               | No, docker doesn't solve the fact that some packages just
               | won't play nicely together. NPM actually does this better
               | than the python ecosystem too since it will still work
               | with different versions of the same dependency. You get
               | larger bundle sizes but that's better than the
               | alternative of it just flat not working.
        
           | beagle3 wrote:
           | Conda works well.
           | 
           | Have never used cargo - what can cargo do that conda cannot?
        
             | StreamBright wrote:
             | Just work, instead of not working?
             | https://github.com/conda/conda/issues/9059
        
             | jevgeni wrote:
             | Feature selection, dependency overriding, worspaces, to
             | name a few.
        
               | beagle3 wrote:
               | conda has "environments" which are isolated from each
               | other and can each have specific versions of python and
               | dependencies installed in them (and each has their own
               | "pip" local installation as well, in case something
               | wasn't specifically packaged for conda).
               | 
               | What are those "workspaces" you refer to?
               | 
               | What is "feature selection"?
        
             | sidlls wrote:
             | Conda works slightly better than pip, which is a pretty low
             | bar. Python package management is probably the absolute
             | worst thing about that language.
        
               | beagle3 wrote:
               | Still, it worked perfectly for me for Python, and a few
               | more things. So I ask - what problems does conda have?
               | And which of those does cargo not have?
               | 
               | Alternatively, what does cargo do better than conda if
               | they are not feature-for-feature comparable ?
        
               | short_sells_poo wrote:
               | This is probably a hard problem, but the dependency graph
               | resolution in conda is a thing of nightmares. It is so
               | appallingly slow even for relatively menial tasks that
               | updating environments becomes an exercise in frustration.
               | 
               | I'm unsure what are the core issues, but in my experience
               | cargo was always pretty quick to use and if it fails, it
               | fails fast.
               | 
               | Conda on the other hand is slow for the simple cases, and
               | if the graph becomes complex it will just churn for 15
               | minutes before throwing it's hands in the air and giving
               | up with some cryptic error.
               | 
               | I suspect it comes back to the fact that packaging and
               | dependency management was thought about upfront for Rust
               | and the whole ecosystem was built well from the get go?
        
               | steveklabnik wrote:
               | I've been meaning to write a blog post on this topic.
               | That is, on the various speeds of various package
               | managers. I don't know a ton about Conda, but when I was
               | looking into Poetry, one of the core issues is:
               | https://python-poetry.org/docs/faq/#why-is-the-
               | dependency-re...
               | 
               | > This is due to the fact that not all libraries on PyPI
               | have properly declared their metadata and, as such, they
               | are not available via the PyPI JSON API. At this point,
               | Poetry has no choice but downloading the packages and
               | inspect them to get the necessary information. This is an
               | expensive operation, both in bandwidth and time, which is
               | why it seems this is a long process.
               | 
               | Cargo doesn't need to do anything with packages directly
               | to do its job; everything it needs is in the index. This
               | makes it pretty fast.
        
               | estebank wrote:
               | >> This is due to the fact that not all libraries on PyPI
               | have properly declared their metadata and, as such, they
               | are not available via the PyPI JSON API. At this point,
               | Poetry has no choice but downloading the packages and
               | inspect them to get the necessary information. This is an
               | expensive operation, both in bandwidth and time, which is
               | why it seems this is a long process.
               | 
               | This sounds like something that could be done server
               | side, either by PyPI or another entity and expose it
               | through a new API endpoint, instead of doing it on every
               | Python developer's machine.
        
               | steveklabnik wrote:
               | The core issue is that setup.py can be non-deterministic,
               | so them doing it server side may not give the right
               | results.
               | 
               | https://dustingram.com/articles/2018/03/05/why-pypi-
               | doesnt-k...
        
               | stevesimmons wrote:
               | conda taking 15+ mins to resolve dependencies is by far
               | its biggest weakness.
        
               | benhurmarcel wrote:
               | If it doesn't fail to "solve the environment" after 30
               | minutes that's already a win.
        
               | sidlls wrote:
               | In addition to the other replies, one I've encountered is
               | the case where conda doesn't provide a build for a
               | package (thus, one must use pip or something else to
               | manage that dependency) causing weird issues with respect
               | to maintenance and updates.
               | 
               | The two worst are in the other comments: ensuring sync'd
               | dependencies across multiple environments and developers,
               | and the horrendous resolution times leading to a useless
               | error message when failures occur.
        
               | baq wrote:
               | conda can manage python versions itself as if it was
               | another package.
               | 
               | https://docs.conda.io/projects/conda/en/latest/user-
               | guide/ta...
               | 
               | i've never used it particular feature, but then i'm using
               | python since 1.5 and i'm just used to it being a bit
               | behind the times. stockholm syndrome, you might say,
               | especially after trying out rust and seeing the work of
               | art cargo is.
        
               | jshen wrote:
               | How do you ensure a team of 30 developers are all using
               | the same version of python and all of the dependencies of
               | your project with conda? How do you distinguish prod
               | dependencies from dev dependencies? How do you update and
               | manage transitive dependencies?
               | 
               | There are more, but those are the big three.
        
               | beagle3 wrote:
               | Conda manages Python itself as one of the dependencies -
               | so that's not actually a problem.
               | 
               | I used conda to manage 2.6, 2.7 and 3.3 side by side, a d
               | that was fine. I never locked the patch version (e.g.
               | 2.7.3 vs 2.7.5) though that is definitely possible.
               | 
               | It apparently requires a specific workflow - explicitly
               | editing the requirements.txt file, rather than freezing
               | it - which is not harder and which I was doing since day
               | 1 but is apparently uncommon.
               | 
               | (And it worked well across a few tens of machines, some
               | running windows and some running Linux, with a mix of os
               | versions and distributions. So I know it worked well
               | already in 2013, and I'm sure it works better now).
               | 
               | Speed is not good, but I never had it take more than a
               | minute for anything. Some people here are reporting 15
               | minutes resolution times - that is a real problem.
        
           | vmchale wrote:
           | > An official package manager with great dependency
           | resolution would be fantastic.
           | 
           | Need something like cabal. And a package index.
        
           | Arkanosis wrote:
           | Cargo for Python... that's pretty much Poetry.
           | 
           | I was already in love with Python, but Poetry has definitely
           | made me a much happier Python developer.
        
           | throwaway894345 wrote:
           | Package management and performance. Microsoft has done an
           | impressive job of making software development better lately,
           | and if any community needs it, it's Python. Python has a lot
           | of potential, but it's sorely hampered by poor package
           | management and performance, which are ultimately both
           | symptoms of its commitment to exposing the entire CPython
           | interpreter as a stable public interface. If the Python
           | leadership were willing to commit to a narrower interface
           | that met the goals of the c-extension community and also
           | allowed Python to improve with respect to performance and
           | package management (and I think this is very possible, hpy
           | gets us close afaict), then we could have the best of both
           | worlds, and I'm optimistic that Microsoft could provide this
           | leadership.
        
             | zo1 wrote:
             | What poor performance?
             | 
             | At this point, this criticism has become a "thing" that no
             | one really expands on or enumerates as if it's a given.
             | It's not a given, and at the very least is nuanced and
             | complicated.
        
               | throwaway894345 wrote:
               | I'm not sure where you're getting your information, but
               | Python itself is quite slow (100-1000X slower than Go or
               | Java) and it's only "fast" when it's dispatching to C or
               | Rust or FORTRAN, and even then (to your point about
               | nuance) these optimizations are only feasible _sometimes_
               | ; namely, when the cost of serializing is lower than the
               | efficiencies gained by the optimizations available in the
               | target language. This is all pretty widely discussed,
               | including here on this very forum.
               | 
               | No doubt that Python is sometimes fast enough (e.g.,
               | vanilla CRUD apps that do all of the heavy lifting in
               | Postgres), but sometimes it's not and you're left with
               | really crumby optimization options. And since we rarely
               | can know with certainty on the outset of a project
               | whether or not the bottlenecks will be amenable to the
               | optimizations afforded by Python, it's a dangerous game.
               | I would even go so far as to say that other languages
               | have become quite good at many of the things that Python
               | is good at (namely pace of development) while being much
               | better at the things that it's not good at (performance,
               | package management, etc), so I actually wouldn't
               | recommend starting new projects in Python except for
               | certain niches, like scientific computing (and who knows
               | if Python will even retain its dominance there).
        
           | tomrod wrote:
           | I jumped down the black hole of pip + geo packages this week.
           | Your comments are absolutely spot onm
        
         | pmontra wrote:
         | At the top of my wish list there is a deployment tool for web
         | applications like capistrano / mina for Ruby. I ended up
         | writing my own for the project of a customer. It's been running
         | for a few years now.
         | 
         | Same customer, another project, I'm experimenting with a
         | deployment system based on git format-patch. It copies the
         | patches on the server (we have only one server) and applies
         | them with patch. Then restart the web app.
         | 
         | It's fun to learn the internals by rewriting the tooling but a
         | good tooling to start with would be better.
        
       | [deleted]
        
       | simonw wrote:
       | By far the biggest challenge for the Python ecosystem at the
       | moment is how difficult it is for new users to get started, and
       | how difficult it is for non-programmers to install tools written
       | in Python.
       | 
       | I'd be thrilled if Guido and Microsoft could help make this
       | better!
        
         | Aperocky wrote:
         | Seriously? python is the easiest language to get started imo,
         | absolute minimum requirements to get a script off.
         | 
         | If non-programmers don't even want to run a few command in
         | terminal like pip, why do they even want to start with python?
         | The whole mentality is wrong.
        
           | bredren wrote:
           | I think maybe the bar is low for new to development
           | experience across all fronts.
        
       | pvitz wrote:
       | Miguel de Icaza: "The developer division at Microsoft now employs
       | the language designers and contributors to Python, Java,
       | JavaScript, Typescript, F# C#, C++.
       | 
       | We just need some PHP, Rust and Swift magic to complete the
       | picture."
        
         | daxfohl wrote:
         | There was also that dude who created GW-BASIC.
        
           | aidenn0 wrote:
           | He doesn't work for them anymore.
        
             | daxfohl wrote:
             | Yeah I heard he's cleaning toilets in Africa now. I guess
             | rumors about Microsoft's low TC are true.
        
         | lostmsu wrote:
         | Can we skip PHP?
        
           | tored wrote:
           | No, what Microsoft should do is a WinRT language projection
           | for PHP. Can you imagine the epicness?
        
             | oaiey wrote:
             | Considering that php runtime in 2020 is quite speedy (see
             | swoole) a WinRT binding (good lib space) is not the worst
             | combination. Just the syntax :)
        
           | reader_mode wrote:
           | Facebook has that covered
        
         | dredmorbius wrote:
         | Wait, who matches each?
        
           | aquilaFiera wrote:
           | Well, the TypeScript and .NET organizations live within the
           | Developer Division, and now we have Guido so there's Python.
           | We also have fairly substantial dev tooling teams for C++ and
           | Java so I imagine some of the contributors are there. We also
           | have Node.js contributors as well as Electron (due to VS
           | Code). Source: I work in DevDiv as well.
        
             | dredmorbius wrote:
             | Any ideas on Perl?
        
               | aquilaFiera wrote:
               | Nope, I don't know of anyone working on Perl stuff in
               | DevDiv but it's a big division.
        
         | iso8859-1 wrote:
         | Great idea to apply the principles of competition inside
         | Microsoft:
         | 
         | After a few years of competition, they can just shut down the
         | teams working with the least effective languages.
         | 
         | Using this methodology, Microsoft will end up using the best
         | tools for the job. And they can accept people from any
         | subculture for a few years while the experiment is going on!
         | 
         | This is the "developers developers develop" we have all been
         | waiting for!
        
         | l0b0 wrote:
         | And their contributions belong to Microsoft, whose corporate
         | leadership then has tremendous power to influence the licensing
         | and pricing of future languages.
        
           | apozem wrote:
           | My impression of Microsoft's plan for the forseeable future,
           | on the developer side, is to capture value from open source
           | projects with cloud hosting, GitHub enterprise billing and
           | the like.
           | 
           | They want a golden path from their developer-facing tools
           | (TypeScript, VS Code, C#) to their monthly services (GitHub,
           | Azure, Teams). They're going to make all of that work
           | together as well as they can so you won't want to look
           | elsewhere.
           | 
           | Frankly, it's ingenious. If it works, the hard-to-monetize
           | value of open-source projects like TypeScript and VS Code
           | will be captured in your monthly Azure bill.
        
         | flowerlad wrote:
         | In that list, TypeScript, C# were invented by Anders Hejlsberg
         | who works for Microsoft. Python by Guido who also now works for
         | Microsoft. F# was invented at Microsoft.
         | 
         | But as far as Java, JavaScript and C++, I am not who the
         | luminaries are, that work at Microsoft. James Gosling and
         | Stroustrup don't work for Microsoft.
        
           | nojvek wrote:
           | There's many folks from the Typescript team who sit on the
           | TC39 committee that are responsible for moving state of
           | Javascript (Ecmascript) forward.
           | 
           | Now that Microsoft Edge is powered by Chromium, there are
           | many folks that also contribute/ have say in development of
           | chromium and nodejs.
           | 
           | This is just a rumour, but Microsoft aggressively hired
           | Chromium devs from Google.
           | 
           | Basically Microsoft wants to build the best tooling for the
           | most popular languages. They have Github + VSCode. Who knows
           | they may also acquire stackoverflow. It's in their realm.
        
           | groos wrote:
           | Herb Sutter, C++ ISO committee chair works for Microsoft, so
           | while not the language inventor, someone pretty important in
           | the community.
        
           | kamyarg wrote:
           | They don't claim having inventors of the language, but
           | language designers and contributors.
           | 
           | For example Brett Cannon is also at MSFT, he is a core
           | developer and member of steering council for Python, he also
           | qualifies along Guido for this claim in Python.
        
         | oaiey wrote:
         | Mozilla recent layoff could be th prelude for that on Rust. And
         | is not the guy behind Swift and LLVM - I forgot his name -
         | hopping around anyway :). And Zeev and Andi from PHP are also
         | on the loose last time I read something. So :)
        
           | singularity2001 wrote:
           | Chris Lattner?
        
         | daxfohl wrote:
         | And Delphi, VB, erm J#.
         | 
         | Who is next? Ryan Dahl? Rob Pike? Larry Wall? Rich Hickey? DHH?
        
           | [deleted]
        
           | xtreak29 wrote:
           | Larry Wall is at Craigslist
        
             | raverbashing wrote:
             | Seems appropriate
             | 
             | Craigslist is still web 1.0 no?
        
         | flubert wrote:
         | Simon Peyton Jones also work for Microsoft, so maybe add
         | Haskell to the list.
        
         | totalperspectiv wrote:
         | And the Pony guy
        
         | huhtenberg wrote:
         | No picture is complete without Urban Muller in it.
        
           | kstrauser wrote:
           | So they can own package management on Amiga OS, too?
        
       | mikece wrote:
       | Is he being hired as a Distinguished Fellow on par with Miguel de
       | Icaza or Anders?
        
       | 1-6 wrote:
       | Update IronPython!!!
        
       | betwixthewires wrote:
       | Am I the only person here that finds this somewhat terrifying?
        
         | medecau wrote:
         | The internet has a lot of people - you're probably not the only
         | one scared.
         | 
         | Care to explain what's worrying you though?
        
           | betwixthewires wrote:
           | EEE, github, windows 10, there's a lot of reasons to suspect
           | that when Microsoft becomes directly involved in something it
           | starts to become less useful to the user.
        
       | azhenley wrote:
       | I'm excited to see what kind of teams they get going that focus
       | on Python tools!
        
       | davidkell wrote:
       | Top of my wish list would be a python <-> VSCode experience at
       | the typescript level of quality.
       | 
       | Interesting that mypy is a Dropbox (GvR's previous gig) whereas
       | Microsoft has a competitor python type checker, pyright [0].
       | Anyone have experience with it?
       | 
       | [0] https://github.com/microsoft/pyright
        
         | berekuk wrote:
         | Microsoft is betting on pylance for VSCode instead of pyright,
         | though, and pylance is not open-source [0].
         | 
         | I wonder if Guido will be ok with that. For me pylance looks
         | like the biggest evidence that embrace-extend-extingish mindset
         | is still alive in Microsoft, unfortunately.
         | 
         | [0] https://github.com/microsoft/pylance-release
        
           | dragonwriter wrote:
           | > Microsoft is betting on pylance for VSCode instead of
           | pyright
           | 
           | Not really "instead of", since pyright is the typing engine
           | for pylance.
        
         | sime2009 wrote:
         | It is hard to tell how Pyright and Mypy compare head to head.
         | I've been using Pyright for quite a long time and have seen the
         | huge leaps forward it has made. The experience feels a lot like
         | how I remember PyCharm from a few years ago. I would really
         | miss it if it were gone.
        
         | dehrmann wrote:
         | Why not use Pycharm?
        
           | falcor84 wrote:
           | Well, one good reason is that unlike VS Code, Pycharm is not
           | open source.
        
             | criddell wrote:
             | How often have you ever needed the source code for your
             | text editor?
        
             | duckerude wrote:
             | The community edition is (Apache 2):
             | https://github.com/JetBrains/intellij-
             | community/tree/master/...
        
               | falcor84 wrote:
               | Thanks for sharing. This is really cool. And I'm slightly
               | surprised that Pycharm uses the exact same codebase as
               | IntelliJ, just with a different run configuration [0]. It
               | makes perfect sense of course, but I was pleasantly
               | surprised.
               | 
               | [0] `To run PyCharm Community Edition, please use the
               | provided run configuration "PyCharm Community Edition"`
        
           | bredren wrote:
           | This is an unpopular opinion around here, and I use pycharm
           | almost every day, but I think the future is vscode.
           | 
           | Reason is MS doesn't need to make money on the tool, because
           | it has a halo of services it can sell in and offer perfect
           | integrations for.
           | 
           | In addition, MS has GitHub and thus privledged ability to
           | learn from new public code as it is pushed.
           | 
           | AI-based code completion offered by kite and tabnine is
           | totally being slept on right now, and MS has the resources to
           | offer a very refined and constantly improving take on this
           | massive dev services opportunity.
           | 
           | Jetbrains has said it has a long term project focused on this
           | but as of now there is nothing.
           | 
           | I am not suggesting abandoning Pycharm any time soon but it
           | is going to take a bigger company than jetbrains to keep
           | pycharm in the race against vscode.
        
       | zerr wrote:
       | I wonder about such successful but dedicated to a single project
       | persons - don't they have a FOMO?
        
         | binarymax wrote:
         | FOMO on what? Python makes more of an impact on the world than
         | most people would even dream of for their projects. The
         | products that use the language cover the entire spectrum of
         | digital technology...
        
           | zerr wrote:
           | Yes, it is a very popular glue scripting language (to
           | oversimplify a bit :)) but that's not the point, I mean that
           | Guido himself is not involved in all of that spectrum
           | directly (AFAIK).
        
         | markus_zhang wrote:
         | I'd say it's really exciting to stay focused. Plus Python has
         | been the hot baby for quite a while so he is not missing out
         | anything IMO.
        
         | caturopath wrote:
         | Like Mark Zuckerberg?
         | 
         | And Bob Dylan?
         | 
         | Van Rossum is famous for the Python language and language-
         | related stuff for Python, but he did stuff in his career before
         | inventing it and has done stuff since (for instance, a lot of
         | his work at Google was on App Engine).
        
       | JAlexoid wrote:
       | Maybe Python will get nice tooling.
        
       | Cherian wrote:
       | Watching Microsoft from the 90s adapt and to see Satya get to do
       | what he wants is pretty amazing!
        
         | entropy1111 wrote:
         | Adopt, adapt, annihilate.
        
         | russtrotter wrote:
         | I was thinking the same. I spent many of the formative years of
         | my career (late-80's, most of the 90's) HATING microsoft but to
         | see them now and all the relatively "open" stuff that they not
         | only embrace but can't really extinguish is refreshing. I think
         | some of that attitude put Satya in place, but he's run with the
         | ball under the same ethos.
        
           | mrmonkeyman wrote:
           | Why is everyone so dense or should I say naive? Microsoft is
           | pulling the classic embrace, extinguish card. It is the exact
           | same fckng process all over again and you are all falling for
           | it. It'll just take a decade or so. Just wait.
        
           | beagle3 wrote:
           | They only open that which they have no advantage in.
           | Operating system is as closed (and as hostile) as ever, so is
           | office and sqlserver. Xbox requires an always on connection.
           | 
           | It is their right, of course. But I don't buy the "new
           | Microsoft" ethos.
        
         | xeeeeeeeeeeenu wrote:
         | Yeah, I love the new Microsoft, especially because of the
         | forced telemetry and updates. Not to mention making it
         | impossible to create a local user account on Windows 10, unless
         | you disconnect from the internet.
         | 
         | UWP is wonderful too.
        
           | tored wrote:
           | Paradox of Microsoft's new image is that software development
           | & tools has never been better as it is today, but the desktop
           | experience is one of the worst in Windows history, the
           | opposite of the old days. Seems that you can't have them
           | both.
        
             | burnthrow wrote:
             | Yea I love this brave new world where frontend development
             | feels like ASP.NET. Love me some TypeScript, shipping
             | features quickly was getting old. Say it with me now,
             | noImplicitAny! We're Engineers now, thanks Microsoft.
        
           | emodendroket wrote:
           | It's not impossible to create a local account without
           | disconnecting from the Internet.
        
             | xeeeeeeeeeeenu wrote:
             | Since Windows 10 1903 it's impossible, at least in the Home
             | version.
             | 
             | https://www.howtogeek.com/442609/confirmed-
             | windows-10-setup-...
        
               | gitweb wrote:
               | Microsoft should really improve their unattended process.
               | This is where Linux really outshines Windows. I can
               | configure a Linux installer with all my favorite software
               | integrated, user accounts, configurations, etc--but with
               | Windows I essentially have to install Windows, install my
               | apps (leaving tons of randomly scattered files and
               | registry entries all over the system), and then sysprep
               | the WIM.
               | 
               | The unattended setup on Windows is very confusing, there
               | are like 3 different ways and 6 steps to configure, and
               | the tools are mostly designed with GUI in mind. Could you
               | imagine being able to configure, install drivers and apps
               | using a single YAML file for Windows?
        
               | spaetzleesser wrote:
               | I when's through creating and deploying a Windows image
               | last year. It's a really painful and convoluted process
               | and the tools don't help much.
        
               | memling wrote:
               | Can confirm; recently configured a Surface tablet for
               | family, and no workarounds were possible.
        
           | _zamorano_ wrote:
           | Last time I tried (4 months ago) you still could create a
           | local account while connected to the internet.
           | 
           | They're making it more obscure, though
        
             | jnwatson wrote:
             | For Win 10 Home, the only way is to create a temporary
             | Microsoft-connected account to install, then create a local
             | account after installing, then delete the first account.
        
             | diarrhea wrote:
             | Just did so successfully two weeks ago, Win10 Pro on T480s,
             | Version 2004 or 20H2, can't remember. The latest of what
             | the Media Creation Tool gave me, anyway. Others said Win10
             | Home does not work anymore.
             | 
             | Ironically, I installed Win10 coming from Manjaro, which
             | even on a T480s (probably one of _the_ laptops to have for
             | Linux compatibility) broke after every other update, so
             | like twice a day. On the other hand, Debian /Ubuntu has
             | been too far behind on software versions for me. Both had
             | terrible compatibility with my Thunderbolt 3 dock.
             | Hopefully in the future, we will meet again!
             | 
             | Until then, it is ridiculous how much more Win10 Just
             | Works.
        
               | LeoPanthera wrote:
               | I'm surprised you didn't try one of the more mainstream
               | stable-but-current distros, like Fedora or openSUSE.
        
               | ayewo wrote:
               | Perhaps they didn't try due to the difference in package
               | management?
               | 
               | Fedora/openSuSE are RPM-based distros while Ubuntu uses
               | Debian packages.
        
           | amanzi wrote:
           | "Not to mention making it impossible to create a local user
           | account on Windows 10, unless you disconnect from the
           | internet." This is false. I've done this a couple of times
           | recently on Windows 10 and it's no problem at all - just
           | requires clicking a link on the create user account page. In
           | fact, I always prefer to create a local account first and
           | then tie my MS account to it afterwards.
        
           | patagurbon wrote:
           | I've created local users several times. It's not super clear
           | I agree, but definitely doable in the last month or so.
        
         | bluedino wrote:
         | Ironically they are still the same old Microsoft in most ways.
        
         | beagle3 wrote:
         | Win10 is still user hostile. A recent update on a computer I
         | support for an older family member installed an uninstallable
         | Edge, hijacked the PDF association, and with the first PDF
         | opened through edge, used credentials stored in Office to log
         | in to Microsoft.com "for convenience" without asking.
         | 
         | The monopolistic DNA still runs strong in Microsoft. They are
         | behaving nicely only where they have no advantage.
         | 
         | I don't buy the "new Microsoft", not one bit.
        
           | phkahler wrote:
           | Completely agree. Just started a new job and was issued a new
           | laptop with the latest MS stuff. Everything wants to be cloud
           | based. The browser regularly has rendering glitches when
           | scrolling a pdf. Little ads pop up for no apparent reason.
           | Installed apps are just temporary unless you pay. It feels
           | like a desktop designed by Facebook.
           | 
           | Having said that, aside from the pdf glitch I'd say it works
           | very smoothly, exactly the way they intended.
        
           | jug wrote:
           | I find it frustrating because it looks like there are two
           | sides of Microsoft. One helming Windows 10 and another doing
           | the impressive Visual Studio Code, PowerShell Core, .NET Core
           | work etc. where they go like "Hey maybe we should build a
           | Rust projection for WinRT, OK here you go!"
           | 
           | Windows 10 _should_ have been so much more and so much easier
           | for Microsoft to rapidly evolve in a more beautiful fashion.
           | But I guess there 's just so much enforced backwards
           | compatibility within it that their hands are almost tied
           | behind their backs. Everything is ran in the same system on
           | equal footing, from Windows XP era stuff to whatever the
           | latest "app" trends are. Unsurprisingly it becomes a mess.
           | 
           | Windows 10X looked to be the right way forward where they
           | _finally_ decide to just run everything Win32 in light weight
           | containers to shed all that dead weight for a more
           | maintainable system, but it 's sure taking a while to see
           | anything and I hear the ARM edition that will be essential
           | isn't going all too well. We're looking at a completely
           | different, really troublesome, performance in 10X for x86 on
           | ARM than macOS Big Sur and Rosetta 2 on Apple M1 that is
           | already about to ship/shipping.
        
           | emodendroket wrote:
           | I mean who's supposed to be the "good guy" then, Apple?
        
             | beagle3 wrote:
             | Apple is the "least bad" guy at the moment. They are not
             | "good". But all the big guys are bad to some extent. (And
             | since you brought them up - Apple's cloud push is bad,
             | though not remotely as bad as Microsoft's cloud push)
             | 
             | I am not saying Microsoft is exceptionally bad in any way.
             | I am just saying the "new, good Microsoft" is a mirage.
             | They are as bad as they had ever been, except they have
             | been beaten into submission in some sectors, so they behave
             | in those.
        
               | intricatedetail wrote:
               | Apple is the worst with their initiative to make their
               | devices irrepairable, monopolistic practices on iOS and
               | extracting value out of their target audience ruthlessly.
        
               | beagle3 wrote:
               | Apple does not have a monopoly - Android outsells them
               | significantly in just about every market. Microsoft still
               | has a PC monopoly. That makes a huge difference.
               | 
               | And yes, Apple making their device impossible to repair
               | is evil, but their value extraction is opt-in (buy buying
               | into their ecosystem) because they are not a monopoly.
        
               | intricatedetail wrote:
               | What we have is an unregulated duopoly and Google and
               | Apple are filling their boots.
        
               | suprfnk wrote:
               | And Apple is the best (of those companies) when it comes
               | to privacy and not spying on your every single digital
               | move.
        
             | frankish wrote:
             | IMO decentralization and competition are the only way to
             | get the bad actors to occasionally do good.
        
             | boogies wrote:
             | The FSF.
        
             | SAI_Peregrinus wrote:
             | Why does there have to be a "good guy"? Can't there just be
             | a bunch of different bad guys?
        
               | webmaven wrote:
               | _> Why does there have to be a  "good guy"? Can't there
               | just be a bunch of different bad guys?_
               | 
               | Narrative tropes demand that there be a protagonist, so
               | one of the bad guys must be cast as an anti-hero, at the
               | very least.
               | 
               | Huh. I just realized that to many of his supporters,
               | Trump is an anti-hero. No wonder pointing out his flaws
               | doesn't work.
        
           | StreamBright wrote:
           | There are different divisions in Microsoft and these do
           | different things. The division gave us F# (that I am
           | eternally grateful for) is not the same that gave us Windows
           | (that I am never going to forgive). These things can coexist.
        
             | beagle3 wrote:
             | You could say that about a democratic country. But
             | Microsoft, like any corporation, is a dictatorship.
             | 
             | F# is public relations and research - so you get to enjoy
             | the fruits. But the day it gains any strategic importance,
             | it will be used and abused for that purpose.
        
           | Pxtl wrote:
           | Honestly, I cut them some slack on the MS account integration
           | (you log in to MS on one app and you're logged in everywhere)
           | because Google and Apple both established it as good practice
           | on their mobile OSes. In this case, MS was the _last_ one to
           | the party to make Windows integrate with their cloud accounts
           | like that.
           | 
           | My biggest problems with Win10 are far more mundane - the
           | incomplete/buggy touch interface, the explorer bugs that are
           | old enough to drink, the new signed-executable security model
           | that is very OSS-hostile (but again, imported from mobile
           | OSes). The fact that half the configuration screens are in
           | the new Settings system and half are in the old Control
           | Panel, where you'll even bounce back and forth to tweak a
           | single component.
        
           | canada_dry wrote:
           | > Win10 is still user hostile.
           | 
           | Maybe MS could catch the wave of "old-school" versions that
           | are all the rage (e.g. WoW, Runescape), and release a Win95
           | flavour of Windows that runs on current hardware.
           | 
           | I miss the "old-school" GUI conventions and simplicity of -
           | gulp - 25 years ago.
        
           | pinewurst wrote:
           | I see it differently. The awful W10 stuff to me is a
           | byproduct of adopting the FAANG PM crap - everything's an A/B
           | test, everything's about driving engagement (even if they
           | drive it with a nailgun into your skull :). It is a "new
           | Microsoft", but the new Microsoft is parity with the existing
           | Google and Facebook.
        
             | dryrunes wrote:
             | Can you elaborate on this FAANG PM stuff? I am not super
             | familiar with it but it seems interesting.
        
               | cjsawyer wrote:
               | The acronym is for Facebook Amazon Apple Netflix Google
               | ... project management, maybe?
        
               | pinewurst wrote:
               | Product Managers and the common philosophies this title
               | seems to have adopted at those sorts of places.
        
               | dryrunes wrote:
               | I was more wondering what about these philosophies are
               | bad.
        
               | pinewurst wrote:
               | IMHO when you're strongly incentivized to optimize for
               | engagement stats attributable to you, you're pushing
               | change for the sake of change combined with the darkest
               | of UI patterns to ensure your changes are selected and
               | "favored".
        
           | boogies wrote:
           | > They are behaving nicely only where they have no advantage.
           | 
           | This. Just look at gaming. Xbox is losing, so they champion
           | pro-consumer cross-platform multiplayer. Minecraft is
           | popular, so they kill GNU/Linux support with Bedrock Edition.
        
             | Alphaeus wrote:
             | Bedrock Edition is primarily targetted at the consoles
             | (where running the Java-based Java Edition was difficult).
             | Java Edition is still worked on (and runs on Linux) and
             | they are trying to achieve parity between the two versions.
        
               | boogies wrote:
               | Bedrock Edition was based on the C++ rewrite for Pocket
               | Edition and has better performance and crossplay.
        
           | donor20 wrote:
           | Yeah, one side is doing great work - the Win10 story still
           | sucks a bit / lot.
        
           | patagurbon wrote:
           | With them sunsetting IE what's the alternative? Surely there
           | should be a browser that cannot be uninstalled right? I agree
           | with the rest of your issues, but if Edge is ever to
           | completely replace IE it should remain installed no?
        
             | driverdan wrote:
             | > Surely there should be a browser that cannot be
             | uninstalled right?
             | 
             | No. You should be able to uninstall everything that isn't
             | needed for the computer to boot.
        
             | beagle3 wrote:
             | First, they haven't sunset IE yet. If the same update
             | uninstalled IE, you might have had a point.
             | 
             | Second, putting the icon everywhere _in your face_ is
             | monopolistic behaviour. In Europe, for a while, Windows
             | came without a browser installed, and let you pick one to
             | download upon install. This is the non-monopolist way to
             | make sure the user has a usable browser.
             | 
             | Also, that user already had a self-updating Firefox, self-
             | updating Chrome, and manually-updating Safari on the same
             | machine.
        
           | jrootabega wrote:
           | The "new Microsoft" is useful for the time being. Once they
           | are positioned to, they'll drop the hammer.
        
           | Infinitesimus wrote:
           | I think they're optimizing for a different use-
           | case/perspective: > uninstallable Edge Alternative: The
           | person has a browser that is auto updated and doesn't need to
           | fiddle around
           | 
           | > hijacked the PDF association
           | 
           | Alternative: The person has an in-built PDF viewer without
           | scouring the web for "PDF viewer" and downloading malware or
           | a sketchy app
           | 
           | > used credentials stored in Office to log in to
           | Microsoft.com "for convenience" without asking
           | 
           | Alternative: "Wow it's cool how all my Microsoft things are
           | working well together"
           | 
           | I think there's room for grace about the experience of 99% of
           | users who don't want infinite customization but something
           | that works well with helpful defaults.
        
             | beagle3 wrote:
             | No, that person already had a PDF viewer installed, more
             | capable than the one built in to edge.
             | 
             | There is no excuse to replacing that on a forced update
             | without notification.
             | 
             | Seriously, you can explain anything this way: "all files
             | deleted" alternative: "Microsoft just helping you free up
             | space" or "the files weren't backed up so they weren't
             | important".
             | 
             | Microsoft is squarely in the "monopolistic bad guy" corner
             | here.
             | 
             | Edit: Said person also had a self-updating Chrome, self-
             | updating Firefox, and manually updating Safari on the same
             | machine, for the record.
        
               | Infinitesimus wrote:
               | Changing existing defaults is def a no-no. I thought it
               | was a fresh install of Windows you were complaining
               | about.
        
       | Proven wrote:
       | Nice, happy to hear that and great for Python. MS has been great
       | for Python.
        
       | progfix wrote:
       | They really try to own everything Python related. I fear in 10
       | years the only viable way of using Python is on a Windows PC with
       | Visual Studio or some other Microsoft owned IDE. You have to be
       | logged in with your Microsoft account and everything you type
       | will be processed and sent to a Microsoft data center.
        
         | jaywalk wrote:
         | Yeah, that's a valid fear since that's how it works today with
         | C#, TypeScript, etc.
        
       | mathgenius wrote:
       | He should make another language, surely that's a good retirement
       | project? But he must call it "monte".
        
         | oaiey wrote:
         | Well Anders Heilsberg did exactly that from Pascal to C# (we
         | gracefully ignore delphi and j++ in between). And the after C#
         | he thought about Types in JavaScript. So, I do not know Guido,
         | but with language designers you never know.
        
       | fghorow wrote:
       | Guido, IMHO the primary reason Python is great is because you
       | have taste. Please insist on keeping that at MS...
        
         | KingOfCoders wrote:
         | Same for Clojure.
        
           | Scarbutt wrote:
           | It's sad, dealing directly with extreme over-engineered
           | enterprise Java libraries to compensate for Clojure's lack of
           | ecosystem erodes all the attractiveness of the language for
           | doing real-world or hobby applications.
           | 
           | OTOH, there is no much benefit today in Clojure over other
           | languages for database backed apps, most of what is
           | considered good Clojure code is more about the methodology
           | than the language per se. The real benefits IMO is when you
           | paired it with Datomic avoiding the impedance mismatch in
           | data structures, but Datomic is another can of worms.
        
         | URfejk wrote:
         | MS is soon going to show him who the boss is ...
        
           | meowface wrote:
           | Eh, I don't think so. If they ever do, he can just move on.
           | I'm sure there's no shortage of big (or small) employers who
           | would love to have him.
        
             | URfejk wrote:
             | Yes, but who can pay him as much as MS can?
        
               | jedberg wrote:
               | He worked at Google for seven years just after their IPO,
               | and then Pre-IPO at Dropbox. It's unlikely that he's
               | there for the paycheck.
        
               | entropicdrifter wrote:
               | Google uses a lot of Python and I'm sure they'd be happy
               | to have him, for instance
        
               | snazz wrote:
               | He already worked at Google from 2005 to 2012, although
               | they might be interested in having him back.
        
               | snazz wrote:
               | Any of the other FAANGs or unicorns. I doubt that the
               | paycheck is his primary motivation, but I could be wrong.
        
           | goatinaboat wrote:
           | _MS is soon going to show him who the boss is ..._
           | 
           | They let Anders Hejlsberg have free reign over his languages,
           | encouraged it in fact.
        
             | URfejk wrote:
             | Well, time will tell ...
        
               | goatinaboat wrote:
               | _Well, time will tell ..._
               | 
               | He joined them in 1996, and has done J++, C# and now
               | TypeScript. They seem quite content for him to just keep
               | making new languages which they throw all their marketing
               | muscle behind.
        
               | phillipcarter wrote:
               | Someone on the internet: MS management will own him, like
               | they do others, he hath been ingested into their belly
               | 
               | Me, some rando MS employee who works on languages: yeah,
               | I can actually do pretty much anything that I feel is
               | right, at half the level of Guido (if even that) and a
               | miniscule amount of clout
        
               | msthrw2020 wrote:
               | Chiming in as another rando MS employee who works on
               | languages, while I think "ms will own him" is thoroughly
               | overly dramatic, I made this account to express honest
               | surprise that you feel like you have leeway with little
               | clout.
               | 
               | At least in my group our ability to do what we want was
               | directly corresponding how connected/influential our
               | sponsor was, and absent that, I have almost no ability to
               | do what I feel is right, even if I have data backing it
               | up, if the powers that be are in opposition.
               | 
               | I don't want to paint this as some universal ms-doing-
               | terrible-things statement, just that I don't personally
               | feel like I have much freedom to assert philosophy or
               | ideology, and I've seen well respected individuals in
               | engineering even up to and above principal/partner die on
               | comparatively minor hills before which makes me think
               | it's not just me.
               | 
               | And while I'm being dangerously candid, this to me seems
               | like a prestige hire much like carmack at facebook, and I
               | chuckle at the ado being given in both directions in this
               | thread. I will be pleasantly surprised if this motivates
               | more python support but expect neither good nor bad.
        
         | bmitc wrote:
         | Do people really consider Python to have taste? It basically
         | ignored Scheme, ML, and Erlang dialects from its creation
         | onwards.
        
           | Scarbutt wrote:
           | I think it's all about the syntax and less about the
           | semantics that still makes it a top 5 language.
           | 
           | Makes you think about how important the syntax for a language
           | is.
        
             | ehsankia wrote:
             | The fact that Python code is readable like pseudocode is
             | most definitely why I like it best, over esoteric languages
             | like Perl or Erlang with their non-intuitive use of various
             | characters.
             | 
             | To a seasoned programmer it may look obvious, but Python is
             | still by far the best language for newcomers, and generally
             | people tend to stick much longer to the language they were
             | first taught.
        
               | bmitc wrote:
               | I am "seasoned", and I find Python not obvious at all.
               | It's a confusing language with little gotchas everywhere.
               | I find writing code in something like Racket or F# to be
               | much easier and more consistent than Python.
        
           | chippy wrote:
           | the user said the person who created Python had good taste,
           | not that the language they created has it (somehow)
        
             | webmaven wrote:
             | _> the user said the person who created Python had good
             | taste, not that the language they created has it (somehow)_
             | 
             | I think that saying Guido has taste implies that Python is
             | _tasteful_.
        
           | solinent wrote:
           | Python 2 was pretty tasteful, simple, usable, the exception
           | that proved the rule. I think Python has evolved since.
        
           | munificent wrote:
           | _> Do people really consider Python to have taste?_
           | 
           | Yes. Obviously people have different tastes, but many many
           | people find Python to be tastefully designed.
           | 
           |  _> It basically ignored Scheme, ML, and Erlang dialects from
           | its creation onwards._
           | 
           | Those are... all radically different languages from each
           | other.
           | 
           | This is like arguing that a peanut butter and jelly sandwich
           | would be better if it was more like sushi, chocolate, and
           | pasta.
        
             | bmitc wrote:
             | > Those are... all radically different languages from each
             | other.
             | 
             | Not really, but that wasn't my point. My point was, that at
             | the time of Python's creation, all those languages existed
             | and have taste. The fact that they were ignored in Python's
             | development is an example of it not having taste.
             | 
             | The best example of this is Python's scoping rules. When
             | something like Scheme or ML exists and you end up with
             | Python's scoping, it's hard for me to understand where the
             | taste is.
        
               | ajkjk wrote:
               | I suspect Python's popularity was greatly helped by
               | ignoring those languages. Your definition of taste isn't
               | everyone's.
        
               | bmitc wrote:
               | I didn't say it was. I am curious though what others
               | consider to be tasteful about Python.
               | 
               | It objectively has ignored features from those languages,
               | such as immutability, concurrency, sane scoping,
               | functional ways of thinking, pattern matching, better
               | REPL, etc. which have all been making their way into most
               | modern languages. So what's tasteful about Python? The
               | benefits it has that I see are that it's easy to download
               | and run for simple scripts and has clean-ish syntax, but
               | that's about it. For anything larger, it quickly gets in
               | the way.
               | 
               | Popularity is a confusing beast. What has made Python
               | popular, in my opinion, is that it was adopted by
               | scientists, but in my experience, that group of people
               | has little taste in software and little want to figure
               | out what else is out there.
        
               | munchbunny wrote:
               | > The benefits it has that I see are that it's easy to
               | download and run for simple scripts and has clean-ish
               | syntax, but that's about it.
               | 
               | You say that like that doesn't count for a lot.
               | 
               | The ease of getting Python to do various small bits of
               | automation is the main reason I use it.
        
               | bmitc wrote:
               | It counts for a lot, but it's not like that's all people
               | use Python for. There are also other languages with
               | similar amounts of lesser friction to get going.
               | 
               | And those things aren't enough to justify building large
               | software out of.
        
               | joshuamorton wrote:
               | Python's taste is one of ergonomics. Expressiveness +
               | easyness to read, even for a beginner. Python evolved
               | from a project that was testing the UX of syntax for
               | programming languages.
               | 
               | My favorite example here is that in a function
               | definition, `def foo(): \n pass`, the `:` isn't needed, a
               | machine can parse it with only the newline. The : is a
               | requirement because it made it easier for humans to read
               | the language in user tests.
        
       | estomagordo wrote:
       | GUID-o. Hehe. I'll show myself out.
        
         | soapdog wrote:
         | Here comes P#, I'm seeing myself out as well.
        
           | webmaven wrote:
           | _> Here comes P#, I 'm seeing myself out as well._
           | 
           | I tried to convince Guido to do a P# April Fool's (I think in
           | 2005 or 2006), but he disliked the idea so much I didn't do
           | it myself either.
        
           | estomagordo wrote:
           | Hey, that's what I tweeted to him!
        
       | binarycodedhex wrote:
       | Any guess on what a major FOSS dev grosses? It has to be at least
       | $700k. $1.5m/yr? $3m?
       | 
       | About $200k/yr+, it's a good idea to find a lawyer or similar
       | talent agent to workout the compensation package because they
       | have the skills and can get away with things a hire cannot. I've
       | done this before, it saved time, and ended up with a better
       | package.
        
         | burgerquizz wrote:
         | levels.fyi gives $650k in SF. But it looks quite low to me. I'd
         | have say 1M/year at least. Any better guess?
        
           | binarycodedhex wrote:
           | I think you're right. The issue is, due to the power law
           | distribution of talent, the sample size of such roles (and
           | personalities, i.e., how many Python BDFL's are there?) is
           | incredibly small, so it makes precise assessments difficult
           | and the variance increases wildly since there aren't very
           | good comparables.
           | 
           | I think he could command nearly $10 megabucks, give half of
           | it away to charities, grants, scholarships, social ventures,
           | and underserved areas to promote STEM college prep, and still
           | have more money that one ostensibly average, middle-class
           | person would know how to invest (real estate on the near
           | periphery of burgeoning urban sprawl areas). Microsoft is a
           | cash cow and is willing to invest in a solid, deep bench to
           | stay competitive, especially in an apparent transition to
           | either EEE or adopt OSS.
        
             | reducesuffering wrote:
             | Someone else commented that he'll be Distinguished Engineer
             | (DE). But levels.fyi shows 69, the level under DE, some
             | reports of 1-2m. He's almost assuredly receiving 1-3m
             | compensation.
        
         | bxbna wrote:
         | The ones that let other people do the work or the people who do
         | the work themselves? A lot of prominent folks in the Python
         | space are the former.
        
       | acbart wrote:
       | I don't know about anyone else, but I'm still hopeful for Python
       | integration with Excel. That would be a real gamechanger,
       | depending on how tight the integration is.
        
       | whimsicalism wrote:
       | Does this elevate the future possibilities of Pyright in any way?
        
       | maxioatic wrote:
       | I wonder if they asked him algorithm problems in his interview /s
       | 
       | This is cool though. I'll be curious to see what he works on.
        
         | marta_morena_28 wrote:
         | I am pretty sure they did, unless he got hired at some
         | VP/Distinguished Engineer level.
         | 
         | And to be clear: If you are unable to solve these common
         | algorithmic questions that companies like Microsoft ask, then
         | that's not the right place for you to work. This is a tangent,
         | but there are literally thousands of companies that won't
         | require you to solve these problems. The thing is, at Microsoft
         | & co. you don't just do this in an interview. You do it at your
         | job too. We do foundational work in many teams and we need to
         | solve algorithmic problems practically every week. If you are
         | unable to code yourself out of a DP problem or scared of NP
         | completeness and approximation algorithms, then maybe find a
         | different job instead of complaining about the interview
         | process?
        
           | adamnemecek wrote:
           | You really don't do it at your job.
        
             | paganel wrote:
             | I'm taking a cheap shot here, but the people maintaining
             | Skype at MS certainly don't do it. And there are such
             | examples at other big companies.
        
           | coldtea wrote:
           | > _I am pretty sure they did, unless he got hired at some VP
           | /Distinguished Engineer level_
           | 
           | No way they even considered doing it... That's for people out
           | of college...
        
             | fayyazkl wrote:
             | Thats certainly invalid. People with 20 years of experience
             | or more, are asked questions based upon the role they are
             | interviewing for.
             | 
             | If you are applying for a principal or higher engineer role
             | and your job involves coding, you are asked coding
             | questions. May be not just focused on a complex bookish
             | algorithm only, but rather more close to a real life
             | distributed programming / synchronization problem etc. for
             | example.
        
           | jzebedee wrote:
           | He was hired as a Distinguished Engineer.
        
           | ithkuil wrote:
           | Yes, they hired him at Distinguished Engineer level.
        
           | [deleted]
        
           | lcfcjs wrote:
           | It wouldn't be such a problem if developers actually needed
           | to know these ridiculous "algorithmic questions" to do their
           | job. There are Youtube videos that you can memorize to get
           | through the interview, its not difficult. You are acting like
           | on an elite few can work for an awful company like Microsoft.
        
           | Thaxll wrote:
           | I know we're talking about FANG itw but come on you really
           | think people like Guido needs to do any of that? They
           | probably don't do "regular" itw, they go to a restaurant with
           | some important people and that seels the deal.
        
           | JackFr wrote:
           | > unless he got hired at some VP/Distinguished Engineer
           | level.
           | 
           | Google or Wikipedia can tell you who Guido van Rossum is.
        
             | AnimalMuppet wrote:
             | I believe the "unless" was about the position he was hired
             | for, not about who he is.
        
           | andi999 wrote:
           | Everybody needs to invert B-trees before breakfast
        
           | echelon wrote:
           | I wholeheartedly disagree.
           | 
           | 1. This is Guido van Rossum. If I were him and asked to solve
           | puzzles, I'd tell the hiring company to fuck off.
           | 
           | 2. These quizzes aren't so bad, but the pressure and stakes
           | make it incredibly stressful. There's no standard, and often
           | times the _interviewer_ is the one that sucks.
           | 
           | > We do foundational work in many teams and we need to solve
           | algorithmic problems practically every week. If you are
           | unable to code yourself out of a DP problem or scared of NP
           | completeness and approximation algorithms, then maybe find a
           | different job instead of complaining about the interview
           | process?
           | 
           | I'm pretty sure your opinion here is not that of your
           | employer.
        
             | TuringNYC wrote:
             | I think the best experiment would have been to have him
             | apply blind where the interviewers did not know he was
             | Guido -- and see how he fared on the technical interviews.
        
               | webmaven wrote:
               | _> I think the best experiment would have been to have
               | him apply blind where the interviewers did not know he
               | was Guido -- and see how he fared on the technical
               | interviews._
               | 
               | That would be amusing, but he'd have to be disguised, as
               | he's rather recognizable, having done a lot of 'State of
               | the Python' talks and the like.
               | 
               | He doesn't look as much like Rick Moranis as he used to,
               | though, so that helps:
               | https://gvanrossum.github.io/images/Guido@200dpi.jpg
        
             | nostrademons wrote:
             | Counterpoint:
             | 
             | When I was leaving Google the first time, I asked my skip
             | lead (who was employee #48 there, ended up running all of
             | Search, and was previously a core HotSpot engineer at Sun)
             | why he chose to work at a small startup when, coming off of
             | HotSpot in 1999, he could work anywhere. He replied "Aside
             | from them being one of very few companies with an engineer-
             | centric culture, they were the only company that required I
             | interview. Everybody else was willing to hire me on the
             | spot."
             | 
             | For some personality types - and particularly the ones
             | likely to do world-class work - being challenged is a
             | _positive_ sign. It means that the employer does their due
             | diligence, and they will mostly be working with other
             | people who react positively to a challenge.
        
               | pavel_lishin wrote:
               | Sure, but due diligence doesn't mean asking Guido van
               | Rossum - who's got bona fides coming out the wazzoo - to
               | solve a whiteboarding problem.
        
               | GauntletWizard wrote:
               | How he solves the problem doesn't matter. You don't care
               | in the interview if he had the answer memorized or if he
               | fumbles through it.
               | 
               | I do not want to work with anyone who finds that getting
               | their hands dirty is beneath them. It is very, very
               | rarely going to be a good use of their time to do those
               | problems. It will often be a good use of their time to
               | teach those problems. A senior engineer, even one who's
               | unlikely to work with junior engineers on a regular
               | basis, will need to explain their thinking. They need to
               | show humility and compassion. Those are practiced
               | attributes. This precise situation is the best practice
               | you can get - New and Unknown person, some amount of
               | challenge and complexity involved.
               | 
               | Thinking that whiteboarding problems are a bad use of
               | time is a very strong signal for a senior person who is
               | out of touch.
        
               | JackFr wrote:
               | At an old job, my boss was moving desks and he came
               | across an extra copy of CLR "Introduction to Algorithms"
               | and he asked if anyone wanted it. As he was my direct
               | supervisor, he said he'd give it to me only if I promised
               | never to open it, and only to use it as a monitor stand.
        
               | allenu wrote:
               | I can see that. When I interview, I often compare the
               | difficulty of the questions that different companies. I
               | have noticed that I feel a little more respect to the
               | companies that ask the more challenging technical
               | questions (not puzzles) vs. the ones that ask the super
               | basic ones. It does make me think that the ones asking
               | the simpler questions are likely getting lower quality
               | candidates and that I would be joining them.
        
               | im3w1l wrote:
               | Counter-counter-point. An engineering interview has a
               | non-neglible amount of randomness. Maybe you get a grumpy
               | interviewer or a noob interview, or your brain freezes
               | over.
               | 
               | When you are considering hiring a nobody, this is
               | acceptable. You will interview multiple people, and they
               | will interview at multiple places, so the randomness
               | isn't that important.
               | 
               | But if you want to hire one specific guy as a strategic
               | hire, suddenly the randomness may no longer be
               | acceptable.
        
               | Alex3917 wrote:
               | > It means that the employer does their due diligence,
               | and they will mostly be working with other people who
               | react positively to a challenge.
               | 
               | To me, due diligence would be more like using software
               | that someone has created. If it feels snappy then they're
               | good enough at algorithms for the kind of software that
               | they create, if it doesn't then maybe it's worth looking
               | into whether or not there's a good reason for that.
               | 
               | Like if you apply for a job at the NYT, I doubt they make
               | you do a timed writing test with people staring at you
               | and asking you questions in the middle. They probably
               | just read some of the previous work you've done.
        
               | bregma wrote:
               | Are you kidding? They'd make Ansel Adams do a timed test
               | on how to use Elements to do colour correction.
        
               | sz4kerto wrote:
               | When I left uni, I got around 15 job offers. I went with
               | the one with the lowest pay, because that's where I had
               | go to through the most difficult interview process.
               | 
               | (Unfortunately this happened in a small Eastern-European
               | country, so the company was an investment bank, not
               | Google.)
        
               | user5994461 wrote:
               | Well, he wanted to meet the team and have an idea
               | who/what he would be working with.
               | 
               | It's really scary to go to company that is willing to
               | hire you without ever talking to you.
        
             | fizixer wrote:
             | > This is Guido van Rossum. If I were him and asked to
             | solve puzzles, I'd tell the hiring company to fuck off.
             | 
             | Not sure what you're trying to get at:
             | 
             | MacOS homebrew creator is an effin nobody compared to
             | Guido, therefore he should "know his place", "get in line"
             | and invert a binary tree on the whiteboard and act like an
             | obedient tech interview candidate that he really is?
             | 
             | OR
             | 
             | MacOS homebrew creator should've told Google to fuck off?
        
               | driverdan wrote:
               | > MacOS homebrew creator should've told Google to fuck
               | off?
               | 
               | Yes, that's exactly what he should have done.
        
               | [deleted]
        
               | deeeeplearning wrote:
               | Imagine a University asking a Physics Nobel Laureate to
               | solve QM Problems from an undergrad textbook in order to
               | get hired as a Professor. It would the height of lunacy
               | and incredibly insulting.
        
               | a-nikolaev wrote:
               | Guido is not a Physics Nobel Laureate. Going with the
               | Physics analogy, Python is more like an overgrown masters
               | level project, not a Nobel prize level by far. He did a
               | good job at growing the Python community, and this is a
               | great achievement! It requires certain personal traits
               | not everyone has. But at the technical level, he made
               | many beginners mistakes when designing Python, which he
               | tried to fix later, but not always successfully.
        
               | nicklaf wrote:
               | An overgrown masters level project, eh? You could
               | probably say the same thing about the founding of the
               | United States!
               | 
               | "The US constitution is like an overgrown enlightenment
               | dissertation. The founding fathers did a good job at
               | growing the United States, and this is a great
               | achievement! It requires certain personal traits not
               | everyone has. But at a technical level, they made many
               | beginner's mistakes when drafting the constitution, which
               | the country tried to fix later, but not always
               | successfully."
               | 
               | :-P
        
               | a-nikolaev wrote:
               | Maybe.
        
               | Twixes wrote:
               | I love Homebrew - but it really isn't that much of an
               | achievement compared to damn Python, and I also have no
               | idea who is its creator.
        
               | fizixer wrote:
               | Homebrew is 11 years old. I'm willing to bet there are as
               | many people (likely fewer) people who knew Guido in 2002,
               | when Python was 11 years old, or even 2005, when Google
               | hired Guido.
               | 
               | And I'm willing to bet when Google hired Guido in 2005,
               | they didn't put him through a coding challenge
               | humiliation clown show day.
        
             | [deleted]
        
           | ownagefool wrote:
           | From his twitter profile:
           | 
           | """ Python's BDFL-emeritus, Distinguished Engineer at
           | Microsoft, Computer History Fellow. Opinions are my own.
           | He/him. """
        
           | strikelaserclaw wrote:
           | "Hello Guido thanks for coming in, we would like you to open
           | up visual studio code and create a sudoku solver that can
           | solve this partially filled out board"
        
             | speedgoose wrote:
             | Time to use prolog to get your revenge on the interviewers.
        
               | Cactus2018 wrote:
               | A Sudoku Solver in APL
               | https://www.youtube.com/watch?v=DmT80OseAGs
        
               | jodrellblank wrote:
               | More appropriately, in Prolog (by Markus Triska)
               | https://youtube.com/watch?v=5KUdEZTu06o
        
               | speedgoose wrote:
               | Very nice, and I can understand this one.
        
               | cgh wrote:
               | Thanks for this link. I took a course on logic
               | programming in school and it made a big impression. I
               | found Prolog to be pretty mindblowing at the time and I'm
               | happy to see it still is.
        
           | kop316 wrote:
           | I think this was in response to this:
           | 
           | https://twitter.com/mxcl/status/608682016205344768
        
           | orthonormel wrote:
           | His Twitter actually says "Distinguished Engineer at
           | Microsoft"
        
           | atraac wrote:
           | > _The thing is, at Microsoft & co. you don't just do this in
           | an interview. You do it at your job too._
           | 
           | Oh so that's why the Azure Portal UI is such garbage. Their
           | frontend developers are just busy solving knapsack
           | problems...
        
           | __s wrote:
           | Hi, I'm a programmer for Microsoft. I didn't have to answer
           | silly algorithm questions for them to hire me. I'm nowhere
           | close to VP/Distinguished Engineer level
           | 
           |  _(that said, my path to being hired did involve writing a
           | sudoku solver, but that wasn 't in an interview for a
           | position at Microsoft)_
        
           | kodah wrote:
           | This comment really just drives home the nail of how awful
           | the state of interviewing, and especially the mental state of
           | some interviewers, in this industry with a backhoe bucket.
           | 
           | I really just want to thank you for putting this useless
           | mentality on display.
        
             | whymauri wrote:
             | I know it's not Microsoft, but D. E. Shaw asked Larry
             | Summers math puzzles when he interviewed there. At the
             | time, he was the president of Harvard University.
             | 
             | I think it's my favorite example of how crazy some
             | interview processes can get, lol.
        
               | creddit wrote:
               | I'm not sure what's crazier to me: asking someone to
               | demonstrate a live proficiency of an abstract skill that
               | is only tangentially related to that actual day-to-day
               | activities of a role or just assuming that because
               | someone has some high credential that they would be good
               | in a given role.
        
               | user5994461 wrote:
               | DE Shaw is a financial company filled with maths guys,
               | doing statistical analysis and modeling all day. A math
               | puzzle is the most normal question you could be asked
               | there.
               | 
               | The real question is why Larry Summers is going to a
               | quant interview? Did he apply for a quant role?
        
               | whymauri wrote:
               | They hired him as a managing director.
        
               | dddbbb wrote:
               | For many roles at a hedge fund, being able to do
               | mathematics quickly and intuitively is a valuable skill.
               | Not sure why an economist applying for an MD job would
               | need to be tested on that, though.
        
               | TigeriusKirk wrote:
               | He should have called their bluff and failed the quiz on
               | purpose. What are they going to do?
        
             | bit_logic wrote:
             | Next time there's a tech interview discussion and someone
             | defends it, linking this thread will be very useful.
             | 
             | Almost 30 years of BDFL of Python, sorry don't care, go do
             | 200 leetcode before talking to us. And if you don't spit
             | out the answer a few seconds faster than that fresh
             | graduate, clearly you're a lesser engineer and should be
             | rejected.
        
           | maxioatic wrote:
           | Wow, so much salt. It was a joke.
        
             | xapata wrote:
             | In that case, it was an unnecessary joke and not helpful to
             | the conversation.
        
               | maxioatic wrote:
               | Sorry, I'll refrain from humor from now on?
        
               | xapata wrote:
               | Seems reasonable.
        
               | vamos_davai wrote:
               | Go to reddit if you want to make average IQ humor.
        
               | jraph wrote:
               | Please don't, keep being fun!
               | 
               | It works here on HN too, many of my comments are upvoted
               | jokes and I liked yours. It's sad it attracted animosity
               | though.
               | 
               | I like browsing HN mostly for the interesting
               | discussions, but I enthusiastically take the occasional
               | jokes that come with them.
               | 
               | (I might have been upvoted by people taking my jokes
               | seriously now that I think about it. I don't know if this
               | is a terrifying or a funny thought!)
        
             | LeifCarrotson wrote:
             | You should have left "/s" at the end of your comment, it's
             | really hard to distinguish between a joke and stupidity on
             | the Internet.
        
               | AQuantized wrote:
               | To me this undermines any humour the comment may had to
               | begin with.
        
               | chippy wrote:
               | They did add a /s to the end. The user you were replying
               | to wrote the comment that the stupid comment was replying
               | to!
        
               | maxioatic wrote:
               | It is there. At the end of the line.
        
           | paulnechifor wrote:
           | > NP completeness
           | 
           | Programmer here. It's true. I deal with NP completeness every
           | day.
        
           | cannabis_sam wrote:
           | Why the fuck would CS graduates be afraid of DP problems, NP-
           | completeness or approximation algos??? That's literally the
           | table stakes of our profession.
           | 
           | The problem is rewarding rote memorization in a whiteboard
           | interview, at the expense of actual understanding, and
           | ability to research the problem.
        
             | TuringNYC wrote:
             | That might be a fair statement for some roles, but what
             | about the second part where you code it up and write the
             | code on a whiteboard w/o running/debugging and have to get
             | it right in 45min?
        
               | cannabis_sam wrote:
               | I'm not sure I understand..?
               | 
               | Do you mean it should be used as an actual speed test?
        
             | mayank wrote:
             | > that's literally the table stakes of our profession
             | 
             | Table stakes for what exactly?
        
               | cannabis_sam wrote:
               | Computer science graduates...? Like I said in the
               | comment.
        
             | dragonwriter wrote:
             | > Why the fuck would CS graduates be afraid of DP problems,
             | NP-completeness or approximation algos??? That's literally
             | the table stakes of our profession.
             | 
             | If the profession being discussed is "academic work in
             | Computer Science", sure.
             | 
             | If it is "software development", those things absolutely
             | are not really "table stakes".
             | 
             | If it is "software engineering", then I don't think there
             | is broad consensus on what that profession even is, much
             | less what table stakes in it are.
        
               | cannabis_sam wrote:
               | Are you seriously claiming Guido van Rossum was hired for
               | software development/engineering..? I don't understand
               | the context switching here.
        
               | dragonwriter wrote:
               | > Are you seriously claiming Guido van Rossum was hired
               | for software development/engineering..?
               | 
               | No, nor do I think he was he hired for the other thing I
               | discussed, academic computer science. The post I was
               | responding to made a general comment about "CS graduates"
               | and "our profession"; I was responding to that. Whether
               | that post itself was material to, or merely tangential
               | to, the discussion of GvR's hiring at Microsoft is an
               | argument that, while perhaps interesting to some, was not
               | the focus or concern of my response.
        
               | cannabis_sam wrote:
               | My post was a response to a specific comment, please
               | don't take it out of context.
        
             | emddudley wrote:
             | Because these problems can have some subtleties that are
             | hard to get right in a high-pressure environment. Some
             | interviewers will completely write you off for small
             | mistakes.
        
               | cannabis_sam wrote:
               | That sounds interesting! Do you have any examples?
               | 
               | I would have thought that if you actually needed people
               | to perform under pressure, you would design your test
               | explicitly around that, instead of using "comfort with
               | the whiteboard" as a proxy...
        
             | AI_WAIFU wrote:
             | Because unlike in the real world, you can't just google the
             | solution or look it up in a textbook during an interview.
        
           | whoisjuan wrote:
           | > I am pretty sure they did
           | 
           | Lol! I'd bet my year salary they didn't.
        
             | esyir wrote:
             | Well, you might want to check guido's twitter before making
             | that bet.
        
               | whoisjuan wrote:
               | What exactly am I supposed to check in his Twitter?
        
               | esyir wrote:
               | Whoops, mismatched your reply to the wrong branch of the
               | comment tree
        
             | fayyazkl wrote:
             | Every body is asked some thing close enough. At higher
             | levels, often focus is not on coding, but enough depth of
             | design where a person of such profile might end up
             | educating the interviewer - while satisfying their
             | requirements.
             | 
             | That being said, ability to solve coding problems
             | efficiently (not necessarily spit A* graph algo in sleep),
             | but a decent close to real life coding challenge is fair
             | game.
        
           | deeeeplearning wrote:
           | >We do foundational work in many teams and we need to solve
           | algorithmic problems practically every week.
           | 
           | Keep telling yourself that as you fix mindless bugs in some
           | Advertising platform lol.
        
           | ponker wrote:
           | You must be injecting crack directly into your frontal lobe
           | if you think that the creator of the world's third most
           | important programming language being asked an algorithms
           | question (unlikely) and failing it (entirely possible) means
           | that he's unqualified to do "foundational work."
           | 
           | I had a Nobel Prize winner as a physics professor in college
           | who got three successive different wrong answers when
           | attempting a freshman physics problem in office hours. That
           | doesn't mean that physics isn't the right place for him to
           | work.
        
             | jrib wrote:
             | > third most important programming language
             | 
             | not going to debate that, but I'm curious, what do you rank
             | as #1 and #2?
        
               | phkahler wrote:
               | The tiobe index lists Java and C in those spots.
        
               | dkarlovi wrote:
               | That's fair, I guess.
        
               | webmaven wrote:
               | _> The tiobe index lists Java and C in those spots._
               | 
               | That list is ranking languages by current popularity,
               | though, rather than 'importance'.
               | 
               | I'd define 'importance' as more along the lines of
               | "amount of havoc created if all software written using
               | that language were broken/deleted at once".
        
               | fermigier wrote:
               | Python is number 2 now, according to
               | https://www.techrepublic.com/article/python-overtakes-
               | java-t... :)
               | 
               | We should not give too much importance to this, but the
               | fact is that Python is now ranked consistently #1, #2 or
               | #3 in sufficiently many rankings to consider it
               | seriously.
        
           | nxmnxm99 wrote:
           | LOL what an obnoxious comment.
        
         | pcj-github wrote:
         | Not taking anything away from GVR, but I bet he does not pass
         | leetcode medium/hards in time allotted without specifically
         | practicing these for a while. I could be wrong.
        
           | breck wrote:
           | I did a dozen or so interviews at MS. No one ever asked me if
           | an interviewee "passed/failed". The only boolean was "hire/no
           | hire", which took into account many more dimensions. But I
           | know people that interviewed over 1,000 people, so my
           | knowledge is more anecdotal.
           | 
           | I'd imagine no matter the problem he would breeze through an
           | interview and leave the interviewer with some enlightenment
           | on programming. It wasn't necessarily about whether the code
           | was "correct". I remember once interviewing a ~20-year old
           | for the summer program who when I gave him a problem he
           | started talking about some linear algebra and geometry that I
           | didn't even know were relevant but quickly made sense to me.
           | But he was so humble about it, and looking to me like he
           | wasn't sure if it was the right approach to take (It was hard
           | to keep a poker face and not give away that he was a
           | "definite hire" after about 5 minutes). His 5-liner to solve
           | it had one bug but he clearly "passed" with flying colors.
           | Unfortunately for us he ended up joining a startup in SV (and
           | now is doing big things there).
        
         | psyc wrote:
         | Notable programmers, those you know by name, are given
         | positions that you get by having a conversation with a VP.
         | Source: worked there for a long time.
        
         | bit_logic wrote:
         | Wow, the replies to this actually saying Guido van Rossum
         | should do an algorithm/DS leetcode interview.
         | 
         | It's so ridiculous to see these replies. So Microsoft should've
         | sent Guido van Rossum a note saying, hey study algorithm/DS for
         | at least a month and do 100 leetcode before you come talk to us
         | or it's a waste of time, thanks, bye.
         | 
         | Discussions of the industry tech interview process are now
         | poisoned by these factors:
         | 
         | * There is an entire industry built around tech interview prep
         | now (books, websites, practice/mock interviews). Many would
         | defend this practice because their paycheck directly depends on
         | it.
         | 
         | * Many see this as a hazing ritual that protects their high
         | compensation and often their egos as well. These people are
         | often young and will eventually see how harmful these
         | interviews are when they get older and need to switch jobs. But
         | by then there will be a new generation of young engineers
         | defending the practice.
        
           | acqq wrote:
           | Previously:
           | 
           | Google bureaucracy expected from _Ken Thompson_ (!) to pass a
           | C language exam (!!).
           | 
           | https://www.theregister.co.uk/2010/04/21/ken_thompson_take_o.
           | ..
           | 
           | "So Mr Thompson, you say you have some programming skills"
        
             | mattlondon wrote:
             | I believe this is actually about checking in code, not
             | about getting a job.
             | 
             | From what I understand it is like a "driving license" for
             | each language - if you haven't passed the driving test you
             | can still drive but you need to have an instructor keep an
             | eye on you. If you haven't passed the coding test you need
             | someone to review your code before submitting.
        
               | jimbokun wrote:
               | So Ken Thompson created go and gofmt so he wouldn't have
               | to deal with that crap any more.
        
               | mianos wrote:
               | It is certainly not a driver's license, this makes as
               | much sense as asking Hamilton or Vittel to do a driving
               | test before giving them a job as a driver.
               | 
               | That said, I would not be surprised this would happen at
               | Google as they truly believe their process is vastly
               | superior, as they believe themselves.
               | 
               | Pretty sure they would ask Linus to to a C programming
               | test as well, and score him badly because he can't
               | remember the exact details of some algorithm he has not
               | used since he wrote the first lines of Linux.
        
               | xiphias2 wrote:
               | It's mostly about getting used to the language usage
               | style used in Google (the style guides are open, so you
               | can see it).
               | 
               | The philosophy is that all Google code base should look
               | like it was written by 1 person. It's great actually in
               | practice: code in a big company should be hard to write
               | and easy to read, as it's read by many people.
        
               | acqq wrote:
               | > I believe this is actually about checking in code, not
               | about getting a job.
               | 
               | I'd say it's about doing the work for which he came
               | there, from TFA:
               | 
               | "Google hired Thompson to create a new language, Go. But
               | Google also requires all of its recruits to pass a
               | language test. According to Thompson, he hasn't quite got
               | round to it yet - and so can't submit code."
               | 
               | And no, I have no understanding for that utter stupidity,
               | or any attempt to accept it.
        
               | B-Con wrote:
               | As a Googler, that statement is just wrong. They were
               | looking for a fun story and somehow got just the right
               | quote to make one.
               | 
               | Code committed to the _internal repo_ requires a _review_
               | from someone certified familiar with that language 's
               | _internal style guide_.
               | 
               | He was hired to work on Go, not C, and just didn't get
               | around to writing enough C to bother getting that
               | certification. He can write C whenever he wants to, just
               | like literally every other engineer, he would just get a
               | style guide review at review time.
        
           | 908B64B197 wrote:
           | > There is an entire industry built around tech interview
           | prep now (books, websites, practice/mock interviews). Many
           | would defend this practice because their paycheck directly
           | depends on it.
           | 
           | Or you know... an algorithm and data structures class that's
           | part of a serious Engineering/CS curriculum.
        
             | bassman9000 wrote:
             | _an algorithm and data structures class that 's part of a
             | serious Engineering/CS curriculum_
             | 
             | Good luck remembering the kind of details a typical
             | interview asks for 10 years into the business.
        
             | closeparen wrote:
             | That's enough for passing familiarity with what the
             | algorithms are / pointers to reference material when
             | appropriate. Not nearly enough to perform on command from
             | memory in 20-40 minutes.
        
               | 908B64B197 wrote:
               | I mean,
               | 
               | If someone knows he's interviewing at a place where there
               | will be a coding interview, he would be crazy not to take
               | a look at his algorithm textbook.
               | 
               | And maybe if the course only only gave the candidate a
               | passing familiarity it wasn't thorough enough?
        
               | closeparen wrote:
               | At the end of Princeton's Algorithms I-II on Coursera
               | you've done fewer than 20 implementations, and those were
               | open-book assignments with week-long deadlines.
               | 
               | A reasonable interview prep cycle would be closer to 200
               | practice problems, under time pressure.
        
         | names_are_hard wrote:
         | Microsoft hiring is my centralized, and not all teams do
         | leetcode interviews. Many non- famous developers have been
         | hired there without leetcode as well.
        
         | JJMcJ wrote:
         | Possibly a six hour panel interview on Javascript trivia,
         | instead.
        
         | groos wrote:
         | With a known quantity like Guido, you just try to convince them
         | how fun it would be work at Microsoft.
        
         | strulovich wrote:
         | There's plenty of issues around algorithmic questions, and it's
         | even possible he would fail them, but there's still important
         | value in asking them.
         | 
         | Senior engineers in such companies need to work and cooperate
         | with hundreds of people. If they find solving such problems
         | beneath them, or expect to be treated as a higher class of
         | person, or not willing to get hands dirty, they will not be as
         | valuable as employees. (Occasionally, the lone genius is great,
         | but the lone genius is a worse employee than the genius that
         | can cooperate well)
         | 
         | My company would keep doing such interviews, but the
         | expectations change of course. A new grad needs to do these
         | well. More senior people can do worse, and make up for it using
         | other skills showcased in other interviews, or based on their
         | record.
         | 
         | But if you find a senior person that finds solving algorithmic
         | questions is beneath them, you might want to be careful about
         | them and how they will interact with your company's culture.
        
           | pc86 wrote:
           | I don't think the problem is senior folks believing answering
           | questions about bubble sort beneath them (I'm sure some do
           | but I doubt it's the norm), I think the problem is that
           | 99.99% of developers at all levels don't need to know how
           | bubble sort works to do their jobs well.
        
           | throwaway894345 wrote:
           | It's not a question of status, but rather the utility of
           | memorizing algorithms as an indicator of success. Notably,
           | it's probably not because Google exists and anyway the
           | majority of one's time isn't finding the optimal algorithm.
        
           | peteradio wrote:
           | Guido is not a senior engineer.. he's a "special projects"
           | person. Fewer than 50 such persons would exist in the
           | microsoft stable. Why would you have someone who functions at
           | such a high level bother with low level implementation?
           | There's thousands of shit munching nerds who can implement
           | flawlessly but who need the overarching guidance to deliver
           | product.
        
             | anfeldman wrote:
             | Because most really good designers also did low level
             | implementation? Thompson, Ritchie, Leroy, Torvalds. Heck,
             | while I don't know for sure, probably Dave Cutler did, too.
             | 
             | I don't know any product that's pleasant to use that was
             | developed in the way you describe. Python certainly wasn't.
        
           | rndgermandude wrote:
           | I never remember the nitty-gritty details of the more complex
           | algorithms and data structures, I only remember they exist
           | and their important properties. If I then have to implement
           | one, I consult google or books. Googling often has the neat
           | side effect that you'll sometimes find
           | refinements/improvements or other (new) potentially better
           | algorithms to solve a particular problem. Or somebody might
           | have done the heavy lifting already and packaged it up under
           | a compatible license (if it isn't something simple like
           | leftPad).
           | 
           | I mean, it's OK to ask for basic algorithms in interviews, to
           | see if the interviewee has at least some understanding of
           | basic stuff and/or can think on their feet and/or can reason
           | about problems appropriately...
           | 
           | But I would still welcome it if instead of giving an
           | interviewee a boring, memorizable problem like "invert a
           | binary tree", the interviewer would find a more general
           | problem and would see how the employee would tackle it, and
           | if the interviewee refers to binary trees as part of the
           | solution without writing out a full implementation from
           | memory that's OK (as long as binary trees would be a valid
           | approach to solve the problem, of course).
        
             | strulovich wrote:
             | Just for reference, my company does not ask anyone to
             | implement a binary tree or any well known algorithms in
             | coding interviews.
             | 
             | I see a bunch of comments that look to me as strawman, or
             | really bad interview experience.
             | 
             | A good coding interview should: - not be known by the
             | interviewee if they spent even a few weeks on leetcode -
             | avoid requiring anything that isn't covered in an average
             | CS101 class - draw its challenges from the need to process
             | a new problem, and gradually uncover the edge cases in it
             | and how to handle them gracefully.
             | 
             | I don't do leetcode. But went now and tried the first hard
             | question I found. It was "find the median of two sorted
             | arrays". I find this question to be a good example of very
             | little background knowledge needed. (You'd need to know how
             | to deal with arrays, and what's a median - not everyone
             | will know these, but it's a pretty low bar)
             | 
             | This question already has plenty of room for mistakes, edge
             | cases and problem solving. I'm going to take a wild guess
             | from knowing talented veteran engineers I've seen that they
             | can surely handle it in the interview structures I've been
             | experienced.
        
             | fernandotakai wrote:
             | > the interviewer would find a more general problem and
             | would see how the employee would tackle it
             | 
             | those are the best interviews imho. specially when both the
             | candidate and the interviewer engage into a productive
             | discussion about the solution the candidate gave.
             | 
             | at the same time, those take time and a lot of companies
             | want a "fast" hiring pipeline, which leads to "invert a
             | binary tree on this whiteboard!".
        
       | cryptica wrote:
       | Being retired is more boring than working for a giant
       | bureaucratic corporation?
       | 
       | He must have no imagination. When I had a day job at a big
       | company, I would start working on open source in the afternoon as
       | soon as I got home from work then I would stay up late working on
       | it. The next day I would be tired and depressed that I would have
       | to go to the office to work on some useless product and could not
       | wait to go back home to continue the real work.
        
       | seemslegit wrote:
       | And the next language to become unusable without a microsoft-
       | controlled ecosystem is...
        
         | qz2 wrote:
         | https://www.youtube.com/watch?v=H27rfr59RiE
        
         | tsjq wrote:
         | Embrace, Extend, Extinguish .
        
           | seemslegit wrote:
           | Nah that was the old MS, new MS just replaces own with rent.
        
         | estomagordo wrote:
         | What were the previous examples of this?
        
           | seemslegit wrote:
           | C#, F#, Typescript, JavaScript via npm
        
             | Master_Odin wrote:
             | C# and F# are great examples of how MS is willing to allow
             | people out of their ecosystem to use them with all their
             | efforts with .NET Core and having it run places other than
             | Windows.
             | 
             | npm is trivial to replace with yarn and a custom registry.
        
       | zyx321 wrote:
       | Congratulations to Microsoft on successfully hiring a developer
       | with 30 years of Python experience. Living the dream right there.
        
       | chrshawkes wrote:
       | Nice, big fan.
        
       | breatheoften wrote:
       | Typescript for python?
        
       | [deleted]
        
       | [deleted]
        
       | salex89 wrote:
       | Start with rewriting the Azure Python SDK.
        
         | existencebox wrote:
         | Honest response, if somewhat off-topic, since I can't pass this
         | up: How could it be improved/what's been most painful for you?
         | 
         | Full disclosure, I'm one of the <many> maintainers working on a
         | subset of the Azure Python SDK. Currently, there actually _is_
         | a large-scale rewrite in progress to bring the various SDKs up
         | to a consistent level of quality and python standards, since
         | it's no secret the original batch of SDKs grew rather
         | organically. As such, this is a VERY APT time to hear this sort
         | of comment. (And yes, I'm taking it totally deadpan even if it
         | wasn't necessarily meant that way :P)
         | 
         | Do feel encouraged as well to file issues on the azure-sdk-for-
         | python github as well; there are more formal triage processes
         | there than "I happened to read this over lunch" :)
        
       | dynamite-ready wrote:
       | Why do I expect a type safe Python? I'm sure the product I'm
       | imagining will also finally give a Python inspired/compatible
       | language a decent module system, but I'm really not a big fan of
       | the direction Microsoft is carving out for software development
       | at large. I'll admit this post is presumptuous.
        
       | ecshafer wrote:
       | Retirement has always sounded boring anyways. Congrats to Guido,
       | I wonder what he will be working on specifically. Python could be
       | improved on Windows, even simple cases don't work quite as
       | expected always. I would expect Python is used decently widely at
       | MS anyways. Maybe Python being first class on .NET? Or some
       | Python specific things for Azure.
        
         | lostmsu wrote:
         | There already is IronPython. But it lacks community, and
         | stalled after 2.7 release.
         | 
         | All CPython alternatives stall do due to the widely used C API
         | (required for NumPy, TensorFlow, etc). This API is very CPython
         | specific.
         | 
         | There is some work on both sides, that might overcome the issue
         | though: CPython is trying to decouple API from the
         | implementation details, while .NET is working on better C
         | interop story (.NET 5 just introduced ability to export managed
         | functions as C functions).
        
       | pearjuice wrote:
       | Do you think Microsoft can convince him to drop the whitespace-
       | as-syntax?
        
         | jedberg wrote:
         | Why? That's my most favorite part of Python. It makes the code
         | so much more readable.
        
           | throw_m239339 wrote:
           | Ruby manages to be much more readable without the white
           | spaces.
           | 
           | The fault with Ruby is its less useful stb lib and lesser
           | performances.
        
             | orf wrote:
             | IMO Ruby is far, far less readable. Way more magic, endless
             | ways to do the same things with slight differences (blocks,
             | procs and lambdas) etc.
             | 
             | Plus everyone mostly indents the code the same as Python
             | anyway... so. Meh.
        
         | blargmaster42_8 wrote:
         | Let's hope so, that and not beeing properly typed keeps me from
         | using it.
        
       | save_ferris wrote:
       | If this includes improving dependency and runtime version
       | management, I'm pumped. It's been a couple of years since I've
       | used python, but those two things seemed like such warts compared
       | to the rest of the experience.
        
       | 1-6 wrote:
       | Classical Google lineage: "From 2005 to December 2012, he worked
       | at Google, where he spent half of his time developing the Python
       | language." Now he'll spend the rest of his life at Microsoft
       | where he'll giveaway the Google-investment.
        
         | intricatedetail wrote:
         | And will never make as much money as Google or Microsoft out of
         | his own work...
        
       | taude wrote:
       | Fun historical story about Microsoft and Python. I worked there
       | for a bit back in the mid-90s when they acquired a startup who's
       | merchant server software was written in Python 1.12 or something.
       | After Microsoft acquired, it became the engine for running
       | ecommerce on MSN, and eventually became part of the SiteServer
       | suite. The first port to run the software at Microsoft involved
       | wrapping the Python code with a shim that exposed it as COM
       | interfaces. I think it was eventually rewritten in C++ with ATL
       | or something, but that was after I was no longer there.
       | 
       | I still remember the first O'Reily pink Python book waiting on my
       | desk back then when I joined.
        
       ___________________________________________________________________
       (page generated 2020-11-12 23:02 UTC)