"Строго типизированные языки программирования могут стать популярнее благодаря LLM Есть такой подкаст «Бреслав и Ложечкин». Андрей Бреслав - фактически, основатель языка Kotlin. Во-первых, мне нравится Kotlin (когда-то мы делали мобильное приложения на нем), во-вторых, мне нравится как мыслит сам Бреслав, поэтому я стараюсь следить за его творчеством. Я думаю, что осмысленно слушая умных людей, мы сами становимся умнее. В своем канале я пишу на разные темы, которые мне интересны, и сегодня речь снова пойдет про AI, только на этот раз в более глобальном, а может даже и философском ключе. Собственно, не так давно ребята поговорили на тему ""Про AI, LLM, AGI, ChatGPT, сингулярность и про то, заменит ли это всё программистов"". У них получился совершенно великолепный разговор в тему программисты + AI. Рекомендую к просмотру. Я выделю здесь несколько ключевых тезисов из подкаста, которые мне показались наиболее интересными: 1) Языки программирования с динамической типизацией (Python, Javascript) хорошо подходят для обучения программированию и для быстрой разработки, но для крупных проектов вред от динамической типизации начинает перевешивать пользу от скорости разработки. На ЯП с динамической типизацией проще писать код, но сложнее читать (просто потому, что далеко не всегда понятно с чем мы вообще работаем сейчас). Так вот, Бреслав предполагает, что поскольку для LLM тоже лучше, когда код написан более явно (с указанием типов), может случится так, что ЯП с динамической типизацией могут начать терять свою популярность и уступать языкам со строгой, статической типизацией. Идея интересная и весьма контринтуитивная, с учетом того, что сейчас, насколько мне известно, LLM наоборот могут давать лучшие решения именно на Python и JavaScript просто потому, что кода на этих языках было больше в обучающей выборке. Тем не менее, это хороший повод задуматься о том, чтобы использовать везде явную типизацию просто потому, что для LLM так понятнее. И хочу еще отметить неочевидную вещь. В языках со статической типизацией мы часто используем `var` (это называется ""вывод типа"", Rider даже обычно предлагает использовать `var` вместо явного указания типа по умолчанию). Идея в том, что на месте `var` компилятор автоматически определит тип и подставит правильный. В общем, даже несмотря на то, что `var` в C#, конечно, же не является динамической типизацией, используя `var` мы можем слегка усложнять LLMке задачу, ведь она не компилятор и не умеет нормально в вывод типов (особенно в том случае, когда в отправленном контексте просто отсутствует код объявления вызываемых методов). Речь, конечно, о подобных вызовах: ```var bonus = GetBonus(); // что тут за тип: CutomerBonus, EmployeeBonus или еще какой-то третий? непонятно. var result = Init(); // а вот тут что есть result в принципе догадаться очень сложно (да, в т. ч. и из-за нейминга)``` Короче, вероятно, будет предусмотрительнее уже сейчас опцию csharp_style_var_elsewhere в вашем `.editorconfig` задать в `false`. В этом состоянии она активирует необходимость указывать тип явно в случае когда тип переменной не явный (например, в не `new` случаях). Скорее всего, LLMкам будет проще обрабатывать такой код, а результат на выходе будет качественнее. Ну, и про nullable/non-nullable аннотации, конечно, тоже не стоит забывать (`?`). Еще интересные тезисы из подкаста и свои размышления о них запощу чуть позже, а то итак много получилось) — Пробелов.NET. Спасибо, что читаете :)"
"Строго типизированные языки программирования могут стать популярнее благодаря…
Источник
https://t.me/ai_driven/15Канал AI-Driven Development. Родион Мостовой · опубликовано 18 мая 2024 г.
Из этого канала
- #18"Нешаблонное собеседование Junior .NET разработчика без опыта работы Ненадолго…
"Нешаблонное собеседование Junior .NET разработчика без опыта работы Ненадолго отступлю от темы AI и вернусь к теме .NET и собеседований.
- #19Ключевые навыки в программировании с использованием ChatGPT Дмитрий Нестерук…
Ключевые навыки в программировании с использованием ChatGPT Дмитрий Нестерук записал получасовой ролик про использование нейронок в программировании -…
- #20Гибкая генерация JSON DTO'шек из json файла на любом ЯП через ChatGPT Обнаружил…
Гибкая генерация JSON DTO'шек из json файла на любом ЯП через ChatGPT Обнаружил очередной классный юзкейс применения ChatGPT.
- #14"Открытая модель WizardLM-2 8x22B в задачах на кодинг оказалась на уровне…
"Открытая модель WizardLM-2 8x22B в задачах на кодинг оказалась на уровне GPT-4! Помните я недавно рассказывал про супер-пупер модельку llama-3-70b? Так вот,…
- #12"А что у нас сейчас с актуальными модельками для кодинга? Наткнулся на один…
"А что у нас сейчас с актуальными модельками для кодинга? Наткнулся на один интересный бенчмарк моделек для кодинга под названием LiveCodeBench.