Your laziness is not our laziness, and your apathy is not our apathy.
981 karma · joined April 21, 2011
Your laziness is not our laziness, and your apathy is not our apathy.
Most people are just as "unreasonable" as the grandparent, which is to say that they are highly reasonable and you are the unreasonable one.
I don't know if you remember a film from about forty years ago, where the general public was exhorted to admit that they were, in fact, "mad as hell," and as result, "not gonna take it any more." People are currently mad as hell, and now we're seeing them decide (unsurprisingly) to not take it any more.
He claims that C was designed by committee, which I can only assume is a defensive projection meant to hide that C++ was designed and is maintained by committee. He points out mplayer as an example of C code that is supposed to be good but is actually bad, which is a low blow. (mplayer's code quality has always been awful and this is well-known in the community.)
The railing against C++ object models being bad is similarly defensive, and I get the feeling that the author is deliberately trying to make people forget that pImpls ever happen.
C++ is an incredibly obtuse language, full of so many misfeatures and fancy whirligigs that it's difficult to be certain that even repeated reads through a file are giving you the correct impression of structure and flow.
What do you use to package? distutils, setuptools, distribute, distutils2, pkgutils...? How to choose?
You can skip all conversation about the GIL and threads neatly by simply preferring a different concurrency model. There are plenty of ways to do this (see above re: bikesheds and their colors), but being permanently tied to CPython and the threading module is increasingly uncommon for professional Python, and it isn't as unavoidable as things like networking or even which language you're going to use.
Edit: I see that the author's in this thread. Nicely written article, but a tad hyperbolic.
Additionally, if you've managed to crack this puzzle, I'd love to see some documentation accompanying FJS, because it is a major omission from the concatenative literature and nobody seems to actually have anything to read besides the shift/reset white papers.
While I can't really argue against you, partially because you're tptacek and partially because you're not wrong here, it's quite irritating to see somebody have a good conclusion and faulty premises.
Also, stop with the scare quotes.
I work in Seattle. Before I moved there, I lived and worked in Oregon, in the Valley. I grew up with working public transportation, with buses that were affordable and ubiquitous. The school that I went to, Oregon State University, came to an agreement with the city that it was in, and they cooperated to make all buses free within city limits. Yes, even for non-students and non-residents.
Portland's transportation is great, and Seattle's transportation is great. Every time I visit the Bay for work, I cringe, because I know exactly what to expect: Hours of trains and buses if I don't want to rent a car. It's utterly ridiculous.
X is (very) roughly the size of GCC. It's massive and it's nearly entirely C, with a few modern Python scripts to generate some of the more onerous tables. There are many old libraries, and they are horrifying. Eldritch, cyclopean, etc.
"Decent object-oriented structure" doesn't help when the language still has so many primitive types. Namespaces don't help when most of the built-in and standard libraries live in the global namespace, C-style. The runtime is still creaky and inefficient.
There's not really any hate these days, just eye-rolling. You could be doing better things, but you're deliberately choosing not to, and harming nobody but yourself in the process.
Flask's main API is heavily based on decorators, and those are a perennial problem for new programmers.
No, seriously, this is a bad link, it's got no advice, and it's not helpful.
Here's some serious advice: Put a field in your database, make it Unicode, bound it according to your DBA's advice on how much space you have to spare. A couple thousand code points should be plenty. Then give your users a single field called "Name" and have it accept up to a couple thousand Unicode points. Done.