The same question, over and over...

Discussion in 'Buying Tips and Advice' started by irrªtiºnal, Dec 25, 2005.

  1. irrªtiºnal macrumors member


    Dec 15, 2005
    ok ppl: once again, this is how it goes...

    i;m not a Mac user (forgive me,) i have never been a Mac user :)p) but despite all these, i fundamentally agree in that Macs have a special power and beauty in all dimensions... i am a real hard-core programmer. since i did programming on PC, it;s undertandable that at the end i indeed evolved into a Win32 API core programmer and all that, fluently managing other APIs, languages (C, C++, Java) and platforms (JSDK, .NET, MFC) for the Windows platforms...

    but i just felt depressed of how much crap Windows REALLY is, despite giving me the experience and knowledge i just presumptiously announced.

    so i simply said it was time for that sleek MacOS X thingy. at first it really was a frivolous toyish desire to have a chic computer for my most mundane activities, such as being here, concurrently thinking that i could pretty well continue PCing for my living... but it really occurred to me that if i am really such a great software developer (still unknown and in the making, but i am such) making an impact in a relatively better read, better educated, well breaded and wined, cirlce of users that would only use sleek software, would only signify a greater success than trying to make my presence in the PC-ware user market.

    so far, so good... when i decided i would make the best of a dual system of 2 64bit dual-core processor @1.25GHz per processor w/1MB L2 cache; expansibility up to 16GB of PC2-4200 RAM; and so on... i got the news that this apple thingy was going Intel and then i simply came to a shock!!! :eek:

    OK! wait a second... i just come from fighting with Intel over their Integrated Performance Primitives to circumvent the enormous waste of resources this Windows **** incurs in, and now i will have to "develop" software for a TOTALLY UNKOWN hardware architecture, based solely and generically on my programmer;s instict, for an OS that will start developing like Windows? :confused:

    first of all: obviously, any software that i natively compile under the PowerPC won;t run natively on Intel; and if i well understand, the Rosetta "emulator" or something alike will be there to work as a Virtual Machine, sort of... great... now should i expect Java-like desktop performance?

    secondly: who will design software for MacOs? cuz now it seems as if all those ZDNET and CNET porno-wares sites will be offering their latest shareware bundled with e-bay toolbars...

    please, please, please... need some illustrious Mac guru to provide with some direction for my thoughts

    and ohh, yeah... i guess i qualify for a newbee...
  2. Blue Velvet Moderator emeritus

    Jul 4, 2004
    Welcome to MR and Merry Xmas.

    Perhaps your question is better addressed in this forum. ;)
  3. iMeowbot macrumors G3


    Aug 30, 2003
    You aren't limited to writing PowerPC native software. If you sign up for ADC (it's free for the most popular tools), you can get the latest version of Xcode that will let you build fat binaries that are native on both PowerPC and Intel (basically, the compiler runs twice, once for each architecture, if you choose to do this). They've put complete documentation out there, and you can build Intel binaries on PowerPC hardware if you like.

    The only part you can't do without an Intel Mac on hand is test those binaries, but depending on your circumstances that might still work out okay.

    If you want to see what kinds of software (commercial, shareware and freeware) are available for Macs now, try MacUpdate and VersionTracker. There is also an Apple site that covers mainly commercial software and hardware.

    Sorry, you'll have to settle for me :p
  4. displaced macrumors 65816


    Jun 23, 2003
    Gravesend, United Kingdom

    It's only really developers of already established, and complex applications who will need to work at the PPC to x86 transition. Since you're starting afresh, you'll have no worries at all. Building an app for an Intel-based Mac is identical to building one for PPC Macs. As has already been said, the Xcode compiler (well, it's actually good ol' GNU-GCC) just builds a fat binary which contains executable code for both processors, and will be compatible with all Macs.

    I develop professionally for Windows systems -- both against the raw Win32 API in both VB6 and a little C++, and in the .NET managed frameworks which are gradually replacing the Win32 API.

    When I was learning .NET, it struck me that, when viewed from a distance, it borrows quite a few concepts from the 'primary' Mac OS X API (named 'Cocoa'). They're both entirely object-oriented, so if you're already used to programming in an OO style, you should find it easy enough to browse around the Cocoa libraries and see how stuff fits together. OS X and Apple's Xcode development environment support virtually every popular (and even some unpopular!) languages. There's absolutely nothing stopping you writing full Cocoa-based applications in Java, C++ or even Python. A single application can be made up of components written in any supported language. Most Cocoa apps seem to be written in a variant of C called 'Objective-C'. This was based upon a language (I believe originally developed by IBM) called Smalltalk. Essentially, it's just plain C with a handful of syntactical additions to make it object-oriented. Arguably, it's much neater than C++, which also had the goal of creating an OO-capable flavour of C. If you know any C++, you should be able to pick up Obj-C without any problem (although you'll probably have a few habits to unlearn!).

    Take a look around Apple's developer docs on their website, and do some Googling. You might find it useful to read a little about OS X's history and the origins of much of its technologies. For example, 'Cocoa' itself (and quite a fair chunk of OS X) dates back to an OS developed in the 80's called NEXTSTEP. It was revolutionary at the time, and I'd argue the fact Microsoft are today taking quite a similar route with the .NET Framework suggests that it's every bit as powerful today as it was back then.

    Bit of stupid trivia: Tim Berners-Lee, the inventor of the World Wide Web, developed the first web server and web browser on a NEXTSTEP machine, in Objective-C :)

    You can sign up for free at Apple's site to download the Xcode development suite. In addition, every copy of Mac OS X ships with the full Xcode on the install disks as an optional component.
  5. savar macrumors 68000


    Jun 6, 2003
    District of Columbia
  6. ortuno2k macrumors 6502a

    Nov 4, 2005
    Hollywood, FL
    Hence my comment :D
  7. Veritas&Equitas macrumors 68000


    Oct 31, 2005
    Twin Cities, MN
    Programmers/Developers: "Can't live with"
  8. California macrumors 68040


    Aug 21, 2004
    The only thing I didn't like is the dated perception that Appleites are elitist.

    I'm anything but. I only like, no love Apple because it works. And works well. And doesn't have viruses. And has good customer service. And looks good. I owned one powerbook for SEVEN years that I used every day until the ram chip failed (kingston, who volunteered to replace it, but then couldn't find the ram in stock anymore). It NEVER broke down in all that time. It still runs today, eleven years later. Apple is good design and good design is good value. No snobbishness here.

    Good luck making us better programs. Remember how Alfred Hitchcock looked at things - he designed his films for the smartest audiences and let the dumber ones catch as catch can. That's Apple (and hopefully that's Mactel).
  9. irrªtiºnal thread starter macrumors member


    Dec 15, 2005
    it makes me feel more comfortable now that at least it comes from the mouth a Mac guru... :) no, seriously, i think this is a very special time for making such a "transition", right when Apple is making another one of their (ever popular, i;ve realized) critical transitions... somethings will be good and others will be bad, i;m just trying to prepare knowing what will be which... (?)

    hi there, then! thanks for the welcoming to all of you and for the advising... so the issue is that i got issues with .NET, not with the seemingly archaic Win32 API. i just love pointers, i like spaghetti code, i like ultra-direct management of memory and as you could imagine, i like my apps to run fast. (that doesn;t mean i don;t like OO or well documented, modular, generic, programming design, though...)

    this is how the whole issue begins: i want to start desktop development... i already have some ideas of what i want to program (and have to keep them somewhat secret... :D) but doing from scratch in Windows (Win32 or MFC) is just... well, you know, not worth the fight -- if you have a platform + library like .NET...

    now, the issue: desktop graphics in Windows begins -- for all practical purposes -- with the infamous GDI (Graphics Device Interface.) when i moved from Java2D to Windows for imaging applications, i was marvelled to see bitmaps loaded and rendered "SO FAST" (i used to say that). that;s how i became addicted to Win32. but .NET does not have this raw version of GDI, instead it uses the OO bundle, GDI+ and integrates it with the platform. needless to say, once compiled to MSIL, GDI+ plainly SUCKS... i;ve found ways to go around this by "interoperating" accross "managed code" to "unmanaged code", (those names are just hell-funny,) but it just adds to the intricacies of the program...

    when it came to my mind that i was just falling short of trying to do videogaming -- and i hereby state: I AM NOT/WILL NOT BE/HAVE NOT BEEN/ DOING VIDEOGAMING -- for my graphics programming, and that i required somekind of direct hardware access/integration that i could invoke... i started thinking about the Intel chips... OO Graphics APIs great but they tend to be are S-L-O-W. in Windows, i wouldn;t use anything that is anymore slower that a BitBlt transfer to render a bitmap.

    i will do Objective-C, that;s for sure! i have already started loitering at Indigo and Chapters (in Canada) lurking at computer books in the Mac section :p...

    i have certainly done A LOT more research than any normal computer user would do for making the Mac transition, i;ve been surfing Mac all this time!!! AppleInsider, MacRumors, Macworld, Apple Developer Documentation, Bare Feats, MacInTouch, etc... i guess i am becoming an ethereal Mac user!

    don;t get me wrong, i was a Java baby-boomer, a OO programmer from stock, i learn programming in Java and C# first, the real programming... only then i really dared and took seriously these C++ and Assembler thingies for x86 (it took me 3 years to really achive C++ proficiency,) to realize that they;re still the only alternative for top performance.

    i have really though that maybe i should give it a try first buying a Mac-mini, or an iMac... (but i don;t really dispose of too much money, and $600 "just to try" is kind of crazy)
  10. irrªtiºnal thread starter macrumors member


    Dec 15, 2005
    no sorry, your comments are much appreciated

    one question, that i think didn;t make it through is: what will happen with software lazily developed only for the Intel Macs, say coming as a direct translation from a Windows program? we have no Attesor "emulator" from Intel to PPC
  11. irrªtiºnal thread starter macrumors member


    Dec 15, 2005
    mhhh... i;m thinking twice... maybe i should make one!
  12. Les Kern macrumors 68040

    Les Kern

    Apr 26, 2002
    Forgive me if I missed answers to these questions:
    What kind of Software do you develop?
    Why, knowing Win API core, do you want to move to Mac coding? In other words, is this a possible Professional move to developing on the platform, and AWAY from providing titles on Win?

    XCode, as mentioned, will provide what you need for a Mac-only environment in SPADES. And with your experience it should be a breeze to learn.
    There are Mac versions of CodeWarrior and the like so you can do both platforms. For me it was an easy choice. RealBasic. Does Mac, Win and Linux builds, and was easy for me to learn... relatively easy that is. I know, basic to a guy like you is like going back to 1978! But I'm impressed with what it can do. They have a free DL.
    My partner, a WIN expert, bought that Mac Mini for "testing" like you mentioned. He has 20 years of PC experience, does coding, etc. Within 2 months he was doing 90% of ALL his work on the Mini. It's a valid platform for testing. You wouldn't be disapponted if you got one.... a fast one.
  13. displaced macrumors 65816


    Jun 23, 2003
    Gravesend, United Kingdom
    Ah, GDI! Bless its' cotton socks! And GDI+! Oh, how we enjoyed those JPEG overflow vulnerabilities :)

    Anyway -- for the Mac folk, Windows' GDI routines are basically the same as the Mac's legacy QuickDraw routines. OS X apps shouldn't be using QD anymore, simply because it just can't do what the new OS X libraries ('frameworks' is a more accurate term) can do.

    Although OS X still supports QD at present, you'll be much better off looking into the Quartz family of frameworks.

    Graphics on OS X is light-years ahead of the current Windows environment, although MS are making efforts to bring Vista up to the same level as OS X. How successful that'll be is a matter of time.

    Take a look at the links describing the technologies on this page. If you're interested in accelerated graphics, both 2D and 3D, OS X has pretty much anything you could ask for.

    Check out Quartz 2D, CoreImage, and the Acceleration frameworks. Try to 'unlearn' a little of the manual labour that GDI forces upon the programmer. The facilities of the OS X frameworks are literally decades ahead of GDI.

    Part of .NET's perfomance concerns stem from the fact that your 'managed applications' are running inside the CLI runtime. Much of the graphics stuff will then 'thunk' down to the old GDI routines... but of course with a perfomance penalty. .NET code isn't intrinsically slow, but where the underlying technologies haven't been modernised you'll get a performance hit. For instance, if you're using Managed DirectX, you'll still get good performance.

    On OS X, it's cleanly OO'd from the ground up. You're not working with a 'managed layer' over existing technology -- the low-level libraries themselves combine to give a very powerful API.

    As for whether 'lazy' apps will fail backwards compatibility with the PPC... this really shouldn't be an issue. As long as the OS X frameworks behave the same on both architectures, apps that are coded against them will also 'just work' on both. For as long as Apple decide to keep OS X sync'd across both platforms, compiling apps for both will be as simple as putting a tick in a box at compile-time. All of OS X's internal code is already platform independent.

    The whole .NET expedition on MS's part really feels like a move to get Windows up to where OS X is now. Both aim to expose a modern programming interface to the developer. The difference is, Apple made a relatively clean break from the 'Classic' architecture, whereas MS have implemented it as 'yet another layer'. Of course, MS are aiming to gradually swap out the underlying legacy stuff, but I get the feeling we won't be free of it for a while yet.

    So to sum up, relax a little and let the OS do its stuff! You'll never need (or even be able to) get as close to the metal as you're used to... but I think the trick is to not let that bother you!

    Also, if you just want to test the water, I'd wait a few months to see what Intel-based systems are released. Check to ensure that any system you'll be getting has hardware support for the OS X technologies you want to work with. OS X will gracefully drop to less complex video rendering on hardware that doesn't support the hardware-accelerated Quartz routines. However, if you're interested in those, it's worth getting hardware that supports them. The only current Mac that doesn't support a particular technology (CoreVideo) is the Mac Mini, and that's due to limited Video RAM. I'm willing to bet money that any new Intel-based system will have hardware acceleration for all of OS X's current technologies.

    A hypothetical Intel-based Mac Mini should be more than enough to get a 'taste' for the platform. Apple aren't in the habit of making 'hobbled' budget machines. The low-end stuff's every bit as capable... you might just have to wait a little longer for compiles to finish :)

Share This Page