Re: Has anyone compared Cocoa and DOTNET?
Re: Has anyone compared Cocoa and DOTNET?
- Subject: Re: Has anyone compared Cocoa and DOTNET?
- From: "Glen Low" <email@hidden>
- Date: Tue, 20 Jan 2004 02:35:13 -0500
>
I am curious if anyone on the list has experience in both Cocoa and DOTNET.
>
If so, could they provide a brief comparison of the richness of the two
>
frameworks, a comparison of the two languages (Objective C and C#) and the
>
development tools. I would also like to know if there are any particular
>
types of development projects where one is better than the other.
It is difficult to do justice to the work and philosophy behind Cocoa and .NET, especially in a general comparison. I have worked with both Cocoa and .NET, if you have specific requirements I may be able to tell you which is better at what.
The following are generalizations and over-simplifications. Take with many, many pinches of salt.
1. ObjC is a fairly basic language, C# is more functional, but some say more confusing. Java strikes a nice balance.
2. ObjC has semi-manual garbage collection. C# (and Java) are fully automatic garbage collectors. Manual and automatic have different pros and cons, but automatic GC is mostly a great programmer boon.
3. ObjC has excellent support for dynamism, C# is still tied to a static inheritance / interface metaphor. Still with C# you can discover methods at runtime and even write code at runtime, only clunkier than with ObjC.
4. Cocoa is a mature framework, .NET is somewhat mature. Cocoa looks and works better esthetically, better at encouraging MVC separation, has some inconsistencies from seeming to be organically grown. .NET Windows Forms looks like, um, Windows, less MVC separation, more consistent API. .NET has more intermediate level support of controls e.g. property grids, integration with reflection and components than Cocoa. Cocoa has low-level controls like drawers and sheets with no Windows equivalent.
5. ObjC and C++ are well integrated with "legacy" C usage. C# is less so, and Java even less so.
6. Cocoa (Quartz, Quicktime) seems more finely attuned to graphics issues, e.g. AttributedStrings, PDF, text layout inbuilt, different file formats for import and export, movies etc.. .NET forms and GDI+ less so.
7. .NET compiles to MSIL, which can be disassembled and examined fairly easily. Don't underestimate this, it's almost equivalent to "open source" as you can figure out what particular system routines are doing and it's saved my ass on several occasions. But MSIL (and GC) slows down C#, and messaging slows down ObjC, so it depends on your code profile.
I'm sure the others in this list with greater experience in one platform or the other will supply more correct info.
Why not have the best of both worlds? Cocoa accepts ObjC++ and .NET accepts Managed C++, so you may be able to factor out a good deal of non-UI code (and some UI code) into C++, then bridge to either framework via ObjC++ and Managed C++.
Cheers,
Glen Low, Pixelglow Software
www.pixelglow.com
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.