Как стать автором
Обновить

Комментарии 434

Почему работать в консоли настолько приятно? Так задумано отцами-основателями Unix
Мне вот не приятно работать в консоли, и километровые маны и треды на Лоре читать не приятно. Напротив, дабы получить результат, приятно нажимать на кнопочки, при наведении на которые мне ещё и подсказку напишут. Ах да, ещё люблю стабильный API, а не набор случайных программ и хидеров, которые прикидываются им.
Собственно статья в типичном стиле «только UNIX», вида — терминал правильно, все остальные подходы — для пользователей.
Особая философия Unix настолько глубока и фундаментальна, что породила целые классы Unix-подобных систем, к числу которых относятся BSD, macOS и Linux. Все они построены на этой философии. А побочный эффект работы в такой системе — чувство правильности и цельности. Что так всё и должно работать: из кирпичиков, маленьких строительных блоков, которые сцепливаются в конвейеры любой сложности. Это же гениально.
Особенно люблю, когда начинающему разработчику, который ещё «hello world» не научился писать(на любом языке), вместо помощи, или хотябы игнорирования, вбивают в голову философию и какой дистрибутив Arch(ведь стабильная Ubuntu тоже для пользователей, а не профессионалов) следуют поставить. Часто заканчивается тем, что человек бросает это сложное и непонятное программирование, так и не узнав что существуют IDE, а не только лишь Vim, да и программировать можно не только в никсах.
Выпиливание из FireFox-а FTP клиента, со словами «пользуйтесь отдельной программой» видимо тоже часть философии, класс, это же гениально!

А просто прочитать 10 абзацев и просмотреть парочку картинок с информативной и исторической точки зрения, радоваться жизнью и продолжать клацать по кнопочкам, а не ныть, слабо? Тем более что в статье не нашел призыва пересесть на консоль.

Медленно достаю свой старинный побитый неумелым программированием ноут, неспешно подключаю к СОМ порту давний собственно спаянный девайс, и медитативно из консоли начинаю мигать светодиодами
Не согласиться значит ныть? Высказать свою точку зрения зазорно? Точка зрения вполне разумная, между прочим, тоже люблю логичные и удобные интерфейсы, не понимаю восхваления неудобных, хоть и без призыва перехода на них. Реклама бывает как с призывом покупки его-то конкретного, так и имиджевая, вот тут второй вариант :)
Программы с графическим интерфейсом разговаривают с нами практически на одном и том же языке понятий, действий, символов (привет, кнопка с дискетой!). Консольные программы — чуть ли не каждая имеет свой язык, причём основанный даже на разных принципах. И детальное знание sed ничуть не поможет в работе с ffmpeg, придётся изучать с нуля целую систему понятий, сокращений, способов указания аргументов (через пробел, без пробела, через двоеточие, через дефис, через двойной дефис, в кавычках, без кавычек, бонусные очки — за произвольную комбинацию способов в разных параметрах одной и той же программы) и прочую арканологию.
ffmpeg — это вообще головная боль. Учитывая, что нужен он раз в полгода, каждый раз приходится вдумчиво гуглить, как сделать то-то и то-то, а ещё надо учитывать, что синтаксис регулярно меняется. Man? Ну-ну, удачи вам.
НЛО прилетело и опубликовало эту надпись здесь
А с чего бы куче окошек с галочками жрать гигабайты памяти? Нет, я не спорю, если постараться, можно и так сделать.
Кроме того, если оформить всё это в GUI, внезапно окажется, что не так уж там много возможных действий. Чем GUI и выигрывает — не надо на каждое действие делать отдельную кнопку, всё можно разумным образом сгруппировать.

Тогда посоветуйте такой GUI к ffmpeg. Я не знаю, какая самая труЪ программа для конвертации видео, каждый раз страдаю: их выше крыши, они предоставляют различные ~ненужные~ функции, не предоставляют нужные, зачастую платные итп итд.


Недавно я искал конвертер, скачал какой-то из поисковой выдачи. Оказалось, уменьшить разрешение можно, а увеличить (растянув) нет. Выбрать всю папку можно, несколько файлов из папки нет.


Пришел к выводу, что быстрее было бы сдеалть с помощью ffmpeg (который, к к тому же, уже стоит или ставится за 15 секунд через apt/pacman/etc), чем перебирать GUI-шные проги и читать обзоры вида "Топ 10 бесплатных видеоконвертеров".

НЛО прилетело и опубликовало эту надпись здесь
Тогда посоветуйте такой GUI к ffmpeg.

HandBrake

И небольшая цитата из статьи habr.com/ru/post/400251
Можно сказать, что это идеальная графическая оболочка для ffmpeg (кстати, команды ffmpeg можно изучать по логам HandBrake, это лучше мануала).


Первый же комментарий: "С другой стороны, некоторые настройки в нём намертво прибиты гвоздями и не настраиваются."
За четыре года, может, что-то и изменилось, конечно.

Если не изменяет память, это и есть герой моего комментария. Увеличить нельзя, обработка нескольких файлов как-то через задницу. Не исключено, что не осилил. Или спутал.

А как HandBrake прикрутить к скрипту или автоматизации?
Эм, а зачем? Это прослойка между пользователем и ffmpeg, для консоли она не нужна, что очевидно.
И тем не менее, у него есть CLI-версия,
apt show handbrake-cli
[...]
Description: Versatile DVD ripper and video transcoder (command line)
HandBrake is a versatile, easy-to-use tool for converting DVDs and other
videos into H.264, XViD, or OGG formatted media. It's particularly useful
for making videos that are compatible with portable video devices such as
the Apple iPod/iPhone or Sony PSP.
.
This package contains the command-line variant, HandBrakeCLI.
Самой труЪ программы не знаю, но xmedia-recode работает поверх ffmpeg и для моих домашних задач вполне подходит. Подозреваю, что отличия от HandBrake минимальны.
GUI с доступом к базовому функционалу ffmpeg будет выглядеть как-то так. GUI с доступом ко всему функционалу будет выглядеть так, что проще разобраться в его синтаксисе, чем прыгать по десяткам вкладок с сотнями чекбоксов и дропдаунов.
Ну вот это как раз тот пример, когда программист берётся делать GUI.

image
Дело в том что если функционал большой, то GUI всегда будет перегруженный. А чтобы он не был перегруженный нужно убирать функционал\настройки. А если их убирать то утилита уже подойдет не на все случаи жизни, а только на те, которые создателю UI показались нужными. Соответственно с более-менее нестандартной задачей можно будет пройти в известном направлении.
У Photoshop GUI перегруженный? У MS Office перегруженный?
Photoshop — это работа с графикой, а не с данными, там без GUI никак в любом случае. Я уже где-то писал что прямая работа через консоль с не текстовыми данными — это, как правило, плохая идея. Но вы когда-нибудь пробовали сделать что-то нестандартное там, что раскрывает полный потенциал программы? Или по настройкам полазить? Photoshop actions не зря придумали.

Хотя несомненно Photoshop является удобной программой, возможно лучшей в своем роде.

Что касается MSOffice — попробуйте решить следующую задачу в Excel не используя код\формулы: есть два набора данных, где есть ключ (id), который совпадает и некий набор данных.
Например:
«somekey»;«mistergrim»;«05:04»,«somekey»;«MSOffice»;«GUI»;

А на выходе нужно получить следующее:
«somekey»;«mistergrim»;«05:04»;«MSOffice»;«GUI»;

Естественно таких строк очень много и разбросаны они в произвольном порядке.

С использованием формул или скриптом на VBA это делается довольно просто, получится ли у вас это сделать используя только GUI?
Не-не-не, давайте вот про скрипты не будем. Это действительно «другое». В любом случае, они лишь дополняют, а не заменяют GUI.
Но речь всё же немножко не о том, а о том, что в упомянутых программах возможностей на порядок больше, чем в ffmpeg, но! на нас не вываливают их все кучей. И основные, наиболее часто используемые  — все на виду. Ресайз картинки в фотошопе любой школьник может сделать, который даже его в глаза не видел. А вот как сегодня называется команда ресайза в ffmpeg? MAN FFMPEG и поехали.
У ffmpeg наверное с 1000 флагов наберется при, по сути, 5 функциях (конвертирование, обрезка, ресайз, фильтры, запись), у соответствующих функций в Photoshop столько настроек не наберется.

И логичнее сравнивать с Premiere Pro: обрезать видео там действительно любой сможет и это интуитивно понятно, а что-нибудь посложнее?
И что-нибудь посложнее делали. И в 3dsmax ворованном заставки для местного ТВ делали. И это без всяких книжек и интернетов. Вы 90-е вспомните, как это всё было.

А я не осилил. Правда, мне и не сильно нужно было.


Хотел сделать записи игры, и внизу текстовые комментарии по ситуации. Открыл Adobe Premiere — ничего не понял и закрыл. Открыл что-то ещё под win — ничего не понял и закрыл. Открыл kdenlive — тоже ничего не понял и закрыл.

Если наборы ключей совпадают, то тупо две сортировки и один копипаст.
Буквально на днях у меня был в точности такой случай, и решился четырьмя кликами в GUI.
Это если в одном из наборов не пропущена какая-нибудь строчка, т.е. длина обоих наборов данных одинаковая. Каюсь, забыл об этом написать изначально. У меня просто недавно была такая задача, набор данных на примерно 5000 строк в одном файле и где-то на 4950 в другом.
У меня было ~2000 в каждом и разница в ~10 ключей, без проблем обошёлся гуём :)
Придется ведь руками сидеть и просматривать где пропущена строчка, это займет много времени и вообще предельно неудобно.
diff поможет.
diff в Excel? С GUI?
В Excel, который создан для анализа данных, нет способа анализировать данные? Наверное, надо учиться его готовить ;)
Или это challenge такой — принципиально не использовать клавиатуру? Так формула для сравнения мышкой набирается…
Когда они отсортированы и состыкованы рядом, это делается со скоростью прокрутки экрана вниз.
Спорно и зависит от набора данных. Например, если у вас в качестве ключей IP адреса, а в каждом наборе данных хотя бы столбцов по 6, то нет.

Контрпример — Blender. Уйма настроек. Практически всё доступно в GUI(за исключением, например, "отрендерить вьюпорт в картинку вместо экрана", это надо делать через Python, смотри далее), разбитом на режимы и закладки, плюс он ещё и конфигуриуется. И не перегружен, и доступен.
Скриптинг через Python, включая как построение сцены/анимирование/композитинг, так и команды запуска рендера и подачу скрипта на автоисполнение.
И сверх того команды для консольного запуска, вплоть до "взять ту сцену, запустить вот этот скрипт, отрендерить результат вот туда, GUI при этом всём не включать", что позволяет поставить его в планировщики и всякие автоматизированные системы распределённого рендера "кадр тут, кадр здесь" без задействования оператора.


То есть вполне можно сделать нормальный GUI. И сделать доступным примерно всё. И не перегрузить пользователя. Одновременно.
И при этом предусмотреть "расширенный режим" для тех, кому не обязательно нужен GUI.

Тут возникает вопрос: а не потребует ли разработка/имплементация адекватного гуя больше человеко-часов, чем сам функционал?

Забавно, что именно Blender как раз регулярно выставляют примером неудобного и перегруженного GUI. И кому верить?

Возможно, дело в версии. Блендер с версии 2.80 и далее получил переработанный интерфейс. И стал знатно удобней.

К вашей задачке для Excel: удаление дубликатов производится соответствующей кнопкой в панели «Данные». Либо через продвинутую фильтрацию, которая тоже кнопками включается. Либо через поиск. Формулы (или боже упаси VBA!) для этого не требуются.
Там не про удаление дубликатов, а про INNER JOIN двух диапазонов.
Это можно сделать и через PowerQuery — тоже без формул и без скриптов — но это, наверное, ещё больший оверкилл.
Так ведь «только GUI» совсем не отменяет формул. Щелк по «fx» слева от поля ввода, выбрали «ВПР» из списка формул, мышкой протащили диапазоны. Ну да, номер столбца и режим поиска придется ввести с клавы, но любом GUI всегда есть поля ввода значений. Вполне себе вариант когда лень тянуться к клавиатуре набирать формулу руками.
У MS Office до 2007й версии интерфейс был под стать задачи: можно было организовать рабочее пространство с быстрым доступом ко всем активно используемым функциям. Остальные функции (которые можно и не вспомнить) были доступны через меню и их можно было найти тупым перебором, если понимаешь, что тебе нужно (и, соответственно, имеешь представление, в каких пунктах меню искать).

