Windows 8 and Microsoft’s Fate

I’ve been to two Windows 8 trainings from Microsoft in the last few weeks, as we at Abelssoft build Windows software for consumers and Windows 8 will be a pretty big market, as it will ship with every new PC sold from Octobre on. I’m not sure how much I can tell about this, so I’m keeping out stuff where the speaker directly stated to not tell the public, but basically all I’m telling has already been leaked before or is directly stated on Microsofts MSDN pages at http://dev.windows.com or http://design.windows.com. Also I’m not from Microsoft, so take everything written here with a grain of salt.

Windows 8 logo

Possibilities

It was presented that we now have about 600M Windows installations, and googling just found that half of them is on XP, 6% Vista and the rest Win7. I guess the Vista users, some of the XP users (XP support is over) and everyone buying a new PC will have Windows 8. Everyone of those people will see the windows market and everyone who tries to use the Metro interface will very early need to have a live ID, which enables them to enter the windows market. The tablet users will only have the Metro interface as the only desktop apps working will be the office products Microsoft preinstalls.

So the market will be big. Very big. For Metro apps at least. With Windows 8, every Metro app that Microsoft thinks to be a good design example for Metro will be shoved into a large amount of people’s eyes.

The Metro Design Language is nice, clean and minimalist. I like it. On design.windows.com everything needed is shown, including design decisions, metrics and what you need to design a Metro interface app.

Frameworks and the Market

Most of the other technological stuff that was mentioned is already known to everyone who looked at the Apple store concepts. For example it’s the same mechanic of declaring which permissions your app needs to work, if it needs to have access to your location, sensors, etc. Microsoft here copied from Apple where it made sense, which is basically everywhere.

Interesting differences include:

  • The Microsoft cut is 30% unless you app is very successful – as soon as it reaches a certain threshold in earnings (the number 25.000$ appeared somewhere), Microsofts cut lowers to 20%. This is a very nice move from Microsoft, although it won’t affect most of the apps it keeps the hopes of developers for getting rich high. As far as I know, this is counted on a per-app basis.
  • Trials. There’s a (feature-limited & time-based) trial mode, recurring payments (subscriptions), in app purchases – including a mock windows store for testing.
  • Not as strict as Apple. I questioned if we would be able to harvest the users email to give him an otherwise free app, I got no definitive answer but the basic message was that Microsoft won’t  stop you from using the business models you’ve used so far. They only said that the windows store team will check your app, and if they cannot get in or see the functionality based on a trial version, they will likely reject it. From a user perspective, I don’t like it so much, but from a developer’s perspective, this is good news.
  • Synching is easier. Everyone who can buy stuff from the store automatically has the credentials to use Microsofts Dropbox Skydrive. An SDK for this is provided to work with it in code. This means that synching will be really easy AND cross-plattform (as you also have Skydrive for Mac, iOS, Android and such), which on Apple’s platform iCloud is designed to lock people in the Apple world.
  • The app sandbox will be one-sided. The Metro app has only access to a few places on disc, but from the “old” Windows apps you’ll be able to scan through the (hidden) app folders of the Metro apps and theoretically influence them. This has an impact on security considerations, as you cannot openly put private user data on disc, but it also means that you can use file-based communication to communicate with your “old” desktop apps and services. The implications of this could be manifold. For example, you could implement a way for Metro apps to recognize if there’s already a full version of the apps’ desktop equivalent is installed to automatically make the trial free for the user.
  • No system database will be provided. No core-data for Windows 8 now. You can use file-based databases in your app, but that’s it for now (SQLite and one other thing I’ve never heard from are supported).

.NET 4.5 is something I’m really looking forward to. .NET 4.0 already is a heavenly programming language from the future, and .NET 4.5 will be another evolutionary improvement. The asynch language feature automatically makes your synchronous spaghetti code asychronous. Which is not only big for your code, but should also make the whole framework faster, as Microsofts talented engineers provide you with asych representatives of usually blocking code.

In the developer and designer trainings is was oftentimes emphasized that you more or less automatically have a valid metro design when you use the new grid-based application template, as it scales and reformats contents automatically based on device and portrait/landscape orientation. I got the feeling that this was stressed a lot as Microsoft doesn’t think people design good UIs. If I look at the Windows world, this is mostly true.

The semantic zoom is another big paradigm that will be greatly supported by the grid. The idea is that you can zoom out and in on everything so you have only a single view in your application that shows different levels of detail,depending how far zoomed in you are. You can see with in the Windows 8 start screen, where you can zoom out to have an overview of all your icons, while zoomed in you see interactive tiles and program names.

One other interesting thing is that SVG graphics might be usable, which is a feature I wished for a long time ago. Sharp graphics without big file sizes should be good for everyone.

