DEV Community

Discussion on: 33 GitHub projects I have bookmarked and you should

Collapse
darkwiiplayer profile image
DarkWiiPlayer

Great list; there's quite a few repos in there that are 120% worth bookmarking!

Bootstrap, however, is the worst thing that happened to the web since that time someome thought building entire websites in flash was a good idea. And it gets very close to that.

Collapse
damienpirsy profile image
Matteo Vignoli • Edited on

Why? It did an awesome job to spread easy and good looking UX/UI even among non-frontend devs. Before Bootstrap a lot of sites were half broken, ugly as hell and if you had to inherit a design you needed to spend a lot of time figuring out how not to break things. Bootstrap solved all these problems and allowed even people with low design sensibility (for example, non-web programmers) to wip out in a few hours good-looking websites with little to no effort.
They did an immensely good job imho, and set out a path that led to even more awesome things.

Collapse
darkwiiplayer profile image
DarkWiiPlayer • Edited on

Nah. Bootstrap tricks people into thinking it's easier to learn than plain CSS, which isn't true. Instead all it does is bring back bad practices from the darkest moments of the web and make them the de-facto default way of building websites. And on top of all that, it interacts poorly with proper CSS.

The only thing bootstrap really does is allow developers to stay in their comfort zone and do all the styling in code. They still have to learn how bootstrap works just like they'd have to learn CSS otherwise, but it doesn't feel like learning a new technology because they stay in the syntax of their preferred backend language.

EDIT: The websites also don't even look nice anymore; just very repetitive

Thread Thread
damienpirsy profile image
Matteo Vignoli

It is easier to learn, especially with complex layouts - compare throwing a couple of classes on html elements with learning flexbox, grid systems, floating, media queries, etc. It might be easier for YOU because you already know that, but coming from someone who never used CSS before building a website with bootstrap takes little effort.

There are many situations where you CANNOT learn a whole new technology just to do something (you know, people have lives outside programming); a backend/desktop dev shouldn't have to learn hard css concepts and javascript just because he wants to build a nice-looking website for his pet projects.

The fact that all websites are similar is a relatively small problem - ultimately regular users don't care much about your fancy graphics and your cool CSS skills; they want to navigate a comfortable and pleasing website to enjoy its content, not its originality.

Thread Thread
darkwiiplayer profile image
DarkWiiPlayer

Flex box isn't hard: you just set display: flex on the container and two or three attributes describing how to align content, almost like one would do with bootstrap. Same goes for CSS grid: you just set display: grid on the container and follow one of the countless guides to set up how the elements position themselves in the grid. Float is super easy too, if you're using it for what it's actually meant for instead of the weird hacks it was abused for before flex was a thing.

Yes it takes some effort, but not much more than learning bootstrap.

And it's also not like bootstrap only gets used for pet projects of backend programmers who don't want to spend too much time building a generic interface; even people calling themselves web developers use it or similar frameworks.

Thread Thread
sinjai profile image
Sinjai

@darkwiiplayer the criticism seems valid, but the biggest hangup for me is knowing where to start. With Bootstrap it's very easy to start with something basic and add on components or adjust things with simple CSS classes. Do you know of a good resource as a starting point for making a stylish and easy-to-use website using pure CSS?
I have a feeling the hacky stuff comes in when you want to customize the default bootstrap behavior -- so maybe it's something someone ought to "grow out of", but that's not a thing someone can do simply with a site they've already worked on using Bootstrap for a long time.

Thread Thread
darkwiiplayer profile image
DarkWiiPlayer

I think getting started is pretty much the one thing where frameworks like bootstrap might have a bit of an advantage over vanilla CSS; but I see it more as a form of early-on scaffolding that should be gradually replaced, not built upon. As you've said, the hacky stuff comes in when you start customizing, and that's precisely why I don't think it's ultimately easier than vanilla CSS.

As for how to get started with a website, the approach that always works best for me is to find something I want to copy (I'm more of a programmer than a designer) and then just start with the layout. Once the website more or less has the right shape, it's really just adding elements like buttons, text boxes, etc.

Thread Thread
sinjai profile image
Sinjai

@darkwiiplayer so you can see why Bootstrap is so enticing -- getting started is the hardest part. That said, I feel like there MUST be a collection of starters somewhere that aren't Bootstrap. I definitely don't blame people who are primarily backend, desktop, etc. developers for making the deal with the devil. For my part, I was introduced to it because the starter ASP.NET MVC application used it, so I definitely didn't see a good reason to change that.

Thread Thread
darkwiiplayer profile image
DarkWiiPlayer

there MUST be a collection of starters somewhere that aren't Bootstrap

My best guess is that most people just end up having a bunch of snippets that they copy around, maybe some go through the effort of compiling them all into a sort of personal mini-framework. Personally I have a bunch of things on codepen and github that I find myself copying into projects every now and then.

The "deal with the devil" part is a surprisingly good analogy: It makes building the website easier for a while, at the cost of eternal suffering as features need to get added and maintained and the hacks start creeping in :D

Collapse
allestri profile image
Allestri

It's fair to replace the context a little bit, when Bootstrap first came to the web, both CSS Grid and Flexbox were a dream i.e not quite here yet.
It made Responsive design easier for us especially the backend girls and guys and delivered a set of components to work with ( modals, collapsibles, buttons, you name it )
Before Bootstrap it was quite tedious to have a layout that works well if you weren't CSS savy really.
Now learning Bootstrap today ? It's debatable given how powerful CSS is, but that wasn't really your point I guess.

Collapse
darkwiiplayer profile image
DarkWiiPlayer

It's just as with jquery though: the web used to suck. A lot. And many technologies were created to fix the mess that was CSS and Javascript back then; but these days, browsers natively support technologies that are just as good, if not way better in many cases. CSS Grid is, in my opinion, a much better way of describing any sort of grid layout than what CSS frameworks offer, and just because they used to be the best or only way of achieving something, that shouldn't now hold us back from using an even better technology.