Welcome to the MacNN Forums.

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

You are here: MacNN Forums > Community > MacNN Lounge > The future of Apple operating systems and platforms

The future of Apple operating systems and platforms
Thread Tools
OreoCookie
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Sep 13, 2015, 12:12 AM
 
In 2001 Apple introduced OS X which added much needed technologies to their aging OS. It is what has kept me in the Apple camp. While OS X (with its children and grandchildren OSes iOS, watchOS and tvOS) still forms the basis of Apple's OS strategy, given its age of 30 years (depending on how you count) I was thinking what would replace Apple's current OSes?

Depending on how you count, Apple has somewhere between 2-4 OSes (not counting the OSes on non-touch iPods and other accessories), although I'd say it's more accurate that there are 2 OSes, OS X and iOS, and 5 platforms, the Mac, the iPhone, the iPad, the Watch and the TV. While iOS was born of OS X, all other OSes are in fact children of iOS. Despite their differences, there are actually a lot of commonalities in the sense that iOS “just” uses a specially modified version of OS X's kernel (and vice versa). So for the sake of discussion, we could say that the bases for all these disparate platforms is a common kernel and different APIs.

When you look at the classic MacOS to MacOS X transition, there were a number of technological factors that forced this transition: OS X had features that were necessary, vital to the survival of the platform. A few of these features include pre-emptive multitasking, full memory protection and a modern networking stack. And, of course, a more modern programming language with a more modern set of APIs. (Although people should keep in mind that Cocoa was not as feature complete and it took a while until Apple deprecated Carbon in favor of Cocoa.)

Looking ahead, the best way to answer what Apple's OSes will look like in ~10 years, it is best to identify areas in which Apple's current OSes are lacking. Of course, this is just my incomplete list, and I hope that some of you add to it.


Support multiple platforms with one OS

According to Apple, tvOS is for the most part iOS. If you want to support more than 2 platforms, even if you are as big as Apple, you cannot support 5 completely disparate platforms. Only parts that have to be different, that have to be platform-specific, should be. At certain points it's mostly a marketing decision whether you claim the new Apple TV runs iOS or a separate tvOS. Microsoft went down another route, they chose to emphasize that one OS runs on multiple devices, device types (and thus, platforms). Practically, I don't see how the basis of OS X, iOS and their children are different from, say, Linux which runs on smartphones as well as supercomputer clusters.


More unified Swift-native APIs

I think the transition to Swift is perfectly timed: right now you have disparate APIs for OS X, iOS (and tvOS which is “95 % identical” according to Apple) and watchOS. While in some instances there are good reasons to have differences in the APIs (touch-based vs. cursor-based interaction), in other cases it's just a matter that these APIs grew at different time periods. (What does NS stand for again?) And it seems clear that Apple's strategy is to add more of these platforms over time (e. g. the car seems to be next).

With Swift Apple will have to introduce Swift-native APIs eventually, and here they have the chance of engineering these APIs with the assumption in mind that they will run on different platforms. This should make it easier to port an app from the iPhone to the Apple Car, for instance. And programmers can more easily move between platforms and re-use their expertise. I reckon the first few APIs may appear within the next 2, 3 years, after Swift as a language has matured a little.

Also, Apple will eventually have to take its claim seriously that Swift is “designed to scale from ‘hello, world’ to an entire operating system”. I am not sure whether and how an object-oriented programming language can make a difference on the level of the kernel, but we should take Apple at its word here.


From the ubiquity of networking to the ubiquity of the cloud

Unlike Mac OS X as a *nix-type operating system, classic MacOS was not designed as a networked OS. However, even OS X was not built with the cloud in mind where “the truth is in the cloud” as opposed to on a single server. Services like Dropbox seem to be bolted onto the old paradigm, and I think they are just interim solutions. User accounts are stored locally (or, if you are part of a larger network, on a local server) as opposed to globally and across different devices. Our iTunes account is a first foray into this new world, but I don't think we are there yet.


A new distributed filesystem and/or volume manager

The next big thing on my list is a new, distributed file system. All of these syncing and snapshotting solutions (such as TimeMachine, iCloud, Dropbox or Synology's Cloud Station) are tacked on a filesystem that is old, creaky and does not check the consistency of its data. We all have multiple machines, and we would like to be able to access all of our data on all of them (unless we decide otherwise). Basically, you would like a file system that is based on the assumption that you sync your data in multiple ways to machines of different types. And, to make it more challenging for computer scientists, you would like that versions of this file system run on iOS devices (with memory and TDP constraints), Macs, iCloud servers (with infinite resources), etc. By the way, such a filesystem already exists: DragonflyBSD's HAMMER and HAMMER2 are implementations of such a concept. I doubt it is suitable for deployment at Apple, but at least it is proof that such a concept can be implemented.

I would like to see a number of features:


Built-in data integrity

I love ZFS, or rather, the idea of ZFS: you use checksums to be able to detect whether your data has been changed inadvertently by cosmic rays or some bug. This has to be the starting point. Given the amount of storage, it is very likely that you will have random bit flips in RAM and your SSD, so ECC should become standard. Since you will have many copies of your data, being sure that the data all agrees with one another has to be a central tenet of the new filesystem.


Frequent and live updates

Software and the OS get updated more quickly. Installing updates even now is a hassle, because the OS cannot update apps that are running or even updated the kernel while it is running. A more modern filesystem (in conjunction with a more capable kernel) would allow live updates. (Linux already supports this.)


Automated file management

Apart from the obvious connection to a more modern filesystem, half of a more automated file management is a user-facing feature. If you look towards iOS in particular, it is clear that Apple hasn't cracked this problem yet (nor anyone else for that matter). Most people are horrible at naming files, and even to me who tries to put a lot of effort into it, it is a chore to rename the new pdf files I have downloaded so that they are easily searchable. (I'm a scientist by trade, so I download a lot of papers which have very cryptic names.) I have no easy answer to this problem other than the obvious commend that it is a problem.


Continuous integration: the path to the new OS

Unlike with MacOS 8 and MacOS 9, OS X and iOS do not have some glaring deficiencies that require a replacement of most of the underpinnings. Most of these things can be taken care of by slowly changing the existing system, and replacing parts that need replacement. At least I don't see any fundamental obstacles to implementing all of the above iteratively in Apple's OSes. This idea of iterative and evolutionary updates is also part and parcel of agile development which forms the basis of modern software development.


How does the competition stack up

Part of me does not feel qualified to discuss all other platforms in detail, but I think my considerations would lack something important if I did not at least mention them.


Microsoft Windows and Azure

I still remember the legendary All Things D interview of Steve Jobs and Bill Gates, and how much agreement was between the two: All things will be computers in different form factors, so what? And that the “different screen sizes” as Gates put it require different input paradigms and fulfill the expectation that all of your screens “work together”. Microsoft is executing on that strategy by emphasizing the commonalities: all devices will run a version of Windows (one OS on different platforms). They chose to develop the surface as a PC that can also replace a tablet at times.

Apple on the other hand emphasizes the differences in the platforms (still one OS on different platforms), and they developed the iPad Pro from their new “default OS” (that which brings forth the children) by adding features over time, until it became a tablet that can replace a PC at times. Apple and Microsoft were aiming at the same point, but coming from different directions.

