Почему технологии Microsoft не набирают популярности? Сейчас прочитал в одной заметке, что Microsoft протормозила на мобильном рынке и теперь всеми силами пытается догнать рынок. Для этого они купили Xamarin и HockeyApp и предлагают программистам кучу различных SDK и готовых решений.
Так почему же программисты не сильно всасывают все эти отличные вещи и динамика роста минимальна? На мой взгляд, программисты все меньше доверяют новым технологиями от Microsoft, потому что они рождаются и умирают с невероятной скоростью.
Одних только технологий доступа к базе данных уже поменялось несколько штук. Для разработки игр создавалось много различных фреймворков, но только DirectX остался в живых, да и тот менялся несколько раз достаточно кардинально.
Я хорошо отношусь к C#, но у меня серьезные вопросы вызывает жизнеспособность Xamarin под руководством Microsoft. Здесь замкнутый круг – жизнеспособность зависит от популярности, а популярность скорей всего не растет как раз из-за боязни в краткосрочности технологии.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Но в IT так у многих, к сожалению, поэтому постоянное обучение и переобучение вечный спутник любого it-шника, а работодатели стараются отдавать предпочтение молодым сотрудникам, в том числе из-за их меньшей ленности ума, что важно в таких условиях.
Вот да, сейчас стоит вопрос нового проекта на VS 2017, кроссплатформенного на Xamarin.Forms, чет ломает меня это все изучать, сам я андроид разработчик. Потыкал я студию, чет не впечатляет, возникает вопрос по сторонним библиотекам, их nuget порыл там много чего нет, под андроид уже куча всего написана, то что применяется ежедневно, не факт что все что нужно есть под VS... Собранный пустой апк на порядок тоще нативного, даже пустое приложение запускается очень уж долго, по сравнению с нативным... Года полтора назад тыкал так же Delphi для мобильной разработки, ради интереса, там вообще все плохо было, баг на баге, и куча косяков в плане отрисовки компонентов... Сложилось впечатление что все это какие то костыли, прослойки на прослойках, добавляющие свои баги помимо нативных
*Собранный пустой апк на порядок толще нативного
Xamarin.Native попробуй.))
Возможно android studio и лучше xamarin, но на ней не сделаешь приложение под ios и под win mobile. Зачастую требуется сделать не сложное мобильное приложение (хотя бы для поднятия статуса компании, для присутствия в магазинах гугл и эппл) сразу для 2-3 мобильных платформ и если знаком с c#, то сделать это гораздо проще на xamarin, чем изучить еще 2 языка и сделать это отдельно для каждой платформы. Для xamarin сейчас есть и контролы от сторонних разработчиков типа telerik. Так что сделать можно функционал практически любой сложности. А дистрибутив будет даже у native-проекта больше, чем, чем если бы делалось на java или swift, все-таки виртуальная машина mono в него включается. Но это всеже гораздо меньше чем у 1С (они тоже сделали поддрежку кроссплатформенной разработки конфигураций), у которых helo world на 50 мб тянет.
Все-таки xamarin одно из лучших средств кроссплатформенной разработки для самых популярных мобильных платформ. Если кто знает лучше - поделитесь.
Недавно начал изучать чисто для себя xamarin. Для C# разработчика самое то, чем пытаться запихать в себя новые технологии под андроид и ios. В голову уж и не лезет если честно )) Но после того как майкрософт "давай досвидания" сильверлайту, винфону и проч. есть некоторые опасения. Как бы да - айтишник должен постоянно изучать, развиваться... Но время не резиновое и инвестировать его в перманентно меняющиеся технологии не хочется. Взять тот же sql - его в 70х придумали и думается он еще лет 10 точно будет жив. А какой-нить хайповый js фреймворк лет 5 от силы поживет, подпитываясь популярностью комьюнити, и отправится на свалку вместе с твоим временем, потраченным на вникание в его нюансы. К тому же, что отличает профессионала от новичка в рамках конкретной технологии? Имхо знание нюансов. А если майкрософт постоянно меняет технологии, то будешь вечным джуниором. Мои знания по asp.net webforms можно смело выкидывать на помойку - в asp.net core от них нет толка ((
Я не хотел сказать что что то хуже что то лучше, это бессмысленно, каждая технология для своих задач. Вопрос то в том что помимо сомнительного будущего инструментов от майкрософт накладываются и технические проблемы данных решений. Я знаю C#, писал на нем, да и синтаксис в принципе java-подобный, особо много переучиваться не нужно, дело в том что данные прослойки добавляют много проблем помимо уже существующих, учитывая фрагментацию платформы и кучу проблем даже для нативного приложеня под андроид на разных версиях системы, мы получаем ещё баги net платформы.
Даже упомянутый мной долгий запуск приложения, это реальная проблема при такой конкуренции на рынке, когда на каждую задачу можно найти не один десяток решений, нативных или нет не важно, но когда пустое приложение у меня стартует секунд 5, против мгновенного запуска нативного... Это проблема... Размер апк, не знаю, возможно и можно его уменьшить, не разбирался, но извините 30 мб нативного против 70 кроссплатформенного это уже перебор... И это я ще не начал плотно программировать, так, накидал небольшой пример, практически hello world.
Поэтому я и говорю что как технический специалист, я 10 раз подумаю стоит ли мне использовать данные инструменты, а рассуждать о каком то сферическом коне ("не сложное мобильное приложение") не серьезно, имхо.
А по поводу лучших кроссплатформенных, я пару месяцев занимался ionic, учтивая что в веб технологиях не силен, но смог разобраться в ангуляре, пусть и не так глубоко, но этот фреймворк действительно впечатлил, хотя на выходе получаем примерно тот же результат как и у майкрософт - более жирный апк, более медленная работа... Но вот как раз если мне понадобится прям не сильно сложное кроссплатформенно приложение я точно выберу ионик, учитывая возраст и текущие возможности данного фреймворка, и это не пустые слова, я реально потрогал данный инструмент и вижу его востребованность как на апворке так и в других местах... Так что вот вам альтернатива ))
Судя по описанию ionic - это SDK для создания гибридных (Java+HTML+Javascript) мобильных приложений. Такие приложения по сути веб-приложения, а на Xamarin мы получаем полноценное нативное приложение. В нативных приложениях можно обращаться к компонентам системы, типа адресная книга, данные сим-карты, память и пр. В веб-приложениях этого не сделаешь.
В ионике работа с компонентами системы выполняется с помощью cordova plugin, естественно все уже давно придумано и сделано, иначе смысл такого фреймворка, кнопочки показывать? ))
Об бесполезности опыта при использовании различных технологий ms: вот web forms уже лет 15 существует. Это не мало, да и выпиливать их не собираются, просто появилась более эффективная технология. Но их объединяет c#, поэтому переучиться вполне можно, если знаешь c#. С силверлайтом косяк вышел даже не по вине ms. Разработчики браузеров его выпилили, как и, хотя и немного позднее, Adobe Flash. Появился же html5. И у других компаний так бывает. У того же эппла и их swift'а. Сначала всех подсадили с objective C на swift, а потом внесли в последний существенные изменения.
В .NET Core есть Web Forms?
В .net core нет webforms и не будет.
Евгений, всё так - переучиться не проблема. Но по ощущениям в последнее время они ускорили темпы изменений. Перевели разработки в open source, комьюнити трудится, обновы летят регулярно. Ну а мы вечерами сидим изучаем что там они наобновляли )) Грех жаловаться - знал в какую профессию шел.
Про Web Forms в .NET Core отвечать не обязательно было. Это я так ответил Boris-у на его замечание, что эту технологию никто не удаляет из .NET. Да, ее не удалили, но и не развивают в .NET и не планируют переносить на .NET Core. Так что технология мертва.
Мертва она будет, когда хостинга нельзя будет подобрать. Вообще-то не все еще с классического asp на web forms (aspx) перешли. Возможно она в таком состоянии еще долго продержится. Есть по настоящему мертвые технологии: wap-страницы, поддержка которых была в первых версиях vs 2002/2003 и J#.
Если включить все возможности линковщика, то приложение будет весить намного меньше. Большой размер АПК только в дебаге, так как компилятор пакует туда весь код подключенных сборок (даже если он вообще не используется), а его очень много. Согласен, для ксамарин нужно мощное железо, чтобы работать. В остальном технология очень сильная.
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.