Support us

Неделя за 10 ссылок: про эльфийские языки программирования

Оставить комментарий
Неделя за 10 ссылок: про эльфийские языки программирования

В еженедельном обзоре — новое интервью Юрия Зиссера о возможностях ИТ-индустрии, размышления об эльфийских и мейнстримовых языках программирования, методика изучения английского для айтишников, а также материалы по веб-безопасности, природе багов и устройству веб-сервера NGinx.

Читать далее

1. Интервью с Зиссером

Моя человеческая слабость невольно заставляет отслеживать судьбу Юрия Зиссера, над которым висит дамоклов меч нормализации. И вот из последнего, из наболевшего: что может, а чего не может отечественное ИТ:

Вспомним хотя бы недавнюю историю с предупреждением Минюста компании «ТУТ БАЙ МЕДИА» о незаконности риэлторского сервиса. Во-первых, это не мы его ведем, а Bling.by — мы их только рекламировали. Во-вторых, этим занимается полмира, но предупреждение вынесли только нам. Это просто абсурд.

Или история с сайтами знакомств. Декрет президента № 3 «О некоторых мерах по противодействию торговле людьми» от 9 марта 2005 года де-факто запретил сайты знакомств. Надо получать лицензию брачного агентства, а дальше — каждые три месяца сдавать списки иностранцев, которые знакомились на нашем сайте, а также номера паспортов всех беларусов, на нем зарегистрированных. Понятно, что эти требования невыполнимы. А у нас на тот момент было столько знакомств, сколько на Mamba. После предупреждения Генеральной прокуратуры мы были вынуждены закрыть этот сервис. В результате теперь все беларусы знакомятся на зарубежных сайтах, а наше государство от этого радуется и считает, что так правильно.

Есть еще пример — сервис интернет-такси UBER. Во всем мире он законен, а у нас, видимо, будут и с ним бороться.

А в это время, где-то в коридорах власти, наконец утвердили перечень государственных программ
научных исследований
на 2016–2020 годы, где на ИТ завязано громадье планов. Вот краткий список того, что в Беларуси свершится в ближайшую пятилетку:

Исследование и разработка интеллектуальных систем анализа информации, в том числе сверхбольших объемов данных, искусственного интеллекта, когнитивных процессов и робототехники; распознавание и обработка образов, сигналов, речи и мультимедийной информации; разработка методов высокопроизводительных вычислений и «облачных» технологий; математическое и компьютерное моделирование и проектирование высокотехнологичных изделий и процессов.

2. Эльфийский язык программирования

Вечная, как жизнь, дискуссия о правильных языках программирования:

Как известно, если ты серьёзный программист, синтаксический сахар тебе не нужен, это баловство. Ещё несколько лет назад Python считался детской погремушкой именно из-за этого. Чем вам фигурные скобки мешали? Ребячество какое-то придумали: заменить фигурные скобки на отступы табуляции. Сказал солидный дядя. Мальчики согласно покивали, виновато глядя в потолок. Через год все работали в коллективах где Питон основной язык.

Правильное развитие языков какое? А вот какое.

Дальше речь от синтаксического сахара переходит к синтаксическому мясу. Для иллюстрации приведу два коммента оттуда, сначала выпад:

Думаю, язык программирования должен быть максимально приближен к человеческому, дабы понимание языка было простым и чистым как мысли программиста. А писать всякие закорючки и при этом помнить их все все равно что изучить еще японский (грубо говоря), а потом уже на нем начать программировать, то есть два языка учить.

Ответка:

Вы правы и неправы одновременно. Ещё раньше, чем мы начали программировать, мы брали листок бумаги и рисовали закорючки. Да и сейчас в офисе можно встретить доску на которой идёт брэйнсторм, и там в основном стрелочки и каракули. Это тоже очень по-человечески.

Тут уместно вспомнить про ФП как хорошую альтернативу всему, что мы учили в 20 веке, в связи с этим хороший момент набросить цитатой взятой отсюда:

Помните, было такое «структурное программирование»? Люди в чатиках конца шестидесятых с**лись на тему СП vs. GoTo, кричали «considered harmful!», писали посты на своих печатных машинках, такая движуха была. И где оно все, почему прекратились с**чи? Все основные языки впитали в себя (или взросли на) СП, и тема рассосалась. Наблюдая за интенсивностью тем об ФП на разных форумах, в ЖЖ, в журнале ПФП и прочих интернетах, в этом году могу констатировать аналогичную ситуацию: ФП как темы больше нет, расходимся. Все основные языки впитали в себя (или взросли на) ФП, по крайней мере полезные его части (первоклассные функции, ФВП, лямбды, замыкания, иммутабельность, произведение типов, копроизведение типов, экспонента, применение этого всего в первую очередь в виде map/filter/reduce), а бесполезные части оказались выкинуты на задворки, в уголке музея эзотерики на них всегда можно будет полюбоваться, но в основном только там. Думаете, другая часть ФП еще себя покажет, и расширение линз Кана вправо-вверх вдоль контравариантного функтора еще выстрелит? Не будет этого, dead end.

Фрагмент полемики из комментов:

Да в мейнстриме вообще всё плохо. Все только многозначительно кивают на какие-то «мейнстримовые языки», а копнешь — одно с убогим синтаксисом, отсуствием типизации и генерит тормозные бинарники размером больше, чем у хаскелла (и нет на мипсе), и устарело лет на тридцать в момент появления на свет, второе никак не родится, ломает совместимость и есть мнение, что слишком сложно для идиота и не слишком умное для не-идиота, т.е не найдет свою ЦА (и нет на мипсе), третье имеет причудливый синтаксис, убогую типизацию, медленно компилирует и вообще гвоздями прибито к JVM-у (и нет на мипсе)…

Короче — как был один Си, так и остался в этом вашем мейнстриме. Убогий, но прекрасный, как первая рыба, выбравшаяся на сушу.

Programming languages of today — нижний это С, самый верхний — Пайтон

В догонку:

3. Советы айтишникам, изучающим английский

Сама статья выложена здесь:

27 лет назад автор данной статьи поменял класс в школе с франкоязычного на англоязычный. Два летних месяца мне пришлось заниматься с опытным преподавателем, но зато осенью я был на голову лучше своих новых однокласников, которые уже «какбэ» 3 года зубрили эти диковинные заморские слова. С тех пор я успел и поучиться в Киевском Лингвистическом Университете, и соприкоснуться с мудростью одного из величайших лингвистов Констатина Тищенко (дай ему Бог долгих лет), говорившего на 90 языках, а также получить магистра по English Studies из немецкого университета, ну, и поработать с английским в ИТ на протяжении последних 10 лет.

С тех пор, учитывая, что я занимался не только английским, но и десятком других языков, включая латинский, санскрит и японский, в моей голове четко выкристаллизовалось ОНО, что я тут и представлю в виде расширеных советов.

4. Чёрный, как уголь, ИТ

Зарисовка из жизни современной Украины, имеющая противоположный конец нашей отечественной эпопее:

Как и в традиционной экономике, в интернет-бизнесе тоже есть светлая и темная стороны. В гэмблинге, порноиндустрии и проектах вроде Silk Road, чей основатель недавно получил пожизненное заключение, вращаются огромные деньги.

История про то, как киевлянин создал сайт с рекламой проституток и заработал $2 млн за два года.

Здесь было всё «по честному», но бывает наоборот:

5. Неделя NGINX

На прошлой неделе была опубликована целая серия статей об отечественном веб-сервере NGinx:

6. Web-безопасность

Такая же пачка свежих статей по веб-безопасности:

7. Про дивный PHP

Подборка двух свежих статей по специфике PHP — это не очередное унижение языка, а скорее просто более пристальное изучение его багофич.

Из последнего вытащил такой прикольный код — много думал:

$ php -r 'var_dump([] < new stdclass); var_dump([] > INF);'

bool(true) // пустой массив меньше пустого класса

bool(true) // пустой массив больше бесконечности

8. Новое поколение

После череды поколений яппи, хиппи и хипстеров, грядет новое якки, к которому в том числе относят программистов с их любовью к своему делу, ярко выраженному творческому подходу и непонятностью (чуждостью) для окружающих, и при этом приличными зарабатываемыми деньгами. По-русски про это рождающееся поколение можно почитать вот здесь.

Обобщая, можно сказать, что якки отчасти — это расширение отечественного «креакла». И, конечно же, без классического противопоставления «отцы и дети» никуда — более традиционные группы населения как минимум не понимают якки и их постмодерновую сферу деятельности, а как максимум — не любят за бешенные барыши, которые те, играючи, пожинают на ниве НТП.

9. Размышлизмы о багах

Цитирую далее материал При достаточном количестве денег все ошибки выплывают на поверхность:

Утверждение 1:

Эрик Рэймонд (Eric Raymond) в своем эссе «Собор и базар» сказал знаменитую фразу:

«При достаточном количестве глаз все ошибки выплывают на поверхность».

Имеется в виду, что программное обеспечение с открытым исходным кодом по определению содержит меньше ошибок, чем ПО с закрытым исходным кодом, потому что код доступен для изучения всем и каждому. Рэймонд назвал это наблюдение «законом Линуса».

Утверждение 2:

Это и есть основная идея. Если вы хотите найти ошибки в своем коде, на веб-сайте, в приложении, сделайте это старым добрым способом — заплатите за проверку. Другими словами, купите себе глаза.