The Developer and Designer Trainings

Overall, I would have expected more.

  • First, I was expecting more non-official information. The non-official information I gathered was merely what everyone would expect to happen anyways.
  • MS’s own stance on details isn’t very universally consistent. The to trainers I met didn’t have the same knowledge about things, and some information was even contradictory.
  • The number of trainings and the overall low number of participants oftentimes let me think that Microsoft is desperate to train developers to make something else than the 10 year old windows forms that we all know and hate. In a non-representative questioning of the audience, only about 1/3 of the attendees knew about MVVM, which is the de-facto technical standard design pattern for modern Windows applications since about 2007-2008. This means that most of the Windows developers are about 5 years behind in knowledge. Maybe this is the reason why the trainings didn’t dive very deep.
  • The early beta-like release of code isn’t very good to test. While I like the idea of the semantic zoom, the code base is buggy so it can hardly be tested now. On a sidenote, of course it’s still better than not releasing stuff beforehand.

The User’s Point of View on Windows 8

Users will see Windows 8 very differently than developers. In my opinion, you need a desktop and different windows for real work, while having the minimalist full screen experience for tablet PCs will be the primary way to go.

Having seen Windows 8 weeks and having played with it a lot, in the developer trainings I learned a lot of hidden gestures that a user won’t understand. Asking for Microsofts plan to make the user understand the new interface, I didn’t get much more than “Yes, we’ll have to do something about that”. UPDATE: Windows 8 is out now, and they didn’t.

Therefore I guess that many will be puzzled, and that many will stick to the edition of Windows they currently have. In fact, I even think that Windows 8 will be Metro’s Vista – an unfinished product that lays the groundwork for a really great Windows 9. Sadly, no Microsoft representative was going to talk to be about Windows 9.

UPDATE: Microsoft screwed it

1.) Discoverability: While working with Windows 8, I noticed that there’s no indication if there’re options and if  the charms work on this page of the app. In Microsoft-theory, every app should implement a way to share stuff, the search charm etc, but if this isn’t implemented or there is just nothing to share or search the charms don’t work. I would have expected that in the final implementation they’re greyed out, or hidden, if thats the case, but it isn’t.

In terms of discoverability, it would be better to have a visual indication that a search or a sharing charm is available, as when you want to share or search something, you don’t want to check if thats possible at the moment. Same problem with the lower options bar – you can never know if there are options unless you find out on every page of every app. This will lead to users testing out swipes and strokes all the time.

This makes Windows 8 a bad tablet OS.

2.) Touch on Desktop: Soon the Surface Pro will be the first real Windows 8 device where you might want to try to do some work on a touch device. Microsoft promised to make the old Windows Desktop more “touch-friendly”. This is necessary, because it’s where you’ll have to do work, because the Metro part of Windows 8 with it’s one-window open approach won’t work for most people. What happened? They increased the padding on the Ribbon interface. That’s it. Users who really try to do work in Office on a touch screen will often miss their touch targets.

3.) Two worlds: The distribution of settings you want to make in two different system settings are deeply frustrating, when you cannot find the setting you look for – because it’s in the other settings. When you wanted to drag a file in Mail, you can’t now. When you wanted to look at a Wikipedia page while writing something for reference, know you can’t. (Well, you can, but then you’ll try to have to ignore the Metro “Windows 8 – Sytle” part of Windows, which makes Windows 8 a worse operating system than Windows 7).

2. + 3. makes Windows 8 a bad Desktop OS.

Summary

TL;DR: Windows developers will finally have to learn something new, as the market will be big and I believe that the Windows AppStore will initiate a new gold rush. Windows 8 is technically a very nice concept, but the trainings were a bit shallow and Microsoft seems to be desperately hoping to find developers who will learn all the new stuff their brilliant engineers have been working on in the last 10 years, that nobody used because of Microsoft’s backwards compatibility (the old shit still runs), and devs who will look at MS’s style guides. Users will like Win8 for tablets, but not for PCs, where it will not be too successful before Windows 9.

The Command Line

So as I was confronted with “you should learn to use the command line” again, here’s my opinion on this invention. The command line is the prompt where you can type in commands and those get executed by the operating system. It what Linux people need to use a lot, Mac people had to resort to when nothing else worked and Windows people didn’t need to use ever – as the command line never was very powerful on Windows.

bokeh Command
In my opinion this is also what directly impacts the platforms distribution. Windows 85%+, Linux 1% and the rest is Mac. But why should the distribution of a platform be directly connected with the platforms use of the command line? The first barriers seem to be easy to overcome.

