What is the main difference between these two modes Default and Development. And why by-default Magento2 mode is default ?
Default mode --> you to deploy the Magento application on a single server without changing any settings
- Errors are logged to the file reports at a server, and never shown to a user
Static view files are cached
Developer mode -->you are extending or customizing it.
Static view files are not cached; they are written to the Magento pub/static directory every time they’re called
Uncaught exceptions display in the browser
Production mode -->it is deployed to a production server.
Static view files are not materialized, and URLs for them are composed on the fly.
Static view files are served from the cache only.
Errors are logged to the file system and are never displayed to the user.
Maintenance mode --> take your site offline while you complete maintenance, upgrade, or configuration tasks
For more details refer Magento official document