Мантра любви
https://www.youtube.com/watch?v=u9jlEvPi06k
Ом шанти, шанти ом!
Из уважения к моим братьям.
Пользователь пока ничего не рассказал о себе.
рейтинг
85
постов
18
комменты
1 305
подписчиков
14
подписок
12
рейтинг
85
постов
18
комменты
1 305
подписчиков
14
подписок
12
https://www.youtube.com/watch?v=u9jlEvPi06k
Ом шанти, шанти ом!
Из уважения к моим братьям.
По ссылке -
http://kvant.mccme.ru/index.htm
Интересно будет полистать.
Немного предыстории. Go был рожден из-за неудовлетворенности от существующих языков и сред системного программирования. Программирование стало слишком сложным, и нынешние языки в этом частично виноваты. Приходится выбирать между эффективной компиляцией, эффективным выполнением и легкостью программирования — все три качества недоступны в одном и том же мэйнстримовом языке. Программисты выбирали легкость программирования вместо безопасности и эффективности, переходя на динамически типизированные языки, такие как Python и JavaScript, вместо C++ или, в меньшей степени, Java. Go — попытка соединить легкость программирования на интерпретируемом, динамически типизированном языке с эффективностью и безопасностью статически типизированного, компилируемого языка. Он так же стремится быть современны…
На самом деле, о этом языке можно говорить очень много, но я приведу ряд ключевых особенностей, которые делают этот язык уникальным.Прежде всего это легковесные процессы Erlang, отличающиеся от системных процессов. Программы на Erlang состоят из независимых легковесных процессов, которые могут выполняться параллельно. Вообще, в парадигме Erlang, всё является процессом. Также при этом эти процессы являются зелёными. (Примечание: поток и процесс в Erlang-е являются синонимами).В отличие от потоков исполнения в операционных системах и других ЯП, между процессами Erlang нет общей памяти, именно поэтому потоки и называются процессами.Процессы между собой общаются при помощи асинхронного обмена сообщений, аналогично mailbox в F# или async-await C#, в Erlang для "почтового ящика" отводится часть…
Поговорим немного о TPL Dataflow. Эта библиотека, позволяющая повысить производительность и устойчивость параллельных приложений. Для .Net Framework 4.0 и 4.5 библиотека поставляется посредством NuGet. Подход, используемый в TPL Dataflow, состоит в следующем: Строится вычислительный конвейер, состоящий из множества вычислительных блоков, работающих параллельно и независимо друг от друга, и обменивающихся информацией посредством асинхронных сообщений. В TPL Dataflow используется парадигма программирования потоков данных: Вики В TPL DataFlow существуют 3 основных вида блоков: Блоки источники - источники данных, из которых можно читать. Блоки приёмкники - приёмники данных, в которых можно писать. Блоки распространители - являются одновременно и источниками и приёмниками данных. Блоки можно с…
Все, кто программирует на C#, так или иначе использовали оператор foreach. Этот оператор используется как правило для итерации коллекции и применяет вложенные операторы к каждому элементу коллекции. Добавлять или удалять элементы коллекции при этом не рекомендуется, так как возможны побочные эффекты. Но, что, если нам необходимы длительные вычисления над элементами последовательности и полученные результаты не зависят друг от друга? В .NET Framework 4 появились интересные возможности параллельности: Parallel.ForEach и Parallel LINQ (PLINQ). * В этой статье я не рассматриваю такие вещие как async-await и другие вещи, касающиеся .NET Framework 4.5. Простейший форма метода ForEach выгляди следующим образом: public static ParallelLoopResult ForEach<TSource>(IEnumerable<TSource> so…
F# — это мультипарадигменный язык программирования, разработанный в подразделении Microsoft Research и предназначенный для исполнения на платформе Microsoft .NET. Он сочетает в себе выразительность функциональных языков, таких как OCaml и Haskell с возможностями и объектной моделью .NET. Год назад F# в рейтинге Tiobe занимал 69 строчку в рейтинге популярности, сейчас же - 19 место. По прогнозам Tiobe, F# будет уверенно входить в 10 самых популярных языков в мире. Забрать F# можно отсюда для Windows, отсюда для Linux, отсюда для Android и отсюда для Mac. Все функциональные возможности F# реализованы в конечном итоге поверх общей системы типов .NET Framework. Однако этот факт не обеспечивает удобства использования таких конструкций из других языков платформы. При разработке собственных библ…
Вчера сходил на IT Crowd. Открытая конференция разработчиков. Было много интересного. Но вот, что удивило. Подавляющее большинство присутствующих разработчиков вообще не знает и даже не подозревает о функциональном программировании и даже, что оно так называется. Поэтому решил выложить честно стыренную страничку с хабра и даже прояснить некоторые моменты, которые нам демонстрировал Данияр. Мне бы хотелось добавить больше научности и больше конкретики:) Геттеры и сеттеры - для чего нужны и как на самом деле они называются? В функциональном программировании широко используются неизменяемые структуры данных. Работа с ними значительно отличается по сравнению с изменяемыми данными. В основе этого лежит тот факт, что при изменении какой-либо части неизменяемой структуры данных создается ее копи…
Небольшой обзор. Недавно мне потребовался стабильный и надёжный сервис для массовой рассылки sms-сообщений. Для этого, мне необходимо было провести анализ существующих операторов на рынке (буквально 2 страницы поиска в гугле). Задача была поставлена так: Необходимо найти самый дешёвый и легко интегрируемый отечественный сервис. Под "легко интегрируемый" я подразумеваю, что компания, предоставляющая данный вид сервиса, предоставляет потенциальным пользователям примеры исходных кодов с подробными комментариями, а не выкидывает сервис без соответствующей документации - для программиста нет ничего хуже, чем разбирательства с чёрными ящиками. Так что наличие примеров и исходников на различных языках программирования непосредственно на сайте будет идти большим плюсом. Также наличие небольшого б…
Как известно, инверсия управления, это важный принцип SOLID, позволяющий писать слабо связанный код, повышая в разы гибкость кода. Существует множество IoC-контейнеров (NInject, Unity, AutoFac и другие). Для начинающих есть хорошая статья здесь. Я же, в своих проектах использую TinyIoC - небольшие размеры, и то, что его использует проект NancyFx (Уроки по фреймворку nancy, и объяснение, что это, можно найти тут). Первая задача - нам нужно объявить контейнер и что-то в него положить. Проект у меня простой и демонстрационный, поэтому статического контейнера мне вполне хватает. public static class AppContainer { private static TinyIoCContainer _instance; public static TinyIoCContainer Instance { get { return _instance ?? RegisterInstance(); } } private static TinyIoCContainer RegisterInstanc…