TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

The Python Paradox (2004)

148 pointsby ryan-duveover 2 years ago

36 comments

cvccvroomvroomover 2 years ago
It was right then, but it&#x27;s kind of dated and misses an evolutionary lesson: beautiful code isn&#x27;t enough, it has to be safe, beautiful, maintainable, productive, understandable, and resource efficient.<p>Ruby is still great for throwing something together fast and maintaining it until it runs into scale problems. It added gradual typing with sorbet and RBS.<p>Crystal is a neat typed, compiled Ruby-alike but it&#x27;s buggy.<p>Rust hits more of these but it&#x27;s ugly. Uglier than Python and approaches C++-level eyebleed. Rust generics aren&#x27;t as flexible as they could be because type constraints don&#x27;t have union and specialization is painful. Tag structs are laborious. Go hits more of these except it&#x27;s not as flexible and not quite as safe as Rust. Rust makes enormous binaries and compiles slow and the cargo index download is glacial, I&#x27;m surprised they don&#x27;t have an &quot;sccache&quot; for it. Go is easy to learn but then the capability of it plateaus. Go compiles and tests insanely fast.<p>Rust should rebase its type system to have union types, i.e., foo: i32 | f32. Also, more granular and specialized type constraints (negation, union) on generic trait parameters.<p>Elixir (on erlang) can be productive. It&#x27;s gorgeous, it&#x27;s fast, it&#x27;s powerful, and fairly expressive.<p>Haskell and Idris are beautiful and powerful, but inaccessible to most software engineers.<p>Pony is beautiful, productive, extremely safe, and fast.<p>Zig, Nim, Kotlin and friends are all moving in the right general directions. Swift is alright too.
评论 #34543638 未加载
评论 #34542953 未加载
评论 #34545318 未加载
评论 #34543568 未加载
评论 #34543250 未加载
评论 #34542822 未加载
评论 #34544506 未加载
评论 #34544479 未加载
评论 #34543336 未加载
评论 #34553332 未加载
评论 #34549335 未加载
评论 #34543662 未加载
评论 #34543657 未加载
omershapiraover 2 years ago
Funny how emergence works with tools. Give a language too few tools but viral circumstances - the ecosystem diverges (Lisps, Javascript). Give it too long an iteration time but killer guarantees, you end up with committees. Python not falling into either of these traps should be understood as nothing short of magic in emergence.<p>I only recently discovered that python&#x27;s reference typechecker, mypy, has a small side project for typed python to emit C [1], written entirely in python. Nowadays with python&#x27;s rich specializer ecosystem (LLVM, CUDA, and just generally vectorized math), the value of writing a small program in anything else diminishes quickly.<p>Imagine reading the C++wg release notes in the same mood that you would the python release notes.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;mypyc&#x2F;mypyc">https:&#x2F;&#x2F;github.com&#x2F;mypyc&#x2F;mypyc</a>
评论 #34543763 未加载
评论 #34543142 未加载
评论 #34543159 未加载
评论 #34544079 未加载
评论 #34545135 未加载
评论 #34543585 未加载
rstover 2 years ago
[2004] -- Python is no longer a &quot;comparatively esoteric language&quot; these days. I suppose now this might be an argument for hiring folks using Haskell or the like.
评论 #34542507 未加载
评论 #34542610 未加载
评论 #34542262 未加载
TeeMassiveover 2 years ago
The complement to this paradox is the Linus Torvalds C++ rant <a href="http:&#x2F;&#x2F;harmful.cat-v.org&#x2F;software&#x2F;c++&#x2F;linus" rel="nofollow">http:&#x2F;&#x2F;harmful.cat-v.org&#x2F;software&#x2F;c++&#x2F;linus</a><p>&gt; C++ is a horrible language. It&#x27;s made more horrible by the fact that a lot of substandard programmers use it, to the point where it&#x27;s much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do <i>nothing</i> but keep the C++ programmers out, that in itself would be a huge reason to use C.<p>&gt; In other words: the choice of C is the only sane choice. I know Miles Bader jokingly said &quot;to piss you off&quot;, but it&#x27;s actually true. I&#x27;ve come to the conclusion that any programmer that would prefer the project to be in C++ over C is likely a programmer that I really <i>would</i> prefer to piss off, so that he doesn&#x27;t come and screw up any project I&#x27;m involved with.<p>Oh Linus...
评论 #34544955 未加载
college_physicsover 2 years ago
&gt; You push blobs of source code around the way a sculptor does blobs of clay<p>Love this sentence. Python is a success precisely because it enabled a lot more people to be sculptors. Ofcourse this means you see a lot ugly, unfinished pieces. And indeed bronze or iron sculptures may require a slightly different workflow and skillset.<p>Not clear for how long Python will retain this advantage. People parlay lists of technical reasons but most likely the new hot language will be one that makes it even easier and fun to push around blobs of code.
082349872349872over 2 years ago
&gt; <i>...along with Ruby (and Icon, and Joy, and J, and Lisp, and Smalltalk) the fact that [Python and Perl are] created by, and used by, people who really care about programming.</i><p>The distinction Python has (wrt to the rest of this list) is that it is a language created by someone who really cares about systems programming, descended from a language (ABC) created by people who really cared about programming theory.<p>(that said, my vote for the mechanism of python&#x27;s current popularity is: time and chance)
d--bover 2 years ago
Yeah it is dated. Python got hyped and now people learn it because data science hires python people, and data science pays well, not because they care.
评论 #34543439 未加载
评论 #34543195 未加载
aabhayover 2 years ago
Typed python is extremely ugly and frustrating. Does anyone have any good advice on doing it well? It seems like every library has their own system and doing any kind of casting just to make the linter be quiet is such a chore.
评论 #34543485 未加载
评论 #34543217 未加载
评论 #34543751 未加载
评论 #34544177 未加载
评论 #34549469 未加载
评论 #34549020 未加载
评论 #34543211 未加载
评论 #34543950 未加载
holriover 2 years ago
I remember to having read this post back in 2004, in a state of transitioning my main language to the esoteric hacker language python, since I did not like java or perl at all. The argument in the article resonated with me and enforced my believe that python is the right choice. Looking back it was a great decision, still using python as my main language and it is still going very strong.
RomanPushkinover 2 years ago
It&#x27;s called &quot;anecdotal evidence&quot;, the only thing that makes this post credible(-ish) is that PG wrote it.
评论 #34542605 未加载
评论 #34542862 未加载
评论 #34543475 未加载
评论 #34543683 未加载
评论 #34542967 未加载
FatActorover 2 years ago
What an interesting theory. Talking to new hires, they learned python because that&#x27;s what they were taught in school. Maybe in the 1990&#x27;s when Python was competing with PERL for 2nd generation scripting languages that was the case that enthusiasts picked it up (along with Java beans, it was the 90&#x27;s. :), but Python is institutional now in CS coursework.<p>EDIT: I just realized this was 2004. And now I agree with him.
tgmaover 2 years ago
Yaron Minsky of Jane Street said the same thing about OCaml
评论 #34559203 未加载
deafpolygonover 2 years ago
Funny how Python is considered esoteric by author when Python is amongst the oldest of languages in widespread use then (2004).<p>- C++ 1985<p>- Perl 1987<p>- Visual Basic 1991<p>- Python 1991<p>- JavaScript 1995<p>- Ruby 1995<p>- Java 1995<p>- PHP 1995<p>- C# 2000<p>Back in 2004, despite how small Python was - it was still in the top 10, just past Delphi. - Java dominated, followed by PHP.
评论 #34544096 未加载
drewcooover 2 years ago
2004.<p>Almost 20 years ago. Was Python even a teen?<p>Python does not attract smart young iconoclasts anymore. It&#x27;s the scripting language everyone writes because everyone writes Python.<p>What languages do attract smart young iconoclasts? Nim? Elm? Whatever you&#x27;re doing that is not yet old enough to drink by the time you comment?
评论 #34545207 未加载
评论 #34542749 未加载
评论 #34542718 未加载
评论 #34542806 未加载
评论 #34542738 未加载
virtualwhysover 2 years ago
&gt; So a language that makes source code ugly is maddening to an exacting programmer, as clay full of lumps would be to a sculptor.<p>I am completely repulsed by Dart, but people seem to actually not be bothered by the hideous syntax. Must be wearing Flutter colored glasses...
raisterover 2 years ago
When organisations were asked <i>&quot;Which languages and platforms in your application portfolio have been the greatest source of risk or exposure to your organization?&quot;</i> in the SANS Institute &quot;A SANS Survey: Rethiking the Sec in DevSecOps: Security as Code&quot;, security officers mention Python <i>29.4%</i> of the time (first of the list - they can choose up to three languages - dated 2021).<p>My question is: when will Python be seen as &quot;risk or exposure &#x27;free&#x27;&quot; in the near future?<p>Edit: small typo
评论 #34543133 未加载
ninjaaover 2 years ago
UPDATE: I realize this is a repost from 2004. Still worth exorcizing dead links since content is still relevant<p>What&#x27;s up with the Turkish and Japanese translation links not working?<p>Are they just dead cos they rotted? I&#x27;ve been working on my own multilingual site upgrade lol so my mind is on this<p>@PG to future proof consider using archive.org&#x27;s wayback machine for essential links like translations, shld hopefully be straightforward to roll into your blog software
评论 #34543236 未加载
评论 #34542697 未加载
john-tells-allover 2 years ago
(2004)<p>It calls Python &quot;esoteric&quot;! :-D<p>I agree with the sentiment even if the example given hasn&#x27;t aged well.
评论 #34542624 未加载
评论 #34543177 未加载
ben7799over 2 years ago
Having written my first Python &amp; Java way before this article was written some of this stuff doesn&#x27;t hold up all these years later. It took a while for startups to start using Python but there was already big OSS software infrastructure built in it in the 1990s. And everyone noticed it was slow too, in the 1990s I remember more of the Python software being interactive and&#x2F;or having desktop GUI components that were laggy compared to C&#x2F;C++ ones, even worse than Java GUI elements were at the time.<p>An opposite observation, the engineers that want to differentiate themselves by using &quot;less popular&quot; tools often have some of the biggest egos and are most blind to the issues in their designs.<p>The one place I worked where we built the application in Python was rife with: - People with a big chip on their shoulder about Java and .NET being inferior<p>- Constant talk about how bad Java&#x2F;.NET were and how their use of Python was so much better<p>- The design of the product hit every weak point of Python that Java and .NET are much stronger at<p>- We had bugs &amp; data leaks that Python&#x27;s issues made possible in ways that were almost impossible in Java&#x2F;.NET<p>- Performance issues and jumping through hoops due to Python&#x27;s issues around multi-threading<p>- Tons of tech debt and difficult to decipher code<p>Still there was a good result in the end, and the rapid iteration of Python was helpful in getting things done fast. The question is how bad was it to deal with the issues after the exit when the new owners had to keep scaling it.<p>Another place we had a bitter LISPy guy. Always trying to write everything in the most esoteric language he could, always leaving behind maintenance issues, never stopping talking about how bad the tool chains were (Java&#x2F;C++) that actually brought in the revenue his job depended on.
klaftcover 2 years ago
I wonder if Graham writes from the perspective of a startup founder, i.e., he observed other founders who used Python <i>in 2004</i> and got a positive impression.<p>I do not have this impression in 2023. No website written in Python is as polished as GitHub (has Ruby influenced the elegance?).<p>The scientific ecosystem is chaotic, new and half-finished tools are released daily, packaging is a mess. Of course some of the scientists are smart <i>in their domain</i>, but not always in programming.<p>Core development is pedestrian and run by unproductive, dominant bureaucrats who want to remain in power. From a CS point of view, Python is of zero interest and has few exciting areas.<p>Python has maximalist specifications with many bugs in the resulting case explosions. Python has too much churn and a horrible package manager.<p>I don&#x27;t see smart people who are attracted to Python (like maybe in 2004). They sometimes use it, grudgingly.
bottlepalmover 2 years ago
Not statically typed until recently (difficult to navigate&#x2F;refactor), global interpreter lock, kwargs grossness, no multi line lambdas, the whole version 3 upgrade fiasco.. idk it’s ok.
zmmmmmover 2 years ago
PHP dominated the internet and then eventually became shunned with people embarrassed to admit they use it. I sometimes wonder if Python is on this trajectory but much slower or not. We are already at the point where there are very clearly better alternatives from nearly every technical perspective, so it&#x27;s carried primarily by momentum and ecosystem. Can that last forever?
评论 #34553530 未加载
评论 #34544095 未加载
signaruover 2 years ago
&gt; People don&#x27;t learn Python because it will get them a job; they learn it because they genuinely like to program and aren&#x27;t satisfied with the languages they already know.<p>At least in my area, these days there are many programmers who know Python because that&#x27;s the only language they have been taught. And there are many job opportunities specifically looking for Python.
评论 #34544050 未加载
Dowwieover 2 years ago
In 2023, it&#x27;s the Rust paradox
articsputnikover 2 years ago
I love learning new languages because of learning, not because it&#x27;s cool. That&#x27;s why learning Rust shows more about the person than being on a hype train. This is one of the best indications for hiring if I&#x27;d hire someone.
评论 #34546713 未加载
eugenhotajover 2 years ago
This post would sound so dumb if it didn’t come from the almighty pg.
frr149over 2 years ago
Icon, that&#x27;s a name I havent heard in a long time...
shubhamjainover 2 years ago
In my experience, programmers obsessed with unconventional programming languages are exactly the ones that prioritize (over) engineering over simply shipping things. If you think, writing your codebase in a funky functional language would bear fruits in the long turn, you&#x27;re in for a surprise. The road is full of pitfalls. Here are a few I outlined in my essay[1]:<p>1. Hiring is harder: &quot;When it comes to hiring people, it’s true that programmers versed with functional programming would be, on average, better than those who aren’t. However, the hiring pool itself would shrink massively. Learning a language is an investment, and not many people are using their spare time to learn a new one. As I have seen it happen, demanding functional experience soon becomes an unreasonable expectation.&quot;<p>2. Less resources: What&#x27;s the point of choosing an esoteric langauge and having to build nearly everything from scratch. You&#x27;re basically throwing away years of experience that a vibrant community provides.<p>3. Hackers use languages they know: I am nearing 30, and having seen rise and fall of many tech trends, I want to play my cards right. Why should I waste my energy on learning a new language, especially when it can fade into obscurity and the output is going to be the same anyway? MeteorJS[2] was supposed to revolutionize front-end programming, who is talking about it now?<p>Facebook was written in PHP. Mark used one language he knew and a $300B company was built on top of it. While a company I worked at that prided itself on being written in Clojure, slowly felt behind the competition and barely managed to get acquired (at a deep discount to what they raised funding at). Trust me, your time is better spent shipping, and learning internals of how things work.<p>[1]: <a href="https:&#x2F;&#x2F;shubhamjain.co&#x2F;2018&#x2F;12&#x2F;01&#x2F;why-paul-graham-wrong&#x2F;" rel="nofollow">https:&#x2F;&#x2F;shubhamjain.co&#x2F;2018&#x2F;12&#x2F;01&#x2F;why-paul-graham-wrong&#x2F;</a><p>[2]: <a href="https:&#x2F;&#x2F;www.meteor.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.meteor.com&#x2F;</a>
评论 #34543045 未加载
评论 #34543098 未加载
评论 #34543066 未加载
评论 #34543279 未加载
评论 #34543146 未加载
z3t4over 2 years ago
If you already know a general purpouse language well there is no reason to learn another one, unless you are tired on the lang you already know.
dzongaover 2 years ago
this piece was an article relevant to that certain point in time.<p>where at that time - java had slow velocity - because it was tied up in marketing speak - and enterprise jargon.<p>however reading in between the lines - languages or ecosystems that are not shaped up by hype &#x2F; marketing to do tend to encourage faster velocity and an uncanny advantage.<p>in this day and age though - maybe due to resume driven development - influx of vc funding. keep in mind - when YC started it was just a seeder fund - which encouraged companies to reach ramen profitability as soon as possible, not survive on the next round of funding.<p>what you now experience in the present - is rubber gum &#x2F; viscous velocity amongst startups due to marketing i.e things like k8s, cloud tools etc which reach the complexity of J2EE tools of back then; when only the appointed prophets could show you the right true path.<p>now every company big and small - talks about doing things at scale. yet if you take a step back - no one has a definition of what scale is.<p>at $job - the talk of scale is prevalent - yet we&#x27;re reaching for tools to solve human problems. that wouldn&#x27;t need tech at all.<p>good luck finding a place that shuns complexity, isn&#x27;t afraid of letting servers fail - to make sure they&#x27;re robust and reliable enough. where the presentation layer - isn&#x27;t going through a yearly ritual of sacrificing hours dealing with dependencies.
waldrewsover 2 years ago
So what are some present day choices for a language that can serve this people differentiator role? And yet is practical? How about F#?
评论 #34544186 未加载
评论 #34546775 未加载
raygelogicover 2 years ago
if you&#x27;re trying to build a product, code is a liability. not sure that an esoteric codebase is the best signal to candidates that the bottom line is solving problems for stakeholders, rather than beautiful code.
alkonautover 2 years ago
So today it&#x27;s the Erlang or Rust or Hasekll or F# paradox?
lisparadoxover 2 years ago
time travel from 2004 to 1960s: fortran vs lisp<p>was lisp considered esoteric back then?<p>is lisp programmer smart[er]?
juanbyrgeover 2 years ago
Python is great for small scripts or explorations. You can&#x27;t use it for anything serious that needs to scale due to the lack of concurrency and significant memory overhead. If you need something to scale you use something like C++, Java, Go, Rust, etc.
评论 #34542917 未加载
评论 #34549144 未加载
评论 #34542937 未加载
anonuover 2 years ago
Python is a glue language. If you want to be hardcore you write something in rust (or whatever) with python bindings...
评论 #34542983 未加载
评论 #34542850 未加载
评论 #34549030 未加载