А зачем нужен рефлекшн? Какие задачи он позволяет решить?
Мне кажется, что это относительно новое нововведение и как-то же обходились раньше без всяких рефлекшенов? А сейчас такое чувство, как будто - это must have для всех.

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