First, you need to be able to type and grasp some basic concepts, like the way the file system is laid out, which types of other stuff in the operating system is mapped into the file system, and basic usage principles. This alone is enough reason most users won’t bother with this ever. Typing is strictly not what most users want to do, they want to surf the web, listen to music, watch movies and when typing is only needed for messenging or typing in profile information in Facebook.

Well, normal users stink anyways, you say, and as a programmer you should be comfortable with typing on a keyboard too. So let’s look at the positive aspects of the command line: it’s all just typing, you don’t need to take away your hands from the keyboard to use a mouse and thereby it’s all faster anyways and also, there are so many commands with so many fine grained parameters that you can do basically anything using the shell.

This is true, and I don’t want to argue with anyone here. Surprise! I don’t think the command line is inherently bad. Instead, I think it’s an expert system. If you have invested years and years learning commands, parameters and when to use which parameter and which parameter won’t work with another one. The leaning curve is steep. You’ll need to learn the use of every single command that you’ll need for every single of the the most trvial of actions. You’ll need to know that there is this command, and how to use it, you’ll need to learn with parameters do what and you’ll ask yourself who decided on the defaults parameters or the absense of them and you’ll read man pages over man pages for that.

So if you did that, congratulations, you have aquired a valuable skill. At least as long as there’s no good GUI based solution for that. But there’re more problems with only working in text mode:

You type, the program executes and you get output. The sequential cycle of this dance has no possibility to give you additional information while you type or while the program executes. When it dumps a lot of text on the screen, you scan it for what you need to know, and then you type and wait again. For a lot of problems this won’t matter at all. Sometimes it’s even faster, for example when you grep for a certain file you’re searching for. But in the shell, there’s no mouseover, no intuitive visual design that could give you clues what to do and how to do it, no spelling correction when you mistyped a character in the middle of a three line-wrapping command. Type and execute.

Don’t misunderstand me here: I wish I would be a master of the command line. As the myth of doing command line magic is what let’s us admire those who can. The basic thought in every person who needs to use the command line is always “damn, this is hard” and “it’s take forever till I get all this” and “I guess I have to learn all this stuff”. This makes us admire those who CAN do all the stuff and know all the commands even more.

But times are a’ changing. The first really well usable wide-spread operating system that you could accomplish pretty much everything with was Windows XP in 2003. In all other systems you always had to be mastering the command line to be able to do what you really wanted to do. It’s 8 years since, and a lot has changed. GUI programmers got better at what they’re doing and they’re giving ordinary users the power to use the computer. Windows 7 is a very nice OS, and MacOS gets better with every release.

To me, command line commands are a basic foundation that you can base an operating system on. But commands are badly designed by default, and therefore you should never have users be dependent on them. Never ever. And as it’s not 2003 anymore, you cannot expect power users to know or even aspire to know the command line anymore.

I can do work in the command line when I need to, but I’m always very slow at that and I’d always rather have a GUI based tool at hand, that shows me instantly what to do and how to do it instead of Googling and guessing – and for my part if something cannot be done conveniently without the command line in an OS, I think the OS is badly designed and needs work.

I’d rather stay clicking.

Creative Commons License photo credit: Robert S. Donovan

From PC to Mac Book Air 11”

Let’s first say: I was a PC user all my life and can easily solve all approaching problems on a PC with ease. Why did I switch to a MacBook Air 11”? Basically, I’ve always wanted to have a lightweight computer to carry around throughout the day. I’ve played with the idea of an iPad, but I don’t like that I can’t do programming or more complex tasks on that thing. I also thought about buying a netbook, but those most of the time don’t have the power to play HD-videos to my TV or play the occasional game once or twice a year – and I really never again wanted to buy a device with a spinning hard drive.

MacBook Air
Also, I wanted to program for iOS, and needed a Mac for that. The “cheaper” option of buying an older MacBook or Mac Mini and attaching that to my external monitor and buying a Netbook and hoping that the power will be enough just didn’t make the cut. I like it simple, and I like to keep as few things around me as possible.

Now for my feeling of this machine (Pro):

  • I can use this little thing as my main machine now, and thats purely superb.
  • The high build quality is amazing.
  • The screen is small but very high resolution – wouldn’t recommend it to anyone with bad eyes, but for me it’s perfect.
  • Having an SSD easily makes this thing a very responsive device. I never wait for my machine, my machine always waits for my input.
  • The touchpad is so amazing, that I cannot describe it. Let’s just say if you haven’t used a modern multitouch trackpad on a Mac so far, go to a Mac Store and just try it. I cannot stress enough that this trackpad made me dismiss the idea of even using a mouse on this machine, because the multitouch gestures just make you execute everything better than a mouse could, and you don’t even need to take a hand away from the keyboard.
  • Some of the interface choices in MacOSX just blow my mind – others like the Windows 7 snap to corners stuff that I really like can be easily installed via external programs.

