I think that it isn't long before an artificial general intelligence (an AI with superhuman intelligence) will exist. Why do I think that? Because we've got all the pieces; we just have to put them together. (By pieces, I mean technologies.) Here is a short list of the technologies that could be used to create an AGI (artificial general intelligence).
1. 1 petaflop of processing power.
2. A neocortex-inspired neural network.
3. A general-purpose function approximator.
I will now justify the suitability and existence of each one of these technologies.
One petaflop of processing power:
A petaflop of processing power? No one said an AGI needs to run on a commercial computer. It can run on one of the world's hundred most power super computers. I recommend you take a look on Top500.
As to why a petaflop would be enough, I have this equation.
AGI = (input FLOPS + output FLOPS) * inefficiency value
input FLOPS = (resolution + tones + scores + keyboard) * frames
input FLOPS = ((1920 * 1080 * 4) + (4 * 2 * 10) + 100 + 101) * 60 = 497680860
output FLOPS = input FLOPS
output FLOPS = 497680860
inefficiency value = 1000000
AGI = (input FLOPS + output FLOPS) * inefficiency value
AGI = (497680860 + 497680860) + (497680860 + 497680860) * 1000000 = 995362715361720
I did the maths for you.
A neocortex-inspired neural network:
The neocortex is the amazing part of the brain that allows humans to reason so generally. If we could simulate it, we could create machines with far more intelligence than us one day.
The neocortex has many micro-columns. It is believed that each micro-column has identical circuitry and that this is what allows it to be so good at learning. A previous problem with neural networks is that they couldn't generalise their algorithm across their inputs; for example, an image, a document, a database, a hidden layer, a game board, object details and etc. That's fixed, now. Capsule networks have mini neural networks (capsules) that run copies of the same, simple network across inputs, greatly reducing the number of dimensions and, hence, the mapping requirements for appropriate inputs to outputs.
A general-purpose function approximator:
Imagine if we had a "magical" type of program that can take any example inputs, with any example outputs, and create a fast and competent function that turns similar inputs into their appropriate output counterparts, given high enough computer specifications. We could give that type of program examples of general, adaptive and fast-learning behaviour and examples of exponentially improving that behaviour over time and, guess what? We'd have a generalised intelligence that would keep getting smarter until it reached its computational limit; an intelligence we call a general artificial intelligence if it achieves superhuman intelligence.
We have this very same "magical" type of program in real life. Given a few hundred thousand examples, generative adversarial neural networks can approximate a function, like the human brain, given only its input/output mappings. It does this with two neural networks. A generator network produces a generated output before a discriminator network is input either the generated output or the example output at random and produces a score. The discriminator network optimises the score to predict whether it sees the generated or the example output as accurately as possible, so it is motivated to become better at telling the generated output from the example output. However, the generator network optimises the score to predict whether the discriminator network sees the generated or the example output as innaccurately as possible, so it is motivated to create the most convincing (to the discriminator) forgery of the example as possible. The two networks push each other to generate and discriminate more and more convincing outputs.
A closing challenge:
If you disagree with me, please prove me wrong. Please check your reasoning a few times and share it here if you deem it flawless.
Thank you for reading. :)


