3 ms·
> A lot of important and large codebases were grown and maintained in Python How does this happen? Is it just inertia that cause people to write large systems
by nutjob2 10mo ago
> A lot of important and large codebases were grown and maintained in Python
How does this happen? Is it just inertia that cause people to write large systems in a essentially type free, interpreted scripting language?
- oofbey 10mo agoIt’s very natural. Python is fantastic for going from 0 to 1 because it’s easy and forgiving. So lots of projects start with it. Especially anything ML focused. And it’s much harder to change tools once a project is underway.
- passivegains 10mo agothis is absolutely true, but there's an additional nuance: yes, python is fantastic, yes, it's easy and forgiving, but there are other languages like that too. ...except there really aren't. other than ruby and maybe go, every other popular language sacrifices ease of use for things that simply do not matter for the overwhelming majority of programs. much of python's popularity doesn't come from being easy and forgiving, it's that everything else isn't. for normal programming why would we subject ourselves to anything but python unless we had no choice? while I'm on the soapbox I'll give java a special mention: a couple years ago I'd have said java was easy even though it's tedious and annoying, but I've become reacquainted with it for a high school program (python wouldn't work for what they're doing and the school's comp sci class already uses java.) this year we're switching to c++.
- zelphirkalt 10mo agoOmg, switching to C++ for pupils programming beginners ... "How to turn off the most students from computer programming?" 101. Really can't get much worse than C++ for beginners.
- nightfly 10mo agoPSU (Oregon) uses C++ as just "c with classes" and ignores the rest of C++ for intro to programming courses. It frustrates people who already use C++ but otherwise works pretty well.
- Izkata 10mo agoThis was how we learned it in an intro class in highschool ages ago, worked pretty well there too.
- jgalt212 10mo agoC++, The Good Parts
- tialaramex 10mo agoWe should distinguish "First language" classes (for Computer Scientists who will likely learn many other languages and are expected to graduate knowing enough to just pick up another language with self study in reasonable time) from "Only language" classes for subjects where you might find it useful to write some software. These have different goals, it wouldn't make sense to teach say, OCaml as the only language but it's entirely reasonable as a first language.
- pjmlp 10mo agoBack in the 1990's, C++ used to be taught at high school students and first year university students.
- maccard 10mo agoI just went and checked my university - they’re still teaching c++ to first year uni students in 2025
- pjmlp 10mo agoCough, Lisp.
- xboxnolifes 10mo agoIt's very simple. Large systems start as small systems.
- dragonwriter 10mo agoLarge systems are often aggregates of small systems, too.
- oivey 10mo agoIt’s a nice and productive language. Why is that incomprehensible?
- hibikir 10mo agoSmall startups end up writing code in whatever gets things working faster, because having too large a codebase with too much load is a champagne problem. If I told you that we were going to be running a very large payments system, with customers from startups to Amazon, you'd not write it in ruby and put the data in MongoDB, and then using its oplog as a queue... but that's what Stripe looked like. They even hired a compiler team to add type checking to the language, as that made far more sense than porting a giant monorepo to something else.
- tjwebbnorfolk 10mo agoMost large things begin life as small things.
- wiseowise 10mo agoPython has types, now even gradual static typing if you want to go further. It's irrelevant whether language is interpreted scripting if it solves your problem.
- IshKebab 10mo agoSomeone says "let's write a prototype in Python" and someone else says "are you sure we shouldn't use a a better language that is just as productive but isn't going to lock us into abysmal performance down the line?" but everyone else says "nah we don't need to worry about performance yet, and anyway it's just a prototype - we'll write a proper version when we need to"... 10 years later "ok it's too slow; our options are a) spend $10m more on servers, b) spend $5m writing a faster Python runtime before giving up later because nobody uses it, c) spend 2 years rewriting it and probably failing, during which time we can make no new features. a) it is then."
- gcanyon 10mo agoWhat language is “just as productive but isn't going to lock us into abysmal performance down the line”? What makes that language not strictly superior to Python?
- nazgul17 10mo agoLoose typing makes you really fast at writing code, as long as you can keep all the details in your head. Python is great for smaller stuff. But crossed some threshold, the lack of a mechanism that has your back starts slowing you down.
- gcanyon 10mo agoSure, my language of choice is more flexible than that: I can type put "test abc999 this" into x add 1 to char 4 to 6 of word 2 of x put x -- puts "test abc1000 this" But I'm still curious -- what's the better language?
- IshKebab 10mo agoTypescript, C#, Go, Rust. I'd say they are almost strictly superior to Python, but there are some minor factors why you might still choose Python over those. E.g. arbitrary precision integers, or the REPL. Go is a bit tedious and Rust is harder to learn (but productive once you have). But overall they would all be a better choice than Python. Yes even for startups who need to move fast.