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
(с) 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
(с) 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/
(с) http://tonsky.me/blog/disenchantment/
tonsky.me
Software disenchantment
Everything is going to hell and nobody seems to care
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,
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
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
Forwarded from Dolboeb-driven Development
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.
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
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
...
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
(c) Sir Charles Antony Richard Hoare
Слишком много людей пишут на С, хотя им не следовало этого делать. Нужно сертифицировать программистов для использования С. Почему ПО такое плохое? Все эти хаки, наводнившие мир, все эти проблемы с безопасностью. Причина как минимум половины из них заключается в С. На этом языке в буквальном смысле трудно программировать.
(с) Roberto Ierusalimschy, https://habr.com/ru/company/mailru/blog/459464/
(с) Roberto Ierusalimschy, https://habr.com/ru/company/mailru/blog/459464/
Хабр
Lua in Moscow 2019: интервью с Роберто Иерусалимским
Некоторое время назад наш московский офис посетил Роберто Иерусалимский, автор языка Lua. Мы взяли у него интервью, в ходе которого задали и вопросы от читател...
Забавно, что в С нет индексации. Вы не можете сказать, что С индексирует массивы с нуля, потому что операции индексирования там не существует. В этом языке есть арифметические операции с указателями, так что ноль в С — это не индекс, а смещение (offset). А раз это смещение, оно должно быть нулевым не потому, что так проще вычислять, а потому, что это естественно.
И все языки, скопировавшие С, имеют индексы и не имеют арифметических операций с указателями. Java, JavaScript и многие другие — ни в одном нет таких операций. Их авторы просто скопировали 0, но это совершенно другое. Этот ноль они вставили безо всякой причины, прямо «культ карго».
(с) Roberto Ierusalimschy
И все языки, скопировавшие С, имеют индексы и не имеют арифметических операций с указателями. Java, JavaScript и многие другие — ни в одном нет таких операций. Их авторы просто скопировали 0, но это совершенно другое. Этот ноль они вставили безо всякой причины, прямо «культ карго».
(с) Roberto Ierusalimschy
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
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
Quora
What's the logic behind Google rejecting Max Howell, the author of Homebrew, for not being able to invert a binary tree?
Answer (1 of 20): Hi, I’m Max Howell, so maybe I shouldn’t answer this.
Hi, I’m Max Howell, I’ve spent the last two years not answering this, and many questions like it. Maybe I shouldn’t answer this.
So, what's the logic? Clearly I wrote something worthy…
Hi, I’m Max Howell, I’ve spent the last two years not answering this, and many questions like it. Maybe I shouldn’t answer this.
So, what's the logic? Clearly I wrote something worthy…
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
(с) https://serokell.io/blog/why-dependent-haskell
Why Dependent Haskell is the Future of Software Development
Are dependent types the future of software development? Read more about our work on Dependent Haskell in this blog post.
“Create stack project config from cabal or hpack package specifications”?
I have no idea what this means. I came to Stack to avoid Cabal. Every interaction I've had with Cabal has been a combination of mystifying and frustrating. I don't ever want to hear the word "Cabal" again if I can avoid it. Don't make me understand the crappy tool you replace in order to use your new, better one!
Besides which, this explains nothing. What is a Stack project config? What is a Cabal/hpack specification? When and why would I want to turn one into the other, and how does stack go about doing it? If you claim to be friendly to new users, you must answer these questions.
(c) http://www.rntz.net/post/2018-05-18-why-i-am-not-a-fan-of-stack.html
I have no idea what this means. I came to Stack to avoid Cabal. Every interaction I've had with Cabal has been a combination of mystifying and frustrating. I don't ever want to hear the word "Cabal" again if I can avoid it. Don't make me understand the crappy tool you replace in order to use your new, better one!
Besides which, this explains nothing. What is a Stack project config? What is a Cabal/hpack specification? When and why would I want to turn one into the other, and how does stack go about doing it? If you claim to be friendly to new users, you must answer these questions.
(c) http://www.rntz.net/post/2018-05-18-why-i-am-not-a-fan-of-stack.html
www.rntz.net
Why I am not a fan of Cabal or Stack
It's 2018. We still have
(c) http://www.rntz.net/post/2018-05-18-why-i-am-not-a-fan-of-stack.html
cabal install but no cabal uninstall. This is not okay; it has never been okay; it will never be okay; no reasonable person would be okay with this; in no universe is this okay.(c) http://www.rntz.net/post/2018-05-18-why-i-am-not-a-fan-of-stack.html
www.rntz.net
Why I am not a fan of Cabal or Stack
Forwarded from HN Best Comments
Re: Tired of Stack Overflow
Children, SO is a blessing for humanity.
Their creators should be canonized. You don't remember the pre SO times. You couldn't find anything to fix your problems and must read the source code or pay zillions for some sh*tty support. In the pre-internet times, you just would hit a wall and have to quit. I really love Jeff and Joel.
neves, 4 hours ago
Children, SO is a blessing for humanity.
Their creators should be canonized. You don't remember the pre SO times. You couldn't find anything to fix your problems and must read the source code or pay zillions for some sh*tty support. In the pre-internet times, you just would hit a wall and have to quit. I really love Jeff and Joel.
neves, 4 hours ago
...it is not exactly the same as Alan Kay’s original definition of OOP, but it is far from the horrible incidents that permeate our field such as UML, abstract factory factories and broken subtyping.
(c) https://jaspervdj.be/posts/2018-03-08-handle-pattern.html
(c) https://jaspervdj.be/posts/2018-03-08-handle-pattern.html
jaspervdj.be
jaspervdj - Haskell Design Patterns: The Handle Pattern
A neat and simple way to build services in Haskell
...the database is never well-integrated into source Haskell. Our options are to let the database schema generate our types via Template Haskell, or to let our types generate the schema via Generics. It is too tedious to produce meaningful types for every query in our application, so we tie our Haskell representations directly to our database representations. But databases have laughably simple type systems in comparison, and so we’ve tied our own hands!
As bad as all of this is, it’s not the whole story of how databases break our compositionality. Because queries are ubiquitous and complex, the most reasonable place to put them is inline at the place we need their data. This is an understandable decision, but means that our business logic is now fundamentally tied to our choice of database technology.
(c) Sandy Maguire, https://www.patreon.com/designandinterpretation
As bad as all of this is, it’s not the whole story of how databases break our compositionality. Because queries are ubiquitous and complex, the most reasonable place to put them is inline at the place we need their data. This is an understandable decision, but means that our business logic is now fundamentally tied to our choice of database technology.
(c) Sandy Maguire, https://www.patreon.com/designandinterpretation
No wonder Haskell hasn’t taken over the world; as a community we need to stop writing C code that we can compile via GHC.
(c) Sandy Maguire
(c) Sandy Maguire