Programming sucks – Telegram
Programming sucks
81 subscribers
12 photos
188 links
Когда вы меняете направление всех стрелок в конусе, вы получаете коконус.
Download Telegram
I don’t know why everyone wants to be a programmer, and everyone thinks that anyone can learn programming, just like everyone can learn proper grammar. It’s more like art - if you’re not artistic, you’ll never learn” to be artistic, you’ll keep squeaking through art classes without learning much. The same goes for programming - if you’re not analytical*, you’ll never learn to be analytical, so you’ll always be a programmer looking for someone to show you how to solve the problem you’re working on.

*Survival is mainly “fight or flee”. If a lion came at you, 50,000 years ago, you didn’t analyze things, you just hoped that he’d run out of strength before he caught you. Analyzing him for a few minutes didn’t get those “analysis genes” passed on, they became lion food. Humans are pattern-seeking animals. We’re also non-analytical animals. Programming is analytical, so not many of us can actually do it.

(c) https://www.quora.com/As-a-software-developer-who-is-not-good-at-programming-how-do-I-hide-myself-in-a-tech-company-and-not-get-caught-out
The entire idea of slowly working your way up has gone out the window. In fact slowly working your way up is for the skilled or educated who are allowed to do architecture… The unskilled are the ones likely to be slapped with a measurement get 2 points this sprint or you are gone.
(c) https://www.quora.com/Why-are-senior-software-engineering-interviews-so-tough-these-days
There were people who felt that the advent of faster and bigger machines would replace the pinching shoe at most by a fitting shoe, and that, therefore, the economics of program execution would remain a serious concern of the programmer, a concern that would even become more important as size of machines and applications would grow, and, with more complex installations, would pose more difficult problems. Also it was observed that switching from machine code to a high-level programming language did not guarantee all the benefits that were hoped for. In particular, programmers still produced, as willingly as before, large chunks of ununderstandable code, the only difference being that now they did it on a more grandiose scale, and that high-level bugs had replaced low-level ones. They also realized that the advent of high-level programming languages had not reduced the essential need for accuracy: redundancy in high-level programming languages only reduces the ill effects of some inaccuracies.
(c) Edsger W. Dijkstra (https://www.cs.utexas.edu/~EWD/trannoscriptions/EWD05xx/EWD540.html)
Lightweight? Lightweight? What crack are you on?
Sometimes you wonder how anyone could describe this complicated mess as lightweight. The lightweight is in reference to the previous leading standard for directory services, called X.500. The problem with X.500 was that it required the use of the OSI network stack and couldn’t use TCP/IP. It was also rather more complicated. LDAP only uses 9 of the operations that X.500 supported, and can use the simpler TCP/IP networking stack.
(c) https://www.davidpashley.com/articles/ldap-basics/
У Microsoft аналогичная проблема с операционными системами: они годами выпускали лажу, делая ее совместимой с прежней лажей, основанной на всей лаже, созданной раньше.

(c) Крокфорд, Coders at work
Like all of the WHATWG specs, it initially looks like the aftermath of a cluster bomb in a scrabble factory, but once you’ve read it for the 5th time and wiped the blood from your eyes, it’s actually pretty interesting
(c) https://www.html5rocks.com/en/tutorials/speed/noscript-loading/
Like a cluster-bomb in a sheep factory, “defer” became a wooly mess. Between “src” and “defer” attributes, and noscript tags vs dynamically added noscripts, we have 6 patterns of adding a noscript. Of course, the browsers didn’t agree on the order they should execute.
(c) https://www.html5rocks.com/en/tutorials/speed/noscript-loading/
Forwarded from Alexander Granin
В последние пару недель в С++ сообществе разгорелся большой срач по поводу новых фич в C++20. Гемйдев-разработчики стриггерились на пример от Eric Niebler, где он с использованием своей ФП-библиотеки ranges решил задачу "вывести все пифагоровы тройки". Код содержит десять строк с вложенными лямбдами и неявными циклами, и многие олдскульные разработчики находят его нечитаемым и непонятным. В сети одна за одной появились разгромные статьи от ведущих геймдевелоперов про неверное направление развития С++. В Твиттере развернулись баталии с явным и неприкрытым хейтом в сторону "modern C++" и в сторону Эрика Ниблера в частности.
Forwarded from Alexander Granin
Код, на который стриггерились геймдевелоперы:
using view::iota;
auto triples =
for_each(iota(1), [](int z) {
return for_each(iota(1, z+1), [=](int x) {
return for_each(iota(x, z+1), [=](int y) {
return yield_if(x*x + y*y == z*z,
make_tuple(x, y, z));
});
});
});
I can confirm: when I was 13 years old, an older boy invited me over to his house and on his computer he showed me things in Haskell that my young mind was not ready for: foldable semigroup isomorphisms, lenses, comonads and homeomorphic endofunctors. For years afterwards, I've felt dirty and ashamed of my functional programming experience.
(c)https://www.reddit.com/r/programmingcirclejerk/comments/adidn7/haskell_is_very_damaging_to_inexperienced_and/
Generally, programmers aren’t thrilled about the iterative method because it means extra work for them. Typically, it’s managers new to technology who like the iterative process because it relieves them of having to perform rigorous planning, thinking, and product due diligence (in other words, interaction design). Of course, it’s the users who pay the dearest price. They have to suffer through one halfhearted attempt after another before they get a program that isn’t too painful.

(c) The Inmates Are Running the Asylum, Alan Cooper
Software that does more instead of less is, simply put, badly designed software. Trying to come up with an all-encompassing solution is always a sign of developer hubris and inexperience, and never a sign of good engineering. Ever.

(с) https://skarnet.org/software/s6/systemd.html
if you really learn Sublime Text, you will become super productive. If you really learn Emacs, you will become super productive. If you really learn Visual Studio… you get the idea.

Here’s the thing though, you never actually need to really learn your text editor… Unless you use vim.

(c) https://www.quora.com/Why-is-Vim-the-programmers-favorite-editor
Not everyone is made to do this. Sure, in theory anyone can “code” in that they can type syntax into an editor. But the fact is not everyone is cut out for coding. That doesn’t mean anything other than there are probably a million other things you are good at.

I can code, but why is playing music hard for me? I can push a key on a piano. I can strum a string, I can hit a drum. But when I do it doesn’t sound like music, it sounds like noise.

(с) Quora
The most important single aspect of software development is to be clear about what you are trying to build.

(с) http://www.stroustrup.com/bs_faq.html#really-say-that
There are only two kinds of languages: the ones people complain about and the ones nobody uses

(с) http://www.stroustrup.com/bs_faq.html#really-say-that
We put virtual machines inside Linux, and then we put Docker inside virtual machines, simply because nobody was able to clean up the mess that most programs, languages and their environment produce. We cover shit with blankets just not to deal with it. “Single binary” is still a HUGE selling point for Go, for example. No mess == success.

(с) http://tonsky.me/blog/disenchantment/