4 ms·
TL;DR - the web is just easier because it's so highly abstracted, and thus attracts a larger audience of new developers - and materials aimed at them. Education
by themartorana 10y ago
TL;DR - the web is just easier because it's so highly abstracted, and thus attracts a larger audience of new developers - and materials aimed at them. Educational material for desktop developers is plentiful but often at an advanced level only, because...
I think part of it is that the barrier to entry on the web is much lower. I've developed in objective-c forever, along with any number of other languages and platforms, and there more power available to you, the more you need to understand the underlying architecture.
The web is about as abstracted from the machine as it gets. Add to that that web rendering engines and HTML, CSS, and even JavaScript are very, very forgiving, so it's just easier for someone new to get started.
I was actually excited about the first couple iPhones in terms of resource scarcity to programmers. Tons of people jumped into iOS programming and for the first time in a while (or for many, the first time ever) were forced to consider what a lack of RAM and an underpowered CPU meant, and I helped coach many people through the finer points of memory management, allocations, (even with ARC) and Big O algorithm considerations.
Finally, native desktop software is just more powerful, and their is so much more you can do with it (and so, much larger standard libraries, SDKs, etc.) File IO isn't something you consider much in JavaScript on the web. Neither are parallelism, race conditions, IPC, networking, OS resource allocation, long running processes, native drawing and rendering, and so on.
Desktop programmers need to consider all of this a lot, and so generally tend to have some experience before getting into it (or work with a mentor/co-worker with a high degree of knowledge at first, as happened with me even post-CS degree). So materials written for desktop development tend to assume a certain pre-existing level of software development experience, and aren't aimed at new developers.
Edit: as someone else said, Big Nerd Ranch stuff is pretty good.