|
|
|
|
|
by thanatropism
2819 days ago
|
|
I do a lot of "creative" work in Excel too. Finance/business stuff where the shape of the problem itself is ill-defined. It's a whiteboard, not a "programming language" -- nothing that isn't visible will ever happen; nothing is programmed. ---- I had to write codes for my dissertation in Matlab because that's what my advisor knew. Matlab is popular in research because so many ideas are already whiteboarded in matrix formalisms. I feel like Python is like this, but for object-oriented programming: rewriting my dissertation codes in Python gives me uglier code because of numpy, but it's easier to package it in such a way that it can be reused and extended. (I.e. it's not its mathematical nature, it's "parameterizable encapsulation". This is even better seen in something like Flask). I think you're saying that Python isn't great at procedural programming. I disagree -- the syntax is simple and it's there -- it's just that not a lot of relevant open source projects rely on a procedural style. Contrast: Python isn't great at functional programming; it's very hard to express ideas like functors and monads. |
|
No, I'm saying it has weaknesses as a first programming language for beginners. Of course Python is practical, that's why it's so insanely popular.
The reason my friend went back to Excel wasn't because of a weakness in how Python is structured or what types of programs you can write in it. He left it because he didn't like needing to look up how to do things, or look to see what library supported what function. Excel is limited and inflexible, but he knows the "API" by heart, so when he's doing something creative, he's spending more time thinking in depth about the concepts he already knows, and less time learning new concepts.
Python is just big. There's a lot of it. There are multiple ways to do everything. That's good, and I like that about the language. But it's also kind of bad. You can ignore a lot of it, but that takes effort and it limits what resources/tutorials you can look at online. Being able to grab someone else's code off the Internet and learn from it or change it for your own projects is nice. But if you want to do that for Python, you need to be good at the language first.
That's what I think the strength of very small languages are. You can hold them entirely in your head without too much effort, so as a beginner you're able to spend more time applying them, which is often the fun part of programming for a beginner anyway.