All streams
Search
Write a publication
Pull to refresh
30
0.1
Даниил Солопов @dan_sw

Software Engineer, Bachelor of Computer Science

Send message

Ну Вы и сравнили конечно :) Где сборка программы компилятором, а где её целиком написание? Да и у компиляторов есть альтернатива - интерпретаторы, которые выполняют исходный код по частям (без полного компилирования).

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

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

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

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

Использование LLM-ассистента в рабочем процессе лишает этого.

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

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

Вместо радости от самостоятельного решения проблем, теперь нужно просто попросить LLM предложить дополнение кода

Ну и никто не заставляет этого делать :) Можно ведь не использовать LLM и не обращать внимание на секту "вайб кодеров", которая разносит эту концепцию по интернету как единственно верную и новую, революционную, технологичную "парадигму" программирования. Можно также как и раньше продолжать писать код самостоятельно, думая своей головой, решая задачи. Есть куча компаний, которым LLM нафиг не сдался, у них выстроены свои команды, выстроены внутренние механизмы и разработчиков-людей им хватает.

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

Возможно они занимаются этим только ради денег?

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

Это очень заезженный стереотип, который давно канул в лету. Хватит уже на таких людей косой взгляд кидать - они тоже крутые. Каждый в программировании и IT может найти то, что ему нужно и быть счастливым. В конце концов каждый человек стремится к счастью (как бы сильно некоторые этого не отрицали).

Но мне кажется, такие антиутопические суждения не очень дальновидны

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

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

И таких статей куча. Никто из них не отвечает на вопрос "заменят ли нейронки программистов" на 100%. Даже на 20% они не отвечают. А то, что несут главы передовых компаний мира, по типу NVIDIA, OpenAI, Microsoft, вообще ничего общего не имеет с развитием AI и его влиянием (сегодняшним и будущим) на человечество. Там только рассуждения тех людей, которые зарабатывают огромные деньги на развитии ИИ и не более.

Сейчас в мире доминирует концепция "человек человеку волк" или "каждый сам за себя", и не думаю, что что-то изменится. А значит, имеет смысл просто самостоятельно развиваться, развивать своё дело, расти, приумножать и не озадачиваться тем, что там с людьми будет через 10-20 лет. Кому не всё равно?

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

"А я вот очень надеюсь, что в ближайшем будущем ИИ наконец заменит любую деятельность, к которой лично Вы причастны. Которой когда-то занимались, занимаетесь или будете заниматься. Понятно почему Вы этого не хотите или боитесь - это лишит Вас работы (и смысла жизни), но если взглянуть на картину в целом - это же автоматизация, следовательно огромное количество людей вместо Вашей работы (и любой другой работы, которой Вы можете заниматься) могут заниматься другими вещами (какими? А никакими, потому что любые эти вещи 100% могут и будут заменены ИИ)."

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

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

А вот я очень надеюсь, что в ближайшем будущем ии наконец заменит

Эту мысль следует трактовать вот так: "а я вот очень надеюсь, что в ближайшем будущем ИИ наконец уничтожит человечество полностью и безвозвратно. Вот заживём!"

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

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

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

Рефакторинг - часть ЖЦ нормального проекта, особенно разработанного с нуля, потому что ошибок при разработке с нуля / доработки проекта может быть допущено много в силу различных обстоятельств. Если руководитель искренне считает, что рефакторинг не нужен - ок, пусть пишут тонны кода, пока разработчики не уведомят руководство о том, что связи между компонентами системы или ключевые механики настолько усложнились, что дальнейшая их доработка будет занимать пару месяцев, потом годы, а потом будут вообще невозможны - никто ж не против. Компания может загнуться, руководителей уволят, а специалист просто поменяет компанию и на новом проекте уже не допустит тех ошибок, которые ему "запретили" исправлять в прошлой компании. Вот и всё.

Не существует в мире профессионала или эксперта, который сразу с первого раза выдаст супер-мега-крутой проект с идеальным кодом, который легко дополнить и править. Это не сделает даже самый продвинутый ИИ, просто потому что мы изначально не в идеальном мире живём, а тут априори не может существовать ничего идеального.

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

Про незаменимость физического труда вы зря 

Эмм... нет, я не говорил про незаменимость физического труда :)

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

