Блог

Swift - интересный язык с интересным будущим

Сейчас по дороге на работу и домой я стал изучать Swift и пробовать писать на нем что-нибудь. Ну что я могу сказать - интересный язык и будущее у него достаточно интересное. Я кстати не смотрел, какая у самого языка лицензия и является ли его спецификация открытой. Но даже если она и открыта, не думаю, что Google, Microsoft или кто-то еще решатся переносить его на свои платформы. 

У Microsoft платформа .NET открыта и язык C# свободен, но его реализовывает только энтузиасты. Google выбрала для себя Java не смотря на его ограничения в лицензирование и последующие судебные преследования со стороны Oracle, а Apple идет совершенно своим путем и решили ни у кого и ничего не брать. Хотя взяли у свободного сообщества компилятор и ядро своей ОС. Возьмет ли сообщество Swift? Наверно нет.

Строки в Swift

Новый язык программирования от Apple - Swift меня сегодня сильно удивил. Строки в этом языке по современному не мутируемы. Логично, с точки зрения безопасности. Каждый раз, когда вы в коде пишете:

s = s + “test”

В реальности для s выделяется новая память, а не добавляется к существующей. Это правильно. Язык Swift объектный и все там объекты. Но внимание - для получения длины строки нужно использовать глобальную функцию countElements, которая подсчитывает количество элементов простой интеграцией по всем символам

PHP разработка на Маке

Я на Mac OS очень много пишу PHP кода и для отладки долгое время использовал MAMP, который достаточно удобно и просто можно настроить. Да даже настраивать ничего не нужно, просто установил программу и вот уже все работает. Но после последнего обновления ОС он перестал запускать Apache, что очень даже удивительно, ведь MacOS имеет BSD корни и в нем даже установлен Apache второго поколения. 

Ну да ладно, простота - это конечно удобно и красиво, но заморачиваться с MAMP тоже не хотелось, поэтому я решил запустить встроенный Apache и работать с ним. Во время конфигурации особо проблем не возникло, я быстро подправил httpd коняги:

Сервер сообщений Google

В последнее время мне пришлось столкнуться с некоторыми проблемами разработки для мобильных устройств и больше всего проблем доставил Google. Две самые крупные проблемы связаны с отправкой сообщений мобильному приложению. 

Сначала я узнал, что сервер отправки сообщений от Google не имеет статичного IP адреса. Неужели не смогли купить фиксированный адреса или хотя бы несколько адресов. Я работаю с окружением, входы и выходы из которого защищены сетевым экраном и чтобы открыть даже подключение наружу нужно пройти несколько кругов бюрократии, которой я не видел даже при СССР. При этом работники из страны Индия из компании TCS, которые отвечают за сеть и сервера не умеют настраивать сетевой экран по имени домена. Теперь как Google меняет адреса, сообщения перестают отправляться.

Подсказки оптимизатору MS SQL Serever

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

Решение о том, какой план выполнения выбирать и как обрабатывать результаты зависит от корректности статистики. Я попробовал ее обновить, но всё равно, сервер продолжал заниматься фигней. 

Как удалось выучить необходимый объем математики для программиста?

Давно не было писем читателей на блоге:

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

Phoenix будет открытым языком Swift

Группа разработчиков, которая известна как Ind.ie, объявила о намерении создать открытый компилятор для языка Swift. Их не устраивает то, что Apple сделала Swift закрытым и считают, что компания таким образом хочет сделать приложения менее портируемыми и привязать разработчиков к своей эко системе.

Ну во-первых, раньше для разработки под iOS основным языком был Objective-C и сейчас его так же можно использовать, и этот язык так же не был переносимым на Андроид. Cocoa сама по себе достаточно уникальна. И я не помню, чтобы кого-то это возмущало. 

Дизайн приложения в XCode 6

У нас на работе три года назад почти половину программистов направили на курсы обучения программирования под iOS. У меня тогде только появился мой Mac. После этого я ни разу не смотрел видео по программированию и не брал никаких курсов, базовых знаний было достаточно для того, чтобы создавать приложения и изучать XCode методом научного тыка. 

С выходом XCode 6 мне пришлось обратиться к youtube урокам, потому что новые возможности по созданию интерфейса в редакторе оказались далеко не интуитивными. Я далеко не во все въехал с первого захода. 

Apple меняет язык Swift без сохранения совместимости

Вышло очередне обновление XCode и Apple в очередной раз сделала улучшения в язык Swift. При этом разработчики явно не заморачиваются с сохранение обратной совместимости и в очередной раз затравили программистов обновлять свой код. 

Я не знаю как Google поступает со своими SDK, а Microsoft в основном сохраняет совместимость на долгое время, делая жизнь программистов проще. 

Не смотря на то, что меня не очень сильно обрадовала необходимость обновить свой код, я всё же предпочитаю подход Apple. Если разработички нашли более хорошее решение, то лучше обновить один раз и не оставлять мусор ради сохранения совместимости.

Андроид приложения на Хромиуме

Google хочет, чтобы программисты разрабатывали более универсальные приложения для Андроида, которые будут работать и на Хромбуке. Ну на сколько я знаю, под андроид далеко не все приложения для смартфона хорошо работают на планшетах, так что делать что-то сразу для трех платформ будет явно не из легких задач. 

Но тут я хотел бы отметить то, что Хромбук должен будет иметь тот де самый API, что и Андроид. У обеих ОС одни корни, но всё же разные команды (на сколько я слышал). А раз так, то будет иметь смысл объединить разработчиков и создавать что-то универсальное, как это делает Microsoft.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне