The grand vision for structureJS
I have significantly fleshed out this site with content and I am quite proud of how far the project has come along. After trying my hand, ever so briefly, at being in a start up, I feel much more at home with a project like structureJS. Something by developers, for developers.
I have virtually no chance at getting rich with this project but I have a good chance at getting something more important – the respect of my peers.
Part I – On-Demand Complexity
This project was obviously inspired by RequireJS. What I set out to create was a tool that gives you the core functionality of RJS, but with the complexity ratcheted down. RJS is a robust and powerful tool. I am sure there are projects out there using every bit of its most advanced functionality, but I found myself being put off by the complexity of RJS when I really only needed it to do one task – load my script in the correct order.
I believe strongly in on-demand complexity. This is why I built the structureJS core in a modular fashion. My hope is that other devs who need some of the more advanced functionality of RJS will write modules that implement those features, share those modules with the community, and whoever needs those features can plug those module into their structureJS core. For everyone else, the core remains basic. The idea is that this allows keeps the barrier to entry as low as possible.
Part II – A Module Community
So the final component to my vision, is to remove the need to download anything to try out JS tools written by other people.
This is why structreJS has the reserved directory alias “remote.” Using that alias, a dev can inject another dev’s modules into their project and give them a spin. If it works out, then download the module and add it to your project. If not, just remove that module from your manifest.
I would like to create a module sharing site that lets devs comment on a rate modules. I hope that eventually structureJS will enable the JS community at large to create a vast library of easily accessible tools for anyone to try out and use. Want to use client-side encryption in your app? There’s a module for that.
Want to use IndexedDB but scared of all the crazy async stuff. There’s a module for that too.
I hope that making it easy to use modules that provide advanced functionality to your application will result in faster, more powerful, and more efficient development of the next wave of web applications.
Anyways, that’s where my head is at with this project. I hope I can make this vision a reality.