Хотя я приветствую любые усилия, направленные на повышение безопасности, и абсолютно согласен с тем, что это битва, которую нужно вести сразу на нескольких фронтах, как коммерческих, так и некоммерческих, мне не дают покоя некоторые моменты, связанные с тем, что платить деньги за поиск ошибок сегодня становится нормой. Какие могут быть последствия?

И в самом деле, какие? Ответ вот здесь.

В догонку: Почему людям не нужна корректность и на 100% рабочих программ, похоже, вообще не бывает.

10. О среде обитания программера и его верных помощниках

Тяжела работа программиста и неказиста, поэтому в последнее время появилось много сопряженных с ним ролей, задача которых помочь кодеру не терять фокус на главном, частично разгружая его от всего второстепенного.

Сегодня статьи о двух подобных сопряженных ролях.

Бизнес-аналитики в Agile — зачем, почему, как:

Большинство людей считают, что для разработки какой-то программы нужны только программисты, ведь именно они пишут код и воплощают мечту заказчика в реальность. Но между тем, что говорит заказчик и тем, что в итоге сделает программист, — целая пропасть. Не потому что они — плохие люди или не хотят общаться и понимать друг друга, а потому что заказчик мыслит в масштабе цели, думает, что должна делать программа, для чего он хочет ее использовать. А программист обязан думать, как программа должна работать, откуда брать данные, как назвать новую колонку в таблице данных и т. д., проще говоря, думать о деталях реализации.

Поскольку и программисты, и заказчики — люди занятые, выяснение деталей проходит в форме раундов «вопрос — ответ», при этом нигде не фиксируется, когда и почему было принято такое решение или как оно изменялось со временем. Но главный минус такой коммуникации — разработчик спрашивает «как?», а заказчик может ответить только на «зачем?», а остальное его уже мало интересует. Более того, обычно, отвечая на «как?», заказчик заводит себя в тупик, потому что не может и не обязан знать, сколько вариантов существует для выполнения его потребности и какой оптимален. Программист же всего лишь делает, что ему сказали. В итоге складывается ситуация, когда недоуменный клиент спрашивает, почему приложение не вписывается в его картину мира, а недоуменный программист отвечает, что так и просили сделать.

«Крутелочка к пимпочке»: как снизить количество невалидных багов вдвое, и почему техподдержка — друг разработчика:

С каким бы приложением ни была связана ваша работа и в каком бы качестве вы ни присутствовали в процессе, рано или поздно наступит тот момент, когда к вам впервые явится пользователь и, доверчиво моргая, спросит: а почему у меня пимпочка не пимпает? Чтобы пимпочка пимпала, — скажете вы, погибая от умиления (поставил! пользуется!), — нужно сперва покрутить крутёлочку.

К десятому пользователю умиления поубавится. К пятидесятому вы, вероятно, заведете пару-тройку шаблонов для ответа на наиболее популярные вопросы. К сотому наймете с полдесятка студентов на должность инженеров технической поддержки и вздохнете с облегчением — ровно до того момента, пока один из них не образуется у вашего рабочего стола с вопросом: а у меня тут пользователь пришел, и у него пимпочка не пимпает — почему? Крутёлочка? Какая крутёлочка?


Иллюстрации: twitter.com, avaxnews.net, nginx.com

*Мнение колумнистов может не совпадать с позицией редакции.

**В цитировании сохранены авторская орфография и пунктуация.

Место солидарности беларусского ИТ-комьюнити

Далучайся!

Читайте также
Сверхзвуковая авиация и батарейки из бактерий. Техдайджест
Сверхзвуковая авиация и батарейки из бактерий. Техдайджест
Сверхзвуковая авиация и батарейки из бактерий. Техдайджест
Influit изобрела электробензин, Baidu запустила роботакси. Технодайджест
Influit изобрела электробензин, Baidu запустила роботакси. Технодайджест
Influit изобрела электробензин, Baidu запустила роботакси. Технодайджест
Каждую неделю собираем новости технологий, видео и ссылки на полезные статьи.
1 комментарий
Synchron вживила свой первый нейроинтерфейс, Subaru нашла новую Суперземлю. Технодайджест
Synchron вживила свой первый нейроинтерфейс, Subaru нашла новую Суперземлю. Технодайджест
Synchron вживила свой первый нейроинтерфейс, Subaru нашла новую Суперземлю. Технодайджест
Каждую неделю собираем новости технологий, видео и ссылки на полезные статьи.
Возрождение OneWeb и «эра мяса из пробирки». Техдайджест
Возрождение OneWeb и «эра мяса из пробирки». Техдайджест
Возрождение OneWeb и «эра мяса из пробирки». Техдайджест
Каждую неделю собираем новости технологий, видео и ссылки на полезные статьи.

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.