Мне вообще больше всего нравится работать в одиночку — сам начал, сам закончил, сам всё придумал, спроектировал, реализовал, захотел — апи переколбасил, захотел — всё отрефакторил, как тебе нравится, красота! Но даже достаточно небольшие проекты, которые реально за вменяемое время затащить в одно рыло, имеют тенденцию усложняться так, что никакой творческий рефакторинг сам по себе не спасает. Про большие проекты, которые в одно рыло нереально, уж что и говорить. Единственный, по-сути, метод, который человечество изобрело для борьбы с подобной сложностью — это black box abstraction. Как по-другому ни назови и в какой парадигме ни оформи (функции, классы, пакеты, модули, сервисы, интерфейсы, и т. д., и т. п.) — суть одна: вот вход, вот выход, в середине чорный ящик, надеемся, что он работает правильно, преобразуя любой допустимый вход в соответствующий выход, потому что держать постоянно в башке все детали реализации всего нереально, никакой башки не хватит. Каким местом этот подход (единственно возможный, вообще-то) уничтожает личность и желание создавать? Я правда предпочитаю работать в формате «вход-выход-приступай» над коллективными проектами, да даже и если в одиночку допиливать чужие проекты — это просто наиболее рациональная и вменяемая постановка задачи, в противном случае, как правило, там получается что-то вроде «вот возьми эти километры говнокода, вдумчиво раскури, сам там нащупай вход-выход, и тогда уже приступай».
Что такое микросервис, значительная часть которого кодогенерируется? Это способ изолировать разработчика от целого (и друг от друга). Это жёсткий контракт в YAML-файлах: «На входе требуется вот это, а на выходе вот то, приступай!». И даже внутри оставшихся двадцати процентов свобода творчества самым садистским образом ограничена: цензурируется шестью с половиной линтерами!
Но ведь вполне здравая идея — изолировать и абстрагировать задачи, чтобы разработчик не был вынужден сперва пару месяцев втыкать в весь имеющийся codebase, а мог работать в формате «вход-выход-приступай». Да и линтеры правда ли такое уж зло — нужно ли другому разработчику, если мы от него всё же не смогли до конца изолироваться, ломать глаза, проникаясь нашим творческим стилем кода, или всё-таки лучше видеть привычные вещи в привычных местах в привычном формате? Пример если что и показывает, так это то, что любая, даже здравая в основе своей идея, будучи доведена эффективными менеджерами до состояния самоцели, может превратиться в бессмысленный вредный маразм. Ну так а что у нас, будучи доведено до состояния самоцели, не может превратиться в бессмысленный вредный маразм?
Вообще, можете зачитать статью в аудио-формат голосом Ленина, и чтобы там ещё были всякие «батенька» и «аrхиважно»? Типа: «Товаrищи! Аrхиважно написать пrепrоцессоrы для Go и Rust, rеализующие синтаксис исключений! Немедленно захватить и ценой любых жеrтв склеить в монолит все микrосеrвисы!»
Но государство, как правило, не запрещает убивать ни там, ни там — государство для обоих случаев пытается эвфемизировать убийство до полного абсурда. Сколько я ни читал про все эти запреты насилия в играх, я не помню ни одного случая формата «запретить, там убивают», везде бред типа «а пусть там, когда в персонажа стреляют, кровь брызжет не красная, а зелёная, а ещё лучше пусть вылетают разноцветные блестящие конфетти, создавая ощущение праздника». В реальном мире заменить кровь на конфетти пока не умеют, всё сводят к новоязу, когда солдат не убивает врага, а поражает живую силу противника.
Судя по тому, что я читал про этих остриц в журнале «Здоровье», их жизненный цикл в организме довольно короткий, чтобы ими постоянно страдать, надо постоянно же ими по-новой самозаражаться, для чего следует чесать жеппу и потом облизывать пальцы, или как-то так. Если этого не делать и прилично себя вести, то они сами исчезнут, даже без лечения. Понятно, что котику сколько ни рассказывай про гигиену, он всё равно будет сперва лизать себе попку, потом лизать себе лапку, потом этой лапкой умывать себе мордочку и далее везде. Но от людей, пусть даже от детей, пусть даже от еврейских как-то не ожидаешь подобной дичи…
Когда-то давным-давно в поисковиках была очень крутая фича «искать в найденном», потом её зачем-то выпилили отовсюду. Пишешь «болт М12», поисковик выдаёт про болты М12; ставишь галку «искать в найденном», пишешь «шплинт», поисковик оставляет из всего найденного про болт только то, где есть ещё про шплинт.
Слышал историю формата «знакомому рассказал знакомый знакомого», за правдивость ни разу не поручусь. У знакомого знакомый живёт в Израиле и там у него дети ходят в детский сад. Из этого сада дети регулярно приносят домой остриц, которыми заражают всех прочих членов семьи и домочадцев. Якобы, гигиена не спасает, препараты не спасают — вылеченные дети просто сразу же подхватывают обратно этих остриц от других еврейских детей в детском саду, после чего приносят их домой и всё сначала.
Я просто всегда ношу с собой в офисы маленькое махровое полотенце карманного формата, где-то 20х20 см, и всякий раз убеждаюсь, что прав был Дуглас Адамс.
Автор, я полагаю, близко к тексту цитирует широко известную в узких кругах книгу «Ружья, микробы и сталь», где, без излишнего петросянства («юные пацифисты» и т. п.) излагается именно так: для борьбы с перенаселением применялась выборочная кастрация младенцев мужского пола. А на какой источник опираетесь вы?
Думаю, вряд ли тут вообще уместно выражение «умудрились усовершенствовать» — максимум, адаптировали под местные реалии. Такое «усовершенствование» должно было дополнительно помножить на нуль и без того никакую точность и дальнобойность тогдашних мушкетов, но, когда вместо мушкетёров короля (может, ещё и в кирасах), ровными шеренгами дисциплинированно лупящих в таких же мушкетёров другого короля, имеются две кучки голопузых дикарей, то оно, наверное, сойдёт.
Непонятно, как «выборочная кастрация юных пацифистов» сама по себе могла решить проблему перенаселения: какой процент необходимо кастрировать, чтобы оставшимся не хватило юных сил чтобы покрыть всех наличествующих юных пацифисток?
Помню, в старших классах средней школы на уроках информатики два моих одноклассника задумали написать программу, которая выводила бы на экран изображение голой женщины. На Агатовском Бейсике. Модель взяли из журнала. Перевели линиями на миллиметровую бумагу. Стали вручную вводить эти данные в компьютер. До хранения данных в отдельном файле и прочих премудростей вроде битового пакования и RLE, разумеется, их юные мозги не додумались, поэтому всё было реализовано набором строк вида (не помню точную команду в том Бейсике для рисования точки, но как-то так): 10 PLOT 34 57
20 PLOT 34 58
и т. д., и т. д., тысячи их. Один диктует, другой вводит. Несколько уроков подряд этим промаялись. При этом странный графический режим Агата это усё растянул вширь, с какой-то своей периодичностью ещё пропуская вертикальные полоски пикселей. В итоге, учитель отказался им за это ставить высокую оценку по предмету, мотивируя это тем, что баба вышла какая-то неэстетичная.
Я не знаю за клавиатуры corne, у меня на Moonlander стрелки в отдельном слое на ijkl. Там даже эмуляция мыши есть, но я, честно, не представляю, кто и зачем мог бы ей пользоваться: она сочетает в себе недостатки клавиатуры и мыши, не обладая их достоинствами. Разве что идеальные прямые в Пэйнте рисовать?
Касательно «просто у создателя была клавиатура», читал где-то, что вся эта «эргономика» сложносочинённых команд vi изначально задумывалась для медленных удалённых текстовых терминалов, где ты не просто нажал del-del-del и в реальном времени удалил три символа, а нажал, ждёшь, пока оно дойдёт туда, ждёшь, пока ответ придёт оттуда, дождался, убедился, снова нажал — в таких условиях фишки вроде цифры перед командой действительно должны экономить кучу времени и нервов. Собственно, примерно такой юзкейс я и описывал в первом комментарии.
Не думаю. Русским или даже английским языком я владею всяко лучше, чем любым из языков программирования, но даже на них я обычно не могу гнать хоть сколько-нибудь осмысленный контент с максимальной слепой десятипальцевой скоростью набора, на которую технически способен.
В тот раз я дольше трёх месяцев практически безвылазно просидел в Vim-е (не помню точно, где-то полгода-год). Освоил хоткеи, настроил конфиги, поставил плагины, привык, пользовался. Никакого кардинального изменения моих способностей к чему бы то ни было не заметил от слова «совсем». Когда-то давно пару лет просидел в Emacs-е, с тем же результатом: свой особый путь, сперва ломает, но изучаешь, привыкаешь, можно пользоваться. Только, с одной стороны, а зачем? Но, с другой стороны, а почему бы и нет?
Совершенно не парит «прыгать рукой с клавиатуры на мышь» (тут можно было бы привести широко известную в узких кругах цитату про секундомер, но мы сдержимся). Замедляет ли меня это, и если да, то насколько — я не знаю, но думаю я обычно медленнее, чем печатаю, даже с учётом мыши, так что пофиг.
Пробовал, в очередной раз, перейти на это в начале ковидной эпопеи, когда мудрое начальство решило, что удалённо работать через удалённый рабочий стол через медленный корпоративный VPN будет тоже нормально. Думал, щас вот я со скрежетом зубовным пытаюсь не промахнуться по нужному месту лагающим мышиным курсором, а буду, такой, «VIM, удоли символы с пятого по семнадцатый тремя строками выше», а VIM, такой, «I'm afraid I can't do that, Dave»... По личному опыту:
Основы, вроде навигации по hjkl и прочих dd xx, в принципе, осваиваются довольно быстро. Да, это всё равно боль, но такая, к которой привыкаешь. Нет, это не быстрее мыши.
Всякие более сложные фишки могут быть весьма удобны, они могут, наверное, быть быстрее мыши если прям привыкнуть и проникнуться. Но ты ж их используешь-то пару раз в году и никогда не запомнишь, каждый раз заново гуглить, как это сделать. Вся быстрота и всё удобство убиваются и уходят в минус.
Но я же не совсем тупой, я напишу шпаргалку по нужным командам и буду держать на втором мониторе! Да, ага, очень помогает, вместо ковыряния по менюшкам IDE теперь происходит ковыряние в тексте шпаргалки в поисках чего там как где.
Совсем лютое джедайство вроде guu 2jfkD yip 21G SHIFT+v jp f1CTRL+a 11Gdip ggdd jv4jd Go'Hello World!', возможно, действительно становится киллер-фичей после многолетних практик и медитаций, когда в отдельной специальной зоне мозга из особых нейронов формируется Vim-сопроцессор и можно херачить подобное, не переключая основной ментальный контекст. В моём случае переключение взад-вперёд между «вот я программирую мою задачу на Питоне» и «вот я программирую сложную текстовую операцию в командах Vim» выбивало, что называется, «из потока» не хуже внезапного звонка от секретарши босса с очередной бессмысленной и беспощадной бюрократической по2.7ботой. Нахер-нахер, пусть я мышью, пусть я медленнее, но при этом продолжая обдумывать задачу, а не просыпаясь, как герой фильма «Memento», внезпано посреди нигде и вспоминая «кто я? где я? что я там делал-то до того, как решил эффективно отредактировать текст?»
Был ещё более громоздкий прибор, забыл название, на который сверху кладёшь большой лист прозрачного пластика, а он проецирует нарисованное там на стену. Можно было фломастером своё рисовать, а тот, что у вас, годится только для демонстрации готовых слайдов, на таком размере сам не нарисуешь, если ты, конечно, не мастер-миниатюрист.
Япония «уже не та», японцы давно научились косить и забивать не хуже любых других прочих. Плюс, тут вон пишут о «невозможности интеграции в общество» как о минусе, но это так же и плюс: на причуды гайдзина зачастую смотрят сквозь пальцы и не ожидают от него полноценного участия в корпоративном маразме наравне с аборигенами.
Говорят, программисты всякого GPS оборудования реально вводят туда релятивистские поправки — если так, то (не)постоянство скорости света влияет на точность позиционирования конкретно моего смартфончика.
Когда о человеке можно сказать, что он стал программистом?
С учётом двойного смысла слово «можно» в русском языке («есть такая возможность физически» и «это не запрещено никакими высшими инстанциями»), ответов на этот вопрос будет тоже два:
Когда у нас имеется как минимум один индивидуум, обладающий способностью «членораздельная речь».
Когда называть человека программистом не запрещает уголовный кодекс.
Из пунктов, приведённых в статье, имеет смысл только п. 7, остальное — бессмысленная вкусовщина из серии «угадай, что я думаю, почеши моё эго».
Но ведь вполне здравая идея — изолировать и абстрагировать задачи, чтобы разработчик не был вынужден сперва пару месяцев втыкать в весь имеющийся codebase, а мог работать в формате «вход-выход-приступай». Да и линтеры правда ли такое уж зло — нужно ли другому разработчику, если мы от него всё же не смогли до конца изолироваться, ломать глаза, проникаясь нашим творческим стилем кода, или всё-таки лучше видеть привычные вещи в привычных местах в привычном формате? Пример если что и показывает, так это то, что любая, даже здравая в основе своей идея, будучи доведена эффективными менеджерами до состояния самоцели, может превратиться в бессмысленный вредный маразм. Ну так а что у нас, будучи доведено до состояния самоцели, не может превратиться в бессмысленный вредный маразм?
Вообще, можете зачитать статью в аудио-формат голосом Ленина, и чтобы там ещё были всякие «батенька» и «аrхиважно»? Типа: «Товаrищи! Аrхиважно написать пrепrоцессоrы для Go и Rust, rеализующие синтаксис исключений! Немедленно захватить и ценой любых жеrтв склеить в монолит все микrосеrвисы!»
10 PLOT 34 5720 PLOT 34 58
и т. д., и т. д., тысячи их. Один диктует, другой вводит. Несколько уроков подряд этим промаялись. При этом странный графический режим Агата это усё растянул вширь, с какой-то своей периодичностью ещё пропуская вертикальные полоски пикселей. В итоге, учитель отказался им за это ставить высокую оценку по предмету, мотивируя это тем, что баба вышла какая-то неэстетичная.
Касательно «просто у создателя была клавиатура», читал где-то, что вся эта «эргономика» сложносочинённых команд vi изначально задумывалась для медленных удалённых текстовых терминалов, где ты не просто нажал del-del-del и в реальном времени удалил три символа, а нажал, ждёшь, пока оно дойдёт туда, ждёшь, пока ответ придёт оттуда, дождался, убедился, снова нажал — в таких условиях фишки вроде цифры перед командой действительно должны экономить кучу времени и нервов. Собственно, примерно такой юзкейс я и описывал в первом комментарии.
Совершенно не парит «прыгать рукой с клавиатуры на мышь» (тут можно было бы привести широко известную в узких кругах цитату про секундомер, но мы сдержимся). Замедляет ли меня это, и если да, то насколько — я не знаю, но думаю я обычно медленнее, чем печатаю, даже с учётом мыши, так что пофиг.
а VIM, такой, «I'm afraid I can't do that, Dave»...По личному опыту:С учётом двойного смысла слово «можно» в русском языке («есть такая возможность физически» и «это не запрещено никакими высшими инстанциями»), ответов на этот вопрос будет тоже два:
Из пунктов, приведённых в статье, имеет смысл только п. 7, остальное — бессмысленная вкусовщина из серии «угадай, что я думаю, почеши моё эго».