Потом они придумали ленту, которая объединила меню и тулбары, вобрав минусы обоих. Да, для людей, которым ворд — тупо текстовый редактор с минимальными функциями форматирования, стало гораздо проще. Но эффективность работы, когда ворд — это инструмент, стала хуже. Не говоря уже о необходимости держать в голове майдмап того, на какой вкладке какая функция (т.е., знать этот редактор достаточно хорошо, чтобы помнить, где находятся используемые функции).

Естественно, есть люди, которым лента нравится. Но имея опыт нечастого (раз в год) чрезвычайно активного использования ворда (вёрстка сложного документа из пачки более мелких), пришел к решению договориться со всеми кто готовит исходные доки, чтобы они при необходимости сохраняли в режиме совместимости (отдельную головную боль приносит Equation, которые мелкомягкие тоже поменяли без обратной совместимости, впрочем здесь тоже есть решение).

У Photoshop еще как. Что бы в нем начать нормально работать нужно примерно пол года учится.


Тот же Procreate в разы легче для освоения. Хотя и функционала поменьше да.

Не сильно похоже чтоб это делал программист. Программист бы придумал для переименования файлов удобный синтаксис паттернов — скажем, как это сделано в Total Commander. Тут же явно делал гуйщик, которого просто пугают любые текстовые выражения.
Это очень хорошая программа. И интерфейс у нее крайне удобный
О! Спасибо, что напомнили мне этой картинкой, почему я слез сначала с Win, а потом и GUI к софту как-то искать перестал :-D
Здесь напрашивается аналогия между языком жестов и речью. Язык жестов всем хорош, его даже в совершенно незнакомой стране поймут, но изучить иностранный все-таки лучше и удобнее, потому что позволяет проще выражать намерения.
При чем, как с иностранным языком, есть правила, есть исключения. Но со временем они заучиваются тоже.
Язык жестов всем хорош, его даже в совершенно незнакомой стране поймут
Не факт, что поймут — у жестовых языков свои разные группы и диалекты, причем географически не совпадающие с устными. К примеру, американскому глухому человеку будет затруднительно общаться с британскими глухими — это языки разной группы, они отличаются довольно таки сильно. А вот русским понять американцев и наоборот будет несколько проще, т.к. языки принадлежат французской группе.
Как интересно. Надо будет изучить этот вопрос. Но я про то, что делают обычные люди, а не глухие.

Насколько мне память не изменяет, пока в одних сторонах кивать головой это "да", в других этот же жест означает "нет".


P.S. Погуглил — Албания, Болгария, Греция.

А показать язык — это символ доброжелатльного приветствия в Тибете.
(Нужно же продемонстрировать, что он у тебя не чёрный, а, значит, ты — не демон.)
Программы с графическим интерфейсом разговаривают с нами практически на одном и том же языке понятий, действий, символов (привет, кнопка с дискетой!). Консольные программы — чуть ли не каждая имеет свой язык, причём основанный даже на разных принципах.

Я бы поспорил. Так же, как у GUI есть паттерны (кнопка дискеты, меню, чекбоксы, "кнопка гамбургер" итп), у консоли тоже есть свои паттерны:


  • -h/--help, man xxx. Собственно, точка входа, если вы не знаете, как этим пользоваться. Есть почти везде
  • длинные --long и короткие -s аргументы
  • работа через stdin/stdout

Да, не везде это так (напр. не все принимают stdin), но и GUI не всегда красивый и понятный. Особенно, если его делал программист для себя/других программистов (а большинство консольных утилит — это вот такой опенсурс).


Ну и да, вы можете сказать, что этих общиъ паттернов мало, но и GUI программы не повторяют друг друга 1-в-1, а просто имеют общие паттерны, и в них все равно нужно разбираться, особенно, если функций там выше крыши.

image

Однако если захочешь загуглить помощи в интернете, то консольные команды — это просто команды, а для гуя придется смотреть видео на 20 минут, или пытаться интерпретировать «нажмите кнопочку с маленькой стрелочкой которая заворачивается сама в себя, но не сама в себя, а как бы в сторону, назад» (это почти прямая цитата, по памяти).
А вот про аргументы к командам, кстати, есть вполне четкая логика, которая валидна почти везде
Как вариант есть статьи со скринам. Но что больше всего меня раздражает в этом, что статьи не обновляются. Ищу в гугле как сделать то-то на том-то и нахожу статью. Захожу, а там все скрины не похожи на мои, глянул дату, статье уже года 3 и гуи у меня уже совсем другой.

Отсюда проблемы так сказать с гуи. Чтоб обновить статью нужно либо переснять видео, либо по новый переделать скринов. А команды просто переписать, если там совсем кардинально не поменялось, хотя обычно команды и не меняют
Конечно, ведь тогда упадет куча легаси
Гугл на свои продукты иногда не обновляет иструкции. И ты пытаешься что-то сделать по официальному мануалу, а там всё уже по-другому
хотя обычно команды и не меняют

Расскажите это админам MS Exchange, где с 2007 по 2016 версии роль PowerShell дважды менялась с "очень редкие вспомогательные операции" до "практически всё управление — только здесь" и наоборот. Соответственно, синтаксис командлетов тоже менялся, при чём весьма значительно. GUI, правда, там менялся не меньше — от чистого MMC до чистого WEB.

Столкнулся с подобным при работе с Blender. GUI очень сильно меняется из года в год. Найти актуальные скрины в инструкциях практически не возможно.

Все так. А потом выяснится, что это видео было снято на другой минорной версии программы и там такая кнопка выглядит по-другому или находится в другом меню. А то и вовсе ее теперь нет.
Это не говоря про косяки вида опция сейчас «включена» или «выключена», т.к. автор решил вместо однозначных чекбоксов использовать изменение цвета фона кнопки на непонятно какой оттенок.
В консоли два основных плюса относительно графического интерфейса — выразительность (то есть *больше действий* можно сделать *меньшими усилиями*) и history. Но и два требования.
Обладая 1) хорошим знанием клавиатуры 2) хорошим знанием системы (либо используя history — то есть разобравшись один раз и умея найти команду с помощью CTRL+R — желательно используя FZF) — решать задачи с консоли эффективней (то есть быстрее) В РАЗЫ. Если 1) или 2) пункта нет — то графический интерфейс будет, конечно, удобнее. Но если компьютер это ваша работа и с работой вы предпочитаете справляться хорошо — лучше подтянуть 1) и 2) пункты.

Скажем так, если вместо того что бы написать «cd» вам быстрее 1) взять мышку в руки 2) начать вести в сторону «мой компьютер» 3) попытаться ПОПАСТЬ в эту иконку — то есть ее можно проехать, недоехать, нужно замедлиться при приближении, и т.п. — значит у вас серьезные проблемы с клавиаутрой. Если дрессировать обезьяну на консоли и на GUI (то есть вас) — на дистанции быстрее будет «cd». Добавим что современный shell (например fish) при cd сразу предложит закончить команду той директорией, в которую вы последний раз заходили (как и с другими командами, впрочем).
Скажем так, если вместо того что бы написать «cd» вам быстрее


Win+E — открывает окно проводника
В адресной строке есть что-то похожее на completion
Никто не запрещает открыть сколько нужно окон в разных каталогах и переключаться к 1 клик мышки.
Вывод: GUI тоже можно изучить.
Я вот сейчас ради интереса в винде попробовал это сделать.
Чтобы без мыши перейти в директорию, надо один раз нажать Win+E, подождать пока оно откроется, потом нажать 3 раза таб (причем промахнуться легко, он подсвечивает только символ >, я промахнулся несколько раз в процессе, причем быстро это делать не получится, даже если запомнить количество нажатий, т.к. надо ждать пока окно появится), потом нажать Enter или пробел, чтобы поле ввода адреса выделилось, потом ввести нужны путь (причем аналога tab нет, нужно поставить слеш и подождать), а потом оказывается, что ширина дропдауна ограничена и ты реально не видишь окончание пути и надо уже реально по одной перебирать, потому что в поле адреса виден конец пути, а в подсказках — только начало.
Изучить конечно можно, но вот уж реально — проще мышкой натыкать.
потом нажать 3 раза таб (причем промахнуться легко, он подсвечивает только символ >, я промахнулся несколько раз в процессе, причем быстро это делать не получится, даже если запомнить количество нажатий, т.к. надо ждать пока окно появится), потом нажать Enter или пробел, чтобы поле ввода адреса выделилось

Меняем на F4 -> Ctrl + A.
Ещё лучше на Alt-D (возможно, в неанглийской винде иначе)
Меняем на F4 -> Ctrl + A.

Работает. Но почему-то в таком режиме сломались подсказки. Как будто что-то рисуется поверх дропдауна. При этом если табом перейти, то все хорошо.
Ну и глобально это косяк с подсказками не чинит.
Подсказанный ниже Alt+D кстати не ломает.
Но в любом случае, это дольше. И очень не хватает tab-tab для листинга возможных вариантов с учетом частичного ввода. Учитывая поломанные подсказки для длинных путей — такое себе решение. Хотя технически работает, да.
F6 -> Enter
НЛО прилетело и опубликовало эту надпись здесь

Можно чуть быстрее — Win+R и начинаем ввод пути… потом — Enter. Наглядная автоподстановка (в том числе и сетевых шар по SMB) — бонусом.

Так и должно быть. Более того, в GUI бывает точно так же. Потому что есть такое понятие — предметная область. И любая мало-мальски сложная предметная область — обладает своим языком, понятиями, терминологией (возьмите хоть любой из читаемых в ВУЗах курсов). Консольные программы, оперируя текстом, отражают язык соответствующей предметной области довольно чисто. А в GUI у вас появляется выбор: или оно говорит на понятных всем символах, а значит, не может действительно сложные вещи. Или в этом GUI опять же должны быть введены соответствующие языку предметной области символы, и тогда в таком GUI опять же придется разбираться — примером тому рядом по треду люди сообщали о редакторах видео, где кроме примитивных операций типа обрезки ничего не было понятно, как делать.


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

Так и должно быть. Более того, в GUI бывает точно так же. Потому что есть такое понятие — предметная область. И любая мало-мальски сложная предметная область — обладает своим языком, понятиями, терминологией (возьмите хоть любой из читаемых в ВУЗах курсов). Консольные программы, оперируя текстом, отражают язык соответствующей предметной области довольно чисто.
Эээм, а например редактор схем? Консольная программа ДЕЙСТВИТЕЛЬНО сможет правильно отразить предметную область, серьезно?
А в GUI у вас появляется выбор: или оно говорит на понятных всем символах, а значит, не может действительно сложные вещи.
Можно мне аналог Photoshop консольный привести в пример. Действительно есть более продвинутая консольная версия, в которой можно делать более СЛОЖНЫЕ вещи?
Или в этом GUI опять же должны быть введены соответствующие языку предметной области символы, и тогда в таком GUI опять же придется разбираться — примером тому рядом по треду люди сообщали о редакторах видео, где кроме примитивных операций типа обрезки ничего не было понятно, как делать.
Тут в комментариях уже обсуждали одну консольную программу для обработки видео, с которой без копипаста не разобраться.
Отдельно в контексте статьи и начала треда нужно заметить, что работа программиста, по сути, заключается в переводах между разными языками, т.е. у него не должно быть проблем с изучением новых языков. Соответственно, программист, который жалуется, что у него проблемы с изучением языков, как минимум вызывает недоумение, если не сказать неполноценен.
Консольный интерфейс конкретной программы обычно не является языком программирования, поэтому не очень понимаю о какой неполноценности речь, даже более того — программист в принципе не обязан изучать все языки.
Не переживайте, в посте тоже преимущества суровой консоли демонстрируются в интерфейсах с окошками и кнопочками :-)
Ну, а что — приятно же рассказывать об удовольствии прогулок пешком по лесу, когда в гараже есть бмв?

