5 ms·
One benefit of learning a framework is that you can internalise the mindset of the authors, and another is that you can see abstract patterns and ideas in their
by strken 8y ago
One benefit of learning a framework is that you can internalise the mindset of the authors, and another is that you can see abstract patterns and ideas in their native habitat.
Learning Rails taught me about metaprogramming, reversible database migrations, ACID, and the pros and cons of ORMs. Learning how to build XAML apps with C# taught me about two-way data binding, MVVM, DSLs, and socket communications. Learning React and Redux taught me about cooperative threading, functional programming, transactional state management, and testing front end features without using selenium and webdriver.
Now, I already "knew" most of these things, but I hadn't applied them in the real world before. Getting to experience them as implemented in well-designed frameworks taught me a lot about their practical use, building on top of the theoretical knowledge I'd already acquired.
EDIT: cooperative threading, not cooperative multitasking
- InGodsName 8y agoI assume you use React but which webframe do you use? Rails or Asp.net core?
- strken 8y agoDepends on the team and the project. I've used Express, Loopback, Golang+Chi, Rails, and Flask for API development; Rails, ASP.NET MVC, and Elixir for web. Not all of those were frameworks that I chose to learn, some were already chosen or already in use when I started.
- InGodsName 8y agoIf you've a choice, what framework would you chose for backend api of react app.
- tracker1 8y agoNot the op. But I tend to favor minimizing friction... to me, if I can use the same language on the front end and the backend, that will be my preference. These days I mostly use JS because in general the friction is so low, and I can modularize my code with very little effort. JS is emphatically NOT the best language for anything... but it's good enough for almost everything.
- strken 8y agoDepends on what I'm building. Rails is fast to iterate on, a cobbled-together Go service is great for specific niches, JavaScript and TypeScript plus an ORM are good all-rounders that can help your team work across different parts of the stack and have interesting possibilities when it comes to sharing logic, and I'd probably build a toy project in Rust because Diesel is pretty interesting. The best answer is usually "whatever your company is already using", and unless there was a compelling reason I'd start with that.
- geezerjay 8y agoA downside of that approach is that sometimes authors implement bastardized versions of basic concepts and thus learning frameworks ends up warping the developer's mental model. Case in point: Qt's take on the MVC design pattern.
- jimbo1qaz 8y agoIs your issue that Qt "lacks" a controller, or that it only supports homogeneous column-row models with natively numbered (not named) columns, bound onto homogeneous table-like views (not widget sets)?
- deleted 8y ago[deleted]
- oddevan 8y agoI have a similar mindset: I had no idea how to approach Responsive Web Design. I learned Bootstrap. I now understand Responsive Web Design along with Grid Systems.
- h1d 8y agoYou mean you know how to code responsive design or you know how to use bootstrap to achieve it?
- oddevan 8y agoBoth. I prefer using Bootstrap because I know the shortcuts, but if I need to duck down into some @media(max-width) I can. I also have a much better idea of the concept (it’s not just a lack of a fixed width; it’s changing font and element sizes and floats as you go up and down).
- srcmap 8y agoThere are good and bad frameworks. I have very bad experience with the GWT mentioned in the original article. When I tried GWT when it was originally released, it only worked for demo code/pages. Anything more complex required me to understand Java, Javascripts and the code/system/process they use to convert the Java code to the "generated JS" code. It was O(n^3) complexity for my limited brain. Maybe it has been changed, I see there was still a release in 2017. The Python as a language/framework is extremely good in my opinions - very easy to learn, debug, create complex system and dig very deep as needed.
- Roboprog 8y agoYep Now you have 2 problems Is the cliche But now it’s Dart instead of GWT