У нас на работе три года назад почти половину программистов направили на курсы обучения программирования под iOS. У меня тогде только появился мой Mac. После этого я ни разу не смотрел видео по программированию и не брал никаких курсов, базовых знаний было достаточно для того, чтобы создавать приложения и изучать XCode методом научного тыка.
С выходом XCode 6 мне пришлось обратиться к youtube урокам, потому что новые возможности по созданию интерфейса в редакторе оказались далеко не интуитивными. Я далеко не во все въехал с первого захода.
Группа разработчиков, которая известна как Ind.ie, объявила о намерении создать открытый компилятор для языка Swift. Их не устраивает то, что Apple сделала Swift закрытым и считают, что компания таким образом хочет сделать приложения менее портируемыми и привязать разработчиков к своей эко системе.
Ну во-первых, раньше для разработки под iOS основным языком был Objective-C и сейчас его так же можно использовать, и этот язык так же не был переносимым на Андроид. Cocoa сама по себе достаточно уникальна. И я не помню, чтобы кого-то это возмущало.
Давно не было писем читателей на блоге:
Привет, Михаил! Есть один вопрос, буду рад если ответишь. Как тебе удалось выучить необходимый объем математики для программиста, дискретку, графы, деревья, алгоритмы и прочий матан? Складывается ощущение, что выучить такой объем по книгам просто невозможно. С другой стороны я пришел к выводу, что без этих знаний профессионалом мне не стать.
Я уже долго работаю с MS SQL Server и только несколько раз приходилось использовать подсказки оптимизатора базы данных, чтобы указать, как более эффективно выполнять запрос. На этой неделе сразу дважды SQL Server лоханулся.
Решение о том, какой план выполнения выбирать и как обрабатывать результаты зависит от корректности статистики. Я попробовал ее обновить, но всё равно, сервер продолжал заниматься фигней.
В последнее время мне пришлось столкнуться с некоторыми проблемами разработки для мобильных устройств и больше всего проблем доставил Google. Две самые крупные проблемы связаны с отправкой сообщений мобильному приложению.
Сначала я узнал, что сервер отправки сообщений от Google не имеет статичного IP адреса. Неужели не смогли купить фиксированный адреса или хотя бы несколько адресов. Я работаю с окружением, входы и выходы из которого защищены сетевым экраном и чтобы открыть даже подключение наружу нужно пройти несколько кругов бюрократии, которой я не видел даже при СССР. При этом работники из страны Индия из компании TCS, которые отвечают за сеть и сервера не умеют настраивать сетевой экран по имени домена. Теперь как Google меняет адреса, сообщения перестают отправляться.
Я на Mac OS очень много пишу PHP кода и для отладки долгое время использовал MAMP, который достаточно удобно и просто можно настроить. Да даже настраивать ничего не нужно, просто установил программу и вот уже все работает. Но после последнего обновления ОС он перестал запускать Apache, что очень даже удивительно, ведь MacOS имеет BSD корни и в нем даже установлен Apache второго поколения.
Ну да ладно, простота - это конечно удобно и красиво, но заморачиваться с MAMP тоже не хотелось, поэтому я решил запустить встроенный Apache и работать с ним. Во время конфигурации особо проблем не возникло, я быстро подправил httpd коняги:
Новый язык программирования от Apple - Swift меня сегодня сильно удивил. Строки в этом языке по современному не мутируемы. Логично, с точки зрения безопасности. Каждый раз, когда вы в коде пишете:
s = s + “test”
В реальности для s выделяется новая память, а не добавляется к существующей. Это правильно. Язык Swift объектный и все там объекты. Но внимание - для получения длины строки нужно использовать глобальную функцию countElements, которая подсчитывает количество элементов простой интеграцией по всем символам.
Сейчас по дороге на работу и домой я стал изучать Swift и пробовать писать на нем что-нибудь. Ну что я могу сказать - интересный язык и будущее у него достаточно интересное. Я кстати не смотрел, какая у самого языка лицензия и является ли его спецификация открытой. Но даже если она и открыта, не думаю, что Google, Microsoft или кто-то еще решатся переносить его на свои платформы.
У Microsoft платформа .NET открыта и язык C# свободен, но его реализовывает только энтузиасты. Google выбрала для себя Java не смотря на его ограничения в лицензирование и последующие судебные преследования со стороны Oracle, а Apple идет совершенно своим путем и решили ни у кого и ничего не брать. Хотя взяли у свободного сообщества компилятор и ядро своей ОС. Возьмет ли сообщество Swift? Наверно нет.
Когда я первые начал писать код для iOS с использованием Objective-C, то мне было достаточно сложно привыкнуть к этому языку. Он немного не привычный, хотя в названии и присутствует знакомая мне буква C, просто концепция вызова методов, объявления классов очень не привычны. Да и в языке отсутствуют такие удобные вещи как модификаторы доступа или пространства имен.
Мне кажется, что писать программы для iOS все же немного сложнее, чем для Windows. C# и .NET Framework все же будут на много мощнее. Не удивительно, что Apple представила в этом году новый язык программирования для своих платформ - Swift.
Apple объявляет о появлении нового языка Swift, который должен быть на много быстрее и будет обладать всеми возможностями, которых так не хватает программистам в Objective-C.
Смысл понятен, Apple решили, что проще создать новый язык, чем тянуть Objective-C, который слишком старый и создавался без учета таких простых необходимых вещей, как пространства имен.
Блин, я уже работал с таким количеством языков, что не особо хочется учить что-то еще. Но я как минимум попробую Swift.