For what type of programming? Building an embedded system is very different from building a database engine is very different from building a webapp or computer game.
I've found that dynamic languages are significantly more productive for prototyping and green-field development, at the cost of being significantly less productive for maintaining large existing software systems. And they are significantly more productive for uses where the main data types are strings, tables, and dictionaries (eg. webapps, CRUDScreen reports, command-line scripts) than uses where you need significant structured data (eg. business logic, hardware design).
Usually this means that you will need to use both - a static language forms the underlying substrate for the program, but a dynamic language lets you script and manipulate those components easily to quickly try out new features.
The issue you describe is a learning-curve one, not one specific to dynamic languages. Once you get familiar with Gradle you'll memorize most of the elements that you need on a regular basis. If instead of learning one particular popular software package, though, you had to learn the whole innards of a complex proprietary application, dynamic languages wouldn't save you any time.
I was writing a simple web service which also makes REST calls to other REST services which may or may not respond in JSON. Seems like a sweet spot use case for Grails.
I've found that dynamic languages are significantly more productive for prototyping and green-field development, at the cost of being significantly less productive for maintaining large existing software systems. And they are significantly more productive for uses where the main data types are strings, tables, and dictionaries (eg. webapps, CRUDScreen reports, command-line scripts) than uses where you need significant structured data (eg. business logic, hardware design).
Usually this means that you will need to use both - a static language forms the underlying substrate for the program, but a dynamic language lets you script and manipulate those components easily to quickly try out new features.
The issue you describe is a learning-curve one, not one specific to dynamic languages. Once you get familiar with Gradle you'll memorize most of the elements that you need on a regular basis. If instead of learning one particular popular software package, though, you had to learn the whole innards of a complex proprietary application, dynamic languages wouldn't save you any time.