Why Developers Are Switching To Macs
snydeq writes "Programmers are finding themselves increasingly drawn to the Mac as a development platform, in large part due to Apple's decision to move to Intel chips and to embrace virtualization of other OSes, which has turned Mac OS X into a flexible tool for development, InfoWorld reports. The explosion of interest in smartphone development is helping the trend, with iPhone development lock-in to the Mac environment the chief motivating factor for Apple as a platform of choice for mobile development. Yet for many, the Mac remains sluggish and poorly tuned for development, with developers citing its virtual memory system's poor performance in paging data in and out of memory and likening use of the default-network file system, AFS, to engaging oneself with 'some kind of passive-aggressive torture.' What remains unclear is whether Apple will lend an ear to this new wave of Mac-based development or continue to develop products that lock out uses programmers expect."
As opposed to the Windows paging system? Has the author used a Windows OS lately? Swapping is a *bleeping* killer! Especially when you have more than enough memory not to swap. :-/
So don't use it. Macs support CIFS/SMB pretty darn well these days. I keep hoping that someone will come up with a better replacement, but CIFS/SMB will continue to work until that day comes.
Javascript + Nintendo DSi = DSiCade
But all that Mac gaming makes up for it.
OS X is really a good middle ground between Windows and Linux. OS X supports many of the Windows Protocols (a lot better then linux in some ways) as well there is a better selection of high quality closed source applications, then linux has. However being Unix based it it is more stable then Windows and less prone to viruses and other malware. Then combined with virtualization you can run Linux OS X and Windows all at the same time for cross testing your code.
It has a clean interface and performs well. You are not fussing with simple stuff. all in all it is good for development. (And the Apple keyboards have extended function keys that makes compatibility with old Vax systems much nicer too)
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
AFS is something else altogether.
You would think that the fact that OS X is UNIX 03 certified might be of some interest to developers as well.
Sure, maybe not as much as the reasons stated above, but... it is worth mentioning. And just the fact that it is any flavor of Unix-like OS is attractive to many.
once again macs seem to be innovating, the dual gpu thing
You mean the severely limited, non SLI-hydra-whatever GPU thing that requires a restart/logon-off cycle just to switch?
That thing was actually released on a few toshiba laptops (and sony laptops?) long before el-jobso did his magic.
Of course, the (software) inflexibility of that configuration is actually a feature, according to apple. So, I digress.
Almost as bad as the Ron Paul trolls on Digg.
I can think of a few reasons why Macs are becoming more popular (especially in this field). Like the first commenter said, has this guy used Vista? 1. More and more programs are coming Linux. Like today we have Flash. 2. Stable OS/Well built systems. 3. More people are realizing that you don't need windows to read windows files. Just format your junk to FAT instead of NTFS. This is just brushing the surface...
Uh...isn't the point that you can run any OS you want on Mac hardware? Isn't that what makes them good development machines? If the paging system or AFS is torture, just boot frickin Windows. These flamebait articles are so tiring.
Facebook is the new AOL
recently got into Cocoa programming and for the most part absolutely love it, Apple has obviously put a lot of effort into their system and it shows. However, Apple seemingly skimped on one of the most important, but usually easiest to implement parts of their system: good, up to date documentation!
For instance, in the QTKit documentation is just beyond abysmal. There is little documentation on how to do very common things, such as set your export settings. I had to do a lot of hackery just to figure that one out(and its still far from straightforward), they have typos that have been there for eons, even though I used their feedback form to tell them about it, and perhaps worst of all, they don't even mention many methods that are in the API.
On multiple occasions I have had to go into the header files just to find out what I could do with various classes. I shouldn't have to do this! Compare this experience with say, Javadocs and its night and day. While Javadocs are far from perfect, they are infinitely better than what Apple puts out.
Why would Apple do something like this? It costs them almost nothing to create a lot of these docs, and actually updating them once in a while could save developers tons of frustration. I guess maybe the paid ADC accounts are bit better? Thats really a low blow if they are though....
Furthermore, Apple tends to deprecate APIs without really replacing them with an API with the same functionality. Case in point is QTKit. Its a nice API for what its worth, but there are tons of occasions you either:
a) have to go down to the old Quicktime C APIs(which means your code won't be able to compile in 64 bit and may not work at all on Snow Leopard) or
b) Have to come up with some creative hacks to get the functionality you want.
For instance, in order to get an MPEG-4 formatted to anything but the default size you either have to use an atom container which is 32 bit only, or manually set up a Quicktime export with the settings you want, write some applescript to save that to a file, THEN read that file in as NSData THEN set that to be your export settings(which on Apple's website has the oh so helpful documentation:"Information to come."(That was over a year ago).
Monstar L
Andrew File System? Surely not. Perhaps they meant Apple Filing Protocol (AppleShare over IP (and sometimes AppleTalk)).
I had the same question, and thus hit teh google...
Strangely enough, the answer appears to be "Yes"
http://www.dementia.org/twiki/bin/view/AFSLore/WhatIsAFS
I was pretty surprised, too. I thought AFS died with the Andrew project.
Surely, though...Leopard must support NFS? It's certainly good enough for dev work.
Do daemons dream of electric sleep()?
I have spent the last 8 years writing visual basic applications in Windows
At Christmas last year I got myself a Nokia internet tablet - it runs Maemo Linux.
Surprisingly now, 11 months later I am comfortable back in C, have a nice little library and *know* I have found a better path.
Its been a kind of torture as well, everything was new and sometimes finding information is a brutal experience.
If it hadn't been for the great community around maemo.org I wouldn't have gotten as far as I have.
It was this community element which was missing with other devices and systems when I was looking around.
liqbase
Apple needs a mini tower not a over priced mini laptop with out a screen in a small box.
The mac pro is nice but $2300 and only a $30-$50 video card?
AIO also are not that good.
Where is the mini tower that can do dual display?
I've been using a Mac as a development platform for years. Never had an issue. Just because it's an Apple system doesn't mean one has to use AFS or write Cocoa apps.
AFP is not strange, twisted, or any sort of barrier for programmers. Over the years, I have found AFP performance (to netatalk) out of the box trounces Samba by almost a 1:2 margin on raw file transfer speed, and 10:1 on directory-intensive operations. It supports international character sets without fuss, and folder/file name restrictions are downright amazing compared to the shit that is SMB/CIFS.
Don't like AFP? Fine. Use SMB (and yes, you can turn off the "annoying dot files".) Or NFSv4. Or SSHFS with MacFusion, making any Unix box you've got a file server with the installation of one package. There are installers for AFS and (I may have this wrong) Coda.
Please help metamoderate.
Okay first, about the title: All programmers are developers, but not all developers are programmers. Second, it isn't just developers, it's everybody. Vista exploded on the launch pad. Nobody's upgrading. So for the last several years who's been the only commercial manufacturer to be releasing new spiffy shiny? Apple of course. So, umm, HELLO? Of course people are switching, Apple is the only company offering anything new!
Microsoft wasn't advertising because they had nothing to advertise -- The only major products they've been pushing out are all incremental upgrades for commercial use. Now we see giant billboards about how great Vista is, but please... The media shot and killed that cow, now they're just trying to recoup their investment. As an aside, I've been waiting for this moment since I got into the industry! Now, whatever you want to say about Macintosh as a platform, you can't deny their marketing has been so good it's making history. That, and Apple has at least three batallions of lawyers ready to crush anyone who "Thinks different". And the only personalities Microsoft has is Bill Gates (now retired), and Balmer, better known as the amazing flying monkey boy.
Lastly, if we want to talk about developers, not just programmers -- which would include web and graphic designers, architects, etc., Apple has enjoyed huge market share here for one very simple reason: It's simple and it works. This is an industry where the software on a machine costs several times the cost of a system and people happily pay for it. Apple, and companies who develop for their platform, have made design a priority for years -- usability and simplicity. Everything else has come after that. Well, except for some serious QC issues on their hardware lines lately, for which they have not been publicly flogged enough over. Meanwhile, all the other players in the market are trying to be all things to everyone... Vista's DRM and horrible, horrible driver subsystem comes to mind as an example of "Trying to do it all".
Disclaimer: Not an Apple fangirl (personally, I despise macintoshes), but does work in graphic design and so I deal with it every day.
#fuckbeta #iamslashdot #dicemustdie
Quicktime is scheduled to get a large rewrite in Snow Leopard. There have been many complaints about the Quicktime API, but there is hope that Snow Leopard will fix that.
I really like developing on my Apple machine for the most part, but it has a few issues that make it less appealing to me than Linux.
Currently, most of the development I'm doing is using Django and PostgreSQL. Installing PostgreSQL and the required Python libraries on OS X is tremendously painful. It was painful on Tiger and Leopard has made it more so. Macports tries to make it easier, but it could use a lot of work/testing/more work.
Installing the same tools on Linux is so easy, a Windows user could do it.
Yes, it is a pain to set up, but once there, you can scale from a workgroup to global filesystem. That is, you'll need a dozen AFS admins compared to 100 CIFS admins in a large organisation. Not only that, with a global filesystem the amount of duplicated data drastically falls, and with that goes storage costs.
Deleted
The author is a moron. He meant AFP, Apple File Protocol. Macs do not support AFS out of the box.
not worldwide. Maybe I shock you, but outside the US apple is a niche market that its only used for graphics design- you know, a heritage of the 80s. In the old Europe you would find much more projects for linux than for OSX (and both are a minimal percentage of the total projects, because everyone still use some version of Windows). Even the ipod is a rare avis in the mp3 market. Of course Apple started an agressive campaing to catch the academic world few years ago, financing laptops for teachers and student, but it's too early to move the trend.
So, no. I work in a mid-size software factory and I can assure you developers aren't going anywhere.
Apple seemingly skimped on one of the most important, but usually easiest to implement parts of their system: good, up to date documentation!
Are you really a developer? :)
I have linux boxes at home, I have *BSD boxes at home, I have colocated *BSD boxes around the world for other personal endeavors. I have a fairly extensive MythTV/Zoneminder network at home as well. So I'm not your average Mac weenie... To me, the mac is just a decent portal to all the other Unixy boxes I maintain. I've tried using a Linux desktop on a day to day basis and I've found it just too painful... Ever try getting a bluetooth keyboard working on Ubuntu? It doesn't "just work"; or at least not 6 months ago. It might now... But that's my point... Linux is always improving, but it never does everything I want, when I want it... And yes, I know, "patches welcome"... I contribute plenty to open-source. I can contribute more in my area of specialty and I can do it better sitting in front of a Mac. When I want to relax and watch TV, I don't want to have to hack MythTV to do it. I just want to plunk my fat ass on the couch and be entertained.
Java 1.6 for OS X, has been available for months now. And JDK 1.7 will not be out in a few months either.
As the island of our knowledge grows, so does the shore of our ignorance.
You may 'sigh' yet again, but the reason this keeps popping up is because it's a valid criticism that hasn't yet been addressed. Perhaps it's true that Apple wouldn't make as much money in that particular market; most people don't care! They just want a certain product at a certain price point, and Apple isn't delivering it. Sigh'ing that someone else is complaining about this oversight won't make the problem go away. Apple systems in general are either too underpowered or too expensive. There's no middle ground, and they're losing a lot of business because of it.
Devs share alot in common with /. ers. We hate being closed in HATE IT. We like options. With a mac base you fuck yourself for cross-platform options. You fuck yourself for installed base. You fuck yourself on freedom MANYMANY times over. You fuck yourself on dev tools, libraries and compilers of all sorts. And you support an OS that maintains an iron grip over the computer and what goes on it. Why don't i just shoot myself in the foot some more?
On a side note how are there so many people here that hate closed anything (People were arguing about firefox being free because it has a logo today) and hate DRM and so many that love apple? Kinda retarded...
These are the three reasons why I enjoy developing on the Mac:
Those using pirated Tinysoft signatures(TM) are a real threat to society and should all be thrown in jail.
You do know that we're talking about a NETWORK file transfer protocol, right? The Mac file system is HFS+, which is perfectly fine for anything you might want to do.
Javascript + Nintendo DSi = DSiCade
... as long as case-insensitivity is fine.
how to invest, a novice's guide
With a Mac base you've got better cross-platform options than anything... you've got UNIX at the base, and a decent and consistent GUI, and two virtual machine vendors tripping over each other trying to give you the best Windows experience, and for Linux development... well, it's UNIX. UNIX is UNIX is UNIX. Portable apps run on OS X with "./configure; make install" and if you need something that's written to "all the world's Red Hat" standards... well, Linux runs REALLY well inside virtual machines.
Dev tools, libraries, and compilers? You have the same GNU toolchain you have on Linux.
Yes, Apple bears watching, but for something that right now Just Works, get a Mac. And if you write portable code, if Apple decides to rip its belly out on DRM and wander around bleating and tripping over its own entrails? You can still jump ship to Linux, BSD, or even (if you're a masochist) Vista and Cygwin.
64 bit intel machines only. If you happen to be a poor shmoe like myself with an older ppc based mac, you're stuck with Java 1.5
Ummm... you realize you can format HFS+ case sensitive, right?
ZFS: because love is never having to say fsck
You can format it to be case-sensitive, just don't try and install Adobe Creative Suite 3, or you will sadly get this message.
From what I understand reading the background of that functionality, the NVidia drivers for mac are a big part of the problem, so they are doing it now as logout feature, after NVidia gets the mac drivers sorted out it will be able to support switching right away.
DEMETRIUS: Villain, what hast thou done?
AARON: Villain, I have done thy mother.
Shakespeare invents 'your mom'
once again macs seem to be innovating, the dual gpu thing where you have a low power one for run of the mill 2d stuff and high power one for the apps that need it are a good example (i believe this is appearing in pc laptops as well).
Innovating? You heard about Lenovo Think Pad T500? It was released before Steve did his latest thing, it's uglier than Mac Book (heck, it's uglier than anything on the market) but it's built like a tank, it runs cold, and, surprise, it doesn't have that retarded screen resolution. C'mon, Steve, 1440x900 on 15" box with a price that starts on $2K? You must be kidding.
iPhone
That's the carrot. The stick, of course, is that development on Microsoft's platforms is no longer interesting. Desktop is dead, both on Windows and Mac, so WPF, Cocoa, etc - those are boring. I don't care about database applications with cool graphics. I don't care about awesome list view widgets, XML UI, etc. Those are just nuts and bolts which are pointless unless there's something compelling to build. The potential of iPhone is compelling.
That said, and this is totally biased from this Windows dev, to me Xcode doesn't compare to Visual Studio. I find VS's debugging, editing, and pretty much everything else to be slicker and more stable (at least, in VS2008sp1). I find getting a quick-and-dirty Windows app to be faster to slap together than an equivalent Cocoa app (eg. creating a quick game level editor). I also prefer the single-window IDE, and VS.NET works better in that layout. The IDE morphs to be a good debugger IDE when debugging. I find STL debugging easier, as well. MSDN documentation is a library of congress compared to Xcode's docs. But again, a more experienced Xcode dev will kick my ass on these points.
Little extras: I love having a real command line. I love not having installers be its own entire dev cycle.
and now I hate MacOSX.
I have used windows since the begining, and have always been annoyed by something, but now that I get to develop for the Mac, I seem to hate it too. Oh, I like having bash and perl ready and available, saving me days of work installing and configuring ActiveState and CygWin. But this "It just works" is nonsense.
For example, I open a log file, and the console window automatically scrolls to the bottom of the screen. Nice, but when I scroll to the top of the file, I find that the console app only shows the tail of the file. I have to reload it, setting the amount of the file to be loaded. Seriously? This is a professional development platform? It's like Clippy is in charge.
me: Open the file.
mac: I'm guessing you really only want to see the last part of the file.
me: No, really, I want to see the whole damn thing!
If the OS just worked, then when I open Finder in list view the columns would resize so that I could see the entire file name, or at least the entire date. It's especially annoying that the date format is so long that it's always written as Mon...08 format. Can I change it to 11/17/08 format so that it's easier to read with having to resize the column? No, that feature is only available in windows. Only choice in Mac is "Monday, November 17, 2008"
I realize that this are nits that I'm picking, but at least in windows I can customize a hundred different things in the UI. In MacOS? I get to choose the background image. The end result is that every action I take requires a handful of follow-on actions that only serve to slow me down and break my train of thought. That is definitely not a desirable characteristic of a professional development platform. And it is something that just doesn't work.
Burma Shave.
The snow doesn't give a soft white damn whom it touches. -- ee cummings
It's not the swapping that gets me.
YOU CAN'T SKIN XCODE !!!!!
Who uses development tools you cant skin?
Sad, so so sad...
You're also stuck with 1.5 if you want to use SWT, the graphics toolkit behind Eclipse and some Java-based GUI applications. SWT uses native graphics libraries, and the current version uses Carbon. And since Carbon is 32-bit only, SWT has to be ported to use 64-bit Cocoa.
On the other hand, it's not like Apple has to provide the latest JVM/JDK and I'm not aware of any reason why someone else (even Sun) couldn't release one.
"The explosion of interest in smartphone development is helping the trend, with iPhone development lock-in to the Mac environment the chief motivating factor for Apple as a platform of choice for mobile development."
This is why Apple is retarded. They miss out on developers by restricting the platform/IDE and not supporting Java or Mono. Then they place absurd restrictions on iPhone applications. Anyone who is thinking of getting a mac just so they can develop on the iPhone should ask themselves this question.
WHY SHOULD I SWITCH PLATFORMS IF APPLE CAN LOCK DOWN MY iPHONE APP WITHOUT REASON!!!
Not one developer I interact with on a daily basis uses a Mac or has expressed an interest in using one for his or her "real work". If they own one, it's for lesiure purposes; casual browsing and iTunes. For development of apps that we use at work, it's Win32 or Linux. While the vast majority of development is in Win32, most long for linux adoption for dev work, not MacOS.
Fifty watts per channel, baby cakes.
I don't use a Mac anymore, but a colleague tried to use a case-sensitive filesystem and at least one application broke. I don't remember exactly which one it was, but it was part of Adobe's creative suite.
how to invest, a novice's guide
After reading the first part of TFA I realized he's developing in a Microsoft environment running on a virtual machine on the Mac. So yes he's developing "on" the Mac, but not necessarily for the Mac. His Mac is basically being used as a web browser for testing.
Apple sales are now over 60% laptops. If you want a desktop of any kind, you are a minority customer in the general computer market and a member of an even smaller minority in the Apple market. If you want an expandable desktop, you are a minority in a minority. If you want a cheap, expandable, desktop then you are a minority in a minority and don't have much money. Who in their right mind would design a product to cater to you?
I am TheRaven on Soylent News
There's really nothing wrong with programming on a current iMac. Anodized aluminum, so people won't laugh at you.... No more embarrassing colors copied straight off a queer-pride flag
Yes indeedy. As a Serious Applications Developer, the first and only criterion I have for selecting a development box is the color of its case, and in particular whether or not people will laugh at it.
I don't care if it's 90,000 hectares. That lake was not my doing.
Just curious -- was your problem that the command line utils were "out of date", or just different?
OSX uses BSD's command line utils, and BSD's utils are different from GNU's. You'll find different command-line switches here & there, and the output of top will throw you for a loop.
and none of us seem to have received this shitty memo, or even heard of it.
...
this article is absurd out of the scales. just check how belong sentences compare to each other :
"scientists now agree that evolution does not exist", as voiced by various creationist propaganda sources
and
"Programmers are finding themselves increasingly drawn to the Mac as a development platform", as voiced by the shitty article we are being made read. in its summary at least
Read radical news here
Bullshit.
There is no official Apple blessed 1.6 for Tiger. If you want a sanctioned version of 1.6, you have to upgrade to Leopard.
You CAN use Soy Latte, however good luck convincing your users to go through the same headache you did to get the JDK to work on Tiger in the first place.
Java support is definitely lacking when compared to other OS's support of the language.
And the sooner they drop XCode in favor of eclipse, the better.
~X~
~X~
I was skeptical of Macs for ages. The switch to OS X intruiged me. The switch to Intel won me over (heck, if it doesn't work, it'll make a good Linux or windows box). But I never boot it into Windows or Linux, it just works so well.
I do most of my development these days in Python (or Perl or Ruby or Java). It all works as expected on OS X.
And Virtualization? Man, does it support virtualization.
Right now, I am running simultaneously (among other things):
- A virtual copy of CentOS, which is serving up SunRay sessions to two SunRay terminals (a test for some thin client pitch I'll be doing) .NET app I've been contracted to port to a Web application
- A virtual of Windows XP, so I can do some verification/validation on a windows
- Several development apps (Komodo, iTerm's)
- Messenger, Word, Excel, Acrobat
- Azureus (to ummm, errr., download some Linux distributions)
- A bootcamp virtual session with Parallels
And I'm doing this with my MacBook dual display (hooked to a 24" 1680x1050 screen); actually triple-screened, since I'm running a SunRay session next to it (from that virtual CentOS session), linking my mouse/keyboard with Synergy.
It all just works too well... You'll want lots of memory, but that's cheap. I just bumped up to 4g for $100 last week.
I've become a Mac Fanboi, yes. But when I pitch it to someone, it's not out of ego. I don't think it's out of pure fanboi-ism. I honestly want people to know that they can be more productive, they can achieve more with their time, than fighting with the limitations of windows. It sometimes come across as Mac elitism, and I try to fight that.
I did a Mac vs. PC talk last year, well after having been won over. Prior to the talk, the PC guys were fussing with the projector, making sure it would work with their laptops. They politely asked if I would like to try out my Mac before the presentation. I honestly (without trying to be smug) told them it wouldn't be necessary. I've never once experienced a situation where plugging in a projector external monitor hasn't immediately worked, and as expected. It just wasn't necessary to test. And that's a bit symbolic of how things (generally) work on OS X.
There are some drawbacks. Some stuff just won't compile/work under OS X. X window support feels (and is) tacked on. Python/Tkinter is a bit painful natively. Leopard had some growing pains, and some apps (mostly old games) won't work. I find the odd bit of grief like that here and there; but people are working on those things. And if something really sucks, I just fire up a virtual box with Linux, and do my thing from there. (It's quite rare I have to do that, but I have, on occasion.)
At the end of the day, I don't *care* what people use from an idological standpoint. Hell, Apple's been pulling some MS-like anticompetitive boners lately (shutting down iPhone apps, among others). But the fact is, I work *better* in this environment, and I kind of like to share with my fellow men (and women) developers, how much better they too could be working. If they think I'm just a fanboi freak, fine; their loss, really.
But I think most serious developers would benefit from checking it out.
Love many, trust a few, do harm to none.
Cost nothing? Documentation is _hard_, and coder are usually chosen because they like to solve problems by coding, not documenting, so you have to hire some special people and they have to spend lots of time on this. Documentation is expensive and slows down development a lot.
Unfortunately documentation is also necessary if you want anybody to use your software. I have depressingly often found it necessary to abandoned the idea of using some API simply because I found myself spending way to much time trying to accomplish even simple tasks due to the complete inadequacy of the documentation. If figuring out how to do simple stuff requires a disproportionately large effort it often isn't worth the risk of continuing to use that API because the effort you have to put into figuring things out once you move into the API's more complex features will slow your project down unacceptably. When you are being pressed for results by your PHB and have to meet a deadline it is often preferable to use a less elegant API/Framework that may have been your second choice simply because is better documented. I don't really care if that documentation is in the form of good well written traditional API/Developer/Administrator/User guides or, alternatively, in the form of a large number of forum-posts, articles or blogs by frustrated users who painfully found out how to do things not mentioned in the scanty documentation by reverse-engineering, debugging and even painfully weeding through the source code. I do very much prefer the former but browsing through endless pages of google hits also gets me there in the end.
Only to idiots, are orders laws.
-- Henning von Tresckow
I develop software that has to run on case-sensitive filesystems.
Honestly, if you do, you are an idiot. Honestly. Having any application dependent on such an irrelevant part of the underlying operating system would mean that you should be fired as a developer. The fact that you didn't apparently know that you could format HFS to be case sensitive (I use Linux for development and even I knew that) should qualify you for dismissal due to ignorance.
Honestly, if any of the software developers I have ever worked with wrote code that required a case-sensitive file system I'd have him fired on the spot. Writing software that requires something like that is absurd in the extreme. Writing software that just assumes the file system is not case sensitive (like a lot of Windows developers I have met do) is a little dumb, but it pales compared to actually writing software that mandates case-sensitivity.