Apple Microsoft

Windows 10 is a great alternative

Marco Arment: “Microsoft is boldly experimenting with PC hardware, but Windows and everything around Windows is woefully inferior to macOS and the Mac software ecosystem. Even if Microsoft did everything right, it would take Windows at least a decade to catch up — and they won’t do everything right.”

Bringing in the HarvestI doubt Marco will see this, and this is definitely not an attack, this is something I’d say to my friends. In the nicest of ways, to say it would take Windows at least a decade to catch up, is a bit hyperbolic.

I’m a fan of Microsoft’s Windows, I have been for years. It helped me get my start in this industry. I switched to the Mac around 2006 and haven’t looked back, I really do love the experience.

If we’re talking about performance, which seems to be the point of your piece, keep in mind that Windows can run on all kinds of hardware. Windows 10 can support up to 256 cores and 512GB of memory. That’s pretty nice. We know that some high end video production shops are abandoning the Mac in favor of Windows boxes because they need the horse power, another great example of why we need a new Mac Pro. But Windows as a tool of choice is very viable.

The development tools on Windows are quite good. Visual Studio is a great IDE. Microsoft’s .Net has become the standard way to develop for Windows, especially for backend services, but you can create beautiful client applications with it all the same. If you’d like you can still write C++ code to the Windows API, like Photoshop or the Microsoft Office apps.

I’m not sure what Marco’s primary complaint about Windows is? Is it just the general usability? Is it a stylistic thing? Maybe he can’t easily run his favorite tools on the platform? That’s a really big deal. I’d love to hear him go into detail about the issues with the platform.

I tell folks all the time. Microsoft’s NT Kernel is a beautifully designed Kernel. It can, and does, underpin different hardware. When it began life it ran on Dec Alpha, MIPS, x86, and eventually came to the PowerPC. Since that time the other architectures fell out of favor and it mainly became an Intel based platform, but it still powers other architectures.

In the end I’d never attempt to tell someone which platform they should choose, it’s all a matter of personal preference. Apple and Microsoft both provide great solutions in software and hardware form. This is great for us, the customer.


The new Mac Pro is a Beast

WWDC 2013tGuy English: “There’s only one CPU socket and it bets heavily on the bus and GPU performance. While this looks to software to be just another Mac, it isn’t. It’s capabilities aren’t traditional. The CPU is a front end to a couple of very capable massively parallel processors at the end of a relatively fast bus. One of those GPUs isn’t even hooked up to do graphics. I think that’s a serious tell. If you leverage your massively parallel GPU to run a computation that runs even one second and in that time you can’t update your screen, that’s a problem. Have one GPU dedicated to rendering and a second available for serious computation and you’ve got an architecture that’ll feel incredible to work with.”

At my day job I work on an SDK that allows people to embed video in their applications. The SDK lives on an awesome framework developed by our Systems team that is portable and allows us to create plugins that can process media and push it down the pipeline. That pipeline includes plugins to receive data from the network, decode that data, time it, and render it to a portion of a display. It can do this for live and recorded video, MPEG4, H.264, and even low frame rate JPEG video (so we don’t have to decode frames on the client.) But, I digress. If you notice, I mentioned decoding. We’ve looked at decoding with hardware but it’s actually quite expensive to push encoded frames across the bus, decode them, push them back across the bus, and finally render it, which pushes it back across the bus. Ick.

At one time Pelco had built its own combo card that could decode video and render to the display with a single push across the bus. That was a cool piece of hardware. At the time we could decode and display sixteen separate video streams simultaneously, at varying frame rates. That card was extremely underpowered. I guess what I’m getting at is this: How cool would it be to leverage one GPU on a Mac Pro for decoding all video, be it one stream or sixteen, and push the results across to the secondary GPU for rendering, without a transfer back across the bus to main memory? The idea of it seems very exciting.

Now all we need to do is build our pipeline for Mac OSX(totally doable) and create a new decode/render plugin that takes advantage of the new GPU. I’m not sure if its totally possible, without multiple bus transfers, but it would be fun to try.