For those claiming that iOS is a phone OS and not a real OS...
If you spend a little time, and do some research, you will find:
Quote:
The kernel in iOS is based on a variant of the same basic Mach kernel that is found in Mac OS X. On top of this kernel are the layers of services that are used to implement applications on the platform. Figure 1-1 shows a high-level overview of these layers.
Figure 1-1 iOS technology layers
iOS Technology LayersiOs Media Layer Details Sorry no picture
andQuote:
Media Layer
The graphics and multimedia capabilities of Mac OS X set it apart from other operating systems. The core graphics technology enables advanced compositing operations with support for hardware-based rendering on supported graphics hardware. On top of this core technology are an array of other technologies that make it possible to draw 2D, 3D, and video-based content. The system also provides advanced audio systems for the generation, playback, and manipulation of multichannel audio.
Mac OS X Technology Overview
The images don't offer a direct comparison, because they were written by different people at different points in time.
But you will find that:
1) iOS and Mac OS X apps are structured/implemented much in the same way -- with allowances for hardware, the UI Layer and the desired UX
2) any Mac OS X capabilities that make sense on the iDevices have been migrated to iOS.
3) there are many OS X capabilities that have been migrated that are not
currently used on iDevices.
4) some Mac OS X capabilities have been reimplemented the "right way" for iOS then migrated back into the Mac OS X mothership
5) some capabilities were implemented first in iOS, then migrated to Mac OS X
What you have is a common structure and common implementation of capabilities on the two OS variants: Mac OS X and iOS.
These two OS variants are continuing to evolve and continuing to become more alike.
Then, there is this:
Quote:
The Low Level Virtual Machine (LLVM) is a compiler infrastructure, written in C++, which is designed for compile-time, link-time, run-time, and "idle-time" optimization of programs written in arbitrary programming languages. Originally implemented for C/C++, the language-agnostic design (and the success) of LLVM has since spawned a wide variety of front ends, including Objective-C, Fortran, Ada, Haskell, Java bytecode, Python, Ruby, ActionScript, GLSL, Clang, and others.
Low Level Virtual MachineandQuote:
Apple LLVM Compiler 2.0
Apple LLVM is the next-generation compiler technology powering Xcode 4. Based on the vibrant open source LLVM.org project led by Apple engineers, the Apple LLVM compiler is modern thinking, tuned for iPhone, iPad, and the multi-core Mac.
Apple LLVM Compiler 2.0
With an ever diminishing number of exceptions, iOS apps already run on Mac OS X -- using the iPhone/iPad simulator. Currently, this requires a simple compile targeting: an iDevice or the Simulator.
With the trending towards LLVM, I suspect that in the near future -- it won't require a compile for any specific Apple OS or device.
Back to the current state of the art.
Here's how you migrate Mac OS X desktop apps to iOS iDevice apps;
Quote:
Migrating from Cocoa
If you are a Cocoa developer, many of the frameworks available in iOS should already seem familiar to you. The basic technology stack in iOS is identical in many respects to the one in Mac OS X. Despite the similarities, however, the frameworks in iOS are not exactly the same as their Mac OS X counterparts. This chapter describes the differences you may encounter as you create iOS applications and explains how you can adjust to some of the more significant differences.
Migrating from Cocoa
Bringing it all together -- the final reel!
Many think that the post-pc era involves migrating a lot of activities and capabilities from the desktop to mobile smart phones, tablets... and yet to be announced classes of devices.
Apple is the only company that has an OS that runs on desktop-class machines and mobile smart-phone-class/tablet-class machines.
Google/Rim/HP/Nokia et al have no viable desktop OS or repository of desktop apps to migrate from (or to)
As such, these companies OSes:
Android, QNX, WebOS, Nokia/Whatever are islands unto themselves.
Where are the desktop OS APIs and Frameworks and desktop Word-Processing, Spread-Sheet, or whatever apps that can be migrated to an Android, QNX, WebOS tablet or smart phone???
They simply don't exist!Do you believe that these companies are going to hire hundreds of engineers, spend the thousands of man-hours and millions of dollars to flesh out their limited smart phone OSes to where they are capable of running desktop-class apps on a tablet?
Even if they do that where will they get the desktop apps?
MicroSoft has a desktop OS and a repository of desktop apps. However they do not have an equivalent OS running on mobile smart-phone-class/tablet-class machines.
While Windows phone 7
sounds like Windows 7, the similarity ends there.
MS claims they are going to resolve this, sometime in late 2012 with Windows 8.
But, AFAICT, there will be 2
different flavors of Windows 8 -- one for the desktop and one for mobile smart-phone-class/tablet-class machines.
The desktop Windows 8 will be able to run both desktop-class apps and mobile smart-phone-class/tablet-class apps.
The converse is not true. I doubt that you will see Word, Excel or PowerPoint running on a Windows 8 tablet -- rather you will see a Windows 8 tablet access these apps on a cloud server.
By contrast, some of Apple's desktop apps have been modified slightly and now run
entirely on the iPhone and iPad (with some minor differences). These apps include: Pages, Numbers, Keynote, iMovie...