2 ms·
Reducing complexity in general, especially for new and small projects, is very good advice. For the past several years I've started new personal projects with
by LyndsySimon 9y ago
Reducing complexity in general, especially for new and small projects, is very good advice.
For the past several years I've started new personal projects with PostgreSQL+Python+[Flask|Django] on the backend and Bootstrap+Knockout on the frontend. I recently tried to start a new project with React instead, and while the actual act of development on a working React-based codebase is fairly nice, getting it to that state apparently requires a load of dependencies that I simply wasn't prepared for.
I retreated back to using Bootstrap alone for the prototype and found it much easier to work with than I remember. I'm sure part of that is that I've gained a ton of experience since I last used jQuery without a UX framework like Knockout, Ember, or React - but part of it also seems to be that browsers have come a long way since then.
In fact, I'm considering eschewing all front-end dependencies for my next prototype - ES6 has far better support in modern browsers than I recall, as do the more recent CSS capabilities like flexbox.
I figure that at best I'll have a lightweight, clean project that works well enough for a prototype; at worst I'll learn a lot about where modern web standards are.
- aphextron 9y ago>In fact, I'm considering eschewing all front-end dependencies for my next prototype - ES6 has far better support in modern browsers than I recall, as do the more recent CSS capabilities like flexbox. I think this is a good idea for personal projects and solo developers. But I've found that as soon as you bring other people on board, you end up spending more time explaining design decisions and dealing with unforeseen complexities related to scale than building features. It's really tempting to go without a framework for sake of simplicity, but you tend to hit a brick wall in productivity until eventually just reinventing the wheel and rolling your own "framework" which can end up an undocumented bespoke nightmare if you aren't extremely careful. I wouldn't equate reducing dependencies with reducing complexity. Good abstractions are what programming is all about.
- graphememes 9y agoYou get that with Javascript frameworks anyway. React - Component Design, Folder Structure, CSS Implementation, Data structuring, Testing Frameworks, Linting Frameworks, GraphQL vs Traditional REST vs GRPC... It doesn't solve all of your problems like you think it would. You still have onboarding, and you'll always need onboarding.
- swsieber 9y agoAnd since JS frameworks tend to be moving so fast, you'll always need onboarding... even with current devs.
- noir_lord 9y agoI spent years using the same stack (bootstrap and knockoutjs) just recently replaced knockout with vuejs and it's been very nice, vuejs and knockout feel like close cousins, the big win has been typescript though, it just catches all those stupid cases (and adds some nice syntax).
- jcadam 9y agoI'm primarily a backend developer and definitely have developed a hatred of large frameworks (have been forced to work with Spring and OSGi in the past). For front-end work, I moved from Backbone/Marionette to mithril about a year ago and love it. I've tried a few of the heavyweight frameworks (Angular, Ember) and absolutely hated them.
- keredson 9y agoif you're already accustomed to python+flask and want to try react, try https://github.com/keredson/bottle-react https://github.com/keredson/bottle-react. (Bottle is a lighter-weight version of Flask.)
- LyndsySimon 9y agoCool, I'll check it out. > (Bottle is a lighter-weight version of Flask.) Well, technically, Flask is a parody of Bottle that accidentally turned into a real library. :) http://web.archive.org/web/20100406024359/http://denied.immersedcode.org/ http://web.archive.org/web/20100406024359/http://denied.imme...
- mrighele 9y ago> In fact, I'm considering eschewing all front-end dependencies for my next prototype - ES6 has far better support in modern browsers than I recall, as do the more recent CSS capabilities like flexbox. This is something I have been trying to do a bit on a couple of side projects. The main issue for me is that I would like to avoid to manipulate a lot of DOM from JS, but there is not much alternative to that. Web Components are what I would love to use, but they still miss important functionality (in particular data binding) , so for now I settled in using vue.js for that and "pure" ES6 for all the rest. (this was a while ago, maybe things have changed meanwhile)