В основном я работаю на Java и недавно пытаюсь изучить Objective-C для разработки приложений для Mac и iOS. Теперь этот язык сильно отличается от того, к чему я привык, указателей, сообщений и т.д., Но я, кажется, все хорошо понимаю. Это не проблема кодирования для одного слова, но я лучше буду хорошо знаком с тем, с чем имею дело, а не просто знаю, что "это должно быть именно так, потому что это так".
Почему языку Objective-C нужны файлы заголовков? Какова их фактическая цель - быть отдельно от файла .m? Почему функции должны быть объявлены в заголовке, а не только реализованы? Это просто одна из тех вещей, которые просто не вымерли из старого языка, или есть реальное преимущество, а не однофазные классы Java?