Если что: я где-то с 70-х с компами общаюсь, все варианты прошёл — и прямой ввод hex с пульта, и «консулы» и все стадии экранных интерфейсов. Как и положено, любой вариант, если нет выбора — наказание и абсурд.
демонстрируются в интерфейсах с окошками и кнопочками :-)

Это вы про что?
Ну, а что — приятно же рассказывать об удовольствии прогулок пешком по лесу, когда в гараже есть бмв?

Но по лесу я лучше пешком, ваш бмв между первых кедров вклинит. Просто каждому инструменту свое. Что-то удобней, надежней и быстрее в консоли, что-то и мышем натыкать будет эффективнее. Сам и консоль и мышь использую. Нужен просто разумный баланс, опирающийся на характер задачи (точнее, ее решение). Фаерволл в линуксе я лучше руками пропишу, а фотку отредактирую в гимпе, мышем

Если что: я где-то с 70-х с компами общаюсь,
все варианты прошёл — и прямой ввод hex с пульта,
и «консулы» и все стадии экранных интерфейсов

Аналогично, коллега!
Ну только я начинал на втором десятке прожитых лет соответственно во второй половине 80-х.
Тем, кто всё это начинал в 70-80-90 (наверно не позднее первой половины 90-х), тем консоль — не только не помеха, но даже и наоборот, друг, товарищ и брат! (ну или сестра, если консоль — она; а если терминал, то очень даже и брат)

На кнопочки жать приятно если в команде был дизайнер интерфейсов, иначе всё это превращается в ад и получается что всю работу проще сделать через консоль.
Если консольная утилита хорошо спроектирована — ею тоже приятно работать.
Если интерфейс командной строки проектировали как попало, то получается git. Простите, не удержался, ничего личного.

Любой интерфейс надо с умом проектировать, чтобы с ним было приятно работать.

Не стоит так словами необдуманно бросаться. С CLI у git дело обстоит получше многих других утилит. Если Вы не видите системности, это не значит, что её нет. Она есть.

"получше многих других утилит."


Есть утилиты, у которых с понятностью ещё хуже. Возможно ;)


"Если Вы не видите системности, это не значит, что её нет. Она есть"


Системность подобна суслику :) Она конечно же есть, но зачем ее так усиленно прятать?

С системностью у гита плохо, как и у других поделий Торвальдса. Полторы сотни команд на системность никак не тянут, простите. И это еще только количественный признак, не рассматривая мешанину ключей и действий ad hoc внутри многих из них.

У Торвальдса буквально есть лишь одно "поделье" — ядро линукса. И то, что вы так огульно складываете всё в одну корзину лишь демонстрирует, что ваш тезис про "несистемность" базируется на невежестве.


PS: работа с git из консоли проста и логична — когда ты действительно понимаешь как он работает. И это снова приводит к контексту невежества.

начинающему разработчику… вбивают в голову философию и какой дистрибутив Arch… человек бросает это сложное и непонятное программирование

Но ведь ничего про это в статье нет. Мне кажется это какая-то ваша личная история (ну, скорее всего не ваша, а где-то виденная вами), которую вы зачем-то спроецировали как общую ситуацию.
Что же касается «терминал правильно, все остальные подходы — для пользователей» — весьма часто так оно и получается. Огромное количество именно компьютерно-профессиональных вещей делается в консоли. Никто не заставляет писать код в Vim вместо привычной IDE (хотя и не запрещает), но GUI для очень многих программ или слишом сложны, или избыточны, или бесполезны с практической точки зрения.
Кроме того, как человек, который использует i3 в роли wm из-за развитой системы хоткеев и автоорганизации пространства могу сказать, что для скорости и удобства очень важны именно хоткеи — клавишные комбинации. Возможность писать, запоминать и повторять команды вслепую и с максимальной скоростью очень и очень помогают продуктивности.
Да, те же IDE позволяют _почти_ всегда обойтись без мыши, но стоит привыкнуть делать все с клавиатуры и оказывается, что так проще объяснять, проще запоминать, проще искать и проще повторять. Но кривая освоения да, совершенно другая и плохо подходит для массового внедрения (что и доказала практика).
Но кривая освоения да, совершенно другая и плохо подходит для массового внедрения (что и доказала практика).

Кстати не факт. Неизвестно как бы выглядел наш мир, если бы Microsoft в свое время не монополизировали рынок операционных систем.
С современными системами автодополнения и удобной консолью, можно не читая мана вполне разобраться как работает консольная команда, просто тыкая Tab, и смотря что получилось; также как все учились гуям тыкая во все кнопки подряд.
Никто не заставляет писать код в Vim вместо привычной IDE (хотя и не запрещает), но GUI для очень многих программ или слишом сложны, или избыточны, или бесполезны с практической точки зрения.

Это всё нивелируется клавиатурными шорткатами. «Не-консоль» — это необязательно «мышь и кнопки». Какой-нибудь FAR (mc, что угодно) в противовес консоли при манипуляции файлами — это тоже не мышь с кнопками, а клавиатурные комбинации, но при этом с визуальной составляющей.
Не то, чтобы нивилируется, на самом деле. Да, я пользуюсь иногда mc, он удобен в некоторых кейсах, но большую часть времени я просто далаю все через консоль, потому что просто мне лично быстрее таскать файлы через cp/mv или удалять через rm с возможностью быстро указать фильтр (вроде mv *.asd ../new/), чем в GUI (mc — это тоже GUI) селектить нужные файлы и потом тыкать f5.
Ну то есть каждый пользуется на самом деле чем угодно, просто имхо нельзя сказать, что что-то чем-то нивелируется. По гибкости, потенциалу для сложных операций и автоматизации треминал все-таки вне конкуренции. Но, если использование сводится к «иногда скопировать, переместить или удалить файл или папочку в другую директорию», то в целом никаких ощутимых проблем не будет. Пока не понадобиться поискать файлы с определенного типа, включающие в себя строку «habrhabr» и получить их список отсортированный по дате модификации.
Вот тогда становится больно и, хоть я потратил сейчас пару минут чтобы вспомнить синтаксис awk, но заменить подобное:
grep -r habrhabr -l .|xargs stat -c '%Y %n'|sort|awk '{ print strftime("%c",$1) $2 }'
# или, если не знаешь что awk умный
grep -ri habrhabr: -l .|xargs stat -c '%Y %n'| sort| awk '{print $2}'| xargs ls -ltr --time-style="+%Y%m%d %H:%M"
# или, если нужен самый свежий файл, то просто
grep -ri habrhabr: -l .|xargs stat -c '%Y %n'| sort| tail -1

интерфейсом быстро получится вряд ли, а если и получится, то времени на этой уйдет сильно больше чем на 2 гуглозапроса «grep sort by date» и «linux how to convert unix timestamp to date», остальное достается из головы без особых проблем. А ведь потом это еще можно алиасом повесить/в скрипт положить и искать просто командой «whereIsHabr $dir_to_search».
По гибкости, потенциалу для сложных операций и автоматизации треминал все-таки вне конкуренции.
Тут соглашусь.
Но, если использование сводится к «иногда скопировать, переместить или удалить файл или папочку в другую директорию», то в целом никаких ощутимых проблем не будет.
А тут, на мой взгляд, большинству всё-таки удобнее в файловых менеджерах
Пока не понадобиться поискать файлы с определенного типа, включающие в себя строку «habrhabr» и получить их список отсортированный по дате модификации.
В проводнике в Win7 для этого надо набрать habrhabr в поле поиска, кликнуть «тип:» выбрать или набрать (если нет нужного) тип файла. Потом выбрать «Дата изменения» в поле «Упорядочить»

Для того чтобы это проделать мне не пришлось ничего гуглить. Я только знал, что в проводнике есть поиск. Остальное наклацал, глядя на визуальные подсказки интерфейса.

Вы выбрали неудачный пример действия, которое нужно многим, и поэтому есть хорошее гуёвое решение.

P.S. показательно, что конкретные опции grep и awk вам пришлось гуглить, а не писать из головы. Графический интерфейс своим наличием даёт подсказки, что позволяет гораздо реже гуглить или читать маны.
После grep -r необязательно ставить точку, она подразумевается по умолчанию. (Просто в качестве лайфхака)

Зависит от версии грепа.

Вы правы, эту фичу закоммитили лишь девять лет назад.
Консоль, конечно, более гибка и универсальна, спору нет. Но если об удобстве и конкретном приведенном примере, то можно и поспорить:
потому что просто мне лично быстрее таскать файлы через cp/mv или удалять через rm с возможностью быстро указать фильтр (вроде mv *.asd ../new/), чем в GUI (mc — это тоже GUI) селектить нужные файлы и потом тыкать f5.

Мне лично — наоборот, потому что выражение «селектить» для данного примера означает:
+
*.asd
Enter

После чего — F5
Далее, в зависимости от того, открыта ли у нас .\new или нет — либо просто
Enter
либо
.\new
Enter

По количеству нажатий — в худшем для GUI случае одинаково (даже чуть меньше, а в случае Windows cli, с «copy» и подавно), потому что обсуждаемые нортоноподобные менеджеры позволяют ввести как фильтр, так и целевую директорию — это текстовые поля. Их, менеджеров, плюс — в том, что если целевая директория открыта, становится еще удобнее. Подсказки по путям в консоли для быстрого набора имени файла тоже заменяются на Alt+начало имени файла для быстрого позиционирования.

и получить их список отсортированный по дате модификации.

Да, можно придумать такие примеры. Лично для меня это синтетический пример вида «как бы я съездил на другой конец города за тормозными колодками и маслом, если б не было машины», но у каждого свои задачи, конечно.

В моем случае (Far) это делается так: используем обычный поиск F7 для задания маски файла и подстроки поиска в файле (это стандартный функционал начиная с первого нортона, наверно), потом используем опцию «Panel», которая создает временную панель с найденными файлами. Сортируем ее так как нам хочется стандартными двухклавишными шорткатами.
Если мы хотим получить список, выбираем все файлы, потом копируем имена в буфер обмена, всё.

Osnovjansky
Ну, тут человек хочет этот список потом, наверно, не просто прочесть, а скормить чему-то еще для обработки в заданном порядке.
Ну, тут человек хочет этот список потом, наверно, не просто прочесть, а скормить чему-то еще для обработки в заданном порядке.

Если этот список выделить и мышкой перетащить на исполнимый файл, то он и получит этот список в заданном порядке.
Пока не понадобиться поискать файлы с определенного типа, включающие в себя строку «habrhabr» и получить их список отсортированный по дате модификации.

в FAR это делается в пару кликов =)

А ведь потом это еще можно алиасом повесить/в скрипт положить и искать просто командой «whereIsHabr $dir_to_search».

Добавляется в FAR USER MENU или вешаешь макрос и в один клик =)

Безусловно, но странно приводить в пример программы, которые изначально рассчитаны на работу без мыши и хоть и представляют собой некий GUI, но созданный в дополнение к чисто консольному интерфейсу. Не зря там внизу терминал висит (по крайней мере в оригинальном фаре он был, как сейчас — не знаю).

Тем не менее, то, о чем идет речь — решается НЕ доступом к консоли, я привел выше последовательности шагов. Вы же сами сказали, что нортоноподобные — это тоже GUI:
… мне лично быстрее таскать файлы через cp/mv или удалять через rm с возможностью быстро указать фильтр (вроде mv *.asd ../new/), чем в GUI (mc — это тоже GUI...)

А началось все с того, что я сказал, что ряд проблем нивелируется клавишными шорткатами, их комбинациями.

Для разных трюков с файлами придуманы файловые менеджеры. С помощью однострочников на bash достаточно эффективно можно делать те же трюки. Но far проще ;)

Нет, mc или Far — это не GUI, а TUI.

