Whoa! This is a revelation. I already loved Nix and used nix-shell extensively, but this is the missing piece: fully reproducible Python scripts without compromise.
Although the study by Prat et al. (2020) suggests that linguistic aptitude is a better predictor than numeracy for learning programming in Python, it should be read carefully, as it can easily be oversimplified.
To begin with, the study measures functional numeracy: the ability to solve everyday numerical problems. This is quite different from the kind of advanced mathematics often associated with programming, such as formal logic, symbolic abstraction, or the use of formal languages (as found in denotational semantics or type theory).
These more abstract skills—not basic arithmetic—are essential for understanding recursion, type inference, or algorithm design. That functional numeracy has low predictive power in this study does not imply that deep mathematical reasoning is irrelevant to programming.
Moreover, the language used in the study is Python, which was explicitly designed to be readable and semantically close to natural language. This may give an advantage to individuals with strong verbal skills, but the results don’t necessarily generalize to languages like C, Lisp, or Haskell, where symbolic and logical density is much higher.
Finally, language and mathematics are not opposing domains. They share cognitive underpinnings, such as working memory, executive attention, and hierarchical structure processing. The key is not which one "wins," but how they interact and complement each other in different programming contexts.
Hi Mark. I just bought your book in leanpub.
I own the book about common lisp and haskell, I find your
style very pragmatic succint.
Please follow witting books like those.
I agree with you it's a very opinionated article but despite I program every single day on C and C++, I agree with some points he claims.
For example, I think the implicit conversions in C++ it's very problematic.
Another point is regarding undefined behaviors they still surprise me.
Even I agree with the part in he complains about the size and complexity of the c++ standard.
And the third footnote is simply true.
My complaints are more oriented to C++ than C, often I feel that something went wrong, and we fail to try to reduce the complexity.
When I remember the following quote "A programming language is low level when its programs require attention to the irrelevant." Alan J. Pelis. I always remember modern C++ and I realized how regardless of an apparently simpler syntax, we start to think about l-value, r-value discard, contexpr, we start paying attention to details no related to our original problem.
That's why I feel you are right C++ is a low-level language, but sometimes I feel the modern C++ is not a higher level, but even a lower level.
Sometimes I ask myself if despite the lack of standard library and high-level structures if working with c and Glibc it's higher or lower level, my experience tells me that sometimes I can concentrate better on my problem I try to solve, instead of struggle with the compiler.
There are countless successful open source projects (libraries , frameworks and languages).
Open source have come to stay, besides, nobody forbidden you to put a price if you have a opensource project and you want to give a premium experience, with extra features, maintenance or even a technical support.
if anyone is interested in look an android alternative, which uses the point of gaze to activate the keyboard.
I suggest looking the Samsung's application Talk, it's available from Spain and Portugal.
Its a small language that fits in your head.
It’s very simple and has a very good native support of http, cookie.
It deploys to a single file.
I think too It’s a a very good option.
yes It worths, SICP is a great book!, It's the same you are working with Clojure, Javascript or C++.
Its purpose isn't to teach Scheme or Lisp but it is to teach a bunch of techniques and ideas about the state, programming functional, object-oriented, compiler, and interpreters.
If you read it It will make you a better programmer.
Indeed, you always have to look for new ways to improve, but you don't have to change the way you work, Likely you are doing a lot of things well.
I think better advice is, be curious to learn some way to improve, be conservative in applying it.
Indeed, Usually, all coding advices are too emphatic or clickbait.
ex:
The 10 languages you have to learn in 2020.
The most important js framework.
The 10 books you must read.
But in reality, all advice depends, they depend on what are you doing, what you know, what is your experience....
Terrible advice and mindset,
It's good to learn for pleasure or curiosity.
This way, you can enjoy reading SICP, effective java, code complete... Or you can use a new system, Linux, Mac, Android, iOS.
Doing it you model your thoughts and mind, learn new ways, practices, or patterns, you don’t have to use then only for having learned, but even so, they will be useful to you.
I think your book is very underestimated. It's a great book to beginner perhaps the best one, because It's updated and It's very practical.
If I would have to recommend someone about where to start to learn Common Lisp I'll say to start with your book.