Also Microsoft has a new, well-respected programming language (C#). And also Microsoft acknowledges the importance of the cloud with its Azure strategy. So I feel Microsoft is really “getting it”. I like that their strategy is complementary to all other players (a bona fide cross platform approach) that could become a significant advantage for them. Not only are quite a few of their APIs available across different platforms running Windows, but across OSes.

However, Microsoft does not seem to push hard enough along many of the other vectors, e. g. to establish new user interface paradigms that help with automated file management. We will have to see.


Linux, Android in particular

I have much less of a clue of what is going on in the Linux community. A lot of interesting technologies are available today (e. g. live kernel updates) while other factors make it hard to speak of the Linux anyway as it is very fragmented. There are a lot of developments coming from mobile while others are motivated by the server side (Linux forms the basis of most cloud implementations). However, since my post mostly concerns user-facing operating systems, that means I'm speaking of flavors of Android (such as AOSP and derivatives that are based on AOSP). As far as I can tell, apart from smartphones, Android has much less of an impact. The fragmentation of different versions makes it hard to make use of advances in new versions of Android. I think that over the long run, this will lead to stagnation in the way Android is used.

My sister wanted to upgrade her smartphone (currently an iPhone 5), and she was asking about alternatives to iOS. It was hard to explain to her that unlike Windows where as a matter of course you can transfer all of your apps when “switching” from a Lenovo to a Dell laptop, that the same isn't possible on Android in most cases.

I have the impression that many people use their Android phones like a gadget rather than a computer, meaning for the life time of the machine, it'll stay as it is for the most part. Apart from the obvious security problems, this means developers cannot really make use of new features.
( Last edited by OreoCookie; Sep 14, 2015 at 07:34 PM. Reason: Added paragraph on ubiquity of the cloud.)
I don't suffer from insanity, I enjoy every minute of it.
     
P
Moderator
Join Date: Apr 2000
Location: Gothenburg, Sweden
Status: Offline
Reply With Quote
Sep 14, 2015, 05:17 AM
 
Wow. Lots of topics in one here. Let me take a few pieces in here to comment on:

When Apple replaced the Classic OS, it was because the specification itself was such that protected memory and preemptive multitasking was impossible. The programs assumed that they would run in administrator mode on the CPU and that their RAM allocation would be in physical addresses that wouldn't change. This was fundamentally incompatible with the way a modern OS works, and had to change. When changing that, the old apps had to run in an emulation layer. At that point, might as well rebuild from scratch. There was also the fact that there were real OSes on the market that had these features, OSes that were well established and showed how it might be done.

Networking was a completely different thing. The first Mac had no networking at all, but it was eventually added, and by 7.5.3, the networking subsystem was quite capable. There was no specification that prevented that from happening, just lots of hard work.

Right now, I don't think OS X is missing any "preemptive multitasking" level features, but it might be missing some "networking" features - and it is missing one, a decently modern file system. These could be added, with less work than replacing the entire OS, so I think that that will happen rather than another "reboot".

Swift is interesting. It is an attempt - of which there have been many recently - to make a language that is as fast as C++ and as safe as a scripting language. It is well on its way there. I think that the combination of new language and a compiler that is making large steps will make programming faster and easier, because you don't have to worry about being safe. It didn't make news, but Clang (the C compiler in LLVM, the compiler used by Apple and others) recently merged SafeStack, a feature that makes it impossible to do stack buffer overflows. This is an entire class of vulnerabilities that has now been closed for anyone using the latest version of the compiler. Even better - when compiling for iOS 9, by default you make bitcode. You don't even need to recompile with the latest compiler to get protections like this - Apple will do that for you.

This about making programming easier is also the best reason for Apple to unify the iOS and Mac OS X APIs further. They will have to do that carefully, however - we don't want the UI layer to be the same, when the metaphors for working with it are so different. There are many old OS X APIs that can be updated, though.

The big thing that Apple should be working on is a file system. The problem with their current methodology is that big things like that are hard to make happen. We don't know exactly what went wrong with ZFS, but it was some sort of legal problem, and I think that it is clear that there is no file system on the market that Apple can just pick up and use (see e.g. the Debug podcast, I think it was the Ryan Nielsen interview). Making this even harder is that said filesystem also has to work on the iPhone, and that Apple does not have ECC memory in its devices. I think that Apple right now is working on its volume manager, Core Storage, and hoping that flash storage will be less afflicted by soft flips than the old spinning rust while they're waiting for something to come along. They don't have too long to wait, though: With 4K blocks, HFS+ runs out of allocation blocks when the partition goes over 16 TB. They can delay the inevitable by using bigger blocks, but at some point, they need a new file system. I hope that they're working on one.
The new Mac Pro has up to 30 MB of cache inside the processor itself. That's more than the HD in my first Mac. Somehow I'm still running out of space.
     
Hawkeye_a
Addicted to MacNN
Join Date: Apr 2000
Status: Offline
Reply With Quote
Sep 14, 2015, 10:24 AM
 
Great idea for a thread.

After the keynote last week, i was really disappointed(again); it wasn't the products, but rather the direction the company has been going in since Jobs passed away (worthy of another thread probably). The product lines and messaging from the company have become too complicated. The attention-to-detail and tlc which i was used to(specifically in the software, whether Classic MacOS or OSX) has been lacking to say the least.

Oreo. I think you need to consider the business case for the OSs. iOS eclipsed OSX a few years ago. The incentive to allocate resources to the desktop OS (and hardware) *could* be waning. Apple makes more money, has more customers, and probably gets more industry support for the mobile platform. Looking at Apple's strategy through the 'business lens' might help get a more accurate picture of where Apple might be going IMHO.

MacOSX:
-I miss the lean mean Snow Leopard. Functional, optimized, efficient.
-The OS has become 'heavy' while delivering very marginal gains from the user perspective IMHO.
-The shift to incorporate touch/mobile elements in the OS are annoying.

iOS:
-Stale. I dont want new for the sake of new. but they really need to shake things up (think Classic MacOS to OSX). but it worries me what the changes might be given their direction for the past few years.
-Technically,; the 'problems' of iOS (multi tasking, virtual memory, etc) were solved decades ago. (Why the heck does Safari have to reload pages when i switch to a tab, in this day and age?)

WatchOS & tvOS:
Total convoluted mess from a UI perspective. It'd not ready and shouldnt have been put onto store shelves.

Aesthetically speaking, i like the minimalism in El-Capitain, and i hope the OS feels just as nimble to use. I loathe sluggish OSs and memory hogs in this day and age.
     
P
Moderator
Join Date: Apr 2000
Location: Gothenburg, Sweden
Status: Offline
Reply With Quote
Sep 14, 2015, 12:43 PM
 
Originally Posted by Hawkeye_a View Post
MacOSX:
-I miss the lean mean Snow Leopard. Functional, optimized, efficient.
-The OS has become 'heavy' while delivering very marginal gains from the user perspective IMHO.
-The shift to incorporate touch/mobile elements in the OS are annoying.
In my opinion, Mavericks is great, and actually runs better in low memory conditions than SL (memory compression). Apple has also spent a lot of time making the Mac use less power, to improve battery life on the same hardware - that is a real low-level efficiency improvement that I can appreciate.

Yosemite will have the dubious distinction of being the only OS update I have skipped since 7.6.

Originally Posted by Hawkeye_a View Post
iOS:
-Stale. I dont want new for the sake of new. but they really need to shake things up (think Classic MacOS to OSX). but it worries me what the changes might be given their direction for the past few years.
-Technically,; the 'problems' of iOS (multi tasking, virtual memory, etc) were solved decades ago. (Why the heck does Safari have to reload pages when i switch to a tab, in this day and age?)
++ on that last one. Some of that is "why can't they put enough memory in their devices", but honestly, is it that hard to cache a page on flash?
The new Mac Pro has up to 30 MB of cache inside the processor itself. That's more than the HD in my first Mac. Somehow I'm still running out of space.
     
OreoCookie  (op)
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Sep 14, 2015, 12:54 PM
 
Great reply, you mentioned quite a few things that dropped my mind.
Just a quick reply before I go to bed:
Originally Posted by P View Post
Networking was a completely different thing. The first Mac had no networking at all, but it was eventually added, and by 7.5.3, the networking subsystem was quite capable. There was no specification that prevented that from happening, just lots of hard work.
Without proper multitasking, I don't think you can have a modern networking stack.
Originally Posted by P View Post
Right now, I don't think OS X is missing any "preemptive multitasking" level features, but it might be missing some "networking" features - and it is missing one, a decently modern file system. These could be added, with less work than replacing the entire OS, so I think that that will happen rather than another "reboot".
The *nix paradigm that OS X is based on, namely that everything looks like a file, may be a problem, though.
Originally Posted by P View Post
It didn't make news, but Clang (the C compiler in LLVM, the compiler used by Apple and others) recently merged SafeStack, a feature that makes it impossible to do stack buffer overflows. This is an entire class of vulnerabilities that has now been closed for anyone using the latest version of the compiler.
That's neat, I didn't hear of that until now, thanks!
Originally Posted by P View Post
There are many old OS X APIs that can be updated, though.
My point is that if Apple needs to replace Cocoa with a set of Swift-native APIs, it'd make sense to re-use as much as they can across platforms. Of course it won't make sense to port the touch parts to OS X, for instance, but most of the lower-level stuff could be the same for all platforms.
Originally Posted by P View Post
(see e.g. the Debug podcast, I think it was the Ryan Nielsen interview).
I think you are alluding to Debug 24 and 24.1, a two-part round table discussion where Ryan Nielson famously said somewhat ominously “Reasons killed ZFS.” (part 1, 1:23:32) While that particular sound bite isn't very specific, the discussion was very enlightening.
Originally Posted by P View Post
I think that Apple right now is working on its volume manager, Core Storage, and hoping that flash storage will be less afflicted by soft flips than the old spinning rust while they're waiting for something to come along.
I forgot to mention Core Storage, and indeed, Core Storage could be the trojan horse here for a new “filesystem”. But perhaps we need a more clever solution where the SSD controller can be tasked with things like checksumming or so.
Originally Posted by P View Post
They don't have too long to wait, though: With 4K blocks, HFS+ runs out of allocation blocks when the partition goes over 16 TB.
They better hurry, you can buy a 16 TB SSD today.
I don't suffer from insanity, I enjoy every minute of it.
     
OreoCookie  (op)
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Sep 14, 2015, 01:09 PM
 
Originally Posted by Hawkeye_a View Post
Oreo. I think you need to consider the business case for the OSs. iOS eclipsed OSX a few years ago. The incentive to allocate resources to the desktop OS (and hardware) *could* be waning. Apple makes more money, has more customers, and probably gets more industry support for the mobile platform. Looking at Apple's strategy through the 'business lens' might help get a more accurate picture of where Apple might be going IMHO.
I was looking through that lens: it makes no sense for Apple to sustain 5 platforms in parallel (4 if you disregard the Mac) without leveraging synergy effects. Most of the resources Apple allocates for OS development and app development should benefit all platforms. And looking into the future, it's likely that Apple will introduce even more ”screen sizes“, e. g. should Apple introduce a car (and from the looks of it they're at least very seriously thinking about it), you can be sure to run some version of iOS/OS X. And perhaps in 10 years time they'll have introduced another form factor beyond that. To me this only seems feasible if Apple aligns all of their platforms as much as possible (as they already have with tvOS and iOS), and I think the API transition that will follow Swift is a good opportunity to do just that.

