Slashdot Mirror


Modern Mac Development?

CDarklock asks: "I'm getting seriously interested in setting a new Mac next to my Windows box (to replace the Mac SE, which should tell you about how long it's been). But on Linux and Windows, I'm accustomed to writing lots of custom apps in C++ to fill the gaps around the system, but I haven't written anything on a Mac for something like fifteen years. As a professional Windows developer, what sort of expense am I facing to outfit a new Mac with development tools comparable to Microsoft's Visual Studio .NET, and what sort of learning curve should I expect?"

210 comments

  1. is this.. by Anonymous Coward · · Score: 0, Insightful

    a troll to get someone point at some free xcode or what?

    1. Re:is this.. by afd8856 · · Score: 1

      Exactly what I've thought of first time I read this...

      --
      I'll do the stupid thing first and then you shy people follow...
    2. Re:is this.. by amichalo · · Score: 4, Insightful

      There is more to developing on a Mac than downloading Xcode.

      I think the thread is worth exploring. There is a learning curve to moving from Windows to OS X in general, and more to learn when switching as a developer. The move from Linux to OS X is far less of a curve, but still exists.

      Let's give the thread a chance!

      --
      I only came here to do two things; kick some ass, and drink some beer...looks like we're almost out of beer.
    3. Re:is this.. by Anonymous Coward · · Score: 0

      There is more to developing on a Mac than downloading Xcode.

      Thank you for beginning your comment by advertising that you don't know WTF you are talking about.

      There's no need to download Xcode. It comes with the OS.

    4. Re:is this.. by Anonymous Coward · · Score: 0

      Thanks for showing you don't know WTF you're talking about.

      If you want the latest (1.5), you need to download it. 1.2 comes with the Mac.

    5. Re:is this.. by Anonymous Coward · · Score: 1, Informative

      Actually, 2.0 comes with the Mac as of yesterday.

    6. Re:is this.. by Anonymous Coward · · Score: 0
      It looks like a karma builder for the faithful. They can sing the praises of Apple and get karma.

      A regular Slashdot circle-jerk.

  2. Xcode by geoffspear · · Score: 4, Informative
    The development tools come with the OS for free.

    As for the learning curve, it may take some time to get used to things being done differently in OS X, but moving from C++ to Java isn't too difficult if you choose to use Java Cocoa.

    Objective C is generally a better bet for Cocoa development, but it will have a slightly steeper learning curve, since the syntax is significantly different.

    Other than the change of language, the Cocoa frameworks might take a while to learn, but the documentation is very good.

    --
    Don't blame me; I'm never given mod points.
    1. Re:Xcode by drc1 · · Score: 2, Interesting

      You can use Xcode to program in almost any language you choose Cocoa, C, Java, Ruby....

    2. Re:Xcode by Anonymous Coward · · Score: 1, Informative

      Just to clarify, Cocoa isn't a language. It's the OS X API. I think you meant Objective C, as mentioned in the grand parent.

    3. Re:Xcode by geoffspear · · Score: 2, Informative
      True, but if you're looking for something comparable to .NET to develop Mac applications, you're probably going to want to use Cocoa or Carbon.

      You can develop Palm applications in Xcode, too, but I don't think that's what the OP is looking for...

      --
      Don't blame me; I'm never given mod points.
    4. Re:Xcode by Golias · · Score: 2, Informative

      It should me noted that the just-released OS X 10.4 ("Tiger") comes with Xcode 2.

      Among other things, it's capable of importing Code Warrior projects.

      --

      Information wants to be anthropomorphized.

    5. Re:XCode by tenman · · Score: 1

      Xcode is too bulky as compaired to VS.net? wow... now that's say'en something.

    6. Re:Xcode by Bastian · · Score: 4, Informative

      If you're looking at writing native software, I would strongly recommend taking the long road and getting used to Objective-C, for a multitude of reasons.

      The vast majority of frameworks available for OS X are written in Objective-C, and aren't necessarily well-documented. Even though there is an Objective-C - Java bridge, you'll still have to learn ObjC to use these frameworks just to learn how they work.

      In my experience, ObjC apps run faster and consume less memory than Java Cocoa apps. I have also found that this tends to be a bigger issue in the Mac world than it is in the PC world, because Mac users tend to hold onto their computers for much longer. That, and the Java Runtime Environment for Macs doesn't seem to be nearly as well-optimized as the JRE for PCs. (well, Windows, at least.)

      Massive portions of the OS X APIs have not been ported to Cocoa yet. If you use ObjC Cocoa, a lot of the ObjC objects you use will be toll-free bridged with the equivalent data structures in the Carbon libraries. It should also be a lot easier to deal with the even older C libraries that haven't even been included in Carbon yet.

      But most of all, my impression is that if you're using the Cocoa libraries and the Java language, you have more or less given up all the benefits of the Java platform (such as the ability to write platform-independent apps), as well as the benefits of the Objective-C language (such as categories.) Unless you just really don't want to trade automatic garbage collection for reference counting or just really don't want to learn a new language, you're giving up a lot to gain a little by using Java for Cocoa development.

    7. Re:Xcode by swillden · · Score: 4, Interesting

      Objective C is generally a better bet for Cocoa development, but it will have a slightly steeper learning curve, since the syntax is significantly different.

      Different, yes, but also very simple, so don't overestimate the level of effort required, assuming you know C.

      Objective-C is an object-oriented extension to C, like C++, but it took a very different approach than C++. While C++ is large and complex, Objective-C is small and simple. The syntax is deliberately based on Smalltalk syntax, so if you know Smalltalk you'll have even less to learn. If you don't know Smalltalk, though, keep in mind that Smalltalk is a language whose syntax and rules you can literally master in an afternoon. Objective-C has added some new ideas, such as "categories" that Smalltalk didn't have, and there are some interactions between the Smalltalkish syntax and the underlying C syntax, so Objective-C takes a day for a C programmer to fully understand, rather than an afternoon (C++, of course, takes months).

      For C++ and Java programmers who've never seen Smalltalk or another completely dynamically-typed language, I caution you to go slowly at first and take some time to understand the Smalltalk/Objective-C idea of what an "object" is. Or a "class". It's tempting to just dive right into the syntax, figuring that you know the "OO stuff", but the OO stuff in question is just different enough that you'll tie yourself in knots if you don't take a few minutes to understand what the differences are.

      For experienced C++ programmers there's another interesting goody waiting... Objective-C++. The Objective-C and C++ extensions to C are orthogonal, so you can actually mix Objective-C and C++ code at will. Objective-C methods can take C++ objects as parameters and vice versa, and they can store pointers to each other.

      The result is a very powerful language that lets you choose between the flat-out on-the-metal efficiency of good C++ code and the extreme flexibility of late-bound Objective-C code. And with C++'s polymorphism and Objective-C's categories (which provide limited compile-time typechecking) you even have a couple of steps in between. Be very, very, careful though. It's easy to create an unmaintainable mess when you start mixing things.

      BTW, I should make a disclaimer here: I have looked at but never written code for Mac OS X. Everything I know about Objective-C comes from when I used to own a NeXT machine, so there may be a few differences. Based on the OS X code I've read, though, I don't think there are very many or that they're very large.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    8. Re:Xcode by cpct0 · · Score: 4, Informative

      Backgrounder on me: I'm currently writing things for Mac and PC, in 2003 and XCode, professionally.

      I have to add to your very nice and concise description:

      - Don't try to learn Objective-C by yourself, it's weird syntaxically and many many pitfalls can be avoided by carefully perusing and actually doing the examples for the first few chapters of Ora's Learning Cocoa with Objective-C (http://www.oreilly.com/catalog/learncocoa2/). It's that weird. But it's totally worth it.

      - XCode and VC both have the good things and bad things. I'd say that VC is slightly better because they got more years under the belt that XCode. They also got Visual Assist X, which is God-sent (http://www.wholetomato.com/). And only for the build styles, that are so well hidden in XCode, that ought to piss you off (on VC, you just select the configuration and here you go).

      - As usual, you will pester while doing the transition. It's normal. You are accustomed to something and that "something" is not what you will have, hence you won't have your favorite little shortcut, or your thing you always do, software will react oddly too. Again, not because it's much worst, it's simply different.

      All in all, it's a very interesting endeavor. Good luck!

      Mike

    9. Re:Xcode by kwerle · · Score: 1

      - Don't try to learn Objective-C by yourself, it's weird syntaxically and many many pitfalls can be avoided by carefully perusing and actually doing the examples for the first few chapters of Ora's Learning Cocoa with Objective-C (http://www.oreilly.com/catalog/learncocoa2/). It's that weird. But it's totally worth it.

      OK, the syntax is a little different, but I don't think it's that hard to get your head around. Instead of
      someObject.doSomething(param1, param2);
      [someObject doSomethingWith:param1 andWith:param2];

      If you think of ObjC as being like Java, not C++, it will help a lot. 'course there's no GC, which is "the last great pitfall" of all C languages (in my book).

      - XCode and VC both have the good things and bad things. I'd say that VC is slightly better because they got more years under the belt that XCode

      Wow. xcode is a direct descendent of ProjectBuilder/InterfaceBuilder from the NextStep days - which date back to 1987 or so. So I'd argue with the notion that VB is more mature.

      They also got Visual Assist X, which is God-sent (http://www.wholetomato.com/). And only for the build styles, that are so well hidden in XCode, that ought to piss you off (on VC, you just select the configuration and here you go).

      As for build styles, I gotta agree with you there. It IS a major pain in the ass. I'm very much hoping that the upcoming rev to xcode makes that easier/more transparent.

    10. Re:Xcode by CkB_Cowboy · · Score: 0

      Actually, soon-to-be-released (April 29)

      -CB

      --
      what, what?
    11. Re:Xcode by Baricom · · Score: 1

      PHP? I'm curious. I've never seen Xcode. How well (if at all) does it handle the typical web development languages like X(HT)ML, PHP, Perl, JavaScript, etc.?

    12. Re:Xcode by alanQuatermain · · Score: 3, Informative
      Unless you just really don't want to trade automatic garbage collection for reference counting

      I can't find the external link to this now (it may only have been in the developer docs for the Tiger developer releases), but the Objective-C runtime in Tiger has garbage collection. And as of Panther (so, for just over a year now) there has been built in ObjC runtime support for thread synchronization in a similar manner to Java - via the @synchronized keyword - and runtime-supplied try/catch/finally (rather than the setjmp-based macros NS_DURING/NS_HANDLER/NS_ENDHANDLER previously supplied).

      Since these features require a specific release of the Objective-C runtime, however, they will only work on their respective system builds, and therefore need to be enabled within the compiler settings in Xcode. So, garbage collection requires at least 10.4, and runtime exceptions/synchronization require at least 10.3.

      -Q

      PS. Just found out where I saw the option: in the 'Code Generation' section of the build rules pane on an Xcode target. Can't find any reference to it on the Internet. Although probably a better Googler than I might be able to find something associated with the GCC folks - the best I can find can be turned up by Googling or 'objc-gc'.

    13. Re:Xcode by drc1 · · Score: 2, Informative

      Have a look at http://developer.apple.com/internet/scripting/phpa ppledevtools.html I suspect it is now possible to use Xcode for just about every language. I must admit I quite like having the same environment for all my projects from Applescript to ObjC

    14. Re:Xcode by putaro · · Score: 2, Interesting

      But most of all, my impression is that if you're using the Cocoa libraries and the Java language, you have more or less given up all the benefits of the Java platform (such as the ability to write platform-independent apps)

      Depends on how you code things. We have a fairly large app written in Cocoa/Java and if you work to abstract things out a bit you can cut the amount of OS X specific code down quite a bit. For example, we have a GUI that runs under Cocoa and Swing. By factoring the code properly (Model-View-Controller) the Cocoa specific part is about 10% of the GUI code.

      If you're not planning to run on anything other than OS X, though, I'd say that the pain of trying to use Java is about equal to the pain of using Objective-C.

    15. Re:XCode by JeffTL · · Score: 1

      You don't have to use the full functionality of Xcode for every project.

      When I took my Intro to Computer Programming (basic C++) class in college, I started out using pico to edit my code, but then switched to vim for highlighting and the ability to save without quitting. Later in the semester I started using Project Builder (the predecessor to Xcode) just to edit my .cpp files, since they were one-file and I was better off compiling at the terminal anyhow.

      Then I installed Panther, and for the final project in the class (with involved writing a multi-file program), I wrote the whole thing in C++ using Xcode. So no, Xcode is not too bulky for serious projects; I used it for my 1000-level homework.

    16. Re:Xcode by chasingporsches · · Score: 1

      "Different, yes, but also very simple, so don't overestimate the level of effort required, assuming you know C."

      i couldn't agree more. however, it took me 6 months of occasionally trying to follow the tutorials and learn it, then giving up, then trying again to finally be like, WTF, this is supposed to be easy? so what i did was i tried porting an app from .NET to objective-C/cocoa, and making it look and work as much as possible like the .NET one. then once i got down the bracket syntax for things, i started googling how to do individual things (it takes a lot of that starting out) and eventually i was able to implement a data-driven app in cocoa in less than 2 days, and that included getting used to the bracket syntax and such.

      (to the original article author) i recommend to look over the tutorials, but don't treat them as gold. the biggest help that could help you is trying to go ahead and implement a program, say one that you've written for windows. make the user interface, tie it to code (thats what you'll need the tutorials for), and then look up on google all the individual calls and things you'll need to find out. and maybe dont dive heavily into it for 2 weeks, since tiger is coming out and all, and core data and the such will help you out.

    17. Re:Xcode by jcr · · Score: 1

      That's 'just-announced', not 'just-released'. Tiger will be available on april 29.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    18. Re:Xcode by jcr · · Score: 1

      Woah... That sounds like a lot of work you did.

      You could have saved yourself a great deal of time if you'd started with Aaron Hillegass' Cocoa Programming, or Bill Cheeseman's Cocoa Recipes for OS X. I'd also recommend O'Reilly's "Learning Cocoa with Objective-C".

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    19. Re:Xcode by legolas_a20 · · Score: 1

      Don't let the java/objective-C comments scare you away, XCode also compiles C++ and you can use the Mac API from it.

      And as said, since XCode is free with OSX, you should be all set right away. Just a (very) different IDE to learn, and an equally different API obviuously... Luckily it's starting to get more or less stable/fleshed out right now. A bit more API docs would do nicely though.

    20. Re:Xcode by dubl-u · · Score: 1

      XCode and VC both have the good things and bad things.

      Say, does XCode have any of the automated refactorings that something like IntelliJ's IDEA has? I'm completely hooked on those.

  3. None - Apple gives them to you by linuxbert · · Score: 1, Redundant

    OS X comes with an x-code cd. it is all the developer tools you could ever want.

    see http://www.apple.com/macosx/developertools/

  4. Don't know about a lerning curve, but.... by dqbiggerfam · · Score: 1, Informative

    I don't know about the learning curve, as I don't program at all, but with the regular installer for OS X, you get developer tools as well (a Mac Mini would probably fit in well with your setup, especially if you use a KVM switch).

    You can also check out Apple's developer website (http://developer.apple.com/) for more details.

    1. Re:Don't know about a lerning curve, but.... by dqbiggerfam · · Score: 0

      Oh c'mon! If you look at the time of the post, I was only three minutes after the first post, which was submitted while I was writing mine! Can I get a feedback of someting other than redundant?

    2. Re:Don't know about a lerning curve, but.... by dqbiggerfam · · Score: 1

      Thank you. It's just a litte frustrating to be one of the first people to contribute to a discussion (most of the things I want to say get said before I see the discussions) and get marked redundant only **after** there are about thirty posts between my post and the one right before it.

  5. XCode by ABaumann · · Score: 0

    XCode is far too bulky for most projects (which means just about anything you're going to program alone.)

  6. Difficulty with VS.NET by crmartin · · Score: 4, Funny

    Your problem is managing to impede the Mac sufficiently to make it no better than .NET.

    (Okay, so I am a recent convert.)

  7. X-Code by meatball_mulligan · · Score: 3, Interesting

    I don't know how well it measures up against Visual Studio, but I for one love X-Code. It's a nice IDE, useful but not over done. X-Code and a number of other development tools come with OS X (and are avaible at no charge from the Apple Developer Network website). X-Code uses gcc and gdb for compiling and debugging. You can use it to code C, C++, Objective C and others. As far as coding goes, it sounds like you'll really want to learn Cocoa. Cocoa is the core set of OS X frameworks (think MFC, only much, much better). There are Cocoa bindings Java and a few other langs, but ideally you'll want to use Objective C. Obj C is a great language, much easier to learn than C++, and in my opinion a joy to program. Good luck.

  8. python? by same_old_story · · Score: 2, Interesting

    has any one experience with python development in OSX? these features of xcode, like getting undo for free. are/will they be available for python coders? I dont do any c++ or objective c, so I would not know. I guess those things would requires wrapers for python to deal with them , right?

    1. Re:python? by hatrisc · · Score: 1, Informative
      --
      I write code.
    2. Re:python? by Anonymous Coward · · Score: 2, Informative

      Python is very popular on Mac OS X. Of the scripting-style languages (Perl, Python, Ruby, etc.), it probably has the most thorough support for writing real applications.

      Things like PyObjC let you do everything that the native frameworks can in Python. (That is, you can write full Cocoa apps entirely in Python). Also, you can use Python in Obj-C code. I know for certain that people have written plugins for many apps seemlessly this way.

      I don't know what you mean by "getting undo for free" -- if you mean Core Data, in Tiger, then the answer is "maybe". I don't see why not with something like PyObjC, but it would probably involve some Obj-C coding.

  9. what you should expect by nocomment · · Score: 1

    About the only thing you should expect is to love xcode. :-)

    --
    /* oops I accidentally made a comment, sorry */
    /* http://allyourbasearebelongto.us */
    1. Re:what you should expect by TheRaven64 · · Score: 1
      Unless you want conditional breakpoints (I really hope they've made it into 2.0. Debugging code that breaks on the 2000th iteration of a loop is a real pain without them).

      Learn Objective-C. Sure, you can develop OS X software in X or Java, but the Cocoa APIs are really a joy to use, and they fit with the Objective-C language a lot better than they do with Java. Learn about categories. They are an amazingly powerful method of extending objects - you can add methods to any existing class without subclassing. The message passing syntax (method invocation to C++ and Java programmers) in Objective-C scares off a lot of people, but it is very clear to read - each parameter has a name, so you never need to remember the order in which they are required (especially since XCode auto-completes them for you).

      --
      I am TheRaven on Soylent News
    2. Re:what you should expect by bar-agent · · Score: 2, Informative

      Unless you want conditional breakpoints

      You have conditional breakpoints. There just isn't a UI for 'em. Unless they added one in XCode 2.

      See http://developer.apple.com/technotes/tn/tn2032.htm l#conditionalbreakpoints.

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    3. Re:what you should expect by geoffspear · · Score: 1

      And, more specifically, it's got every other feature of GDB, too, since Xcode's debugger is just a pretty front end for gdb and lets you access the gdb console for all your old-school (or stuff Apple forgot in the GUI) debugging needs.

      --
      Don't blame me; I'm never given mod points.
  10. Apple owner and developer by The+Slashdolt · · Score: 1

    I used to be a C++ developer too. Then I moved on to Java. You may want to look into this for a number of reasons. For one, you can use eclipse on any platform, including OSX to develop your java apps. For two, apple really likes Java. They have done a lot of work on the jvm for OSX and it performs extremely well. They also provide a number of OSX specific Java interfaces to the underlying platform if you don't care about it being platform specific. Its truly worth a shot.

    --
    mp3's are only for those with bad memories
    1. Re:Apple owner and developer by BabyPanther · · Score: 1

      Unforutnately it does not appear that Java 1.5 is going to be available when they initially release Tiger (at the end of April). Still, I enjoy using Mac OS X when you don't need the latest JVM.

    2. Re:Apple owner and developer by mopslik · · Score: 2, Informative

      Java is fine and dandy, but anyone who's had lots of experience with C++ might feel a bit more at home using wxWidgets. I've done a bit of work using wxWidgets, and it's pretty spiffy.

      I will admit, however, that the majority of my stuff has been for Windows/Linux cross-compatibility, with little focus on Macs.

  11. Apple Development by Laplace · · Score: 5, Informative

    Apple ships OS X with a developer tools CD. That's where you will want to start. It will give you most of your basic gnu development tools, along with Xcode (a decent IDE which is getting better with every revision) and some mac-specific profiling tools.

    The next step is to sign up for the Apple Developer Connection. It has many membership levels ranging from free (so you can download developer tool updates) to very expensive. Update your compiler and tools to the latest version using this service.

    If you like Java, downloading Eclipse might be a good way to go. I haven't used Eclipse much, but have enjoyed all of my experiences with it on OS X.

    You will also want to install either Darwin Ports or Fink. These are package management systems that are based on BSD Ports and apt (respectively). I'm partial to Darwin Ports, but both systems have their strengths and weaknesses.

    If you want dead-tree documentation, the two books to start off with are "Cocoa Programming for Mac OS X" by Aaron Hillegass and "Core Mac OS X and Unix Programming" by Mark Dalrymple and Aaron Hillegass. These guides are thorough, and the authors have been part of the Objective-C/Cocoa community since the Next days, and give good tutorials on what is the Mac philosophy of software development.

    Another option for an IDE, which has decent but dated interfaces to the OS X world is CodeWarrior. I know a bunch of developers who swear by the CodeWarrior development platform. I really couldn't get into it myself, but it seems to have a nice toolkit for cross-platform development.

    Have fun!

    --
    The middle mind speaks!
    1. Re:Apple Development by Spunk · · Score: 1

      I'm not the original poster, but I am thinking of doing something similar so I have a few questions.

      Does Eclipse integrate well with Obj-C? Other posts have claimed that would be a better language to focus on.

      As an alternative to Darwin Ports and Fink, have you tried Gentoo for MacOS? (Not to be confused with Gentoo Linux for PPC!) I'm currently a Gentoo Linux user, so this would be my default choice. How does it compare?

      Thanks!

    2. Re:Apple Development by Laplace · · Score: 1

      Eclipse with objective-c? I don't think so. The strength of Eclipse is Java. In that sense it is a bit of a one trick pony (yes, I know there are plugins for other languages... but other languages are second class citizens to Java). I've long been a Java nay-sayer, but lately have started to appreciate it.

      As far as Objective-C goes, the combination of Xcode and Interface Builder is the way to go. I use Xcode to manage the source code and set of the builds, and then use vim in a terminal window for coding and debugging. Apple includes a tool called xcodebuild, which I invoke from vim to build my programs.

      Objective-C isn't necessary if you're willing to use less mature widget sets. I've had some success with wxWidgets, and wrote some cross-platform c++ apps with it. If you're not using the more complex features of wx (like threads... wx threads suck on every platform) you can generally get the job done.

      The Hillegass book is essential reading if you do want to use objective-c.

      I haven't used Gentoo for Mac OS. My impression of it has been that it is relatively immature compared to Fink and Darwin Ports. The tweak factor also seems a bit high to me.

      One of the reasons that I like Darwin Ports is how simple it is to use, but is easy to tweak it if you need to. It's downside is that upgrading the system is a pain, and many of the packages lag behind the more current releases.

      --
      The middle mind speaks!
  12. XCode is free... by teridon · · Score: 2, Informative
    I have no clue whether XCode is "comparable" to MS VS .NET, but it, and the other Apple developer tools are free. It comes with any Mac, or you can download it for free (with a free ADC Student membership).

    If you have any costs (other than the hardware), they might be:

    ADC membership (student membership is free, non-student cost is significant)

    WWDC attendance

    Other apple developer training/seminars

    None of the above are required. ADC membership will get you access to pre-release hardware and software to test your apps; but you're not doing commercial work, right? Apple training and the WWDC gives you insight into the inner workings of the OS, but you can get much of this info on Apple's developer website

    --
    I hold it, that a little rebellion, now and then, is a good thing. -- Thomas Jefferson
    1. Re:XCode is free... by Omniscientist · · Score: 1

      ADC membership (student membership is free, non-student cost is significant) You sure? I am a student and they are asking me for $99 to join the Student Developer program.

    2. Re:XCode is free... by Dragonmaster+Lou · · Score: 1

      Actually, the most basic ADC membership, which allows you to download Xcode and a bunch of other tools, is free for everyone, not just students. Now if you want free releases of the OS, etc., that will cost you money. However, I believe they may offer discounts on hardware if you get a more expensive membership, which may help offset those costs.

    3. Re:XCode is free... by alanQuatermain · · Score: 1
      ADC membership (student membership is free, non-student cost is significant)

      Actually, there's Online Membership as well, which is free, and gives you access to download the dev tools. You don't get pre-release software or priority access to Apple DTS (developer technical support) though, but as a home user you're unlikely to actually require either of those.

      -Q
    4. Re:XCode is free... by BoomerSooner · · Score: 4, Informative

      ADC is free
      ADC 1 year subscription for Student is $99
      ADC 1 year subscription with 1 Hardware coupon is $500
      ADC 1 year subscription with 10 Hardware coupons is $3500

      The Hardware discount is significant if you're getting a high end mac. I suggest the $500 subscription and you'll save that on a high end powerbook or G5 powermac

      Click United States Then ADC Hardware Purchase Program.

      Big savings plus it's like subscribing to the MSDN you get cool shit all year.

    5. Re:XCode is free... by Anonymous Coward · · Score: 0
      Now if you want free releases of the OS, etc., that will cost you money.

      These free things you speak of, they'll cost me money?

    6. Re:XCode is free... by Senjutsu · · Score: 2, Informative

      The Hardware discount is significant if you're getting a high end mac. I suggest the $500 subscription and you'll save that on a high end powerbook or G5 powermac.

      Student ADC members get the same discounts as the $500 select members, so if he's a student he could get those same discounts with the $99 membership.

    7. Re:XCode is free... by rookworm · · Score: 1
      What sort of discounts, specifically?

      would it pay for itself if one were to buy a cheaper computer (e.g. iBook or 12" PB)?

      --
      The toad can't burp - and for some reason can't fart either, so it swells up and eventually explodes. --Anonymous Coward
    8. Re:XCode is free... by Senjutsu · · Score: 2, Informative

      The discounts get larger as the hardware gets more expensive (for fairly obvious reasons). I'm going to assume you're a fellow canuck based on that email address, so if you browse the Candian ADC Select Store, you can compare them with the regular prices at the regular Canadian Apple store. Remember to factor in the $99US student membership fee on top of the prices there.

      From what I've seen, unless you're buying quite high end stuff, it's about as cheap to buy from the regular education store than from the ADC store once you factor that cost in.

    9. Re:XCode is free... by teridon · · Score: 1

      When I got my student ADC membership it was free. The $99 charge is new. :(

      --
      I hold it, that a little rebellion, now and then, is a good thing. -- Thomas Jefferson
    10. Re:XCode is free... by Pionar · · Score: 1

      I looked at a 15" Powerbook, and the price was $400 lower ($1,599 vs $1,999).

  13. Defend your position!? by ciroknight · · Score: 3, Interesting

    Why is it too bulky? It offers automated CVS/SVN support, greatly helps organize files without needlessly creating a thousand folders to store your files in, builds everything as you ask it to, and offers instant support at your fingertips. XCode is awesome if you know how to use it correctly.

    But, if you are a C or Perl hacker who likes doing things from the command line, that's quite alright as well. If you're programming on the Mac, you're most likely making a GUI for something UNIXie already, so you're probably going to want to use XCode, if not for its instant support to Carbon documentation, than for source code highlighting and autocomplete (which isn't as good as Visual Studio's autocomplete, but it gets the job done).

    --
    "Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
    1. Re:Defend your position!? by ABaumann · · Score: 1

      In my experience, XCode is incredibly slow for building a smaller ( 20 files) application.

    2. Re:Defend your position!? by Paradise+Pete · · Score: 3, Interesting
      In my experience, XCode is incredibly slow for building a smaller ( 20 files) application.

      I have a small project I'm working on. It currently has 16 files. If I change a single file and click "build," its finished about as soon as I release the mouse button. If I "clean" first, which forces it to recompile everything, the build is finished in six seconds.

    3. Re:Defend your position!? by alanQuatermain · · Score: 5, Interesting

      I've been using Xcode for things for years now, and the only thing that takes any real time for me is the precompilation step.

      If you build a Cocoa/Carbon application with only a couple source files, it may take a while to build the whole thing, but that's more than likely just the precompilation step (which is likely precompiling a large percentage of the header files installed on your system, and only happens on first build or after a 'clean' or 'clean all').

      That said, I rarely have any problem with such applications. In fact, I quite often build one-source-file testing applications with Xcode just to try things out - for example, to see what error codes are returned by FSMountServerVolumeSync() under different situations (already mounted by same user, already mounted by other user, invalid volume, invalid server, invalid user/pass, etc.). I rarely have a problem with it.

      Perhaps the tradeoff between long precompilation time and size of other source code seems wrong to you - but in that case you can always turn it off in the target settings. Internally it just calls through to gcc, and there doesn't seem to be any significant overhead that I can see...

      -Q

    4. Re:Defend your position!? by tenman · · Score: 1

      how many lines of code are we talking about?

    5. Re:Defend your position!? by LWATCDR · · Score: 1

      Since I tend to keep a single object in each source file these seem very tiny to me. I mean sounds like around 10 objects max. 10 source files and 10 headers would be 10 objects.
      Okay nine and a main loop

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    6. Re:Defend your position!? by ABaumann · · Score: 1

      Thanks. I bet you're right. I might have to take another look at XCode.

    7. Re:Defend your position!? by Have+Blue · · Score: 1

      Don't forget that Xcode will do parallel compiles on DP Macs. This is a huge speedup.

      Also, the Objective-C++ compiler is incredibly slow, so a) this may explain the GP's problem and b) don't enable it unless you really need it. This should be improved in Tiger.

    8. Re:Defend your position!? by Paradise+Pete · · Score: 1
      Don't forget that Xcode will do parallel compiles on DP Macs. This is a huge speedup.

      That probably explains it. It's absurdly fast, at least on my rinky-dink stuff.

  14. New feature in Tiger ;-) by zhiwenchong · · Score: 2, Interesting

    Remappable Modifier Keys

    Remap modifiers such as control and caps lock to be super elite.
    http://www.apple.com/macosx/newfeatures/newfeature s.html

    1. Re:New feature in Tiger ;-) by Anonymous Coward · · Score: 0
      Remap modifiers such as control and caps lock to be super elite.

      This is too good. For old time's sake, the classic Apple-Ignores-Unix-Users troll:

      I am a long-time Unix user. That means I need to have the Ctrl key to the left of the A key. This is a genuine need, not merely a want; it is based upon ergonomics. The Ctrl key is heavily used in unix, and it must be easily accessable. It cannot be off in the lower left corner of the keyboard where it is difficult to get at, and where it distorts the position of your left hand such that you can't easily type other keys while holding the Ctrl key down.

      Apple desktop keyboards are now all USB. They are all OK. The CapsLock key can be re-mapped into a Ctrl key.

      Unfortunately, even in this modern age, all Apple laptops have built-in ADB keyboards. The ADB keyboard is broken-by-design. It is, in general, not possible to remap the CapsLock key into a Ctrl key.

      There are some exceptions, but they are horrible kludges. They are
      horrible kludges because the original design of the ADB keyboard was a horrible kludge. The correct solution would be for Apple to re-design their laptop motherboards to use built-in USB keyboards. This hasn't happened yet. If you run Linux, use Debian's solution. For Mac OS X users, uControl works. There are no solutions (that I know of) for either NetBSD or OpenBSD. Please note once again that the "solutions" above are in fact kludges, because of the original bad design of the ADB keyboard.

      Apple is (currently) ignoring Unix users! This is not merely speculation on my part. In an on-going email exchange I am having with an Apple employee (whom I won't name) in their marketing department, the Apple marketing person directly stated to me that Apple was catering to their historic Mac customers, and is purposely ignoring the Unix market. He also claimed that Apple would soon start paying more attention to the Unix market. I won't hold my breath. Apple has been ignoring Unix users for more than 10 years. I expect that trend to continue. (Also note that my Apple contact indicated that Macs would never ship with a 3-button mouse, even though Apple intended to port almost all X-window software and deliver it either on a CD/DVD or installed directly on each Mac's hard drive. How Unix friendly is a 1-button mouse with X programs that often require 3 buttons?)

      Apple has now lost two opportunities to sell me hardware. I really wanted an Apple laptop for their superior battery life, and for the PowerPC with Altivec CPU. (The Altivec is vastly superior to the x86 line for DSP.) Because I can't live with the broken-by-design built-in ADB keyboard in all Apple laptops, Sony and IBM sold me laptops instead. If Apple fixes this problem, they will sell me a PowerBook next year; if they don't, I'll still be running OpenBSD on x86 hardware, and wishing I could use a Mac.
    2. Re:New feature in Tiger ;-) by Anonymous Coward · · Score: 0

      New (as in currently shipping) PowerBooks have USB keyboards and USB trackpads.

    3. Re:New feature in Tiger ;-) by earthbound+kid · · Score: 1

      Wow, does that mean in the next version of OS X it won't be the case that, "Even BBEdit Lite is straining to keep up as I type this"? Dude, it's like we're letting the trolls win!

      Then again, it might be interesting to see Natalie Portman covered in grits... Hmm. I guess I, for one, will welcome our new /. troll overlords!

    4. Re:New feature in Tiger ;-) by Anonymous Coward · · Score: 0
      Thank god, finally you assclowns can shut the hell up and whine about something else for once. Thank god something broke up the monotony of drivel that spews from you dumbasses.

      This is a genuine need, not merely a want; it is based upon ergonomics.
      No, it's a want, not a need. A need would be if they didn't have a control key at all. You NEED a control key.

      All that's happened is you got used to it being in a particular spot. Your brain would need to relearn where it is. You assclowns refuse to do it, so you piss and moan and throw hissyfits to rival 4 year olds who've been told to go to bed after eating Soda and Pop Rocks non-stop all day.

      It's not like the world is forcing you to switch from QWERTY to DVORAK. It's one goddamn key. Force your gray matter to do some difficult work for once.

      And for god's sake, shut the hell up and take it like a man - not a 4 year old. If you keep up this crap sooner or later you're going to throw a hissyfit in front of the wrong person and they'll knock you into place with a nice 2-by-4 sized cluestick.
  15. Tiger? by El · · Score: 2, Insightful

    On a related subject, if I wait until May to buy a Mac Mini, will it come with Tiger and X-code?

    --

    "Freedom means freedom for everybody" -- Dick Cheney

    1. Re:Tiger? by nickscalise · · Score: 3, Informative

      Probably, but if not you can get the Tiger DVD sent to you for $9.95.

      http://www.apple.com/macosx/uptodate/

    2. Re:Tiger? by amichalo · · Score: 2, Informative

      According to Apple, if you buy a system today, you will get Tiger.

      --
      I only came here to do two things; kick some ass, and drink some beer...looks like we're almost out of beer.
  16. Book by avjewe · · Score: 3, Informative

    Cocoa Programming for Mac OS X by Aaron Hillegass is an excellent place to start learning how to use all the cool Mac-specific stuff.

    1. Re:Book by djcatnip · · Score: 1

      Aaron also teaches at Big Nerd Ranch if you can swing the fee. I took the PHP bootcamp there, and Aaron was there every day even though he was not teaching. Just by talking with him all week, I got a strong feeling he would be an excellent teacher. Aaron goes way back to NeXT days, so ObjC is something he's very familiar with.

      --
      I make these: http://beatseqr.com
    2. Re:Book by Anonymous Coward · · Score: 0
      Cocoa Programming for Mac OS X by Aaron Hillegass is an excellent place to start learning how to use all the cool Mac-specific stuff.

      Try to borrow a copy first! I bought that book and found it utterly useless. The explanations (of which there were very few) made no sense: it was mostly "copy this and the example will work, don't worry about why."

      I spent weeks figuring out Cocoa to the point I could actually use it, and I still find that book confusing.

  17. Other than the obvious by amichalo · · Score: 5, Informative

    Everyone has (and will continue) to discuss Xcode.

    I can give some insight into the question of learning curve.

    I develop .NET web apps at work on XP but have a Mac at home. there are a good many differences:

    - The mac is like Linux. Get used to the Linux command line. If you don't know basic commands like LS instead of DIR then the curve will be steap. If you have used a *nix system or are a quick study, I would pickup an O'reilly book and get up to speed with things like user permissions (CHMOD) and GREP and the Pipe "|" for automation. Also know than things like Chron jobs replace Windows Scheduler. Get a book adn take the few hours to skim it. It will be a great reference if nothing else.

    - Perpare yourself for more text editor usage and less sophisticated Integrated Developer Environment (IDE). Okay, let the Apple Xcoders begin their flame. I really feel that MS got some things very very right with Visual Studio .Net and it is way different developing .Net apps with the IDE in Visual Studio. I have developed php apps on the Mac and used TextEdit and BBedit (a great OS X only editor). IMHO, seasoned coders who really know their stuff will do well transitioning from VS.net, beginers will have a few less crutches to use.

    - You're gonna need an office suite. MS Office.X is great, but for the money, I kinda like OO.o and use NeoOffice/J myself. A Mac alternative to Visio is OmniGraffle and is better IMHO.

    - Get used to few, but higher quality choices. Okay, this one is touchy too but there are few fewer choices for software and websites to Google for a problem but the ones you do find for whatever the task might be are of better quality I think. Apple does a great many things right the first time so even if an article is written for Jaguar, it may very well work under Tiger, etc. I have found this very frustrating as I try to install something under IIS 6 with a document written for IIS 5 for example.

    - Don't underestimate the hardware. Okay, your budget, your choice, but I would be more inclined to recommend to a serious developer buying a Power Mac (watch out, rumors of new updates in May so careful with the timing) over a Mac mini. The Mac mini is great for a home user wanting to check email, but if you are going to develop, compile, and potentially deploy Web Objects and such, don't underestimate the G5's supperiority to it's 32-bit father. At a minimum, follow all the recommendations and get 512mb ram (I have a Gig and use it).

    Lastly, "Welcome".

    --
    I only came here to do two things; kick some ass, and drink some beer...looks like we're almost out of beer.
    1. Re:Other than the obvious by mmkkbb · · Score: 1

      A Mac alternative to Visio is OmniGraffle and is better IMHO.

      OmniGraffle may or may not be included with a new Mac. Mine came with it and OmniOutliner, but I am currently one major version behind unless I want to pay.

      Why does he "need" an office suite anyway?

      --
      -mkb
    2. Re:Other than the obvious by amichalo · · Score: 1

      Why does he "need" an office suite anyway?

      Reasonable question. I hope this answer suffices:
      Office suites are the toolsets of 21st century inner/extra-office business. They go beyond the basic MS Word .doc (for which any .rtf editor can do 90% of the tasks) and allow the user to document and share information easily.

      As a developer, I find MS Office indespensable. I use Word to edit and contribute to proposals with the ability to set change tracking on so the project manager can accept or edit my changes without having to find my edits himself. Excel allows me to compile great looking tables of features, time and cost estimates, and complete my weekly timesheet. Exchange manages Email, scheduling, and task assignments. I don't make presentations as part of my job, but sales does and PowerPoint seems to be the sales person's best friend (certainly Visual Studio .net isn't!).

      True, one doesn't need an office suite to be a good programmer. But show me the job description for a programmer that doesn't have to communicate with the rest of the organization and I'll have you fifty resumes by lunch.

      --
      I only came here to do two things; kick some ass, and drink some beer...looks like we're almost out of beer.
    3. Re:Other than the obvious by styrotech · · Score: 1

      Reasonable question. I hope this answer suffices:
      Office suites are the toolsets of 21st century inner/extra-office business. They go beyond the basic MS Word .doc (for which any .rtf editor can do 90% of the tasks) and allow the user to document and share information easily.


      You reckon? Office Suites seem so 20th century to me.

      I seeing a growing trend to using web based collaboration tools for all that stuff. Web based project management tools, issue trackers, wikis etc etc. It's quite liberating to be freed up from locking everything up in little 'smart' files that have to be stored, organised, versioned, lost, found, rebranded, transported etc all while accumulating extra crud in them. Building any kind of workflow into the documents themselves is just painful and seems silly. It seems so much better to separate the data from the workflow from the presentation.

    4. Re:Other than the obvious by Anonymous Coward · · Score: 0

      - Perpare yourself for more text editor usage and less sophisticated Integrated Developer Environment (IDE). Okay, let the Apple Xcoders begin their flame. I really feel that MS got some things very very right with Visual Studio .

      Not sure which version you are referring to, but keep in mind VS.NET will run you between something like $800 - $2,000, while Xcode is free (:

    5. Re:Other than the obvious by DavidLeblond · · Score: 1

      I really feel that MS got some things very very right with Visual Studio .Net and it is way different developing .Net apps with the IDE in Visual Studio.

      No offense, but MS got some things very very right with Visual Studio 6. VS.NET was very very wrong.

      People can say what they want about VB6, but being able to edit your code while debugging saves a lot of headache. There have been times in VS.NET where I've had to rebuild an entire project because a file is out of sync and its telling me I have a bug on a blank line.

      Visual Basic has its place in the world, just like all other languages. That said, VB.NET is NOT Visual Basic.

      Sorry for the OT rant. I just feel VS.NET is too buggy. I liked Visual Studio 6 fine. Eclipse is great, needs a speed improvement. XCode ticks me off but I like what I see in 2.0. Text Wrangler still reigns supreme. :)

    6. Re:Other than the obvious by jht · · Score: 1

      There's different software bundles between the "pro" Macs and the "consumer" Macs. All Macs include developer tools (though not pre-loaded, the installer is on the disk already and ready to load). The consumer models (Mini, eMac, iMac, iBook) include AppleWorks and Quicken 2005 in their bundle, along with some other home-focused stuff. The pro Macs (PowerMac, PowerBook) include the OmniOutliner and OmniGraffle basic versions (Omni will let you upgrade them to the current/pro versions pretty cheaply), and a "lite" version of QuickBooks. They all include a "test drive" version of MS Office 2004, and typically a game or two.

      There's a few other differences in the software bundles, but that's the gist of it. I upgraded my copy of OmniGraffle and I do like it a lot better than I liked Visio.

      Office is a "good to have" thing - and Microsoft Office 2004 is actually a pretty nice product - once it supports iSync (which it will with the expanded iSync under Tiger) I plan to switch my mail client from Mail.app to Entourage (the update will be free). You can also buy a fairly cheap "Student-Teacher Editio" of Office 2004 that is exactly the same as the regular version, but is intended for home use, and comes with three serial numbers for concurrent home usage. I haven't used any of the other office suites for the Mac, but I like MS Office enough to have no incentive.

      Apple's iWork is a pretty good tool for many office functions, but there's no spreadsheet - it's just word processing/presentation. And if users need a database, FileMaker's the "standard" app and it's cross-platform as well.

      --
      -- Josh Turiel
      "2. Do not eat iPod Shuffle."
    7. Re:Other than the obvious by UnknownSoldier · · Score: 1

      > Why does he "need" an office suite anyway?

      Don't under-estimate a spreadsheet's ability.

      As a programmer who loves math, I use a spreadsheet for building tables, checking relative errors, and graphing formulas.

      (Of course a math package like Mathematica helps too =P)

    8. Re:Other than the obvious by notbob · · Score: 0

      VS6 was horrid

      Edit in line is great for simple garbage apps aka VB6 junk.

      Editting in line is not quite as simple as it sounds in a true structured environment like C# & VS.NET

      Learn the ways of the enterprise and cast aside ur evil VB6... burn VB burn...

      When God took a dump he gave us the darkies...

      When Microsoft took a dump he gave us... COM objects & VB6

    9. Re:Other than the obvious by DavidLeblond · · Score: 1

      Learn the ways of the enterprise and cast aside ur evil VB6... burn VB burn...


      Are you from Microsoft's marketing department?

      The same Marketing department that told us to scrap our 200,000+ VB6 application (hey, it was that way when I got there don't blame me) and rewrite it in VB.NET?

      The same Marketing department that told us Oracle was ol' school so we should rewrite 2.5 million lines of PL/SQL in SQL Server?

      If you want to do this for us for free, go right ahead. "Enterprises" don't run like MS's marketing department would have you believe.

  18. If you love .net by LWATCDR · · Score: 1

    Then install Mono.
    I am pretty sure they have a Mac port.
    As everyone else has said the development tools come with the mac. Kind of remindes me of the old AppleII days :)
    Makes me wonder if Microsoft will start throwing in Visual Studio with Longhorn.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    1. Re:If you love .net by Anonymous Coward · · Score: 0

      I am pretty sure they have a Mac port.

      Try:
      http://www.mono-project.com/Downloads

      If you want an IDE like VS.NET, and you want to use Mono, then try MonoDevelop:
      http://www.monodevelop.com/

      MonoDevelop runs on the Mac, and looks/acts like VS. It compiles C# code, which is probably what you'd be writing in VS on Windows (unless you're writing managed C++ or VB.NET for some reason).

    2. Re:If you love .net by snorklewacker · · Score: 1

      > Makes me wonder if Microsoft will start throwing in Visual Studio with Longhorn.

      The lite edition (which is still quite solid) of Visual Studio is a free download now. You can even get it with Firefox, though the platform SDK still requires IE to get. It's componentized now, so you download the individual pieces you need (so if you don't want VB, you don't get VB).

      I sincerely doubt MS will ship any real dev tools with Longhorn. The one market MS really does not want to undercut is the ISV market for developer tools. Apple has few such worries -- Codewarrior was just about the only comparable vendor left.

      --
      I am no longer wasting my time with slashdot
    3. Re:If you love .net by LWATCDR · · Score: 1

      Does anyone really pay for an IDE besides Visual Studio to develop C,C++ or C# under windows?
      I know there are some die hard BorlandC++ users but for the most part for .NET Visual Studio seems only Game in town.
      The ISVs that Microsoft does not want to tick off are the people that make add ins for VS.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    4. Re:If you love .net by babbage · · Score: 2, Insightful

      I don't think that's the reasoning at work here.

      On Windows, the platform is mature and widely adopted, with a rich variety of software from independent vendors. Microsoft feels they can charge for the development tools, and does so.

      On OSX, the platform -- not counting the Unix foundation -- is young, with a comparitively miniscule pool of software vendors. Apple needs to grow the pool of available software for the platform, so giving their development suite away is a way to encourage more software to be available for the platform in the long run, and so to make the platform more viable in the long run. It's a short term expense, but a long term investment.

      The motivations on the two sides are different, so of course the approaches are as well.

    5. Re:If you love .net by davidbro · · Score: 4, Informative

      >On OSX, the platform -- not counting the Unix foundation -- is young

      Are you kidding? Cocoa is based on NeXTStep, which has been actively refined since the late 80's. Win32 dates from the early 90's, and .NET is even younger still.

      Interface Builder, the primary Cocoa/NeXTStep GUI tool, was the first of it's kind. I saw it for the first time in 1989.

      The class library that makes up Cocoa is one of the most mature frameworks out there.

    6. Re:If you love .net by babbage · · Score: 0
      >On OSX, the platform -- not counting the Unix foundation -- is young

      Are you kidding? Cocoa is based on NeXTStep, which has been actively refined since the late 80's. Win32 dates from the early 90's, and .NET is even younger still.

      Ahem. Let me repeat that, with emphasis:

      On OSX, the platform -- not counting the Unix foundation -- is young

      I'm perfectly aware that the roots of OSX go back a decade before a product from Apple named "OSX" was ever available to the public, but that's not the point. The only people today that have heard of NeXTStep are computer nerds that either had access to such exotic systems back then or, far more likely, have read interesting stories from the small handful of people that had access to such things back in the day.

      OSX, on the other hand, as a contemporary, mass-market product, is relatively young. And even if you include both of the NeXT developers that made the transition (Omni, and... I can't think of anybody but Omni, sorry), you're still dealing with a developer pool that is probably one percent of the size of the Windows development base. (Yes, I just pulled that number out of thin air, but I strongly suspect that it's roughly correct.)

      The real point -- which splitting hairs about the age of development toolkits that I didn't even mention completely evades -- is that the Windows developers base is orders of magnitudes bigger than the OSX base, even if you include all three of the NeXT guys. This leads each side to starkly different stances which each make sense on their own terms:

      • Microsoft needs the revenues ("rent", perhaps) more than they need to accumulate more developers, so they can afford to charge for their toolkit.
      • Apple needs developers more than they need short-term revenue, so they can afford to give away their toolkit. (Moreover, much of their toolkit is GPL stuff like gcc that they didn't even write in the first place, so charging for it would just complicate things and piss off potential developers.)

      Consider the points of view of the two camps and their actions make perfect sense.

    7. Re:If you love .net by snorklewacker · · Score: 1

      > Microsoft feels they can charge for the development tools, and does so.

      I just got through saying that they don't charge for them anymore. Those "lite" versions are more heavy duty than most full blown IDE's. About the only thing really crippled is SQL server, but it's still adequate for development. Write your app right and you can switch to postgresql, which has odbc, ado, and .net data providers as well.

      Still, LWATCDR is probably right in correcting my reasoning ... it's not as if MS hasn't largely sewn up the market already. Maybe it's just a support issue then, one less thing (actually thousands less) to affect a default configuration.

      --
      I am no longer wasting my time with slashdot
    8. Re:If you love .net by davidbro · · Score: 1

      I was not even worried about the relative sizes of the development community, since the original question was about dev tools for OSX. It may have been the main point of your post, but I chose to address the part of your post that was most relavant to the discussion at hand.

      The real point -- which splitting hairs about the age of development toolkits that I didn't even mention completely evades

      Thinking of Cocoa as the "development toolkit" is disingenuous at best. While the names of the pieces tend to include the term "Kit", thinking of them as a development toolkit makes as much sense as thinking of Win32 as a development toolkit. It's a fun rhetorical device (akin to comparing the sizes of the dev communities when the topic at hand is dev tools for OSX), but diverts attention from the larger role that it plays.

      It is interesting that you try to classify the runtime part of Cocoa as "part of the Unix foundation." It's not. Cocoa is the application support library that rest on a Unix foundation. It doesn't necessarily NEED Unix either -- OPENSTEP shipped for Win32 at one point in it's lifetime. While the packaged product called "OSX" is certainly young, and I would never dispute that, the vast majority of the base (including the support library structure, the object hierarchy, and a good proportion of the development tools) were in place before Apple got hold of it.

      Consider the points of view of the two camps and their actions make perfect sense.

      I would never debate that, because I don't think it's in question. In fact, I don't think much of what your trying to debate me about is in question, I would agree with you on everything but the relative age and maturity of the platforms. If I wanted to talk about products, I would have been talking about NT/XP vs OSX.

  19. Xcode + a good book or two by anactofgod · · Score: 5, Informative

    Is all you need to write the sort of apps that you were talking about.

    Xcode, as every other post has said, is free.

    Wrt books, I'd recommend "Cocoa Programming for Mac OS X, 2nd ed", by Aaron Hillegass. Aaron has a lot of experience teaching NextStep, WebObjects and OS X development, and his book reflect that experience. It is excellent - much better than the O'Reilly offerings I've seen. Big Nerd Ranch also has a book about programming the underpinnings of OS X called "Core Mac OS X and Unix Programming." Haven't seen this version book yet, but apparently it's the spiffed up, published version of BNR's student guide, so I'd bet it's pretty well done. You can get both together for $96.20 from Amazon.

    There are other good references, tutorials, as well, some free on-line, and some for purchase. Do some Googling and mining on Amazon or B&N to find one that suits your purposes.

    BTW, OS X has some very strong scripting capabilities built in that you might find useful for the kinds of apps you typically develop. And, as someone else noted, Ruby and other cool hacking languages come shipped with OS X and work well with XCode. Also, Eclipse, with all its goodness, runs nicely on OS X.

    Lastly, if you want to put the limitations of "modern" programming languages behind you and get back to the future of software development, OS X has some of the best OSS Lisp implementations. SBCL or OpenMCL (if you want to do Cocoa apps), plus SLIME and Emacs is all a real programmer needs, and it's all free. *grynn*

    --

    ---anactofgod---

    "Equal opportunity swindling - *that* is the true test of a sustainable democracy."
    1. Re:Xcode + a good book or two by RevAaron · · Score: 1

      If you're going to mention Lisp, the key is not just that there are Lisp implementations for OS X- we've got them on Linux and Windows too. But what you can get on OS X that you can't get anywhere is the marrying of a really kick ass API- Cocoa- with almost any great language. You can do a tremendous amount with a language like Smalltalk, Lisp, Ruby, Python, Perl, Lua, etc etc with access to the Cocoa classes, and you can do it in only a few lines...

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  20. Plan comparison chart by objekt · · Score: 1

    I opted for the free online plan.
    See the chart here: http://developer.apple.com/membership/details.html

    --
    -- Boycott Shell
  21. Avail yourself of the online resources. by mellon · · Score: 4, Informative

    My three main bookmarks for Cocoa help right now are:

    http://rentzsch.com/
    http://www.idevapps.com/fo rum/
    http://www.zathras.de/angelweb/x2004-12-05b. htm

    The main challenges with Cocoa are learning how to navigate project builder so as to connect things up, and figuring out all the undocumented interdependencies between Cocoa objects.

    One of the things that really screwed me up for a long time was not realizing that the UI objects aren't re-entrant, so if you call a UI object from a thread other than the main thread, you're likely to get random crashes.

    The biggest thing for me though was figuring out project builder - figuring out how outlets and actions work. This is particularly a problem because there's no file you can edit to do outlets and connections - you have to do it with the GUI, and it's extremely counterintuitive. Once you figure it out it's easy, though. So it's good to just type your way through a couple of tutorials just to get the hang of it.

    If you want to look at some example source code, I have something up on sourceforge that's (a) not trivial, but (b) not heinously complex, so it might be worth looking at. http://www.sourceforge.net/projects/gofer

    1. Re:Avail yourself of the online resources. by cratermoon · · Score: 2, Informative

      Pretty good links. I found the tips and tricks on the CocoaDev Wiki invaluable in my work on the Objective-C port of FIT.

    2. Re:Avail yourself of the online resources. by keytoe · · Score: 1

      Don't forget the most important resource of them all - the cocoa-dev mailing list at Apple and the searchable archives of the list at cocoabuilder.com.

      If you're having a problem, someone there has already had it and solved it. And they're really nice - a rare thing on a mailing list these days...

  22. Amateur Here by kuleiana · · Score: 1

    OK, speaking from an amateur's seat, here's my take on it. Get started with XCode, as it is free, and would probably be a good introduction to your Mac. Start with Objective C if you want to start with a powerful intro, or start with Mono if you want a somewhat compatible intro.

    If you were interested in Java, I assume you would have said so at the beginning.

    Personally, what little proprietary programming I've done has gone out the Windows (sic) and I now like cross-platform stuff much, much better!

    --
    Thinkingman.com New Media
    1. Re:Amateur Here by TheRaven64 · · Score: 2, Informative

      If you are interested in cross platform development, take a look at GNUstep. GNUstep currently implements most of AppKit and Foundation from Cocoa as well as some extra frameworks (e.g. Address Book). The one down side is that they do not yet support OS X .nib files, so you will generally need to re-create these in GORM (the GNUstep equivalent of Interface Builder). If you develop on GNUstep, then it is usually trivial to port to OS X. If you develop on OS X, it is sometimes a little bit harder. If you find a bug in GNUstep while trying, then please file a bug report - it won't improve if the developers don't notice it needs to.

      --
      I am TheRaven on Soylent News
  23. GYFQ by Anonymous Coward · · Score: 0

    (Google Your Fscking Question.)
    python xcode

  24. As a Windows programmer.. by Anonymous Coward · · Score: 1, Informative

    ..I think that XCode is awful. It's horribly unintuitive and enjoys separating you from your code. When you just want to build a damn executable it has you messing with build targets and all sorts of garbage that I will never care about. Even Apple calls XCode "A New Way to Work" (headline half way down the page). Sorry, but I liked my old way of working - you know, where I was productive and didn't have to learn the quirks of your stupid IDE. If I was ONLY developing for the Mac I might take the time to learn it.. but I'm not, so I will never waste my time on it.

    Anyway, I found that I was most productive in OS X by treating it like Unix. I use Scons to build projects (no more Make for me), and I use Eclipse as an IDE (or occasionally Emacs as a straight editor when I'm doing something simple). Eclipse is originally a Java IDE (which is itself written in Java), but it has a C++ development extension available from their site and works nicely with standard tools like GCC and GDB.

    So I use Eclipse to edit code, configured to call a custom Scons script (that I wrote and maintain to build the project) whenever I hit compile. The C++ Eclipse extensions understand how to parse error messages passed back from GCC, so while IDE integration isn't perfect, it works well enough to be productive. AND I still get command-line compilation if I don't feel like using an IDE that day.

    Best of all: Eclipse and Scons are completely free and completely cross-platform (Scons runs whereever Python does). And I have an identical development environment on Windows (using the free MingW32 port of the GCC compiler), Mac and FreeBSD (although of course, my Scons script handles the multiplatform compilation issues internally, such as which system libraries to link with on different platforms).

    (Disclaimer #1: I'm actually writing OpenGL applications via the SDL multimedia library - your milage may vary if you need a full UI, but I'd try wxWidgets if that were the case).

    1. Re:As a Windows programmer.. by Paradox · · Score: 4, Insightful
      Look, it's one thing to say "I had a bad experience with XCode." It's another to say, "XCode is the worst thing ever." I can't even find words to describe how juvenille calling an IDE "stupid" is in this context.
      When you just want to build a damn executable it has you messing with build targets and all sorts of garbage that I will never care about.
      Umm, it starts out working with sane defaults. In practice, I almost never need to mess with those settings until the very last steps of my application. Not the beginning. The only thing you might mess with in there is what libraries you link, but that's the wrong place to add them.
      Sorry, but I liked my old way of working - you know, where I was productive and didn't have to learn the quirks of your stupid IDE.
      You're advocating Eclipse and claim you don't have time to learn the quirks of a "stupid IDE"? Gee, that's the pot calling the kettle black, don't you think? Eclipse is one of the single most... erhem... "feature rich" products I've ever seen. Learning it is more of a chore than learning emacs, and that's saying something.
      If I was ONLY developing for the Mac I might take the time to learn it.. but I'm not, so I will never waste my time on it.
      XCode is-say it with me now-a OS X Application Development Environment. If you're expecting it to be something else, prepare to have those expectations failed. It can do a lot, and it's a complete, lightweight IDE with a very natural way of organizing OS X projects and integrating with IB.
      ... AND I still get command-line compilation if I don't feel like using an IDE that day.
      You never lose it using XCode. xcodemake has always been there.

      It sounds like you had unreasonable expectations for XCode, and they weren't met. And now you think it's the tool's fault for being nothing more than what it is.

      --
      Slashdot. It's Not For Common Sense
    2. Re:As a Windows programmer.. by vocaro · · Score: 2, Interesting

      I don't know if I would call it awful, but it's definitely not all it's cracked up to be. Everyone here seems to be chanting, "Xcode, Xcode..." but I wonder how many of them have actually used Xcode on a project or if they are just echoing the conventional wisdom. ("It's free! And it's from Apple!")

      Now, I haven't tried Xcode 2.0 in Tiger, but I have certainly made some sincere efforts to use Xcode 1.5 for my C++ and Java projects, and each time I've given up and gone back to a plain old programmer's editor and the command line. Although I loved the debugger, trying to set Xcode's compiler options and other parameters is a nightmare. Everything seems buried in different places for no apparent reason, special buttons have to be clicked in order to switch to a certain mode that will uncover hidden settings, etc. It's just not very easy to use, and it takes quite a bit of getting used to. It's definitely not a shining example of usability, especially given Apple's reputation.

    3. Re:As a Windows programmer.. by jbolden · · Score: 1

      Apple applications are generally written that way. Obscure options are deeply hidden. When people talk about apple and usability what they mean is that for a person who is coming to this type of app for the first time or one who uses this type of app infrequently they will generally find the Apple application to be very easy and will quickly be productive.

      So for example I edit a photo maybe 2x per year. So iPhoto is great. iTunes showed me what a jukebox is for and why I would want to use one. Xcode is a very advanced IDE which will get people who want to use an IDE or need to use an IDE up and running quickly. It sounds like you have basically simple projects which work with standard editors and the command line (I do too btw) and so an IDE is less helpful (though I did love Komodo and wish there was a mac version).

    4. Re:As a Windows programmer.. by Senjaz · · Score: 1

      I think that's where your experience is differing from many others here. You are using XCode for C++ and Java when the IDE has grown up from a tool designed around Cocoa development.

      I have tried Java dev in XCode, nothing serious, just my part time uni course work and I would agree with you XCode 1.5 isn't a great environment for Java dev. Version 2 is much better but it is still catching up with other common IDEs that focus on Java.

      For Cocoa dev I love the environment, especially the new visual modelling tools.

      It's useful to get a non-Cocoa developer's perspective of the tools.

      --
      Don't blame me - this .sig had steal me written all over it.
    5. Re:As a Windows programmer.. by Anonymous Coward · · Score: 0
      Look, it's one thing to say "I had a bad experience with XCode." It's another to say, "XCode is the worst thing ever." I can't even find words to describe how juvenille calling an IDE "stupid" is in this context.
      I have to agree with the grandparent. XCode is a terrible, terrible IDE. It has its roots not in NeXTSTEP development tools but in the terrible, terrible IDEs that Apple's OS 9 development group churned out in the past. Really quite surprisingly bad.

      XCode is a huge mess of compiler options, makefile thingamabobs, unnecessary cover scripts for compiling (MakeC? Why not just say gcc?), and yet it can't do basic things right, like code completion in Java, or use of CVS without requiring the developer to structure his CVS module just like XCode likes it. This comes from XCode trying to be the IDE That Does Everything. It compiles Carbon apps in C and C++. It compiles Cocoa apps in ObjC. It Compiles Cocoa apps in Java. It compiles command-line tools sort of. It compiles Java apps poorly. It does OpenGL. It does blah blah blah yaddah yaddah yaddah. As a result it does none of them well.

      XCode also violates just about every conceivable Apple GUI Guideline there is. It's astonishing.

      My use of XCode has told me one thing is definitely true: Steve Jobs' UI Police have never bothered to click on XCode.

    6. Re:As a Windows programmer.. by Paradox · · Score: 1
      It has its roots not in NeXTSTEP development tools but in the terrible, terrible IDEs that Apple's OS 9 development group churned out in the past. Really quite surprisingly bad.
      Having developed software for NeXTSTEP machines, I can say with confidence your statement is false.
      XCode is a huge mess of compiler options, makefile thingamabobs, unnecessary cover scripts for compiling (MakeC? Why not just say gcc?), and yet it can't do basic things right, like code completion in Java, or use of CVS without requiring the developer to structure his CVS module just like XCode likes it.
      XCode handles CVS just fine. Not that this is any major accomplishment. People are shifting away from CVS to SVN, and now we're seeing more distributed source control tools (Darcs, for example). Apple does have some catchup to do.
      This comes from XCode trying to be the IDE That Does Everything.
      Umm, what? XCode is actually a rather lightweight IDE. It does very little compared to, say... oh...I dunno... Eclipse. It compiles C, C++ and Objective-C, but that's just GCC. It does command line tools just fine, unless you're demanding autoconf-automake (in which case, too bad. They're out-of-scope).

      I can understand some people being mad about OS X's Java support. All I can say is that Mono is allready getting more work than the Sun Java Runtime on OS X, and it's still young. This is because it's open source. Go bang on Sun's door to open their JVM and we'll see some serious progress. Mono is changing the rules, and unless Sun gets their game on, Java is going to be ousted from the open source world.

      XCode also violates just about every conceivable Apple GUI Guideline there is. It's astonishing. My use of XCode has told me one thing is definitely true: Steve Jobs' UI Police have never bothered to click on XCode.
      Developer environments have very unusual usability requirements. Nearly every IDE violates usability rules. It's because they're not-at-all like other applications. They have to jam a huge amount of functionality into a small amount of screen space to make developers happy.
      --
      Slashdot. It's Not For Common Sense
  25. You forgot the c in the link by acomj · · Score: 3, Informative
  26. Cocoa is the way to go by tim1724 · · Score: 4, Informative

    If you're serious about Mac OS X development and want to write applications which blend in well with the Mac environment (necessary if you expect Mac users to actually want to use your applications) then you must learn how Mac applications are supposed to look and behave and figure out how to apply the Human Interface Guidelines to your application. (Note that the HIG is not always 100% accurate .. there are places where you should deviate from it slightly in order to match what Apple's apps do.) This is important, as if you do anything unMaclike then your application will be bashed as a bad Windows port (even if you wrote it from scratch) and no Mac users will touch it.

    You have two ways to go in terms of APIs. Cocoa and Carbon. Cocoa is a refined version of NeXT's OpenStep. Carbon is a cleaned up version of the old Classic Mac OS API (but with a huge number of changes .. it is much improved.) Carbon is straight C code, and the concepts involved are more similar to Windows or X11 than Cocoa's design. But it's big and complicated, and would take a long time to learn. Also, there's a lot more stuff that you have to do in Carbon to make your application behave properly.

    Cocoa gives you most of the behavior for free. You'll write less code, and you'll probably end up with a more Mac-like application. (It's entirely possible to write a a well-behaved Carbon app, but you'll have a lot more to learn in order to do it right, as fewer things are done for you automatically.)

    With Cocoa you'll have to learn Objective C. This is not a big deal. If you know C, then you can learn the handful of additions which comprise Objective C in less than an hour. It's a very simple language.

    Theoretically you can program Cocoa apps in Java, but I do not suggest that you attempt this. Java does not really fit into the Cocoa model very well (it's not nearly dynamic enough) and was shoehorned in as a way to attract developers who refused to learn ObjC. This was a mistake on Apple's part, and they seem to have realized it ... they no longer promote the use of Java in Cocoa.

    I strongly recommend that you spend some time with Hillegass's book on Cocoa. Objective C an elegant language, and is certainly the fastest way to develop Mac applications.

    If you are a diehard C++ fan, then you may be better off with Carbon, but there will probably be a bigger learning curve as the Carbon libraries are more complex. (Carbon has a long complicated history, from its Pascal roots and old Classic Mac OS constructs (resource forks, FSspecs, Gworlds, etc.) and repeated changes in design (GetNextEvent() replaced by WaitNextEvent() and then Carbon Events, QuickDraw replaced by Color QuickDraw and now by Quartz 2D) so it takes quite a while to figure it all out.

    I'd give ObjC and Cocoa a chance first. You can always use Objective-C++ to combine an ObjC user interface with a C++ backend, if you need to port old code. Be sure to check out MacSTL as it provides some nifty stuff to treat some Core Foundation and Foundation objects in an STL manner.

    As for tools ... well, the Xcode IDE and all the GNU tools (gcc, gdb, etc.) come with Mac OS X, so you shouldn't need to buy anything.

    --
    -- Tim Buchheim
    1. Re:Cocoa is the way to go by commodoresloat · · Score: 2, Insightful
      (Note that the HIG is not always 100% accurate .. there are places where you should deviate from it slightly in order to match what Apple's apps do.)

      An important example of such deviation is Apple's use of tabbed browsing in Safari. And now I'd like to take this opportunity to remind slashdotters that tabbed browsing was something I predicted years ago, but was slapped down by others who said that tabs would never happen in Safari because they violated Apple's HIGs. I was modded down for my premonition, but I would like to point out that I was right all along! Now give me my mod points!!

      (Is there a +1, smug?)

    2. Re:Cocoa is the way to go by 6R1MM · · Score: 1

      I was behind you all the way man. Thinking back to how Twirlip strongly claimed Apple would NEVER implement tabbed browsing makes me grin.

    3. Re:Cocoa is the way to go by commodoresloat · · Score: 1
      hehe... yeah they were right about it violating the HIGs, but Apple showed that usability was more important all along and that the HIGs were just an avenue to reach that goal. Which is exactly as it should be.

      I have to say, though, I still use Camino (Chimera then) over Safari, but more because I've just gotten used to its quirks than anything else.

    4. Re:Cocoa is the way to go by Anonymous Coward · · Score: 0

      So you predicted that a feature invented in Opera, and popularly ported to Mozilla and Firebird/Firefox would eventually migrate to another browser?
      Wow, what a jump. I predict that Microsoft will release another version of Office. You heard it here first!

    5. Re:Cocoa is the way to go by commodoresloat · · Score: 1
      Hehe, the difference being that nobody is going to refute your prediction based on Microsoft's interface guidelines.

      Seriously though I was just joking about the gloating, I could care less; the point was that Apple HIGs are not gospel and that that is as it should be.

  27. developer.apple.com by raider_red · · Score: 1

    The Apple Developer web site has a lot of documentation to help get you started. There are several paths you can use to develop Mac applications. Cocoa is the preferred way from Apple, and relies on an OO framework written in Objective C. They also offer Carbon, which is a procedural interface to a lot of the same functionality written in C.

    I'd definitely recommend a copy of "Building Cocoa Applications" published by O'Reilly. It walks you through the basics of Cocoa, and also introduces interface builder, which is a very powerful tool for creating applications. It's possible to create fairly rich applications with no coding using IB.

    XCode is a great code management tool. It has a decent editor, a good interface to CVS, and is much more intuitive than Visual Studio. (At least for me.)

    --
    It's good to use your head, but not as a battering ram.
    1. Re:developer.apple.com by Moofie · · Score: 2, Funny

      I'm a DEVELOPER! I don't have time to READ your stupid DOCUMENTATION! If the computer can't read my mind, it's STUPID and BROKEN.

      Where's my Xanax?

      --
      Why yes, I AM a rocket scientist!
  28. From a broader scope by nflu · · Score: 2, Informative

    If you're just looking to write little C++ apps to fill in the gaps (hey, that rhymed), then you should have no problem at all. gcc/++ runs from the terminal the same way it does in Linux. Everything is the same, libraries, commands, and all. I frequently work on C++ projects between a Fedora machine, FreeBSD machine, and OS X; and if you didn't tell me which platform I was on, I wouldn't be able to tell you. Xcode, on the other hand, is a whole other beast. I use it somewhat frequently, but if you're used to working with source files by hand and doing your own Makefiles, then don't even worry about Xcode.

  29. TrollTech's Qt by FreshMeat-BWG · · Score: 1

    Although Qt is not exactly a "complete" development environment, it has a lot of tools that enable rapid GUI development and provides you with a comprehensive C++ API that is source compatible on Windows/OSX/Linux. We have been using it for commercial development on Windows and Linux for 3-4 years now and have had our eyes on OSX for a while. The GNU compiler collection should be available for OSX. Looks like it should be an easy jump, but you would still need a source code editor or IDE to help tie the it all together.

    1. Re:TrollTech's Qt by TheRaven64 · · Score: 2, Insightful
      If you create an app using Qt, then do not expect Mac users to use it. Qt deviates horribly from the OS X HIGs in some areas (e.g. the text area control behaves completely differently from the standard OS X one), giving a really jarring feeling when using Qt apps on a Mac.

      There is no such thing as a good cross platform GUI. Either your GUI fits with the native platform's HIGs, or it is cross platform[1]. You can not have both. Fortunately, good code abstracts the application logic from the UI, so it is not a great deal of effort to port.

      [1] Some UN*X desktop environments attempt to clone Windows, and so it is possible to run applications which have Windows-like UIs on these without it feeling too wrong.

      --
      I am TheRaven on Soylent News
    2. Re:TrollTech's Qt by Anonymous Coward · · Score: 0

      do not expect Mac users to use it

      In case you hadn't noticed, there are a lot of people using Macs nowadays who aren't quite so pedantic about the "One True Mac Interface Way as Handed Down by God Almighty Himself".

      There is no such thing as a good cross platform GUI.

      Yep, we all know the Mac HIG is the best design that is, ever, was, or ever will be. No point in even trying anything new. Right?

      There are a lot of programs that break the all-holy Mac HIG rules. Including a large number from Apple itself.

      Strange, but true.

      Cheezus. This kind of snobbery and pontificating is a big part of why Apple went into the toilet and is only now starting to climb out.

  30. Re: Obj-C learning curve by Anonymous Coward · · Score: 0
    slightly steeper learning curve, since the syntax is significantly different.
    In my experience the steepness comes from the memory management which is reference counting rather than do it yourself or garbage collection. [object methodcall:parameter] isn't that much harder than object.methodcall(parameter)
  31. Do this now. by mmkkbb · · Score: 1
    --
    -mkb
  32. Not only GUI development on Mac OS X by treerex · · Score: 2, Insightful

    You are not limited to using XCode on Mac OS X. Once you have the developer tools installed you can use Make and Emacs (or VIM, or whatever) if you want. You could even install KDevelop and use that, if you wanted. You can develop with Qt and its tools as well, if you want to go that direction as well.

    You also don't need to develop in Cocoa, if you feel up to learning the lower-level Carbon APIs and do not want to write code in Objective C.

    I expect that someone has provided Cocoa bindings for Python, if you want to write "native" look apps with that. However, the existing Tk interfaces just work.

  33. Eclipse!! by AztecL0B0 · · Score: 1

    Xcode is mainly for programming Mac Apps, but Eclipse is an amazing IDE for JAVA that allows for code completion, automatic generation of classes (that extend classes), and has a multitude of plugins (UML, textToHtml, etc). If you want an environment that closely resembles .NET, you have to go with Eclipse.

    The other cool thing is that Eclipse is available for Windows as well, so you can easily edit your code with either of your machines because Eclipse allows for CVS projects. Another option is Netbeans, but that is not really an option since Eclipse exists.

    --
    Susanna: NO! A si NO. Octavio: Pos...entonces como?
    1. Re:Eclipse!! by jdog1016 · · Score: 1

      I have also heard very good things about Eclipse with Java. However, Eclipse is terrible for C++.

    2. Re:Eclipse!! by dukeisgod · · Score: 1

      Netbeans seems to be a decent IDE for developing Java under OSX also. Netbeans is available for Win32, unix, and OSX.

  34. OSX has many free, high quality development tools by babbage · · Score: 4, Informative
    As a professional Windows developer, what sort of expense am I facing to outfit a new Mac with development tools comparable to Microsoft's Visual Studio .NET, and what sort of learning curve should I expect

    Whether or not it's comparable is debatable, but every copy of OSX includes XCode, which is a full suite of graphical and command line development tools: programs, libraries, examples, and copious documentation. And it's free.

    So there's that.

    Additionally, if you get a copy of Tiger -- which a Mac bought now should either include or be eligible for an upgrade to -- then you get Dashboard, which will let you develop small desktop applications using, as I understand it, Javascript as the development language.

    So there's also that.

    Additionally, if you get a copy of Tiger, you will get Automator, which is a kind of graphical scripting application that can do all kinds of things. From what I can tell, it is going to be great in all the ways that the appropriately-acronymed AppleScript Studio wasn't.

    So there's that, too.

    Plus, every version of OSX has supported the full range of Unix shells and scripting languages, so you can write command-line, X11, and sometimes Aqua-based graphical applications using languages such as Perl, Python, Ruby, the Bourne shell, etc.

    So to top it all off, there's that.

    And to drive the point home, you get all of this for free with every Mac. I've heard nice things about Visual Studio, and maybe there's a lot it can do that the Mac side doesn't have, but I strongly suspect that the full range of programming, scripting, and automation tools available on the Mac will run rings around it without costing you a dime more than the cost of the computer [and OS, if you're upgrading, which you won't be in this case].

  35. You're kidding, right? by JonTurner · · Score: 4, Funny

    >>XCode is far too bulky

    As compared to Visual Studio?!? Woah.

  36. After you install Xcode... by Chief+Typist · · Score: 3, Informative

    Visit these sites:

    CocoaBuilder for the Mac OS X and Cocoa developer list archives.

    CocoaDev is a Cocoa developer Wiki.

    I find that 99% of the questions I have can be answered by these two resources (especially newbie type questions -- which you're bound to have in a new development environment.)

    -ch

  37. A few points by Space+cowboy · · Score: 1
    • It's 'cron', not 'chron'
    • You oughtn't need to use a text editor when developing - the Xcode editor is very nice, and imho pretty damn sophisticated... It has code completion, syntax highlighting, click-to-go-to-definition-of-method or declaration-of-function, keyboard shortcuts for code fragment templates, etc. etc. etc. (and I mean etc. - there's a whole load of stuff in there)


    Yes, I know you said 'apart from xcode', and I agree (though in my case I'm happy about it) that knowledge of unix is beneficial - I just think your comment over-emphasises the need to know unix... it's not necessary, it just helps the advanced/intermediate programmers.

    No flames, just a difference of opinion.

    Simon
    --
    Physicists get Hadrons!
    1. Re:A few points by tuxedobob · · Score: 1

      XCode's a little over the top for PHP code. It wasn't made with that in mind. I'll agree that BBEdit is a good choice for that.

    2. Re:A few points by Anonymous Coward · · Score: 0

      It's 'cron', not 'chron'

      CROM!

  38. not quite by Anonymous Coward · · Score: 1

    If you buy a system today, you'll get Panther - and the ability to buy an inexpensive (~$10) upgrade to Tiger.

  39. Porting from Win32 to Mac OS X Doc by toph42 · · Score: 2, Informative
    Porting to Mac OS X from Windows Win32 API

    This doc is invaluable for Win32 programmers moving to Mac OS X.

  40. Don't forget GCC by not-enough-info · · Score: 2, Informative

    Mac OS X has X11 if you choose to install it with the BSD subsystem. Terminal, yep. If you want to go IDE-less you can use GCC on the command line. Fink! Download Fink Commander for hundreds of 1-click compile and install OSS. BBEdit is a nice editor.

    Personally I like XCode. I do most of my coding in it. I don't really like the SCM support, but svn on the command line works fine. C++ development is fine; you can use the Carbon API.

    For my school Java projects I work in Eclipse. Which, incidentally, works just fine also.

    --
    ---k--
    </stupid>
  41. Don't bother with cocoa, go cross-platform by a1291762 · · Score: 1

    Sure everyone else is telling you how great it is but if you're not going to do serious app development there's just no point in learning it.

    The cross platform stuff works just fine. I've written apps for my Mac using Java, Tcl, Perl and Qt. If you don't mine X11 stuff you can use just about any X toolkit (eg. Gtk). I think WxWidgets works natively on the Mac too.

    None of these is all that similar to MSVC.NET but at least they work on Windows and Unix too.

    1. Re:Don't bother with cocoa, go cross-platform by not-enough-info · · Score: 1

      WxWidgets sucks on the Mac. Sure it'll compile, but don't expect anything to work.

      --
      ---k--
      </stupid>
  42. Do what you do on Linux. by torpor · · Score: 1

    You don't have to drink the ADC cool-aid, you can just as easily drop to Terminal, set up fink or darwinports, and treat your OSX box like the fancy Unix workstation it wants to be.

    You know.. to fill in 'all those gaps' in non-existent system software.

    --
    ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
  43. Good Intro to Objective-C by EccentricAnomaly · · Score: 5, Informative

    Apple has a free mini-book that intros Objective-C and gives a good feel for its capabilities:

    ObjC.pdf

    I highly recommend it to anyone coming from a C++ or Java background who is wondering what the big deal about Cocoa is.

    And if this little PDF catches your Fancy, Aaron Hillegass has an excellant book: "Cocoa Programming for Mac OS X". Another good book is "Building Cocoa Applications" by Garfinkel and Mahoney.

    --
    There are 10 types of people in this world, those who can count in binary and those who can't.
  44. Re:Correction by Bastian · · Score: 2, Informative

    To the third point - ObjC objects aren't toll-free bridged to the Carbon libraries, they are toll-free bridged to Core Foundation, a procedural C set of libraries that is secretly most of what Cocoa is. But the end result is still that, if you need to, you can treat your Objective-C objects as C structs with no extra work.

    (Stupid me. I tend to (wrongly) think "C == Carbon" when I think about the OS X libraries.)

  45. Learn the OS first by shatfield · · Score: 2, Interesting

    I was you 2 years ago.... so listen up!

    Coming from Windows, you will immediately be immersed in a new environment that is sometimes very different from what you are used to. Coding on Windows (as I do, I'm a C# developer at my day job) is a whole lot different than coding for the Mac.

    I whole heartedly suggest that you buy a new Mac and dive right in -- but first you must learn how it works. The first thing you'll say to yourself is "everything is on the wrong side!". The icons are on the right, the window buttons on the left. If you think the differences end there, are you in for a surprise!

    So first, use the Mac, become very familiar with it, and know it. Read books, visit forums, learn how it works "underneath".

    And then start trying to find something to create.

    So here are the steps:
    1) Learn it
    2) Know it
    3) Code it

    Good luck!
    -Steven

    --
    "To make a mistake is only human; to persist in a mistake is idiotic." Cicero
  46. Top Ten Reasons to Become a Mac Programmer... by Space+Coyote · · Score: 4, Funny

    Just wrote these today, coincidentally... 10. All the blue-coloured widgets and background images are good for the soul. 9. You can keep a Terminal.app window open and pretend to be a Unix hacker. 8. Crappy enterprise data access support means no horrible database programming. 7. People will think you're some kind of artist or writer or something else less socially leper-ous than being a programmer. 6. Interface Builder's NeXTStep heritage will force you into a Model-View-Controller architecture so strongly that even design-as-you-go nitwits like me will be saved from their own poor planning. 5. No matter what you do, Wired will eventually write a feature story about you. 4. All the built-in eye candy and automatic alignment guides will make you look like you know something about UI design. 3. The development tools don't cost more than what your stupid shareware program will probably earn you. 2. The Indian programmer who stole your Windows coding job can't afford to buy a Mac. 1. Chicks dig iBooks.

    --
    ___
    Cogito cogito, ergo cogito sum.
    1. Re:Top Ten Reasons to Become a Mac Programmer... by shatfield · · Score: 1

      I laughed so hard at this I almost wet myself.

      Good job!
      -Steven

      --
      "To make a mistake is only human; to persist in a mistake is idiotic." Cicero
    2. Re:Top Ten Reasons to Become a Mac Programmer... by Anonymous Coward · · Score: 0

      Guys are not allowed to say "wet myself"!

  47. You can keep the SE by Lord+Kano · · Score: 0, Troll

    I have an old copy of Symantec C++ that I'd be willing to sell you. You can program console apps in C++ using SIOUX.

    LK

    --
    "Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
  48. Like everything else... by menace3society · · Score: 4, Informative
    Switching to Mac development is like switching to the Mac in all other respects. If you're hoping for something that looks and behaves exactly like Windows, but has all the chick appeal of a Mac, you're not going to be happy. Apple does things very differently than Microsoft, and that is true of handling files, users, system programs, and so forth, and also of application development. Conventions are different for users, and they are different for developers as well. Apple gives *very* sage advice wrt interfaces; they've been at it, and been doing it better most of the time, than anyone else in the business.

    If you want help programming, plenty of people have given links. If you want help with the interface end of things, try using some of the best Apple applications and see how things "work"--iTunes, The Omni Group, Bare Bones Software, Lemkesoft's Graphic Converter, Rancho's NetNewsWire. There are many others, but trying these on should give you a feel for what makes a great Mac App. Also, it is a commonly-perceived problem that there is no great mac Word-processing software. There are acceptable entries, including MS Office, and several others, but this is one area where OS X is gravely deficient (if you want to write the best Mac WP ever, feel free! I'd even buy a copy).

    Lots of people (i.e., Windows & Linux Fanpersons) will deride many interface trends as "fluff"; do not make this mistake. Apple is pretty careful about what stuff they include, and while there might be a few things in there for no real reason (animated screensavers as you desktop background?), most of the "fluff" has a damn good reason to be there.

  49. Xcode 2 by HitByASquirrel · · Score: 1

    This is actually a great time to discuss this with Xcode 2 on the horizon. Xcode 2 is the newest version of Apple's free IDE that comes with their developer tools and can also be downloaded from Apple Developer Connection [Free Registration Required].

    Along with GCC4.0 and new UML-graphing utilities, this next revision that'll be available on the 29th looks like it's really packing some enhacements.

    I've been using Xcode 1.5 (the current iteration) to work with Cocoa Objective-C (see above for tons of info on the language) and coming from a platform neutral C++ and PHP background have found it very intuitive, and if coded correctly Objective-C is a pleasure to use. I can say that Aaron Hillegass' book Cocoa Programming For Mac OS X is a great utility, along with CocoaDev and Cocoa Dev Central.

    Good luck!

  50. Does anyone use MetroWerks CodeWarrior Any More by mdarksbane · · Score: 1

    I know they still make a compiler/IDE for mac and windows development, and they used to be THE solution for classic mac apps.

    I know that XCode is free and quality, but from what I remember of using CodeWarrior it seemed much more advanced from an IDE standpoint. Of course, that was years ago as a novice programmer.

    Still, if you're expecting something to replace VS.NET (which is what, a $500 product) CodeWarrior is definitely comparable.

    Anyone with a little more knowledge on this want to chip in?

    1. Re:Does anyone use MetroWerks CodeWarrior Any More by Anonymous Coward · · Score: 0

      The last version of CodeWarrior for Mac OS I used was version 8, and it was still going strong.
      CodeWarrior has always had superior compile times, but they get killed when writing UIs, especially compared to InterfaceBuilder.
      If you're writing classic Mac apps, stick with CodeWarrior. Otherwise, switch to XCode.

    2. Re:Does anyone use MetroWerks CodeWarrior Any More by amacbride · · Score: 1

      Having used CW9, it's great if you're an existing CodeWarrior user (I think I started with 1.0 or 2.0), but it's starting to show its age. For a while, there was a really bad incompatibility (apparently fixed now) with Xcode (C runtime issues), and it just seems as though their support has gotten pretty minimal.

      I can understand that, given that they are focusing on the embedded market now, but it's sorta sad to see.

      If you're starting a new project, I'd definitely go with Xcode.

  51. NeXT retrospective (was Re:If you love .net) by WillAdams · · Score: 2, Interesting

    People who loved/used NeXTstep

    - John Carmack
    - Tim Berners-Lee
    - Andrew Stone

    Companies successful w/ NeXTstep (other than the afore-mentioned Omni):

    - Lighthouse Design (bought out by Sun to do Java development)
    - Stone Corp.
    - the company MCI hired to create the database which made ``Friends and Family'' work --- they liked it so much, they bought the company

    Programs w/ a heavy NeXT heritage:

    - Doom
    - WorldWideWeb.app
    - TeXshop (Alan Hoenig's book, _TeX Unbound_ is basically a paean to to glories of Display PostScript w/ TeX)
    - FreeHand (FreeHand 4 ~= Altsys Virtuoso 2 - bugs and w/o Services, DPS, &c.)
    - Softmagic's Project M (their sole competitor gave up on trying to code an equivalent in Windows and licensed their product instead)

    Oh yeah, and there's this little project called GNUstep....

    William

    --
    Sphinx of black quartz, judge my vow.
    1. Re:NeXT retrospective (was Re:If you love .net) by babbage · · Score: 1

      People who loved/used NeXTstep [...]

      Companies successful w/ NeXTstep (other than the afore-mentioned Omni): [...]

      Programs w/ a heavy NeXT heritage: [...]

      Oh yeah, and there's this little project called GNUstep....

      The operative word there being "little" :-)

      Look, I'm not trying to disparage the heritage of NeXT. I am fully aware that there was and is a small but tenacious band of prominent developers that loved it, and by proxy, all the people that love working with Cocoa today are, in effect, embracing NeXT as well.

      BUT THAT IS NOT THE POINT.

      You just rattled off a dozen or so NeXT using companies and individuals. Now, for balance, enumerate the Windows using companies and individuals.

      Shall I wait? :-)

      The fact is, no matter how talented the small band of NeXT developers were, no matter how much the toolkit helped that small band do widely popular things (like, say, invent the web and first-person shooter video games), they're still the overwhelming minority! Because of this, Apple gives away their tools, but because this doesn't apply on the Windows side, Microsoft does charge for their tools.

      Period. Fin. End of over-elaboration of simple point. This still has nothing to do with how nice the NeXT / Cocoa libraries are, and everything to do with user base size. Capice? :-)

    2. Re:NeXT retrospective (was Re:If you love .net) by WillAdams · · Score: 1

      I prefer quality over quantity --- I'm not claiming that that works in the marketplace in general, but it is one of the traditional pitches for Mac users.

      Find me a drawing program on Windows which works w/ the elegant synergy which Altsys Virtuoso enjoys on NeXTstep. FreeHand ain't it --- no Services, primitive Windows display model, awful type palette --- that's why I mostly use TeX, at least it's consistent across platforms (and the nicest implementation is TeXshop in Mac OS X).

      I look forward to, and expect to be using more NeXT-derived/inspired software in the future --- the number of programs conceived of on Windows which I use by preference is vanishingly small. Sadly, I use a Windows PC because Microsoft is the only company pushing my preferred hardware form factor (pen computers), but hopefully this will change at some point in the future as well.

      William

      --
      Sphinx of black quartz, judge my vow.
    3. Re:NeXT retrospective (was Re:If you love .net) by babbage · · Score: 1
      I prefer quality over quantity

      Super. Me too. But what does have to do with my point about why Apple gives away XCode but Microsoft has not given away Visual Studio ? Hm ?

      Look -- the superior quality of the NeXT derived toolkit has NOTHING WHATSOEVER DO TO WITH THE BUSINESS DECISION TO GIVE THEM AWAY. NOTHING.

      You have, as they say, taken the wrong end of the stick, and gone hurtling over the edge of a cliff with it :-)

      I like the NeXT stuff too, but this thread wasn't about software quality. No. It was about the business rationale for charging money for it or not charging money for it. For the most part -- that is to say, entirely -- this has NOTHING to do with which is the higher quality product, and EVERYTHING to do with analysis of the markets that the two vendors work in.

      You can repeat how nice the NeXT tools are -- again -- and I'll agree -- again -- but that still won't address the point at hand! :-)

    4. Re:NeXT retrospective (was Re:If you love .net) by WillAdams · · Score: 1

      I'm sorry, I'm new here. I didn't realise it was so important to stay on-topic even in a sub-thread w/ an altered Subject line.

      William

      --
      Sphinx of black quartz, judge my vow.
    5. Re:NeXT retrospective (was Re:If you love .net) by babbage · · Score: 1

      :-) It's not that topic drift is verboten, it's that I keep trying to point how Apples are *ahem* different from Oranges, and you keep pointing out how tasty Apples are. Which is true and a point worth making in some situations, but in this case it doesn't really seem to further the conversation, you see? Hence my exasperation :-)

  52. For small stuff... by lux55 · · Score: 1

    Dashboard will be pretty spiffy.

  53. Re: Obj-C learning curve by YOU+LIKEWISE+FAIL+IT · · Score: 4, Funny
    [object methodcall:parameter] isn't that much harder than object.methodcall(parameter)

    Further, if memory serves, it's actually syntactic sugar for objc_msgSend( object, "methodcall:", parameter );

    Of course, if you actually use it that way outside the debugger, I hear Steve Jobs personally flies to your house and takes your Mac away from you.

    YLFI
    --
    One god, one market, one truth, one consumer.
  54. Qt by Brandybuck · · Score: 2, Interesting

    Since there's a free native Qt for Mac, you should consider that as one of your options. A lot of Mac purists will discredit this option out of hand, simply because it's not a Mac-first framework. Don't listen to them, and make up your own mind. One of the chief objections is that it doesn't force you into Apple's interface guidelines. But at the same time, there's nothing stopping you from voluntarily following them, so I don't consider this a valid objection.

    If you're writing a bunch of small custom apps, and they don't need to be proprietary closed source, then Qt is free. Otherwise you do have to pay (gasp) for Qt. It's hard to tell from your description what you need, but I'm guessing you can get away with the free GPL version.

    I haven't played with the Apple frameworks, but compared to Microsoft's that you're used to, Qt will be a breath of fresh air!

    --
    Don't blame me, I didn't vote for either of them!
  55. Re:As an Xcode programmer... by guet · · Score: 1

    An IDE should not be designed with 'casual users' in mind; it's a very different beast from iPhoto. I wouldn't make excuses for the lack of thought which went into xCode project preferences. They are a crude and confused interface to the command line switches. Preferences are stored in two places at once :

    Build Styles
    Target Info

    and it's not clear which to choose when editing a particular preference (until you know the program), unlike most other IDEs which just use targets. Choosing a different build style will require a 'clean target' to actually recompile the sources with the correct options, and this makes the distinction entirely pointless.

    I use xCode every day, and there are times when I curse the poor interface. The plethora of menus is most unmac-like as well, all those options need to be organised in sub-menus, or placed in a cleaned up preferences dialog and project prefs/info. There are 14 main menus and 29 submenus hanging off them. The contextual menu for individual items in the Groups and Files list is a hodge-podge of different commands, many of which have nothing to do with the file being clicked on (General Preferences??!?)

    Simple things like choosing to edit in an external editor is under 'File Types' in the prefs (took me a little while to find this), and if you choose to use an external editor you have to use 'Open As' in a contextual menu when you want to open in the xCode editor to set breakpoints. (Perhaps I've missed an option here).

    The program seems to be me like it does an inadequate job of hiding its inheritance from PB and use of command line tools. Contrary to your assertion, important options are hidden/in two places at once and obscure options are left easily visible. It's also not particularly stable. However it's free and they are improving it and listening to feedback.

  56. Parent is Troll? by theolein · · Score: 1

    WHICH GODDAMN GUI CODER IS GOING TO CODE IN FUCKING BBEDIT????? I have quickly skimmed through a number of replies here, and it seems that platform zealotry is once again out in force, with anyone mentioning Xcode being modded to +5 immediately and the same happening to anyone mentioning VS.Net. But the kicker is, and I think this is especially true in the parent's case, is that a fucking web application is not the same as GUI application.

    The reason I think the parent is a web coder is because he mentions TexTEdit and BBedit for coding. WHICH GODDAMN GUI CODER IS GOING TO CODE IN FUCKING BBEDIT?????

    Comparing a php app written in BBedit and an asp+ app written in VS.Net is less than fair and pure trollbait, since I cam write a php app in notepad on Windows as well, but I would need to be seriously dumb to do that wouldn't I?

    1. Re:Parent is Troll? by amichalo · · Score: 2, Interesting

      The reason I think the parent is a web coder is because he mentions TexTEdit and BBedit for coding.

      Wow, you're a real detective!

      [from the parent "troll" I authored] I develop .NET web apps at work on XP but have a Mac at home. [/]

      Comparing a php app written in BBedit and an asp+ app written in VS.Net is less than fair and pure trollbait, since I cam write a php app in notepad on Windows as well, but I would need to be seriously dumb to do that wouldn't I?

      This comment is completely inaccurate. First of all, to write ASP or ASPX pages, one does not need VS.net, all they need is a text editor (one could even use "copy con foo.asp" from the command line if they wish!) The same holds for php, HTML, css, perl, etc on all platforms, Mac or Windows.

      What using an editor like BBEdit gets you is a customized environment to provide contextual command support for the language of choice (php, asp, perl, coldfusion, etc). What Integrated Development Environments (IDEs) like VS.net and XCode get you (besides a compiler) is the ability to harness the power of object oriented coding right in the editor so you get the power of an editor + compiler + object access right in the code.

      BTW, your Caps Lock key is sticking.

      --
      I only came here to do two things; kick some ass, and drink some beer...looks like we're almost out of beer.
    2. Re:Parent is Troll? by cosmo7 · · Score: 2, Funny

      Comparing a php app written in BBedit and an asp+ app written in VS.Net is less than fair and pure trollbait, since I cam write a php app in notepad on Windows as well, but I would need to be seriously dumb to do that wouldn't I?

      Yeah, as dumb as <SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPA N><SPAN></SPAN><SPAN></SPAN><DIV> </DIV><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN>

    3. Re:Parent is Troll? by Kabal` · · Score: 1

      Haha, LOL!

      I got a good laugh out of this but I don't know how many others would get it :)

  57. A few other methods by john.mull · · Score: 1

    I've used Runtime Revolutions' DreamCard for the PC and it's Mac OS X version seems just as competent. It's a holdover from the HyperCard days apparently, but the IDE is OK. The scripting language seems Basic like but the syntax can be a little odd. Might be worth looking at though.

    If Basic is not to much the turn off, then perhaps RealBasic might be worth a look. The IDE and language remind me of a combination of the VS6 and PowerBasic products combined for OS X.

    Again, most /.'ers will probably sneer at these tools since they aren't C and possibly aren't enterprise level solutions. But for a quick tactical level program, they might make for a good solution.

    Probably worth less then $0.02, but I thought I'd add some RAD into the conversation.

    --
    Isaiah 43:19 (NCV)
    Look at the new thing I am going to do. It is already happening. Don't you see it?
    1. Re:A few other methods by Anonymous Coward · · Score: 0

      Cocoa is RAD man. In my experience, writing cocoa apps is *way* faster than writing real basic apps.

  58. An alternative C, C++, and Obj-C environment by Anonymous Coward · · Score: 0

    An alternative C, C++, and Obj-C environment (IDE) hosted on Mac OS X for development of C, C++, and Objective-C applications for Mac OS X as well as Mac OS 9 (a.k.a. Classic) platforms:

    http://www.metrowerks.com/MW/Develop/Desktop/Macin tosh/Default.htm

    It's $499.00 in Metrowerks' online shop.

    1. Re:An alternative C, C++, and Obj-C environment by Anonymous Coward · · Score: 0

      There's academic pricing available, too for the above mentioned CodeWarrior Development Studio, at $119.00

  59. ABaumann, I commend you! by danaris · · Score: 1

    Someone actually changes their mind on Slashdot, in response to logical arguments and facts? That's gotta be a first!

    Someone tell Taco to get out the record books!

    Dan Aris

    --
    Fun. Free. Online. RPG. BattleMaster.
  60. relative age (was Re:If you love .net) by WillAdams · · Score: 1

    ``babbage'' had said:
    >On OSX, the platform -- not counting the Unix foundation -- is young

    How can this be the case if it was possible for Andrew Stone of Stone Design to ``port'' Create.app from NeXTstep to Mac OS X merely by recompiling in Mac OS X?

    Or are you saying that everything which Create.app makes use of was available for Unix starting back in 1989 and is a part of the ``Unix foundation''?

    NeXTstep was _a_ Unix, but it included a lot of stuff which is only now becoming available for other systems, and Mac OS X has a much more mature implementation of these things (Cocoa, nee Rhapsody, nee Yellow Box, nee OPENSTEP) than anything else, an implementation which goes back to 1989 or so (if I were home I'd check the copyright date on Create.app on my NeXT Cube).

    William

    --
    Sphinx of black quartz, judge my vow.
    1. Re:relative age (was Re:If you love .net) by babbage · · Score: 1

      Please read the rest of the thread before splitting hairs here.

      YES, by saying "not counting the Unix foundation", I am trying to explicitly make an exception for the older NeXT foundations of OSX.

      I'm fully aware of how old the NeXT kit is. But the point is that, aside from a very small pool of developers like Stone Design and Omnigroup, nearly no one used the (admittedly very nice) toolkit that you're talking about. Certainly compared to the userbase of the DOS / Windows kit, it had to be at least a couple of orders of magnitude smaller.

      All of this is nice but I really don't see how it sheds any light on the original question of why Apple gives away their tools and Microsoft doesn't (or didn't, considering that apparently a light version of VS is available for free now). I don't see how the age or quality of the NeXT foundation has anything to do with that question. Do you?

    2. Re:relative age (was Re:If you love .net) by WillAdams · · Score: 2, Insightful

      Cocoa, nee Rhapsody, nee Yellow Box, nee OPENSTEP is _not_ part of the ``Unix foundation'' of Mac OS X --- one can see what OS X's Unix has matured to in Darwin, and Cocoa ain't there (which brings up an interesting question of how nice an environment would Darwin and GNUstep be).

      NeXT used to charge a _lot_ more for their Dev tools for a while (they started out as free, then were an optional install, then were ~$4,995 and now are free again). The price change tracks pretty closely whether or no the company expects to make money on hardware --- since it's not feasible for Microsoft to bundle Visual Studio w/ an IntelliExplorer mouse and expect it to be used, they don't.

      William

      --
      Sphinx of black quartz, judge my vow.
  61. There's more than XCode by Anonymous Coward · · Score: 1, Interesting

    Just my $.02:
    - While XCode is free, even for miniature projects it can be dead slow. Commercial alternatives like Codewarrior offer better C++ standards compliance and compile speed but thanks to Apples "We integrate documentation access hardwired into XCode and don't open it up" have a - erm - productivity gap when you need to read up documentation, which you will - as a newbie - probably do a lot.

    - For the "Do your Mac stuff in Cocoa" recommendation:
    be aware it is not a good idea to mix C++ and Objective-C exceptions, and spend extra time at the beginning to understand the memory management (wrt function name semantics) concept.

    - I tend to disagree Cocoa documentation is superior. If you do standard stuff, you get a lot for free and it seems easy. OTOH, sone not so standard things can get rather nasty and extremly underdocumented.
    Carbon had a lot of extremly good documentation that is not available any more, so if you start now and without that background it is rather hard to get into old and "legacy" based APIs.. If you dig into Carbon, there are often useful additional comments not in the official docs but the header files.

    - Some folks recommended mono for CLI applications. Last time I checked debugging is not extremely advanced, and the compiler error messages are pretty useless. Far better in error diagnosis are provided with the MS sscli compiliers, while the sscli CLI implementation has extremely poor performance compared to mono. Mix and match, the CLIs are pretty compatible... And of course, as with most MS technologies, not every syntactic sugar documented on MSDN ist also in the C# standard and implemented in sscli or mono.

    - For an editor besides XCode, try BBEdit from ..

    1. Re:There's more than XCode by Anonymous Coward · · Score: 0
      A big nit: Codewarrior isn't more C++ standards compliant than gcc. Quite the contrary, it's far more liberal than gcc and allows a lot of things that make C++ language lawyers cringe. Agreed that many developers pull their hair out when moving C++ code from CW to Xcode for that reason, but it's not a question of CW's superior compliance...

      Also, how is posting documentation on the Web 'hardwired into Xcode?' All the doc is online at

      http://developer.apple.com/referencelibrary/

      In fact, I've been told that the version online is more up-to-date than what's on the disk with Xcode.
    2. Re:There's more than XCode by Anonymous Coward · · Score: 0

      Agreed that many developers pull their hair out when moving C++ code from CW to Xcode for that reason, but it's not a question of CW's superior compliance...

      Do you have any evidence or samples?

      I do not belive e.g. that the intention of namespaces was the implementation XCode / gcc standard library gives for C libraries. #include in XCode 1.5 does not put the C standard library symbols exclusively into namespace std:: and also gets messy during link time. Bad for standards compliant code where additional versions of e.g. strcpy or printf exist.
      Sometimes the system library ports to Frameworks are not done perfectly - e.g. libCURL, where the framework header files include in the wrong semantic for a system include (" vs. <), also there the CW handling is IMO more standards compliant.
      There are more things like this, which I consider productivity killers attributable to XCode.
      I am also not impressed of the handling of e.g. {option}{space} in an source file. They occur not too seldom when typing | ({option}-7 on foreign keyboard layouts) and then {space}. {option} released to late, bang... XCodes gcc result parser gives an vague description there is some illegal character somewhere around a specific line (of course, line numbers are not adjusted when errors earlier in the source are fixed) and now search and destroy an specific space character. CW allows directly to select it.
      Also, how is posting documentation on the Web 'hardwired into Xcode?'

      Do you happen do understand the productivity impact of selecting a PART of an word of an unknown API and pressing a special keystroke compared to going to a website, copy-pasting the API name (you have to know completely, Google search on ADC in contrary to Searchkit search in XCode does not allow partial expressions) and get a fast browseable list of all relevant results? I need to do it a lot. Developing Plug-Ins for publishing programs doesn't give you too much choice of compilers. While the HTML in /Developer/Documentation is available, the interesting part - search indices are proprietary and not 3rd party accessible.

      In fact, I've been told that the version online is more up-to-date than what's on the disk with Xcode.

      It is. Have you used it?

  62. java OS X devel by Anonymous Coward · · Score: 0

    For Java in an enterprise setting you have:

    - eclipse - very good IDE
    - oracle 9i database on OS X
    - JBoss j2EE App Server ('Like' MSFT Transaction Server)
    - Ant - build utility

    Java Server Pages work but I don't know of a good screen builder.

    Java code developed using the above is portable across MSFT and Unixes.

  63. Re:As an Xcode programmer... by jbolden · · Score: 1

    Those are good points regarding Build Styles and Target Info.
    I stand corrected.

  64. $1295 by YouHaveSnail · · Score: 3, Informative

    As so many others have pointed out, Xcode won't cost you a cent beyond whatever you decide to spend on a Mac (which could be anywhere from $500 to $3000, depending on you). And there are lots of free resources for learning about Mac programming, and lots of books.

    If you want to get a taste of the cutting edge of Mac development, however, go to developer.apple.com and buy yourself a ticket to Apple's Worldwide Developer Conference, a.k.a. WWDC. Depending on where you live, you may also need a plane ticket and a plane ticket and a hotel room or a pal in San Francisco that you can crash with. Anyway, at WWDC you'll meet a few thousand Mac developers and attend sessions given mostly by Apple engineers on .

    Attending WWDC is definitely not something you _need_ to do, particularly if you're just starting out. But it's a lot of fun, and you might just see stuff there that will make you decide to sell your PC.

    If you decide to do it, do it soon. You can get a WWDC ticket now for $1295, but prices go up to $1595 on April 22.

  65. Re: Obj-C learning curve by 1010011010 · · Score: 1


    Actually, that's an optimization strategy in Objective-C programs. If you're sending a message many times in a tight loop, obtain a pointer to the C function and call it directly. That cuts out the (small but non-zero) overhead of the Objective-C runtime message dispatching.

    --
    Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
  66. My experiences moving from win32 to cocoa. by l4m3z0r · · Score: 3, Interesting
    During my senior year of college I decided I wanted exposure to OSX development so I got myself a mac, installed the dev tools and went to town with the same assignments I had for my MFC/C++ programming class. Turns out what took me a semester to do in MFC/C++ took about 3 weeks using Cocoa/Objective-C. I then decided to port a semester long project from win32 MFC/C++ code from visual studio to OSX and hell that took about 2 weeks. Apple has what they like to call Objective-C++(which allows you to mix, objective-c, pure c, and c++ code in the same project) and I just plopped about 85% of my code into the project and bam it worked WITHOUT EDITING, it took me roughly two weeks to build it a new interface and link up all the actions properly.

    All I have to say is that Apple documentation is very bad and mostly unhelpful. Learning Cocoa/Objective-C from oreilly is near useless. In fact I did 2 examples from it following its directions and havent used it since. Learning Objective-c and Cocoa to the point where an advanced reference is what you need is borderline trivial. I suggest not bothering with introductory texts and simply grab some examples work through them, muck around with adding a few controls to them and you will be all set.

    Really, if you know C you will have no problem moving to Objective-C, and Cocoa is in my opinion very very intuitive making MFC look like a bastard child.

    1. Re:My experiences moving from win32 to cocoa. by Arthur_5150 · · Score: 1

      >Really, if you know C you will have no problem >moving to Objective-C, and Cocoa is in my opinion Mine too. Yes, Yes, Yes and Yes.

  67. Visual Studio .net is horrible! by Junks+Jerzey · · Score: 1

    I use it daily and have for years. Honestly, this is one of those cases where a new version (VS .net) offers little over old versions (VS 6), but has gotten unstable and twice as slow in the process. VS 6 was kinda clunky, but it got the job done without any serious drawbacks. VS .net, though...I've switched to using external tools as much as possible.

  68. Re: Obj-C learning curve by Anonymous Coward · · Score: 1, Informative

    No, that's not an optimization strategy.

    The function objc_msgSend(object, messageSelector) implements Objective-C's dynamic (runtime) binding. It looks up the method (a plain C function) that object associates with messageSelector, and then calls that method.

    An objective-C message expression is nothing more than syntactic sugar for calling that function, so calling the function isn't any kind of an optimization.

    However, if you're going to be sending the same message to the same object over and over again in a tight loop, and that loop is proving to be a bottleneck, you can get a pointer to the appropriate function outside the loop, eg

    IMP functionPointer = [object methodForSelector: messageSelector];

    and then call the function (through the pointer) inside the body of the loop, completely bypassing the overhead of Objective-C's dynamic binding.

    (I mention loops because that's the only scenario in which I've ever needed to bother with this technique, and even then, it's rarely been an issue. But the API is available to use anywhere you want in your code.)

    That's the optimization you had in mind.

    PS: I know you know. But others might not.

  69. Re: Obj-C learning curve by 1010011010 · · Score: 0, Redundant

    No, that's not an optimization strategy.

    The function objc_msgSend(object, messageSelector) implements Objective-C's dynamic (runtime) binding. It looks up the method (a plain C function) that object associates with messageSelector, and then calls that method.

    An objective-C message expression is nothing more than syntactic sugar for calling that function, so calling the function isn't any kind of an optimization.

    However, if you're going to be sending the same message to the same object over and over again in a tight loop, and that loop is proving to be a bottleneck, you can get a pointer to the appropriate function outside the loop, eg

    IMP functionPointer = [object methodForSelector: messageSelector];

    and then call the function (through the pointer) inside the body of the loop, completely bypassing the overhead of Objective-C's dynamic binding.


    (I mention loops because that's the only scenario in which I've ever needed to bother with this technique, and even then, it's rarely been an issue. But the API is available to use anywhere you want in your code.)

    That's the optimization you had in mind.

    PS: I know you know. But others might not.


    Thanks. :) That is what I had in mind. That's what I get for posting between meetings at work. :)
    --
    Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
  70. *Modern* Mac development? by ArmpitMan · · Score: 1
    Five words:
    Cocoa Bindings and Core Data.

    Objective-C is nice. XCode and Interface Builder are nice. But this stuff quite literally does for desktop apps what Ruby on Rails does for web apps.

    1. Re:*Modern* Mac development? by Anonymous Coward · · Score: 0

      So... Cocoa Bindings are Apple's version of Java Beans in Objective C?

    2. Re:*Modern* Mac development? by ArmpitMan · · Score: 3, Interesting
      I don't know much about Java Beans, but the documentation that Sun is giving me about them doesn't give me much reason to connect the two. In fact, it sort of looks like Java Beans are Sun's version of NeXT's Interface Builder. Which is, as I said, nice.

      You know Model-View-Controller? Interface Builder is a tool to build the view, and tie it to the classes of your application. Before Cocoa Bindings and Core Data, you would create a custom controller class or two, and connect them up. This button fires this action, which calls this method of MyAppController. MyAppController updates the model, then does some updates to the view. Grueling, thankless glue code.

      Cocoa Bindings are a set of generic controllers, coupled with some tools in the IDE, that let you bind the view to the model in various complex ways while writing no boilerplate glue code. Say you have an array of objects in your data model. Cocoa Bindings lets you use an NSArrayController and a couple of straightforward bindings to say, "Fill this combobox with the 'name' field of each object in this array, and when a selection is made, populate these other fields with their other properties."

      Core Data, though you didn't ask, is a set of generic tools that take care of the model, and gives you things like data persistence, undo, etc. for free. With Core Data and Cocoa Bindings together, you can go so far as to build UI scaffolding -- you literally drag one of the entities from your data model into a blank window in interface builder, and it builds a prototype interface for you. Not one you'd want to actually use, of course, but it gets you going and makes for a nice demo (see: Ruby on Rails hoopla).

      As you might imagine, these tools take care of a lot of the grunt work of building graphical applications.

  71. Here's my offering... by GrahamCox · · Score: 3, Informative

    OK, I'm late to this thread, and no doubt you have a clear picture already. But I'm a long-standing Mac developer steeped in C++ who also recently bit the bullet and changed the way I program on the Mac (from Carbon/C++ to Cocoa/Objective-C). OK you may say, but that's not as big a leap as Windows to Mac... well, I think it is. There are very few overlapping APIs, unless you want to use Carbon within Cocoa, which so far I have found very little need for except a bit of bridging to QuickTime.

    So: 1. XCode comes with the OS. It comprehensive, it's good. I'm still learning it, but the basics are easy to grasp and you can fill in the finer detail as you go along.
    2. Objective-C is a VERY SMALL addition to C. You can learn it in half an hour especially if you know C++. The syntax might look odd at first glance but it works, it's consistent, and it's only syntax!

    3. The framework (Cocoa) is huge, and takes longer to learn. However, again you can get going very quickly because XCode will build a fully functioning app for you with no coding at all, then you can use that as a base on which to experiment. Personally I'd suggest you do spend a bit of time experimenting without trying to build a huge new app first go, because there are different ways of doing things, some not as good as others. But gradually the picture becomes clear.

    4. Get a book. I recommend Aaron Hillegass's tome - well written, easy to understand, the examples work, and it touches on a lot of useful areas of the framework though in some cases could do with a bit more depth. The O'Reilly book is not as good in my opinion, I found it only started to make good sense after I'd read Hillegass and actually tried out some coding.

    5. Be prepared to be amazed at what Cocoa can do and how it works. After years of C++ grinding, Cocoa is a breath of fresh air to me. Objective C is so much to the point, but avoids all that syntactical cruft that C++ has. It makes me realise that half the code I've ever written was there just to keep the language happy, rather than contributing to my actual productivity. Objective C's method lookup is incredibly flexible and makes things possible that you wouldn't even think of in C++. In that respect a C++ background can be a liability - many things turn out to be much simpler to do te Objective-C way than what you might think of at first. For me this was one of the steepest aspects to the learning curve, but also one of the biggest revelations. For example, look at how Undo is handled - it's gobsmackingly easy. After a while you'll start to wonder why other platforms don't have anything like this. Cocoa is what Java could and should have been.

    6. Enjoy yourself - it's fun to program in Cocoa. Once you get on top of it you may find, as I have, that your programming ambition suddenly increases enormously. With Cocoa I feel I COULD write a Photoshop killer, if I wanted to....

    1. Re:Here's my offering... by maxjenius22 · · Score: 1

      Man the learning curve with xcode isn't objective-c. It's learning how to manage the 400 independent windows it keeps open. Everytime I click on a file, it opens up some new window somewhere.

    2. Re:Here's my offering... by GrahamCox · · Score: 1

      Try clicking the little "editor" button in the toolbar, which then opens up a separate pane in the main project window and keeps everything together. Select a file on the left, its contents appear in the editor on the right. You can work in one window all the time, which is how I use it. The opening of separate windows can be handy if you want to look at several parts of your code at once, but I rarely need to use it that way. The only separate windows it otherwise opens are the runtime log and, if you're using it, the debugger.

    3. Re:Here's my offering... by maxjenius22 · · Score: 1

      Wow. Thanks!

  72. Apple's Little Objective C XCode Tutorial by Anonymous Coward · · Score: 0

    After you've installed XCode, go to

    Developer/Documentation/Cocoa/Conceptual/ObjCTut or ial/objctutorial.pdf

    It is short and sweet - really well done and helpful.

  73. I apologise by theolein · · Score: 1

    I went seriously overboard in that post of mine, and I apologise. I totally misread your post and assumed you were trolling. My mistake.

    Now, on to the (real) comparison. While, obviously, for web apps, and I mean large scale web apps, VS.Net is much better than XCode, I think it would not really be fair to compare the two for that purpose. If someone were writing largescale web apps on the Mac, i.e. enterprise stuff, they would almost certainly be doing it in Java, and for that they would most probably be using some of the Java app server tools and large Java IDE's. If they were constrained to Apple's products, they would be using WebObjects, which, while it isn't free and is in fact quite expensive, does compare more or less with asp+ in VS.Net.

    However, for common GUI code, XCode does compare quite well, especially with IB and Cocoa bindings, and above all, it is free and comes with every Mac, as you know.

    Again, sorry about the flaming. If I could delete my post further up, I would.

  74. Re: Obj-C learning curve by Sam+Ritchie · · Score: 1

    I've read (though I can't personally confirm) that the objective-c message dispatching caches the function address after the first lookup anyway, so the optimisation won't end up saving you as many cycles as you'd expect.

    --
    This sig is false.
  75. Cocoa Bindings by jdhouse4 · · Score: 1

    Everyone here has really done a very good job of talking about the pluses of Obj-C, Obj-C++, XCode, and so on. But nobody has yet (sorry if I missed someone on this) talked about the ease of use of Interface Builder, the GUI builder that comes along side XCode. And even more interesting for an application developer would be Cocoa Bindings.

    For Application development, Cocoa bindings allows you to implement the model-view-controller paradigm without writing much, in some cases any, controller code because Apple has already done it. Check out Delicious Monster's app Delicious Library that was written largley (maybe totally, as I've also heard) using Cocoa Bindings.

    Cocoa Bindings will be found in Interface Builder under the Bindings tab on the Inspector window. When you fire up a Cocoa app in XCode, you will have a NIB (NeXT Interface Builder) file, or two. Selecting and opening those files will take you where you need to go.

    In Interface Builder 2.5, which is freely included in Tiger, they have enhanced Cocoa Bindings since bindings were introduced in Oct. 2003. And, if you don't like accessing bindings in the UI app Interface Builder, you can always code it in directly through the use of key-value-coding and key-value-observing.

    If you're writing an app, one of the things that Cocoa Bindings does is get you head out of the code and into the Interface. I have found that, in making the interface first, I actually don't need some of the routines I thought I would need. Better yet, by not having to write and debug allot of controller code, my dev cycle time is allot shorter than it otherwise would be.

    I don't program in Windows. But my Windows friends tell me that there is nothing like Cocoa Bindings on the Windows side. I think you'll like what you see.

    Good luck! I think you'll have as much fun as I've had.

    --
    Let us go to the stars, dream new dreams, and renew the embers of hope that have long since grown cold.