I'd also comment that, although some people enjoy using Wolfram Workbench as a conventional IDE for writing large (or medium or small) Mathematica Packages, the notebook interface is also well suited for this and has some significant advantages (where things are set up to save the ASCII code .m file from the notebook automatically). E.G, being able to use the full formatting capabilities of the notebook; being able to document in the the notebook using its full formatting abilities; being able to program the notebook itself to achieve various things; and so on and so on... I generally do all my work this way--and organized properly this can be used for very large packages--my largest I think is about 60,000 lines of Wolfram Language code in the .m file.
Basically the sky is the limit with notebooks.... though, some do prefer the IDE route: I respect their choice ;-)