UPDATE 2: Here it is. Read this for historical purposes. http://www.awevation.com/2011/09/08/bubbles-giants-and-sheds/
UPDATE: I’m writing a follow up post explaining it in a better way! The idea’s evolved. Quite a bit. Please stay tuned. Thank you so much! You’re great people. I love you.
This is a piece on an idea I had. An idea that I like the direction of. It’s an idea that doesn’t really exist yet, the ghost of an idea.I don’t really know quite how it’d work, quite what it’d do. But I think it’d do something, for some people. I would love you to read, and stick with me. Then comment at the end, and criticise it, and tear it apart. Please, it helps me, doesn’t hurt me.
The guys on a gaming podcast I listen to (Infendo radio) had and idea for a new console. It would do away with all bells and whistles of all the new hardware, only have three buttons and a d-pad. It would even do away with the select button, only having start in the centre. The console itself would have a huge emphasis on 2D games, only allowing developers to make games that happened on a 2D plane. It was a beautiful idea, and one that resonated with me. I even made them a 3D render in Blender (a FOSS and cross-platform alternative to 3DS Max. It’s actually very capable.) of the controller. They posted it on the site here: http://www.infendo.com/concept-designs-of-infendos-unreleased-console-leaked-to-internet/
Then, the guys on one of my favourite podcasts, The Linux Action Show, had a yearning for another device. It would do what IBM, Intel etc had pioneered with the PC, for the mobile market. I buy Windows PCs, but I must confess I put Linux on them very quickly and hardly ever use the OS it came installed with, although I keep it there. I do this because I can just do whatever the hell I want. I can even hack my own kernel to pieces and recompile it if I wanted. This mythical device would simply be the hacker’s tablet, you could easily flash whatever on there and play with it in whatever way you wanted. The hardware would truly be yours, when buying the device software pre-installed would be irrelevant.
On yet another podcast (I listen to lots), starring my favourite team of tech bloggers (Josh Topolsky, Nilay Patel and Paul Miller) has had an ongoing theme throughout what was The Engadget Podcast, is now This Is My Next Podcast, and soon to be The Verge Podcast. They want this halo device, a device that has literally no branding on it and a monolithic design. It’s just a svelte black block with a screen, and hardly any bezel. It doesn’t even have to get mass-market they say, just let those who want one get one.
I think all these things are linked. People, geeks at least, seem to want this device, or this platform. I think all these people, all at the centre of the current tech scene, just want great tech. They don’t care who makes it, what exactly it runs. They want the greatest application of technology they can imagine, and they’re frustrated that no one seems to want to make it. Everyone’s fighting for a monopoly, not a single intelligent consumer wants a monopoly. The businesses should ideally see that competition is fantastic for them, because it forces them to innovate, to evolve.
Every company is trying to lock you into their services their technology. This might be absolutely fantastic technology, but there will undoubtedly be problems, by the nature of the walled garden system.
The industry stagnates. The games industry is stagnating. The consumer electronics industry is stagnating. You may notice my blog/future company’s ‘motto’ “Awesome Innovation in the face of stagnation”. This is because innovation makes industry, and to a larger extent the world, go round. Everyone always wants to make the next iPod, the next iPad, the next Facebook, the next Google, the next Microsoft.
Microsoft still own ninety-something percent of the home computing market, because they were first to this pie. Google is synonymous with search, the home page of the internet. And the iPad? It’s completely ridiculous the insane amount of brand saturation Apple has here. I pull out my Kindle and people ask ‘is that an iPad’. These aren’t tech literate people obviously, but hardly anyone really is. The people who think a Kindle looks like an iPad are your biggest market as a CE company.
The point is, Apple’s suing people for using the term ‘App Store’. That to me says like nothing else, they don’t want to let go of this market. I won’t go into the Apple-Samsung lawsuit that’s happening, but it’s all completely ridiculous.
Now, I stand outside of all this. I’m not an ordinary consumer, I run Desktop Linux for Christ’s sake. I see every day what so many people don’t, I see law suits and hundreds of new devices every all the time. And I ask myself:
“What’s this really all about, why do I use desktop Linux. If I care about it so much, why am I not anal enough to write and say ‘GNU/Linux’ when it’s mentioned, and make a point of saying ‘FLOSS’ not ‘FOSS’? if I really am that much of a fanboy.”
I realise that above all else, I use it because of the software, and the way the software’s developed. I see that all these people, they want great software. They want it cheap and easy to get to. I remember Josh Topolsky once coining the term ‘app snacking’, it’s what makes the app store idea so compelling. Steam and iOS’ offering are best known. Now why’s this? It packages software in an attractive tangible form and cheaply. But the reason some are more successful than others? Well, they have all the developers working for them.
It’s the same everywhere, they have all the talent. Just like Google and Facebook hire all the brightest script kiddies on the planet, fresh out of MIT and Harvard, just like Microsoft and Apple get all the brightest software engineers. Steam and iOS have the best developer talent on the planet locked in their gardens.
I know a thousand people who say ‘That platform would be great… If it had more Apps’. It’s about the damn software. The iPhone’s not a nice phone (in my opinion, and I’ve seen and used a lot of devices), it’s a nice software consumption device, that has lots of polished native software, just a tap away.
So how has this happened? Say, I’m a developer, I have a brilliant idea for the next Angry Birds, which platform do I go to? Easy, iO… Wait… why?
Well that’s easy, it has a huge userbase, willing to spend 99 cents on a whim, on my App. The dev-kit’s really cheap and Apple distribute it for me. Oh, and Apple’s Website’s so shiny. As is their OS and development tools.
Now what if you could provide a better development enviroment, without fragmenting things more. What if it was actually something altogether new, something that hadn’t ever been done before. Never been thought about in this way, seen from my (pretty unique…) standpoint. Not a platform exactly. Bear with me.
Back at YRS, I was one of the (many many!) people on Twitter during the speeches. I got into a conversation with Chris Thorpe there about education. No one’s learning about tech at school, you hear it from people in the industry all the time. Talent is hard to find. Why? Because the only people who know how to do these jobs that tech companies need, are people who have taught themselves. The curriculum is bogus, I don’t do IT for my GCSE, I’m not doing it for A level. What industry to I intend to work in? IT. There’s something wrong there. The tech industry moves extremely quickly. That’s what I absolutely love about it. Go back a year or two and tell someone Apple and Google are top of the mobile buisness, HP have backed out of the PC market. They’d think you were insane. The curriculum doesn’t move fast at all. Learning how to use Word is not learning how to use a computer. It’s learning how to use Word. And until my IT teacher knows more about IT than me, I’m not going to learn anything from him. We don’t just want geeks like me who are entirely obsessed and absorbed in technology. We need ordinary people who have simply been taught well also, because there aren’t many people who have the same passion as me, and that’s fine, but we need to teach people the things that can be taught, to those who want to learn them. That’s not happening.
Then I realised something, “It’s about exciting and inspiring”, I said. That really makes sense to me, if My mum had never worked in web development, what would I be doing now? I can bet you I wouldn’t have installed Ubuntu and learned what a computer was by breaking and fixing it 20,000 times. As it turns out, I was excited and inspired and became who I am.
It’s the same with developers. They need to be excited and inspired, you don’t want people who want to make the next Angry Birds because they want to be a millionare. You want people who want to *create* the next Angry Birds because they want it to exist. There’s a huge difference between these two types of people and the former aren’t going to get as far as the latter.
Before we go into the actual ‘idea’ I’d like to say that it’s just a pretty new, not thought through thing. I just think it’s interesting to think about things this way.
So, I had this idea. I see a lot of sites, being in the opensource world, that help you create software. I see and use Git, which allows easy collaborative software creation, which is great. I see sites which let users crudely submit software via uploading a tarball, and sites that let you pitch ideas. I see Sourceforge which let’s you do both.
What if you could merge all this together, and then add some more.
Te result would be a service for colloaboratively pitching, coding and distributing software. With much more.
So yeah, it’d be like Git, mixed with Sourceforge, mixed with those-random-sites-you-find-distributing-software. It’d be a kind of social network, a codework, or a softwork.
I thought you could maybe come up with something for sharing code functions, like a sort of library of Congress for coding libraries. Lots and lots of user submitted/open header files in a way, but wrapped up in a slick HTML5 interface. So you could tag each function or library with words surrounding what it does. I don’t know whether this would actually be useful to the average coder? But I like where the idea might expand. I don’t know what languages you’ve ever coded in but I’m learning C++, which is obviously function based. If you had a pre-made function, made by someone else for their code’s purpose, then you could pass on whatever variables you had and get a return from it, at the end of it all code’s just math. Refined and specialized math. But there’s lots of code.
So if you encouraged coders to comment their code before each new scope or function, then all those comments could be indexed and duly searched. Then I’d guess it’d be more useful to use entire blocks of code, making them more libraries. So I submit open source library number 64 for interfacing with openGL, it can be found. And so can everything else in the same search field. I want a piece of code that “takes integers, puts them into a vector and returns a reference to that vector”. Oh, looks like there’s millions of them.
So in the end you have lots of coding blocks, as I said, a coding Congress. Then naturally on top of that you’d have full applications’ source. Ready to download, to fork.
I think the way the system builds up naturally is awesome. In a way it’s a catalyst for itself, as it builds up it becomes more and more useful. As with any social network, the more info the people put in, the more they get out. I think something like this would be a valuable resource, and I don’t think it’s ever been done in this way before, certainly not to my knowledge.
Then, since all of this is completely open by it’s very nature, anyone can come along and compile this code and put it down whatever distribution streams they want. I might have an Android developer license for instance (and more importantly, a familiarity with the system), find some software I like? Take it, port it to my system which I know. Maybe you have a WP7 license? (I suspect you do!). I think this is a part of the problem. The developer can’t be asked to port it to every platform, but their code stays in their git repo and…. It never does get ported/even submitted anywhere else.
I know there’ll be an app store in Windows 8, there’s already a Mac app store and plenty of third party app stores distributing PC software. All the time I see open source, Linux desktop apps, that have been ‘unofficially’ ported over to Android, or maybe not even on the Market but there’s an .apk for them out there on the interwebz. I see a lot of ad supported apps.
What I’m saying is a resource like this would be incredibly exciting to me as a developer. I don’t think either Git or SourceForge are similar, the info there’s not indexed well. Maybe this could even start as a frontend to Git? And SourceForge? It would open up whole new possibilities.
Then it would be a place for pitching and discussing ideas to! If some guy like me who can’t really code (yet…) has an awesome idea for an awesome app, the community built around this place would be perfect for developing it. It’d be awesome if you encouraged people to ‘put your ideas here, give therm to the world and see what the hell the world thinks!’
Then there’s the fact that if software engineers and companies that make software (A Microsoft employee was the largest contributor to the Linux kernel last version with quite a few big patches!) put stuff into this system, everyone in the world plus them would get stuff out of the system. Perfect open scenario where we all live in Stallman and Doctorow’s happy rainbow unicorn land.
I also think the ‘gamification’ (sorry… it’d be decent gamification done by people who understand game design theory and games) possibilities of such a service would be… Large.
In my head the design ethos is kind of like www.gdgt.com (if you’ve never been there, it’s a great well designed HTML5 social network. Quora, for gadgets. And more.)
At the moment it’d be called something like ‘awecite & awespire’ or ‘awesplosion‘, if you can tackle those pronunciations.
It’s so exciting because if it was successful it would just completely obliterate the way software is currently conceived, developed and distributed. We’d see resurgences in simpler software, simpler games, we’d overturn the way companies are run and the software they develop. And that makes me grin, very widely. Because I love start-ups treading on huge companies toes.
That’s pretty much it for now, but the idea’s in a state of flux, this is the seed. I’m wondering what you might think? Is it a decent road to go down? Does it duplicate too many services? Tread on too many people’s toes (not possible )? I think there’s potential for something, but I don’t know quite what.