Блог

Где же следующий шаг в развитии Swift?

Скоро исполнится 3 года с момента, как Apple открыла свой язык Swift, но за это время не случилось серьезного толчка в развитии. Все изменения, которые были внесены за это время сделали язык лучше, но он все же остался в рамках инфраструктуры Apple. На Swift можно писать приложения для iOS, но он так и не пошел дальше. 

Когда Microsoft представили миру C#, то не смотря на отсутствие поддержки со стороны самого гиганта, нашлись энтузиасты, которые начали переносить его на другие платформы и появился Mono. Это говорит о том, что C# действительно великолепный язык и его люди готовы переносить самостоятельно. 

Когда я люблю проекты с исходным кодом

В случае с программами и ОС мне в принципе все равно - открыт исходный код или нет. Я уже долгие годы работаю с Windows, Linux и macOS и у меня не возникало желания поменять код. Конечно же из этих трёх ОС, я даже теоретически смог бы поменять что-то только в Linux, потому что исходники остальных не доступны. Но все равно, тут я говорил о желании, а не о возможности. 

Я просто пользуюсь программами и не думаю о коде. Если нет нужной возможности, то буду искать программу, в которой эта возможность есть, а реализовывать ее самостоятельно не хочется. Каждый должен заниматься своим делом и у меня есть своя работа, у разработчиков ОС и программ, которыми я пользуюсь - своя работа. 

Изучаю Xamarin

До сих пор я писал мобильные приложения только под iOS поэтому выбирал Objective-C или Swift и мне нравилось использовать их. Меня несколько раз спрашивали, а почему не Xamarin, ведь тогда я смогу писать и для iOS и для Андроида. 

У меня не было цели писать для нескольких платформ. Я на работе пишу на C# и приходить домой и снова писать на C# не особо хотелось. Мне нужно было разнообразие в виде Swift, ведь это новый мир для меня, который интересно и хочется познавать. 

Но вот понадобилось написать для iOS и Андроид платформ и вот тут я выбрал Visual Studio и его возможность  создавать приложения сразу для нескольких платформ. И пока это интересно. Немного непривычно, но по своему интересно. 

Скрипты для git

На работе у нас перешли с TFS на git и команда архитектуры зачем-то написала power shell скрипты, которые должны были бы облегчить работу с git. Теоретически да, с PS скриптами стало удобно работать тем, кто всегда работал с TFS и никогда не понимал, как работает git, потому что с помощью скриптов идеологию git превратили в tfs, что очень даже...

Но даже если сделать power shell скрипты гибкими, я не вижу в них смысла по двум причинам.

1. git итак не сложный, если понимать, как он работает. Не нужны PS скрипты для того, чтобы выполнить команду fetch и merge, это легко сделать напрямую

.NET Core будет поддерживать WPF

В .NET Core 3 должна появиться поддержкак десктопных приложений и IOT. И под десктопными понимается не только WinForms, но и WPF, что очень даже круто. Мне нравится XAML и считаю его великолепным решением для построения визуальных интерфейсов, потому что можно делать интерфейсы, которые легко адаптируются под любые размеры экрана. 

HTML уже давно доказал свою гибкость и XAML - это примерно тот же подход, поэтому круто, что Майкрософт будет поддерживать это и дальше. Зачем они сохраняют WinForms? Вот этого не знаю, я бы отказался от него. Сэкономили бы ресурсы, которые можно было бы направить на более интересные проекты. 

Сортировка в базе данных или приложении?

Вопрос читателя: Извините, если злоупотребляю Вашим вниманием, но как-то не получается у меня найти ответы на свои вопросы на всевозможных форумах. А может я их просто не умею задавать. 

Может Вы меня наведете на правильную концепцию в вопросе сортировки данных. 

За много лет работы я сроднился с dBase и до сих пор ассоциирую сортировку таблицы с соответствующим тегом, принадлежащего ей компаундного индекса. Видимо от того и теряюсь. 

Простой пример: 

MS SQL -> microORM -> класс, соответствующий структуре выбираемой таблицы -> компонент DataGridView, принявший информацию и отсоединенный от источника данных. 

Await скоро станет умнее

Сейчас await в C# упрощает работу с асинхронным кодом. Вы просто используете этот оператор с асинхронным методом и ждете потом, когда этот метод вернет значение. Но бывают случаи, когда асинхронный метод передает множество данных. Когда мы загружаем большой файл по сети, его данные поступают постепенно и хочется видеть этот процесс, а не финальный результат. 

В 7-й версии C# это станет возможно. Можно будет писать что-то типа:

foreach await (var something in asyncData) {
}

В C# 7 можно будет реализовывать методы в интерфейсе

Сейчас во время интервью часто можно услышать вопрос – чем отличается интерфейс от абстрактного класса или просто класса. И ответ достаточно простой – у интерфейса не может быть реализации методов. Классы должны реализовывать все методы своих интерфейсов. Это не полный и не идеальный ответ, но достаточный.

Начиная с C# 7 (может 7.1) этот ответ станет неверным. В нем можно будет у интерфейсов писать реализацию по умолчанию, которую потом классы смогут переопределять. Microsoft показывает такой интерфейса:

.NET Core 3 будет поддерживать десктопные приложения

Сейчас идет .NET конференция, которая немного оказалась в тени из-за презентации Apple. Интернет больше обсуждает iPhone XS и XR и решает, какой из них купить, а в это время Microsoft рассказывает о том, что ждет .NET в будущем. 

Редактор кода против текстового редактора

После последнего моего видео, в котором я говорил, что девушки на моей прошлой работе писали код в vim или в Notepad++ в очередной раз почему-то народ начал сравнивать - что лучше и в чем лучше писать. 

Блин, пишите в чем вам удобнее. Из моего опыта те, кто умеет писать в блокноте, точно понимают предмет, потому что без этого в блокноте просто написать невозможно. 

Если человек пишет в IDE, то тут уже не факт, что он знает внутренности. Тут я уже встречал как реально хороших специалистов, так и тех, кто умеет только перетаскивать компоненты по формам. 

О блоге

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

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

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

Пишите мне


Я в социальных сетях
Facebook Telegram Програмысли
Youtube Instagram Твитер