Contra:

  • I still didn’t grow accustomed to the Mac – keyboard layout. Additionally, I really don’t like the “fn” function key in the bottom left corner of the keyboard. If there were some tool out there that would let me switch this function key with the CTRL key, I would be happy.
  • High price. An older but equally powered MacBook would have done the trick for me too.
  • The basic layout features 2GB RAM and 64GB disk space. I really wanted 4GB RAM as I don’t like swapping to disk when programming or using the iPhone simulator, and the only device they had with 4GB also came with the 128 GB hard disk. Didn’t think I really need the space as I was going to keep private stuff on this machine to a minimum and use Dropbox for the rest, but even after just installing all the software I wanted I already went over 64GB. That means Iwouldn’t advise anyone to go without the 128GB hard disk, and also not without the 4GB RAM if this should be your main machine or if you plan on doing more than just basic tasks with this thing (read: Photoshop and above). The 1.6GHz processor instead of the 1.4GHz is wasted money in my opinion.

UPDATE: after about three month:

  • Overall, I’m happier than ever. I cannot believe that there’re people in the world who work with a computer most of their lifetime and don’t even try another alternative. The carpenter also won’t use the cheapest biggest hammer he can find, he’ll use the best tool for the job (that might also be a bit more expensive), and so should you.
  • There’re apps for everything I did with Windows. This means, there’re no tasks I need to go back to windows to, as for everything there’s a solution on the Mac (and most of the time a better one).
  • I totally grew accustomed to the keyboards scheme. The main thing you need to understand is that you’ll only need the CMD key most of the time in all apps you use. Therefore, both are put at prominent places that are easy to find even if you don’t look at the keyboard: next to the giant space bar. The idea to put it in the middle needs you to flip your brain when you come from Windows: don’t use the small pinky finger to hopefully find the CMD key somewhere in the corner of your keyboard, but instead use the left or right THUMB to just always correctly hit the CMD key besides the spacebar. After some weeks, you won’t want to get back to the Windows way (and yes, you’ll be able to copy-paste with no problems).
  • The touchpad is so amazing (and with BetterTouchTool even configurable as hell) that I won’t ever consider using a mouse for the MBA.
  • Talking about Better Touch Tool, that thing also gives you the Windows-spnapping that you love about Windows 7.
  • I’m happy I took the 128 GB of harddisk. 64 are just not enough to get all your stuff on there.

Programs you should have a look at

I already posted about PhraseExpress that I like a lot, but here are some more recommendations that I use on my Windows system:

Cobian Backup: Not the most beautiful user interface, but definitely the best free backup tool that I found and use on a daily basis. Has ALL the features.

JetDrive & PC Fresh: Two of our own programs that I use on my PC. JetDrive is the best defragmentation software on the market (in terms of PC speedup) and PC Fresh lets you configure all the low level stuff, that windows tries to hide from you. Both boost performance.

YouTube Song Downloader: Another one of our tools. Want to have music for free? We have the Windows tool. Getting YouTube avi videos or MP3 is no problem with this.

Skype: Why doesn’t everyone use Skype? It’s instant messaging with group conversations and included high quality phone service. It can send files. Perfect. (If the ads were removed.) You could even do video conferencing, but who would want that?

HeidiSQL: A free MySQL database client thats VERY nice and easy to use. If you find yourself or anyone else using phpmyadmin, tell that person that HeidiSQL is much better. Even if you need to tell it yourself.

TeamViewer: Help your father fix a Windows problem? Help a friend to setup his e-mail-client? Use this and share his screen and use your mouse and keyboard on his machine over the internet. Saves a lot of travelling time.

FileZilla: The best FTP client out there.

VLC: If you want to watch a video, just download this and watch it. Superb video player.

I’ll update this list if I find something else that I’d use every day.

Podcasts I listen to – Nowadays

I got a new recommendation for you people. As I already showed you what podcasts I like to listen to here, I’ll update that, as this has changed. In fact, I stopped listening to these after I found Dan Benjamin and the 5by5.tv network with the following (ultimate) podcasts:

  • The Dev Show: About Java, Javascript, Ruby and Python mainly, webprogramming and other programming stuff in general.
  • The Talk Show: Apple & Geek show with John Gruber. Better than having the feed of his blog spamming your feedreader. ;-)
  • The Pipeline & The Conversation & The Big Web Show: Basically all shows with interviews with people from the web industry, programmers, designers, bookwriters, and all kinds of interesting people.

I can definitely recommend all of the above shows and also did so on iTunes (where you can also get them). All those shows feature either an audio only (which I prefer for my way to work) or a video feed if you like that better. On the 5by5 website you can also find podcasts about Ruby, Podcasting, Photopraphy, and some other themes you might like.