Во-первых, это слова моего собеседника, а не мои.
Во-вторых, это условное деление. Что считать текстом? Вот есть у вас TotalCommander — он еще TUI или уже GUI? Функционал и принципы те же.
Во-вторых, это условное деление. Что считать текстом?

Всё, чем можно пользоваться через ssh без -X.
Достаточно чёткое деление?
К ардуиновскому UART ssh не подключается никак. UART — не текстовый протокол. Логично? ;)
есть GUI, есть TUI, есть CLI — это все немного разные вещи.
Это «деталь технической реализации», а для пользователя нет разницы — панель и менюшки Farа нарисованы текстом или в TotalCommander'e текст нарисован попиксельно — интерфейс, его логика, тот же самый.

saboteur_kiev
есть GUI, есть TUI, есть CLI — это все немного разные вещи

С CLI вопросов нет. А вот допустим, у нас есть программа, написанная на Visual Basic for DOS или борландовских пакетах — там есть окна, чекбоксы, кнопки, но нарисовано все текстом, 80*25. Это мы считаем за GUI или за TUI? Чем, кроме технических деталей реализации, это отличается от графического окна в Win32 с теми же кнопками и чекбоксами?
Это «деталь технической реализации», а для пользователя нет разницы

Почему же, в mc я могу запайпить ввод вместе с управляющими последовательностями, а в totalcmd — не могу.
Соответственно, заскриптовать действия в mc я могу, а в totalcmd — не могу.
Утилиты от Microsoft для администрирования домена (NTDSUTIL) выполняются в консольном окне, но совершенно не скриптуются.
И в FARе не сможете, и в NC тоже. Хотя интерфейс — один и тот же.

saboteur_kiev
Ну вот фар я могу запихнуть в терминал, а тоталкоммандер — нет.

Ну и что? Это техническая деталь реализации — как выводится символ/меню на экран — попиксельно через GDI или через эмулятор терминала, который распознает символ в буфере и потом так же попиксельно его нарисует в графическом режиме. Пользователю, который с интерфейсом взаимодействует, оно до лампочки имхо.
Ну вот фар я могу запихнуть в терминал, а тоталкоммандер — нет.
Безусловно, но странно приводить в пример программы, которые изначально рассчитаны на работу без мыши и хоть и представляют собой некий GUI, но созданный в дополнение к чисто консольному интерфейсу. Не зря там внизу терминал висит (по крайней мере в оригинальном фаре он был, как сейчас — не знаю).


Вы как бы не путайте теплое и мягкое.
Есть конкретная разница между CLI и другими видами интерфейса.

Мали ли где там внизу висит терминал, я могу в винде тоже запустить терминал и подвинуть его мышкой вниз.

Да, ФАР очень удобно использовать вместе с CLI, у них отличная интеграция, но сравнение вполне хорошее.
В Windows многие вещи доступны только через API (например — жесткие ссылки), а в Linux не наблюдается подобного?
например — жесткие ссылки

Есть и гуёвины к этому.
Но это отдельное ПО, не стандартные админские обвязки
*задумчиво глядит на fsutil и mklink* а мужики-то и не знают…
Ещё момент: консольные утилиты можно вызывать и не самому набивая на клавиатуре команды. Т.е. уровень автоматизации рабочих процессов можно повысить написав скриптов которые будут к примеру готовить изображения\видео к публикации, упаковывать, переименовывать, сортировать, отправлять на сервер. Да много чего. Видимо поэтому часто в описании вакансий системных администраторов можно встретить «умение писать скрипты на ...»
GUI плохо годится для сложных задач, потому что оно начинает выглядеть как-то
так


И это просто настройки, а если нужна какая-то логика, как в примере с
wget -O - -q reddit.com/r/earthporn.json | jq '.data.children[] |.data.url' | head -1 | xargs feh --bg-fill

то это превратится в адский ад на несколько экранов или все придется заворачивать «под капот», т.е. писать отдельный софт.

Хороший GUI — простой GUI, а это значит что у пользователя придется отобрать всю кастомизацию и засунуть его в прокрустово ложе. Эдакий условный «подход Apple». Может вам конечно такое и нравится, но мне бы хотелось иметь выбор для того чтобы я эффективно мог решать свои задачи, а не задачи каких-то среднестатистических пользователей.

Реальный пример из жизни: мне для работы нужно RDP подключение которое будет «изолированное», т.е. никак не взаимодействовать с клиентом с которого я подключаюсь. Один из самых важных критериев сделать так, что бы буфер обмена в RDP сессии и буфер обмена локальный были разделены.

В xfreerdp это делается добавлением параметра "-clipboard" в строку запуска. В Windows это вообще можно сделать только на сервере и выглядит это примерно
так
Диспетчер серверов → Службы удаленных рабочих столов → Коллекции → ваша_коллекция. Свойства коллекции → Изменить свойства → Параметры клиента. Это глобальная настройка, если отключить перенаправления — подействует на всех пользователей. Поэтому все нужные галочки надо включить.

В AD создаем подразделение, запихиваем туда всех пользователей с ограничением, создаем новый объект групповой политики, редактируем ее: Конфигурация пользователя → Политики → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Узел сеансов удаленных рабочих столов → Перенаправление устройств и ресурсов. Включаем «Не разрешать перенаправление буфера обмена», применяем политику к подразделению, членам которого запрещаем буфер обмена.

Когда серверов много, то маленький параметр в консольке сэкономит невероятное количество времени по сравнению с GUI.

Когда серверов много — поможет AD с ее политиками.

В мой сценарий это не вписывается, потому что это большое количество серверов и виртуальных машин в разных дата центрах в разных странах, причем часть из них не на серверных ОС.

В любом случае что проще: разворачивать AD и настраивать политики или добавить один параметр в строку запуска?
Наверное, я что-то не понял, но
xfreerdp:
-clipboard
Redirect clipboard (default:on)

и встроенный в win клиент
rdp

Вы этот параметр имели в виду?
Действительно. Думал я с ума сошел, но нет, раньше не было:
Не удержался, а как сейчас в Linux с GUI? Лидируют всякие стеклянные Unity? Или традиционные среды вроде XFCE и новомодные ретро MATE развиваются и удобны? Просто давно пересел на обычную венду и не трачу времени на то что не приносит денег :(
i3 живее всех живых. GTK и QT тоже. rofi тоже умирать не собирается. Нормально все, в общем.
Спасибо, успокоили. Про i3 не слышал, ушел из никсов еще при wmii
Сижу на KDE, любимая DE, как и Qt в целом. По сравнению с 5 лет назад все довольно шикарно стало.
По сравнению с 5 лет назад все довольно шикарно стало.

Ну хз, мне и в 2005-м на KDE 3 было норм. Даже как-то тепло и лампово было — если на современные пятые кеды поставить plastique и crystal remix, всё равно той же ламповости не будет.


Но я просто пропускаю первые несколько релизов новых мажорных линеек KDE, и на KDE 4 или KDE 5 перешёл сильно не сразу.

Раньше мем был про «кеды не падают». Теперь они и правда не падают. Еще и много приятного функционала завезли с тех пор, тот же KDE Connect просто прекрасная вещь.

KDE 3.5 тоже не падали :) А вот KDE 4.0 ≠ KDE 4, это да, это помним.


тот же KDE Connect просто прекрасная вещь

Как раз сейчас на балконе сижу и сделал музычку потише с него.

Я вот ровно по той же причине давно пересел с винды.
Иногда по выходным загружаюсь в неё, она у меня запускалкой стима работает.

P.S. Unity больше не разрабатывается, но всё равно интересно — почему она «стеклянная»?
Не понял — по какой причине?
Не знаю, Unity, оболочка Win7 и вообще тогдашние новые стили создавали у меня ощущение, что они стеклянные.
ну, по причине «мне за это не платят».
Ну вот если бы использование линукс улучшало мою производительность или делать свою работу под ним было удобнее тогда стоило бы заморачиваться, а так — получается вещь в себе, для JS Fullstack-а ощущения от работы под любой ОС примерно одинаковы.
А вам венда доставляет неудобства в работе/лишает каких-то преимуществ? Ну кроме знания, что это просто ОС для домохозяек.
как бы вам объяснить. Вот мне 42 года, я работал и с *BSD, и с линуксом, и с BeOS, и с MacOS, начиная ещё с тех версий, которые до MacOS X, и с DOS, и с Windows (захватив и 9х ветки, и NT, и всё что было после них). Понимаете, мне глубоко безразлично что там «для домохозяек», а что нет.

Windows — отличная ОС, онаподходит очень многим, но мне, в силу ряда причин, она крайне неудобна. Она у меня есть, я её иногда по выходным запускаю (запускалкой steam работает).
Но для моей работы она очень неудобна, правда.

Я не убеждаю вас в том, что мой выбор лучше или в том, что «венда» плохая, отнюдь.
Просто у каждого есть тот софт, который он использует вынужденно и, с облегчением вздохнув, уходит с него, как только за это перестают платить.
Пользоваться нужно тем, что нравится, это всё, что я хотел сказать.
А мне 34 года я, конечно моложе, но не настолько уж.

В разные версии Линуксана наигрался еще студентом (вплоть до ручной сборки Gentoo, но jast for fun — никакой практической пользы не получал) и мне он, поверьте, очень нравится и я не собираюсь никого убеждать никуда пересаживаться.

Мне в принципе все равно на чем работать WebStorm то есть под любую ось, каких-то неудобств не замечал, как и нет отвращения к венде. А у вас спрашивал именно почему с облегчением пересели с венды.
Но для моей работы она очень неудобна, правда.
тогда понимаю, задачи бывают разные.

Я просто имел ввиду, что получаю удовольствие от работы с ОС которая дает мне доп. преимущества в работе, вот если б я писал на всяких хаскелах или хотя бы ML на питоне, тогда было бы очень приятно воспользоваться линуксом и развернуть какой-нибудь arch/debian/gentoo, а just for fun не интересно, если обычная венда из коробки дает точно такой же результат.

Нелюбимого ПО было много на старой работе — всякие Diasoft-ы которые под вендой то трудно запустить.
вплоть до ручной сборки Gentoo, но jast for fun — никакой практической пользы не получал

У генты основная польза в том, что с гентой систему ты понимаешь (правда, похоже, это стараются исправить последние пару лет, но пока ещё пользоваться можно). По крайней мере, я как когда-то в далёком этак 2004-м потратил пару недель своего времени, будучи школьником, так и с тех пор теми знаниями и пользуюсь, не особо много тратя сил на их актуализацию.


А, ну ещё у генты репозитории хаскеля очень клёвые, и несколько лет назад это было очень большим преимуществом. Потом хаскелисты придумали stack, и это уже стало неважно (но, опять же, хаскель под виндой — ну такое, это просто значит, что сегодня вместо генты можно было бы взять какой-нибудь там опенсусе или не знаю что). Ну и модель роллинг-релиза мне куда больше нравится, вместе со свободой выбора (я до сих пор сижу на openrc и без pulseaudio, на kde 4 я сидел очень долго после выхода kde 5, и так далее).

А что стараются сломать в генту последние пару лет

Да там что-то всё больше магии, на мой взгляд. Не могу сформулировать конкретно, просто всё чаще ловлю себя на ощущении «чё-т притащилась с обновками хрень какая-то непонятная». Может, сам старею, фиг знает.

У генты основная польза в том, что с гентой систему ты понимаешь

У меня понимание системы появилось после сборки своего дистрибутива Windows XP ))
Билли, это ты?
Да их все кому не лень собирали. Может среди них был даже Билл. И это было задолго до утечки исходников в публичный доступ.

nLite )

Не, слишком грубо.
А вам венда доставляет неудобства в работе/лишает каких-то преимуществ? Ну кроме знания, что это просто ОС для домохозяек.

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


