It turns out that this month the Microsoft C++ compiler will turn 20 and it is probably my second favorite C++ compiler after G++. Microsoft are aiming to ship C++ 11 Beta that will, for the first time, include ARM support, Windows 8 support and better parralel computing support. At the end of the day it is still good old C++ it just happens to support a lot of extra features, but yet I still prefer G++ because most of my C++ work is on Linux and G++ produces much smaller executables on Linux compared to Windows.
Obviously some compilers automatically optimize code to a certain extent so that it is as efficient in both speed and memory usage as possible and this is generally the deciding factor in how big the produced executable is. Despite this, I reckon that how good a C++ variant is depends on how good its libraries are.
Microsoft C++ with the Microsoft Foundation Classes basically lets you do pretty much anything you could possibly want on Windows however the open source community has had to build up something similar for Linux. The GTK framework is basically fantastic and I personally prefer it to the Windows stuff because you don’t have to write as much code to build complex UIs.
The cool thing about C/C++ compilers and variants is that they are pretty much all standards compliant and have the same basic libraries. Because the languages were designed to work across multiple platforms tools such as SQLite just work without having to do complex configuration of the compiler. Ultimately at the end of the day there is no ‘best’ C++ variant because they are all pretty good, I just have a personal preference towards G++ and GTK.
I guess that this post is going to be a mixture of the second half of Day 1 and the first half of Day 2 because I wan’t prepared to stay up all night (in the UK) to watch all the keynotes live. It seems that most of the main announcements have been at the beginning of the work so hopefully my feeds won’t be filling up as much from now on. Hopefully.
Microsoft had their massive conference yesterday evening and from what I can gather they didn’t really have anything new. They had a video of an autotuned Bill Gates rapping (I think I’m glad I missed that…), did some Windows 8 demos and talked about the wonderful apps it would come with and demoed some of the new Windows Phones (one of my friends has now told me I can drop the 7). From what I can gather they’ve also launched an updated and slightly modified version of Kinect for PCs that will work better at short distances, thus making it possible to interact with a PC without standing up.
The Lumia 900 doesn’t look too bad either – just a slightly updated version of the the 800 and available in North America. It seems that Nokia will probably (with Microsoft’s help) be making some of the better Windows Phones over the next few years unless Android comes to rule over everything. Samsung have also demonstrated a ‘Smart TV’ runs a revised version of Google TV so that it can basically work like an Android phone, which is a bit weird.
Computers, surprisingly, have been pretty big this year with loads of Ultrabooks (HP has showed off some pretty cool ones that basically look like modified MacBook Pros) and there have even been a few demoed with touch screens and Windows 8. Vizio’s new tablet and PCs continue to look more awesome than everything else as well.
I’ve been pretty neutral on Microsoft recently. I don’t like everything that they are doing with Windows 8 but some stuff they’ve done recently has actually been quite cool. Windows 7 is easily the coolest version of Windows that they’ve released and I like it a lot. Everything just works and it is quite fast. There is no doubt that it is the least criticized version of Windows (Vista wins the title of most criticized version, big time). However recently Windows Phone 7 has actually been popular.
I don’t mind the look of WP7 (I prefer iOS and Android but it isn’t bad) and I think it probably does Metro a little bit better than Windows 8 although I’ve only tried it with mouse/keyboard – touch probably adds quite a bit. With this WP7 has actually been receiving some surprising success and many critics do like it. I must admit that I don’t like it as much because of the poor HTML5 support in Internet Explorer 9 on the device and because I prefer the Android development stuff but it isn’t too bad. I have read stuff that suggests the reason for people like me going towards Android is because students prefer open-source because its cheap.
I think I like what Microsoft has done with Windows 7 and Windows Phone 7. They’ve made a couple of good systems and they’ve made them look nice. I would have no complaints if you asked me to continue using Windows 7 for a few more years but I strongly suspect that I will probably switch to Windows 8 later this year. I’ve got many concerns about Windows 8 but I hope that if it manages to stick to the principles of Windows 7 it should be OK.
The Consumer Electronics Show in Las Vegas is going to start this week and the technology world is basically going to go and live there for the next couple of weeks. I get the feeling that this year probably won’t be as big as previous years and that is most because the bigger brands are gradually pulling out. Microsoft have already announced that this is going to be their last year at CES.
Apple are never present at CES however there is a massive iLounge for other companies to demo Apple related products in. There should be an update to Gorilla Glass (the glass used in the screens of most smart phones and tablets) to make it thinner and stronger. It is rumored that this will lead to significantly thinner tablets.
The main phone rumor, however, isn’t to do with Android or iOS. Its Windows Phone 7 with Nokia. Since Microsoft and Nokia announced their partnership Nokia have launched one Windows Phone 7 device in Europe however the successor to the Lumia 800, the Lumia 900, is expected to be released around the world soon with the official announcement at CES.
Going back to Microsoft, I doubt that there is going to be anything major. We might get the beta of Windows 8 (which would make sense because submissions to the Windows Store are beginning at the end of January) but I don’t think that anything spectacular will be revealed.
Loads of people have been talking on the web about new technology, gadgets and Apple products due for release next year however nobody has really considered what software will happen next year and so far it looks like one thing will be ruling above all others: Windows 8.
Aside from Windows 8 Microsoft will no doubt release the developer tools for it, Visual Studio 11, which will allow developers to create cool (?) Metro applications that do stuff that Windows couldn’t do before although it is most important that it will be on tablets. As far as we are aware nothing else is planned by Microsoft (I don’t expect to see a new version of Office before 2013) however it is reasonable to assume that they well be developing many applications that use Kinect as a way of controlling the UI.
Google will probably begin developing new versions of Android and I should imagine that they will develop some new product that takes advantage of Chrome 20 or something ridiculous like that. I don’t anticipate Google developing any more desktop software because they are gradually moving towards web apps so it is possible that applications like Google Earth and Google Sketchup become full Chrome Web Apps.
Apple don’t seem to have anything planned and there certainly won’t be another version of OS X next year however they may be an update either to iOS 5.5 or version 6 depending on what Apple have planned for the ultimate merger of the two OSes. I should imagine iTunes will move to version 12 and Safari to version 6, however.
Sadly next year isn’t going to be a big year for many software companies, and it will mostly be Microsoft taking the stage.
Apparently today’s big Apple news is that the Mac App Store has hit 100 million downloads although I don’t really know if I should be impressed by this statistic. It isn’t anywhere near as many as the incredible 10 billion that Google recently announced on the Android Market place, but is 100 million really that many downloads? Considering that there are a few thousand apps it brings the average per app down to around 10,000 – 50,000 per app. This statistic is a little more impressive considering the average price for an app is around $30.
100 million downloads isn’t actually that many. It is estimated that there are around 160,000,000 Chrome users globally which seems to make Apple’s statistic seem a little small but 100 million certainly isn’t bad. Microsoft now have a benchmark for 340 days with the launch of the Windows Store expected next February in the beta of Windows 8. Microsoft do have a major disadvantage that their store will only be available on Windows 8 and not Windows 7 which means that it will grow a lot more slowly. Despite this I would expect that there will be more free apps (mostly rubbish casual games) on the Windows Store so they will probably experience a greater number of downloads although not sales.
Apple has proved something with this though: app stores do work on desktop and they are potentially a great way for the platform provider (Microsoft or Apple) to make a load of money and for developers to begin to earn more money. God knows if it’ll work though.
Kinect is cool to a certain extent. It may be an XBOX gadget but the idea behind it is pretty much there – you dance around and the sensor feeds your movements back to the game. Microsoft essentially aim to produce the most diverse gaming experience possible and it has been very popular with social/casual gamers however it has not been as popular with the more hard core members of the community. Ideally it should have arrived a few years previously before the Wii was launched, and if that had happened Microsoft would easily have an XBOX in 1/3 of homes.
Kinect has been around since last year and so rumors are beginning to emerge about Kinect 2. The new Kinect would be released early next year and would have a dramatically improved sensor – the visible light camera on the current model is 640 by 480 and the infra-red sensor is 320-240. Clearly this will need to be improved before the release of the next model. If it had a higher resolution (and faster chip?) it may be able to pick up facial movements better, potentially allowing for lip reading.
The other thing to talk about with Kinect is a more official event. Microsoft have announced a scheme called ‘The Kinect Accelerator’. They plan to sponsor ten start-ups with $20,000 and office space to come up with a viable business use of Kinect, including everything from XBOX games to public galleries. The idea is interesting and no doubt it will be successful, but I would doubt that Microsoft will get all their money back.
I know that I have posted about this before, however I thought that it would be worth considering again from the point of view of Skype, or Microsoft Skype or Skype, Microsoft or whatever it is actually called now. Clearly it is going to be a big thing for Microsoft because it should hopefully help to embed Microsoft better into social platforms – Skype has a popular Facebook video chat plugin.
Skype is pretty powerful. I use it on my computer for the most basic purpose: text chat. Despite not using it for much I am aware of what it can do and how powerful it is when you use all of its features especially when you consider it is available for Windows, Mac (which wasn’t mentioned – but shown – in the video as if it is a banned word at Microsoft), iOS, Android and TVs. You can use Skype everywhere but it is how Microsoft maintains this that is the problem.
It wouldn’t be beneficial for Microsoft to make Skype Windows/Windows Phone 7 only because they would probably lose a large number of customers, especially iPod Touch users that use Skype to make free calls (though they have Facetime now as well). The video states, or at least suggests, that Microsoft will continue to develop Skype for all the different platforms though I wouldn’t (sadly) be surprised if it gradually merged with Windows Messenger.
I should imagine that there will be an update at some point this holiday season (possibly linking with Kinect as well) and next year with a Metro version for Windows 8.
One of the big slogans for the App Store is ‘There’s an app for that’ because there are literally apps for almost everything. It goes for Android as well – there are over half a million apps available on the Android Marketplace alone. If you search for a program to do something it will almost certainly be out there on the internet somewhere. But why is there an app for that? It’s because us, the developers, coded one for you.
Software is at the heart of the computer industry. Apple and Microsoft rely on developers to code applications for their platforms so that they sell more products for people to run them on. Computer manufacturers rely on software to run the computers they make so they keep selling. The internet needs software so that it can keep going.
The programs that we use everyday have been written by millions of people around the world. Right now I am running Firefox, Thunderbird, Chrome, GIMP and iTunes. Aside from Windows and iTunes everything I am running right now is open-source – you can download all the code right now from the developers’ websites. Which is cool and some people think open-source and I’m certainly not complaining because it’ll mean more free software for us to use.
There are millions of developers around – but I am still convinced that only about 1% of people can code. And this is a problem because not enough people are taking computer science because they haven’t been inspired by computers; for most people they are just an easy way of socializing which is frankly a bit boring*. It is a requirement in a lot of companies that you have a computer science degree to be allowed to code software, which is a pain when fewer people are taking it. Less people taking computer science is going to be an issue in the future because it means less greater software.
The thing that amazes me about the 99% that don’t code is how impressed they can be by what programmers do. In the past I’ve written unbelievably simple applications like Christmas countdowns (which is basic mathematics with modulus) and little apps to fix things on people’s systems. One of my friends has recently coded a website for an organization we are in and we have found that many people are impressed by what is actually relatively simple (but an enormous amount of) ASP.Net. Sometimes even showing people a button in Word that solves all their issues amazes them.
As a programmer I am not really sure if I want more programmers in the world. Its definitely nice to be able to discuss programming with people but it is always nice to be able to amaze people by doing incredible things. All programmers will have experience this at some point in their lives – Adobe ran a story about an eight year 0ld being able to make a simple HTML5 app for a company for iPad using Dreamweaver. Everyone was amazed at the time, and it certainly was impressive for someone so young – though I am sure I definitely had an understand of HTML at that age.
Programming is, ultimately, fun. Different people enjoy it in different ways but it is always nice when we receive recognition for our work.
*I don’t find socializing IRL boring, I just think there are more interesting things on the internet (such as my blog) than Facebook.
Yesterday was the tenth birthday of the iPod. It is an anniversary of something that has changed the world completely, so I thought that I would put together a calendar:
- January 24th – Mac
- February 4th – Facebook (originally The Facebook)
- February 14th – YouTube (domain registered)
- March – Google begins
- March 24th – Mac OSX (desktop)
- April 1st – Apple
- April 3rd – iPad
- April 4th – Microsoft
- June 29th – iPhone
- July 15th – Twitter
- August 6th – World Wide Web
- August 25th – Linux (announced by Linus Torvlands)
- October 23rd – iPod
- October 25th – Microsoft Word
- November 5th – Android (public unveiling under Google and the Open Handset Alliance)
- November 9th – Firefox
- November 20th – Windows (v1.0)
Note all dates are based on initial retail availability and not the announcement.