I have a computer science degree. I work in IT, and have done so for many years. In that period "classical" computers have advanced by leaps and bounds. I now have a terabyte disk drive in my bedroom drawer amongst my socks, my phone has phenomenal processing power, and computers have revolutionized our lives. 

But as far as I know, quantum computing hasn't done anything. Moreover it looks like it's going to stay that way. Quantum computing has been around now for the thick end of forty years, and real computing has left it in the dust. See the timeline on Wikipedia, and ask yourself where's the parallel adder? Where's the equivalent of Atlas, or the MU5? I went to Manchester University, see the history on the Manchester Computers article on Wikipedia. Quantum computers don't show similar progress. Au contraire, it looks like they haven't even got off the ground. You won't be buying one in PC World any time soon. 

Will you ever be able to? Is it all hype and hot air? Is quantum computing just pie in the sky? Is it all just jam-tomorrow woo peddled by quantum quacks to a gullible public? If not, why not? 

I'll be trying to approach this from a neutral point of view. Your question is sort of "opinion-based", but yet, there are a few important points to be made. Theoretically, there's no convincing argument (yet) as to why quantum computers aren't practically realizable. But, do check out: How Quantum Computers Fail: Quantum Codes, Correlations in Physical Systems, and Noise Accumulation - Gil Kalai, and the related blog post by Scott Aaronson where he provides some convincing arguments against Kalai's claims. Also, read James Wotton's answer to the related QCSE post: Is Gil Kalai's argument against topological quantum computers sound?
Math Overflow has a great summary: On Mathematical Arguments Against Quantum Computing.
However, yes, of course, there are engineering problems.
Problems (adapted from arXiv:cs/0602096):

Sensitivity to interaction with the environment: Quantum computers are extremely sensitive to interaction with the surroundings since
any interaction (or measurement) leads to a collapse of the state function. This
phenomenon is called decoherence. It is extremely difficult to isolate a quantum system, especially an engineered one for a computation, without it getting entangled with the environment. The larger the number of qubits the harder is it to maintain the coherence.
[Further reading: Wikipedia: Quantum decoherence]

Unreliable quantum gate actions: Quantum computation on qubits is accomplished by operating upon them with an array of transformations that are implemented in principle using small gates. It is imperative that no phase errors be introduced in these transformations. But practical schemes are likely to introduce such errors. It is also possible that the quantum register is already entangled with the environment even before the beginning of the computation. Furthermore, uncertainty in initial phase
makes calibration by rotation operation inadequate. In addition, one must consider the relative lack of precision in the classical control that
implements the matrix transformations. This lack of precision cannot be completely compensated for by the quantum algorithm.

Errors and their correction:  Classical error correction employs redundancy. The simplest way is to store the information multiple times, and — if these copies are later found to disagree — just take a majority vote; e.g. Suppose we copy a bit three times. Suppose further that a noisy error corrupts the three-bit state so that one bit is equal to zero but the other two are equal to one. If we assume that noisy errors are independent and occur with some probability $p$, it is most likely that the error is a single-bit error and the transmitted message is three ones. It is possible that a double-bit error occurs and the transmitted message is equal to three zeros, but this outcome is less likely than the above outcome. Copying quantum information is not possible due to the no-cloning theorem. This theorem seems to present an obstacle to formulating a theory of quantum error correction. But it is possible to spread the information of one qubit onto a highly entangled state of several (physical) qubits. Peter Shor first discovered this method of formulating a quantum error correcting code by storing the information of one qubit onto a highly entangled state of nine qubits. However, quantum error correcting code(s) protect quantum information against errors of only some limited forms. Also, they are efficient only for errors in a small number of qubits. Moreover, the number of qubits needed to correct errors doesn't normally scale well with the number of qubits in which error actually occurs.
[Further reading: Wikipedia: Quantum error correction]

Constraints on state preparation: State preparation is the essential first step to be considered before the beginning of any quantum computation. In most schemes, the qubits need to be in a particular superposition state for the quantum computation to proceed correctly. But creating arbitrary states precisely can be exponentially hard (in both time and resource (gate) complexity).

Quantum information, uncertainty, and entropy of quantum gates:
Classical information is easy to obtain by means of interaction with the system. On the other hand, the impossibility of cloning means that any specific unknown state cannot be determined. This means that unless the system has specifically been prepared, our ability to control it remains limited. The average information of a system is given by its entropy. The determination of entropy would depend on the statistics obeyed by the object.

A requirement for low temperatures: Several quantum computing architectures
like superconducting quantum computing require extremely low temperatures (close to absolute zero) for functioning.


Progress:

Around a decade and a half, ago the decoherence time for the so-called "quantum computers" were lesser than 1 nanosecond. Now, the IBM Quantum Experience 16 qubit version which you can access online has a decoherence time ~100 μs (see: Demonstration of Envariance and Parity Learning on the IBM 16 Qubit Processor (Davide Ferrari & Michele Amoretti, 2018)). The decoherence time of 100 μs is sufficient to run simple quantum algorithms already! You can check it out yourself on the 5 qubit and 16 qubit quantum computers which have been made accessible online by IBM. I think Google has been able to achieve even better decoherence times with their superconducting chips (having an equivalent number of qubits).

