Introduction
Okay guys, I've been thinking about going for something a bit different again, I've gone from making a voice recognition program (which actually works great) to considering my next project, well I'm debating between the two:
- Augmented reality.
- Modular applications. - This is the idea I'm talking about more so.
I was thinking to myself today, I like how you can have some things which are modular, I guess PC's are modular, to some extent, I mean you can have a cheap motherboard, but a high end GPU and CPU and 16GB of RAM. Well I've been thinking, why don't we apply the same sorta idea with software? - I guess some software applications use this concept/idea, but I've been thinking, rather than make someone pay more for more stuff they may or may not use. Plus, wouldn't it be quicker when it comes to developing the software - I mean you could create a bare-bone software system, then include additional features. Like I said, I guess I know that some places/applications do this, but why don't more places do this?
My Idea
I've been thinking, why don't we utilise parallel computing a little bit more, like with Raspberry Pi's, they're cheap, small, and you can use a single Raspberry Pi to do so many different things. So how great would it be if we could force multiple Pi's to work together, even if you were to make software that was broken into smaller bits, like separate classes. But rather than storing it all as one program by itself, why don't we make applications that are all but standalone parts of a main system?
Just to clarify, like myself, I've been working with some voice recognition software, and I've been looking into ways where I can make my PC interact with Raspberry Pi's. Well I was thinking, rather than handle all of the processing on my own computer, what if I installed certain programs on different computers, which are run, when I command the central PC to do so. I guess the idea I'm going for is kinda like network based processing, where you can distribute a problem over a network, and all of the machines on the network work in sync to solve the problem.
I honestly thought that this may be a lot more difficult to implement, before I started learning more and more about it. I mean even if you were to create an augmented reality application that is quite heavy on the physical components, if you were to split the load among many different PC's that are connected to a LAN device, then surely it should perform better, unless you're rich and you've got a micro super computer in your house or something like that. I should also NOTE that when I say heavy on the physical components, I mean so heavy that it would cause strain on an i7 PC, with a silly amount of RAM and a GTX1080 or something like that.
BUT with that said, I don't know how affordable this would actually be in comparison to building yourself a super high end computer, and I also don't know what sorts of performance differences that would occur. However I would imagine, that if people made more applications that were structured like broken applications, then surely, it would be more useful for distributed hardware, or so I'd imagine. But maybe, if it were the average application, then it would be much more efficient for a single computer. Again, so I'd imagine, I don't know the formal facts and figures, hence why I'm adding the final part of this post.
Applications
So in terms of applications, I was thinking, you can use n number of Raspberry Pi's to do just about anything, from a smart home system to making an interesting and very small server system, I've heard of plenty of people use Raspberry Pi's for server projects.
I mean it shows that Raspberry Pi's are so incredibly useful that many places and companies are now holding competitions for kids to develop applications with Raspberry Pi's. I mean even the ESA [European Space Agency] is supposedly using Raspberry Pi's. Are Raspberry Pi's the future? I mean in my honest opinion, thinking about it, it seems that way, I mean Intel have now jumped on the microcomputer band wagon, with their Intel nucs. And many other companies are also working on making smaller and smaller computers, ranging from gaming spec systems to very basic computers, like a Raspberry Pi.
Another benefit of more people using the likes of Raspberry Pi's, it can cause for more people to learn how to build electronic devices, and program computers I guess. I mean at a very basic level, you could even say how some users could use the likes of a Raspberry Pi for basic computational tasks, and I only say this because of how space and cost efficient they are. I mean for basic tasks, they're not exactly going to struggle to run them, I mean if you need to run something like a text editor too, I would've imagined that a Raspberry Pi would be ideal.
For the users who are among the 'Netflix and chill' gang, I would have again, imagined that a Raspberry Pi would be excellent, again, they're cheap and small, and I'm sure that they wouldn't struggle to watch some basic video content? Honestly I could easily be wrong, I haven't looked at what Raspberry Pi's are capable of in great detail, and I’ve just looked up some of the cool applications that you can actually make by using a Raspberry Pi.
Discussion
I'd appreciate it if you guys could get back to me with hard facts and figures, I mean the aim I'm going at is price efficiency over computational efficiency, I mean sure, from the computational perspective, then I guess that a single computer would work much better. You wouldn't have to transport data half as far, in addition to the fact that the data would also travel at higher speeds in a standard PC. I mean I know (Or I think I know) that cars use this kinda idea, many computers working together each computer having its own specific task, they all work together to make the car itself work, and work effectively. I'm also sure that this makes debugging and repairs/maintenance more easy for mechanics and engineers.
Again, I'd appreciate feedback, if I'm totally wrong, please just tell me, if you think I'm an idiot, also, please just tell me, etc. But please try to justify your conclusion, I mean it's not like you have to, I'd just highly appreciate it, and finally, thank you if you've read my entire post, and you've read through all of my rabbling, I hope to hear back from you guys! :)