
Ask HN: Should I learn Bootstrap 3 or 4 at this moment? - utt
I noticed Bootstrap 4 has not been released yet. Is it close to being released or should I still learn and use Bootstrap 3 at this moment?
======
pedalpete
Learning Bootstrap 3 or 4 should take you very little time, I would suggest
you don't learn either of them, but instead take the time to learn CSS (I am
of course assuming you are not already a CSS wiz).

You can look at the source of Bootstrap to see how they accomplished certain
things if you'd like, but if you're doing anything more than prototyping (and
even then), I feel there is very little benefit to using Bootstrap these days.

Once I was told to ignore Bootstrap and just create my css myself (using Sass
or CSS Modules) I find I'm making the same recommendations to others. It
doesn't take long and you'll have a much better idea of what is happening on
your page.

Your html and css should end up being much smaller as well.

~~~
scarface74
Yes and at the same time all devs should learn assembly so they have a better
idea what's going on with their program.

~~~
peterkelly
My advice is to always understand the layer below what you're working with.

Learning assembly is worthwhile if you're programming in C.

Learning CSS is worthwhile if you're designing websites using Bootstrap.

Perhaps even more importantly though, CSS, JavaScript, and HTML have a
longevity that's tremendously longer than any given framework. My
understanding of these technologies from 15 years ago remains relevant today,
and although there's been a lot of new features added, I can build upon that
knowledge to incrementally learn new things. And I'm confident that in another
15 years from now, knowledge of these web technologies that underpin all the
frameworks will _still_ be relevant. The same can't be said of Bootstrap 4.

~~~
kedean
Agreed. The biggest thing I look for when interviewing new developers isn't
"how much do you know about X framework", it's "could you implement all of
that without the framework?". Knowing bootstrap won't do you that much good if
you don't understand how/why it does what it does. Similarly, I demand that
Java developers are able to describe the underlying 'how' of Spring, rather
than regurgitating tutorials from the Internet.

~~~
scarface74
I interview developers also. I don't expect _developers_ to be great
designers. I expect them to know the basics of CSS and how selectors work, but
that's about it. I'm fine if they aren't advanced CSS whizzes. I do expect
them to know JavaScript including how prototypes work, scoping, etc.

------
nkkollaw
I'll actually answer your question.

I've been using Bootstrap 4, since it's already stable and will come out in a
few months anyway, so I won't have to upgrade anytime soon.

If you use libraries that depend on Bootstrap, you might want to check
compatibility. I was using Bootswatch and the developer didn't upgrade the
code to Bootstrap 4 until a few weeks ago. Other than that, I see no reason
not to use the latest version.

I'm surprised by all the comments saying that you don't have to learn
Bootstrap but you can just look up the components every time you need to use
them, suggesting you use Skeleton, or that if you use Bootstrap you don't want
to learn/know CSS. Nonsense.

~~~
oelmekki
There's also an other reason to go with the "almost released" one when
starting a new project: bootstrap has been historically painful to migrate.

Upgrading major bootstrap version means changing class names in whole codebase
(like the classes for grid system), changing html code for some components
which have been updated, and having to remove other components altogether and
go with your own sauce because components were removed.

This has been the case for all previous major bumps, and there is no sign of
it being any different this time, so better save a migration and go straight
with bs-4.

~~~
nkkollaw
Definitely.

The other day I was looking at Bootstrap 3 documentation by mistake instead of
Bootstrap 4 and it was completely different, with some components missing
altogether.

------
ggregoire
Do people really "learn" Bootstrap?

I've been using the version 1, 2 and 3 and I've never felt like I needed to
learn it. Usually I just open the doc when I need to use something.

~~~
dimino
Yeah, people are saying, "No, learn CSS!" but isn't CSS exceedingly simple?

Why can't I just use Bootstrap because I don't feel like _designing_ an app,
and Bootstrap is the fastest way to get a consistent layout on web and mobile?
What's it got to do with learning at all?

~~~
3131s
> _" No, learn CSS!" but isn't CSS exceedingly simple?_

No, it's not. I don't want to start a CSS flame war, but at least for layout /
positioning I struggle every single time with CSS, especially on sites with
dynamic content. CSS is my least favorite part of the web development stack by
far.

