Я уже долго работаю с 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.
В почтовый ящик поступил вопрос:
Очень нуждаюсь в Вашем совете, в каком направлении программирования мне начинать копать. Например, веб или системное, мобильное, iOS, android?
Программирование - такая сфера, где платят достаточно хорошо и спрос на специалистов есть везде, главное - это умение программировать, а язык и направление - это вторично. Так что могу посоветовать одно - выбирайте то направление, которое нравится. Если нравятся мобильники и Андроиды, то выбирайте эту сферу, а если яблоки, то начинайте изучать iOS программирование.
Кто еще пишет на Delphi? На сколько он популярен в России? Украине? Белоруссии?
1-е мая 1964-го года официально была запущена первая программа на языке Basic. Это сделал знаменитый John G. Kemeny и студент программист. С тех пор прошло уже 50 лет и уже многое изменилось.
В 1964-м году, чтобы полноценно получать удовольствие от владения компьютером, просто необходимо было знать какой-то язык программирования. Сейчас уже даже в Linux можно жить без написания скриптов (это же тоже своеобразные программы), а просто включать компьютер и работать в графических оболочках операционн систем без знания программирования.
Само программирование конечно же сделало огромный шаг вперед. Сейчас уже не нужно подсчитывать или нумеровать строчки и прыгать по ним с помощью операторов goto. Языки программирования на столько красивые, что можно писать целые истории на языке C++. Книга Clean Code даже говорит программистам, что код должен выглядеть как самая настоящая история и читать код нужно прямо как книгу, тогда код будет красивым.