← All posts tagged quote


UPDATE: This post attracted two kinds of pro-Rust response. One was stupid flamage from zealots. The other was thoughtful commentary from a few people close to the core of the Rust community. The latter group has convinced me that there is considerable awareness of the problems I ran into; a couple even agreed, after analysis, that Rust is at present a poor fit for NTPsec’s requirements. This gives me hope that the Rust of five years from now may become the mature and effective replacement for C that it is not yet.
я обожаю людей. все кто со мной согласны те мудрые и пишут логичные вещи, и пришли к тем же выводам, а те, кто не согласны тролли тупые.. И отменное выборочное чтение. Блин, я думал такие только тролли в жуйкопоинтах бывают


— Никак не могу взять в толк, почему тебе так хочется покинуть эту замечательную и прекрасную страну и вернуться в унылое, засушливое место, которое ты называешь Канзасом.
— Ты не можешь понять, потому что у тебя нет мозгов,- ответила девочка.
— Мы, люди из плоти и крови, любим жить у себя на родине, даже если есть страны и покрасивее. Нет места лучше, чем родной дом.
Страшила только вздохнул:
— Конечно, где уж мне вас понять. Если бы ваши головы, как моя, были набиты соломой, вы бы все отправились жить в прекрасные страны, а ваш Канзас совсем опустел бы. Канзасу сильно повезло, что в нем живут люди с настоящими мозгами!

//Л.Ф. Баум, удивительный волшебник из страны Оз


Over the last few years, a surprising solution has emerged: the monad. I say “surprising” because anything with as exotic a name as “monad”— derived from category theory, one of the most abstract branches of mathematics—is unlikely to be very useful to red-blooded programmers. But one of the joys of functional programming is the way in which apparently-exotic theory can have a direct and practical application, and the monadic story is a good example. Using monads we have found how to structure programs that perform input/output so that we can, in effect, do imperative programming where that is what we want, and only where we want. Indeed, the IO monad is the unifying theme of these notes.
статьи SPJ прекрасны. (Тут надо в пачке старых статьей порыться было)


Да вчера на поинте вылезла дискуссия, после которой я порылся в email и вытащил немного цитаток, надеюсь автор не обидится, что они в public

The main points of advertising "type-directed programming" and giving
it this label are:

* Educate programmers to think about the types before they start hacking.

* Try to make programmers see types as a feature that guides and
helps them to find the right solution to a programming problem, rather
than as a negative feature that involves fighting the compiler until
it finally accepts the program.


it is often the case that a project lives or dies according to how extendible it is. A monolithic piece of software that is not extensible has to do everything and do it right, whereas an extensible piece of software can be a useful base even if it doesn't provide all the required functionality out of the box.

//AOSA v.2 the Glasgow Haskell compiler


Вот такой милый кусок документации

— | This \"function\" has a superficial similarity to 'unsafePerformIO' but
— it is in fact a malevolent agent of chaos. It unpicks the seams of reality
— (and the 'IO' monad) so that the normal rules no longer apply. It lulls you
— into thinking it is reasonable, but when you are not looking it stabs you
— in the back and aliases all of your mutable buffers. The carcass of many a
— seasoned Haskell programmer lie strewn at its feet

— Witness the trail of destruction:
... ссылки на багрепорты

— Yield not to its blasphemous call! Flee traveller! Flee or you will be
— corrupted and devoured!