Смотря как. Когда ИИ полноценно заменит людей, то будет бум контента. Причем далеко не всегда качественно. Новые фильмы, сериалы, видеоигры, приложения, платформы будут выпускаться каждый день, в большом количестве. Каждый человек сможет по одному промпт-запросу запустить стартап, автоматизировав вообще все классические этапы этого самого стартапа. Хорошо ли это? Сомневаюсь. Это просто генерация мусора, увеличивающая общий объём информации, который мы, люди, храним на серверах, не более.

А приведёт ли к значительному росту уровня жизни человечества огромная куча информационного мусора? Очень сомневаюсь. Даже сейчас можно наблюдать тенденции, которые очень негативно влияют на людей (те же новости, СМИ, "постправда", эмоции ради эмоций и т.п.). С развитием ИИ это всё увеличится в бесконечное число раз.

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

Да и учёных, в скором времени, возможно и не станет. Лет через 100 в них не будет нужды, т.к. умный ИИ решит все проблемы человечества (ну или почти все). Зачем нужны умные люди, если есть умный ИИ?

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

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

Код пишется для человека, компилятор работает так, как нужно человеку, более того - компилятор работает благодаря тому, что его определённым образом написал человек. Процессор работает так, как нужно человеку, всё IT так работает и так устроено (для человека), как и самая продвинутая нейросеть (LLM, GPT, и т.п.).

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

Важно понимать, что любые ошибки можно исправить. Вот и всё.

Такие сравнения вообще не корректны, честно говоря :)

LLM (и AI в общем смысле) часто позиционируют как нечто иное, что способно заменить человека в любом интеллектуальном и творческом труде. В частности программировании, дизайне, проектировании (архитектуры ПО в том числе), и вообще в целом цель - просто заменить человека. Не в физическом труде (ни в коем случае, это оставят людям), а в интеллектуальном. Ведь он быстрее, идеальнее, совершает меньше ошибок, не подвержен чрезмерным эмоциональным переживаниям как человек и так далее и тому подобное. Это для бизнеса выгодно и дешевле. А специалистов никто не спрашивает, нравится им это или нет. "Заменят" и всё (или не "заменят").

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

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

  1. "Ну, раньше люди сами писали интересные истории, вручную думали и что-то придумывали, а теперь это всё делает ИИ";

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

  3. "Ну, раньше люди сами решали задачи по математике, физике, химии, вручную, а теперь это делает ИИ, а мы только наблюдаем. Это прогресс, неизбежно";

  4. "Ну, раньше люди встречались, влюблялись, заводили семьи, и всё делали вручную, а теперь ИИ сам выбирает с кем тебе лучше жить, заводить семью и т.д., даже сам определяет что отвечать твоей жене и детям, чтобы ты не напрягался. Это прогресс, неизбежно";

  5. "Ну, раньше люди сами занимались проектированием ПО, вручную, а теперь это делает ИИ".

И таких примеров можно привести ещё куча. И будьте уверены, эти примеры - это то, к чему искренне стремится вся предлагаемая бизнесом автоматизация. Упрощение упрощения. Замена замен. Очень желают люди всё упростить донельзя, чтобы... что? Я до сих пор не знаю. Чтобы... оправдать прогресс. Или связать прогресс с простотой и упрощением. Но эти вещи не всегда можно связать вместе. Простота не всегда следствие прогресса.

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

Да, Вы правы. Я тут действительно ошибся, немного невнимательно посмотрел на этот массив.

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

Учитывая количество "плюсов" и "одобряющих комментариев" на этой платформе автор свою цель достиг :)

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

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

Что? Не понял к чему Вы это.

Указатель на статический массив и указатель на динамический массив - это два разных указателя и для них вычисление размера (sizeof) происходит по разному.

Если для первого (const char* Logo[10], в данном случае) sizeof(Logo) будет равен действительно 80 (потому что Logo содержит 10 элементов, каждый из которых представляет собой строку из последовательности 8-ми байт (если CHAR_BIT == 8)), то для второго (const char** Logo) значение sizeof(Logo) будет равно размеру указателя на динамически выделенную кучу (4 это будет байта или 8 - зависит от системы). Вы в этом можете сами убедится, тут всё довольно просто:

#include <iostream>

