
Thank You, Guido - pauloxnet
https://blog.dropbox.com/topics/company/thank-you--guido
======
gamesbrainiac
To be honest, it is a sad moment, but it was expected. When Guido resigned
from BDFL, I knew that it was the beginning of the end.

And lets be honest, he's earned it.

Thank you Guido, after learning Python, I never looked back, and it has been
the source of great joy for me over the last decade.

~~~
gdulli
> Thank you Guido, after learning Python, I never looked back

That matches my experience. All the pros and cons that in principle apply to
any language, whether newer than Python or older, mean nothing to me in
practice. Python is the one that feels right, the others feel like a chore.
Since I started with Python 10 years ago, nothing has changed that.

There's ways I'll insist that Python is the best at [x], and ways I'll concede
some other language is better at [y]. But it never amounts to anything close
to a debate about what language I should use.

~~~
FpUser
"But it never amounts to anything close to a debate about what language I
should use."

So if your task was to deliver let's say commercial grade FFT library (
substitute with any other long computationally extensive process ) for
consumption by others you would write it in Python?

~~~
pbourke
Given the success of the Python numerical computing stack (numpy, scipy, etc)
it would probably be a good idea to do just that. Of course you’d profile the
library and move some of the performance-critical bits to C / C++ / Rust.
Thankfully Python has some well-trodden paths to that solution.

~~~
FpUser
IMO a good an practical idea would be to write it in C/C++, expose as flat C
API and then offer wrappers in whatever popular consumer languages there are
(python included). The world of software does not end with Python

~~~
pbourke
Yes, definitely a good approach as well. One point in favour of the Python-
first way is that you can prototype and test much quicker in Python than in
languages that are closer to the metal.

On my team, we've been successful with this rough approach:

1\. write a prototype in Python to explore the idea/ensure correctness

2\. extract the core library and re-implement it in Rust

3\. consume the core from Javascript via WASM and Python via pyo3 (Python/Rust
bindings)

~~~
FpUser
_One point in favour of the Python-first way is that you can prototype and
test much quicker in Python than in languages that are closer to the metal._

Interestingly I've found something quite opposite for computational
algorithms. The problem was that execution of Python under debugger was
unbearably slow for me (I used VS Code for this case). So waiting until the
code gets to the point I need was not fun. With C however it would get there
almost instantly. Compile time for isolated computational function was nearly
instant as well. Maybe debugging under VS code was the culprit but I did not
feel that for this particular task Python was any more interactive than plain
C.

~~~
pbourke
Yes, I can see that being tiresome. Our projects are closer to simulations, so
rather than focusing on a tight core at first, we have a number of factors
that can be in play during each time step.

Rather than worry about figuring out structures for our simulation objects
like we might need to do in a lower-level language, Python lets us just throw
together some numpy arrays and dicts as needed, and really iterate quickly on
the solution. If I was working on something with a tight computational core I
would probably take the low-level first approach like you have. Horses for
courses, and all that.

------
ohduran
I hated C++ and Matlab as an undergraduate. Hell, I hated programming as a
whole - and effectively swear never to write a line of code once I was done
with my BSc in Physics.

Then, at work, I was introduced to Python. It was so...obvious, for lack of a
better world. It was like a language I always knew that never spoke before.

I'm now a software engineer, write Python almost all day, and looking back to
the 18-year old version of myself, I would only say "if only you knew".

That, and more, is what people like Guido and those who followed his path
enable people like me to do: enjoy the art of programming.

Thanks Guido, and enjoy your well-deserved retirement.

~~~
xtracto
Interesting. I myself come form an Software Engineering background, and
started programming very young in Logo (a LISP derivate), then BASIC, C, C++,
Java, Ruby and a bunch of others. I have hated programming in Python every
time I have had to do it (several times through my career). It I think the
only language that I have really hated ... the language itself. I've done Z80
and 8086 assembly, I've done Prolog, I've done Pascal, VB, VB.net, C#, R,
Matlab, JavaScript, ActionScript and even Z (formal language) but no other
language has made me swear at it haha.

~~~
tahdig
I think it is about the thinking process of the person, I assume you are >35,
you grew up at a time that people were think about the performance more than
the readability, that was the bottleneck back then.

Now that you have bigger systems and more complex requirements and cheap high
performance computing, the balance is tipped.

