Thursday, March 3, 2016

Project Rider. Первые впечатления от работы

Посчастливилось мне недавно поработать с новой IDE от JetBrains для работы с проектами на языке C# под названием Rider, так как JetBrains проводил возможность сделать подписку на их сайт, чтобы иметь возможность использовать предварительную версию для ознакомления, чем я и воспользовался. И вот буквально вчера я получил на почту ссылку на исходники и смог попробовать использовать Rider от первого лица, так сказать.
Давайте рассмотрим, что же собой представляет Rider. Первым делом после установки инсталлера у нас будет предложено выбрать по умолчанию скин для нашей IDE, с которой мы будем работать. Выбор их небольшой, точнее, их всего два.
Не скажу, что это плохо, но первая схема мне бы напомнила работу с Java, как в еще одной среде для разработки от JetBrains IntelliJ IDEA. А так как я не Java разработчик то выбор стал очевиден, и я сразу выбрал себе схему “Dracula”.
На следующем шаге вы можете выбрать, какую keymap scheme использовать для вашых приложений.
Здесь нет ничего особенного, и те, кто работал с Visual Studio, уже видели это окно для решарпера.
И на последнем степе у вас будет окно, в котором вам скажут, что вы счастливый обладатель этой уникальной IDE.
Если честно, то все создание проектов сделано в стиле визарда. То есть, по сути первое окно, которое вы увидите в реальном проекте, вы сможете выбрать существующий проект или создавать новый, а также настроить Version Control, если вам это нужно.
Создадим по классике простое приложение “Hello World”, тем более, если вы нажмете New project, то выбор у вас будет небольшой.
Хотя небольшой я, конечно, загнул, учитывая тот факт, что на выбор у вас будет только пять темлейтов. А если быть вообще честным, то выбор последних двух я вообще не понимаю. Я еще могу понять использовать DNX в ASP.NET Core, но создавать консольные приложения не нахожу особого смысла. 
Мы же пробуем создать простое консольное приложение, поэтому второй пункт нам подходит.
На следующем степе мы можем задать имя нашего проекта, что мы можем увидеть на рисунке выше. Странно, почему JetBrains захотели объединить это с предыдущим шагом для удобства, напрашивается только одно предположение – “Чтобы не было так, как сделано в Visual Studio”.
На следующем окне мы можем увидеть наш созданный проект.
Сам дизайн неплохой. Единственный минус  так это разбираться в корреляции MS Build.
Интересно, чем руководствовались дизайнеры JetBrains в плане удобства выбора.
Если вы работаете с Mono, например, то можете выбрать настройку моно, как показано на рисунке ниже.
А затем в следующем окне указать к нему путь.
Поскольку мы перешли в настройки Райдера, то я вам хочу сказать, что в плане кастомизации его можно настроить, как душе угодно. Например, на скриншоте ниже показано, как можно настроить быстрые клавиши ко всем меню.
Но предлагаю не останавливаться долго на настройке, а перейти в сам редактор, открыть наш файл Program.cs и изменить его следующим образом:
using System.Collections.Generic;
using static System.Console;

namespace ConsoleApplication
{
 
class Program
  {
   
static void Main(string[] args)
    {
      WriteLine(
"Hello Rider");
      ReadKey();
    }
  }
}

Теперь можно запустить наш пример комбинацией клавиш Ctrl + F5 или нажать на кнопку запуска в самом крайнем правом углу. Если честно, то JetBrains в этом плане сделали самый удобный вариант запуска вручную, нежели любой другой, который я когда-то видел. На самом деле было бы намного удобнее вообще спрятать ее с панели, чтобы не мешала. (Это был небольшой сарказм.) Давайте запустим наш проект, чтобы посмотреть на то, что получилось.
Как вы можете заметить, что результат выполнения выводится в свое консольное окно. В Райдере есть свой аналог Watch с Visual Studio. Я не описал одну важную вещь, ради которой эта среда разработки делалась, а именно – то, что, по сути, у вас в среду разработки встроенный Resharper, по аналогии, как это сделала Microsoft и добавила Roslyn как background анализатор с Visual Studio 2015. Но к сожалению, Rider пока не может составить конкуренции VS. Разве что в ближайшем будущем все изменится.
Кстати, достаточно интересно выглядит подсветка синтаксиса в Rider.
Лично мне нравится желтый цвет на сером фоне.
Давайте сразу не отходя от кассы попробуем создать DNX Console App, закрыв при этом текущий проект. Сделаем его по аналогии с предыдущим и выведем тоже какое-то приветствие на экран.
using System.Collections.Generic;
using static System.Console;

