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