I've learned languages with duolingo.. and by that I don't mean duolingo will teach you a language.
There's two things that I feel that almost everyone misses.
#1: Using duolingo alone will get you to about an A2-B1 level in comprehension and an A1-A2 level in writing and speaking.
This is just the basics of a language.. enough to understand basic expressions. You're never going to learn a language without further practice and tools. Spending time in books, trying to form your own thoughts. Duolingo is a great start, but if you never progress beyond it, of course you're not going to learn a language.
#2: and most important. When you complete a course you're not done.
I see this all of the time, people just get to the last exercise and stop.
You're not going to learn a language this way because most people can't retain a 2000+ word vocabulary by only seeing a word a couple of times.
There's a reason why your "strength" in categories decreases as time passes.. because it's unlikely that you've actually remembered every single word you were taught.
I've participated in a large number of duolingo related discussion over the years and one thing stands out is that there is a strong correlation between people that think you can't use it to learn a language and people that go straight through the course, reach the end, and stop.
Anyway, it has its flaws, and is far from perfect, but I can't imagine having a better product that does not come with a fee.