Doug Jones Doug Jones

Next Generation

Sony recently unveiled its plans for the PS4, marking the start of the next generation console announcements. I have very mixed feelings about what Sony showed to the world, but it's left me with a few important take-aways.

The biggest lesson is that next generation console hardware will be built entirely from commodity parts. The PS4 will be x86 based with a GPU built by AMD; essentially, it's a PC. No more fancy, custom CPUs. Instead you will have off-the-shelf components. Sony didn't dwell on the tech specs of the console during their presentation, which initially was surprising to me but makes sense in retrospect. There was no reason to, because the architecture was not special. Right now, you could build a gaming PC from better components than what will be in the PS4. I'd bet that the next Xbox and Steambox will both have hardware very similar to the PS4: x86 CPU and commodity GPU by AMD or NVIDIA. 

The next lesson is that software will decide the winner of the next generation. I think this conclusion is natural if you agree I'm correct that all next gen hardware will be commodity. No platform will have an edge in hardware, therefore they must differentiate through software. I think Sony realizes this and the proof is in their presentation. Features like cloud gaming/streaming (courtesy of tech by Gaikai) and more integrated social features (such as instant sharing, more tightly integrated friends lists, and communication) are primarily advances in software. There is little to no cutting edge hardware needed to make these features reality. Console manufactures will also need to provide dev kits that make incorporating these features into games easy. The appeal of the cloud is that it makes complicated systems easy to use and transparent to the user. Either it works flawlessly or it will be viewed as frustrating and broken. Transparent, flawless cloud systems are not easy to build.

So, if software will decide the next generation, who will be in the best position to win? Well, it's way to early to tell. However, we can look back to past performance to try and guess about the future. Historically, I think Sony has been weakest at producing software. As a company, their roots are in hardware. I can't point to one truly excellent piece of Sony made software. The dashboard/os on PS3 is not terrible, but I would not call it best in class either. In my mind, Sony has a poor track record of executing their ideas in software. They might get close, but I don't think they ever truly hit the mark.

I believe the biggest competition to Sony will come from Valve and Microsoft. Both companies are historically software companies that have grown hardware divisions. The PS4 hardware reminds me of the original Xbox: commodity PC hardware turned into a game console. As for Nintendo, they may be even worse at software than Sony. The Wii U appears to be fairly underwhelming. I'm not sure anyone really knows what to make of it yet and, frankly, it seems somewhat uninspired. I'll certainly be very interested to see what Valve and Microsoft announce later this year, but my expectation is that they will be able to innovate in software more quickly than Sony. In fact, it has already been revealed that a few of the important aspects of the PS4 announcement were aspirational. It seems the deck is stacked against Sony and the real test will be to see if they can execute on what they announced and deliver these features before their competition can.

You may feel that I've down-played hardware too much in favor of software. Perhaps that is true, but I feel like the current state of the game industry supports my argument. When I look at things like the Wii, Wii U, Kinect, and Playstation Move, I see lots of innovative hardware that, in isolation, is very impressive. However, I've yet to see a very compelling use of this hardware. Where's the killer game that really shows why I need​ this hardware? Maybe I've missed something big, but I don't think so. If you know of a game that makes great use of hardware like this, please point it out in the comments!

Read More
Doug Jones Doug Jones

Why Everyone (Eventually) Hates (or Leaves) Maven

I found this article on why developers eventually hate Maven to be very insightful and to apply, beyond build tools, to programming in general.

I defined two types of extensibility/programability abstractions prevalent in the development world: composable and contextual. Plug-in based architectures are excellent examples of the contextual abstraction.
...
Composable systems tend to consist of finer grained parts that are expected to be wired together in specific ways.
— nealford.com
Read More
Doug Jones Doug Jones

Freedom of the Web

Today, I read an interesting post by Dave Winer. He said the following:

For me, the web was creative liberation. Seriously. I had given up on making software because everything was so jammed up and ugly in the tech world. The web freed up everything. We could create again, because I could set up my own net that no one owned but me. I didn’t have to get anyone’s approval to play with servers.
— Dave Winer

I couldn't agree more. I think the fundamental thing that separates the Internet from all other mediums is that it is open to everyone. If you can manage to get a device that speaks TCP/IP and HTTP you can communicate with the world. 

As a programmer, this is an amazing thing. I have the freedom to use and write whatever software I want on my machine. Compare this to creating something for the iOS App Store, where Apple must bless your software before it can be used. 

The sentiment that Dave wrote about is one of the many reasons that I think protecting the Internet is important. We must be careful not to let something so unique slip away from us.

Read More
Doug Jones Doug Jones

An Internet Thanksgiving

Here's to the builders.

I’d like to thank all the people who’ve laid down copper and fiber cable, allowing for the infrastructure of the internet to exist. While most computers gets their internet access over WiFi and mobile phones are not attached to any wires, there is generally a base station somewhere nearby that connects to cables either on poles or underground. Those cables then connect all over the place, forming the nearly invisible infrastructure of the internet. We often forget how massive an undertaking this has been: just think of all the wires required to connect your house, your neighbor’s house, your office or any other location to the vast server farms that serve internet content on a daily basis. This infrastructure sits there, silently, and it is thanks to the work of many blue collar workers that it exists, thanks to the hard work they put in digging trenches or putting up poles and throwing wires around them. Most people think of the internet as the kind of place where only white collar workers do the work but, before anyone can sit down to code a new internet app, those physical cables need to show up.
— http://www.tnl.net/blog/2012/11/17/thanks-for-the-internet/

I've been thinking a lot lately about the physical infrastructure of the Internet. It is easy to take for granted. I am certainly thankful for those who have worked to build and maintain it, as well as the many other invisible tasks involved in keeping the Internet and our favorite software online.

Read More