Решение ВТО отменить ввозные пошлины на ИТ-продукцию, Парк высоких технологий и его тепличные условия глазами россиян, как правильно использовать исключения и как делать ООП на Haskell — в очередном обзоре ссылок за неделю.
1. Тепличный хай-тек
Большой репортаж российского «Коммерсанта» о белорусском Парке высоких технологий (ПВТ), ещё одна попытка ответить на вопрос: Почему в Беларуси процветают программисты?
Отвечая на вопросы издания, директор ПВТ Валерий Цепкало заканчивает такой вот нехитрой мыслью:
Цепкало замечает, что во всем мире бюджетники — и правоохранительные органы в частности — содержатся «на те деньги, которые зарабатывает бизнес».
— Чем больше таких денег будет, тем лучше будут жить работники бюджетной сферы. И наоборот, чем больше таких людей будут ущемлять, тем меньше у них желание работать,— говорит директор Парка высоких технологий.— Понимаете, это серьезная мировая проблема — называется «ловушка бедности»: чем больше зажимают бизнес, пытаясь вытянуть из него деньги, тем беднее в итоге государство. Думаю, никто не хочет, чтобы благодаря таким действиям «ловушка бедности» смыкалась вокруг Белоруссии.
2. Почему у государства нет денег на ИТ?
Продолжая тему, которой деликатно касается Цепкало в предыдущем материале, расширим один важный для ИТ-бизнеса аспект: Почему такие проекты, как PandaDoc и Kino-mo в ближайшие годы будут искать инвесторов не в Беларуси — 5 причин.
Исполнительный директор инвестиционно-исследовательской компании AVI Investment Company Николай Ляховский объясняет, почему в нашей стране нет собственных венчурных инвесторов, которые бы финансировали перспективные белорусские проекты.
Впрочем, проиллюстрируем поиск денег вовне на практическом примере:
Как вечеринка в Сан-Франциско привела к созданию в Минске международного стартапа http://t.co/NSZjtxorQ4 pic.twitter.com/WLzDmLSsqT
— probusiness.by (@probusiness_by) July 30, 2015
3. Планшетики, смарфончики, комлектуха...
Вслед за белорусскими новостями я хочу кинуть важнейшую ссылку на новость о том, во что буквально никто (включая меня) не верил — ВТО принял решение отменить любые ввозные пошлины на ИТ-продукцию. И что это значит? — засуетился читатель. Ну, как что: Россия уже как год там, Казахстан буквально на прошлой неделе вступил, ну, а Беларусь... аж пищит, так туда лезет (но это и не важно, с учётом бесстыдно заголенной части тела на Востоке).
Но прежде, чем вы закатите глаза в предвкушении, я хочу подтолкнуть вас ко взгляду на это событие с более общих планов, с точки зрения трендов и перспектив. Чуть выше мы писали про тему ПВТ под заголовком «Тепличный хай-тек». Это зона-направление, которому дали льготы и при наличии благоприятных факторов среды (это жёсткая композиция из условий) начался мощный рост ИТ-отрасли. Вся эта штука с беспошлинной торговлей гаджетами и электроникой — нечто полностью аналогичное нашему ПВТ, только педалируемое в мировых масштабах. Этакое углубление и насаждение царства ИТ путем экономического демпинга.
А так — мне нравится, что большие дяди в костюмах делают ставку именно на ИТ. Это, как сказал бы бизнес-аналитик, увеличивает глубину пенетрации рынка со стороны сетевых и компьютерных систем.
@ConstantDm Тем хуже для наших, потому как самоизоляция чрезвычайно губительна в конкурирующем и бешенно растущем (в светлое будущее) мире.
— Игорь Блогератор (@blogerator) August 1, 2015
Одновременно с этим решением Китай сделал не менее мощный финт ушами: Китай запретил экспорт хайтека из страны.
4. Для .NET-валильщиков
Возвращаемся к более повседневным делам. Навыки .NET-разработчика России и США, в чём разница? (+ дополнение):
Статья «Навыки .NET-разработчика» была первым моим аналитическим исследованием востребованности навыков на рынке труда, в котором я показал потребности близкого к нам российского рынка в специалистах моей профессии. В этом материале я представляю сравнение с зарубежным рынком. Говорят, что наш ИT-рынок в целом и используемые нами технологии в частности отстают от Запада на несколько лет. Давайте вместе посмотрим «за рубеж» и попробуем понять, так ли это и есть ли нам чему поучиться.
5. Структуры данных. Неформальный гайд
Я бы добавил в название этой статьи определение «предельно неформальный гайд». Старшее поколение будет бухтеть или даже открыто ржать, но это (и даже не спорьте!) — будущее нашего образования. Поскольку там всё завязано на черепаху и поиски свободы (читайте текст по ссылке за подробностями), то, следуя предложенному графическому концепту, общую суть этой молодежной системы обучения я бы выразил так:
— Fascinating Videos (@FascinatingVids) July 30, 2015
Из комментариев к статье выцепил такое полезное пояснение понятий «куча» и «хеш-таблица»:
Куча — достаточно специфическая структура данных: у неё теоретически весьма неплохая сложность, но обращение к памяти весьма нерегулярное и потому она эффективна только на небольших размерах (когда она влазит в L1 кеш).
Самое распространённое применение кучи: priority queue. Когда вам нужно выбрать N самых больших (или самых маленьких) элементов из множества, то куча — это самая подходящая структура. Обыно нужное N невелико, так что главный бич кучи (нелокальные обращения к памяти) не успевает проявиться, а зато тот факт, что не нужна дополнительная память (и, главное, что не нужно эту дополнительную память выделать и освобождать) оказывается весьма полезным.
А насчёт «имеющих ограниченное применение» хеш-таблиц... вы это всерьёз или просто издеваетесь? В современном мире стоить только попытаться плюнуть — попадёшь в хеш-таблицу. Ещё до того, как плюнешь.
Когда вы пишите, скажем,var a = 1;
то куда, собственно, попадает a? Ответ: в хеш-таблицу соответствующей JavaScript-функции. А когда вы пишите
a.x = b.x;
то вы оперируете, скорее всего, уже с тремя хеш-таблицами (одна — в которой хранится a и b, ещё два — живут внутри объектов a и b). То же самое — в большинстве других сколько-нибудь распространённых скриптовых языках (неважно: это python, ruby или какой-нибудь lisp). Даже такие языки как C++ и Java, в некотором смысле подвержены этой участи: у них тоже для каждой функции есть хеш-таблица с переменными... в компиляторе. Когда всё «замораживается» и получается скомпилированный код эти хеш-таблицы исчезают, но если вы используете какой-нибудь guice, то часть таблиц этого рода остаются и в рантайме.
С хеш-таблицами есть другая беда: если использовать некриптостойкий хеш, то можно на коллизии нарваться, а считать криптостойкие хеши долго. Слава богу тут нам пришёл на помощь Intel: на процессорах с поддержкой AESможно посчитать aeshash за то же время, что и какой-нибудь менее «замороченный» хеш, а DoS-атаку уже не провести.
Так что с хеш-таблицами всё хорошо: с вероятностью 99% вы их используете по 100 раз на дню, только не знаете об этом.
6. Как правильно использовать исключения
Текст хостится на острие этой ссылки:
Использование исключений для контроля хода выполнения программы (flow control) — давняя тема. Я хотел бы суммировать этот топик и привести примеры правильного и неправильного использования исключений.
В комментариях вылез Валерий Леонтьев из Минска (не певец), который решил поделиться своим житейским опытом:
Вот то, что я рассказал бы про исключения тому, кто пока не умеет ими пользоваться.
- Исключения нужно использовать тогда и только тогда, когда возникает развитие событий, не предусмотренное нормальным ходом работы приложения — исключительной ситуации. При этом причина может быть как статической (например, логическая ошибка в коде), так и динамическая (например, недоступность ресурсов).
- Исключения нужно кидать максимально точно (узко) типизированными.
- Исключения замечательны для решения своей задачи — прерывания процесса с информированием о возникшей проблеме — причине прерывания, потому что они всплывают по стеку до нужного места. Для других задач они не подходят.
- Обрабатывать исключения нужно там, где их одновременно возможно и уместно обработать.
- В прикладном ПО большинство бросаемых на практике исключений не обрабатываются, перехватываются в самой высокой точке стека и попадают в лог, а пользователь получает ошибку 500 «Что-то пошло не так».
7. Пример решения типичной ООП задачи на языке Haskell
К свежему посту по означенной теме для порядка присовокуплю цитату из старого поста-притчи: объекты — это замыкания для бедных:
Как-то однажды знаменитый учитель Кх Ан вышел на прогулку с учеником Антоном. Надеясь разговорить учителя, Антон спросил: «Учитель, слыхал я, что объекты — очень хорошая штука — правда ли это?» Кх Ан посмотрел на ученика с жалостью в глазах и ответил: «Глупый ученик! Объекты — всего лишь замыкания для бедных.»
Пристыженный Антон простился с учителем и вернулся в свою келью, горя желанием как можно скорее изучить замыкания. Он внимательно прочитал все статьи из серии «Lambda: The Ultimate», и родственные им статьи, и написал небольшой интерпретатор Scheme с объектно-ориентированной системой, основанной на замыканиях. Он многому научился, и с нетерпением ждал случая сообщить учителю о своих успехах.
Во время следующей прогулки с Кх Аном, Антон, пытаясь произвести хорошее впечатление, сказал: «Учитель, я прилежно изучил этот вопрос, и понимаю теперь, что объекты — воистину замыкания для бедных.» В ответ Кх Ан яростно огрел Антона палкой и воскликнул: «Когда же ты чему-то научишься, бездарь? Замыкания — это объекты для бедных!»
В эту же секунду Антон обрел просветление.
Моё послесловие к этой древней программистской притче таково:
В статически типизированных языках всё не так кучеряво. Объект и замыкание — вещи пересекающиеся, но не идентичные — проблемы, как обычно, начинаются при наследовании с более чем одним уровнем иерархии.
8. Интервью с создателем Evernote
Первые прототипы Evernote появились в 2001 году, а полноценная версия — в 2004. За 11 лет своего существования программа стала неотъемлемой частью жизни практически каждого человека, активно работающего в интернете. Интернет-издание «МакРадар» опубликовало интервью с основателем Evernote Степаном Пачиковым, который рассказал о создании программы, а также о своём участии в разработке Apple Newton.
Степан Пачиков, Evernote: «Задача Evernote — сделать человека умнее и лучше» — http://t.co/P0bi5R7q9P pic.twitter.com/neGwrsumVZ
— МакРадар (@MacRadar) July 28, 2015
Каким вы видите будущее Evernote?
Я сторонник Курцвейла. Его книга The Singularity Is Near о человеко-машинной цивилизации произвела на меня сильное впечатление. Я считаю, что вы, я и, может быть, наши дети — это последнее поколение смертных людей. Следующее поколение людей будет уже бессмертным и будет существовать в форме, которую сейчас трудно предсказать, но это будет гибрид биотехнологий и кибернетики.
Меня беспокоит, что в этом будущем конгломерате, между людьми, которыми мы являемся, и теми существами, которыми мы станем через 4-5 поколений, будет мала человеческая доля. Поэтому единственный для нас способ — это не остановить прогресс, а возглавить его. Для меня будущее Evernote — это в каком-то смысле попытка обеспечить передовые позиции человеческому разуму в борьбе между наступающим компьютерным интеллектом и биологическим интеллектом. Вы, наверное, знаете о предупреждении Стивена Хокинга о том, что люди недооценивают опасность компьютерного интеллекта.
Надо работать над своим телом, своим мозгом, совершенствоваться с огромной скоростью, с такой, чтобы мы в этом будущем симбиозе заняли достойное место и чтобы наша культура, история тоже туда влилась. Вот именно в ускоренном развитии человеческого тела и мозга я вижу развитие Evernote и компьютерных технологий.
9. Интернет уже не тот
Впечатления отсидевшего в тюрьме срок за «неправильные смыслы» иранского блогера о современном интернете — что изменилось всего за пару лет?
Статья называется так: Богатый, разнообразный, свободный веб, который я так любил, за годы, проведенные мной в Иранской тюрьме просто умер. Почему никто не остановит это?
Это был первый вечер, когда я вышел из тех дверей, как свободный человек. Для меня все было впервые: холодок от осеннего ветерка, шум от соседнего моста, запах, разноцветный город, в которым я жил большую часть своей жизни — все ново.
Как я заметил, привычный мне Тегеран очень изменился. Наплыв новых бессовестно роскошных особняков заменил очаровательные домишки, так знакомые мне. Новые дороги, скоростные магистрали, кучи внедорожников. Огромные рекламные щиты, со швейцарскими часами и корейскими телевизорами, с плоским экраном. Женщины с разноцветными шарфами и одеяниями, мужчины с крашенными волосами и бородами, и сотни очаровательных кафе с западной музыкой и женским персоналом. Перемены затронули и людей; изменения, замечая которые, рушатся все представления о нормальной жизни.
Две недели спустя, я снова начал писать. Некоторые друзья согласились предоставить мне блог, как часть их журнала. Я назвал это Ketabkhan — что в переводе с персидского «читалка». Шесть лет — это большой тюремный срок, но это целая эпоха в мире веб. Публикация в сети сама по себе не изменилась, но чтение, точнее, формат представление публикации — кардинально поменялся.
Длинный текст, требующий неторопливого пережевывания, провоцирующий каталептическое размышление.
Если вам интересны подобные философско-трендовые темы, вот дополнительный свежий топик: Интернет как новое огораживание.
СМИ превращают наши переживания, память и общение в нечто синтетическое и внешнее. В обществе, контролируемом СМИ, мы зависим от технологии доступа к этим сторонам самих себя, сделанным внешними. Книги, аудиозаписи, кино, радио, телевидение, интернет, мобильные телефоны: все эти шедшие друг за другом нововведения проникали всё глубже в нашу повседневную жизнь, становясь посредниками для всё большей части наших жизней.
10. Интервью с Дмитрием Жемеровым из JetBrains
О чём базар:
- Как развивается IDEA, куда она движется.
- В чем разница между IntelliJ и JetBrains.
- Зачем в компании два CEO.
- Что происходит в Kotlin'e.
- С какими трудностями столкнулась команда Kotlin в процессе разработке языка.
- Что такое Language Design Review.
- Что представляет собой современный Google.
- Почему закрылся Google Code.
- Почему Хабр важен для разработчиков IDE.
Это видео:
А это текстовая транскрипция большого интервью.
Иллюстрации: twitter.com, habrahabr.ru.
*Мнение колумнистов может не совпадать с позицией редакции.
**В цитировании сохранены авторская орфография и пунктуация.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.