Как определить является ли человек программистом? Дать задачку и
слушать ответы: «Буратино дали 3 яблока. Два он отдал Мальвине.
Сколько яблок у него осталось?» 1. (initializing) Неизвестно, сколько яблок было у Буратино до того, как ему дали 3 яблока.
2. Неизвестно два 'чего' он отдал Мальвине.
3. Неизвестно не является ли Буратино и Мальвина двумя разными сущностями, или одно из них это ссылка на другое
4. Неизвестно что подразумевается под процессом "отдал", и результат этого процесса (может Мальвина не взяла).
5. Непонятно в какой момент ’осталось’. После того как он попытался дать в первый раз?
6. (state) Неизвестно не являются ли яблоки частью состояния Буратино, или самостоятельными объектами.
7. (волатильность) Не ясно, сколько времени прошло с момента нахождения яблок у Буратино до процесса "отдачи":
- может яблоки полураспадаются сами по себе (сгнивают), или возвращаются к тем, кто их дал.
- может их едят пока они у Буратино, а он просто этого не знает.
8. (длина переменной) Не ясно, сколько яблок может удержать Буратино
Может, всего 2... и если он 2 отдал, у него нет яблок.
9. Если процесс дачи яблок рекурсивный, мы все останемся без яблок.
Короче, тёмная история!