There has been a lot of improvement in the area of quantum error correction in the past decade (requiring a much lesser number of total qubits). See Quantum Error Correction for Quantum Memories (Terhal, 2015) for a brief review.
Also, quoting: Wikipedia: Quantum error correction - Experimental realization:



There have been several experimental realizations of CSS-based codes.
The first demonstration was with NMR qubits. Subsequently,
demonstrations have been made with linear optics, trapped ions, and
superconducting (transmon) qubits. Other error-correcting codes have
also been implemented, such as one aimed at correcting for photon
loss, the dominant error source in photonic qubit schemes.


Preparation of arbitrary quantum states is still a major problem. But now at least we know the exact gate decomposition for any unitary evolution (Quantum-state preparation with universal gate decompositions (Plesch & Brukner, 2011)), albeit the number of gates doesn't usually scale well with a number of qubits. There have been further improvements like in High-fidelity quantum state preparation using neighboring optimal control (Yuchen Peng & Frank Gaitan, 2017). For some other recently developed high-precision methods of state preparation see The preparation of states in quantum mechanics (Fröhlich, 2016) and
Preparation of quantum state (Ali et al.,2017).

One of the main constraints we still have is number of qubits (note that this issue is intrinsically related to the difficulty of maintaining coherence for long periods of time c.f. Schrödinger's cat and the difficulty of macroscopic superposition state and the excellent answer therein). None of the present day quantum computers is sufficient to show any considerable improvement in "capability" compared to classical computers. The largest number factorized by a quantum computer till date is 291311 (High-fidelity adiabatic quantum computation using the intrinsic Hamiltonian of a spin system: Application to the experimental factorization of 291311 (Li et al., 2017)). Brute-force factorization of 291311 takes at most ~270 divisions, each of which takes ~10 ns on modern CPUs. That's 3 us in total, implying that the factorization will be several orders of magnitude faster on your laptop. The practical improvement in time complexity won't be noticeable unless and until the number of qubits increases by at least 10 times or so (I'm not considering the D-Wave machines which have over 1000 qubits, as they use a different mechanism known as quantum annealing which is effective only in a few narrow ranges of problems). But, arguably even the number of qubits is on a steady rise. Recently Google announced a 72 qubit machine (
Google AI blog: A Preview of Bristlecone, Google’s New Quantum Processor) and Intel announced a 49 qubit chip (IEEE Spectrum:: CES 2018: Intel's 49-Qubit Chip Shoots for Quantum Supremacy). Compare that to the 2000s when we only used to have a single-digit number of qubits!

Several quantum computing architectures have been discovered in the past couple of decades, for which near-absolute-zero temperatures are not necessary, for example, optical quantum computers, trapped-ion quantum computers, diamond-based quantum computers, etc. Cf. Why do optical quantum computers not have to be kept near absolute zero while superconducting quantum computers do?


Conclusion:
Whether we will ever have efficient quantum computers which can visibly outperform classical computers in certain areas, is something which only time will say. However, looking at the considerable progress we have been making, it probably wouldn't be too wrong to say that in a couple of decades we should have sufficiently powerful quantum computers. On the theoretical side though, we don't yet know if classical algorithms (can) exist which will match quantum algorithms in terms of time complexity. See my previous answer about this issue. From a completely theoretical perspective, it would also be extremely interesting if someone can prove that all BQP problems lie in BPP or P!
I personally believe that in the coming decades we will be using a combination of quantum computing techniques and classical computing techniques (i.e. either your PC will be having both classical hardware components as well as quantum hardware or quantum computing will be totally cloud-based and you'll only access online them from classical computers). Because remember that quantum computers are efficient only for a very narrow range of problems. It would be pretty resource-intensive and unwise to do an addition like 2+3 using a quantum computer (see How does a quantum computer do basic math at the hardware level?).
Now, coming to your point of whether national funds are unnecessarily being wasted on trying to build quantum computers. My answer is NO! Even if we fail to build legitimate and efficient quantum computers, we will still have gained a lot in terms of engineering progress and scientific progress. Already research in photonics and superconductors has increased manyfold and we are beginning to understand a lot of physical phenomena better than ever before. Moreover, quantum information theory and quantum cryptography have led to the discovery of a few neat mathematical results and techniques which may be useful in a lot of other areas too (cf. Physics SE: Mathematically challenging areas in Quantum information theory and quantum cryptography). We will also have understood a lot more about some of the hardest problems in theoretical computer science by that time (even if we fail to build a "quantum computer").
Sources and References:

Difficulties in the Implementation of Quantum Computers (Ponnath, 2006)

Wikipedia: Quantum computing

Wikipedia: Quantum error correction



Addendum:
After a bit of searching, I found a very nice article which outlines almost all of Scott Aaronson's counter-arguments against the quantum computing skepticism. I very highly recommend going through all the points given in there. It's actually part 14 of the lecture notes put up by Aaronson on his website. They were used for the course PHYS771 at the University of Waterloo. The lectures notes are based on his popular textbook Quantum Computing Since Democritus.