С репозиториями всё сильно хуже (и было вообще ужасно до последнего времени). Мои основные инструменты поддерживают винду по остаточному принципу, если вообще поддерживают (да, есть WSL, но зачем, если можно сразу линукс?). Интерфейс линукса мне привычнее и приятнее, да те же шрифты можно под себя настроить легко, всё такое. Аптаймы в месяцы и годы — совсем не проблема, а это значит, что состояние IDE и прочего не прерывается. Под нагрузкой линукс как-то сильно лучше работает — у меня прямо сейчас пересобирается один проект, и я тут спокойно пишу в комментариях, и ничего не тормозит, музыка не лагает, и при этом я могу дальше работать в IDE над этим проектом, и IDE тоже не будет тормозить. В винде на 12-ядерном райзене достаточно, чтобы она начала качать обновления, чтобы я почувствовал просадку FPS в игре (которая у меня там упирается совсем не в CPU, судя по диспетчеру задач).


На той же игровой машине всё время что-то отваливается или не работает, от обновлений до спящего режима и условного nvidia shadowplay. Я просто обобщаю этот опыт на всю работу, а не на запуск двух с половиной игрушек, и мне становится не по себе.


А, ну и к слову об обновлениях, написали не далее как сегодня родители, сказали, что у отца что-то машина сломалась — уже сутки чёрный экран с надписью «подождите» и спиннером. Обновления там винда ставит, что ли. Что с этим делать, учитывая, что я на другой стороне глобуса, я хз, наверное, предлагать им мастера вызывать. При этом у матери ноутбук под линуксом, я там лет 10 назад оставил в качестве файлсервера и вот этого всего одну свою бывшую машину под линуксом, и это всё просто работает.

Наверное влияет то, что у меня весьма старое железо и несколько емких процессов оно в любом случае комфортно не вытянет.

Да и линукс линуксу рознь — убунта фризится и крашится (без свопа) под нагрузкой только в путь и по ощущениям сильнее грузит железо. Хотя если линукс нужен для дела то какая-нить гента или, может, арч.

И мне даже жаль что разработка сайтов на JS сильно инвариантна относитлеьно OS. Вот если нужна большая и сложная система, а не пишущая машинка с возможностью запуска клиентсервера как у меня то тогда стоит заморачиваться
Вот если нужна большая и сложная система, а не пишущая машинка с возможностью запуска клиентсервера как у меня то тогда стоит заморачиваться
Да наоборот. Линукс ведет себя как прошивка для инструмента — обновляется скромно, удобный софт типа терминала со вкладками идет из коробки, вещи типа sshfs — родные, а не порты с линукса, в целом более нативное ощущение от консоли (без путей типа /mnt/c/Users/vasisualij/Downloads), малвареписателем 2% ОС не интересна, он бесплатен, наконец.
И, главное, если его выключить и включить через год — он продолжит работать, а не полезет обновляться три дня.
Компьютер с линуксом работает с ощущением именно что печатной машинки.
А с виндой — это какое-то живое существо, которое живет своей жизнью, может послать — ему обновляться нужно, если что-то сломалось (случай из опыта) — качай с сайта MS утилиту, которая покажет тебе логи, оно «болеет» малварью и нужно вычесывать ему шерстку и делать прививки. Наверное, если живешь с этим животным каждый день, то привыкаешь, но для меня это скорее были вынужденные страдания для запуска чего-то, под под вайном не работает. Последний раз это было из-за oculus rift.
Тоже правда, но все же для Win на установку и настройку уходит примерно 0 усилий, только подождать обновлений пол дня занимаясь чем-нибудь еще.
А какой дистрибутив предпочитаете?
но все же для Win на установку и настройку уходит примерно 0 усилий, только подождать обновлений пол дня занимаясь чем-нибудь еще.
А с линуксом что? Если комп новый, то на ssd минут 20 ставится.
Как правило ведь люди никогда на чистый комп линукс не ставят — им подавай дуалбут, разбиение диска, возможность, чтобы системы видели файлы друг друга, и при этом весь этот процесс установки не уничтожил фоточки из Турции. А это большой источник проблем.
А какой дистрибутив предпочитаете?
Лет 10 ставлю только ubuntu с xfce. Лет 5 — только LTS. Для меня идеально — в меру консервативно, не тормозит ни на каком железе, но и пакеты не пятилетней давности.
Вроде бы фоточки из Турции уничтожал только хакинтошь и то только на том-же жестаке куда его ставили.
У кого-то на это противоположный взгляд. Не знаю, может быть, это всё стёб и шутки.
Вот примерно по этому и перешел на винду — у нее нет многих плюшек, они во многом медленнее, но она просто работает. Вот если мне станет удобнее работать под линукс — тогда, наверное, и вернусь.
и не трачу времени на то что не приносит денег

Сижу на Linux, и чуть-чуть на OS X, именно потому, что это приносит мне денег
Именно использование Linux? Можно и мне такую работу?
Конечно. Разработка под AWS/GCP — инфраструктурная — неудобна из под Windows. Она удобна из-под Linux и OS X
Но ведь вам приносит деньги разработка под AWS, а не сидение на Linux. Мой код тоже работает на серверах с Linux, но это не мешает мне сидеть под Windows.
Но зачем?
Действительно, сэр Генри, почему? (с)
Мне удобнее. Linux через некоторое время после моих попыток привести его в привычный вид приходит в негодность ))
Я первым делом перемещаю «панель задач» xfce вниз и результат мне, выросшему на 98/2000/xp, намного привычнее, чем все, что делает MS после семерки. Разница с XP только в том, что настраивать приходится даже меньше — дефолтный браузер уже правильный, лишних рекламных иконок нигде нет, веселый интерфейс с синими панелями тоже отключать не нужно, он сразу грустный.
Семерка была непривычна, но норм, хотя зачем такая толстая панель с пуском мне было не понятно, как и вся эта стеклянность, десятка же раздражает просто ВСЕМ, и я искренне не понимаю, зачем люди так мучаются, если им не нужен специфический софт.
В смысле?
Впрочем на этой ФС до сих пор предупреждение об известных багах с потерей информации на RaidZ2 конфигурациях, так что ну её, пока не поправят.
ФС в целом теряет или именно windows порт? И да — если на ФС в ОС нельзя поставить саму ОС ее там считайте нет (всякие swap не в счет)
Предупреждение у меня высвечивается в консоли сервера на Debian, благо хоть тестового. На основном у меня сейчас втупую прикручены диски с NTFS, лол.
И да — если на ФС в ОС нельзя поставить саму ОС ее там считайте нет

Кому как. Мне на диск с ОС как бы пофиг, он вообще SSD.
Семерка была непривычна, но норм, хотя зачем такая толстая панель с пуском мне было не понятно, как и вся эта стеклянность, десятка же раздражает просто ВСЕМ

Ну ХЗ. Мне плоские панели в общем то зашли. Жаль, что оно кушает столько ресурсов, ну да ладно.
Да чтобы я знал. Тут настрою, там программу пристрою, сям баг поправлю, обновлюсь разок, и вот уже при каждой загрузке выскакивает орава окошек про повреждение конфигурации KDB (или KBD, не помню уже).
make install используете?
Нет конечно, в крайнем случае checkinstall, но в последний раз, ЕМНИП, и до этого не дошло.
Но ведь вам приносит деньги разработка под AWS, а не сидение на Linux.

Конечно. И для меня себестоимость моей работы из-под Linux меньше, чем из-под Windows

Linux через некоторое время после моих попыток привести его в привычный вид приходит в негодность

неправильно его готовите? Раз всё так плохо, поставьте вместо Арча/Федоры/дебиан анстейбл что-то заметно более стабильное, например оракл линукс 8, и ставьте пакеты только из официальных репозиториев, EPEL, ну или если ставить будете из rpmfusion итд, добавьте protect base и другие плагины для dnf. Так же ставьте софт из флэтпака и снапа.
неправильно его готовите?

Ну да, не хватает скиллов для готовки. Ну или из бифштекса нельзя сделать яичницу.
что-то заметно более стабильное, например оракл линукс 8

Тогда оно будет ещё дальше от моих требований к ОС.
Тогда оно будет ещё дальше от моих требований к ОС.

Почему? Ещё свежий софт я локально ставлю в локальный microk8s
Почему?

Потому что оно ломается во время доработок. А если доработки сделать нельзя, то и движения к совершенству не будет.
Конфиг клавиатуры кстати у меня скорее всего отвалился из-за настройки переключения по Shift+Alt, плюс правки его бага в Linux и последующем обновлении.
А если доработки сделать нельзя, то и движения к совершенству не будет.
Поэтому нужно сидеть на винде, она уже совершенная.
У винды тоже большое море проблем. Было бы бессмертие, пошёл бы писать свою ОС.
Конфиг клавиатуры кстати у меня скорее всего отвалился из-за настройки переключения по Shift+Alt

Это настраивается куда проще
Конечно я этот конфиг руками не трогал. раньше это было в интерфейсе, с какой то версии убунты стало в отдельном твикере.
Мм, а минус-то за что? Грустный смайлик не зря стоит — у меня ностальгия по Линуксу и действительно сейчас, к сожалению, смена ОС никак не принесет мне денег.
потому что оно начинает выглядеть как-то так
По личному опыту — в 100 случаях из 100 предпочту такое синонимичной команде в терминале, если надо указать больше, чем пяток аргументов/опций. Потому как читать это всё одной простынёй куда как хуже — люди не случайно придумали всякие там таблички и прочие способы визуальной организации информации.
У меня обратный опыт: в большинстве случаев команду можно визуально распарсить по параметрам, а тут просто глаза разбегаются и непонятно что где искать.
Конкретно в этом случае с картинками проще скриптик на питоне забабахать. Все-таки порог вхождения меньше чем в консоль и возможностей больше.
Напротив, дабы получить результат, приятно нажимать на кнопочки, при наведении на которые мне ещё и подсказку напишут.
зависит от того, чего хотите добиться. Подчас некоторые настройки в винде спрятаны так далеко, что найти их самостоятельно нереально, а следование инструкции куда дольше чем «скопируйте вот этот текст в терминал чтобы получить желаемый результат».
Ах да, ещё люблю стабильный API, а не набор случайных программ и хидеров, которые прикидываются им.
в винде я смотрю апи настолько стабилен, что его каждые несколько лет с нуля переделывают
в винде я смотрю апи настолько стабилен, что его каждые несколько лет с нуля переделывают
1) Не терминал, а графический интерфейс != только Windows.
2) Достаточно стабильный для того чтобы программа для 98 винды продолжала работать на Windows 10.
1) Не терминал, а графический интерфейс != только Windows.
ну в маке есть и терминал и графический интерфейс. Я ведь не говорю о том, что гуй не нужен. Просто чем сложнее/уникальнее манипуляция, тем меньше для неё подходит графический интерфейс. Linux-way, кстати, сделать либу, консольный клиент и GUI клиент. Чтобы при недостаточности/неудобности гуя сохранялся функционал.
Достаточно стабильный для того чтобы программа для 98 винды продолжала работать на Windows 10.
всё-таки линукс в первую очередь про совместимость на уровне сорцов, и уже потом про бинарную. По сути вам точно так же как и в винде никто не мешает складировать в системе все версии всех рантаймов за последние 50 лет, а приложухи поставлять вместе со всеми их библиотеками.
всё-таки линукс в первую очередь про совместимость на уровне сорцов


Никогда не слышали о программах, которые собираются только определенным компилятором в определенном окружении?

Армбиан и тем более китайская убунта на банана пи м3. Больше необходимости не было.

Написать программу криво можно всегда.


А вот опыт сборки своего ПО под винду у меня был — в итоге году в 2012-м я её поддержку дропнул, так как что с репозиториями, что с поддержкой нового тогда C++11 было всё очень плохо.


Да и сегодня всякие хаскели, идрисы и прочая нечисть плохо работает под виндой.

НЛО прилетело и опубликовало эту надпись здесь
Объясните, чего минусите человека или расскажите где Докер не поможет — мне на самом деле интересно, я нуб.

Говорят, с гуями больно.


А ещё докеры и флатпаки — это некоторые идеологи обидятся, которые считают, что надо всегда использовать только системные библиотеки.

