Programming sucks – Telegram
Programming sucks
81 subscribers
12 photos
188 links
Когда вы меняете направление всех стрелок в конусе, вы получаете коконус.
Download Telegram
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/
To use functions as arguments, one needs a notation for functions, and it seemed natural to use the 𝜆-notation of Church.
I didn’t understand the rest of his book, so I wasn’t tempted to try to implement his more general mechanism for defining functions.

(c) History of LISP, McCarthy, 1978,
In 1983 or 1984, when Alonzo Church was about 80 years old, he was invited to speak at the Center for the Study of Language and Information at Stanford University, and was taken on a little tour featuring CSLI's Xerox Dandelion computers. These computers were running LISP, a programming language developed by John McCarthy (b. 1927). Church was told how LISP was based on the lambda calculus that Church had invented some 50 years earlier.

Church confessed that he didn't know anything about computers, but that he once had a student who did. By that time, of course, everyone knew who Alan Turing was

http://index-of.co.uk/Theory-of-Computation/Charles_Petzold-Annotated_Turing-Wiley(2008).pdf
I worked at Boeing for about 1.5 years in the 2008-9 time period and I can absolutely guarantee this happened.

First, Boeing's corporate culture is the worst shitshow I have ever experienced. All large corporations have a lot of internal issues and problems but nothing like the Lazy B. It was like working in a company designed by Kafka. I signed up at Boeing as a programmer. When I showed up at my first day of work, the first words out of my supervisor's mouth were, "I don't know why you are here, we have no need for programmers." (The Boeing interview process is done so that at no point, do you ever have contact or communication with the team you will be working with.)

So, basically, I was cutting and pasting cells in Excel spreadsheets and doing ad hoc project management during my time there. They did have need for a programmer, but I didn't have access to install any programming software on my machine because no one knew who the local IT person was. No one. It was a year before I was able to figure that out and only because I was bored one day and was walking around the building and found the guy's cubicle by accident.
От друзей я слышал, что в математике попадаются объекты, отличные от полугрупп.

(с) Эйнар Хилле
Forwarded from PONV Daily (λoλcat)
FP in general and Tagless Final in particular are about security.
Code security and job security, both achieved via code obfuscation.


Слайды доклада Войтека Питулы с недавней конференции LX Scala & Reactive:
http://w.pitula.me/presentations/2019-07-lxscala

#taglessfinal #slides
Longtime Boeing engineers say the effort was complicated by a push to outsource work to lower-paid contractors.
...
Increasingly, the iconic American planemaker and its subcontractors have relied on temporary workers making as little as $9 an hour to develop and test software, often from countries lacking a deep background in aerospace -- notably India.
...
Boeing has also expanded a design center in Moscow. At a meeting with a chief 787 engineer in 2008, one staffer complained about sending drawings back to a team in Russia 18 times before they understood that the smoke detectors needed to be connected to the electrical system.

(c) https://www.bloomberg.com/news/articles/2019-06-28/boeing-s-737-max-software-outsourced-to-9-an-hour-engineers
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.

(c) Sir Charles Antony Richard Hoare
Слишком много людей пишут на С, хотя им не следовало этого делать. Нужно сертифицировать программистов для использования С. Почему ПО такое плохое? Все эти хаки, наводнившие мир, все эти проблемы с безопасностью. Причина как минимум половины из них заключается в С. На этом языке в буквальном смысле трудно программировать.

(с) Roberto Ierusalimschy, https://habr.com/ru/company/mailru/blog/459464/
Забавно, что в С нет индексации. Вы не можете сказать, что С индексирует массивы с нуля, потому что операции индексирования там не существует. В этом языке есть арифметические операции с указателями, так что ноль в С — это не индекс, а смещение (offset). А раз это смещение, оно должно быть нулевым не потому, что так проще вычислять, а потому, что это естественно.

И все языки, скопировавшие С, имеют индексы и не имеют арифметических операций с указателями. Java, JavaScript и многие другие — ни в одном нет таких операций. Их авторы просто скопировали 0, но это совершенно другое. Этот ноль они вставили безо всякой причины, прямо «культ карго».

(с) Roberto Ierusalimschy
Forwarded from erol matei
ooo
I wrote a simple package manager. Anyone could write one. And in fact mine is pretty bad. It doesn't do dependency management properly. It doesn’t handle edge case behavior well. It isn’t well tested. It’s shit frankly.

Is it any surprise I couldn’t answer their heavily computer-science questions well?

On the other hand, my software was insanely successful. Why is that? Well the answer is not in the realm of computer science. Homebrew cares about the user.

...

I feel bad about my tweet, I don’t feel it was fair, and it fed the current era of outragism-driven-reading that is the modern Internet, and thus went viral, and for that I am truly sorry.

(c) Max Howell, https://www.quora.com/Whats-the-logic-behind-Google-rejecting-Max-Howell-the-author-of-Homebrew-for-not-being-able-to-invert-a-binary-tree
A proof assistant is what happens if you spend all your time developing a type checker for your language and forget that programs also need to be run.

(с) https://serokell.io/blog/why-dependent-haskell