Я не специалист в Groovy, но я так не думаю. Я знаю, что в Java и C # его нет.
Функция __LINE__
действительно начала помогать с отладкой в C. В C нет исключений или многих других функций, которые есть в современных языках, но в ней есть макросы, которые компилятор может развернуть в любом месте кода, что почему нам нужны __FILE__
, __LINE__
и т. д., чтобы сообщить нам, где мы были, когда случилось что-то плохое. Вот как assert
работает в C и C ++. JVM имеет очень хорошие средства отладки, и в сочетании с assert
и исключениями вы очень легко можете определить, где что-то пошло не так (трассировки стека в любом случае намного лучше, чем просто номер строки).
Я полагаю, что причина того, что Ruby и Perl имеют эти макросы, заключается в том, что они были созданы хакерами Си. Я никогда не использовал ни один из этих языков настолько, чтобы узнать уровень поддержки отладки или насколько полезны макросы.