Ask HN: Why do most popular programming languages not have headers?
I'm an Objective-C developer at heart, and perhaps shockingly to most Cocoa novices, header files are the norm. My personal coding style involves only putting things that should be public in the header file, and keeping everything that doesn't have to be public in the implementation file. That includes all ivars, all internal methods (hidden inside a class extension in the implementation file). Headers are for public methods, protocols and public constants, typedefs and enums only.
Unfortunately, I also do quite a lot of coding in PHP, Ruby and even Java, and (especially when building re-usable libraries) find myself wishing for header files. People have gotten around it by inventing PHPDoc, JavaDoc and so on, using @keywords to awkwardly describe and document their code. But it's still a huge pain to figure out how to use a class, when you have to browse through all the implementation to be able to see the method signatures. We've built tools to make it easier for us—but it all seems like inventing a solution to an artificial problems.
Why not just design languages to support headers?