I'm not concerned that Apple will abandon the Mac any time soon: it's a billion dollar business that by itself would be a huge company. It's also part of the company's core for many reasons, some philosophical, but one very simple one: if you want to develop for iOS, you have to use a Mac. On the other hand, it's clear that eventually (and by that I mean in 10 or 20 years) personal computers as we know them will have been phased out. But if the tablets/whatever you want to call them computers make my MacBook Pro look like a Commodore 64 in comparison, I'm ok with that.
Originally Posted by Hawkeye_a View Post
-Technically,; the 'problems' of iOS (multi tasking, virtual memory, etc) were solved decades ago.
Not really: the innovations around iOS is how functionality that already exists is presented to the user. Ditto for files: of course you could continue to manage your files by hand, but that doesn't seem very future-y to me.
I don't suffer from insanity, I enjoy every minute of it.
     
osiris
Addicted to MacNN
Join Date: Sep 2000
Location: Isle of Manhattan
Status: Offline
Reply With Quote
Sep 14, 2015, 01:11 PM
 
Originally Posted by Hawkeye_a View Post
Great idea for a thread.

Originally Posted by Hawkeye_a View Post
Aesthetically speaking, i like the minimalism in El-Capitain, and i hope the OS feels just as nimble to use. I loathe sluggish OSs and memory hogs in this day and age.
El-Capitain is a good step - I too love Snow Leopard (and still use it as my primary OS, but also have machines with Yosemite). El-Capitain is much more refined 10.7-10.10. The 10.11 beta brought new life into an underpowered iMac I had laying around (only 4GB RAM). For the first time in years I feel more positive about the desktop OS.

However, mobile computing is all the rage now - just like the Days of the Mhz Wars are now gone but not forgotten, the halcyon days of 56K modems with custom modem scripts... this too shall pass.

The future? Computing everywhere for the masses will be from whatever you have access to. Serious desktop applications will still be around but perhaps we'll have parallel computing - mb your fridge's CPU and iPad will contribute to your desktop CPU...

Great idea for a thread, wish I had more time...
"Faster, faster! 'Till the thrill of speed overcomes the fear of death." - HST
     
Hawkeye_a
Addicted to MacNN
Join Date: Apr 2000
Status: Offline
Reply With Quote
Sep 14, 2015, 05:00 PM
 
Originally Posted by OreoCookie View Post
Not really: the innovations around iOS is how functionality that already exists is presented to the user. Ditto for files: of course you could continue to manage your files by hand, but that doesn't seem very future-y to me.
I was referring to the memory management model being used in iOS. As someone pointed out there's no concept of 'virtual memory' or paging (i think someone mentioned the downside being battery life). So we went from being able to run several applications side by side seamlessly switching between them, on machines with 128-256MB when OSX debuted. And now, in order to have two apps running side by side (mobile apps mind you) you need 1GB+. Technically the 'problem' of low RAM was solved decades ago with virtual memory and paging. And right now the these companies almost seem lazy in that they want to just throw mode hardware(more RAM) at the problem instead of efficiently using it to begin with. (I assume the counter argument is hardware is cheap, writing/changing a more efficient memory management module would cost substantially more).

Originally Posted by osiris View Post
El-Capitain is a good step - I too love Snow Leopard (and still use it as my primary OS, but also have machines with Yosemite). El-Capitain is much more refined 10.7-10.10. The 10.11 beta brought new life into an underpowered iMac I had laying around (only 4GB RAM). For the first time in years I feel more positive about the desktop OS.
I'm glad to hear that about ElCaptain. I'm on Mavericks now, and i dont have any complaints (got a SL boot drive as well). I'll prolly be upgrading to El Capitain, but i have to admit...i'm not really looking forward to a single new feature in the OS. (the only reason i've been upgrading since SnowLeopard is the planned obsolescence from Apple (security updated, iCloud, etc which could all be made for SL but have been left behind on purpose).

Regarding their multi-OS approach. Totally agree. they seem to have too many hardware revisions on sale as well, and they seem to be spreading themselves too thin across too many 'hobbies'(i count the watch as a hobby as well) lately. It almost seems like their strategy for the watch and AppleTV seems to be to deploy a carbon copy of the iPhone/iPad models for those devices. is it just me or did tvOS(watchOS) look sloppy and unrefined aesthetically and usability wise? they both lacked any 'wow' factor. watchOS looks unnecessarily complicated and tvOS looks incomplete.

The scary this is, we saw Apple go down this road before in the late 80s after Jobs left. With each passing keynote, i feel TimCook is a better COO than he is a CEO.

I'll be starting a new thread about this one of these days. I actually purchased my first non-Apple "computer" recently, because i got tired of waiting for Apple to release a product with the feature set i want (at a reasonable price). Picked up a RaspberryPi2 (charger, case, etc) for under $90.... slapped OpenElec (and a couple of other OSs to play with) on it and it does everything i want it to.
     
OreoCookie  (op)
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Sep 14, 2015, 07:17 PM
 
Originally Posted by Hawkeye_a View Post
I was referring to the memory management model being used in iOS. As someone pointed out there's no concept of 'virtual memory' or paging (i think someone mentioned the downside being battery life).
Yes, virtual memory is switched off. Since iOS and OS X share the same kernel architecture, it's not that the functionality is missing, instead, it was a conscious policy decision on Apple's part. If you architect the system correctly, I don't think you need virtual memory as badly anymore. This problem will solve itself when Apple includes sufficient amounts of RAM and architects the apps appropriately. (I don't quite understand why Apple doesn't write the content of tabs to disk so that they are reloaded from disk rather than having to be reloaded from the web.)
Originally Posted by Hawkeye_a View Post
I'm glad to hear that about ElCaptain. I'm on Mavericks now, and i dont have any complaints (got a SL boot drive as well). I'll prolly be upgrading to El Capitain, but i have to admit...i'm not really looking forward to a single new feature in the OS.
The people I have talked to, including some who got badly bitten by 10.10's bugs (e. g. a wireless bug) all tell me that the level of polish is much improved with 10.11. I've tried installing the GM and the installation failed, but it is still a beta (even if it is a GM), and so I don't think I should complain.
Originally Posted by Hawkeye_a View Post
is it just me or did tvOS(watchOS) look sloppy and unrefined aesthetically and usability wise? they both lacked any 'wow' factor. watchOS looks unnecessarily complicated and tvOS looks incomplete.
I didn't think it looked sloppy. And I don't need “wow”, I'd much prefer polish and reliability. Apple feeling the pressure to need to wow people has IMHO contributed to Apple not prioritizing quality control over new features. I'm perfectly fine with a slower, more measured evolution of all OSes if I get more refined releases instead.
Originally Posted by Hawkeye_a View Post
The scary this is, we saw Apple go down this road before in the late 80s after Jobs left. With each passing keynote, i feel TimCook is a better COO than he is a CEO.
I don't see Apple going doing a dark road, I think they're doing quite well. People have all this angst that after Steve Jobs died, the company will go down the drain, but they are still taking risks, entering new markets and doing things right. Take the “innovation” of Apple Pay: compared to Google Wallet which did essentially the same thing earlier, the difference between the two is that Apple succeeded to partner with sufficiently many big players so that the service is actually usable. Ditto for music and movies compared to Amazon, unless you're living inside the US, their offerings aren't as comparable. And also the iPad Pro (which my brother aptly called iSurface Pro).

I share your concerns about Apple spreading itself too thin to do things right, and that at a certain point the sheer number of platforms is too much to handle. But I think this is a worthwhile meta problem as more and more things get computerized properly.
( Last edited by OreoCookie; Sep 14, 2015 at 07:38 PM. )
I don't suffer from insanity, I enjoy every minute of it.
     
P
Moderator
Join Date: Apr 2000
Location: Gothenburg, Sweden
Status: Offline
Reply With Quote
Sep 15, 2015, 04:45 AM
 
Originally Posted by OreoCookie View Post
Great reply, you mentioned quite a few things that dropped my mind.
Just a quick reply before I go to bed:

Without proper multitasking, I don't think you can have a modern networking stack.
True, but... From System 7.1, Mac OS had real multitasking through the MP Library functions, but you couldn't use it for anything that had a real interface or interacted with the Mac toolbox. Apple used this feature for some things under the hood, so Open Transport was as good a networking stack as you'll find.

Originally Posted by OreoCookie View Post
The *nix paradigm that OS X is based on, namely that everything looks like a file, may be a problem, though.
Maybe. OS X hasn't run that completely into the ground like Linux has, though - there is no /proc, for instance. Others will have issues before OS X.

Originally Posted by OreoCookie View Post
My point is that if Apple needs to replace Cocoa with a set of Swift-native APIs, it'd make sense to re-use as much as they can across platforms. Of course it won't make sense to port the touch parts to OS X, for instance, but most of the lower-level stuff could be the same for all platforms.
They could port Foundation to Swift (and possibly CoreFoundation - that is in C now), and keep AppKit and UIKit mostly separate as a first step. Then, start moving things over to Foundation to create a bigger common code base.

Originally Posted by OreoCookie View Post
I think you are alluding to Debug 24 and 24.1, a two-part round table discussion where Ryan Nielson famously said somewhat ominously “Reasons killed ZFS.” (part 1, 1:23:32) While that particular sound bite isn't very specific, the discussion was very enlightening.
That, and also the previous episode 20. Notably he said that Apple had looked under every rock for a filesystem that they could use, but that there were licensing issues with all of them. Probably the issue is that all of them are licensed for Linux, therefore GPL, and they have all been so modified by many authors that they cannot conceivably be distangled from that. Cleanrooming one is hard now that the sources have been out there for decades, so you can never show that an engineer has never looked at the sources for say Btrfs.

(My pet plan is that Apple should purchase the original copyrights to XFS, the old SGI filesystem that was submitted to Linux in 1999. Linux doesn't have a copyright assignment policy, so those copyrights would have remained with SGI. SGI went under, sold most of its assets to Rackable - including the name, so Rackable is now called SGI - and the remainder is in a holding company. One of them should have the copyrights, and neither is doing anything with them. Apple could then use that tried-and-true 64-bit filesystem as the basis for a new Apple filesystem and at least be better off than with HFS+. It won't have access to the development work done on XFS since 1999, but it will at least have a base to build on - same as they did when they bought NeXT)

Originally Posted by OreoCookie View Post
I forgot to mention Core Storage, and indeed, Core Storage could be the trojan horse here for a new “filesystem”. But perhaps we need a more clever solution where the SSD controller can be tasked with things like checksumming or so.
It is a good idea, and I'd love if it could be handled in that way that the SSD controller could at least detect a flip even if it couldn't correct it - but we also need ECC memory for all of that to work. ZFS always assumed ECC memory, and Intel requires Xeons for that to work (or, for some reason, dualcore desktop i3 and the right motherboard. Logic.). The recent development with mobile Xeons is a step in the right direction, but we're not there yet. DDR4 also does mitigate this a bit (it has ECC in the transfer phase as standard, so soft flips while sending data back and forth are prevented, but it won't prevent soft flips while data is sitting in the memory cells).

