Neutral opinions are often neutral because they haven't done much research on a topic.
(с) https://news.ycombinator.com/item?id=22018599
(с) https://news.ycombinator.com/item?id=22018599
I can imagine a teenage kid being a hater and then growing out of it. But not anyone over 25.
(c) http://paulgraham.com/fh.html
(c) http://paulgraham.com/fh.html
"It isn't magic!" mantra is often heard in Go apologetics, but every time I see it, it occurs to me that Go's definition of "magic" is somewhat akin to a 15th century peasant seeing a lightbulb. Stuff like exceptions or error types isn't magic - they have been around for a long time, they're well understood, and they have significant advantages.
(c) comments on Goodbye, Clean Code, https://news.ycombinator.com/item?id=22022466
(c) comments on Goodbye, Clean Code, https://news.ycombinator.com/item?id=22022466
This airplane is designed by clowns, who in turn are supervised by monkeys.
(c) https://fortune.com/2020/01/10/designed-clowns-supervised-monkeys-internal-boeing-messages-slam-737-max/
(c) https://fortune.com/2020/01/10/designed-clowns-supervised-monkeys-internal-boeing-messages-slam-737-max/
Fortune
'Designed by clowns...supervised by monkeys:' Internal Boeing messages slam 737 Max | Fortune
“I don’t know how to fix these things... it’s systematic. It’s culture. It’s the fact that we have a senior leadership team that understand very little about the business and yet are driving us to certain objectives," one employee wrote.
I really detest the use of the word "training" in relation to professional activities. Training is what you do to dogs. What you should be doing with people is educating them, not training them. There is a big, big difference.
(c) http://flownet.com/gat/jpl-lisp.html
(c) http://flownet.com/gat/jpl-lisp.html
I care about this for two reasons.
The first is a principled fuck you. I don’t care whether anything materially bad will or won’t happen as a consequence of Wacom taking this data from me. I simply resent the fact that they’re doing it.
The second is that we can also come up with scenarios that involve real harms.
(c) https://robertheaton.com/2020/02/05/wacom-drawing-tablets-track-name-of-every-application-you-open/
The first is a principled fuck you. I don’t care whether anything materially bad will or won’t happen as a consequence of Wacom taking this data from me. I simply resent the fact that they’re doing it.
The second is that we can also come up with scenarios that involve real harms.
(c) https://robertheaton.com/2020/02/05/wacom-drawing-tablets-track-name-of-every-application-you-open/
Robert Heaton
Wacom drawing tablets track the name of every application that you open | Robert Heaton
I have a Wacom drawing tablet. I use it to draw cover illustrations for my blog posts, such as this one.
The problem with optimism is that when things do go wrong, not only do you have no idea how to fix it, you don’t even know what went wrong.
(c) https://programmingisterrible.com/post/188942142748/scaling-in-the-presence-of-errorsdont-ignore
(c) https://programmingisterrible.com/post/188942142748/scaling-in-the-presence-of-errorsdont-ignore
Tumblr
Scaling in the presence of errors—don’t ignore them
Building a reliable, robust service often means building something that can keep working when some parts fail. A website where not every feature is available is often better than a website that’s...
...the code may be doggone ugly. One project I worked on actually had a data type called a FuckedString.
(c) https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
(c) https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
Joel on Software
Things You Should Never Do, Part I
Netscape 6.0 is finally going into its first public beta. There never was a version 5.0. The last major release, version 4.0, was released almost three years ago. Three years is an awfully long tim…
In some measure we become what we remember, so we must be careful what we remember
(с) http://augmentingcognition.com/ltm.html
(с) http://augmentingcognition.com/ltm.html
One common pattern is that people think they're getting stuck on esoteric, complex issues. But when you dig down it turns out they're having a hard time with basic notation and terminology. It's difficult to understand quantum mechanics when you're unclear about every third word or piece of notation! Every sentence is a struggle.
It's like they're trying to compose a beautiful sonnet in French, but only know 200 words of French. They're frustrated, and think the trouble is the difficulty of finding a good theme, striking sentiments and images, and so on. But really the issue is that they have only 200 words with which to compose.
My somewhat pious belief was that if people focused more on remembering the basics, and worried less about the “difficult” high-level issues, they'd find the high-level issues took care of themselves.
But while I held this as a strong conviction about other people, I never realized it also applied to me.
(с) http://augmentingcognition.com/ltm.html
It's like they're trying to compose a beautiful sonnet in French, but only know 200 words of French. They're frustrated, and think the trouble is the difficulty of finding a good theme, striking sentiments and images, and so on. But really the issue is that they have only 200 words with which to compose.
My somewhat pious belief was that if people focused more on remembering the basics, and worried less about the “difficult” high-level issues, they'd find the high-level issues took care of themselves.
But while I held this as a strong conviction about other people, I never realized it also applied to me.
(с) http://augmentingcognition.com/ltm.html
Haskell is full of these little decisions where it just won't let you do something because it's not "correct" code, and they kind of don't care if that makes coding in it a fight against the compiler.
Rust took that philosophy and applied it pointers.
(c) YC comments on https://nibblestew.blogspot.com/2020/03/its-not-what-programming-languages-do.html
Rust took that philosophy and applied it pointers.
(c) YC comments on https://nibblestew.blogspot.com/2020/03/its-not-what-programming-languages-do.html
Blogspot
It's not what programming languages do, it's what they shepherd you to
How many of you have listened, read or taken part in a discussion about programming languages that goes like the following: Person A: "Pro...
Boilerplate is not the problem. Magic is the problem.
(c) https://news.ycombinator.com/item?id=22995928 (A Critique of React Hooks)
(c) https://news.ycombinator.com/item?id=22995928 (A Critique of React Hooks)
Мне страшно. Мне хочется забиться в угол и плакать. Я не могу быть уверенным как минимум в половине строк, что я пишу. У меня есть чувство, что я строю фекалодендритные конструкции, а убеждение хотя бы самого себя в том, что написанное имеет смысл, занимает неоправданно много времени. Что бы я ни делал, в моём коде будут UB. Я ни на что не могу повлиять. Психологи говорят, что выученная беспомощность тут где-то рядом, так что написание кода на плюсах для психики не очень полезно.
(с) https://habr.com/ru/post/497114/
(с) https://habr.com/ru/post/497114/
Дуглас Крокфорд изобрёл JSON. Некомпетентный болван похоже не знал, что у нас уже есть XML. Программисты задолго до него изобрели способ обмена данными, кем он там себя возомнил вообще?
(с) https://habr.com/en/post/498754/
(с) https://habr.com/en/post/498754/
Хабр
Хорошо, что создатель вашего любимого инструмента не слушал ослов, когда изобретал велосипед
Прошлым летом мы с пацанами рассказали про свою либу, которую наш заказчик не принял и выкинул на помойку. Мы бомбили, потому что верили в свое решение, и расс...
For the uninitiated, Cascading Style Sheets are a cryptic language developed by the Freemasons to obscure the visual nature of reality and encourage people to depict things using ASCII art.
(c) https://scholar.harvard.edu/files/mickens/files/towashitallaway.pdf
(c) https://scholar.harvard.edu/files/mickens/files/towashitallaway.pdf
It’s just that Boolean thinking has infected the software world to such an extent that I feel that I have to fight back. Just the idea of comparison to “null” to obtain a Boolean is absurd, even if you think you need a “null” pointer (which you don’t, in a properly designed language).
(c) comments on https://existentialtype.wordpress.com/2011/03/15/boolean-blindness/
(c) comments on https://existentialtype.wordpress.com/2011/03/15/boolean-blindness/
Existential Type
Boolean Blindness
I hate Booleans! But isn’t everything “just bits”? Aren’t computers built from gates? And aren’t gates just the logical connectives? How can a Computer Scientist p…
…we recommend staying away from shell noscripts as much as possible.
(c) https://docs.gitlab.com/ee/development/shell_noscripting_guide/
(c) https://docs.gitlab.com/ee/development/shell_noscripting_guide/
Gitlab
Shell noscripting standards and style guidelines | GitLab
GitLab product documentation.
Perhaps one of the worst misfeatures of C is the ease with which responsibility for problems can be shifted to the person who wrote the code. “Oh, you segfaulted? I guess you forgot to check for
Clearly, computers can’t be expected to do everything for us. But they can be expected to do quite a bit. Programming languages are built for humans, and they ought to eliminate the sorts of rote work humans are bad at whenever possible. A programmer is already busy thinking about the actual problem they want to solve; it’s no surprise that they’ll sometimes forget some tedious detail the language forces them to worry about.
(с) https://eev.ee/blog/2016/12/01/lets-stop-copying-c/
NULL.” If only I had a computer to take care of such tedium for me!Clearly, computers can’t be expected to do everything for us. But they can be expected to do quite a bit. Programming languages are built for humans, and they ought to eliminate the sorts of rote work humans are bad at whenever possible. A programmer is already busy thinking about the actual problem they want to solve; it’s no surprise that they’ll sometimes forget some tedious detail the language forces them to worry about.
(с) https://eev.ee/blog/2016/12/01/lets-stop-copying-c/
eev.ee
Let’s stop copying C
Ah, C. The best lingua franca we have… because we have no other lingua francas. Linguae franca. Surgeons general? C is fairly old — 44 years, now! — and comes from a time when there were possibly more architectures than programming languages. It works well…
In essence, I would rather be remembered as a bad artist than a good programmer.
(с) The end of the Redis adventure, http://antirez.com/news/133
(с) The end of the Redis adventure, http://antirez.com/news/133
As I looked for images for the book covers, I came across some odd-looking animal engravings from the 19th century. They seemed to be a good match for all those strange-sounding UNIX terms, and were esoteric enough that I figured they’d probably appeal to programmers.
(c) https://www.oreilly.com/content/a-short-history-of-the-oreilly-animals/
(c) https://www.oreilly.com/content/a-short-history-of-the-oreilly-animals/
O’Reilly Media
A short history of the O'Reilly animals
How lions, tigers, and tarsiers went geek.
What the heck is this code? What are these method names?
If this is the quality of code which this programmer produces — at his own leisure, under ideal circumstances, with none of the pressures of real production software development, as a teaching example — then why should you pay any attention at all to the rest of his book? Or to his other books?
(c) https://qntm.org/clean
set2AsFirstPrime? smallestOddNthMultipleNotLessThanCandidate? Is this meant to be clean code? Is this meant to be a legible, intelligent way to search for prime numbers?If this is the quality of code which this programmer produces — at his own leisure, under ideal circumstances, with none of the pressures of real production software development, as a teaching example — then why should you pay any attention at all to the rest of his book? Or to his other books?
(c) https://qntm.org/clean
qntm.org
It's probably time to stop recommending Clean Code
It may not be possible for us to ever reach empirical definitions of "good code" or "clean code", which means that any one person's opinions about another person's opinions about "clean code" are necessarily highly subjective. I cannot review Robert C. Martin's…