Задать вопрос
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Alex Wells,
    Спасибо) Но это всего-лишь пример.

    На примере того же tail все по-другому. tail под linux и tail под macos - может быть вообще двумя разными бинарниками, написанными на разных языках

    наверное потому что linux и macos это разные ОС, но при этом обе системы посикс-совместимые.

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

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

    Ну да. На каждую либу и метод - по джарнику писать? А если вывод сложнее, чем exit code 1/0? А если нужно аргументы передать, будете парсить ввод? Как костыль - ок, но к хорошему решению этому далеко.

    Чем плохи конфигфайлы? При этом их даже не обязательно менять, можно просто оверрайдить значения через переменные окружения (скорее всего об этой фиче в java вы не знаете).

    Ну тут наши мнения сильно расходятся. У современных языков есть вся мощь: асинхронность, параллельность, экосистема, синтаксис. Все это далеко не всегда нужно.

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

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

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

    Но опять таки - в качестве shell, в качестве языка для администрирования и автоматизации простой рутины, в качестве клея для миллионов CLI утилит, внутри различных инструментов по CI/CD и так далее - bash/ksh/zsh - это идеальный инструмент в *nix, и он настолько комфортный, что пока что нет даже смысла с нуля писать что-то другое. Хотите развития - zsh это то, куда сейчас идет линукс шелл официально. Возможно лет через 10 он будет дефолтной оболочкой во многих дистрибутивах, ибо обратная совместимость у него полная.
    В Windows так сложилось, что рулит не сообщество, а MS, и там рулит powershell, который значительно сложнее по синтаксису, поэтому он многим не нравится. Но да, он мощный, с кучей интеграции из коробки. Вот только простые вещи на нем делать сложно, поэтому часто параллельно с ним юзается либо совсем убитый старый cmd либо ставят что-то рядом, типа bash.

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

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

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    mkone112,

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

    Наверное да. Просто я под конспектами имел ввиду когда человек сам записывает какие-то вещи, переписывает свои заметки под удобное самому себе расположение, какие-то схемки, и так далее - в процессе всего этого и приходит усвоение материала. Грубо говоря превращение лекции в какое-то подобие практики.
    Просто тупо записывать под диктовку - не приводит ни к чему..
  • Как установить мониторинг kafka?

    saboteur_kiev
    @saboteur_kiev
    Да куда хотите ставьте.
    нужно понимать, что kafka-rest-proxy будет дергать саму кафку. Поэтому его как раз лучше ставить туда, где крутится кафка.
    А агент мониторинга - непонятно что вы под ним подразумеваете. К kafka-rest-proxy вы чем обращаетесь?
    Курлом из баша или как?
    Никто ж не знает что у вас по нагрузке.
  • В чём конспектировать материал?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    hint000, Вы читали что именно на ваших графиках?
    1. Бедные семьи не могут себе позволить высшее образование.
    2. Количество мест, где можно получить квалифицированную работу не так много, как хотелось бы и уже квалифицированные инженеры не пускают новичков - это вполне себе тоже. Сравните требования к джунам сейчас и 2005.
    3. Количество низкоквалифицированной работы заметно уменьшается в силу автоматизации и централизации сообщества. Село как таковое уже умерло, а значит что все эти люди не будут где-то там себе спокойно жить, а будут ехать в город, где условия проживания требуют не столько физической работы, а квалификации, а она опять таки требует много денег (особенно забугром).

    Но все это ВООБЩЕ не имеет отношения к тому, что куда скатывается.
    Есть полно людей, которые читают, полно людей которые умеют и в конспекты и в книги.
    Отупения как такового не происходит, происходит некоторая замена одних вещей другими.

    Хотите посмотреть сколько читает - зайдите на authors.today, посмотрите сколько есть прочтения у даже не самых интересных книг. Беллетристика так себе выборка конечно, но там миллионы и миллионы. Еще и за деньги.
  • В чём конспектировать материал?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    Але, конспекты не нужны через одно поколение, конспекты нужны тому, кто их пишет. Они уже через год-два будут не нужны. ПОэтому нет смысла заниматься фигней типа совместимости.
    Написание конспектов - это просто часть процесса запоминания конкретного человека, а не процесс записи великих знаний на века для человечества
    Что касается конспектирования - виртуалки никуда не денутся.
    То, куда скатывается среднее образование в отдельно взятой стране, это не тоже самое, где находятся другие страны. В целом человечество в любом случае развивается.
    А условные 90% были и существовали всегда, просто это не было так заметно раньше, когда в масс медиа попадали только лучшие отцензурированные новости.
  • Как установить мониторинг kafka?

    saboteur_kiev
    @saboteur_kiev
    С каких пор kafka-rest-proxy это агент мониторинга?
    Это просто сервис, чтобы лазить в кафку веб-запросами. Можно его и на сервер с кафкой поставить.
    А агент мониторинга это всегда executor вашей системы мониторинга.
  • Система контрактов. Какие есть готовые инструменты?

    saboteur_kiev
    @saboteur_kiev
    Для согласования - UML ?
    Swagger вроде некоторые используют для написания простенького API
  • В чём конспектировать материал?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    hint000, с чего это вдруг?
    Вы должны как бы понимать, что при любом развитии науки, таблица менделеева не изменится, фундаментальные вещи останутся таковыми, и если человек не перестанет быть биологическим видом, он будет как и сейчас зависеть не только от глаз и ушей, но и от тактильных ощущений и мышечной памяти.
    Можете попробовать писать стилусом, но для конспектирования именно писать, а не набирать - работает лучше всего с точки зрения памяти.
    Уже потом, можно переработать конспекты и сделать из них что-то красивое и удобное в электронном виде, где будет работать и поиск и ассоциации (программ для хранения записей в виде mindmaps достаточно).
    Но первично, когда нужно записать что-то срочно - ручка на текущий момент лучшее.
    Ну или пишите на камеру и пересматривайте с удобными паузами.
  • В чём конспектировать материал?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    Бумага имеет хорошее преимущество. Полная свобода, независимость и что весьма немаловажно - моторику.
  • Создание папок при рекурсивном копирование командой cp в терминале?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Damian Lewis, А как вы через Drag&Drop смогли бы скопировать что-то в еще несуществующую папку? В какое место вы бы тянули мышкой?
    Правильно - в никакое. В GUI вам также прийдется ее сперва создать.

    Поэтому правильный вариант - mkdir а затем cp.
    Если хотите, сделайте скрипт из двух команд.
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Да даже копируя простой tail --lines=100 из ответа стаковерфлоу

    Покажите мне этот ответ из стек оверфлоу. Я очень удивлюсь, чтобы кто-то писал --lines=100 вместо -n 100 (а -n поддерживается в макос).

    Вы не правы, совсем. Языки прячут os-specific штуки за абстракциями. Добится неработоспособности какого-то кода на одной из платформ - очень и очень сложно. Нужно прямо хорошенько постаратся.

    Обратиться к c:\ ?
    Или вы так не делаете? А почему? А может потому что изначально пишете код платформонезависимо?
    Так а почему в баш не можете так делать и приводите платформозависимые примеры с --lines=100 ?

    .. нет, не можете. То, что вы хотите, называется не библиотека, а целое консольное приложение. Что бы у нее была точка входа, парсер аргументов, вывод exit code, stdout и stderr. Это в разы дольше и сложнее, чем просто библиотека, которую можно использовать только как зависимость к другому проекту и никак иначе.

    Мне как бы никто не мешает вызывать java метод из джарника, вызывая джаву из баша. Я собственно так и сделал - написал маленький код на java, который использует java driver и провожу тесты с разными версиями mongo драйвера. Чтобы тест был релевантным и я мог бы уверенно сказать разработчикам, какие версии java драйвера точно работают.

    Не могу, к сожалению. Этот конкретный пример - вообще не место для скриптового языка. А другого примера не знаю, но уверен, что у скриптовых языков есть применение. И именно о таких местах надо было говорить изначально)

    Так если не можете привести пример, на чем основывается тогда уверенность, что баш давно пора заменить на другой более мощный и современный язык?
    У скриптовых языков у всех есть отличное применение, но баш в качестве универсального языка и оболочки - пока что самый удобный, и альтернативы у него, как я уже писал - ksh или zsh
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Alex Wells,

    Я поэтому и уточнил, что мы взяли этот кейс для примера.

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

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

    Ощущение, что у тебя 1+1=3. Баш универсален. Особенно для вызова внешних команд, таких как пакетный менеджер - он подходит лучше всего. Поэтому для любых обновлений - это лучший выбор.

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

    Ничего не нужно.

    Понятно, что простенькие баш скрипты скорее всего будут работать везде. Но даже у этого нет никаких гарантий! Если у ls на макоси или у ls на ubuntu 10 какого-то одного флажка нет, потому что там ls кастомный или старой версии, то даже с "популярными" gnu tools ваш скрипт завалится.

    У любого языка есть свои кастомные штуки при работе в разных ОС.
    И совершенно непонятно, почему наличие всего одного флажка вдруг вызывает завал скрипта. Этот флажок может и не использоваться, и в 99% неиспользуется, если ты пишешь скрипт с желанием сделать совместимо.
    На джаве легко написать код, который не запустится в 1.8, или не запустится в макос. Раунд.

    Условная котлин библиотека не компилируется в баш и, обьективно, никогда не будет. А использовать такую библиотеку как executable вы не сможете, так как это библиотека, а не executable :/

    Что значит "компилироваться в баш"? Если мне нужно сделать чекалку подключений к монго в джаве, то я могу написать библиотеку на джава именно с нужной версией джава драйвера, и из баша запускать ее с разными коннекшенами. И это будет проще и универсальнее, чем писать на джава все целиком.

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

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

    Принимаем решение исходя из цены и выгоды обеих решений.

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

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

    Обьективно, уязвимости находятся довольно редко.

    Вне нашей текущей дискуссии, поменяйте ваш скан уязвимостей ;)
  • Хочу в геймдев, с чего начать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    Boobtschebeznika,
    Не знаю, первые три игры я разрабатывал не проходя эту карту вообще.
    Я просто писал код.
    Итого, онлайн в первой игре ~150, во второй ~600, в третьей ~100 000.
    И онлайн никак не связан со сложностью разработки.

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

    Что нужно узнать до того, как приступить к изучению английского?
    Историю Англии, историю языка, культуру современной британии, классификацию разных языковых групп или ПРОСТО ВЗЯТЬ И НАЧАТЬ УЧИТЬ АНГЛИЙСКИЙ?

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

    Вот скажи, у тебя достаточно в голове логики и математики, чтобы написать игру "морской бой"?
    Как ты думаешь насколько сложная математика, графика, аудио и искусственный интеллект нужен чтобы начать ее делать?
    Это даже не карта. Это даже не план, это просто какая-та чушь - без детализации что означает конкретный пункт, это можно просто выкинуть. Особенно там где game engine development - это вообще не всем нужно, можно взять готовый движок, можно без него.

    Тебе уже несколько раз говорят - программирование игр, в первую очередь это просто программирование. Учи язык программирования. Если ты думаешь что изучив один, ты не сможешь изучить другой и потратишь очень много времени на первый - я тебе скажу, что ИТ - СЛОЖНАЯ область. Потратить год на один язык - это далеко не всегда даже на джуниора хватит. Поэтому неважно какой язык учить сейчас, чтобы освоить базовые понятия программирования и принципы как это работает.
    Просто бери и программируй.
  • Хочу в геймдев, с чего начать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    mkone112,
    Велосипед развивает синхронизацию движений (и следовательно полушарий) и равновесия, и в трехлетнем возрасте это очень полезно для дальнейшего развития человека в целом.
    В общем теперь понятно, почему ты такой ;D
  • Почему для скриптинга в шелле используется bash а не более современный язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    Alex Wells,

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

    окей, база обновляется без зависимостей.
    Может быть джаве для обновления нужны зависимости?
    Может быть докеру для обновления нужны зависимости?
    ЧЕМУ кроме обновления OS нужны зависимости?
    Ну не несите чушь. подавляющее количество софта при обновлении новых зависимостей не требует.

    Для баша? Или для типичных (опять же, типичных в моем понимании) скриптов на нем? Первое - это понятно, а второе - отписал выше)

    Не понимаю что отписано выше. gnu tools - популярные утилиты. ls, top, grep, ps, kill - понятно что без них мало что можно сделать в системе. Не понимаю какие у вас с ними проблемы. Любой язык программирования без библиотек - практически ничего не может делать.

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

    Баш тоже может использовать библиотеку, написанную на том же языке.

    Ну не прям руками. Но и не автоматически. Опять же: есть у вас 50 девов и в придачу еще 6-8 стейдж/прод енвов. На каждом будете вручную запускать скрипт, даже если допустить, что он универсально выполнится на linux/macos/docker разработчиков и условный ubuntu/docker стейджов? А если через день найдется бажок и нужно будет откатить? Опять все руками?

    Ну значит вы не понимаете, что баш это не оркестратор. Можно запускать не вручную, а через jenkins, можно использовать ansible/chef/puppet и другие вещи. Зачем тащить баш именно туда, где уже есть популярные инструменты, которые НЕ являются другими "более современными" языками программирования, а именно инструментами оркестрации???

    Это, все таки, разные вещи. Если вас в команде 3 человека и у вас только стейдж и прод - ок, это терпимо. Но с любым более-менее большим проектом это совсем не работает.

    У меня ~10 только команд разработчиков и используется множество инструментов. И связующим клеем часто является или баш или питон, в зависимости от того, что нужно в данный момент.

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

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

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

    Автоматические секьюрити чеки всегда работают на отлично?
    Скажем в каком-нибудь фреймворке всегда есть куча 3rd party библиотек. И на одну из библиотек ругается секьюрити чек.
    Что вы делаете - обновляете руками эту библиотеку в фреймворке, или обновляете весь фреймворк?
    А если нет версии этой библиотеки без уязвимости (по словам вашего секьюрити чека), как вы обходите завалившийся чек?
    И самое интересное, как это у вас все выполняется полностью автоматически?
    Я уверен что регулярно приходится что-то делать руками.
  • Хочу в геймдев, с чего начать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    mkone112, И на велосипед тоже сел только после того, как изучил как именно работает цепная передача со свободным ходом втулки?
    То есть не в 3 года, а уже к концу школы?
    :)
  • Как синхронизировать два репозитория Git между собой и с репозиторием SVN?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    поставить на сервере задачу в кроне, которая будет выполнять pull в локальный репозиторий?
  • Хочу в геймдев, с чего начать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    Boobtschebeznika,
    В интернете ПОЛНЫМ ПОЛНО планов для полных чайников. Просто если чайники хотят чтобы им разжевывали каким проводом клавиатура вставляется в компьютер - то это не план. Это настолько общие и примитивные знания, что для них не нужно читать подробную документацию.

    ИТ область - область с высокой квалификацией. И если какой-то план для новичков похож не на список из 10 пунктов а на статью с кучей терминов - то это оно и есть. И искать что-то попроще - нужно не в ИТ вообще.

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

    Вот простой пример, как ты пытался найти информацию. Но почему ты не нашел вот это?
    Как попасть в game-dev и с чего начать карьеру в э...
    Куда податься вчерашнему студенту-недопрограммисту...
    Хочу попасть в игровую индустрию. В какую магистр...
    Как попасть в game dev?
    Что нужно, чтобы стать разработчиком игр?
    С чего начать путь в Game Dev?
    С чего начать путь в Game Dev?
  • Хочу в геймдев, с чего начать?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    Boobtschebeznika, Ну алгоритмы же еще в школе проходят. Для простых игр нужны простые алгоритмы, для сложных сложные.