Apple Developer Profile Changing?
rocketjam writes "According to InternetNews.com, Apple Computer is seeing large numbers of UNIX, Java and Open Source developers moving to its Mac OS X platform. Apple Vice President of Worldwide Developer Relations Ron Okamoto mentions that, in the three years since the introduction of OS X, 'people who have experience in those areas are showing a great interest in our OS. We're seeing a lot of first timers. It's really impressive.' The company said it has recently surpassed the 300,000 member threshold of registered developers. Apparently, the increase in enterprise code writers has prompted Apple to add more sessions focusing on enterprise and IT to its upcoming Worldwide Developers Conference."
This may make up for the number of long time Apple devlopers that left after buying 9600 PowerMacs when we where told they would be the devlopment platform of choice for Apples next gen OS.
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
I can see why. I used Macs for years but I didn't write a line of code for them (except java) until Mac OS X came out.
The perfect sig is a lot like silence, only louder
I'm a long time software developer who codes predominantly for Windows and UNIX, but because Macs have embraced the UNIX architecture I would now like to start coding for OS X. I personally feel that Mac OS has a much brighter future than Windows (still not sure about Linux desktop).
It would not be a stretch to say that I'm willing to ditch Windows in favour of Linux and Mac OS.
So far, I have found wxWidgets which is a C++ toolset that allows the creation of cross-platform GUIs (Windows, Linux, Solaris, MacOS) that uses native GUI elements on each platform (unlike GTK+ or Qt which end up looking non-native). To me this seems like the best way for a programmer to get into cross-platform, including Mac, programming. You don't sacrifice Windows compatibility.
With all these Unix & Open Source developers flocking our way, I can only hope that one of them might develop a decent ftp client for OS X :). Granted, there are some decent payware clients (like Transit), but is an ftp client really worth $25? On the free side, RBrowser Lite comes close, except that it can't change permissions on the remote host :-/.
Alex Bischoff
HTML/CSS coder for hire
It makes a lot of sense.
Apple has made it easier to program for OS X. The integration of Interface Builder and XCode certainly makes it easier than programming in Mac OS 'Classic'. You don't have to mess with Carbon or resource forks either. And since it's built on Unix, Unix developers don't have to do much work to get it to work under X.
TheMadRedHatter
while(1)
{
}
Ah, the story of life.
Considering there is a hardware discount for developers, many of that number aren't necessarily active coders, but simply signed up as developers for the discount.
Somewhere, something incredible is waiting to be known. -- Carl Sagan
Darwin is free, and doesn't require new hardware, either. However, the robust, consistent GUI is a big draw for people developing interfaces.
And Darwin will integrate nicely between your old, busted and your completely new hardware. (j/k)
That what was all this school was for... to teach us how to solve our own problems. -- janeowit
300,000 registered developers (and a number of unregistered developers for their own use) for a platform that has under 5 % of market share is a pretty good number.
I'm a registered developer on OSX, yet I don't develop on OSX.. You need to be a registered developer just to download GCC. Just because I wanted to compile an app on OSX doesn't mean I'm an OSX developer.
You need to be a registered developer to download the source for Darwin Streaming Server (so even if you run it on Linux you're still considered an "OSX developer")
So that 300,000 number is grossly inflated.
Cocoa kicks ass to develop with. Most people who use it can't imagine having not used it before. It's up there with .NET as far as positive developer reaction, but I think Cocoa is probably even more elegant
Same for me (alright, not the MIT, but still the best I could manage and afford), except I bought the Powerbook to run Gentoo GNU/Linux on it. It runs smoothly, and probably more even than on most of the x86 laptops out there. The hardware is great too.
...
I was actually amazed to see how polished and clean Mac OS X was. As my experience of proprietary desktop OSes was mainly windows, I was suddenly wondering why so many people wouldn't use Mac OS X instead of that old, buggy ms crap. Yes, games, maybe
I will keep Mac OS X just in case, but GNU/Linux on Apple laptops is definitely a bliss.
theefer
OS X has all the power of Linux coupled with a better UI and greater availability of commercial applications.
Depends on your definition of power. OS X is nice but XNU is a piece of crap. XNU's poor scheduler and extremely poor IO means I would never use OS X as a server. The kernel just can't make full use of the hardware.
I've been a software developer for about 7 years nows. Ranging from embedded work, windows, to linux/unix. More recently I've been a java developer and oracle dba. About a year ago I purchased a dual G4 powermac. I installed oracle and jbuilder8 on it within a couple of days and was developing software as easily as on any other system. I have been very happy with my purchases(though I wish I had a G5).
Though I must admit, that I recently needed to purchase a laptop for doing some work on the road and chose not to go with a powerbook. Most notably because I felt the current offerings would not offer me the power I could get with the equivalent intel based system(where's the G5 powerbook???). Sad to admit, but possibly a more important factor to not choosing a powerbook was the single button touch pad. I use a two button w/scroll usb mouse on my powermac and I couldn't imagine using a single button touchpad on a powerbook. Yeah, yeah, I could use an external mouse, but on a plane its not so easy to do, so you must use the touchpad. I didn't want to suffer with that single button, ugh!
mp3's are only for those with bad memories
The kind of computing used in scientific applications is very different than your average desktop. Matrix calculations use very little branching but love the Altivec vector stuff.
Code that branches a lot (like compiles) seem to fair better on hyperthreading P4s. A 'make -j 4 bzImage' seems to get a 10-30% performance increase. Whereas hyperthreading has no benefit for science stuff, it even confuses the linux kernel a bit because it's hard to tell which cpus are logical, so that jobs actually run a bit slower.
So anyways, the needs of a computing cluster are not the needs of a desktop user. IE: you probably wouldn't want the PS2's weak 300MHz 128-bit cpu for a desktop even though there's a cluster built out of those too.
How can Apple do this? There are two problems, as I see it. First is advertising. They haven't had ads targeting you basic consumer since the iMac days (since most Joe Sixpacks aren't going to buy a G5, and they didn't advertise the LCD iMac long). If someone who doesn't have a computer wants one, what do they think of? They think "I can buy one at Best Buy, Circuit City, Radio Shack, or from Dell, or Compaq." Unless the happen to walk into a store like Microcenter or CompUSA and see the Mac section, they probably won't give buying a Mac any real thought.
The other problem is prices. Now, before you go calling me a troll, hear me out. I agree that a Mac is most of the time a better value than a PC. But when people see ads on TV for $500 Dells and they found out that Macs start at $700 or so, you're in trouble. If they could lower the price of the lowest one (say to $600) that would help. They should also ADVERTISE their lowest model and it's price (the eMac). Point out in the ads that it comes with iTunes, movie editing software, photo editing software, video conferenceing software, DVD burning software, and such. Compare the price of that $500 Dell once you include the monitor, that software above, and such. Maybe include a nice office suite (Open Office or anything else) so it will be a "complete computer" with anything most people would need. This will sell some real computers. Advertise how they are practically immune to viruses and hackers (compared to Windows) so you don't have to worry when you're on the internet. Show the cool features like expose (eye candy is always good). Show that Macs can play games too.
And get them back into schools. That plus the above should really help apple out. Schools will love the Unix core (secure, easy to centereally manage), low virus problems, etc. Macs can read and write disks/etc from students with PCs or Macs so no one will run into that "but I have a Mac and so my disk won't work here" problem.
I love Macs, but they aren't going to grow (at any noticeable rate) in market share without some advertising. Grassroots is nice, but it's only keeping Apple sustained. They've got some of the best computers on the market (along with, IMHO, the best OS). Tell the world!
As for the business market, if the boss has a Mac at home (even if he got it for his kids, or he's seen the one at a friend's house) and he's had little trouble with it (compared to his PC) then he's going to be much more likely to entertian the idea of getting Macs. Businesses will like Macs too for many of the reasons stated above in the "school" paragraph.
Comment forecast: Bits of genius surrounded by a sea of mediocrity.
What makes you think Office for the Mac is 100% compatible with Office for Windows? Even things like different kinds of font antialiasing can be enough to break compatibility in some scenarios, let alone things like Win32 specific VBScripts (that use WSH etc). Actually, it is of course possible to use the Real Thing(tm) on Linux courtesy of CrossOver, if you need it.
Anyway, ever since NeXT opened the developer spec for OPENSTEP, GNUstep has been doing a great job of recreating a compile compatible version.
Not really - GNUstep can't read the OS X UI files for one, it's not complete, and the GNUstep team are explicitly not interested in 100% compatibility (for instance, replicating wierd/buggy semantics of Apples APIs). And of course you have the whole deal of having to redo all the artwork, nobody using the GNUstep widgets and so on ....
Back on topic, I'm new to OSX and I've been looking at buying a development book (any suggestions?).
Install XCode and learn Objective C and Cocoa. Objective C is easy if you know C, and a good book will teach you the Cocoa framework.
Try either "Cocoa Programming for Mac OS X" by Aaron Hillegass, or "Building Cocoa Applications : A Step by Step Guide" by Simson Garfinkel and Michael K. Mahoney. I have both and I think they're very good. There's also a book by Scott Anguish, and one by Bill Cheeseman, but I haven't read either of those.
Cocoa programming is much easier and more elegant that C++ and MFC. Have fun!
www.lucernesys.comHorizon: Calendar-based personal finance
Your point regarding GNUstep not being 100% compatible is well taken. But it is a far way along. And in some instances a developer is able to keep a single codebase and compile to the two different platforms (GNUstep and Cocoa), NIB files withstanding for now. It's likely this kind of compatibility become more the case as GNUstep continues to evolve, simply because the GNUstep team has been narrowing that gap steadily for some time.
As for your Mac Office not being 100% compatible. Well, if you're going to be pedantic about it, Office for windows is not 100% compatible with itself. First it's not compatible as between different versions (e.g., 97 vs. XP). Also, even with the same versions, because of system/font variances et. al., it will also have issues. All that being said, in my experience, which is not statistically relevant, the variances between the Mac version of Office and Windows version is not significantly greater than the variances between Windows versions. The variances in compatibility between OpenOffice and MS Office are far greater, again, in my experience.
As always, YMMV.
Cocoa on the other hand seems to be more Observer pattern based -- you can link controls directly to each other with some kind of Controller object. And it also seems that you can define objects that express the "connections" that objects can have. I have looked at the docs and tried to make sense of it, but I guess I need to try it some time to really get the concept.
On the other hand, Cocoa is based on Objective C, and I guess I am kinda of lazy about learning yet another language (is Java Cocoa as good?). Is Cocoa reference counted (like ActiveX)? Does this mean Cocoa is not keeping up with the GC'd Java and .NET Joneses? Or does Cocoa work just fine without GC the way it is?
Can you create your own Cocoa controls (easily) (as with create your own ActiveX control -- not so easy, but not as difficult as you think these days with VS ATL, Delphi, and other tools, pretty easy with .NET)? If there is such a thing as a Cocoa control that you can develop yourself, drag and drop in a form, use with a scripting language, or place in a Web browser, does it have funky data types like with ActiveX (BSTR, VARIANT, SAFEARRAY), or can you pass arrays and object references at will like your can with Java or .NET?
On top of this, you can use your C++ objects with Obj-C (as of 10.2), allowing you to only sorta-kinda learn the language and let Interface Builder fill the gaps for you.
;-)
Yes, it sounds like a plan for disaster, but it isn't as bad as it sounds
Right now I'm talking to a coworker who, in the past month has written a *very* fancy jigsaw puzzle application using Cocoa. In his spare time.
He did not know ANY programming language besides C a month ago. No OO programming, nothing, he'd just written C-code shell apps for years prior.
Sure, he's a smart cookie, but... if you're a good C programmer, you might be able to do the same type of thing, though.
if you can live with java and swing, it's not that difficult to write applications that for the most part feel like native Mac OS X applications and still run without modifications on other platform.
some guy wrote an article (pdf) how to basically do it. apple's MRJ toolkit is a pain, but fortunately there also is MRJ Adapter.
sure, you have to learn the structure of application bundles and how to write in an Info.plist. still, you can stay away from xcode and cocoa without much trouble.
That said, many people don't upgrade their computers. These days so many of the things one might buy you can get externally. If you want a DVD writer or a new CD drive or something, you can get it firewire. You could also get a new hard drive externally, or you could upgrade the internal one. You can also upgrade the memory in the eMac. With the exception of the graphics card, that's all most people ever do.
So many things that you used to need to be able to upgrade to you don't need anymore. You don't need a DVD decoder card. The computer already has Ethernet (and you could do that through USB). Wireless could be done through USB or I think eMacs can take Airport cards. Most people don't need the upgradeability that a Dell or other PC provides. Very few upgrade their processors, they just buy a new computer. For most people, an eMac is more than enough machine for them.
I don't expect Apple to start selling $500 eMacs, but they could at least advertise them and the benefits so someone who's looking for a computer to do e-mail and maybe photo editing and maybe put some family movies on DVD knows they even have the option.
And besides, salesmen can do some of the work! If people come in to look at that low end eMac but they need more of a computer, the sales people can show them better models as would happen if the Dell didn't fit their needs. The point is to get them in there and looking at Macs.
As for the "people who tinker", that's not Apple's market and the way they operate it never will be (their choice, a good thing). I really don't think it's a significant part of the market. And the other fact is that tinkerers are in the know, so they probably already know that an Apple isn't for them. It's not worth advertising to them, but as I said I don't think it's that significant of a portion of the market. Even if it IS and it's 50% of the PC market (I don't believe that by a long shot), that still leaves Apple with 50% of the PC market (which is like 40% of all computers sold) that they can aim at, an compared to their small percentage (5%?) that's significant.
Comment forecast: Bits of genius surrounded by a sea of mediocrity.
I love Mac OS X, it has great international language support. You can use multiple languages at the same time, set your favorite order and easily translate cocoa apps.
I hate Mac OS X, the developer has to actively support multiple languages if you want your translation to survive a minor update. Even though all the ingredients are there to support automated updating with strings files, much like pot files on KDE, these are not automatically generated or even kept inside the application bundle, forcing users to become one of the 300.000 developers just to change some strings.
I wish Mac OS X would create decent strings files as a default automatic proces during development. And read these text / strings files at execution just like it reads changed picture and Interfacebuilder files. Allowing any user to just translate this text file for there mother with a simple text editor and then send it to the developer who has to do nothing but distribute it and get free access to larger markets. The translator would not have to be kept in the loop, another user from the same language can spot a untranslated string in an updated application and add the single translation, then send the strings file to the developer.
Already you can decide if you think a translation is bad and just turn it off in the info window and use the language of the developer. Come on Apple take that extra step and give powerusers easy access to the text of an application. Discover the world market.
Every time I see the "I can build it myself for cheaper" post it makes me laugh.
Sure you can, but only because your time is worth nothing.
For me, my time valuable to me on a personal level and in dollars and cents.
So I just can't see spending thousands of dollars worth of my time to save a few hundred.
So you go scrounging for a motherboard and I'll finish this post and then go spend some time with my son.
Bye
Yes is true.. we are changing our profile.. but we still code for Unix or linux!
But the point here is that we are getting more away from Micro$oft... With the out intension to go back
Pd: I'm a EX-windows programmer, ACTUAL linux coder and newbie programming on OS X, which I consider VERY GOOD compared to other previews versions and even other OS's
- - - - - .
Oversimplifying what NEXTSTEP/NeXTStep/Openstep was and what OS X is regarding the underpinnings is a bit odd.
You could have added that Openstep had a modified UFS filesystem partition and now OS X, by default has its own HFS+ native file system as well as UFS, and so on and so forth.
Openstep APIs weren't just a "port" of NeXTSTEP APIs. It wasn't a simple NXHost to NSHost port. Most folks had quite a few headaches going from NS 3.3 to Openstep 4.0 and it wasn't until Openstep 4.2 before it was complete, as far as the meaning of "complete" is concerned.
Personally, I'm looking forward to Classic being dumped and Carbon taking its rightful place and ultimately being phased out by Cocoa.
With all the Language choices now accessible to Cocoa it just makes sense.
Even price isn't a major stumbling block these days; myself and one of the Mac guys compared the laptops we'd bought about a year previously; the Mac was equal or better in every respect, looked prettier, and only cost about 100GBP more (which IMHO, is pretty good VFM considering Apple's customer service, and how well the OS and the hardware work together compared with PC hardware and either Windows or Linux).
Unfortunately, there are a couple of showstoppers for me. These are:
Availability of Free source code for the entire OS stack (i.e. not just Darwin). Sorry, but even though I don't use the source code for some OS components at all at the moment, I've become hooked on havinng it available - a security blanket if you like.
Availability of Mac hardware from multiple vendors. I'm not keen on being tied to a single hardware vendor. Of course, if this was the case, chances are we'd begin to see the same hardware/OS incompatibilities the PC world is plagued with. :(
Rapidly diminishing: availability of some applications only as x86 binaries (e.g. closed multimedia CoDecs). The status of OpenOffice.org/MacOS X was a showstopper when I was buying my laptop, but this is no longer a problem.
--