It is an assumption that amateurs will defer learning due to the framework. It also seems as though there is another assumption that all the people using this framework are somehow amateurs. It is convenient to be able to write a quick program using a framework and then being able to scale that project as it grows.
In my opinion, this is very dangerous. It is always better to understand the inner workings and then write an app, otherwise you just feel you have accomplished something when, in reality, it was just the framework you used and you didn't learn. I am saying this out of experience, when I used to use Django, I didn't understand the difference between GET vs POST. Still, I built a small note taking app, I didn't understand how cookies worked and until I wrote this: https://github.com/thewhitetulip/Tasks, I didn't know that the cookie details were read and sent to the sever in each request.
Frameworks are powerful in cases when you want new comers to get started quickly, but in my opinion that has to be after the new comers are familiar with webdev, so they know what the underlying tech are and how they work. Plus, frameworks need to be chosen with care, because you are basically bound to the framework you choose.
Personally, I like to write apps without a framework by using various toolkits, I never felt the necessity to use any framework, because they don't provide me with any distinct feature which I can't replicate with little additional code using the stdlib and supporting toolkits like gorilla.
From my experience building the Tasks application, I wrote an introductory e-book which teaches building apps with example, so no more magic! I didn't find a resource which taught how to write web apps using an example, thus wrote one.
https://github.com/thewhitetulip/web-dev-golang-anti-textboo... and on multiple requests, recorded a screencast: https://www.youtube.com/playlist?list=PL41psiCma00wgiTKkAZwJ...
the response struck a chord with me because a few years ago, I was just like the author suggested, someone who didn't know how to build a webapp and tried Django etc. Thus, I strongly that we need to understand the basics first.
- Use a framework that someone else did. You will have to spend time learning the abstractions of the framework.
- Spend time building your own framework, creating your own abstractions.
- Create a massive amount of spaghetti that, at some point, no one -including you- will want to maintain.
This is a code generator. Looks very useful to me.
Might I ask why?
These are tools, not competing world-views.