Не понял:
  • Кто вас заставляет пользоваться GUI?
  • Или сборка GUI сложна?

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

Я тоже
НЛО прилетело и опубликовало эту надпись здесь
Linux-way, кстати, сделать либу, консольный клиент и GUI клиент. Чтобы при недостаточности/неудобности гуя сохранялся функционал.
К сожалению обычно делают консольную утилиту, и лишь потом прикручивают графический интерфейс, через парсинг выхлопа утилиты. Выходит git, который лично мне одинаково не удобен и не логичен, что в консоли, что в GUI. И да, когда хоть что-то пошло не так, парсер ломается, и надо разруливать выхлоп вручную, такое себе.
всё-таки линукс в первую очередь про совместимость на уровне сорцов, и уже потом про бинарную.
И это ужасно. У меня есть набор утилит, самого разного, часто уникального предназначения, без сорцов, которые уже не поддерживаются, но продолжают работать в Windows, уже 20 лет. И нет OpenSource аналоги есть не всегда, так уж бывает в реальном мире. В мире никсов я был бы вынужден от них отказаться, такой себе путь. А потом задаемся вопросом почему под никсами нет софта? — он «откис».
По сути вам точно так же как и в винде никто не мешает складировать в системе все версии всех рантаймов за последние 50 лет, а приложухи поставлять вместе со всеми их библиотеками.
Честно говоря, может быть я понимаю что-то не так, но приложения корректно использующие win32 api просто работают, без гигабайт DLL миллионов версий. Бинарная совместимость и вменяемое API — великая вещь.
И да, я сомневаюсь что приложение, скомпилированное в бинарник, которое, например таскает с собой GTK1, будет способно хоть как-то работать на современных линуксах. В то время как приложение для win98 продолжает работать в 10ке.
про совместимость на уровне сорцов
Если б оно хотя бы на уровне сорцов работало.
Выходит git, который лично мне одинаково не удобен и не логичен, что в консоли, что в GUI
1. конкретно гит
2. лично вам
3. я говорил про «либу, консольный клиент, и GUI-клиент», там не было ничего про «парсинг выхлопа тулзы». Так тоже можно конечно, просто надо обеспечивать совместимость форматов. Если конкретный мейнтейнер этого не делает — сам виноват
4. по мне, так разруливать даже консольный выхлоп куда лучше чем минут 15 искать в реестре нужный ключик, который нужно правильно «повернуть», чтобы добиться изменения настройки, которую убрали из свежего модного молодежного гуя
Честно говоря, может быть я понимаю что-то не так, но приложения корректно использующие win32 api просто работают, без гигабайт DLL миллионов версий
помнится на моей тогда еще свежей десятой винде «ведьмак» попросил установить 6 разных версий vcredist… Ну и не забывайте во сколько раз винда больше той же убунты весит.
В то время как приложение для win98 продолжает работать в 10ке.
я сталкивался и с тем, что не работали приложухи куда новее win98. И, знаете ли, всякие cat тоже отлично поживают.
> Честно говоря, может быть я понимаю что-то не так, но приложения корректно использующие win32 api просто работают, без гигабайт DLL миллионов версий. Бинарная совместимость и вменяемое API — великая вещь.

Загляните в директорию WinSxS :)
Как раз гигабайты рантаймов. Во времена 9х было понятие dll hell, когда в системе появлялась другая версия используемой системной библиотеки (например, при установке какого-то софта) и часть приложений ломалась. Сейчас такого нет, т.к. винда сама подставляет подходящие версии dll-ок и софт без нужного манифеста на 10ке получит системные dll-ки с функциями от более старой системы.

Да, есть часть WinAPI, которая достаточно стабильна, но мало какой софт обойдётся чисто winapi-шными функциями. Большей части нужен runtime какой-нибудь из версии VS, большинству гуёв понадобится какой-нибудь comctl32.dll, который уже не такой стабильный.
НЛО прилетело и опубликовало эту надпись здесь
В мире никсов гораздо вероятнее были бы сорцы.
Нет, сорцы есть не всегда. Так бывает, что автор не выкладывает сорцы, начиная просто с «не хочет»(и нет, не потому что человек жадный), и заканчивая тем, что человек на хочет показывать их, например из-за того что он считает их недостаточного качества. Ах, да я вот умею программировать, но желания собирать из сорцов что-то просто нет, и такое бывает.
Но даже если нет — chroot вам в помощь, создавайте хоть среду от Убунты 6.04.
О, невероятной глубины костыль, вместо вменяемого стабильного API, класс это же гениально!

Использование программы с недоступными сорцами — это уже само по себе невероятной глубины костыль, не надо удивляться что он требует подпорок.

"Использование программы с недоступными сорцами — это уже само по себе невероятной глубины костыль"


Серьезно? И почему? Я, например, исходники броузера, которым пользуюсь, не смотрел, и не собираюсь. Чем это отличается от недоступных исходников?

Тем, что вы можете его пересобрать независимо от того, смотрите вы исходники или нет.

Наверное, смогу. И полученный бинарник станет чем-то лучше? Или я просто сожгу несколько сотен ватт-часов электричества? Грета Тунберг будет недовольна.

Да, станет. Например, он сможет запускаться на вашей машине, которая, очевидно, имеет достаточно странную конфигурацию для того, чтобы версия из вашего дистра на ней не работала. Ради такого я бы даже послушал «how dare you» в исполнении Греты.

очевидно


Совершенно не очевидно. Под распространённые конфигурации железа броузер уже собран. А под всякую экзотику, типа калькуляторов и кофеварок, что-то мне подсказывает, недостаточно просто нажать кнопку сделать всё хорошо configure && make && make install.
Эмм, у вас UEFI/BIOS с недоступными сорцами (многим), а под ними PSP/ME-AMT, сорцы которого ещё более недоступны.
Использование программы с недоступными сорцами — это уже само по себе невероятной глубины костыль, не надо удивляться что он требует подпорок.
А как вы хабром пользуетесь? Или у вас есть доступ к исходникам?
Ах, да, выкидывайте свой компьютер, сорцов BIOS у вас нет, как и кучи других исходников, которые позволяют вашему компьютеру дойти до загрузки Linux.
Именно это меня и бесит в людях которые всех пытаются пересадить на «свободное ПО», ну нет, и никогда не будет у меня, как и у вас, сорцов от всего, и это НОРМАЛЬНО.

Это не нормально, это привычно. Причем, не всем.

А в чем проблемы с легальностью? VirtualBox уже запретили?

НЛО прилетело и опубликовало эту надпись здесь
ebay с вами не согласен, retail версий там хватает.
Я не про отдельные ключи, я про коробку, запаянную в плёнку. Внутри буклетик «ХП это модно и круто», красивый диск (у хрюши он реально красивый) и серийник.
Это да, если retail, то катит.
Просто есть OEM лицензии — там тоже красивый диск, серийник и буклетик в плёнке, без коробки правда. Но это именно «серая» лицензия, потому что формально вы не можете её поставить на произвольный комп — она OEM.
Так я про retail версии изначально и говорил.
В лицензии боксовой семёрки разрешался даунгрейд на предыдущие версии, если память не изменяет (хотя, могу путать с XP — давно это было). Возможно и для десятки есть что-то такое.

С другой стороны, раз поддержка XP прекращена — могут и послать.

Но, в любом случае, купить коробку на ebay — пока ещё не проблема.
Выходит git, который лично мне одинаково не удобен и не логичен, что в консоли, что в GUI.

Не надо кривое поделие Торвальдса проецировать на всё консольное — от гита много кто плюется, и есть альтернативы.


В мире никсов я был бы вынужден от них отказаться, такой себе путь.

Никсы никсам рознь. Вот у нас во FreeBSD поддерживают бинарный COMPAT на лет так 20 назад точно.

и есть альтернативы.

Mercurial хостит примерно никто, даже BitBucket от него отказался.

Есть fossil и chiselapp.com например. Вообще вопрос хостинга сильно преувеличен.

Вообще вопрос хостинга сильно преувеличен.

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

Фактически ничего из перечисленного в статье не является API винды
в винде я смотрю апи настолько стабилен, что его каждые несколько лет с нуля переделывают

Проблема как раз в том, что его не переделывают, а наслаивают новые интерфейсы поверх старых.
WinAPI — это одна из самых стабильных вещей вообще.
вы молоды и упускаете тот момент что графического интерфейса с тултипами тогда не было
да и сейчас для автоматизации пайплайны эффективнее
Не вижу смысла холиварить. Консоль это молоток. Гуй это роборука, которая может ударять молотком так, или как-то ещё. Кому-то нужно одно, кому-то другое.

Мне в консоли удобнее, а когда не удобно, то я в GUI.

Например, нужны мегаогромные системы, чтобы в логе выбрать строки событий за 15 часов 15 минут, с адресом bla@domain.com отфильтрованные спам-фильтром. Однажды изучив grep я выведу на экран нужные 10 строк за несколько минут. Не потому, что я красноглазик, а потому что это удобно. Но сейчас я пишу коммент через GUI, не потому, что не умею, а потому что так удобнее.
Но сейчас я пишу коммент через GUI, не потому, что не умею, а потому что так удобнее.

У вас давно нет шанса написать здесь комментарий через командную строку. Точнее, из-за "текстово-терминальной" природы HTTP вы могли бы скачать и разобраться с исходниками SPA комментариев здесь, и даже сформировать вручную запрос на сервер хабра с соответствующим комментарием. Но это вряд ли можно назвать просто "менее удобно".

ведь стабильная Ubuntu тоже для пользователей, а не профессионалов

После участия в тредах о линуксе против windows у меня не сложилось впечатления, что убунту стабильная. По крайней мере, упомянутых там проблем с ней я на своём дистре не испытываю (но у меня не арч, если что).


Напротив, дабы получить результат, приятно нажимать на кнопочки, при наведении на которые мне ещё и подсказку напишут.

Это хорошо, но далеко не во всех контекстах. Когда вы первый раз что-то исследуете — да, норм. Наводить же на кнопочки в сотый раз уже надоедает. Куда быстрее написать git commit или git tag v0.4.0.2, чем ждать, пока откроется гит-клиент, искать там нужные кнопочки и на них нажимать.

чем ждать, пока откроется гит-клиент

Так а зачем было его закрывать? Я у себя не закрываю.

Некомфортно с лишними открытыми окнами, дует в alt-tab мешается. Я их поэтому даже на разные рабочие столы раскидываю — рабочий проект на одном столе, хобби-проект-один на другом столе, хобби-проект-два на третьем столе, чатики-интернетики на четвёртом.

Дело было правда давненько, как бы не в прошлом веке, но пришлось в нескольких организациях, связанных локалкой менять сетевую адресацию (ЦУ сверху). Все адреса раздавались по DHCP, но с резервированием.
Я поменял адреса за несколько секунд. А что тут? Запустил sed с подменой в конфиге одной подсетки на другую и перезапустил демона. Причем сделал это из дома.
А вот виндовым админам пришлось оставаться после работы и тыкать мышкой, да не по одному разу, в каждого пользователя, стирать старый, набивать новый адрес. Ох и матерились они от такой творческой работы.
Вы молодец, а админы — нет ;)
Всяких command line tools для Windows NT было, и vbs существовал, и при желании всё это можно было автоматизировать. Правда, без google это было не так просто.
Мне вот не приятно работать в консоли, и километровые маны и треды на Лоре читать не приятно. Напротив, дабы получить результат, приятно нажимать на кнопочки, при наведении на которые мне ещё и подсказку напишут

Такое выдает человека со складом ума пользователя, но не программиста. Для программистов же нормально знать разные языки — а консоль и есть текст, язык в чистом виде.


Особенно люблю, когда начинающему разработчику, который ещё «hello world» не научился писать(на любом языке), вместо помощи, или хотябы игнорирования, вбивают в голову философию и какой дистрибутив Arch(ведь стабильная Ubuntu тоже для пользователей, а не профессионалов) следуют поставить. Часто заканчивается тем, что человек бросает это сложное и непонятное программирование, так и не узнав что существуют IDE, а не только лишь Vim, да и программировать можно не только в никсах.