~~~
lisivka
Why not to use Flexbox then?
[http://caniuse.com/#feat=flexbox](http://caniuse.com/#feat=flexbox)

~~~
dexwiz
You cannot use Flexbox if you are targeting the enterprise market, since they
are often stuck on old versions of IE due to slow moving and draconian IT
departments.

------
redlofa
Everyone opting for "do your own CSS" and not using a framework, is absolutely
a horrible idea. You will not be the only one writing CSS for long term for
your app I assume, any new member will find it extremely difficult where to
modify following some good standards. They might miss a lot of things or
overdo things perhaps.

Regarding learning BS3 or BS4, I'd opt for BS4. All you have to know what
things BS4 provide and use them appropriately. Not to mention, some fairly
good CSS knowledge is also a pre-requisite. One of the themes we recently used
is startUI (google for it). It's on BS4 and the components were easy to
integrate in apps.

------
Brajeshwar
On a serious note, I believe the befitting proverbial advice is, "Give a Man a
Fish, and You Feed Him for a Day. Teach a Man To Fish, and You Feed Him for a
Lifetime."

You said "learning", so I'd still suggest learning the actual CSS. Of course,
when you become a bit comfortable with it, you'd have already learned
Bootstrap.

Here is how I'd for;

\- Use Bootstrap 4 or even 3 to learn your CSS. Use it, go through the source
codes and learn from there. \- Keep doing CSS (feel free to try other
frameworks too) and you should be on your way.

The analogy I can find is that quite a lot of people "learned" jQuery. Then,
they figured out that it is, well, JavaScript. They got intrigued, went
backward and learned JavaScript. Many enterprising developers advance and
'learn' other frameworks too.

I used to be in the camp where my take was, "learn the actual raw CSS and
JavaScript - that's the way to learn." But my experience dealing with juniors,
and new developers is that not everyone can just learn something. In fact, a
lot of people do not know how to learn things the right way. They need to
first learn to learn new things.

So, take it easy on yourself, start with something you can start off (and
produce something you're proud of) and begin learning real CSS in the process.

Well, my team specialize mostly in fixing projects shoved down by developers
using Bootstrap, where the enterprises needed to go to market quickly. Once
they reach critical bloat-stage, we go in to clean-up, make the sites 10-30
times faster by removing all of Bootstrap and other frameworks and staying
really lean (use a minimal framework or a very low footprint one.) We,
sometimes, end up developing the "Bootstraps" for these companies.

~~~
nkkollaw
How do you know he doesn't know CSS already?

Why preaching about learning CSS while he's just asking about Bootstrap 3 vs.
Bootstrap 4?

~~~
Brajeshwar
Ah! My bad. My assumption is that if someone is asking if s/he should learn
Bootstrap 3 or 4, s/he might still be trying to figure out what to learn to
get to the next step in HTML/CSS/JS development.

If s/he is already proficient with CSS, s/he might not be asking that
question.

I might have extrapolated this thing a bit, haven't I!

~~~
nkkollaw
I don't know, I know CSS extremely well, but I use Bootstrap on a daily basis.

You save a lot of time, other coders can potentially be able to see what you
did in your code right away and work on the project without a problem, there
are hundreds of themes available, etc. etc.

I'm paid to build useful features, not reinvent the wheel.

:-)

------
mightybyte
It depends on what you want to optimize for. If you're starting a startup and
you anticipate having a dedicated design team, I think you're better off
making your markup match your domain and hand-rolling the CSS instead of using
a framework like Bootstrap. This is the ideal approach IMO because it lets you
much more effectively keep the styling out of the markup and in the
stylesheets. CSS frameworks _by definition_ require you to put styling in your
markup.

But if you're just trying to bang out a small project quickly and have it look
nice without needing to muck with CSS too much, then a framework can be very
useful. These days I prefer Semantic UI over Bootstrap:

[http://semantic-ui.com/](http://semantic-ui.com/)

~~~
gkop
> CSS frameworks by definition require you to put styling in your markup.

How do mixin-based CSS frameworks require you to put styling in your markup?

~~~
mightybyte
Oh, I might not be aware of that type of CSS framework. Can you point me to
some examples? I was thinking of frameworks like Bootstrap and Semantic UI.

~~~
jessaustin
FYI: [https://coderwall.com/p/wixovg/bootstrap-without-all-the-
deb...](https://coderwall.com/p/wixovg/bootstrap-without-all-the-debt)

I.e., used properly, Bootstrap itself is "that type of CSS framework".

~~~
mightybyte
Thanks! That's fantastic. CSS frameworks should talk about this idea more!

------
ams6110
It doesn't matter. Because no matter what tech you use in the web app space,
it will all be obsolete in a year or two. Your apps will never be done,
because the sand will shift underneath them. You'll need to continually update
them to keep them working, or abandon them.

~~~
peterkelly
I think it's better to ignore the world of framework hype and just code to the
browser APIs as described by the standards. You can basically guarantee that
your site will still work ten years from now and that your knowledge will
still be relevant (though you'll need to keep up to date with new features
e.g. flexbox).

I personally find it _more_ work to learn frameworks and deal with the leaky
abstractions inherent in them than to work with the browser directly.
Especially when I hit a case where I want to do something that the framework
authors didn't cater for and I end up having to go down to the browser APIs to
implement it anyway.

In the short term, it's a bigger investment to learn the underlying
technologies, but in the long term it pays off big time, since you don't end
up being stuck with something that sounded great two years ago when you
started your project but is no longer maintained.

------
wattt
The answer you want is to use Bootstrap 3. The reason is that you are new and
tutorials will be written for that version. Although generally speaking I
would start with 4, you also don't want to burn out on stupid
unfinished/incomplete work. Don't burn out when you are just starting!

------
pryelluw
What browsers do you need to support? Version #4 dropped support for IE9. If
IE is important for your business then version #3 is currently the better
option.

Now, learning bootstrap is not too bad. All you need to donis figure out how
it defines the layout grid, how it handles margins, padding, and gutters, and
how to use different classes to make the site responsive. Should take a couple
of days. Ping me if you need help. :)

------
doomsdaychicken
Go ahead and start using Bootstrap 4, I've been using it in production and
it's quite useful.

~~~
CharlesW
I'm also using Bootstrap 4a5 without issues on a small site that I initially
upgraded from Bootstrap 3 mostly out of curiosity, and then pushed live when I
didn't discover any major issues.

Since it's a "major rewrite of almost the entire project"[1], I can't
recommend that new Bootstrap users invest any time in Bootstrap 3.

[1]
[https://v4-alpha.getbootstrap.com/migration/](https://v4-alpha.getbootstrap.com/migration/)

------
isaac_is_goat
I've used BS2 and 3 in the past, and wouldn't recommend bootstrap at all these
days. You're better off with something like Bourbon which is much more modular
and lightweight and doesn't force you into a certain "way" and eventually down
the "override everything" rabbithole.

------
vayarajesh
I started using bootstrap from Bootstrap 1 and it was not difficult to start
using 2 or 3 - the basic conceptual framework remains almost the same and most
of the implementation anyway requires the Bootstrap documentation open on the
side for reference.

However, I would recommend to move away from Bootstrap to Material design for
example, I feel (after using both) Material design is more well though
framework and it also has bindings with Angular (that is if you are building
angular apps) through [angular-
material]([https://material.angularjs.org/latest/](https://material.angularjs.org/latest/)).
There is also standalone framework
[getmdl.io]([https://getmdl.io/started](https://getmdl.io/started))

Then there is a very detail documentation on how to think like [Material
design]([https://material.google.com/](https://material.google.com/)) way by
Google . Checkout the components section from the menu, it is really nice they
way explain the theory behind why each component the way it is

------
mundiff
I'd start with 3 then migrate to 4. Also, learn Flexbox as it will be enabled
by default in BS4. FlexboxFroggy.com is a nice introduction. There's one more
breakpoint in BS4. The css class to make images responsive has changed for the
third time in 3 releases. Other than that, basically the same. I've been
toying with it.

------
FrancoDiaz
I do a lot of front-end development these days, but I still feel that my CSS
skills are weak. CSS is (for whatever reason) hard for me. Does anybody have
any CSS learning resources that have exercises? There's plenty of books out
there, but I really need a guided, hands-on learning experience.

------
vampaz
You don't learn Bootstrap. You learn CSS and HTML and you just use Bootstrap.

------
agentgt
I can't help but ask a bigger picture question: "What are you trying to do or
what is your end goal"?

If you are trying to roll out some new software for a startup or project and
you want it to look good and semi unique then I recommend just buying a theme
with all the necessary components (dashboard, graphs, whatever) you need.
Themes are pretty cheap these days. Usually one of these themes has picked
some sort of "foundation" library and you can then learn that.

Basically force yourself to pick by necessity and not what the "future" should
be...

------
KayL
To answer this question, I'm more interested in how do you learn it first.

All these frameworks are just COPY & PASTE the pre-made code. For example, you
wanna button in that style:
[http://v4-alpha.getbootstrap.com/components/buttons/](http://v4-alpha.getbootstrap.com/components/buttons/)

Copy that code and paste into your HTML. Whatever v3 or v4 are the same way.

If your learning way is memorizing the code without checking the document each
time, then I'd say v3.

~~~
nkkollaw
Copying and pasting wouldn't work, because many times you need to customize
things.

Also, what a nightmare would be to look it up every time you need to use a
component!

Of course learning it means to learn components by heart, just like you don't
look up built-in functions every time when you use a programming language.

~~~
KayL
Is it just me? I don't recite the built-in functions (intentionally) before I
code. I will look into doc when I want to find a shortcut. It's very
efficiently.

Take Bootstrap as an example, I open the following doc:
[http://v4-alpha.getbootstrap.com/components/alerts/](http://v4-alpha.getbootstrap.com/components/alerts/)

If I want a Modal, I will check Modal doc (accurately, I jump to CODE PATTERN
and copy it, not starting to read doc explanation.) and use it. After few
times, you will memorize the basic by heart. (understands the basic, then you
can create your snippets or something. Myself, I still open the doc to see the
visual examples. Anyway, I coded with a lot of frameworks in different
projects at the same time, not just bound to Bootstrap. You need to find your
best workflow yourself)

EDITED: "customize things" seems not suitable to the questioner at the moment.
If he understands basic CSS, he may not ask this question. :)

~~~
nkkollaw
I don't know if it's just you, but if I had to do that I would take about 10
times a long as I take right now to build something.

It's much easier to memorize them in my opinion.

~~~
KayL
What things do you actual memorize? All structures code and classes and JS
methods & events?

~~~
nkkollaw
Yup. All of that, so that I can code a component from scratch without looking
at the docs.

It also comes from practice, if you use Bootstrap often you'll just memorize
the components after a while.

------
rajangdavis
If you have time, force yourself to do a small project with both. Whichever
feels more natural to you is probably the route you should take.

Personally, I would be hesitant to go with v4 because of losing support for
older IE browsers HOWEVER v4 is built on flexbox, so it should _in theory_ be
a little bit more of a sane implementation.

I would do some more research on what are the differences, it seems like with
v4, they are making the API a little bit more simpler, but I haven't dived
into it yet.

------
kin
I think it would be valuable to you to give HN a little more insight to your
particular set of skills and your purpose.

I say this because I personally have dived head first into using a CSS
framework without first fully understanding a few key CSS fundamentals. This
made front-end work very hacky and involved a lot of trial and error.

Further along the line I've also been burned once or twice by adopting a CSS
framework, only to have breaking changes from future updates.

So really it depends on your situation, whatever it may be.

------
jmcmahon443
I've been using 4 for production. Pretty much the same thing.

------
citrusx
Another vote for "Consider alternatives".

I happen to like Semantic UI a lot, but you can also consider something
smaller and less proscriptive than Bootstrap, like Skeleton or UIkit.

------
untilHellbanned
We had the same thought over a year ago. We choose Bootstrap 4 but it was a
big headache because the Javascript plugins were and still are quite busted. I
would choose BS3.

------
dumindunuwan
you can learn it within 1-2 hours, start with B4. If you want to lean more
check the source code if it's css. Also check [http://semantic-
ui.com/](http://semantic-ui.com/) , it has more widgets and styles. follow
UI/UX trends to see how things can be organize in different ways, Pinterest
might help you to find/follow more designs.

------
nodesocket
Take a look at Bulma[1]. I prefer its simplicity and flexbox first approach.

[http://bulma.io/](http://bulma.io/)

~~~
forgottenacc57
Bootstrap 4 is Flexbox only.

------
robertlf
Given that they've been working on 4 for so long, I'd learn 3 now since it
works and the migrate to 4 when it's ready. And for the record, I'm tired of
everyone bashing Bootstrap. I'm using it for a production site and I love it.
I'm a one-man shop and I need to earn revenue now. I can't afford to spend the
next six months learning the quirks of CSS and its crummy layout techniques.
Bootstrap has allowed me to create a responsive website that works well across
all devices. It also looks much more professional than what I could have done
on my own, not to mention the fact that my site looks much better than those
of my competitors. I'm grateful that Bootstrap is around.

~~~
harrisreynolds
+1. Bootstrap has helped me immensely for many of the same reasons. What is
your app or site?

------
harrisreynolds
I'd learn Bootstrap 3 and then just migrate over to B4 later (if at all). The
key is to learn the concepts... and those won't change much even if some
details do. I'm following this approach with Easele
([https://www.easele.com/](https://www.easele.com/)).

------
steffenmllr
If you don't know the differences between versions 3 or 4 yet... My
recommendation would be to start with bootstrap 4. You'll learn the downsides
by the requirements of your project... maybe this is the hard way but that's
the way to learn... Facing problems...

------
kyriakos
If you don't plan to support IE9 then by all means use Bootstrap 4. But keep
in mind that Bootstrap (or any CSS framework) are not a perfect solution for
not learning CSS. Sooner or later you will need to modify bootstrap or create
your own styles.

~~~
nkkollaw
How do you know he plans to not learn CSS, or he doesn't know it already?

------
sfilargi
The differences are not that big to make a difference in "learning".

If your question was should I _use_ 3 or 4, then my answer would be, depends
on your project.

But for learning, the version doesn't make much of a difference as the general
principles are the same.

------
ebbv
The question I'd ask myself is are there any features of 4 you really need
right now? If not use 3, as it is more production ready. Using 4 right now you
are potentially walking into a minefield. You might make it through ok but you
might not.

------
felixis
Ditch both. Learn CSS fundamentals and for a good framework, head for Semantic
UI

------
ShirsenduK
Bootstrap 4 with Flexbox! Because thats the future :) I'm using it on a
production site; [https://www.maplenest.com](https://www.maplenest.com) and
its fairly stable.

~~~
sgt
Just a note - the top left MapleNest logo looks pixelated/blurry on a retina
screen.

------
hoodoof
When you start on an old technology you instantly incur a learning debt.

i.e. you will have to learn the new thing at some time in the future so may as
well not incur that debt and go straight to the future.

~~~
rrhyne
When you start on a new technology, you have to endure the breaking changes,
lack of community support, and lack of skilled operators.

You also burn one of your technology chits. You get just a few as a startup.
Selecting all bleeding edge technology could kill you. Would love to know
where I read that. :D

------
beat
If you don't know either, the "learn Bootstrap" thing will be a much bigger
deal than whether you learn 3 or 4.

This is doubly true if you don't know CSS in the first place.

------
pknerd
I'd recommend you to learn BS3 as there are more tutorials available.

You can always switch to BS4. BS3 is not something that's getting _obsolete_.

------
dyeje
I doubt there will be much changed in terms of core functionality and use, so
yes just go ahead and learn whatever is available currently.

------
rootme
Bootstrap 5 Will be Best to learn in the future.

------
desiredpersona
Learn html and css by using tachyons. tachyons.io

------
craigvn
Learn both, it's not rocket surgery.

------
boraturan
I am in Production with 4. No problem.

------
Dowwie
You could have learned either in the time you spent asking this question and
reading the responses

------
cmoscoso
What's Bootstrap?

------
sathomasga
FWIW I'd never use either on a production site. But for a quick-and-dirty
internal site or to just play around with, I can't think of any reason not to
use 4.

~~~
webbrahmin
Please elaborate why you don't use them on a production site. It will be
really helpful.

~~~
markdown
BS is ridiculously bloated.

~~~
nkkollaw
You should take a look at Semantic UI if you want bloated.

