HowProgrammingWorks - JavaScript and Node.js Programming
Тут говорят, что у программистов забрали, самое интересное, а оставили рутину, а я думаю, что как раз наоборот - заблали рутину и оставили самое интересное. Программирование это же не про то, как написать цикл, функцию и класс, а про то, как придумать принцип по которому они будут написаны, например, выделить характеристики кода, как: иммутабельность, идемпотентность, гранулярность, зацепленность, ленивость... и придумать, что эта характеристика дает нам полезного, пока AI не придумал ни одной новой парадигмы программирования, ни одного нового паттерна или приема, ни одного обобщения.
Программирование в его наиболее интеллектуальной части - это не код, а создание принципов, по которым код должен быть устроен.
Циклы, функции, классы, промисы - это механизмы. А иммутабельность, идемпотентность, композируемость, гранулярность, связность, зацепленность -характеристики, через которые мы управляем свойствами кода.
- Иммутабельность дает упрощение конкурентного исполнения
- Мутабельность - скорость и экономию памяти, но много опасностей
- Идемпотентность - устойчивость к повторам
- Слабое зацепление - гибкость через заменяемость
- Композируемость - повторное использование и порождение новых абстракций
Такие и подобные вещи формируют модель мышления, которое позволяет создавать целые классы программ иначе.
ИИ уже участвовал в открытии новых алгоритмов, обнаружил более эффективные алгоритмы сортировки, новые алгоритмы умножения матриц и оптимизации вычислений. Но это не то же самое, что создание новой парадигмы программирования.
Можно выделить четыре уровня интеллектуальной деятельности:
1. Реализация -написать код по заданным правилам
2. Проектирование - выбрать известные принципы, паттерны и ограничения
3. Обобщение - обнаружить общий принцип в разных решениях и сформулировать новую абстракцию
4. Изобретение - предложить новый принцип организации вычислений, который открывает ранее недоступные возможности или существенно меняет подход к разработке
ИИ уверенно работает на первых двух уровнях, способен неплохо помогать на третьем и демонстрирует скромные результаты на четвертом, прежде всего в алгоритмических задачах. Но общепризнанной новой фундаментальной парадигмы программирования, да что там... даже нового паттерна или приема созданного ИИ мы не видим.
Настоящий прорыв в AI-assisted programming - это переход от генерации реализаций к генерации и проверке принципов.
Наивно писать "сделай мне архитектуру с SOLID", нужно стремиться к "найди характеристику системы, которую мы еще не формализовали, выведи из нее полезные следствия, предложи новый способ организауии кода и докажи, что он работает и дает полезные характеристики кодовой базы".
❤20👍9👎3🔥1
31 · 1.1K ·