But anyway. If the SSD could detect that a file had been corrupted, Apple could integrate that with a new, block-based Time Machine to correct that from the backup. Time Machine itself would also need to be proofed in the same manner, detect but not necessarily correct, so it could re-backup in case of a corruption on the backup drive.

Originally Posted by OreoCookie View Post
They better hurry, you can buy a 16 TB SSD today.
Oh, I know. Back in -98 when HFS+ launched, we thought that we were safe for the forseeable future, and here we are.
The new Mac Pro has up to 30 MB of cache inside the processor itself. That's more than the HD in my first Mac. Somehow I'm still running out of space.
     
osiris
Addicted to MacNN
Join Date: Sep 2000
Location: Isle of Manhattan
Status: Offline
Reply With Quote
Sep 15, 2015, 08:58 AM
 
Originally Posted by Hawkeye_a View Post
With each passing keynote, i feel TimCook is a better COO than he is a CEO.
Yeah, I kind of feel the same way. Tim is a business man who now wears jeans, he's not a creator.

But I will always remember that Steve dreamed of turning Apple into an American Sony. Now that Apple has the power they can do nearly anything just as long as there's a chip in it.

Perhaps that was Steve's plan - the DNA thing - to take every facet of life that uses tech and work on perfecting it for people to buy.
"Faster, faster! 'Till the thrill of speed overcomes the fear of death." - HST
     
Hawkeye_a
Addicted to MacNN
Join Date: Apr 2000
Status: Offline
Reply With Quote
Sep 15, 2015, 10:22 AM
 
@Oreo
When i refer to "wow" factor.... remember the first time Job's demoed OSX on stage (WWDC 2000 i think) and we saw the genie effect, and sheets? Those were 'wow' moments for me. (Technically, QuartzExtreme and OpenCL wowed me as well).

Apple hardware is at the top of its game with the power, efficiency and price all being best in class(right balance) IMHO. Services as well (iTunes Music Store, App stores, Apple Pay) are the best on the market so far as well. Even from a 'tailor made' software perspective, taking advantage of the hardware they're doing better than any competitor.

I guess the issue i have is, with the 'features' in the software (for end users). They seem to be throwing a lot... way too much stuff out there, and trying to see what sticks. Most of the features, i dont really care for. Some are nice from a convenience perspective. I guess the counter argument would be, how much farther can you go with a desktop(or mobile) OS anyway?

Regarding their APIs and languages..... i havent used Swift or Metal yet. But i think Swift is generally a good step to help people get their feet wet with app development. Metal... while i like the efficiency and performance gains..... i worry about it being a break from industry standards (OpenGL... but then again they've announced a similar roadmap which is worrying.)

@Osiris
I remember hearing about Tim back in the day when Apple was on life support, and i think he did a phenomenal job with the supply chain, which definitely contributed in a major way to saving Apple. As far as COOs go he's second to no one. Lets be honest I dont think anyone would have been able to fill Job's shoes. Maybe he was the best candidate (although i still think Scott Forstall might have been a better fit for the position... being a product man). I saw Jobs as a Project Manager who said no to bad ideas and yes to good ones, and thus decided the overall direction for a product line. I think Tim's issue is he (or maybe those right below him) doesn't say 'no' often enough. His management style has been said to be more 'collaborative' as opposed to Job's 'confrontational', that's changing the DNA of the way Apple made great breakthroughs..... maybe that's why we havent been 'wowed' in recent years? IMHO

Yes Apple is making a watch and a set top box now, but dare i say they're not making a "great" watch or set top box. And that to me is disappointing.
     
osiris
Addicted to MacNN
Join Date: Sep 2000
Location: Isle of Manhattan
Status: Offline
Reply With Quote
Sep 15, 2015, 11:57 AM
 
Originally Posted by Hawkeye_a View Post
Yes Apple is making a watch and a set top box now, but dare i say they're not making a "great" watch or set top box. And that to me is disappointing.
My wife's Apple watch is scratched to hell already, and having owned dozens of watches this is a first. But I digress..

Apple is so fluid now they can do anything - imo they need a new visionary unafraid to yell at an employee for slipping up. I don't see that in Tim. Maybe the fear of Steve is what did it... lol

I would also love to see a load of A9s in parallel in a rack mount server, but I know I dream.
"Faster, faster! 'Till the thrill of speed overcomes the fear of death." - HST
     
Hawkeye_a
Addicted to MacNN
Join Date: Apr 2000
Status: Offline
Reply With Quote
Sep 15, 2015, 03:15 PM
 
Originally Posted by osiris View Post
imo they need a new visionary unafraid to yell at an employee for slipping up. I don't see that in Tim. Maybe the fear of Steve is what did it... lol

I would also love to see a load of A9s in parallel in a rack mount server, but I know I dream.
I guess that's one way to look at the different managerial style Regarding your desire for an A9 rack mount, this might interest you.... (https://www.youtube.com/watch?v=Jq5nrHz9I94 I will have to start a new thread about this little gem (RaspberryPi2))
     
CharlesS
Posting Junkie
Join Date: Dec 2000
Status: Offline
Reply With Quote
Sep 15, 2015, 04:15 PM
 
Originally Posted by OreoCookie View Post
In 2001 Apple introduced OS X which added much needed technologies to their aging OS. It is what has kept me in the Apple camp. While OS X (with its children and grandchildren OSes iOS, watchOS and tvOS) still forms the basis of Apple's OS strategy, given its age of 30 years (depending on how you count) I was thinking what would replace Apple's current OSes?
I don't think it needs replacing; OS X is a really good OS. Solid, stable. I don't think its underpinnings really need much in the way of replacement, as most of its areas for improvement (a new file system, for instance) are things that can easily be done by adding onto the current foundation.

I'll admit that I've been off base in the past with predicting Apple's direction, though.

When you look at the classic MacOS to MacOS X transition, there were a number of technological factors that forced this transition: OS X had features that were necessary, vital to the survival of the platform. A few of these features include pre-emptive multitasking, full memory protection and a modern networking stack. And, of course, a more modern programming language with a more modern set of APIs. (Although people should keep in mind that Cocoa was not as feature complete and it took a while until Apple deprecated Carbon in favor of Cocoa.)
Yes, Classic was running into a major dead end (one could argue that it'd already been in the dead end for years), and was really desperately in need of an overhaul. That's not really the case now.

More unified Swift-native APIs

I think the transition to Swift is perfectly timed: right now you have disparate APIs for OS X, iOS (and tvOS which is “95 % identical” according to Apple) and watchOS. While in some instances there are good reasons to have differences in the APIs (touch-based vs. cursor-based interaction), in other cases it's just a matter that these APIs grew at different time periods. (What does NS stand for again?) And it seems clear that Apple's strategy is to add more of these platforms over time (e. g. the car seems to be next).

With Swift Apple will have to introduce Swift-native APIs eventually, and here they have the chance of engineering these APIs with the assumption in mind that they will run on different platforms. This should make it easier to port an app from the iPhone to the Apple Car, for instance. And programmers can more easily move between platforms and re-use their expertise. I reckon the first few APIs may appear within the next 2, 3 years, after Swift as a language has matured a little.
I don't think so. A huge part of the design philosophy of Swift seems to have been to work seamlessly with Objective-C. While they probably will want to tweak a few interfaces that are awkward in Swift (NSURL's resource access being a big one), on the whole the API is still really good one if we want to talk about "wow" moments, my first introduction to Cocoa was probably the biggest "wow" moment I've ever had with technology. Also, in its current state (which may, of course, change by the time Swift's ABI is finalized), Swift is simply not as good a language as Objective-C for framework development, because its less-dynamic nature makes it extremely susceptible to the fragile base class problem—add or remove a new instance variable or method, or simply reorder your existing methods, and you break things. The other thing is that the entire philosophy of Apple's UI system is designed around the dynamism of Objective-C. Nibs and storyboards, target/action, NSCoder, KVO, bindings, CoreData—this stuff all depends on Objective-C's dynamic features which Swift doesn't have (unless you make your class @objc by subclassing from NSObject, and then put the "dynamic" keyboard in front of your properties and methods, but then you're essentially just writing Objective-C with a different syntax, so I'm not sure what the point of a rewrite is here).

