I'm OS X user, but I think it's time to re-think this choice. Apple is getting a little too fascist for my taste, even though I don't develop software specifically for OS X, but still I don't feel it's good to sent my support dollars to them and give them the wrong idea that it's ok to continue to be assholes.
By the way I would never develop software for desktop or mobile anyway. It's 2010 after all:D.
Desktop is the domain of a 0.01% of developers now who mainly work in multi-media, heavy CPU domains (like image/video/sound processing). Rest of the world lives online (even in the traditionally desktop world like insurance and banking).
Objective C is so off putting that I didn't even bother looking into frameworks. I just can't see myself programming in the language that feels so 80s (smalltalk loosely glued on top of C with a bunch of macros). And the method call syntax doesn't feel natural to a C programmer.
Projects like MacRuby look promising, but honestly I would never bother developing for the platform. Especially not now.
It's not about reproducing Photoshop functionality per se, but getting the mind share of pro users who consider Photoshop the de facto standard for image processing. You would have to convince the hordes of creative professionals/studios that your software is really that much better and get them to abandon their expensive PS license for your software.
This is really very similar to why people don't abandon Windows and switch to Linux or something else (except we are talking about one peace of software except entire eco system).
Who the fuck cares about app store and iTunes. I use OS X and Macs and I don't care about either. I thought we are talking about broader business aspects here rather than DRM music and phones?
OS X and Mac eco system is very open. Anyone can develop what ever software they want for it and distribute it however they see fit, and every user gets free professional development tools with each Mac (most people don't bother to install them though, but they still get java, perl, python, ruby etc installed by default). You can download the latest version of the tools here:
How about Adobe video production bundle? It's a much better and more polished product than FCP. Besides Apple simply doesn't have anything equivalent to Adobe After Effects (motion doesn't even come 1/3 close).
But there is such thing as constitution. It's trivial to put freedom of speech and freedom of press in it. You don't have to make a faceless corporation a person with more rights than you to do that.
Most Java code is distributed as simple executable jars. But in case your users prefer installers, there is InstallAnywhere which like the name suggests installs your app on any OS with the minimum required JVM from the same installer package.
Sounds to me like you did not get too deep into either physics or math. It's easy to develop intuition about mechanical processes in the macro world. You can observe things and sort of figure it out.
Things get a little weirder when you step into theory of relativity (much less intuitive) and intuition completely breaks down when you get into quantum mechanics, which is more like pure math than physics.
Besides pure mathematicians do develop intuition about abstract mathematical theories with no "application" is sight. Pure mathematicians are willing to study properties of almost arbitrary axiomatic systems that have no bearing or "image" in observed universe (e..g non-eucledian geometries, but there are other examples).
It is exactly this quality of the mathematically trained mind that has developed this fifth sense for mastering abstraction that is most valuable rather than the concrete pure mathematical/physical knowledge or its applications.
A good mathematician will re-invent things on the spot when he needs them (and really good mathematicians don't learn proofs, but just key ideas, and they literally invent them on the spot in exam/application setting).
And this is also the ability that is most transferable to other disciplines. Why is psychology, biology and things like mind understanding (we don't have a theory of mind to this date) still so backward? Precisely because people who do these disciplines are not trained and good at creating theories and models and abstractions. This is why recently the fields have tried to recruit mathematicians for some help.
Computer science on the other hand is much much closer to mathematics itself and it's a natural extension of the field. Math skills are directly applicable to it. Yes, being a programming janitor may not require education of any kind, but personally I would hate to spend my whole life doing that kind of work.
Java currently doesn't have closures. If it did, it would be trivial to do exactly the same thing as the objective C example.
However, people use thread pools, executors, producer/multiple consumer task queues all the time. Of course this is all the JVM level, not OS level.
In Java it is relatively trivial to execute something on a thread, and it is done all the time. In C family of languages, things were never that simple.
It was updating your kernel extensions cache. Normally this is done during boot if the cache is stale, but apparently the driver installer decided to flush the cache.
That sounds nice until you realize that most programs can't function without relying on OS services as it is today. A program wants more memory? It asks the OS to give it some. It wants to access the disk, it asks the OS to give it the handle to the file etc.
Unless you want each program to re-implement things OS does anyway, which would put as back to DOS days.
Obviously you don't develop software for a living. If you did you would spend all your time in the CLI and you would know the difference between Windows command prompt and real UNIX command line with the standard tools. But this discussion is pointless anyway. People who know, use what's good for them. People who don't suffer with Windows.
I don't think the word usable when used to describe software means what you think it means. Perhaps you simply meant to say "less available" software? But that is only true if you are into gaming.
But out of the box you get the Terminal with thousands of command line tools which if you know what you are doing makes you more productive than Windows can ever hope to be. This is the kind of tool chain that real power users care about and nothing else will ever approach the kind of power and speed of computer interaction as the UNIX command line. Even more strongly, the UNIX command line toolchain is ALL you need to do anything that people do on Windows machines with "more software" available.
True you get the same with Linux, but with OS X you also get the well put together UI and some essential and productivity boosting system services like Spotlight that again people who know how to use find indispensable, or Expose for better application switcher. These things carry some of the command line power over to the GUI world, and allow one to drive the UI much much faster, and get to ones data really fast.
And unlike Linux, you don't have to spend your valuable time setting up your computer and drivers and making it work. Linux is hackable and great OS if you are into OS hacking. If you want to get things done that don't involve hacking the OS you are trying to do other work on as well, then I find OS X to be better (which does not make Linux bad. It's a great server OS).
Another benefit of OS X is that it's a UNIX that can run Photoshop and Adobe video production suite (among others) and my Nikon cameras (drivers) and raw image processing software (Nikon Capture NX) works with it, unlike Linux.
That stereotype is so 90s. Liberal arts and creatives, and grandmothers now use Windows, and alpha geeks are switching (or have switched) over to Mac and Linux.
I'm a mathematician by education, but work as software developer and I use Mac and OS X. Oh, and I know a few things about the zeta function. So, there:D.
Except that OS X is perfectly open platform for anyone to develop for. The APIs are extremely well documented and accessible to anyone. Not only that, but you get all professional development tools free with each and every Mac (most people don't bother to install them off the DVD though). But things like python, perl, java and ruby are installed anyway.
However, you are wrongly bringing OS X into discussions about phones/appliances and their stripped down OS which is completely different thing than Mac OS X, even though it is rooted in OS X as well.
That's one of the dumbest statements someone can make about software engineering. The value of well tested libraries is exactly that they take care of common, low level stuff, so you can stop re-inventing the wheel (poorly) and concentrate on the hard parts of your application domain.
Imagine if you had to re-implemented linked hashmap, or file chooser, each time you had to develop your application. The value proposition you bring to the table with your application is that you are solving someone's unique problem, and it does not lie in you re-implementing the code commonly found in libraries.
If you think that all code is just copy/paste of samples, then you never got paid for writing code, since no one will pay for solution to generic problems any more. People want software to help them in their context and make unique optimizations to their unique situation and you don't just find samples of code that solve your customers problems online for you to copy and paste.
Personally don't use time machine. I do my backups with rsync and I periodically make a compressed disk image of my boot drive (it only takes 15 min for about 70 GB worth of data).
I have not experienced any slowdowns or beach ball on my Mac Pro when I do pretty much anything. Then again I have 32 GB of RAM, but even on my 13'' aluminum macbook with 4 GB of RAM things are speedy.
I used to do all that. But then I got tired and switched to OS X where I can use the computer the way it was meant to be used without having to be the anti-virus software myself.
If you choose iPad remember that you will be sacrificing one arm to hold it. Unless you get off on holding iPad in your hand, you will have much better time pleasuring yourself having both hands free.
I'm OS X user, but I think it's time to re-think this choice. Apple is getting a little too fascist for my taste, even though I don't develop software specifically for OS X, but still I don't feel it's good to sent my support dollars to them and give them the wrong idea that it's ok to continue to be assholes.
By the way I would never develop software for desktop or mobile anyway. It's 2010 after all :D.
Desktop is the domain of a 0.01% of developers now who mainly work in multi-media, heavy CPU domains (like image/video/sound processing). Rest of the world lives online (even in the traditionally desktop world like insurance and banking).
Objective C is so off putting that I didn't even bother looking into frameworks. I just can't see myself programming in the language that feels so 80s (smalltalk loosely glued on top of C with a bunch of macros). And the method call syntax doesn't feel natural to a C programmer.
Projects like MacRuby look promising, but honestly I would never bother developing for the platform. Especially not now.
It's not about reproducing Photoshop functionality per se, but getting the mind share of pro users who consider Photoshop the de facto standard for image processing. You would have to convince the hordes of creative professionals/studios that your software is really that much better and get them to abandon their expensive PS license for your software.
This is really very similar to why people don't abandon Windows and switch to Linux or something else (except we are talking about one peace of software except entire eco system).
Who the fuck cares about app store and iTunes. I use OS X and Macs and I don't care about either. I thought we are talking about broader business aspects here rather than DRM music and phones?
OS X and Mac eco system is very open. Anyone can develop what ever software they want for it and distribute it however they see fit, and every user gets free professional development tools with each Mac (most people don't bother to install them though, but they still get java, perl, python, ruby etc installed by default). You can download the latest version of the tools here:
http://developer.apple.com/technologies/xcode.html
I would say that yes Apple is more open. The XNU kernel for Mac OS X is open source project. You can browse the source code here:
http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/
as are hosts of other tools (entire BSD UNIX subsystem and the standard toolchain, from awk to vim are all open source).
Can someone point me to the source code for Windows 7 kernel? Or any MS product? Where do I download Visual Studio Enterprise for free?
How about Adobe video production bundle? It's a much better and more polished product than FCP. Besides Apple simply doesn't have anything equivalent to Adobe After Effects (motion doesn't even come 1/3 close).
But there is such thing as constitution. It's trivial to put freedom of speech and freedom of press in it. You don't have to make a faceless corporation a person with more rights than you to do that.
Most Java code is distributed as simple executable jars. But in case your users prefer installers, there is InstallAnywhere which like the name suggests installs your app on any OS with the minimum required JVM from the same installer package.
Sounds to me like you did not get too deep into either physics or math. It's easy to develop intuition about mechanical processes in the macro world. You can observe things and sort of figure it out.
Things get a little weirder when you step into theory of relativity (much less intuitive) and intuition completely breaks down when you get into quantum mechanics, which is more like pure math than physics.
Besides pure mathematicians do develop intuition about abstract mathematical theories with no "application" is sight. Pure mathematicians are willing to study properties of almost arbitrary axiomatic systems that have no bearing or "image" in observed universe (e..g non-eucledian geometries, but there are other examples).
It is exactly this quality of the mathematically trained mind that has developed this fifth sense for mastering abstraction that is most valuable rather than the concrete pure mathematical/physical knowledge or its applications.
A good mathematician will re-invent things on the spot when he needs them (and really good mathematicians don't learn proofs, but just key ideas, and they literally invent them on the spot in exam/application setting).
And this is also the ability that is most transferable to other disciplines. Why is psychology, biology and things like mind understanding (we don't have a theory of mind to this date) still so backward? Precisely because people who do these disciplines are not trained and good at creating theories and models and abstractions. This is why recently the fields have tried to recruit mathematicians for some help.
Computer science on the other hand is much much closer to mathematics itself and it's a natural extension of the field. Math skills are directly applicable to it. Yes, being a programming janitor may not require education of any kind, but personally I would hate to spend my whole life doing that kind of work.
Chrome, Opera and Safari, but there are other browsers besides the standard 5.
Java currently doesn't have closures. If it did, it would be trivial to do exactly the same thing as the objective C example.
However, people use thread pools, executors, producer/multiple consumer task queues all the time. Of course this is all the JVM level, not OS level.
In Java it is relatively trivial to execute something on a thread, and it is done all the time. In C family of languages, things were never that simple.
It was updating your kernel extensions cache. Normally this is done during boot if the cache is stale, but apparently the driver installer decided to flush the cache.
Yes you can. It's routinely done in Java all the time. Execute something off EDT (on a separate thread) and update the GUI when you are done on EDT.
That sounds nice until you realize that most programs can't function without relying on OS services as it is today. A program wants more memory? It asks the OS to give it some. It wants to access the disk, it asks the OS to give it the handle to the file etc.
Unless you want each program to re-implement things OS does anyway, which would put as back to DOS days.
Firefox doesn't behave like that in OS X. So I don't know if this is OS specific issue?
Yes, I know there are implementations of UNIX shells for Windows. We at MKS make one
http://en.wikipedia.org/wiki/MKS_Toolkit
and honestly without it, Windows is completely useless.
Obviously you don't develop software for a living. If you did you would spend all your time in the CLI and you would know the difference between Windows command prompt and real UNIX command line with the standard tools. But this discussion is pointless anyway. People who know, use what's good for them. People who don't suffer with Windows.
I don't think the word usable when used to describe software means what you think it means. Perhaps you simply meant to say "less available" software? But that is only true if you are into gaming.
But out of the box you get the Terminal with thousands of command line tools which if you know what you are doing makes you more productive than Windows can ever hope to be. This is the kind of tool chain that real power users care about and nothing else will ever approach the kind of power and speed of computer interaction as the UNIX command line. Even more strongly, the UNIX command line toolchain is ALL you need to do anything that people do on Windows machines with "more software" available.
True you get the same with Linux, but with OS X you also get the well put together UI and some essential and productivity boosting system services like Spotlight that again people who know how to use find indispensable, or Expose for better application switcher. These things carry some of the command line power over to the GUI world, and allow one to drive the UI much much faster, and get to ones data really fast.
And unlike Linux, you don't have to spend your valuable time setting up your computer and drivers and making it work. Linux is hackable and great OS if you are into OS hacking. If you want to get things done that don't involve hacking the OS you are trying to do other work on as well, then I find OS X to be better (which does not make Linux bad. It's a great server OS).
Another benefit of OS X is that it's a UNIX that can run Photoshop and Adobe video production suite (among others) and my Nikon cameras (drivers) and raw image processing software (Nikon Capture NX) works with it, unlike Linux.
That stereotype is so 90s. Liberal arts and creatives, and grandmothers now use Windows, and alpha geeks are switching (or have switched) over to Mac and Linux.
I'm a mathematician by education, but work as software developer and I use Mac and OS X. Oh, and I know a few things about the zeta function. So, there :D.
Where is Windows Server 2003 ? And advanced versions of the same? And 2008 Server? And Windows Server 2008 R2?
Except that OS X is perfectly open platform for anyone to develop for. The APIs are extremely well documented and accessible to anyone. Not only that, but you get all professional development tools free with each and every Mac (most people don't bother to install them off the DVD though). But things like python, perl, java and ruby are installed anyway.
However, you are wrongly bringing OS X into discussions about phones/appliances and their stripped down OS which is completely different thing than Mac OS X, even though it is rooted in OS X as well.
That's one of the dumbest statements someone can make about software engineering. The value of well tested libraries is exactly that they take care of common, low level stuff, so you can stop re-inventing the wheel (poorly) and concentrate on the hard parts of your application domain.
Imagine if you had to re-implemented linked hashmap, or file chooser, each time you had to develop your application. The value proposition you bring to the table with your application is that you are solving someone's unique problem, and it does not lie in you re-implementing the code commonly found in libraries.
If you think that all code is just copy/paste of samples, then you never got paid for writing code, since no one will pay for solution to generic problems any more. People want software to help them in their context and make unique optimizations to their unique situation and you don't just find samples of code that solve your customers problems online for you to copy and paste.
Personally don't use time machine. I do my backups with rsync and I periodically make a compressed disk image of my boot drive (it only takes 15 min for about 70 GB worth of data).
I have not experienced any slowdowns or beach ball on my Mac Pro when I do pretty much anything. Then again I have 32 GB of RAM, but even on my 13'' aluminum macbook with 4 GB of RAM things are speedy.
I used to do all that. But then I got tired and switched to OS X where I can use the computer the way it was meant to be used without having to be the anti-virus software myself.
Isn't the solution switching to more reliable and secure OS?
If you choose iPad remember that you will be sacrificing one arm to hold it. Unless you get off on holding iPad in your hand, you will have much better time pleasuring yourself having both hands free.