Pull to refresh
251
Karma
0
Rating
Костюков Владимир @spiff

Пользователь

  • Followers 146
  • Following 25

Как выбрать язык программирования?

Я бы сказал 5-7% по последним данным:

— Очень много опитизаций было сделано Тревисом в Circe
— В Finch как минимум две вещи помогли сократить разрыв: TooFastString и быстрые ридеры

Но, на удивление, этот тест не использует ни того ни другого. В любом случае оч крутой результат!

Как я нашел лучший в мире язык программирования. Часть 2

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

Вам 70ые звонили, просили книгу K&R вернуть.

Как я нашел лучший в мире язык программирования. Часть 2

Кстати. Вот пример того как на Shapeless решена задача о башнях Ханое. Что такого? — Скажете вы. А вот что — задача решается пока программа компилируется. Те. Scala компилятор решает ее за вас до того как вы запускаете эту программу!

Как я нашел лучший в мире язык программирования. Часть 2

Отличный ответ!

Добавлю свои пять копеек. Shapeless — это скорее библиотека не для конечного пользователя а для разработчиков библиотек. Shapeless помогает атворам библиотек избавиться от boilerplate кода и макросов при решении типичных задач. Задач №1, с которой успешно справляется HList: у вас есть два типа A и B как их собрать в месте во что-то с чем вы можете потом работать. Можно собрать из них Scala tuple (A, B) и этого бывает достаточно в большинстве случаев, но когда речь идет о трех, четырех, и тд типов — появляются nested tuples (A, (B, (C, D))) с которыми уже не очень удобно работать как автору библиотек так и ее пользователю. Эта проблема частично решается с помощью некоторго количества boilerplate кода который нужно поддерживать и тестировать. Идея Shapeless (HList в честности) — это как раз дать разработчикам библиотек единый инструмент для решения этой проблемы. Т.е. boilerplate код о которым мы говорили ранее — переносится в Shapeless а значит нам его уже поддерживать не надо.

Еще одна очень интересная особенность Shapeless. При правильном ее использовании автором библиотеки, ее пользователи никогда не догадаются что там где-то в недрах привычного API трудится HList. Примерами таких удачных внедрений я могу назвать scodec, Spray, parboiled2.

На последок, есть отличная презентация от Трэвиса Брауна (#1 Shapeless эксперт на SO) о том как и почему Shapeless был внедрен в Finch.

Программа курса и материалы по Scala

Можно добавить в список ScalaCheck.

Чисто-функциональный REST API на Finagle/Finch

В основном, пользователи Finch это бывшие пользователи Finatra. Люди жалуются на то, что Finatra почти полностью скрывает Finagle API (даже фильтры), тем самым теряя очень много функционала. Finch — ничего не скрывает а лишь добавляет несколько абстракций поверх finagle-http. И благодаря тому, что слой получается очень тонкий и неизменяемый — производительность Finch очень хороша:

Отзыв одного из инженеров Globo.com:
And speaking of where we are using Finch, we are currently rebuilding our users platform on top of Finagle and Finch. We started with Finatra, but after doing several benchmarks, we decided to stop using it, and moved to Finagle, until I found Finch, which is quite straightforward. It responds 16X faster than Finatra on a simple /healthcheck endpoint, responding “OK”. Crazy isn’t it?

Чисто-функциональный REST API на Finagle/Finch

Еще проще: пост в хабе Scala :)

Code.Re — минималистичный сервис для размещения сниппетов

Мой скромный совет по именованию методов:
GET http://api.code.re/snippets/{id} — получить сниппет
PUT http://api.code.re/snippets/{id} — обновить сниппет
DELETE http://api.code.re/snippets/{id} — удалить сниппет
GET http://api.code.re/snippets — все сниппеты
GET http://api.code.re/highlights — все схемы подсветки (или schemas)

Как я проект с JavaScript на Scala переписывал

Господа, но колбэки не компонуются! Это гребаный приговор.


Браво!

Что хабровчане носят с собой, или хвастаемся EDC (+ обзор рюкзака Thule TCBP-217)

А как в этом рюкзаке с отделом под 17 дюймовый ноутбук чувствует себя MB Pro 13''?

Новое в Java 8

Я даже боюсь представить (в хорошем смысле) что будет со Scala к тому времени как выйдет Java 15.

Лямбда-выражения в Java 8 — Простые примеры того, как они могут облегчить вашу жизнь

Как написал Erik Meijer у себя в твиттере:

Congrats to all my friends at #oracle. Functional programming is now officially mainstream,and my mission complete.


Релиз KPHP и движков

По поводу «парсинга PHP кода» и генерации C++ кода. Не забывайте, что С++ язык со статической типизацией а PHP — нет. И трансляция динамического языка в статический вообще говоря проблема неразрешимая в общем смысле. Приходится применять кучу эвристик чтобы сократить количество типов void* в генерируемом коде. И Facebook и MathWorks делали нечто подобное и насколько мне известно, поле это почти не паханное — серебряной пули нет.

Так вот. Теперь представьте ОПП во всей его красе (sub-type полиморфизм как минимум) и все становится еще печальнее.

Релиз KPHP и движков

О. Тогда прошу прощения :) Деревня я — не слышал про Твитч, думал вы так Твиттер искаверкали.

Релиз KPHP и движков

Твиттер работает на Scala стеке.

Scala Moscow User Group, встреча 14 марта 2014

Забавно обыгран логотип!

У нас в Новосибирске тоже есть Scala тусовка: www.meetup.com/ScalaNsk/. Успели провести 5 встреч: 40-50 человек участников в среднем.

Чему нужно учить в магистратуре по Computer Science?

C++, как и любой другой язык программирования не более чем инструмент. Я не говорю, что его вообще не надо изучать. Изучение конкретных инструментов должно протекать в контексте решения конкретных задач. Например: учим ИИ, пишет лабораторные на С++ (или любом другом языке). Для этого хватит и базового владения языком. Остальное (как и другие инструменты) можно изучить уже в рабочей среде и по мере необходимости. Кажется это называется «опыт».

Чему нужно учить в магистратуре по Computer Science?

Если фундаментальное образование будет включать годовой курс по С++ то это, простите, финиш.

Information

Rating
Does not participate
Location
San Francisco, California, США
Works in
Date of birth
Registered
Activity