Windows Development Is Far Superior..

Discussion in 'Mac Programming' started by gifford, Jan 18, 2008.

  1. gifford macrumors 6502

    gifford

    Joined:
    Jun 11, 2007
    Location:
    Miserable England
    #1
    ...or at least thats what some people think.

    I have heard many people suggest this, but they normally just say "its better" without examples. Can someone who believes this to be the case fill me in on exactly what it is I'm missing out on in the windows world??
     
  2. synth3tik macrumors 68040

    synth3tik

    Joined:
    Oct 11, 2006
    Location:
    Minneapolis, MN
    #2
    Windows is full of a bunch of junk code that really doesn't do much.

    A friend of mine has the theory that. since cocca is based on objective c, and objective c is based off of C, then why not just write a program in C instead of calling up a ton of references.

    I use a lot of his programs, they are small but very powerful and take realy advantage of the core OS.
     
  3. gifford thread starter macrumors 6502

    gifford

    Joined:
    Jun 11, 2007
    Location:
    Miserable England
    #3
    Although it was a bugger to learn initially, and coming from a mainly web background (AS, PHP, Javascript, Perl, HTML etc BASIC and handily C) I'm totally in love with Objective C and Cocoa xcode Interface builder. IMO it is the most logical and well thought out ANYTHING I have ever used.

    I have played with C++ and Java many times over the last decade, but neither gripped me.
    'C' I find interesting due to how low level and basic it is. It is the only other language I have found pleasant to use.

    I just find it hard to imagine a world on the PC, as well thought out and logical as what i find on the mac, which is why I'm posing the question really, I have not programed for PC for 10 years, so am out of the loop.
     
  4. Aranince macrumors 65816

    Joined:
    Apr 18, 2007
    Location:
    California
    #4
    C# and .NET is really good. But I use C++ to keep things crossplatform.
     
  5. UK-sHaDoW macrumors newbie

    Joined:
    Dec 30, 2007
    #5
    Win32 is Horrible. A lot is junk code, for backwards compatibility.
    A lot of people give up on coding straight win32, and use some other widget toolkit like qt. I think a lot of commercial programs are qt.

    cocoa is quite nice from the start.


    c# is good. To improve on that you would use ruby or python on os x.
    Why not write everything in c? Java VM is written in c. Pythons interpreter is written in c. The idea is to take some load of developer, so you have less bugs, and develop quicker. Especially with OO. How about c++ that has OO? But often c++ is often said to have a stupid amount features, and is powerful but its easy to mess up on. People use the analogy that c++ tries to a squid, by nailing lots tentacles to a dog. Objective C is nice simpler alternative to c++.

    Trust me when i say c gives you the capability to create a lot of bugs. You may think its bug free, but people will always find a way to break it. This is why prefer to use a decent high level language when i can. Since most of time the computer is waiting for user to input, rather than acutally doing anything, so you would hardly notice anything user wise.

    Anything for performance i use c/c++
     
  6. kainjow Moderator emeritus

    kainjow

    Joined:
    Jun 15, 2000
    #6
    I think Xcode is good, but not great. I am used to it now since I've been using it for 6 years, but it seems complicated for beginners. I think Visual Studio is easier to learn.

    .NET is a nightmare for distribution if you're targeting XP (who isn't?). I developed a shareware C#/.NET app a few years ago and had to write my own .NET downloader into my app's installer. I don't see .NET useful in the real world for desktop applications - more so for internal/web apps.

    - - -

    People are afraid of Cocoa because Objective-C is new to them and doesn't have any of that dot notation (well with Obj-C 2.0 it does) and such. Cocoa forces you to learn new concepts, and most people don't like learning new things.
     
  7. gifford thread starter macrumors 6502

    gifford

    Joined:
    Jun 11, 2007
    Location:
    Miserable England
    #7
    What are the benefits of Ruby over Objective C?
     
  8. yeroen macrumors 6502a

    yeroen

    Joined:
    Mar 8, 2007
    Location:
    Cambridge, MA
    #8
    Mac OS X is superior because it's UNIX. From the developers perspective if you want to use an IDE, Xcode is free and really slick, but you still have all the traditional UNIX goodies at your disposal. Unlike Windows you don't have to shell out hundreds of dollars for a full featured development environment (Visual Studio).

    I find Mac OS X to be far better documented than Windows and OS X's Darwin subset is in fact transparent because open source.
     
  9. Catfish_Man macrumors 68030

    Catfish_Man

    Joined:
    Sep 13, 2001
    Location:
    Portland, OR
    #9
    Much more expressive and intuitive. Ruby code, in general, will be shorter and easier to read than equivalent Objective-C code. It also can be used interactively, and doesn't have the lag of compile times slowing down your develop-test loop.

    On the other hand, it's much much slower, can't use C libraries directly, doesn't have named arguments (I think? Could be wrong on this), doesn't have compile time error checking, and is a second-class citizen with Cocoa.

    Both are good choices for many things :)
     
  10. Cromulent macrumors 603

    Cromulent

    Joined:
    Oct 2, 2006
    Location:
    The Land of Hope and Glory
    #10
    Anyone who has used Win32 and still thinks that development on Windows is better than the Mac is either a masochist or just plain lying through their teeth. DirectX is even worse...
     
  11. WildPalms macrumors 6502a

    WildPalms

    Joined:
    Jan 4, 2006
    Location:
    Honolulu, HI
    #11
    ...and that sums it up nicely. I do code in Ruby and it's perfect for the target audience, but as stated, it wont be as fast as Objective C or C, but then, I dont have to code in 14 times as many lines of code.

    Horses for courses ;)
     
  12. HiRez macrumors 603

    HiRez

    Joined:
    Jan 6, 2004
    Location:
    Western US
    #12
    I might argue about the readability. Not that Ruby is bad, but I personally find Objective-C/Cocoa code very easy to read. Another big advantage to Ruby is you can use it with Rails for web applications. Objective-C currently has no real web application framework (WebObjects doesn't count).
     
  13. SC68Cal macrumors 68000

    Joined:
    Feb 23, 2006
    #13
    The difficulty with Objective C today is the fact that many of the great NS libraries only operate on Mac OS X today. It's a shame, for all the power of Objective C and the NS classes, you're only able to release to (at best) 6-7% of the world (depending on the math you use).

    Or at least, that's what it appears from the outside looking in. I imagine Objective C programmers working in mixed operating environments are few and far between. They've got to be outnumbered by the Java and C# programmers.
     
  14. displaced macrumors 65816

    displaced

    Joined:
    Jun 23, 2003
    Location:
    Gravesend, United Kingdom
    #14
    Win32 is a mess. But, for many purposes, Win32 is dead.

    The .NET Framework is actually quite nice. The class library is nicely organised - its functionality is very 'discoverable' in that finding the right bit to do what you need is almost always a logical process of exploring the hierarchy. It does an excellent job of hiding the vagaries of Win32 and provides a great amount of flexibility. Many languages can be used for .NET development, with each of them compiling down to the same instructions -- language choice really is a matter of syntactical preference, since the same functionality is identical to all.

    .NET does in fact take some ideas from Mac OS X. For example, installing a .NET app is as simple as placing all the apps' files in one location (much like OS X's app bundles), although it's a half-baked concept in .NET since Windows doesn't have the notion of a bundle -- rather, MS refer to is as 'XCOPY deployment' - a pretty archaic term :D However, their ClickOnce deployment method is very good, with automatic dependency installation and application auto-updating provided 'for free'.

    I'd really love to get into coding for OS X. The tools and the technology look great -- I just need to sit down and spend some time with Objective-C.
     
  15. gifford thread starter macrumors 6502

    gifford

    Joined:
    Jun 11, 2007
    Location:
    Miserable England
    #15
    Though I believe with the help of the iPhone the potential market could well more than quadruple within a few years.

    That would be my dream come true, I'm so fed up with the current mess of web technologies. I have been writing in javascript all week, and I just want to scream.
     
  16. Gelfin macrumors 68020

    Gelfin

    Joined:
    Sep 18, 2001
    Location:
    Denver, CO
    #16
    Anyone who can give a general "X is better than Y" answer in such a broad field is either lacking perspective or betraying a prejudice.

    In my opinion, Visual Studio is a more robust IDE, but Interface Builder is a more satisfying UI design paradigm. Comparing Objective-C and C++ would be a whole separate broad topic; they each have traits to recommend and condemn them. Cocoa seems like a tighter object framework than the giant random Katamari of Windows APIs, but you can still get down into some pits of weirdness once you have to accomplish things for which there isn't an NS* class.

    Bottom line, when I'm working on either there are a few cases where I think to myself it's a shame I can't do something the other platform lets me do more easily.

    I could comment at greater length, but all I will say is to wish him luck and let us know how that theory works out for him.

    If Win32 is dead in favor of .NET, then Microsoft truly is sunk. I've used .NET, and I'm afraid I'm a bit of a non-fan. It makes programming very, very easy for me, but it seems to do so at the expense of making it very, very difficult for everyone else in the process, which I take as the exact opposite of my job as a programmer. Making sure the correct msvcrt.dll is available is an annoyance. Making sure the correct 40MB runtime environment is available is a deployment nightmare, particularly if you're trying to deploy an application with a word like "lightweight" or "thin" in its title to users at the far end of a very skinny pipe, or deploying to, say, a government agency with strict policies against installing things like .NET runtimes (no, really, this happens). I'll use C# for rapid prototyping or for tools that will never see the outside world, but it has always disappointed when I've tried to create things I'd actually give to a customer.
     
  17. displaced macrumors 65816

    displaced

    Joined:
    Jun 23, 2003
    Location:
    Gravesend, United Kingdom
    #17
    Agreed entirely. I tried to refrain from OS X dev. vs. Windows dev. comments, since these comparisons can only really be made on the details (and I don't know the details of OS X development, although I'd like to!). I suppose some kind of observation can be made based on the end-products of these development tools. I must say that purely from a user's standpoint, OS X has some truly excellent software which works in ways I simply couldn't imagine trying to implement on Windows. So there's clearly a fair amount of goodness in Cocoa/Carbon/etc.

    Indeed. There are always instances where things could be better. Both MS and Apple seem quite good at addressing these cases in updates to their frameworks and tools.

    I completely understand the problem of framework deployment. Since the majority of my work goes into a corporate environment, I simply deploy .NET Framework versions out to desktops using SMS and ensure that Dell bundle them on our standard RIS images (which Dell are very good at keeping updated). Essentially, I treat .NET Frameworks the same way I treat security updates -- deploy and forget.

    Of course, this is no good for disconnected clients. There's always going to be the issue of deployment size. However, the actual 'hassle' of ensuring the Framework is available at install-time doesn't really exist anymore. ClickOnce publishing is very good. Standard dependencies such as the Framework itself are simply included with the installer. Additional dependencies such as SQL Compact Edition are just a checkbox-tick away from seamless deployment. Additionally, versioning isn't much of a problem, since 1.1, 2.0, 3.0 and 3.5 happily co-exist on the target machine.

    Is it classically 'tidy', 'small' or 'thin'? Nope. But deploying .NET Framework can be made transparent to the end-user, and is in fact transparent by default if building deployments using VS2005 or 2008 (2003 was clunkier, for sure).
     
  18. HiRez macrumors 603

    HiRez

    Joined:
    Jan 6, 2004
    Location:
    Western US
    #18
    This is probably my biggest complaint about Cocoa: it just doesn't address enough functionality yet. If you want to make a TextEdit clone, you're all set with Cocoa. But for lots of other things consider yourself out of luck unless you want to burrow down through layers of prehistoric cruft into the ugly underworld of the old Mac Toolbox and friends, where you will be dealing with things like extremely obtuse C and C++ code (and code examples), FSSpecs, malloc, and Pascal string conversion. I've had to go there for things like accessing FireWire/USB ports, QuickTime, Core Audio, CD/DVD burning, Quartz, and CoreImage functions (and previously databases) and it is not fun. And as previously discussed, there is no option at all for web development.

    Apple is very slowly adding NS* classes for some things, but at a glacial pace. QTKit and Core Data are a nice start but the vast majority of QuickTime, which you could argue is the very heart and soul of the Mac experience, is still inaccessible to the Objective-C/Cocoa programmer. So the result is that even though you can happily speed through much of your development in Cocoa and Objective-C, you are bound to hit roadblocks for many projects where things just get ugly and frustrating.
     
  19. ppc_michael Guest

    ppc_michael

    Joined:
    Apr 26, 2005
    Location:
    Los Angeles, CA
    #19
    I'm surprised there's praise here for C#. I think it's the most pitiful horrible language this site of VB. But I'm more of an old-fashioned programmer, so maybe it's just me.

    (Objective C + Cocoa, on the other hand, is just plain delicious.)
     
  20. pilotError macrumors 68020

    pilotError

    Joined:
    Apr 12, 2006
    Location:
    Long Island
    #20
    God I hate programming windows...

    Everytime they hand a project off to me, I force them to port to Linux if its non visual.

    I think the worst part about it is what comes afterwards... IT Lockdown. The IT Desktop weenies make me nucking futz making me jump through hoops to run the applications I built. I think anyone in a Large Corporate environment must go through the same thing.

    I've been trying my hand at coding OS X, but it's a tough sell in the corporate world. I guess I need to find a job at a creative company instead of Wall St.

    In all fairness, If you can code, you can really make applications do just about anything in Windows. It really is the everything including the kitchen sink platform, but prior to .NET, it just sucked, mainly because you ended up using several sets of API's to accomplish any task.

    I spend most of my days in Linux / Unix now, which is what attracted me to OS X to begin with. I think I'm just bored of Windows at this point ;)
     
  21. neoserver macrumors 6502

    Joined:
    Apr 24, 2003
    #21
    Like it has been mentioned before, the win32 API, is annoying at best to use.

    The .NET framework makes things MUCH easier to develop on the Windows platform... If you don't need to interface to COM objects. Once you need to start building Interop interfaces, and marshalling your calls, it goes downhill real quick... .NET is also, like Cocoa, a single-platform technology. It doesn't help those who want to be cross-platform whatsoever.

    Until Mono can support System.Windows.Forms, it isn't a viable option for today's big apps.
     
  22. fredrikaustin macrumors newbie

    Joined:
    Jan 20, 2008
    #22
    longtime windows programmer on os x

    I normally avoid debates like this, but since I was here (posting the question about malloc problem on Leopard), and have been working across all platforms for a year or so ....

    After 20 yrs of windows programming, mostly game development, I'm now doing scientific software that is cross platform (windows, os x, linux). I love it. Probably because learning new environments is fun, and as the wall st. poster pointed out, after working in windows for a long time you just get bored - you want something new, (anything!).

    That said, when I have lots of complex coding to do, I force myself to work in visual studio on windows - because it's integrated build/debug cycle just completely rocks compared to anything else available on any platform - and it's not hard to understand why, since MS has employed an army of very smart very well-paid people for a very long time building these tools. (BTW, very functional versions of these are available freely - VS2005)

    I love the unix/linux thing, and I love working on my mac, I'm just not nearly as productive on it. I'm hoping this will change as I learn gdb/xcode better, but I think it's fair to say this still has catching up to do compared to vstudio for effeciency - again not hard to understand why - these guys target 1 processor family running 1 operating system, unlike gdb etc... BTW, I work almost exclusively in VC6, which is probably a decade old by now. I haven't used xcode 3 yet.

    Finally, I'd be one step closer to trashing my windows PC if I could find anything that worked half as well as OneNote for keeping notes on my many complex projects. OneNote and VisualStudio are the only reasons I own a windows computer, and why it is my main work machine still. (when I 'play' now, it's always on the mac)

    -fa, austin tx
     
  23. gifford thread starter macrumors 6502

    gifford

    Joined:
    Jun 11, 2007
    Location:
    Miserable England
    #23
    Dont get me wrong, my intentions with this thread was not to start arguments. I'm genuinely curious as to the benefits and downfalls of each platform.


    I must say I have had much frustration grappling with core audio in the past and wished for higher level control with various other areas of osx. This has been one of my only gripes.

    I'm also hoping for some kind of web strategy from Apple, does anyone have any idea of the likelihood of this happening?
     
  24. SC68Cal macrumors 68000

    Joined:
    Feb 23, 2006
    #24
    Apple has no web strategy. WebObjects would have been that market, but they haven't exactly pushed that one very hard.

    Don't get your hopes up.
     
  25. Sijmen macrumors 6502a

    Joined:
    Sep 7, 2005
    #25
    I think Win32 is horrible and I hope I'll never have to write a 'real' application using it.

    The .NET Framework on the other hand is pretty nice for Windows development. Windows Forms works fine, and it's easy to get stuff working. Some things are lacking though, for example the Cocoa drawing API is much better than GDI+. Windows Presentation Foundation looks interesting but seems to have a long way to go.

    As far as I'm concerned, I like Cocoa and Objective-C more. Everything seems so much more mature, finished, and often easier (not always). Key value coding/observing/binding are nice, Core Data was a bit difficult at first but still rocks, and Core Animation looks interesting too, although I haven't used it yet.

    And luckily there's no Xcode Foundation Team Enterprise Edition.
     

Share This Page