|
|
c# and mac os x
|
|
|
|
Mac Enthusiast
Join Date: Apr 2003
Location: manticore or people's republic of haven
Status:
Offline
|
|
i've checked the previous posts and i wasn't able to find an answer to this: is it possible to code using c# to make mac programs? or is it objective-c(++), c++, and c only? it would make sense, to me, that the language should work, but just thought i would check. thanks!!
nick
|
some people are like slinkys: they don't do much, but are fun to push down stairs.
|
|
|
|
|
|
|
|
Professional Poster
Join Date: Sep 2000
Location: Texas
Status:
Offline
|
|
No C# Using Objective-C is very easy.
|
|
|
|
|
|
|
|
|
Mac Enthusiast
Join Date: Apr 2003
Location: manticore or people's republic of haven
Status:
Offline
|
|
Originally posted by djohnson:
No C# Using Objective-C is very easy.
will the concepts and skills i learn in my c#/c++ classes in college help me learn/pick up objective-c? or are they too different?
thanks for the answer on being able to use it, or not.
nick
|
some people are like slinkys: they don't do much, but are fun to push down stairs.
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Aug 2001
Status:
Offline
|
|
I believe someone is working on a Cocoa for C# binding, but currently it only supports Objective-C and Java. Carbon supports C++, and 3rd party APIs support whatever they support. C# is a bit tricky, since it's built on .NET which is a Microsoft technology.
|
|
|
|
|
|
|
|
|
Registered User
Join Date: Oct 2003
Status:
Offline
|
|
> will the concepts and skills i learn in my c#/c++ classes in college help me learn/pick up objective-c?
Learning Objective-C shouldn't give you much trouble. It's just C plus a few simple OO features bolted on. It's Cocoa that will take a while to learn (but only because it's big, like the Java API's).
Also, instead of C#, you *could* just use Java instead (I've never fooled around with C# but I hear that it's almost exactly equivalent to Java). That's my recommendation.
|
|
|
|
|
|
|
|
|
Mac Enthusiast
Join Date: Apr 2003
Location: manticore or people's republic of haven
Status:
Offline
|
|
Originally posted by johnMG:
> will the concepts and skills i learn in my c#/c++ classes in college help me learn/pick up objective-c?
Learning Objective-C shouldn't give you much trouble. It's just C plus a few simple OO features bolted on. It's Cocoa that will take a while to learn (but only because it's big, like the Java API's).
Also, instead of C#, you *could* just use Java instead (I've never fooled around with C# but I hear that it's almost exactly equivalent to Java). That's my recommendation.
but that will be true of whatever i decide to program, right? that the API will be more difficult to learn (after a language is picked up) and how to use it to make the programs to play nicely with whatever my destination platform is?
i will be also learning java, c++, and, presumably, c# over the next couple years for my bachelors and just wondering if from those i should be able to pick up objective-c from them. . .not withstanding the API's req'd to program for the mac?
nick
|
some people are like slinkys: they don't do much, but are fun to push down stairs.
|
|
|
|
|
|
|
|
Fresh-Faced Recruit
Join Date: Apr 2004
Location: Beantown
Status:
Offline
|
|
Yes, picking up Objective-C is very easy once you understand general object oriented programming concepts. Essentially, you'll just need to learn how to express the same ideas using a different syntax.
Quick example:
Java: myobject.somemethod(variable);
Obj-C: [myobject somemethod:variable];
Digesting the Cocoa API takes a bit more time...
|
|
|
|
|
|
|
|
|
Mac Enthusiast
Join Date: Apr 2003
Location: manticore or people's republic of haven
Status:
Offline
|
|
Originally posted by sixer:
Yes, picking up Objective-C is very easy once you understand general object oriented programming concepts. Essentially, you'll just need to learn how to express the same ideas using a different syntax.
Quick example:
Java: myobject.somemethod(variable);
Obj-C: [myobject somemethod:variable];
Digesting the Cocoa API takes a bit more time...
ok. thanks.
what's the difference in an API, like cocoa, and a framework, like .NET? don't they both allow access to services provided by the OS? or are they strictly controlled by what language is used?
thanks!
nick
|
some people are like slinkys: they don't do much, but are fun to push down stairs.
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Sep 2000
Location: in front of the keyboard
Status:
Offline
|
|
What kind of school teaches C#???
I mean, even the AP test is in Java these days.
|
signatures are a waste of bandwidth
especially ones with political tripe in them.
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Oct 1999
Location: San Jose, Ca
Status:
Offline
|
|
zanyterp: FrameWorks are sort of a form of API.
An API is the list of all of the routines that are exposed by a system for other programs to use.
A Framework is an API that comes wrapped up as a template (in broad strokes).
For example, the AppKit framework (part of Cocoa) is basically a ready-to-run application, just one that dose nothing truly useful. You then over-ride its methods to add your own code and create a (hopefully) useful app.
Now the real point is that at this point it is difficult to access the power of Apple's frameworks from C#. There is a project to make C# a second-tier language for MacOS X (along with Perl, Python, and AppleScript... languages that have bridges to Cocoa, as opposed to the first tier: Obj-C, C++, and Java... and the third tier... languages without bridges: bash, c-shell, Fortran, etc..), but it is still some ways off.
If you are looking at creating software for MacOS X, at the moment it would probably be best to write in one of the first tier languages, if for not other reason then to get a better understanding of the frameworks.
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Sep 2000
Location: Edmond, OK USA
Status:
Offline
|
|
Originally posted by zanyterp:
ok. thanks.
what's the difference in an API, like cocoa, and a framework, like .NET? don't they both allow access to services provided by the OS? or are they strictly controlled by what language is used?
thanks!
nick
As the above poster said - a framework is usually a skeleton for making something (usually specific like a windows app or web service) whereas an API is just exposing the capabilities of the runtime. The biggest difference, however, is what each is specifically written for. Some frameworks contain various APIs and many APIs have frameworks within them . . .
|
|
|
|
|
|
|
|
|
Registered User
Join Date: Oct 2003
Status:
Offline
|
|
but that will be true of whatever i decide to program, right? that the API will be more difficult to learn (after a language is picked up) and how to use it to make the programs to play nicely with whatever my destination platform is?
Well, in the case of C++, there's a lot of special cases -- i.e. "Well, 'static' means file scope, unless it's in a class, then it means a class-method/variable, oh and unless it's in a function, then it means it only gets initialized once, wait, for file scope you use unnamed namespaces instead of static" -- that sort of thing. So, for C++, I'd say that learning all the ins and outs of the language are going to take you a long time to master and internalize. Once that's done, learning to use different API's is not *too* bad. Though, there's so many ways they can be designed, that it can be more difficult than necessary.
Learning the Java API is made easier (IMO) because Java tends to gently nudge you to do things in a OO Java-like way (and also, since the libs were all designed by the folks at Sun, there's a little continuity and consistency between them). Sorry for all the hand-waving arguments here, but you don't have to take my word for it -- give them a try.
Regarding the whole frameworks and API's thing, the words are pretty much interchangable -- they both mean a big collection of classes/functions that you use to write your application. Just remember that whatever high-level API you end up using (Java, .NET, Cocoa), they mostly all are wrappers in some way or another of the underlying C function calls and system calls of the OS.
(
Last edited by johnMG; May 18, 2004 at 03:22 PM.
)
|
|
|
|
|
|
|
|
|
Addicted to MacNN
Join Date: May 2001
Location: Cupertino, CA
Status:
Offline
|
|
I think the main point is that if you're getting a CS-related bachelor's, you should be able to pick up any programming language you want to use throughout your career. You aren't tied into using the languages you use in classes, those languages should just be used as instructive tools to help you learn and apply more abstract concepts. Unfortunately, I suspect that a school teaching C# might not emphasize that concept...
I like to think of frameworks as analogous to a paper form where you fill in the blanks. They're like a template containing some basic functionality that you can extend and customize to suit your needs. They can be difficult because they can force you into an inflexible structure, or they can bend over backwards to avoid doing so and thus take on increased complexity. Cocoa is a difficult framework to learn because of its size, but there are several tutorials and beginner books available that do a great job of teaching the basic concepts.
|
|
|
|
|
|
|
|
|
Registered User
Join Date: Oct 2003
Status:
Offline
|
|
I think the main point is that if you're getting a CS-related bachelor's, you should be able to pick up any programming language you want to use throughout your career.
Exactly -- though, I'd like to add, temper that with the fact that it will take a non-trivial amount of time to learn and become productive using a given API. Cocoa is nice because it's also (mostly) available on GNU/Linux as GNUstep. Java is nice because it's available on many platforms, and you can even compile it to machine code with GCJ. Whatever framework comes with C# is gonna be Windows-only, so that's a non-starter for many (including me).
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Oct 1999
Location: San Jose, Ca
Status:
Offline
|
|
johnMG: To be fair, there is the Mono project, which is working on an API for C# that is both cross-platform, and a section of it is dedicated to mirroring much of Microsoft's API on Windows. So far they have concentrated this effort on the non-GUI portions of the API (especially the web development API's).
There is even a rumor that Quark will be doing the next version of Express in Mono, and so they will be poring resources into developing Mono's GUI portion both on Windows, and MacOS X (with Linux coming along for the ride).
On the other side of that fence, Microsoft has been very odd about not making statements about whether they could at some time start making intellectual property claims, since this is where their recent spate of patents have all been...
Executive summery: it is not yet ready for work, but C# has the possibility of a future on MacOS X.
|
|
|
|
|
|
|
|
|
Junior Member
Join Date: Sep 2000
Status:
Offline
|
|
My understanding:
API is an older terms that originates from pre-OO days, where a library of function calls is presented to the (usually C) programmer. You might have a call to show a window, a call to paint a square on the screen etc.
Class Library is a term for a collection of classes providing some useful functionality, a bit like an 'old style' API but presented as classes. A graphics class library might have a square class, a triangle class, a pen class. You use these classes in your app.
A Framework is the reverse - rather than picking bits out of the library to use, you 'fill in the gaps' by added smaller amounts of custom code to the framework to produce your desired effect. Cocoa, Swing and .net forms are all frameworks.
Learning new frameworks/API's is the real pain of programming across platforms - MFC is very different from the Mac Toolbox, or Cocoa. Java is basically a single API that is the same on different platforms - a 'Virtual computer' to target. The language is fairly unimportant compared with the framework.
.Net is the new, modern framework for writing windows apps.
Cocoa is the new, modern way for writing Mac apps.
|
Nobody made a greater mistake than
he who did nothing because he could only
do a little. Edmund Burke
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Oct 1999
Location: San Jose, Ca
Status:
Offline
|
|
bygimis: Most of what you said is right on the money, but two small notes:
.Net is more of a marketing term than a real idea. It covers such a wide swath of things that it is tough to narrow it down like that. For most people's uses it is however a good definition.
The second point is that frameworks are still referred to as API's. Framework is being more specific, and thus is a better term, but both are valid for things such as Cocoa.
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Sep 2000
Location: in front of the keyboard
Status:
Offline
|
|
Originally posted by bygimis:
My understanding:
API is an older terms that originates from pre-OO days, where a library of function calls is presented to the (usually C) programmer. You might have a call to show a window, a call to paint a square on the screen etc.
Class Library is a term for a collection of classes providing some useful functionality, a bit like an 'old style' API but presented as classes. A graphics class library might have a square class, a triangle class, a pen class. You use these classes in your app.
In my Java-centric world, I never hear, or use, the term "Class Library". If someone used that term, I might guess what they mean. But, everyone in the Java community and everyone with any company I have every worked on projects with uses the term API.
Look here: I see lots of APIs, but not one "Class Library"
Java APIs
Current JSRs
|
signatures are a waste of bandwidth
especially ones with political tripe in them.
|
|
|
|
|
|
|
|
Fresh-Faced Recruit
Join Date: Apr 2004
Status:
Offline
|
|
Originally posted by itai195:
I think the main point is that if you're getting a CS-related bachelor's, you should be able to pick up any programming language you want to use throughout your career. You aren't tied into using the languages you use in classes, those languages should just be used as instructive tools to help you learn and apply more abstract concepts. Unfortunately, I suspect that a school teaching C# might not emphasize that concept...
Classes that teach or use C# are usually higher level courses that assume that the student has already taken basic courses like data structures, algorithms, object oriented design, etc in some other language like Java or C++. That's how it is in my school anyways.
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Nov 2003
Location: Minnesota
Status:
Offline
|
|
AppleInsider notes that Tiger might yield support for C# and .NET frameworks.
I'll believe it when I see it, though.
|
|
|
|
|
|
|
|
|
Addicted to MacNN
Join Date: May 2001
Location: Cupertino, CA
Status:
Offline
|
|
Originally posted by InvisibleTouch:
Classes that teach or use C# are usually higher level courses that assume that the student has already taken basic courses like data structures, algorithms, object oriented design, etc in some other language like Java or C++. That's how it is in my school anyways.
My school handled things differently I guess, we never really had classes that taught a language. Many classes expected us to use one or another language for all our projects, but learning the language was rarely a part of the course material.
I guess I can't see the value of teaching C# outside of a course about .NET, and a course about .NET seems a little too career oriented to be part of a CS curriculum, but that's just my opinion.
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: May 2001
Location: ~/
Status:
Offline
|
|
A decent college CS program will teach you how to program computers. Once you learn how to program the language you use to do so becomes trivial. There's basic concepts inherent in all high level programming languages. Programming is about solving problems. CS classes are supposed to teach you methodic and logical problem solving. Once you learn to solve problems in this way and know the science behind such problem solving learning particular languages is easy.
You'll find that most high level languages do the exact same thing with a different syntax. Some provide you with more "out of the box" capabilities. Perl for instance has a ton of built-in methods for text handling. You could do everything in C you could do with Perl, it is just takes less time to write in Perl because more heavy lifting work has been done for you. By the time you end up with a bachelor's degree in Computer Science you'll be able to program in a variety of languages both new and obsolete and you ought to have the capability to write your own programming language if you wanted to.
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Sep 2000
Location: in front of the keyboard
Status:
Offline
|
|
I did just that! My language consists of 1's and 0's
here is a sample:
Code:
010010010110011000100000011110010110111101110101001000000110000101110010011001010010000001110010011001010110000101100100011010010110111001100111001000000111010001101000011010010111001100101100001000000111100101101111011101010010011101110010011001010010000001101110011011110111010000100000011000010111001100100000011001000111010101101101011000100010000001100001011100110010000001001001001000000111010001101000011011110111010101100111011010000111010000100001
|
signatures are a waste of bandwidth
especially ones with political tripe in them.
|
|
|
|
|
|
|
|
Junior Member
Join Date: Jun 2001
Status:
Offline
|
|
.NET is not a framework for developing Windows applications. It is analagous to Java 2 Enterprise Edition (J2EE), meaning it is a framework for developing platform independent programs. However, currently, the .NET framework and the CRL (common runtime library) only exist for Windows. I recently concluded and independent study on .NET in school and I am sad to say that it is actually very good. C# is syntactiaclly very much like Java, but better. and VisualStudio.NET is one of the best IDEs I've ever had the privilage of using. Additionally, unlike Java's slow interpreter, .NET's "Just-in-time" compiler provides almost no overhead when exectuing. Meaning that .NET will become a viable platform. There is already a project underway developing the tools necessary for .NET to work on Linux and would not be surprised if Mac OS X were to include them as well. Whether you like it or not, what Microsoft does dictates what everyone else must do too.
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Aug 2001
Status:
Offline
|
|
Originally posted by asidrane:
.NET is not a framework for developing Windows applications. It is analagous to Java 2 Enterprise Edition (J2EE), meaning it is a framework for developing platform independent programs. However, currently, the .NET framework and the CRL (common runtime library) only exist for Windows. I recently concluded and independent study on .NET in school and I am sad to say that it is actually very good. C# is syntactiaclly very much like Java, but better. and VisualStudio.NET is one of the best IDEs I've ever had the privilage of using. Additionally, unlike Java's slow interpreter, .NET's "Just-in-time" compiler provides almost no overhead when exectuing. Meaning that .NET will become a viable platform. There is already a project underway developing the tools necessary for .NET to work on Linux and would not be surprised if Mac OS X were to include them as well. Whether you like it or not, what Microsoft does dictates what everyone else must do too.
Apparently your study missed the fact that Java has used a JIT compiler since about version 1.2. IMO Java and .NET are approximately equal. .NET is supposedly a little faster, has a bigger language choice, and a better API. Java is simpler, more open, and actually is cross platform rather than just claiming to be (does anyone really believe that MS will allow a 100% compatible .NET API to exist on other platforms? All they have to do is add features each time that happens and they can keep other platforms scrambling to keep up).
|
|
|
|
|
|
|
|
|
Addicted to MacNN
Join Date: May 2001
Location: Cupertino, CA
Status:
Offline
|
|
I'd add that the belief C# is better than Java as a langauge is subjective -- I've seen counterarguments for every supposed enhancement in C#. That said, the enhancements do in general aid convenience, and I'm lazy... so I like C#
I also wouldn't hand over application development dominance to Microsoft, J2EE has a lot going for it (like the support of IBM, Sun, Oracle, BEA). I haven't seen a reputable analyst predict anything other than coexistence for the two. Additionally, I have to think J2EE will always be more attractive for anyone who values avoiding vendor lock-in. When you buy into .NET, you're locked into a pile of Microsoft products. In contrast, there is significant vendor competition in every aspect of the J2EE platform, from application servers to databases to IDEs and frameworks.
You're right that .NET isn't just a framework, it's an application development platform (Microsoft's bungled marketing would have us believe .NET is sunflowers and lollipops as well). I don't know about the cross platform applications part though, that's yet to be seen.
(
Last edited by itai195; Jun 2, 2004 at 07:27 PM.
)
|
|
|
|
|
|
|
|
|
Junior Member
Join Date: Jun 2001
Status:
Offline
|
|
Java compiles into java byte code which in turn is interpreted by the virtual machine during execution. This interpretation process is slow and leads to an execution time of O(log(n)) where as .NET compiles into microsoft intermediary language which is more or less assembly without register informatio. This results in execution of .NET programs having a run time of O(n).
Perhaps it's jsut a matter of the c# compiler being much better than the VM for windows. Who knows.
|
|
|
|
|
|
|
|
|
Addicted to MacNN
Join Date: May 2001
Location: Cupertino, CA
Status:
Offline
|
|
I'm not sure where you got those bounds, but O(log(n)) is faster than O(n). Which Java VM were you using? Microsoft's is ancient.
|
|
|
|
|
|
|
|
|
Junior Member
Join Date: Jun 2001
Status:
Offline
|
|
I believe i meant O(nlog(n))
now that i think about it, not sure where my bounds came from
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Sep 2000
Location: in front of the keyboard
Status:
Offline
|
|
that's because it's bull butter.
The fact is, C# is compiled to CLR bytecode, just like Java is compiled to JVM bytecode.
Any performance edge the .Net CLR has over the JVM would be due to secret hooks, OS boot time pre-loading of DLLs, and other such goodies that Microsoft shares only with itself.
|
signatures are a waste of bandwidth
especially ones with political tripe in them.
|
|
|
|
|
|
|
|
Fresh-Faced Recruit
Join Date: Dec 2002
Status:
Offline
|
|
No the c sharp speed advantages come from the CLR. Under windows a lot of these are wrappers around windows calls - so they go to native code pretty quickly.
Under java lots of code (e.g. swing) falls to java or code without the optomisation that the OS gets. It's the lightweight/heavyweight dispute which made swing so bad. Mono will be quite slow 'cos it goes to emulated win32 calls (thus the need for wine). MS went for speed over crossplatform.
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Sep 2000
Location: in front of the keyboard
Status:
Offline
|
|
Isn't that pretty much what I just said???
|
signatures are a waste of bandwidth
especially ones with political tripe in them.
|
|
|
|
|
|
|
|
Fresh-Faced Recruit
Join Date: Dec 2002
Status:
Offline
|
|
I thought you were suggesting that c# was faster cos microsoft use lots of nasty undocumented hooks... as far as i know they just use all the standard documented win32 calls. So if you wanted to reimplement c# for windows (in theory) you could make it as fast as the MS implementation. Not that microsoft is above such practices, but i don't think they use them here!
|
|
|
|
|
|
|
|
|
Forum Regular
Join Date: Apr 2000
Location: A drip off Lake Michigan
Status:
Offline
|
|
Originally posted by barbro:
I thought you were suggesting that c# was faster cos microsoft use lots of nasty undocumented hooks...
What, Microsoft use proprietary means to optimise their just-in-time compiler so that C# runs best with Microsoft Windows? NEVER!!!!
|
|
|
|
|
|
|
|
|
Dedicated MacNNer
Join Date: May 2004
Status:
Offline
|
|
Mac zealots spreading FUD about Microsoft? NEVER!!!!!
|
|
|
|
|
|
|
|
|
Addicted to MacNN
Join Date: Mar 2000
Location: London, UK
Status:
Offline
|
|
Apple doesn't use any nasty undocumented hooks at all ever! All their code is 100% perfect hack-free and their systems are not proprietary at all! Praise Alla^WSteve Jobs!
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Aug 2001
Status:
Offline
|
|
Originally posted by Angus_D:
Apple doesn't use any nasty undocumented hooks at all ever! All their code is 100% perfect hack-free and their systems are not proprietary at all! Praise Alla^WSteve Jobs!
Certainly they would never do something like make it so that only one app (Dock.app) can modify windows of other applications...
Or have the window transform matrix be accessed only by private APIs...
I would definitely expect both Apple and MS to be using any tricks they can find to make stuff run faster.
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Sep 2000
Location: in front of the keyboard
Status:
Offline
|
|
Originally posted by gatekeeper:
Mac zealots spreading FUD about Microsoft? NEVER!!!!!
Are you retarded?
FUD == Fear Uncertainty Doubt
What part about any of this was FUD?
I am 100% certain that everything I said is 100% true.
|
signatures are a waste of bandwidth
especially ones with political tripe in them.
|
|
|
|
|
|
|
|
Dedicated MacNNer
Join Date: May 2004
Status:
Offline
|
|
Originally posted by Angus_D:
Apple doesn't use any nasty undocumented hooks at all ever! All their code is 100% perfect hack-free and their systems are not proprietary at all! Praise Alla^WSteve Jobs!
|
|
|
|
|
|
|
|
|
Forum Regular
Join Date: Apr 2000
Location: A drip off Lake Michigan
Status:
Offline
|
|
Originally posted by Catfish_Man:
Certainly they would never do something like make it so that only one app (Dock.app) can modify windows of other applications...
Or have the window transform matrix be accessed only by private APIs...
I would definitely expect both Apple and MS to be using any tricks they can find to make stuff run faster.
Exactly. I'm being realistic ... I'm sure c# and .NET are just dandy, but SORRY--Microsoft isn't going leave themselves open to the kind of [business] attack that sharing .NET would provide.
Yeah, and whats this talk about FUD? Are you expecting a Windows bias on this forum?
Besides, it wans't even biased one way or the other.
Damn, I can't believe I'm pissed at you, Gatekeeper!
Time for a beer.
(
Last edited by Theodour; Jun 14, 2004 at 10:57 PM.
)
|
|
|
|
|
|
|
|
|
Fresh-Faced Recruit
Join Date: Nov 2001
Location: /(bb|[^b]{2})/
Status:
Offline
|
|
|
|
|
|
|
|
|
|
|
Addicted to MacNN
Join Date: Mar 2000
Location: London, UK
Status:
Offline
|
|
Yeah, I noticed adhamh was doing some mono-related stuff. However I'm pretty sure he's doing it for his own reasons, not with the backings of Apple.
|
|
|
|
|
|
|
|
|
Forum Regular
Join Date: Apr 2000
Location: A drip off Lake Michigan
Status:
Offline
|
|
Originally posted by Angus_D:
Yeah, I noticed adhamh was doing some mono-related stuff. However I'm pretty sure he's doing it for his own reasons, not with the backings of Apple.
mono != microsoft
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Sep 2000
Location: Edmond, OK USA
Status:
Offline
|
|
Originally posted by Catfish_Man:
Certainly they would never do something like make it so that only one app (Dock.app) can modify windows of other applications...
Or have the window transform matrix be accessed only by private APIs...
I would definitely expect both Apple and MS to be using any tricks they can find to make stuff run faster.
All seriousness aside, you have to admit there is a difference between using undocumented/unstable APIs (as in IOKit, The Dock, etc) because they are not ready to be mainstream, versus MS using features that get documented only much later to achieve a feature gap between apps like Office/Explorer and third party counterparts.
I use products by both vendors - and am a zealot of neither - but Microsofts actions are more often dubious then Apples are.
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Sep 2000
Location: Edmond, OK USA
Status:
Offline
|
|
Originally posted by barbro:
I thought you were suggesting that c# was faster cos microsoft use lots of nasty undocumented hooks... as far as i know they just use all the standard documented win32 calls. So if you wanted to reimplement c# for windows (in theory) you could make it as fast as the MS implementation. Not that microsoft is above such practices, but i don't think they use them here!
SUN chose to design a VM that could perform well on any OS in nearly any environment (Desktop/Server/Palm/Cell/Smart Card/Ring), whereas MS, from what I have heard, designed their runtime specifically around the Win32 design. SUN made sacrifices for portability - MS was out to make a premium platform on top of Windows.
|
|
|
|
|
|
|
|
|
Addicted to MacNN
Join Date: Mar 2000
Location: London, UK
Status:
Offline
|
|
Originally posted by Theodour:
mono != microsoft
Yes, I am perfectly aware of that. What's your point?
|
|
|
|
|
|
|
|
|
Addicted to MacNN
Join Date: Mar 2000
Location: London, UK
Status:
Offline
|
|
Originally posted by absmiths:
All seriousness aside, you have to admit there is a difference between using undocumented/unstable APIs (as in IOKit, The Dock, etc)
IOKit is perfectly documented and stable. I don't know what you mean by "the Dock API", as there are perfectly documented and stable APIs for interacting with the Dock (although the Dock does itself use private routines to do some of the things it does).
|
|
|
|
|
|
|
|
|
Mac Elite
Join Date: Sep 2000
Location: Edmond, OK USA
Status:
Offline
|
|
Originally posted by Angus_D:
IOKit is perfectly documented and stable. I don't know what you mean by "the Dock API", as there are perfectly documented and stable APIs for interacting with the Dock (although the Dock does itself use private routines to do some of the things it does).
I was making a historical reference to when IOKit was being created by Apple back in the 10.0? days and everyone complained because CD-Rs didn't work, no Toast, etc. Apple didn't document the kit initially because it was too unstable (change-wise, not runtime) but then they published it when it was complete.
I didn't mention a "Dock API" - I was referring to the private API the Dock uses as mentioned above, not the Dock itself.
|
|
|
|
|
|
|
|
|
Dedicated MacNNer
Join Date: May 2004
Status:
Offline
|
|
|
|
|
|
|
|
|
|
|
Mac Enthusiast
Join Date: Apr 2003
Location: manticore or people's republic of haven
Status:
Offline
|
|
so with this i can code at home (my mac) and school (pc) for c# and have it portable? minus GUI code of course?. . .unless i just want to code it and not compile/run on both platforms?
nick
|
some people are like slinkys: they don't do much, but are fun to push down stairs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Forum Rules
|
|
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is Off
|
|
|
|
|
|
|
|
|
|
|
|