Сидоров Максим @MaxSidorov
Senior Android Developer, teamlead SberDevices
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Зарегистрирован
- Активность
Специализация
Разработчик мобильных приложений, Архитектор программного обеспечения
Ведущий
От 20 000 $
Android SDK
Kotlin
SQL
SQLite
Java
Базы данных
ООП
REST
C#
Мне кажется есть отличный класс ArrayDeque который умеет все что умеет LinkedList но при этом уделывает его по скорости в разы и по памяти тоже.
Все таки массивы работают намного эффективней, чем созлание инстансов и хранение по 3 указателя на элемен
А я вот полностью согласен с автором. Я тоже аыходец из 90 и видел как программирование развивалось все это время. То о чем пишет автор неизбежно. Языки программирования вымрут как класс, а разработка решений превратится в нечто совсем иное. Мы будем разрабатывать системы, но уже вряд ли будем писать код.
Это очевидно из истории развития языков. Я начинал еще с асмемблера и в то время крайне невероятно было то, что мы воспр инимаем как обыденность сейчас.
Генерация кода прямо в процессорные инструкции это уже настоящее. Просто сейчас мы описыааем инструкции на высокоуровневых языках и использую низкоуровневые абстракции, а через несколько лет будем делать это на естественном языке и с помощью высокоуровневых абстракции и паттернов.
Я опубликовал исходники тестов и всех функций: https://github.com/maxssoft/yield_recursion
И обновил статью. Перепроверил все результаты. Yield работает в сотни раз медленнее всех остальных подходов.
Да, я тоже заметил это. На выходных поправлю и обновлю статью. Заодно выложу ссылку на исходники тестов и всех функций
На выходных оформлю код в github, его надо еще причесать) и отправлю issue в JetBrains и возможно в Google и тогда скину ссылку на github в статью. Просто я статью написал за два дня и еще не успел все оформить как следует.
Я создаю следующую иерархию вью
и так на заданный уровень глубины (1000, 3000, 5000)
Затем я выполняю тест, который находит все view, чей id делится нацело на 10 (то есть примерно 10% всех вьюшек). Идишники вьюшек генерируются автоинкрементом
И вот код самого теста, но он тривиальный
Аналогичные тесты и для всех остальных функций
Я и сам задаюсь этим вопросом. Посмотрим что ответят в JetBrains
Ну я регулярно слышу его на реальных собесах)
Мне кажется в перспективе все будет еще хуже. ИИ учится за дни тому, чему люди учатся десятилетиями. Я боюсь, что в какой то момент образование может обесценится. Зачем учится 10-20 лет тому, что ИИ уже и так умеет. И тогда начнется деградация. Скорее всего, к тому времени ИИ уже будет вполне самостоятельной и независимой веткой в общей эволюции разума на нашей планете. А люди со временем просто вымрут, как когда то вымерли динозавры.
По сути для полноценного разума ИИ не хватает реализации самосознания, которое даст ему мотивации и цели.
Вроде мы сами еще не до конца понимаем, что это такое и как оно работает. Но как только мы поймем и опишем что это такое, с человечеством можно будет простится.
У меня проблемы с пессимизмом)
Я пробовал генерировать код с помощью chatGPT и результаты уже сейчас поражают.
Мне кажется когда то давно таксисты тоже говорили по контр-аварийное вождение и все такое.
В работе разработчика на самом деле есть две большие составляющие. Кодирование и использование типовых паттернов и подходов для проектирования типового решения. Тот высокий термин Software Engineer - это просто опыт, который равен знанию многих типовых паттернов. ИИ вполне способен решать обе эти задачи. И есть крайне редкие моменты, когда мы действительно создаем что то новое, что никто никогда не делал или то, что еще не стало типовым подходом. Вы часто в своей жизни создавали что то подобное?
Да, но кодирование - это как раз ты самая нудная и простая работа, за которую нам платят много денег. Потому что обычный человек не может кодировать. Но обычный человек вполне может неплохо думать и генерировать идеи и для этого ему не нужно учится десятки лет. Сейчас в программировании очень высокий порог входа, а будет низкий.
ChatGPT это транслятор. Сейчас аналитик продумывает систему. Разработчик переводит аналитику в программный язык, по сути выполняя роль транслятора. С LLM моделями в перспективе 10 лет разработчик в этой схеме станет лишним.
Статья как раз об этом, что судя по всему скоро будет "никаких программистов на проекте"). Менеджеры всегда выигрывали эту войну и видимо на этот раз победа будет окончательной)
В том то и дело, что Microsoft и Google уже это делают со своей кодовой базой в своих собственных in-house решениях. А недавний релиз Open AI уже говорит о том, что эта модель выходит за пределы больших корпораций. Я думаю у нас осталось 5-10 лет, прежде чем это станет мейнстримом.
Тут речь идет о том, что в то время еще не было персональных компьютеров и все программирование было уделом больших компаний. В СССР это были НИИ и вычислительные центры на предприятиях. В те времена ни у кого дома еще не было персональных компьютеров.
В том то и дело, что нет. Я думаю, что со временем мы просто перестанем писать код, также как давно уже перестали писать на ассемблере. Я вот в детстве еще писал на нем, но сейчас этот навык уже не актуален, так как появились высокоуровневые языки.
Сейчас следующий этап, мы все также будем оставаться инженерами и будем продумывать решения, но кодироваться скорее всего они будут уже без нашего участия.
Не надо пытаться помогать JIT компилятору делать его работу)
Суть инлайнинга не в экономии методов. Косвенно он может их сокращать, но задуман он совсем не для этого.
Да, интересное решение. Кажется что отменяем строгую типизацию, но она просто переносится в место вызова функции.
Да, если бы не локальный return, то crossinline можно было бы применять автоматом
Спасибо за уточнение, я поэкспериментирую с этим и возможно поправлю статью. Это может быть важно и возможно я сам что то упустил.