The other thing is that rewriting the whole framework would be a lot of work. I'm not sure it's the best application of resources.

Again, though, I've been wrong in the past, so take that FWIW.
Also, Apple will eventually have to take its claim seriously that Swift is “designed to scale from ‘hello, world’ to an entire operating system”. I am not sure whether and how an object-oriented programming language can make a difference on the level of the kernel, but we should take Apple at its word here.
I remain skeptical about that. Swift should, in theory, be able to approach the speed of C++, but I don't see it matching C's speed.

A new distributed filesystem and/or volume manager
Oh, yes, no question about that. The file system is one of the few things that exudes that Classic-like sense of desperation in OS X these days.

Originally Posted by P View Post
They don't have too long to wait, though: With 4K blocks, HFS+ runs out of allocation blocks when the partition goes over 16 TB. They can delay the inevitable by using bigger blocks, but at some point, they need a new file system. I hope that they're working on one.
The thing is, we've all been waiting with bated breath for a new file system ever since Giampaolo was hired—when was that, thirteen years ago? Other than the failed ZFS project, not a peep ever came from it other than more feature duct taped onto HFS+. I think the problem is that a file system isn't much of a "wow" feature to anyone but geeks, so Apple prefers to focus on things that look shiny on the feature list, like a new photos app or something. Perhaps the upcoming 16 TB limit will finally motivate them to do something in this area, although they could just as easily just make an HFS++ or something. I really hope not, though. Spotlight, FSEvents, Time Machine, versions, even basic UNIX features like hard links—they're all hacked onto HFS+ in such a kludgey manner that their performance would be drastically improved if they were running on a file system designed to support these things. Seriously, have you ever tried running fsck on a sufficiently mature Time Machine volume? It can take over an hour.

Originally Posted by P View Post
Notably he said that Apple had looked under every rock for a filesystem that they could use, but that there were licensing issues with all of them. Probably the issue is that all of them are licensed for Linux, therefore GPL, and they have all been so modified by many authors that they cannot conceivably be distangled from that. Cleanrooming one is hard now that the sources have been out there for decades, so you can never show that an engineer has never looked at the sources for say Btrfs.
The GPL isn't really the same as software patents, though. I don't think you have to prove someone didn't look at the Btrfs code or use ideas from it, as long as they didn't use the actual code itself. Given the attitude many of the open-source crowd have toward software patents, I really doubt they'd want to hold up the entire state of the industry like that.

Originally Posted by Hawkeye_a View Post
MacOSX:
-I miss the lean mean Snow Leopard. Functional, optimized, efficient.
-The OS has become 'heavy' while delivering very marginal gains from the user perspective IMHO.
Snow Leopard, though, was "heavy" compared to Tiger, which was "heavy" compared to Jaguar, and of course OS X from day 1 was unbelievably "heavy" compared to OS 9, which itself was "heavy" compared to OS 8, System 7, etc. until you get all the way back to the first Mac OS which ran comfortably from a 400 KB floppy disk.

This is just the direction that technology marches in.
-The shift to incorporate touch/mobile elements in the OS are annoying.
I can agree with that.

Originally Posted by osiris View Post
El-Capitain is a good step - I too love Snow Leopard (and still use it as my primary OS, but also have machines with Yosemite). El-Capitain is much more refined 10.7-10.10. The 10.11 beta brought new life into an underpowered iMac I had laying around (only 4GB RAM). For the first time in years I feel more positive about the desktop OS.
Yeah, Apple's kind of been tending to do a tick-tock release strategy lately, starting with a "wow" release packed with new features (Leopard, Lion, Yosemite), and then following it up with a release light on features but with a focus on refinement and efficiency (Snow, Mountain Lion, El Cap). The latter set end up being damn fine OSes.

Ticking sound coming from a .pkg package? Don't let the .bom go off! Inspect it first with Pacifist. Macworld - five mice!
     
osiris
Addicted to MacNN
Join Date: Sep 2000
Location: Isle of Manhattan
Status: Offline
Reply With Quote
Sep 15, 2015, 05:26 PM
 
Originally Posted by Hawkeye_a View Post
I guess that's one way to look at the different managerial style Regarding your desire for an A9 rack mount, this might interest you.... (https://www.youtube.com/watch?v=Jq5nrHz9I94 I will have to start a new thread about this little gem (RaspberryPi2))
That's quite a bit of Raspberry Pi, the legos were a good practical idea too. Cool to see this kind of innovative engineering with basic components.
"Faster, faster! 'Till the thrill of speed overcomes the fear of death." - HST
     
Hawkeye_a
Addicted to MacNN
Join Date: Apr 2000
Status: Offline
Reply With Quote
Sep 15, 2015, 06:18 PM
 
Originally Posted by CharlesS View Post
Snow Leopard, though, was "heavy" compared to Tiger, which was "heavy" compared to Jaguar, and of course OS X from day 1 was unbelievably "heavy" compared to OS 9, which itself was "heavy" compared to OS 8, System 7, etc. until you get all the way back to the first Mac OS which ran comfortably from a 400 KB floppy disk.

This is just the direction that technology marches in.
Not to dwell on this .....

