Software industry has been moving towards the adoption of software platforms in their products over the number of years. I don’t mean platforms from SDK like .NET, C++ STL, or JDK. These are "essentials" to the language that they are supporting. Without them, these languages will be lying in software graveyards now. What I’m referring are platforms that bring in benefits other than language-based support for common coding tasks. These platforms generally provide an abstraction layer on top of the underlying programming interface to provide a more usable programming interface for the developers to work on. Examples:
- Qt from Trolltech for cross-platform development on Windows, Linux, etc
- Django, TurboGears, Pylons, Flex (and many more) for rapid web 2.0 application development
- Microsoft Foundation Classes (MFC), Cocoa (OS X), KDE, Gnome for GUI development
In general, coding on these platforms usually lead to shorter development cycles (when you have learnt how to use them effectively). The more "utilities" these platforms provide, the less code you have to write and you can concentrate more on your application logic. However, there are certain trade-offs that come with the use of these platforms.