Comments 45
полностью написана на GoНу вот зачем?
В мире полно нормальных языков для написания утилит. С нормальной типизацией, ООП и прочим-прочим. Нет, нужно взять запараллеленый С, который вообще тут ни к селу ни к городу.
Я не фанат Go и у меня тоже есть мнение "как надо". Но какая разница на чём эти ребята делают свой тул?
В мире полно нормальных языков для написания утилит.
Pascal, C, Rust, Go и Python. Ну и C++ ещё в виде исключения для фанатов
этого языка. Возможно, Vala. Не так уж и полно.
По какому критерию отбирали? Почему нет C# и Java, если уж есть питон, которому тоже нужен рантайм? Или даже Ruby? Или JS?
C# — это значит, что вы хотите заставить тех, что хочет использовать вашу утилитку, ставить рантайм только ради неё одной. С Python такой проблемы нет: без python так и так не обойтись. Java в этом плане где-то посередине, на границе между "годится" и "не годится".
Ruby, насколько мне известно, в принципе умер окончательно и бесповоротно. Но тоже, конечно, можно добавить в список, вместе с Perl.
JS… боюсь, не могу ничего сказать по этому поводу без мата и не рискуя никого оскорбить.
А ещё я забыл про Ada. (Хотя кому нужна Ada при, пусть не живом, но всё же шевелящемся Rust? Но, почему бы и нет...)
рантайм только ради неё одной
Для .net наличие рантайма давно не обязательно docs.microsoft.com/en-us/dotnet/core/deploying/#publish-self-contained
Тогда если вы всё-таки напишете вторую утилиту, то каждая будет тащить рантайм с собой. Тоже не годится.
И потом, там всё это дело распаковывается на диск — то есть по сути программа получается вообще нерабочей (когда некуда распаковаться).
Если решите тянуть рантайм то на джаве он добавляет порядка десятка — другого мегабайт- все вся джава сейчас модульная, ненужные модули рантайма не тянутся.
Не обратил внимания, когда читал. Прямо полностью? Кто-то из знающих может подтвердить?
Go очень хорош для инструментов командной строки, возможно это его лучшая ниша. Показательный пример — утилиты для хакинга пентестинга, в последнее время новые пишутся преимущественно на Go. Даже в metasploit изначально написанном на Ruby (с ООП и всем, что Вам хотелось) появилась возможность писать модули на Go.
Лучшая, всё-таки, сетевые сервисы (ну и клиенты к ним) — там, где реально есть чем занять тысячи и миллионы горутин. Но утилиты, да, где-то вторая ниша Go, наверное.
Чем лучше обычной git?
git — это git, а gh — это если вам через броузер на гитхаб ходить западло.
Я ей сегодня весь день пользовался, чтобы составить впечатление — и пока оно крайне положительное. Открывать pr-ы, ждать пока пройдёт CI, и мержить их вполне удобно, я бы даже сказал — удобнее и быстрее, чем на сайте. README в консоли рендерит весьма неплохо при просмотре разных репо. В целом, вполне достойно, и старую hub
можно выбрасывать.
Вы может ещё и vim используете?
Даже не сомневайтесь! И могу это доказать собственными статьями: Удобная разработка для OS Inferno в Vim, viewdoc — удобный доступ к любой документации (это один из моих плагинов для vim). Я Вам больше скажу: я почту читаю в mutt! :)
Я люблю мышку… но Вы пробовали набирать мышкой текст? Мне не понравилось… :)
Ну что вы, в 5 классе что ли. Текст редактируется с клавиатуры. Фотошоп рисуется мышкой или графическим планшетом. Порнхаб нажимается мышкой.
Не все задачи сводятся к редактированию текста, даже если ограничиться программированием. Моя подколка не столько про сам vim, сколько про непонимание — нахрена в гитхаб ходить из консоли, если ты сам не скрипт на баше.
Элементарно: это быстрее и удобнее.
~ add-dal-mysql✘ git commit -m 'feat: add DAL for MySQL'
~ add-dal-mysql gh pr create -f
(тут надо ещё раз нажать <Enter> чтобы он сделал push)
~ add-dal-mysql gh pr checks
Some checks are still pending
0 failing, 5 successful, and 1 pending checks
✓ build-and-release https://github.com/powerman/go-serv...
✓ generate-TOC 6s https://github.com/powerman/go-serv...
✓ lint-PR-name 18s https://github.com/powerman/go-serv...
✓ test 1m12s https://github.com/powerman/go-serv...
- LGTM analysis: Go https://lgtm.com/projects/g/powerma...
✓ default 1m0s https://circleci.com/workflow-run/3...
~ add-dal-mysql gh pr merge -s
Squashed and merged pull request #62 (feat: add DAL for MySQL)
Deleted branch add-dal-mysql and switched to branch master
~ master
Учитывая, что в консоли много способов быстро повторить любую из этих команд не набирая её целиком, для создания и мержа PR теперь надо нажать буквально несколько кнопок, и это действительно намного быстрее, чем тыкать мышкой по кнопкам. При этом наглядность вполне сохраняется (я про вывод checks пока CI проверяет PR).
Это экономия на спичках. Если делать PRы по 2 строчки, наверное получится показать, что через консоль быстрее. Но в этом вашем примере >1000 строчек правок (16 минут если 1 строчка в секунду), поэтому потратите вы 1 секунду на gh pr create
или 10 секунд на тык-тык-тык в броузере на вашу продуктивность объективно не повлияет.
А я ничего о продуктивности и не говорил. Продуктивность эта утилита не увеличит, это правда. (Вот сам гитхаб, по сравнению с некоторыми реально тормознутыми альтернативами, продуктивность действительно увеличивает, но речь не об этом.)
Но помимо продуктивности есть вопрос комфорта. Я люблю гитхаб потому, что его юзабилити мне нравится намного больше, чем у других аналогичных сервисов. И данная утилита юзабилити гитхаба ещё немного улучшила, что меня радует. Бывают разные состояния, иногда хочется потыкать мышкой в браузер, а иногда не хочется отвлекаться от работы и переключаться куда-то из консоли и ждать, пока CI вынесет вердикт для нажатия ещё пары кнопок. Эта утилита отлично и в браузер помогает переключиться когда этого хочется, и обойтись без переключения когда этого не хочется.
Было бы удобно
Состоялся релиз консольной утилиты GitHub CLI 1.0
Учимся у профессионалов манипуляции фактами ("ловкость рук — и никакого мошенства" ©).
То, что это очередной (а именно — 23-й) релиз — неважно.
То, что перый релиз был 14.01.2020 — тоже неважно.
Релиз же? Релиз. То есть в заголовке — чистая правда.
Заголовок не звучит "Состоялся релиз 1.0 консольной утилиты GitHub CLI" (что на статью никак не тянет).
А согласно заголовку 1.0 — это и не номер релиза, а часть названия (типа "Windows 10").
В таком случае это да, событие — утилита GitHub CLI 1.0 никогда еще не релизилась.
Версия на самом деле называется 1.0.0 и праздник тут в том, что это "первый мажорный релиз" (https://semver.org/)
Оу, а так можно было?
То есть прямо сейчас можно пройтись по всему гитхабу, насобирать первых мажорных релизов всего подряд и забабахать 100500 "статей"?
Состоялся релиз консольной утилиты GitHub CLI 1.0