Дикий пример какой-то, похожий на то, как взяли вдруг школьника с улицы и заставили писать промышленный код. Нет, эти вещи изучаются в разных семестрах.


Выпиливание из FireFox-а FTP клиента, со словами «пользуйтесь отдельной программой» видимо тоже часть философии, класс, это же гениально!

Нет, это как раз выпердыш философии "только web и ничего больше", враждебной философии консоли.

Такое выдает человека со складом ума пользователя, но не программиста.
Ля, я знал что хоть один любитель консоли напишет, «ко ко ко, ты не программист, ты ПОЛЬЗОВАТЕЛЬ».
Да, я пользователь, и вы тоже пользователь. Пользуетесь чужими программами? — вы ПОЛЬЗОВАТЕЛЬ. Вообще что меня бесит, в юникс сообществе больше всего, так это такие персонажи, как вы, которым веде мерещатся пользователи и домохозяйки :)
Для программистов же нормально знать разные языки — а консоль и есть текст, язык в чистом виде.
Серьезно? Покажите мне тот самый язык для растрового графического редактора типа Photoshop, или для программы разводки плат.
Дикий пример какой-то, похожий на то, как взяли вдруг школьника с улицы и заставили писать промышленный код. Нет, эти вещи изучаются в разных семестрах.
Причем тут семестры? Речь о том, как людям, изучающим it заливают в мозг деструктивную идею «программист = консоль, никсы и вот это все». Вместо изучения программирования человек страдает с окружением, которое ему возможно и не нужно.
Нет, это как раз выпердыш философии «только web и ничего больше», враждебной философии консоли.
Да ладно, вы сами выше написали, «только текст и нечего другого». Стрелочка не переворачивается?
Вообще что меня бесит, в юникс сообществе больше всего, так это такие персонажи,

Вас это беспокоит? Хотите об этом поговорить? (с)
Почему, собственно, бесит? Может, потому что упрёк попадает точно в цель?..


или для программы разводки плат.

Насколько я в курсе, как раз в таких популярен Tcl.


Причем тут семестры? Речь о том, как людям, изучающим it заливают в мозг деструктивную идею «программист = консоль, никсы и вот это все». Вместо изучения программирования человек страдает с окружением, которое ему возможно и не нужно.

При том, что мы речь ведем о людях, которые получают нормальное фундаментальное высшее образование, а не о набранных с улицы по объявлению обезьянах-вайтишниках "тяп-ляп и в продакшен", правда? Действительно, может быть этот человек и вовсе не пригоден быть программистом, тогда зачем ему страдать с самого начала?..


Да ладно, вы сами выше написали, «только текст и нечего другого». Стрелочка не переворачивается?

А можно из меня цитату с такой неграмотной орфографией или таким смыслом? Вот, кстати, давно замечаю — те, у кого плохо с консолью и программированием, у тех и с естественным языком плохо.

Вас это беспокоит? Хотите об этом поговорить? (с)
Почему, собственно, бесит? Может, потому что упрёк попадает точно в цель?..
Успокойтесь и нежно погладьте клавиатуру.
Насколько я в курсе, как раз в таких популярен Tcl.
DipTrace, Sprint-Layout, Eagle, Altium Designer, TopoR, P-CAD и т.д. — все это программы с GUI интерфейсом, именно в этих программах сделали ваш ноутбук. Ах, да, наверное они не считаются, они же под WINDOWS.
При том, что мы речь ведем о людях, которые получают нормальное фундаментальное высшее образование, а не о набранных с улицы по объявлению обезьянах-вайтишниках «тяп-ляп и в продакшен», правда? Действительно, может быть этот человек и вовсе не пригоден быть программистом, тогда зачем ему страдать с самого начала?..
Опять же, причем тут «фундаментальное высшее образование», речь о простом человеке, который не важно в вузе или нет, решил попробовать себя в программировании, и которому загаживают мозг тем что должен использовать «настоящий программист».
Нисколько не умаляя достижений отцов основателей, но программировать в консоли как бегать на костылях. Зачем использовать кривой ограниченый язык (организация запуска, пайпы и аргументы командной строки — это язык) когда есть нормальные скриптовые языки изначально предназначеные для программирования? Зачем использовать программирование для задач программиррования не требующих и наоборот зачем использовать ограниченный язык для задач решаемых легко используюя нормальные скриптовые и не очень языки. Программирование в терминале занимает ровно ту нишу для которой и было предназначено — запуск команд. Это задача не пользователей, не программистов, а администраторов. Для них может все и хорошо. Для остальных есть гораздо более подходящие инструменты.

(Для справки: 10+ лет на Линуксе дома — снес к чертям, никогда не пытался профессионально программировать под него за отстутсвием нормальной среды программирования, опыт программирования 30+)
Что? А что вы считаете тогда «нормальной» средой программирования?
Тут не ясен момент «под него», то есть системные вещи какие-то?

Вы же сами сказали, для разных задач свои инструменты. Что-то быстрее сделать на баше.


Пример:
Вчера решил узнать, какие пакеты я себе ставил путем грепания лога pacman. Решил путем однострочника на баше с cat, grep и awk. На питоне было бы куда больше.


З.Ы.
Нет, я не решал проблему, которую сам себе создал, потому что линукс. На винде в списке установленных программ я бы так же увидел то, что я ставил сам, так и то, что поставили установщики. Штук 10-20 разных пакетов, установливаемые Visual Studio или Adobe тоже не очень удобно. Только, в отличие от pacman, там не понять, кто был поставлен явно, а кто — зависимость.

На питоне было бы куда больше.

Ну было бы на питоне 5 строк, пусть даже 10. Кому это важно? Особенно учитывая минимальный размер файла на современных ФС (4..64… кб). Зато строк простых и понятных.

Ну было бы на питоне 5 строк, пусть даже 10. Кому это важно?

По-моему это важно большинству пользователей при решении неповторяющейся задачи. Понятные строки нужны когда скрипт будет переиспользоваться. Тогда да, на питоне, да еще с "type hints" милое дело написать.

Вы каким то сложным путём пошли, для выявления явно установленных пакетов и зависимостей. Для этого есть штатный pacman -Q в параметрах которого есть всё что вам нужно!

Я не разобрался в пакмане, и случайно удалил много что с -Rsnc (как-то так, удаление зависимых пакетов). Потом, когда половина системы была удалена, я осознал ошибку и пошел искать, что же раньше стояло.

Для этого есть штатный pacman -Q в параметрах которого есть всё что вам нужно!
не разобрался в пакмане, и случайно удалил много что с -Rsnc
Такой простой, понятный и удобный консольный пользовательский экспириенс, смотрю…
Нет нормальной среды? А как же PyCharm, CLion, QtCreator, Eclipse?
Кажется, даже, что-то забыл.
Это с какой стороны Эклипс — нормальный?
Нет, ну по сравнению с вимом может быть.
Мне тоже, Eclipse, не особо, но CLion и QtCreator нормальные ведь?

CLion, имхо, лучшая C/C++ (+Rust) IDE общего назначения, если нет каких-то особых требований (вроде memory view, дизассемблера итп, хотя они движутся в сторону эмбеддед)

Для списка, есть еще Netbeans C++. Показался самым удобным в свое время, можно почти одной кнопкой дебажить на удаленной машине, среда сама копирует проект на удаленной машине и запускает gdb.
Может кто подскажет есть такое для golang?
Goland? Ничего лучше IDE от Jetbrains человечество пока не изобрело.
Нисколько не умаляя достижений отцов основателей, но программировать в консоли как бегать на костылях.

Что значит программировать в консоли? Использовать консольный редактор? Писать шелл-скрипты вместо использования GUI? Первое — вполне себе ок. Второе — варьируется в широких пределах от "бессмысленно" до "лучше GUI на порядок". Бывает, что "бегать на костылях" это как раз GUI, а не шелл. Пример — навигация по каталогам. В шелле у меня есть fzf + z, в тандеме с command history позволяющие за 4-5 нажатий (хоткей + уникальная часть имени + Return) прыгнуть в любой ранее мной посещённый каталог, файл, или вызвать любую команду из истории. Покажите мне как это сделать в наутилусе, Windows Explorer, любой другой графической утилите.


Зачем использовать кривой ограниченый язык (организация запуска, пайпы и аргументы командной строки — это язык) когда есть нормальные скриптовые языки изначально предназначеные для программирования?

Ничего не понял. Нормальные это какие? Perl, Python? Хотите писать на них утилиты вместо шелла — ради бога, пишите, но кроме утилит есть же ещё интерактивный шелл, в котором я лично провожу ~50% всего времени вообще. Там тоже перл/питон использовать и на каждую операцию фильтрации "на месте" вместо | писать инлайн скрипт на перле с pipe() итд?


Программирование в терминале занимает ровно ту нишу для которой и было предназначено — запуск команд. Это задача не пользователей, не программистов, а администраторов.

Как будто программисты и юзеры команд не запускают. Ещё раз — я, программист, провожу в шелле около 50% времени, вторую половину в емаксе. Перемещение по каталогам, запуск тестов, открытие файлов "на месте" на редактирование, запуск консольных утилит по именам файлов (с историей ввода, причём трекающейся не приложением, а шеллом), запуск 100500 приложений с историей и нечётким вводом. В случае GUI у меня была бы весьма хрупкая и ограниченная система из finder или как он там в каждой ОС называется (и на который я никак повлиять не могу) и встроенных возможностей отдельных приложений по запоминанию открытых файлов. С шеллом я могу включить любую текстовую утилиту в свой pipeline и она будет в истории команд, в истории ввода, в автодополнении, где захочу.


В общем, есть написание скриптов, а есть личная десктопная среда, и во втором случае консоль весьма себе авторитетный вариант. Точнее, консоль + правильная DE.


(Для справки: 10+ лет на Линуксе дома — снес к чертям, никогда не пытался профессионально программировать под него за отстутсвием нормальной среды программирования, опыт программирования 30+)

Жесть. Или вы считаете что кроме Emacs и Vim в линуксе ничего нет или вы не считаете среды JetBrains, VS Code, Sublime, Qt Creator за "нормальные IDE".

Ну положим насчет нормальных IDE я специально набросил. Хотя по моему глубокому убеждения существует всего одна нормальная IDE — Visual Studio (не Code!) и то только при условии, что используется C# и естественно ReSharper. JetBrains близко подходит, но хоть они и делают ReSharper, по удобству для Java она сильно далеко от VS+ReSharper+C#. Но это мое ИМХО — кому-то может и нравится.

Про «программировать в консоли» это именно про bash-скрипты и пайпы в командах. Я абсолютно уверен, что bash скрипты существуют до сих пор чисто по инерции — bash есть везде, значит на нем и пишем. Реальных преимуществ перед тем-же Python нет. Ровно та-же история, что и c JS.

Про GUI vs. command line я вообще ниечего не писал. Что-то удобнее так, что-то эдак.
Хотя по моему глубокому убеждения существует всего одна нормальная IDE — Visual Studio (не Code!) и то только при условии, что используется C# и естественно ReSharper.

Но кроме C# есть много других языков, некоторые из которых куда лучше (ну, раз уж мы тут набрасываем).

bash есть везде, значит на нем и пишем. Реальных преимуществ перед тем-же Python нет.

Сколько строк кода у вас займёт вышеупомянутый пример grep -ri habrhabr: -l .|xargs stat -c '%Y %n'| sort| tail -1 на Python? Гарантирую, что больше одной.
На мой взгляд, нужно сравнивать не число строк, а время на написание.

Если у вас отличная память на «магические заклинания», или вам они нужны ежедневно ( и в результате — не вытесняются из «ОЗУ» чем-то новым), — текущее положение вас вполне устраивает.

Для более редких задач могла бы быть удобна (а может и нет)) объектная библиотека с развернутыми именами операций и параметров. Благодаря автодополнению в среде выполнения, скорость набора была бы незначительно ниже, но длинные имена параметров позволили бы гораздо реже тратить время на маны.