And because python is (almost) on the opposite side of the spectrum for your
thinking process, you might have a harder time wrapping your head around why
it does something in a particular way.

I think this is also true for Haskell evangelists over here also, I think they
started acquiring the programming mindset through advanced math(in my
experience most have PhDs) etc., so haskell fits the way they solve a problem
in their head the best.

For me personally it is Python, the delay between solving a problem and having
it translated to python in my head is slim. You probably feel the same way
about your own favourite programming language, because it is the tool that
makes you most productive with the least effort.

~~~
xtracto
> For me personally it is Python, the delay between solving a problem and
> having it translated to python in my head is slim. You probably feel the
> same way about your own favourite programming language.

I feel that with Ruby, which I do a lot nowadays and love

WIth regards to Python, it is the things like having to write 'self' on each
class method, having spaces as part of the language syntax, inconsistent
Object orientation (len(string)?? instead of string.len ) and the neverending
Python 2 vs 3 pain.

~~~
tahdig
Python and Ruby although in the same category have still different mindset. It
is understandable the way you think fits Ruby more.

I tried to learn ruby and was put off by all the magic, last value calculated
is magically returned, the useful but cryptic method calls.

It is shorter and more implicit, I like the explicit approach more.

to give you my perspective on the points you made:

\- self: more explicit, I would prefer to write it, because there is
classmethod(with cls) and staticmethod(without any) params.

\- spaces vs. braces: I don't hate braces, but spaces makes it more readable,
less things I see(whitespace vs. {}) the less distracted my eyes are from the
the characters that do the actual work, you get used to it, I like it more to
be honest.

\- len(string) vs. string.length: again, no preference, I am used to both.

\- py 2 vs py 3: it is not never ending, I helped move a 170K Django project
from Django 1.6 to Django 2.1 and python 2.7.4 to 3.6 in a span of a year, we
were mainly 3 people working on it on the side, our work was not even in the
sprints, 2 senior engineers + 1 really good QA & deployment engineer, it took
1 year because the platform was business critical and we incrementally fixed
stuff. At this moment whoever still runs py2 either has been lazy, does not
care about technical debt or their business does not value solving technical
debt, so they can not allocate time to do it. This is my opinion, might be
wrong, maybe there are other reasons also. But the change had to be done for
the health and longterm viability of the language.

~~~
shrimp_emoji
>spaces vs. braces: I don't hate braces, but spaces makes it more readable

Really?? This is my least favorite thing about Python. D: It can't possibly be
more readable when you're talking about large code blocks. It just happens
that we're never _supposed_ to be talking about large code blocks in Python.
"If you want to write a lot of code, you use another language," they say --
probably one with braces, which syntax highlighters can match-highlight on. In
Python, you just hope the indentation is far enough to make it obvious where
something ends and another thing begins.

~~~
lionelw
If large indentations bother you, good. Braces or not, large indentations and
large code blocks should make you start wondering how to refactor them.

And if Python's design seems to discourage over-indentation and oversized code
blocks, brilliant.

------
Communitivity
This article is a sign of class, well done Dropbox.

I too have to say Thank you Guido. Python 1.5 helped me a lot with several
projects way back when. Then I got into Django later, and marvelled at how
easy it was to use. Now I use Python (and other things) for AI.

I am sad because of the motivation for Guido leaving the BFDL position, but
empathize and understand. I hope he has fair winds and following seas for
whatever journey he sails on next.

------
dragonsh
Language, its community and development model is a reflection of its creator
and his philosophy. So Without meeting the creator Guido, through language and
its community I can see is very humble and care about things besides solving
computer science problems.

May be this is one of the reasons of success of Python and its community which
is open, humble, friendly and inclusive.

In my startup we have been using Python as one of the primary development
language, and thanks to its community and Guido, we will continue to do so in
time to come.

I recently watched a talk by creator of Elm language [1] [2] who is trying to
create similar community like Python, I will try it besides lisp, since I like
the ethos of Python like community and obviously PEP-20 [3].

From my whole team thanks to Guido, and Python community.

