Информация об изменениях

Сообщение Re: Мнение: объектно-ориентированное программирование — ката от 12.09.2019 15:30

Изменено 12.09.2019 15:36 Hardballer

Re: Мнение: объектно-ориентированное программирование — ката
Здравствуйте, кт, Вы писали:

кт>Перевод статьи «Object-Oriented Programming — The Trillion Dollar Disaster»

кт>Рассказывает Илья Суздальницкий, senior full-stack-разработчик

Надоели фанатики. Инструмент надо брать под задачу, а не молотком сверлить стены.
У меня проект(HFT OrderBook с кучей разнообразной обвязки), где используется смесь C#/F#.
В процессе, где горячий код и воюем за латентность и скорость, боимся вытеснения потоков(типа 99% всех ордеров должны быть исполнены за 1мс при обработке 2М в секунду на реальном сетевом стеке, да еще все это уложить на SSD), императивщина с хардкором(запрет GC, ручный пулинг памяти с ранней аллокацией, адресная арифметика и вот это все).
Там где код не горячий, на латентность большей частью положить, на вытеснение плевать (типа за 1 секунду отработали при 10000 запросах в секунду, ну и зашибись)-ляпота на F#.
Писать все на F#-выйдет медленное, но красивое функциональное говно.
Писать все на C#-выйдет быстрое, но "некрасивое"(с точки зрения автора топика :D ) говно.
А вот микс F#/C#-очень даже. Тоже местами говно, но остальное все хуже
Re: Мнение: объектно-ориентированное программирование — ката
Здравствуйте, кт, Вы писали:

кт>Перевод статьи «Object-Oriented Programming — The Trillion Dollar Disaster»

кт>Рассказывает Илья Суздальницкий, senior full-stack-разработчик

Надоели фанатики. Инструмент надо брать под задачу, а не молотком сверлить стены.
У меня проект(HFT OrderBook с кучей разнообразной обвязки), где используется смесь C#/F#.
В процессе, где горячий код и воюем за латентность и скорость, боимся вытеснения потоков(типа 99% всех ордеров должны быть исполнены за 1мс при обработке 2М в секунду на реальном сетевом стеке, да еще все это уложить на SSD), императивщина с хардкором(запрет GC, ручный пулинг памяти с ранней аллокацией, адресная арифметика и вот это все).
Там где код не горячий, на латентность большей частью положить, на вытеснение плевать (типа за 1 секунду отработали при 10000 запросах в секунду, ну и зашибись)-ляпота на F#.
Писать все на F#-выйдет медленное, но красивое функциональное говно.
Писать все на C#-выйдет быстрое, но "некрасивое"(с точки зрения автора топика :D ) говно.
А вот микс F#/C#-очень даже. Тоже местами говно, но остальное все хуже

P.S. На С++ горячий код еще "веселее", с 2004 по 2009 код был на плюсах, параллельно часть подсистем была на C#. В итоге остался C#, потом с 2011 года начал потихоньку инжектироваться F#.