namespace DNXConsoleApp1
{
 
public class Program
  {
   
public static void Main(string[] args)
    {
      WriteLine(
"Hello DNX Rider");
      Read();
    }
  }
}
После запуска приложения получим результат на экране.
А затем я решил немного усложнить задачу и попробовать скормить Rider одно из моих ASP.NET Core приложений; и проверить, как с этим справится Rider.
Сначала мне пришлось ждать несколько минут, чтобы он загрузил мой проект. Как видите погрузка проекта выглядит не очень, если честно. Но я так и не смог собрать свой проект в Rider. Затем я решил прост проверить, сколько же памяти съедает Rider, по сравнению с той же студией. Я был очень удивлен.
Rider на нескольких проверенных проектах съедал вдвое больше памяти, чем VS2015. Может сложится впечатление, что я расхваливаю здесь студию, но на самом деле я просто провожу замеры с той средой, которой постоянно пользуюсь.
Скорость загрузки тоже оставляет желать лучшего. Наверное, потому что внутри Rider ядро составляет Java. Не знаю, плохо это или хорошо, но как минимум, на скорости загрузки влияет.
Без багов тоже не обошлось. Ниже на скриншоте представлен один баг из семи отловленных на простых приложениях.
Как видите – Java во всей красе.
Часто во время работы можно увидеть падения ошибки в IDE.
Правда, есть плюс, что сама среда при этом не отваливается.
Еще один дефект порадовал: зависшая иконка загрузки в правом углу.
Так как эта иконка никогда не пропадала, то, наверное, это просто By Design.
Итоги
В итогах постараюсь ответить на ответ одного из разработчиков JetBrains на мой вопрос “Реально не понимаю, почему такое восхищение новой платной IDE, если есть бесплатная альтернатива?”, на что получил ответ “Потому что это же IDE, а не стиральные порошки.”. Так вот, если уже сравнивать IDE, то нужно хотя бы со стиральными машинками сравнивать. Где на одной чаше весов – стиральная машинка, которая работает отлично, имеет кучу плюшек, и которую дают вам бесплатно для собственного использования (VS Community), с другой стороны  такая же машинка с меньшим количеством функций, но которая может работать в другой среде (Linux, Mac OS) но за 1000$ сверху. Так вот, выбор очевиден в пользу машинки №1. 
Если взять сегмент корпоративной разработки и поставить цену меньше, чем та же VS 2015 Professional, которая стоит сейчас 45$ в месяц, а учитывая появления конкурента на рынке, думаю, цена еще упадет. Такова работа рынка. По поводу кросплатформенности, то мне сложно представить ребят, которые сидят на линуксе или маке и пишут программы под .NET. Хотя уже это больше холивар. Поэтому скажу заключающее слово о том, как это вижу я. Sales компании JetBrains продали среду, которой, к сожалению, с ее функционалом пока не с чем конкурировать. Хотя презентовали ее красиво, с этим не прикопаться. Мне нравятся продукты JetBrains, и я считаю, что выпуск Rider только поднимет конкуренцию на рынке ПО, но к сожалению, пока все очень сыро и, по сути, не за что отдавать деньги. Увы, но та же VS Community с Resharper будет уделывать Rider по всем фронтам, при этом я уверен на 90%, что цена будет намного ниже, чем нужно будет заплатить за саму среду разработки Rider

No comments:

Post a Comment