[1] [https://elm-lang.org/](https://elm-lang.org/)

[2] [https://m.youtube.com/watch?v=uGlzRt-
FYto](https://m.youtube.com/watch?v=uGlzRt-FYto)

[3]
[https://www.python.org/dev/peps/pep-0020/](https://www.python.org/dev/peps/pep-0020/)

~~~
iandanforth
I'll also add "silly." A not-too-serious attitude from day one helps protect a
community (IMO). When your language is named after a surrealist comedy troupe
it kinda takes the wind out of the sails of moral outrage. Whimsy is
surprisingly powerful.

~~~
michaelcampbell
Which is odd to me; I resisted using python much because of the rabid culture
around it, and I tried, several times. They didn't get the nickname
"pythonistas" for nothing, nor in jest.

It is much, much better of late (I was thrust into a role a year ago where I
am doing 95% of my coding in python now). I'm not sure what's changed; I had
assumed it was the "core" culturalists were diluted by the influx of ML
people, but it is only an assumption.

~~~
acdha
That might have been an artifact of small sample sizes: I couldn’t think of
any time in the last couple decades where I would have used “rabid” to
describe Python culture as a whole.

------
wgyn
> For the last several months, Guido and Sushma have been meeting once a week
> to talk about all things programming. But Sushma says the biggest takeaways
> were not just about how to do things, but how to become more confident and
> learn how to figure things out on your own.

The part about Guido personally mentoring women engineers is, despite his
(obvious) technical contributions, the most impressive part about his Dropbox
tenure to me. The article mentions him leading by example and it's inspiring
to see someone of that stature and level of accomplishment willing to spend
time with individuals. It's one thing to talk about fostering a welcoming
community, it's quite another to offer up his time so generously when he could
be doing "higher leverage" things with regards to diversity.

------
pacaro
I was fortunate enough to work with Guido, albeit briefly, during my time at
Dropbox. He was always a great co-worker. But you definitely didn't have to
work directly with him to get to know him, because of his commute choices he
was always at work when breakfast was being served (food, the true high point
of working at Dropbox) and the intersection of Dropbox culture and Guido's
personality meant that it was easy just to go sit at the same table and have
breakfast with him and get to know him.

------
stochastastic
Thank you Guido! At the risk of sounding saccharine, Python has literally made
life better for my colleagues and me. In the corporate, financial world where
I’ve been working, people often see coding as someone else’s job. Python, and
the community that has grown around it, have made programming accessible
(socially acceptable?). It has saved months of work for us.

I hope you enjoy whatever you set yourself to next.

~~~
signal11
Indeed, new joiners in investment banks these days are increasingly expected
to know Python at least -- and not just for technology roles, but junior
traders and managers as well. For financial services it's the new VBA, but
better.

------
jsshah
Someone who worked at Dropbox shared an anecdote. Guido received an email from
some recruiter along the line "You seem to have great experience in Python.
How many years of experience you have with Python?" To which he replied "All
of it!". I am not sure if it is true story.

~~~
xtracto
Haha, reminded me of a time when I had just quit from a company as head of
engineering, and a couple of weeks later a new Jr. recruiter for said company
sent me one of those generic emails telling me that she liked my LinkedIn
profile, and how she would love to talk to me about an open developer position
at the company.

I chuckled and forwarded the email to the then head of HR and CEO. I am good
friends with both, and I knew they will take it with humor.

It is difficult to find good recruiters.

------
notkaiho
"“When asked, I would give people my opinion that maintainable code is more
important than clever code,” he said. “If I encountered clever code that was
particularly cryptic, and I had to do some maintenance on it, I would probably
rewrite it. So I led by example, and also by talking to other people.”"

This is very sage advice.

~~~
skellera
You’d think it would be common sense when writing something that other people
will read. We don’t see people writing books in acronyms or omitting words.

How come so many people try to use code to show how smart they are?

~~~
Grue3
We don't use code to show how smart we are. We just assume that other
developers are as smart as we are.

>We don’t see people writing books in acronyms or omitting words.

Math books written for mathematicians do this all the time.

~~~
rurp
I didn't take the comment to mean that other developers _can 't_ understand
clever code, rather that writing overly clever code just isn't the best
approach when a more plain solution will do. Writing code that takes another
developer an hour to read through and understand wastes a lot of time compared
to code that can be read and understood at a glance.

~~~
hinkley
This is most important when scanning code.

When I’m trying to add functionality of fix a bug, I’m going to read dozens
and dozens of functions to winnow down to a handful of candidates.

Simple code can be filtered quickly and cheaply. Clever code requires
contemplation. Which clears working memory.

Yes, I can understand your code. But I shouldn’t have to work for it.

------
w-m
There's a whole generation of programming language creators born in the early
to mid 1950s. In no particular order: Guido van Rossum (Python), Bjarne
Stroustrup (C++), James Gosling (Java), Rob Pike (Go), Larry Wall (Perl),
Walter Bright (D).

Makes me wonder what kind of secret club they have going on..

Enjoy the retirement, Guido!

~~~
bachmeier
A few others born in the 1950s that immediately come to mind: Martin Odersky
(Scala), Guy Steele (Scheme), Robert Gentleman (R), John Ousterhout (Tcl), and
(sort of) Simon Peyton-Jones (Haskell).

~~~
segmondy
Wow, I didn't know that John Ousterhout created TCL, come to think of it, I
never thought about who was behind it.

------
gnulinux
Thank you for creating an awesome lingua franca for a generation of
programmers, engineers, and scientists Guido! You'll never be forgotten. Love!

------
pauloxnet
"I think at his core, Guido is a person who is trying to help make the world
better in his own way. I think that was his philosophy when he started
programming in Python and mentoring women is just another way that he
contributes." \-- Sushma Yadlapalli about Guido van Rossum

------
michalf6
I'm travelling with poor cellular connection and it took me 10 minutes to load
this page, while I could load and read content on HN perfectly fine. The text
content loaded LAST. That website is terrible.

~~~
musicale
Welcome to the modern web, where you need to download megabytes of largely
useless crap to display 1 kilobyte of text.

We don't just need ad blocking, we need crap blocking and text caching.

------
AdmiralAsshat
Guido seems to have been incredibly good on the mentoring front, particularly
with getting women into the community. I wonder if he'll continue doing that
at all even after he goes into "retirement". It seems like a great asset to
the community.

------
hinkley
One of the things some of us learn with experience is that “clever code only
the author can understand” is often a lie, too. I may be able to figure it out
on the fly but code I haven’t touched in six months is less familiar than
other people’s code that I touched a month ago.

When I leave hints in the code it’s enlightened self interest. It’s often as
much for my own benefit as for others.

------
meed
Off topic (sorry): Dropbox's overall typography is blatantly offensive to the
eye.

~~~
mitchtbaum
It happens (no worries): We did see before; we do see forevermore.

( ~ might be putting the cart before the horse. ~ take it easy )

------
hyperpallium
If we judge leadership by the quality of followers, python's ecosystem says it
all.

------
blt
> _When asked, I would give people my opinion that maintainable code is more
> important than clever code. If I encountered clever code that was
> particularly cryptic, and I had to do some maintenance on it, I would
> probably rewrite it._

It would be great to see some examples of this rewriting. I feel that we see a
lot of examples of converting repetitive code to terse code, but fewer
examples of "de-clevering" code.

------
jve
> The result of this is nearly four million lines of checked Python code,
> nearly 200,000 improved type definitions, and countless hours saved for
> engineers.

The more I code the more I appreciate statically typed languages.

When I learned/started coding, I liked dynamically typed languages. It was
easier to get past compiler. My code seemed to do something. And if there was
anything wrong in the way, it would just continue to execute making me feel
that my code is at least doing something.

Now more into programming, I don't want to go back to duck-typed languages. I
like when compiler gives me guarantees along with exceptions being thrown at
runtime when something goes wrong, crashing the program and noticing it
immediately that something is wrong.

I think language people also recognizes benefits.

\- PHP7 allows using strict types.

\- Python has static type support

\- Javasript -> Typescript

Disclaimer: Have used php, tried ruby. Using C# and javascript. Looking
forward to typescript.

Do dynamic language people: 1\. Write more tests? 2\. Have more defective
code? 3\. Are better at writing code? 4\. Maybe there is just no correlation
between code correctness and static/dynamic lang. I just wrote down MY
feelings.

~~~
aisengard
Dynamic language people also typically write _less_ code, at least when it
comes to Python.

------
oldgun
Thank you, Guido! I've learned Python and since loved Computer Science.

------
tathagatadg
I owe a lot to the python language and the community. One thing specifically
stands out with Guido is humility. Smart, successful and kind ... empathy for
others - from the language design to focus on readability, to helping new
comers - what an amazing role model! It is no surprise when you see that
reflection in the python community at large.

------
thewileyone
I first learned Python back in 1996, when there was just one Python forum
where Guido answered any and all questions.

He was gracious and polite enough not to call me a dumbass for not realizing
that tabs were a requirement, not an option.

That was also when I became a tab-convert.

Thank you Guido for this incredible tool that has helped so many others
actualize their solution aspirations.

~~~
mixmastamyk
You may have meant this, but in case a newbie reads: Tabs are not a
requirement, pep8 recommends 4 spaces per indent level.

------
VectorLock
Python made programming fun for me again. Thanks, Guido.

------
glofish
The genius of Python is that it treads that fine line between allowing too
little or too much control. Between being too strict or too liberal. Between
trading speed for clarity and simplicity.

It is the ideal programming language for an increasing set of tasks.

~~~
shadowgovt
The only really risky part of adopting it at enterprise scale is that it's
flexible enough that a developer can trick themselves into thinking they can
extend it and they end up falling into DSL hell (where you're technically
still using Python, but you've bent it so far via its runtime-dynamism that
static analysis tools can't help you and you're now writing both code and a
toolchain to support writing code).

But you don't _have_ to do that to yourself to use the language.

------
demosito666
Usually any post about python is about how shitty the language is and how one
can't write anything larger than hello world in dynamically typed language.
This one in wholesome, I like it.

------
this_na_hipster
Thank you Guido for all you did for this community. While others have pointed
out your contributions to the Python community, I have found inspiration in
how you paved a path to the engineering culture all around us. In a time when
career progression was to transition into management after a certain degree of
tenure, your adamant refusal to stay technical and "just code" has shaped my
personal views and my own aspirations for my career. You will always be
cherished

------
deforciant
After coding in Delphi, Java, C and C++ - Python was the first language that I
really enjoyed coding it. When you enjoy a language, it's easy to start
working on fun side projects that advance your skills and you continue
improving yourself. Even though I don't write pretty much Python anymore, I
still like and respect the language and would definitely recommend it to any
new comers in programming. Thanks for Python!

------
raverbashing
A more than deserved retirement. And I'm sure there will be plenty of free
time coding as well.

Given the impact Python has had on my career I'm nothing but grateful for it.

Thank You

------
rafaelvasco
It's been some time since I programmed in Python and it left a good impression
with some caveats. I remember being bothered by the lack of a strong type
checker. I see that now there is MyPy. Good to know. The other problem is the
lack of a super fast runtime. A Python to C compiler would be great. I
remember using Cython but didn't like it that much, even though it was much
faster then normal Python;

~~~
mixmastamyk
[https://en.wikipedia.org/wiki/Nuitka](https://en.wikipedia.org/wiki/Nuitka)

------
yingw787
Thank you Guido. Because of you and your work, incumbents have been toppled,
careers have shifted Or skyrocketed, and fortunes have been reaped. I hope
retirement is as kind to Guido as Guido has been kind to us.

Also highly encourage people to read the PEPs, as well as mailing list
archives and interesting bugs on bugs.python.org. The PSF highly encourages
backwards compatibility so that history is all there and live :)

------
jf
For those of us running ad-blockers, here is a version that is readable thanks
to the Internet Archive:
[https://web.archive.org/web/20191030162322/https://blog.drop...](https://web.archive.org/web/20191030162322/https://blog.dropbox.com/topics/company/thank-
you--guido)

~~~
savanaly
I'm running uBlock origin and I'm not sure what you're talking about, the
original looks normal to me?

------
didip
The article made it sounds like Dropbox is no longer pure 100% Python. What
other languages do they use now?

~~~
lwf
Go's the other best-supported infra language, Rust is used for things like
block storage (Magic Pocket). There's some amount of Java and C++, but those
are all considered legacy.

Yet, most application engineers are still writing Python on the backend and
TypeScript for the frontend.

[I work at Dropbox]

------
chubot
My whole career was based around Python -- 16+ years of it. I used many other
languages but Python was the most enjoyable and useful.

Thanks Guido!

------
klhugo
Congrats Guido. But don't bulshit me about retirement - you will probably find
something else to keep your mind busy :)

------
m0zg
If he's anything like me he won't stay "retired" for long. The longest I
lasted without anything coding-related to do is 9 months.

------
deg4uss3r
Why did this take so long to load?

------
gustavmer
Thank you, Guido!

------
tibbydudeza
Well deserved.

------
not2b
Did you notice this: "He has already put into motion the conversion of the
Dropbox server code from Python 2 to Python 3." Even the company that hired
Guido is still heavily dependent on Python 2, and it doesn't surprise me at
all; my own employer still has a lot of it in internal tools.

~~~
3pt14159
I'm starting to long for a stack that doesn't constantly change. Just set the
features and that's it. Security updates only after that. It feels like a
constant grind keeping up with everything. Containers, clouds, programming
languages, operating systems, frontend frameworks, transfer protocols, it
seems like it takes so much effort to just build something and keep it going.
That Python 2 is still around doesn't really surprise me. Many of the projects
that were built upon it were built by non-developers (scientists, etc) that
have no strong reason to keep everything current.

~~~
alanfranz
Honestly: the Java environment is exceedingly good at that. Backwards
incompatible changes are truly minimal, and only those that are strictly
necessary are added.

And since Java 8 the language is pretty nice and offers good functional
idioms.

Of course, major versions of libraries still change. But there's no match with
the JS approach.

~~~
vvillena
Not really. The newer open versions still don't match Oracle JDK 8. Wanna
bundle a JVM with your app so your users don't have to worry about the Java
runtime? Well, you can't do that anymore. Wanna use JavaFX? You have to jump
to Java 11 and hope your dependencies don't fail with module packaging errors.
Do you use Scala? GLHF.

Standing still in the Java ecosystem is fine. Keeping on with the advances is
painful and exhausting. The Java tech stack is awesome when it works, but to
solve issues you have to go so deep into the tech stack that I'm starting to
think it just can't be done unless you're at least a mid-sized company with
JVM specialists on the payroll. Not developers, but systems people.

~~~
sgift
> Wanna bundle a JVM with your app so your users don't have to worry about the
> Java runtime?

Why would that be the case?

> Wanna use JavaFX? You have to jump to Java 11 and hope your dependencies
> don't fail with module packaging errors.

Dependencies which still fail with module errors are basically abandoned and
should probably be replaced. But even for those there's an escape hatch if you
really want to continue using them, so that seems to be a non-issue?

> The Java tech stack is awesome when it works, but to solve issues you have
> to go so deep into the tech stack that I'm starting to think it just can't
> be done unless you're at least a mid-sized company with JVM specialists on
> the payroll. Not developers, but systems people.

I've worked either directly or indirectly with so many companies of all sizes
using Java without any dedicated JVM specialists I'm pretty sure you're doing
something very, very wrong with all the problems you seem to have.

~~~
vvillena
> Why would that be the case?

I have a desktop Java app with platform-specific installers (.msi, .deb,
.dmg). The Windows and Mac installers include a Java runtime, so the user
doesn't have to worry about installing an external runtime. I'm forced to use
Oracle JVM, because it's the only Java distribution that includes the tools
needed. There's ongoing development on a tool that should bring these and more
related features to the open JVMs, but it's not done yet.

> Dependencies which still fail with module errors are basically abandoned and
> should probably be replaced. But even for those there's an escape hatch if
> you really want to continue using them, so that seems to be a non-issue?

The issue is that the upgrade path isn't smooth. I have to upgrade everything
at the same time, because what works on Java 11 doesn't work in Java 8, and
viceversa. It makes everything way harder than it should be, if there was a
clear migration path.

> I've worked either directly or indirectly with so many companies of all
> sizes using Java without any dedicated JVM specialists I'm pretty sure
> you're doing something very, very wrong with all the problems you seem to
> have.

What I do falls into a niche. It's not "very wrong" but it's uncommon. The
main issue is that Java was a non-issue, a stable platform to build upon. But
the recent Oracle license change forced us to move to fully open versions of
Java that do not have the same features, do not bundle the same libraries, and
do not have documentation detailing all these differences.

I'm not asking for a community to finish whatever feature I need, or for a
company to make what I need free to use. I'm just trying to explain my own
problems caused by Oracle forcing us to move to open distributions of the Java
platform.

------
diminoten
This is a cool read (and a shared sentiment!), I've always wondered what
industry luminaries do day-to-day, and hasn't it been quite the draw for
Dropbox from a recruiting perspective, to say, "Oh, and Guido might want to
ask you some questions about your code."

I wonder what "retirement" means for Guido. The Python/software community
could never hear from him again and he'd completely deserve the rest (and we
the community would be immensely grateful for the work already poured in), but
I get the sense that won't be the case. :D

------
kissgyorgy
Python literally changed my life. I was in a bad situation when I started
learning it, and from that point, job offers never ended, a whole new world
opened for me. Not sure if another language could have done that for me.

Thank You, Guido!

------
goluh
Thank!

------
exabrial
> It is so intuitive and beautifully designed

No it's not. Significant whitespace, underscores that mean things, lack of
type system (but people treat variables as typed anyway), et all, make it
quite a difficult language to understand. And we won't get into performance
problems that it's cult following turns a blind eye to.

I will say Python has inspired a generation of languages that got away from
the C-inspired syntax. We're moved to critically thinking about _why_ we write
code the way we do, rather than simply accepting things because "that's the
way it's done" and for that we owe Python a great debt.

~~~
ajford
For a beginner, compared to many languages out there, it is very intuitive. I
taught many 1st/2nd year college students Python as their first foray into
programming, and it's flexibility and readability was a great way to get
people in the door.

I won't defend beauty, as that's extremely subjective. I happen to find the
whitespace significantly more intelligible than nested braces and parens, but
that's me. I know plenty of people who strongly prefer to have braces and
parens, so no argument from me.

Everyone loves to bring up performance as a huge drawback to Python, but it
never holds up as a fundamental problem. Yes, that means for specific
problems, it's not suitable. But the same can be said about many languages.
Fortran is a horrible language to try and build a web framework on top of.
Lisp is a bad language to write an OS in. Programming languages are tools,
choose the right one for the job.

If you need blazing fast processing of numerical data, choose the proper tool.
If you want fast iterative development with a broad set of packages and an
active community, Python is a suitable tool.

I do agree that the growth in new languages is amazing, and greatly welcome
them to the the toolbox that is programing and software development.

~~~
earenndil
> Lisp is a bad language to write an OS in

Beg to differ. Lisp machines were huge, back in the day, and there are still
hobbyist projects like
[https://github.com/froggey/Mezzano](https://github.com/froggey/Mezzano)

~~~
AnimalMuppet
"It was done at least once" != "it was a good choice", though.

There's a _reason_ why most OSes are not written in Lisp, and it's not because
the OS writers aren't smart enough to learn Lisp. It's not because they don't
know it exists. It's because there are better languages to write an OS in.

~~~
kazinator
Writing an OS in Lisp basically means adapting or developing, and then
growing, a Lisp implementation on the bare hardware. Someone would only do
this if they are simultaneously interested in OS research R&D and Lisp
implementation R&D.

This is different from someone working on an OS in, say, C. They just pick
some C compiler and use it, without becoming a C researcher and implementor.

(They might bemoan some things happening in the development of the compiler
they are using that affect their work, but not actually take that on.)

~~~
AnimalMuppet
I'm not sure I agree with this. How much assembly would you actually have to
write to bootstrap a Lisp? If I understand correctly, not much. And you could
cross-compile from some other platform for as long as needed as you use the
Lisp to write the OS.

~~~
kazinator
Cross-compiling from another platform (say, SBCL) only brings to your target
whatever you have written yourself, not any attributes of that platform (say,
SBCL).

You don't magically get SBCL's reader, garbage collector, hash table
implementation, object system ... or anything else you might want in the OS.

(You could fork that system though to borrow those things instead of doing it
from scratch.)

~~~
AnimalMuppet
Why not, if I can get the basics of Lisp running, and those other things are
written in Lisp? Isn't the hash table implementation written in Lisp?

Or are you saying that I wouldn't automatically have the source for those
things? If so, then... yeah, I was kind of assuming that I would have it. If
the licenses don't work that way, or if the source simply wasn't available,
then my devious plan would not work.

------
jteppinette
While reading the article, I found myself just playing with the top bar. This
is a decently common pattern that I always find distracting.

------
xvilka
Time to Go.

~~~
krabilicious
Rust In Peace

~~~
kgraves
The Zig is Up.