int main()
{
    const char *LogoStatic[10] =
    {
        "  $$ $$ $$$ $$$ $$ $$  ",
        " $     $$$$$$$$$     $ ",
        " $$ $$$$$$$$$$$$$$$ $$ ",
        " $$$$$$$$$$$$$$$$$$$$$ ",
        "   $ $$$$$$$$$$$$$ $   ",
        " $$$$  $$$$$$$$$  $$$$ ",
        "$ $$$$  $$$$$$$  $$$$ $",
        "$   $$$$$ $$$ $$$$$   $",
        "$      $$  $  $$      $",
        " $$ $  $$     $$  $ $$ "
    };
    
    char** LogoDynamic = new char*[10];
    
    std::cout << sizeof(LogoStatic) << std::endl;
    std::cout << sizeof(LogoDynamic) << std::endl;
    
    delete[] LogoDynamic;
    

    return 0;
}

Так что вычисление длины массива LogoStatic по формуле sizeof(LogoStatic) / sizeof(LogoStatic[0])) будет корректным в том случае, если все элементы массива LogoStatic будут иметь один и тот же размер (потому что деление опирается на первый элемент массива, а значит все элементы должны иметь один и тот же размер). Если это не так - будет либо ошибка (попытка доступа к недоступному участку памяти), либо неопределённое поведение.

Однако выход за границы массива в условии действительно будет:

for (int i = 0; i <= sizeof(Logo)/sizeof(Logo[0]); i++)

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

В остальном все супер

Вы серьёзно? Тут скорее бот хорошо поработал, чтобы эту статью опубликовать, а Вы пишете что "все супер", даже несмотря на то, что код тупо скопирован отсюда https://github.com/NikkiNext/ROS_Fetch/blob/main/fetch.c ?

Видимо в оценке Вы руководствовались сексистским принципом "ааа, женщина", а не объективным положением вещей. Как это вообще можно "плюсовать"?

Хотя... думается мне, что тут не обошлось без ботов, на самом деле. И в самой статье, и в комментариях. Очень похоже на это. А может я не прав, и люди уже себя ведут как боты :)

Да всё тут "норм", только если строки будут не размера 8, а разного размера, то такое условие будет некорректно:

sizeof(Logo)/sizeof(Logo[0])

Потому что sizeof(Logo[2]) может отличаться от sizeof(Logo[0]). А так-то всё работает как нужно.

несколько 

Ключевое слово :) Если обратите внимание, то изменений там не так уж и много. По большей части имена функций изменены. Там даже форматирование скопировано в чистом виде.

Из изменений только вывод логотипа и вот этот участок кода:

 unsigned int a, b, c, d;
    char cpu_brand[49] = {0};

    get_cpuid(0x80000000, &a, &b, &c, &d);
    if (a >= 0x80000004) {
        unsigned int* brand = (unsigned int*)cpu_brand;
        get_cpuid(0x80000002, &brand[0], &brand[1], &brand[2], &brand[3]);
        get_cpuid(0x80000003, &brand[4], &brand[5], &brand[6], &brand[7]);
        get_cpuid(0x80000004, &brand[8], &brand[9], &brand[10], &brand[11]);
    }

    printf("CPU: %s\n", cpu_brand);

Который по сути ничего нового тоже не делает. Просто ассемблерные инструкции заменяет на более читаемые, не более. Видимо тут поработал ChatGPT :) Он хорошо умеет "упрощать".

Не понял, как это изображение (модель) касается моего комментария :|

Это не ошибка, это оптимизация интерпретатора Python, который сразу выделяет участок памяти для этих чисел (от -5 до 256). Типа для более быстрого доступа из оперативной памяти. Это просто такая особенность :)

Поэтому фронтендер его толком не может знать. Хуже - если даже не понимает этого и гордо пишет в резюме C++.

Да всё он может. Я после 2.5 года frontend-разработки перешёл на C++ и чувствую себя вполне комфортно с этим языком. По крайней мере уже один такой пример есть. Всё возможно. Даже можно совмещать несколько языков и быть при этом экспертом в каждом из них. Такие ограничивающие ярлыки ("только одно") ни к чему хорошему не приведут. Можно быть экспертом в одном, а можно в двух и более языках программирования / технологиях / специализациях.