Память отлично запоминает то, что используется на практике. В данном примере мне бы потребовалось только заглянуть в man stat для нужных значений, всё остальное в голове уже есть. Или, может, переписал бы весь пайп на find вообще...

Не ну так не честно. Сделайте все то-же самое, но только если в соседнем каталоге лежит файл содержимое которого содержит строку с именем файла, который вы грепаете. Я думаю вы поняли мою идею — легко делать только то, на что команда заточена и практически невозможно все остальное. С языком общего назначения все по-другому — несколько сложнее делать простые вещи, но немногим сложнее делать все остальное.

Кстати отвечая на ваш вопрос — если это повторяющаяся задача, то займет одну строку — все уже будет написано заранее. Если это одноразовая фиговина, то зависит от лени — иногда проще тупо глазами посмотреть и не писать вообще ничего.

А в чем проблема?


grep -ri `cat sosednij/dir/file_with_str` ...дальше всё то же самое

Комментарий какой-то дикий, сумбурный и мешающий в одну кучу разные вещи, одинаково их называя. Что значит "программировать в консоли"? Для этого вообще-то текстовые редакторы есть (а для любителей, и IDE). Что значит "скриптовые языки"? Вообще-то шелл — тоже скриптовый язык.


Зачем использовать программирование для

Ну так не используйте. У каждого инструмента своя область. Взять "полноценный" скриптовый язык (Perl, Python) в качестве шелла — и такой шелл станет очень неудобен "для запуска команд".

Немного пофилософствую, тем более что мысли про консоль давно накопились.
Безусловно, на момент создания Unix это была передовая технология пользовательского интерфейса. В том числе из-за Unix Way — много маленьких утилит, каждая из которых выполняет какую-то простую функцию, программы можно объединять в цепочки и т.п. Ну и разумеется простота самой консоли, возможность подключиться к удаленному серверу или к маломощному устройству и получить базовый интерфейс, с которым можно работать — это замечательно.

Но времена меняются, на смену консоли пришли графические, а затем и web интерфейсы. И вот там роль, подобную командному интерпретатору, должна была взять на себя компонентная технология типа COM. Вроде так и предполагалось — множество компонентов, реализующих простые задачи, возможность встраивать компоненты в документы, открывать excel из word и тому подобное. Но — в конечном итоге следует признать, что не получилось (хотя COM активно используется в недрах Windows, тот же DirectX, но из веба и UI ее все-же вытеснили).

Еще можно упомянуть, что старые языки командных интерпретаторов весьма неудобны и архаичны — особенно на фоне современных языков программирования и идеально выверенным синтаксисом. Но огромное количество скриптов написано и их никто не собирается переписывать.

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

Впрочем, то что всего этого не случилось, вполне логично и закономерно. Консоль существовала потому что во времена ее появления пользователями были профессионалы. И существует до сих пор — по той же причине. Максимальное упрощение интерфейсов, необходимое для массового распространения компьютеров, несовместимо с программированием. Простые пользователи не будут программировать ни в каком виде — ни создавая конвейеры в консоли, ни соединяя мышкой визуальные компоненты. Так что все логично. Консоль осталась и используется по интерции, а для разработки новой современной объединяющей среды нет ни запроса, ни ресурсов.
Сложные пользовательские скрипты собирали и анализировали бы информацию с сотен сайтов и отображали бы ее в удобном для конкретного пользователя виде…

Но это же не замена консоли. Это вы уже какие-то бизнес-решения описываете, а не автоматизацию. Конечно, можно и на баше писать, но не думаю, что это распространенно и нормально. Предложенное вами вполне живет и нынче называется модно "no code"

Я имею в виду не замену консоли, а замену привычного нам монолитного графического пользовательского интерфейса на компонентный. Т.е. подобно тому, как в юниксовой консоли можно выполнять сложные действия, объединяя множество маленьких программ, мы могли бы неким очень простым способом сами создавать себе графические программы из компонентов (или объединять программы в некие комплексы, грань очень тонкая), управлять потоками данных между графическими программами и т.п.

Наверное, это где-то возможно. Но как в таком формате представить какой-нибудь Photoshop или SolidWorks?

Никак. Потому как оба существуют только под Windows, а их производители напрочь отрицают существование других операционных систем.

Параметрическое моделирование в текстовом файле Вы себе не представляете? А зря. Такое есть, и многие считают это весьма удобным. Добро пожаловать в OpenSCAD.
Потому как оба существуют только под Windows

Фотошоп вроде как и под MacOS есть.
Для Linux есть Creo Parametric и Siemens NX, обе мощнее Solid Works.
Я делал STL для 3d-печати в обеих. Прекрасно работают в Linux с помощью своих GUI.
Все верно. Просто люди «от винды» плохо представляю, как выглядит 3D моделирование в консоли. :-)

Вы будете смеяться, но в обоих случаях есть "консольные" конкуренты. GEGL и OpenScad. И если первому пока не хватает консольной рбвязуи, то второй себя отлично зарекомендовал в качестве простого и быстрого, программно определяемого инструмента автоматизации CAD. Разумеется со своими "консольными" плюсами и минусами.

Ваши идеи напомнили мне товарища который ОС «Сивелькерия» на хабре презентовал — habr.com/ru/post/500284
(там правда еще ничего не готово)

Дополнить Tcl/Tk стандартизированными форматами обмена в пайпах, ну.

Но времена меняются, на смену консоли пришли графические, а затем и web интерфейсы.

Нет, вдобавок к консоли добавились GUI Интерфейс, рассчитанный на мышку, а затем GUI интерфейс, рассчитаный на тачскрин, а в некоорых случая уже и интерфейс рассчитаный на распознавание голоса или движений в VR

Я все время недоумеваю, когда люди пытаются сравнивать консоль с чем-то старым, а GUI с чем-то новым. То, что какое-то интерфейс появился позже, не означает что он замена старого. Популярность сейчас на стороне GUI, но это не значит что консоль не нужна. У нее своя специфическая ниша, и весьма немаленькая, которую GUI никак не заменит.
В Unreal Engine 4 есть, на выбор, две возможности создания игр:
1. Blueprints — визуальные компоненты, соединяемые мышкой.
2. C++.
Blueprints, начиная с какой-то очень невысокой степени сложности,
становятся совершенно нечитаемыми и запутанными.
Напротив, эквивалент на C++, как правило, намного аккуратнее и яснее.
В результате, как мне кажется, мы упустили что-то важное, с чем современные технологии могли бы старть гораздо более удобными — по крайней мере для профессионалов. Возможно, был бы некий аналог пользовательских скриптов, которые можно было бы создавать буквально мышкой в каком-то редакторе, соединять входы модулей с выходами как на электрической схеме — и получать те же конвейеры, только работающие с GUI и отображающие вывод в удобных виджетах.

Кстати да, такой модуль (программа) для создания скриптов был бы, думаю, вполне кстати. Накидать в гуе то, что и как и в какой последовательности делать — получить скрипт — выполнить. Было бы неплохо

Но времена меняются, на смену консоли пришли графические, а затем и web интерфейсы.

Не пришли. Только как дополнение. Каждый раз плююсь, когда на какой-нибудь свитч или роутер вебом попасть можно, а консолью нельзя — ряд операций в ней куда проще.


на себя компонентная технология типа COM. Вроде так и предполагалось — множество компонентов, реализующих простые задачи, возможность встраивать компоненты в документы, открывать excel из word и тому подобное. Но — в конечном итоге следует признать, что не получилось

По двум причинам: 1) это проприетарь от Microsoft 2) конкретная реализация была чересчур сложна, настолько, что даже на самой винде она стала терять популярность. Но вот в Android Гугл сделал нечто отдаленно похожее на COM для интеграции приложений...


Еще можно упомянуть, что старые языки командных интерпретаторов весьма неудобны и архаичны — особенно на фоне современных языков программирования и идеально выверенным синтаксисом

Неверно по обоим пунктам — ни про неудобность/архаичность (ну или попробуйте брать не шелл образца 93 года, а хотя бы настроенный zsh), ни про "выверенный синтаксис" т.н. "современных" языков.


Возможно, был бы некий аналог пользовательских скриптов, которые можно было бы создавать буквально мышкой в каком-то редакторе, соединять входы модулей с выходами как на электрической схеме — и получать те же конвейеры, только работающие с GUI и отображающие вывод в удобных виджетах. Возможно, это направление слилось бы с Вебом, JavaScript заменил бы языки командных интерпретаторов, а браузер стал бы новым терминалом.

Вот весь этот ваш уродлвый Веб следует выкинуть и начать заново. Причем даже не с нуля — описываемую роль был призван сыграть Tcl/Tk — встраиваемый язык, изначально предназначенный для скриптового расширения уже написанных приложений, позволяет легко клепать эти самые GUI-вые виджеты. Но увы, сначала продвижение Sun своего нового языка Java, а потом бум доткомов — подвинули его из популярности/известности, в пользу ущербного Веба.


Сложные пользовательские скрипты собирали и анализировали бы информацию с сотен сайтов и отображали бы ее в удобном для конкретного пользователя виде…

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

По двум причинам

По трём, и третья — безопасность. Подход «всё, что есть на компьютере, имеет право запускаться на выполнение с правами текущего пользователя» был здравым лишь до интернета.
Каждого в электронном письме попросили сделать скриншот текущего десктопа сразу, как только они прочитают эти слова.
И тут же скриншот с письмом, в котором не написано абсолютно ничего подобного. Не то чтобы это было важно, но яркий пример почему существует локальный термин «ализарщина».
Would you mind sending me a screenshot of your current desktop...

А что не так?

То есть вы бы это перевели как «сделайте скриншот вашего рабочего стола как только прочитали эти слова»? Не хотите устроиться в вдсину писать статьи?

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

А, получается это нормально если какая-то часть совпадает, а остальное — отсебятина?

Но ведь работать в консоли на самом деле неприятно (приятно ли вообще работать- это большой философский и субъективный вопрос)

Но ведь работать в консоли на самом деле неприятно

Ну незнаю. Например снять образ куска диска через dd в одну команду (и потом также в одну его развернуть) куда приятнее чем Windows-way вида «найди 1000 и 1 утилиту весом 100-1000мб и перебери подходящие и работающие с твоей FS».
Уверен, что так и есть — если знаешь, что это можно сделать с помощью dd. Если нет, то возможны варианты.
ну так man dd и вперёд.
А почему man dd, а не tt, не pp и не Not Yet Another Disk Imager? Вы ставите linux и windows-пользователей в заведомо неравные положения, у вас первый знает, что использовать, а второй еще только должен найти. Поэтому ничего удивительного в том, что у первого головной боли меньше.
Окей, сейчас загрузил Windows 7, чем мне там склонировать диск на диск. Ой, что-то по слову копирование/клонирование у меня вылезает только архивация, надо наверное спросить гугл «склонировать диск windows», блииин, сколько вылезло, ладно тыкаю в первую ссылку «8 лучших программ для......», там какие-то проги показывают, надо скачать и установить… Далее может вылезти «софт платный, в бесплатной версии не умеет клонировать», далее надо изучить мануал именно по тому, что я скачал. Или надо позвонить знакомому виндовому админу, он-то точно подскажет, чем оно лучше делается, вот только он использовал «Cool Great Soft For Disk Imager/Cloner 2.1 rev A», а с сайта сейчас качается 7.9 Pro, у которой уже совсем другой интерфейс, «алё, Петь, слуш, я скачал эту дуру, а там всё по другому, можешь свою версию кинуть?». Ладно, забываю про знания линухов и лезу в гугл «склонировать диск linux», снова первая ссылка, «Как клонировать ваш жесткий.....», снова там несколько софтин рассматривают, опять качать прийдется, хотя стоп, вот про первую сразу пишут, что она Linux Native и есть почти везде, хмм, проверю ка, ой, да, у меня она уже стоит, о, а вот там и пример дан, как клонировать. Да, для того, чтобы понять «а где кнопка F1 в линуксе» надо будет погуглить выражение «справка linux», но и и там у меня первой страницей вылезло описание того, как надо man набирать.