9 ms·
iOS is anti-Unix and anti-programmer
- gapanalysis 15y agoI'm a marginal Linux script writer at best but I appreciate the point regarding composability. Still, I have to wonder whether composability is as relevant today as 30 years ago, not because it isn't a desirable attribute for programmers but because the thousands of developers that are churning out limited feature, limited purpose apps don't seem to miss it. Happy to learn if I'm missing something here.
- Loic 15y agoor you need the thousands of one task app to mitigate the lack of composability.
- pointyhat 15y agoComposability is what makes something greater than the sum of its parts. The iPad, I found, is so constrained as to be useless. I know of very few people who are still using their iPad regularly after 6 months or so precisely because of this (and the star trek wow factor has worn off). Ironically, composability is why I still carry around a 15-year old TI92 calculator instead of an iPad, even though my peers look at me strangely. Oh and it still runs on good old fashioned AA batteries :)
- tomjen3 15y agoHow many of those people you know with iPads are what we would call normal people? I only ask because it seems to me that most of them wouldn't mind at all that one couldn't be productive on the iPad since surfing and a few games are mostly what they use it for.
- pointyhat 15y ago80% I'd say. It seems to go like this: 1) They bought it with a purpose in mind but it didn't work quite as well as they were hoping (khan academy, mapping, general use, recipes in kitchen, streaming video). 2) The games last a while but they are mainly novelty rather than immersive or lasting so it's back to the XBox. 3) then the web browsing gets frustrating as streaming video is choppy over WiFi and impossible over 3G and "what do you mean flash or java doesn't work" - I can't play facebook pool. 4) then the keyboard becomes frustrating when they try and do real work because it's not tactile. 5) then they switch back to their laptop when they have to do something like mail merge. 6) then the ipad goes in a drawer, followed by ebay about 2 months after they find it again. I've seen this so many times across about 12 ipad owners now. 20% "software dev". 40% "tech enthusiasts". 40% "joe average". Bear in mind this is just my observation.
- guelo 15y agoThis is close to my experience. I still use it but less and less, the laptop is so much more flexible and powerful and really just as convenient around the house, even more so at times since it stands up by itself. The big win for the tablet form factor is as a book reader and for traveling because of the great battery life. But considering how many of these things they continue to sell I don't know if these anecdotes really add up to data. It really is permanently replacing a computer for a lot of people.
- pointyhat 15y agoIt's a fair point. I'm looking out for small-form-factor Windows 8 devices which are hybrid tablets (much as the ThinkPad X61 but less clunky) and have 10 hour+ battery life. I'd argue that there is no dedicated tablet market then.
- thomasgerbe 15y agoMy friends have had a very different experience. It's much more comfortable to hold on the couch, at the cafe, in bed, or on the plane/car than being on a laptop.
- pointyhat 15y agoIMHO I think that's wierd. I'd never consider using a computer in any of those places personally. I consider them all "downtime".
- buff-a 15y agoI would like to buy your friends' iPads if they are not using them. Please have them put them on ebay or craigslist.
- kolinko 15y agoI disagree.. The app interoperability in iOS is achieved, but in a different fashion. You don't have files, but you DO have logins and APIs. Say, Twitter - you want to tweet something from another app? No problem, you implement the right API to do that. Or perhaps you'd like to export a text file, so it can be received by another app? No problem - you use the clipboard & store the file there, or publish the file at a secret URL, and import that url through another app. Is it as easy as save+drag&drop? Not yet. But filesystems also took some time before they were perfected. Give Apple one or two years, and iCloud will offer you as much as the desktop filesystem. And more. Files are not the only way to go. If I want to share a text document with my friend, I don't attach it. I put it into Google Docs, and send my friend a url. Much more convinient - avoids a plenty of mess with versioning etc.
- kalleboo 15y agoAndroid's Intents architecture is far more elegant than forcing every app developer to reimplement every API or specifically support every secret URL handler. Being able to make a client for, say, a new social network, and instantly having every app on your phone support it through the generic "Share" button they already have is a very powerful tool.
- martinpannier 15y agoThe capacity to compose is giving way to the possibility for almost anyone to express his/her creativity in a concrete way. So maybe what you're saying is true, but then iOS is pro-artist and pro-creation. See that 10-yr old Taiwanese "programmer" for example. And what are computers if not tools for creation? "Unix" and "programming" are means, not ends.
- mas644 15y agoIt's not anti-Unix or anti-programmer...it's all about being anti-freedom. All these companies want to do is turn your computing experience into a locked down, controlled, monitored experience. They want to turn your limitless and powerful computer into a home appliance...like a blender or electric razer. No way to customize, no way to modify, no way to organize thoughts your way. No hacking or "jailbreaking" into your own device to give yourself features like "tethering". That would violate the ALL HOLY EULA (unless you paid $5.99)!!! Also no need to understand how the technology works -- technology is now magic. And when technology becomes magic, they have control over you. Google manages all your e-mail, Facebook and iPhone manage your social life. Google and FB make their money through selling your information to marketing companies. Apple makes it by selling you hardware. Both of them make money by exploiting the lack of will by the masses to understand their technology and how it affects their rights and privacy. They make money when they are in control of you and your data. They make money by making you think you need a new computer when all you need is a better operating system. Getting rid of files is like Newspeak from Orwell's 1984. They want you to be dumber. They'll take care of savin that file for ya, you just worry about eating nachos and 'batin. Besides, they need to take a looksie at it first to infer information about your shopping habits...
- martinpannier 15y agoMost comments in this thread strike me as being anti-"normal users". This is the elite, talking about how they can maintain their elite position.
- tudorizer 15y agoWell observed :)
- onosendai 15y agoThat's not what the parent, or the article is saying. Don't turn this into some sort of class warfare for the sake of trolling. The ability of an OS or application to expose data in order to allow you to manipulate it as you see fit, does not preclude it being user-friendly and straighforward to use. That funcionality might very well be hidden away, but available if you're inclined to use it. The point that is being made is that this level of openess and flexibiliy is directly at odds with the need for control of some companies over their OS/applications and the content whithin, usually for the sake of profits.
- ericHosick 15y ago"The more I use graphical interfaces (or anything that does not operate on text streams - commandline curses programs included), the more I am struck by how profound the loss of composability is". Exactly this! You've hit on the nail on the head here. Computing devices are inherently non-composable. Mostly because we, as software developers, have failed to create frameworks that are fully composable. The real problem is we still need to program.
- bad_user 15y agoMostly because we, as software developers, have failed to create frameworks that are fully composable. This is MBA-talk. Big companies would like nothing more than for programming to become something unskilled workers can do. I would like that too, but from a different perspective. Programming is not really like assembling Lego blocks. And if you pick any other industry, taking a close look at how new developments are made, you'll find that sharing in software development is a lot more common and a lot easier. After all, when building new software, you don't have to write your own OS, your own compiler, your own debugger, your own libraries built on top, or even your own domain-specific framework. Well, unless you have the not-invented-here syndrome. And what does "fully composable" mean anyway? The real problem is we still need to program. Well, for specifications to get written, you still need to write. For designing a user interface, you still need to draw. For doing architecture, you still need to think.
- cageface 15y agoI still haven't seen a persuasive attempt to make graphical interfaces truly composable. Composing streams of characters is child's play conceptually compared to any kind of meaningful visual composibility. Just look at the api for a typical button widget in your framework of choice. How on earth are you going to expose this in a user-friendly way to the non-geek?
- ericHosick 15y agoYes. My bad. I should have said "The real problem is we still need to code." I do agree with you that we will always need to design interfaces, engineer solutions, gather requirements, understand the systems being developed, etc. But we should not and will not need to code the solution. What does "fully composable" mean? A framework/architecture that is fully composable would be one that allows you to implement any solvable system without writing code. As for the "MBA-talk" stuff... It is possible to create frameworks that are fully composable. If you would like, I can chat with you about such things outside of HN.
- tudorizer 15y agoOS X command line user here, after testing various other 'nix distros in the past few years. You're a bit harsh on the topic. Sure, composability is awesome for the reasons you mentioned, but look at who's using iOS devices. Do they need more? There are days when after being bombarded with information, an app that does one thing is a breath of fresh air. "But it’s not a computer, it’s just a glorified palm pilot with a few bells and whistles". You can SSH into it if you want to be hardcore ;) When I'm using an app to track expensese while at the supermarket or taking notes while on the train, I really don't care about "composability". Why should I?
- gillygize 15y agoActually, interoperability between apps is possible through things like URL handling and UIPasteboard. I am dreaming of the day that something like the UNIX toolchain can be assembled by sending data from one app to another like this. Enough app developers just need to get together and decide to make it. I suppose that you could not script it though, so it would still be more limited. But you could send data step by step through a series of apps in a chain, which could allow for creative interoperability.
- iradik 15y agoiOS has no concept of files (for the user). There's no common bit you can share between two programs. Of course, there are ways around this (Dropbox API for example). I'd say removing this concept has probably made iOS a lot easier to use. The big danger with iOS is that it's also attack the open web itself. What if the catalog the author downloaded was only available in an iOS and android app and not on the web. That's when we really start to have problems.
- sambeau 15y ago"Those days are dead and gone and the eulogy was delivered by Perl."
- tobiasu 15y agoDoes HN make the first character of the title upper case? It's iOS. IOS is Cisco's Internetwork Operating System. Please get it right.
- deleted 15y ago[deleted]
- quandrum 15y agoAfter reading this, it struck me as this is how intents could (and sometimes) work on android. It's not perfect. You can't string together a bunch of apps. But it's nice when I click on a youtube video, the youtube app seamlessly takes over. Same for email, or reddit links.
- Newky 15y agoAs someone who spends almost all day either in vim/commandline mode or web browsing, I want to make the point about the unix pipe point, and that with gui's this is impossible. Its not even the fact that it would require a lot more effort to sort and format a list of 100,000 names into our predefined pattern, but more the fact that the power of the command line is lost. I find as I'm programming, I gravitate towards languages which can give me good access to this piping system, and give me access to stdin as a stream. Often in languages such as Java, pushing it information into a file and reading from the file is the easier solution and although this may be the more long term solution, for shell scripts etc its hard to beat the likes of perl's "while(<>)", not to mention the fact that awk works like this by default. Also in terms of bringing this piping paradigm to the GUI world, I think the closest thing I've seen is Intents, both on the android side and the new Web Intents that both Google and Mozilla are working together on. Technically this seems like a more hefty version of pipes to me.
- satori99 15y agoIntents do go a long way to providing composability for Android. I didn't fully grok them when i started created Android applications. More or less simply used them as the way to go the next activity, but they so much more powerful than that :P
- stuartmemo 15y agoIs Automator on the Mac not sort of a GUI version of pipe? "The output of the last action can become the input to the next." - http://en.wikipedia.org/wiki/Automator_(software) http://en.wikipedia.org/wiki/Automator_(software)
- thesz 15y ago>I want to make the point about the unix pipe point, and that with gui's this is impossible. There is a GUI programming paradigm, called Stream Processors. One of earlier Haskell GUI libraries was developed over those processors. Take a look at Fudgets: http://www.altocumulus.org/Fudgets/ http://www.altocumulus.org/Fudgets/ You can pipe them, you can arrange them into DAGs and trees (as in DirectShow or Gstreamer). You can create cyclic structures. I haven't seen Intents. But I think that Stream Processors are closer to (and even surpass) command line pipelining.
- elisee 15y agoWindows 8 has Charms, Android has Android Intents, and Google & Mozilla are working on Web Intents. Composability is on its way back at the mainstream user level.
- patrickc 15y agoMost people just browse to web. If you want a shell, it's way easier to use a linux thinkpad that has a proper keyboard and proper OS, as opposed to an iPad. But that's not to say that an iPad is not good for some things.
- yardie 15y agoHow many people actually program on an iPad or iPhone? I mean in any real sense and not something simple like SSHing into a unix box to update a config file. None. That's not the purpose of it. Apple has never implied nor mentioned anything like that should be or could be done on that device. It's built to browse the web and use touch applications. I despise articles like these because they try to put products like these in impossible situations that suits no one else except to drive traffic. Yes your iPad is anti-programmer the same way that a wheelchair is anti-stairs.
- andybak 15y agoI think the title is misleading. The author hints at a much bigger issue (I'm not an iOS user so I can't say how valid his point is but it's not about 'programming' per se.
- yardie 15y agoI don't think the title is misleading. He spent over half the blog talking about how you don't have access to POSIX tools on the iPad. But the iPad isn't a Unix. It's only when you jailbreak it and add the unix tools do you even get to a commandline. There are many applications that are GUI based and do good message passing. But they are on the desktop the iPad isn't that. It may share the same underpinnings as OSX but it is not a desktop bound OS, it is an appliance. He doesn't like the sandboxing but the sandboxing is also why it is secure.
- natch 15y agoI love composability as much as the author, but his opinion is, to put it kindly, not well informed. iOS has a myriad of mechanisms for sharing content within and between apps, bot from the same developer and from different developers, with and without prior agreement, and for composing workflows and experiences that are greater than the sum of the parts. Some of these mechanisms are new, and the possibilities have not yet been fully plumbed. Some have been around for a while. But iOS is just getting started. People said the iPad was a "read-only" or "consumption-only" device, but, over time, we have seen tools come out that are great authoring tools for various types of content. The same thing will happen (and already has happened, but is growing over time) with cross-app workflows. As far as the title, "anti-Unix and anti-programmer," taking the first part, well yes it doesn't provide a built in command line for programmers, if that's what he means, although it does happen to be built on UNIX, and it benefits from the maturity of UNIX (and gives back, with OSS tools like LLVM). On the second part, the tools it does provide for programmers are truly wonderful - the Objective-C language, the frameworks, an amazing compiler with static analysis (if you don't know what this gives you, the answer is pure joy), the development environment (though Xcode 4 had a rocky rollout, it has proven itself to be a sweet update), the patterns that are used and encouraged, and the architectural choices, are all very well thought out. Programmers coming from other mobile platforms have told me that they left behind a lot of pain, and found a lot of power on iOS. "Anti-programmer" is a very odd way to describe a platform that makes programmers who get into it happy with their coding experience, makes them money, and gives users a great experience while keeping their private information secure from abuses by ill-intentioned programmers. I can't help but be baffled by where he is coming from. I love UNIX, the command line, and composing commands, but then I love cooking in the kitchen too. Different environments come with different tools. If we want to compare just mobile development environments, iOS is one that has clearly been developed with a careful deliberative process intended to preserve good battery life, protect user data, and avoid painting itself into any architectural corners. There are constraints. There always are. But iOS is growing, with very exciting (for programmers) features with every update, including deep stuff that goes down to the core architectural level of how your data flows in your program, in ways that promise a very, very happy life for iOS programmers on multiple core devices. The future is very bright for iOS programming. The "anti-freedom" charges, the locking out of certain features, you get the same stuff on any platform. Just try to publish an app that abuses the Android logo in any Android market. Not that you would want to, but then, I wouldn't want to publish an app that steals user data, and that's exactly the kind of thing iOS does not give me the "freedom" to do... and that's a good thing. All the mechanisms for preventing abuse could have been done in a much more heavy-handed way, such as by being tied to a central email account that you use to authenticate to dozens of critical services you depend on in your life, that can be yanked and shut down at any time, with a very tenuous appeal process. As developers we are lucky to have a platform that has done things in such sensible ways.
- rimantas 15y agoPhotoshop is anti-unix and anti-programmer. Because I cannot program in it. Duh. It's official—from now on I am anti-stupid-titles on HN. Will flag any submission with a meaningless title like this. What does it mean being anti? It's either active stance against something or at least major disagreement. I cannot see how iOS is actively fighting unix (being based on it) or programmers (being created for it and offering thousands of API for them). Neither I see how iOS is passively anti-unix and anti-programmers. My car has probably a dozen computers but I cannot program on it. So what? My TV probably runs linux, and I cannot program on it either. Does it make it anti-linux and anti-programmer? Why do some expect anything with cpu, display and storage to be full-blown programmers workstation is beyond me.
- william42 15y agoPhotoshop doesn't have a scripting interface? I'm surprised.
- lootabooga 15y ago> "The more I use graphical interfaces (or anything that does not operate on text streams - commandline curses programs included), the more I am struck by how profound the loss of composability is". Er, try Automator.app for an example of non text-stream "composability". Also: Quartz composer. Also: Max/MSP. Oh, and text-stream composability might be the "unix way" in, but is not exactly programming, it is command line glue. Composability in programming itself is achieved via other means, for example objects, widgets, components, messages, etc.
- andosa 15y agoI couldn't agree more. Some people say that iOS is not meant to be a programming device and that it is great for what it's meant to be, e.g. reading and watching content, but I disagree. Just a few examples. - The lack of user facing filesystem means I have to jump through wierd hoops when doing simple stuff like managing my pdfs. An example, I get a pdf and open it in iBooks. A few months further on, I want to read it again and do some annotations, but I need another app for that. Well tough luck, i cannot open the pdf in the other app, since the pdf is tied to iBooks. If i'm lucky, maybe i'll remember i got it via a particular email, and resend it to the other reader. Most probably though, no annotations for me on that pdf. - I have a network drive and would like to stream movies from it using VLC (due to native player not supporting the encoding). I also have a filebrowser app that can do smb. But there is no way to connect the two. I can either download the whole movie and send it to VLC (which takes a long time and space on my iPad) or try to look for a video player that does smb :S. I could go on and on with such examples. IPad is obviously a beautifully designed and built device but I would definitely not purchase another one or recommend it to a friend, exactly because of the shortcomings of iOS.
- Apocryphon 15y agoCould you achieve the same things on an Android tablet? On the Touchpad? On the Playbook? I'm not sure if that is an inherent issue with iOS, or rather functionality that mobile OS's in general have not yet bothered to implement, as tablets are still marketed towards common consumers, not power users.
- andosa 15y agoDont know about touchpad or playbook, but you definately can on Android.
- pinaceae 15y agoI don't get the article, at all. Do you have a command line in your car to change the radio station? Do you expect to have the controls when being on a plane? You want a device that let's you program? Buy a notebook. I hear the MacBook Airs are excellent. Some of my friends are musicians and LOVE the iPad. Garageband on it blew their mind. Does every computing device need to behave like a PC?
- epo 15y agoDon't attempt to reason with the self-righteous. Apple is EVIL, they are stealing your freedom, read the memo.
- EtienneJohnred 15y agoBREAKING NEWS: iOS Was Not Designed for Neckbeards Full story at 11
- decklin 15y agoI hate to be that guy, but don't complain about how something isn't as awesome as Unix pipes and then use cat | grep | awk where you could have just used awk.
- naveengarg 15y agoHave you seen http://schemes.zwapp.com/.json?page=1 http://schemes.zwapp.com/.json?page=1 There is the beginning of some hope: http://gigaom.com/2011/06/09/zwapp-builds-a-social-network-for-app-discovery/ http://gigaom.com/2011/06/09/zwapp-builds-a-social-network-f... its a database of all the apps that use custom url schemes. You can also use javascript bookmarklets to compose with any webapp (webpage). Hopefully one day apple will expose a framework that will allow users to do in app user level scripting for all apps. And maybe even allow cross app scripting with very well declared uses by responsible / licensed people.
- daijo 15y agoThe author clearly mistakes indifference for antagonism. Yes the majority of consumer devices are both Unix and programmer indifferent. One might argue that for the vast majority of people this is a good thing. And followers of the Unix way never really seem to run out of ways to scratch their itch anyway.
- spiffworks 15y agoEh, I can understand the outrage the author feels. I used to be so pissed off when people were contented with their iOS devices. But I have my Nexus One, I can hack the hell out of it, it is state of the art, and I don't really care what anybody else uses. If people find that trading freedom for convenience is acceptable, then that is their choice to make.
- gavinlynch 15y agoYou used to be pissed off when consumers chose a product that fit their needs? This is an attitude I just can't understand.
- spiffworks 15y agoIt was just that these people were happy with having limits on their computers. I guess the difference in mindset is that while normal people want computers to be appliances, we want everything to be computers.
- kaishin 15y agoI wouldn't expect anything less from a programmer. But then programmers (as customers) are not the ones making Apple the most valuable company in the world. Comparing something made by programmers for programmers to something made by a consumer product company for consumers is pure nonsense.
- kaishin 15y agoI expect nothing less from a programmer. But then programmers (as customers) are not the ones making Apple the most valuable company in the world. Comparing something made by programmers for programmers to something made by a consumer product company for consumers is pure nonsense.
- chugger 15y agoiOS is anti-Unix and anti-programmer? It must be why Android's trying so hard to copy it.
- sehugg 15y agoAs a programmer who makes his living from iOS, and would not be doing so if Apple didn't show the world the right way to sell software directly from developers, I disagree with at least half of this headline.
- dasil003 15y agoSo only programmers deserve nice things? Look, I get the danger the app-storification of software, and honestly it scares me more than Microsoft ever did, just because it's so appealing from a consumer perspective. But barring the removal of direct distribution and the UNIX shell, I say more power to Apple in terms of re-inventing the consumer computing experience. What the author doesn't seem to understand is that great design and usability can never be achieved solely by adding features. Things need to be taken away as well. I can personally vouch that taking these things away is a huge win for someone like my mom who will never understand or be comfortable with filesystems. For her, the limitations of iOS take her from a place of constant fear to a place where she can actually explore and figure things out like us geeks take for granted. It might be uncomfortable to think that tech devices are no longer primarily for geeks, but that chasm has been crossed, and we have to acknowledge that programmer devices are increasingly going to be distinct from the mass market devices.
- william42 15y ago> we have to acknowledge that programmer devices are increasingly going to be distinct from the mass market devices. Actually, this creeps me out more than anything else, because where are we going to get new programmers? The prototypical childhood story of most of us is that of discovering a programming language on our computers and learning through experimentation. Will that be possible in an iPad world? Though this brings me to an idea I've had for a while; a website where children can learn to program from their browser, since every modern browser has a JavaScript interpreter built in.
- dasil003 15y agoNot too worried about this personally. You read a lot of articles decrying the state of programming for kids these days, but I think it's all nostalgia. Programming is more accessible than ever. The only problem is there's way more distraction now, but the number of young programmers seems to keep growing.
- deleted 15y ago[deleted]