А резюме всегда можно адаптировать под нужды той компании, в которую трудоустраиваешься. Я, например, больше мобилки разрабатывал до frontend'a, а потом решил попробовать полностью во frontend уйти и закрепится. Так и получилось, и я решал свои задачи хорошо и уверено. Тоже самое теперь с backend-разработкой на C++. Всё зависит от желания и прилагаемых усилий. Постоянно пилить только веб-приложения, серверные или мобильные - так и выгореть можно. Можно, конечно, стать экспертом в раскрашивании определённой кнопки определённым цветом и 50 лет этим только и заниматься, но я за широкий круг задач и большой кругозор. Кому что нравится.

Потому что Unity :)

А если серьёзно - по сегодняшним меркам это такой хороший минимум для работы с операционной системой и с программами в принципе (особенно самыми новыми). Та же Windows 11 требует 4 ГБ оперативной памяти. Это ещё хорошие требования.

Мне не нужны интересующиеся. Мне нужны профессионалы.

Что Вы этим хотите сказать? Меня всегда забавляло, что некоторые люди так преисполнены своим самомнением, что пишут что-то вроде этого: "мне не нужны", "я не найму", "мне нужны вот такие-то и такие-то". Как-то после этого всё равно, что они там дальше пишут. И главное не задумываются - а вы то кому-нибудь нужны сами? Может вы не профессионал, а так? Так-то и специалист может решить, что вы ("нанимающий") не достаточно квалифицированы и адекватны, чтобы с dами работать (без наезда, просто бесят такие комментарии).

Ещё и никнейм у Вас интересный... sobeskiller... ууу... жуть. Типа такой жёсткий, что всех на собеседовании "валите" вопросами? Или собеседующие когда услышат Вашу ФИО бегут от созвона в панике? Sobes Killer... убийственный собес... для самооценки кандидата, по всей видимости. Бегу в панике удалять своё резюме, не дай бог до меня доберётся Sobes Killer... (надеюсь Вы нормально отнесётесь к этой безобидной шутке, просто никнейм у Вас действительно забавный, особенно в контексте Вашего комментария :)).

Вопрос о сотрудничестве всегда решают двое - и специалист, и нанимающий. И если у специалиста вызывает отторжение нанимающий - он идёт лесом (иногда в грубой форме).

Либо чел двигается по линии C++ и добивается там высот, либо по линии фронтенда и добивается там высот.

Ну а что, давайте продолжим? Либо чел идёт по линии препроцессоров в C++ и добивается там высот, либо по линии метапрограммирования (ну или динамический и статический полиморфизм). А там и там - значит ни того, ни другого.

Либо чел идёт по линии макротаск в JavaScript, либо по линии микротаск в JavaScript.

Либо чел идёт по линии "вёрстка элементов ввода", либо по линии "вёрстка разноцветных кнопок". Ну и так далее, по аналогии.

А просто посмотреть и понять код на С++ много ума не надо, это даже в резюме писать моветон, это само собой разумеется.

Вы когда-нибудь программировали на C++? Если посмотрите на какой-нибудь программный код серьёзного проекта (или хотя бы коммерческого), то там всплывёт куча нюансов. От принципов RAII, до CRTP и реактивного программирования. Future, std::async, std::thread + POSIX Thread. Везде свои API, везде свои возможности на разных платформах. Куча нюансов по типу volatile, которое используется часто в бенчмарках для предотвращения агрессивных оптимизаций компилятора (кто понял, тот понял). Один Скотт Майерс чего только может рассказать об особенностях и нюансах этого языка.

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

Я не "выдергиваю" из контекста ничего :) Этот комментарий был написан с целью поддержать решение творческих задач и на обобщённых примерах (по типу музыки, картинок, текста) напомнить, что люди, считающие что рисовать картинки или писать музыку/текст легко - заблуждаются. Ничего лишнего.

«Это же вроде легкий жанр… Просто текст, картинки и немного музыки, да?»

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

И Я не о Вас или Вашей команде писал свой комментарий. Просто, в общем тему поднял. Такое на данной платформе - обычное дело :)

Information

Rating
3,748-th
Location
Иркутск, Иркутская обл., Россия
Date of birth
Registered
Activity

Specialization

Software Engineer, ML Engineer
Middle
C++
Python
TENSORFLOW
Pytorch
Cmake
Linux
Deep Learning
Cuda
Computer Science
Keras