> Also, I have ADHD. This is probably relevant, but I haven't quite figured out how.
Yeah, ditto but having been through these ruts many times in the past I can offer some advice
ADHD makes you incapable of settling into easy
You have work to do but it's easy.
You have a side project but you've figured out the hard parts
and so it's just the implementation grind, which is easy.
Find a challenge
switch your side project to a whole new tech stack.
find a new job that you're not quite qualified for.
take on job responsibilities at your job that you don't know how to do.
mentor someone.
I also find going to meetups and conferences gets the spark back sometimes
The fact that it most people think it's a well-defined operation is what makes it a useful question. A total newbie who doesn't know how to code will fumble. A junior engineer will get to the simple solution. A senior engineer will ask you to define it better. Etc... It's an effective tool for determining level because there isn't a limit on how much depth you can go into about it.
The DOM is to slow on mobile issue is what spawned http://famo.us/. They go beyond virtual DOM by creating their own layout engine that then outputs to optimized DOM (or canvas/WebGL).
They left out the most obvious reason for them to switch. Their business is based on docker, coreOS etc . . . aka the Go ecosystem. In that context developing Go expertise just makes business sense regardless of technical merits.
Me, I'm a Node.js guy, but that's in part because of my long history with JavaScript. I don't think I've ever been tempted to write anything in Dart, though there are some things I've written that would have been better to be written in GO (for deployment and memory use reasons). It really depends on your constraints, just like any other design decision.
What are your constraints? I suspect they're mostly around the availability of code and availability of learning resources.
You can build the same quality of web app in any of the above. The question is how much you'll have to fight against the platform's pain points.
Will you be CPU bound? Will you be memory bound? IO bound?
Will you need to scale? it what way?
What libraries, frameworks, modules etc . . . will you need?
Will your app be isomorphic? Where will you host?
And if you don't have many answers just go with what you're most familiar with.
I know going home sucks. but I've been there, and my advice is to withdraw from your college, go home and maybe take some classes at your local junior college. your health is more important than a degree. and in time you'll either get a degree or get enough experience that it doesn't matter anymore.
It really depends on your application. Each language, platform and framework has a niche. Depending on what you're doing none of the above might even be the answer. You might be better served a serverless solution like firebase.
There is no shame in having a failed startup. There is no shame in being between things. You just need to get out and talk to people. Let inspiration find you.