Min System Requirements:
Snow Leopard : 1GB RAM, 5GB HDD (https://en.wikipedia.org/wiki/Mac_OS...m_requirements)
Mountain Lion, Mavericks, Yosemite: 2GB RAM, 8GB HDD (https://en.wikipedia.org/wiki/OS_X_Y...m_requirements)

Rhetorical question: So what are these new critical features that require just as much memory as the whole old OS did? Or it is just being sloppy and letting the hardware pick up the slack?

i agree that times change, and i sound like a grouchy old timer . With the jump from OS9 to OSX the benefit was very obvious and justified by the complete change in technology. But since Snow Leopard have we seen any meaningful feature that justifies a change in the system requirements?

And i agree it does seem they're going for tick-tock releases which is why i'll be upgrading to ElCapitain.
     
OreoCookie  (op)
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Sep 15, 2015, 08:58 PM
 
Originally Posted by Hawkeye_a View Post
@Oreo
When i refer to "wow" factor.... remember the first time Job's demoed OSX on stage (WWDC 2000 i think) and we saw the genie effect, and sheets? Those were 'wow' moments for me. (Technically, QuartzExtreme and OpenCL wowed me as well).
I feel you. For me it wasn't the on-stage demo, but a hands-on demo of the public beta by the equivalent of the Mac user group, I thought this OS was from the future and did things that shouldn't be possible. And while my machine at the time (a PowerBook G3 Kanga) could not run OS X, I felt drawn enough to the platform that I soon replaced it with a dual USB white iBook that came with 10.0.3 pre-installed. Despite its glacial speeds, from that moment on I ran OS X full time. As a student I worked for the company that localized most Apple software into German (and for a time also some other languages like Swedish), so I got to see the beast from the inside a little.

I had a less strong reaction initially to the iPod, but fell in love with it after I bought the largest iPod ever made (a second-gen 20 GB iPod). I loved that machine, I could use it blind-folded and it always did its job. The iPhone was a similar wow moment, but it was not strong enough for me to pay the hefty premium to buy and use one (I would've considered paying for the hardware, but the data plans were seriously expensive).

Just like you can't expect to fall in love every summer, I don't think you can expect to have these wow products on a 3-year cadence, especially after our expectations grew at every step. People discount multi billion dollar business segments of Apple, because there is no hope to match the size of the iPhone. Perhaps that has warped our perception a little too much, and we forget how rare such events really are.

But the older I got, the more I started to value iterations as well. And arguably, this is what I think made Steve Jobs 2.0 great. It's true that any iPhone that succeeded the first is an iterative improvement. But just compare an original iPhone to an iPhone 6. Or just an iPhone 4S to an iPhone 6S, the difference is staggering. The relentless pursuit to make the iPhone faster, thinner, better-featured, that's Jobs 2.0, and I see that alive and well in Apple today. Even when I compare my 2010 15" MacBook Pro to my Late 2013 13" Retina MacBook Pro — which are part of Apple's “most boring” business these days — even there the difference between the machines is quite significant.

Some people think that this makes Apple more boring, and perhaps this is true. But I think it is the crucial insight that Steve brought to Apple at the beginning of his second tenure, and something that Apple is still continuing today.
Originally Posted by Hawkeye_a View Post
I think Tim's issue is he (or maybe those right below him) doesn't say 'no' often enough. His management style has been said to be more 'collaborative' as opposed to Job's 'confrontational', that's changing the DNA of the way Apple made great breakthroughs..... maybe that's why we havent been 'wowed' in recent years? IMHO
I think given the situation it was the right move: there is no second Steve Jobs. Forestall did not seem to have the maturity to balance his singular vision with giving breathing room to other great people. It is to Cook's credit that he recognized this and restructured the company so that Job's, well, job was distributed amongst several different people.
Originally Posted by Hawkeye_a View Post
Yes Apple is making a watch and a set top box now, but dare i say they're not making a "great" watch or set top box. And that to me is disappointing.
I think it is way too early to judge Apple TV, I haven't even used one. And to be honest, I think the Apple TV's biggest threat is that many young people I know (myself included) haven't owned a TV in years. From the outside perspective, though, it seems to me they're making all the right moves (proper platform with hardware, more flexible input method, support for game controllers, etc.), and it depends on the execution whether people will like it.

As for the watch, I think the biggest problem of the watch is the expectation of scale. I have to admit that I found the watch UI more fiddly than expected, and I have no plans to buy one. (However, if they include GPS, I'll order one right away.) Right now, the Apple Watch is their version of the original iPhone, and the reason the perception is more mixed is that it is supposed to open up a new market (unlike the iPhone where there was an existing market). Wait for the Apple Watch equivalent of the iPhone 4S, and then we will be able to gauge its usefulness.
I don't suffer from insanity, I enjoy every minute of it.
     
OreoCookie  (op)
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Sep 15, 2015, 09:10 PM
 
@CharlesS
You're right that Swift can make use of all the Objective C-based APIs out there, that's a must if it is to see any kind of adoption. However, I don't share the sentiment that Apple will be content with that, as you explain very well, Objective C and Swift are two different beasts, Swift is definitely not Objective C 2.0 or Objective C without the C. To me it doesn't make sense for Apple to continue developing APIs Objective C-style which are then supposed to be used via Swift.

The question is: What will Swift APIs look like? Until Apple dog foods Swift with some more substantial apps I doubt they know. Rumor has it that with 10.12 they will rewrite one or more of the major apps in Swift. That makes sense, for years Mail was the test bed for new Cocoa APIs and the Finder (until 10.6 that is) was the field test for new Carbon bits. I think that strategy has fared quite well.

Since I am not a programmer, I don't have skin in the game here and cannot really claim with any authority that one language is better than the other. But even if I were, I think it's more nuanced than that and there are people who simply pretend to contract eye cancer when they see a square bracket while others love it. The mathematician in me loves parts of Swift, because it is entirely natural to me. I reckon others will hate these same features. I also think Swift's mission statement is very ambitious, but even if it reaches the speeds of C++ that'd be great.

Be that as it may, Swift will be the future of developing for Apple platforms, and as far as I can tell there are enough happy people out there to indicate it will be accepted by the community.
I don't suffer from insanity, I enjoy every minute of it.
     
CharlesS
Posting Junkie
Join Date: Dec 2000
Status: Offline
Reply With Quote
Sep 16, 2015, 01:15 AM
 
Originally Posted by OreoCookie View Post
Just like you can't expect to fall in love every summer, I don't think you can expect to have these wow products on a 3-year cadence, especially after our expectations grew at every step. People discount multi billion dollar business segments of Apple, because there is no hope to match the size of the iPhone. Perhaps that has warped our perception a little too much, and we forget how rare such events really are.
The other thing to keep in mind is that we're all a lot older now than we were when OS X came out. As we age, we mellow a bit, and it's hard to get quite as excited about things as we did when we were younger.

Originally Posted by OreoCookie View Post
@CharlesS
You're right that Swift can make use of all the Objective C-based APIs out there, that's a must if it is to see any kind of adoption. However, I don't share the sentiment that Apple will be content with that, as you explain very well, Objective C and Swift are two different beasts, Swift is definitely not Objective C 2.0 or Objective C without the C. To me it doesn't make sense for Apple to continue developing APIs Objective C-style which are then supposed to be used via Swift.
Nonetheless, they are doing it. El Cap contains a boatload of new Objective-C APIs. New methods, properties, classes, you name it. Some of these new APIs, like the new block-based interface to NSUndoManager, are expressly there to make the APIs easier to use from Swift. They've also been adding new features to the Objective-C language itself—nullability annotations, lightweight generics in particular—whose general purpose are to make ObjC-based APIs able to present themselves more idiomatically to Swift.

This isn't terribly new, in fact; the interfaces to the old Mac Toolbox routines back in the day were all in Pascal (as was all of the API documentation), even as most of the developer community moved to C and C++.

Since I am not a programmer, I don't have skin in the game here and cannot really claim with any authority that one language is better than the other. But even if I were, I think it's more nuanced than that and there are people who simply pretend to contract eye cancer when they see a square bracket while others love it. The mathematician in me loves parts of Swift, because it is entirely natural to me. I reckon others will hate these same features. I also think Swift's mission statement is very ambitious, but even if it reaches the speeds of C++ that'd be great.
Well, it's like this. Suppose you have a class defined in a library or framework, imaginatively named MyClass:

Code:
public class MyClass { public init() {} public func foo() { print("Foo") } public func bar() { print("Bar") } }
and in the app code, you have this:

Code:
import MyNiftyFramework let obj = MyClass() obj.foo()
You'll get "Foo" logged to the console, right? But what happens if the framework changes at some point, such that the class looks like this:

Code:
public class MyClass { public init() {} public func bar() { print("Bar") } public func foo() { print("Foo") } }
and then you run the app without recompiling it (as would happen if you used an app compiled for an older version of OS X on the current version). Suddenly now "Bar" gets logged to the console. Why did that happen? The issue is that Swift, like C++, looks up the method based on its position. So in the original version of MyClass above, foo() was the second thing in the class definition (I'm simplifying a bit here, but you get the idea), so the client code looked up the second function that the class offered. Unfortunately, when we moved the classes around, the second function was now bar(), so the client code called the wrong function by mistake. In practice, this could cause some pretty spectacular failures, as you can imagine.

Well, no problem, right? Just add all new methods, ivars, and whatnot to the bottom of the class, and then the order of things won't change, right? Well, aside from the fact that this will eventually end up causing you to have a really ugly interface, with many properties and methods not grouped together in a logical way but instead displayed in chronological order according to when they were added, this also blows up in our faces when we subclass the object. Suppose MyClass, in the framework code, is defined like this:

Code:
public class MyClass { public init() {} public func foo() { print("Foo") } }
and our app code subclasses it, and then calls foo() on the subclass like so:

Code:
import MyNiftyFramework class MySubclass: MyClass { func bar() { print("Bar") } } let obj = MySubclass() obj.foo()
The output is "Foo", as one would expect. But let's say the designer of the API decides to separate out some of foo()'s functionality into another method, called baz(), and call it from foo(), like so:

Code:
public class MyClass { public init() {} public func foo() { print("Foo") self.baz() } internal func baz() { print("Baz") } }
When our app calls foo() on the subclass, you'd expect to get "Foo" and then "Baz", right? But when you actually run it, you get:

Code:
Foo Bar
What happened here? Well, remember how method dispatch is based on position? When the app creates the subclass, the way it knows where to put the bar() method is to determine how many methods are in the base class (again, simplifying a bit), add its new method right after those, and go from there. Unfortunately, the number of methods is hard-coded in at compile time, which means that the app, expecting the base class to only contain init() and foo(), adds bar() right after those two, and in the process overwrites baz(), with the end result that everything goes all FUBAR. (ba dum chshhh)

To contrast with all this, Objective-C actually stores the names of all the classes, and all the methods inside those classes, as strings, and looks them up by name, at runtime, instead of just going by position. As you'd expect, this is slower than what Swift and C++ do (although not as much as you'd expect—Apple has spent the last couple of decades optimizing the hell out of this, with caching all over the place to avoid the lookups for the methods that get called a lot), but it results in rock-solid base classes that provide Apple the flexibility to add and tweak APIs to their heart's content without breaking client code.

Now, Swift's ABI is not stabilized yet, so it's possible that they could fix this by the final release, implementing some solution to the base-class problem. However, it would seem to conflict with the general design goal of Swift, which is to get C++-like performance, so it seems possible to me that we might end up with a dual system with Swift as the "app language" and ObjC as the "framework language." But we'll see.

Ticking sound coming from a .pkg package? Don't let the .bom go off! Inspect it first with Pacifist. Macworld - five mice!
     
OreoCookie  (op)
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Sep 16, 2015, 04:14 AM
 
Thanks for the detailed explanation, I wasn't aware of this weakness, it seems like a recipe for spectacular disaster. With your explanation, it seems obvious enough for me, though, to be sure that Apple is aware of this.
I don't suffer from insanity, I enjoy every minute of it.
     
P
Moderator
Join Date: Apr 2000
Location: Gothenburg, Sweden
Status: Offline
Reply With Quote
Sep 16, 2015, 05:06 AM
 
I think one big reason for the lack of any news about a file system is Apple's development methodology for the OS these days. They apparently work on an agile method where each team works on bite-size features, iterate over and over, and then they decide which features to include in each release. This is not the way you make a big new feature like a file system. There appears to be a safety vent in the form of the sort of skunkworks project that Swift apparently was, so maybe that is what is going on, but we'd never know until they announce the whole thing.
The new Mac Pro has up to 30 MB of cache inside the processor itself. That's more than the HD in my first Mac. Somehow I'm still running out of space.
     
OreoCookie  (op)
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Sep 16, 2015, 05:46 AM
 
Originally Posted by P View Post
I think one big reason for the lack of any news about a file system is Apple's development methodology for the OS these days. They apparently work on an agile method where each team works on bite-size features, iterate over and over, and then they decide which features to include in each release. This is not the way you make a big new feature like a file system.
Precisely. What is worse is that a filesystem takes years to make and has to be absolutely rock solid from day 1. Last I checked, btrfs, for instance, still seems to be struggling with stability at times despite the fact that it has been developed over several years with Oracle as a prominent backer. Probably this was what doomed discoveryd, a service as fundamental is not as easy to replace. Even before switching to agile development (to my knowledge this happened when Serlet let), the almost yearly releases made that harder.

BTW, I read on macrumors today that Apple is revamping and unifying their server infrastructure (originally reported by The Information, paywall alert), and amongst other things they are deploying their own hardware.
I don't suffer from insanity, I enjoy every minute of it.
     
CharlesS
Posting Junkie
Join Date: Dec 2000
Status: Offline
Reply With Quote
Sep 16, 2015, 06:23 PM
 
Originally Posted by Hawkeye_a View Post
Not to dwell on this .....

Min System Requirements:
Snow Leopard : 1GB RAM, 5GB HDD (https://en.wikipedia.org/wiki/Mac_OS...m_requirements)
Mountain Lion, Mavericks, Yosemite: 2GB RAM, 8GB HDD (https://en.wikipedia.org/wiki/OS_X_Y...m_requirements)

Rhetorical question: So what are these new critical features that require just as much memory as the whole old OS did? Or it is just being sloppy and letting the hardware pick up the slack?
Did you ever try running Snow Leopard on only 1 GB of RAM, though? It's not really a very realistic requirement.

As for the disk space, Lion and up download the operating system to your HDD or SSD first before installing it, so you need not only the space to install the software on your drive, but also (temporarily) the space to download the installer in the first place. Snow Leopard was installed from a DVD, so the installer didn't take up space on your drive.

There's also that half-gig recovery partition that it creates. Honestly, after thinking about it, I'm frankly surprised that they only increased that requirement by 3 GB — seems it should have been more than that.
Originally Posted by OreoCookie View Post
Thanks for the detailed explanation, I wasn't aware of this weakness, it seems like a recipe for spectacular disaster. With your explanation, it seems obvious enough for me, though, to be sure that Apple is aware of this.
The fragile base class problem has been known since the 1980s, and despite that, almost all major compiled OOP languages in widespread use today have an issue with it to some extent. Objective-C was really the only mainstream language that completely solved it, AFAIK, and that baby has been thrown out with the bathwater, along with a host of really great features that Objective-C's dynamism allowed, because the C++ people coming over to do iPhone development complained about the square brackets. I miss the early OS X days.

Oh well, they might fix it for the final ABI. They might.
( Last edited by CharlesS; Sep 16, 2015 at 06:51 PM. )

Ticking sound coming from a .pkg package? Don't let the .bom go off! Inspect it first with Pacifist. Macworld - five mice!
     
OreoCookie  (op)
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Sep 16, 2015, 07:07 PM
 
@CharlesS
In your estimation, are there any other big problems such as this one? What are they? And do the advantages outweigh the problems, i. e. do you think Swift is (or at least can be) an improvement over Objective C?
I don't suffer from insanity, I enjoy every minute of it.
     
CharlesS
Posting Junkie
Join Date: Dec 2000
Status: Offline
Reply With Quote
Sep 16, 2015, 10:16 PM
 
Originally Posted by OreoCookie View Post
@CharlesS
In your estimation, are there any other big problems such as this one? What are they? And do the advantages outweigh the problems, i. e. do you think Swift is (or at least can be) an improvement over Objective C?
Nothing as much of a game-breaker as that is, no. But Objective-C's dynamism was really unique in the world of compiled languages, and Swift almost completely eschews it in favor of the same sort of approach that C++, Java, C#, and all the rest of the languages out there use. It's disappointing. The dynamism of Objective-C was NeXT's—and early 2000s Apple's—secret weapon. It enabled a lot of features that when I first saw them, blew my mind. The entire Cocoa framework is built around dynamism—there are far, far too many examples for me to list in one post (and I really should be doing actual work tonight instead of spending time on this), but I'll list a few examples:
  • KVC and KVO. You can register an observer of a property of another object. When you do this, the framework code actually rewrites the setter method for that property (which you can do, because it's Objective-C, and everything's done at runtime, giving you a lot of power to change things) so that it calls some special methods to let your observer know that the property has changed. Then, you can have your observer do whatever you want—update a UI element, update a persistent data store somewhere, whatever—whenever that property changes. The Cocoa framework uses this to power a system called Cocoa Bindings, via which you can wire up a UI element in Interface Builder to be synced two-way with a property of any object, which you just specify by name in Interface Builder (because any class or method can be looked up by name in Objective-C). Change the UI element, the property gets changed. Change the property, the UI element gets updated. Seamless, and in many cases you can do it without writing any code at all. What if a KVO-compliant property is dependent on some other property? You simply define a method called +keyPathsForValuesAffecting<key>, with <key> replaced by your property name. When something registers as an observer for a property "foo" on class "MyClass", the framework checks MyClass to see if it has a method named "keyPathsForValuesAffectingFoo". If it does, the framework calls it, and if, say, the method returns "bar", then the framework registers for changes in "bar" as well, and notifies your observer if any occur.
  • Speaking of Interface Builder: Interface Builder. Foundation defines a protocol called NSCoding which all the UI elements (and lots of other things) conform to, which allows any conforming object to be serialized to binary data and unserialized back into an object. In IB, you create .nib files (well, actually now you create .xib files that eventually get compiled into .nib files, but same difference) that are basically a bunch of objects, serialized using NSCoding. Each object has its class name stored with it, as a string; the framework can then get the class name from that string, give the serialized data to the class, and ask it to construct an object from it. Similarly, you can include your own custom classes that IB doesn't know about in the nib file, no problem, and you can set properties on those objects through IB's inspector, simply by entering the name of the property, and the value you want it set to, even if IB has no idea about that property. Because it's Objective-C, the framework can just look up the property by name, and then set it. Connecting buttons, menu items, etc. to actions is, again, simply a matter of linking it up in IB; the framework can find the correct methods at runtime. Linking something like the "Print" menu item, which isn't linked to any one object, is easy too; you just connect it to the "print:" method on no object in particular, and the framework will figure out at runtime if something is in the responder chain that implements the "print:" method, and if it doesn't find anything, it greys out the menu item. As mentioned before, bindings can be set up in IB, and using NSArrayController, you can quickly and easily bind a table view to an array property and get features like sorting by column, adding and removing objects, and about a zillion other things for free. And all this stuff I've described requires you to write very little code, or in many cases, no code at all. Blew my mind when I first learned about it.
  • NSProxy. This is one of the trippiest things of all. If you try to call a method on an object, but that object doesn't respond to the method, instead of just crashing, you can implement a certain method that can intercept unknown method calls and do something with them. There's a base class you can subclass from, called NSProxy, that takes advantage of this to let you intercept method calls and forward them to something else. What exactly? Anything you want! Maybe it's an object in another app that you're communicating with via IPC, maybe it's an object that doesn't exist yet. Maybe it's something on the other end of a network connection! And in all cases, the object looks, to the calling code, exactly like its target object. Back in the Jaguar days when the OS X installers used to come on multiple discs, I used an NSProxy to represent packages that were on discs that hadn't been loaded yet, so that stuff elsewhere in my code could set properties on the package, and then once the package could actually be loaded, my proxy object went and set all those properties on the real package, and thereafter just started forwarding all message such that it effectively became the package object. The framework actually defines a method via which you can implement ordered to-many property accessors, one to insert objects, one to remove objects, one to get objects, etc. The property defined by these accessors can be backed by an actual array object, but it doesn't have to be; it could be something like an SQLite store, or anything really. You can then call a certain method, and the framework will give you an NSArray proxy that looks like an NSArray, walks like an NSArray, quacks like an NSArray, and can be used anywhere that an NSArray can be used—but it's actually a proxy that calls the object's to-many accessors every time it's accessed. So, you can have normal array that just happens to represent the contents of a SQLite table—or any other construct not normally represented by an Objective-C NSArray—in real time. Powerful stuff.
That's about 0.5% of it; I could keep going on about this all night, but I need to get back to work. But Objective-C had a lot of really cool abilities that have been overlooked by the general population because the language is "weird" and different. Are there ways to do these things in non-dynamic languages? Of course, but you will never find any ways to do them as simply and as elegantly as you can in Objective-C. To be fair, you can support a lot of these things (but not always implement them easily; Swift doesn't take kindly to you calling methods that aren't defined in the interface. AFAIK there is no way to write an NSProxy subclass in Swift) as long as you remember to put the "dynamic" keyword in front of your property and method definitions—this causes these members to be implemented as Objective-C properties and methods, which makes them work with IB, KVO, and other fun things—but since you're essentially writing Objective-C code with a Swift syntax here, you can't use any of the cool features that Swift has that Objective-C doesn't support. Want to support tuples, default arguments, generics, etc? Well, you can't, because Swift has no facility of its own for message sending, it's only got what Objective-C provides. It also gives this the feel of being "legacy", with the fear that it may become deprecated someday. Will the open-source version support ObjC at all? Will the dynamic features be available at all if you use Swift on another platform? It's not clear at this point.

Can Swift be an improvement on ObjC? In a lot of ways, yes. The syntax, definitely. I'm quite happy never to have to type NSMutableArray *array = [[NSMutableArray alloc] init]; again. The type safety has some things going for it, too, although it can cause PITAs sometimes, although the Swift team has massively improved things in Swift 2.0, to the extent that I'm pretty much down with it now. It's really nice to know what types an array holds. Closures are much, much nicer to use in Swift than in ObjC, whose syntax for them was kind of horrible. And TBH, there are a lot of things in ObjC that really needed an overhaul—I just wish Swift hadn't completely thrown out the dynamic baby with the bathwater. But anyway, it's easy to find posts gushing about Swift's virtues on the Internet, and I need to get back to work.
( Last edited by CharlesS; Sep 16, 2015 at 10:27 PM. )

Ticking sound coming from a .pkg package? Don't let the .bom go off! Inspect it first with Pacifist. Macworld - five mice!
     
el chupacabra
Mac Elite
Join Date: Apr 2001
Status: Offline
Reply With Quote
Sep 30, 2015, 02:34 PM
 
Originally Posted by OreoCookie View Post
Automated file management

Apart from the obvious connection to a more modern filesystem, half of a more automated file management is a user-facing feature. If you look towards iOS in particular, it is clear that Apple hasn't cracked this problem yet (nor anyone else for that matter). Most people are horrible at naming files, and even to me who tries to put a lot of effort into it, it is a chore to rename the new pdf files I have downloaded so that they are easily searchable. (I'm a scientist by trade, so I download a lot of papers which have very cryptic names.) I have no easy answer to this problem other than the obvious commend that it is a problem.
What if we made meta data more user accessible. Change the way we think of saving a file where we are given 1 field to type random keywords or a sentence for the name. Instead when the save dialog pops up there are multiple optional fields for preset categories & subjects to choose from; say 6 different optional subjects fields which are hierarchical. After the preset subjects & super categories you would have a field for key words or phrases that dont show up in the preset subjects drop-down list. For dates you would have "date started", "date published/Completed", & "updated".

We could base all this on what we've learned from subjects, & search habits on the web, then standardize the method for all industries and all local, network & web based search applications.

Your super categories would tell what the document is:
General
Paper
Ad
Message
Notes
List
Brochure
Postcard
Flyer
website
etc
Lets say you had a list of something youre looking for, you wouldnt need to remember the name just that it was a list and perhaps 1 of the many subjects/keywords pertaining to it.

Another super category would say what it's for:
General
Personal
Trying to sell product / services
Trying to buy...
Provide info
Workplace exchange
Project exchange
Dissertation / Research
School project
Notes
etc

Next would be the primary subject box. You would be forced to come up with 1 word (from a list of hundreds of preset subjects) that best describes your document before other uh.. sub-subject fields would be accessible. (there would be a search box for this since you wouldnt want to sift through 100's of subjects).

For example if your doc was wedding photography, your primary subject could be Ceremonies/wedding, with sub-cat subject 'photography'. If your research paper was "alternative energy from algae produced oil"; your primary subject could be Energy/Alternative with sub-cat subjects biofuels, plants, petroleum, microbes. Assuming the word algae wasn't available in the subject list it could be added in the keyword field.

The key words would be highly customizable. You could specify that your document only shows up if someone types both words ie. 'car transmission' rather than just car.

Google currently has preset categories for businesses submittals and they are more restrictive than what Im proposing here. Not to mention while google's search strategy has taught us a lot over the years it still panders to a very unnecessarily arcane way of finding information. Whenever I try to find camera stores or photography stuff google slams me with results for wedding photographers first. If I search anything about cars, no matter what I type Google pukes back what seems like every site related to automobiles.
     
OreoCookie  (op)
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Oct 1, 2015, 11:59 AM
 
That feels a bit like a crutch to be honest. Only the most compulsive amongst us will use it, the cognitive load is too high — especially if something falls between categories. But perhaps the apps can help here, but in the end, automation is the key I think.
I don't suffer from insanity, I enjoy every minute of it.
     
subego
Clinically Insane
Join Date: Jun 2001
Location: Chicago, Bang! Bang!
Status: Offline
Reply With Quote
Oct 1, 2015, 03:08 PM
 
An added wrinkle is PDFs get updated.

I was planning on coming up with naming conventions for my collection, but the only way I can reasonably deal with versioning is to have new ones wipe out the old ones, which only works if I leave their given names untouched.
     
el chupacabra
Mac Elite
Join Date: Apr 2001
Status: Offline
Reply With Quote
Oct 1, 2015, 10:52 PM
 
Originally Posted by OreoCookie View Post
That feels a bit like a crutch to be honest. Only the most compulsive amongst us will use it, the cognitive load is too high — especially if something falls between categories. But perhaps the apps can help here, but in the end, automation is the key I think.
Even if we could get people to just fill out 1 of the subject fields based on their needs? To be clear my goal isnt to get everyone to use all the category fields for every file saved. The purpose of having so many categories is to create a (hopefully) non-changing standard that can work for anything. It would suck at 1st but over time people would get used to it for the important stuff. For people writing scientific papers or websites it would be nothing for them to use all the categories, as it's already having to be done in some database somewhere anyway. There aren't many examples where automation measures up to the manualation.
     
OreoCookie  (op)
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Oct 2, 2015, 01:40 AM
 
Originally Posted by el chupacabra View Post
For people writing scientific papers or websites it would be nothing for them to use all the categories, as it's already having to be done in some database somewhere anyway. There aren't many examples where automation measures up to the manualation.
As luck would have it, this is what I do. I do use metadata on a very limited scale, but especially once you need to rely on exchanging data with other people who aren't as meticulous, all bets are off. I understand that automation cannot rival the human mind, but on the other hand with specialized algorithms for different data types and quite a bit of CPU sweat, they can do a good enough approximation. Similarly to how Siri simplifies setting timers or pick music to play for me: Siri is not smart, but if you stay within the treaded path she simplifies my life a little.
I don't suffer from insanity, I enjoy every minute of it.
     
OreoCookie  (op)
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Oct 11, 2015, 11:03 PM
 
I don't suffer from insanity, I enjoy every minute of it.
     
subego
Clinically Insane
Join Date: Jun 2001
Location: Chicago, Bang! Bang!
Status: Offline
Reply With Quote
Oct 12, 2015, 12:09 AM
 


Can we start calling you by your first name now?
     
OreoCookie  (op)
Moderator
Join Date: May 2001
Location: Hilbert space
Status: Offline
Reply With Quote
Oct 12, 2015, 01:41 AM
 
Originally Posted by subego View Post
Thanks
Originally Posted by subego View Post
Can we start calling you by your first name now?
Sure.
I don't suffer from insanity, I enjoy every minute of it.
     
Cap'n Tightpants
Addicted to MacNN
Join Date: Oct 2014
Location: Shaddim's sock drawer
Status: Offline
Reply With Quote
Oct 12, 2015, 05:11 AM
 
OreoCookie isn't his real name? I call shenanigans.
"I have a dream, that my four little children will one day live in a
nation where they will not be judged by the color of their skin,
but by the content of their character." - M.L.King Jr
     
   
Thread Tools
 
Forum Links
Forum Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Top
Privacy Policy
All times are GMT -4. The time now is 01:08 AM.
All contents of these forums © 1995-2017 MacNN. All rights reserved.
Branding + Design: www.gesamtbild.com
vBulletin v.3.8.8 © 2000-2017, Jelsoft Enterprises Ltd.,