C# Scripting or Programming

Started by
13 comments, last by DvDmanDT 10 years, 2 months ago

Also, (even though they very likely could) unity doesn't Actually use C#... it uses Mono-c# which tries to be as identical to c# as possible (with the advantage of being cross-platform)... but technically works a bit differently deep under the hood.

I'm sorry to nitpick, but C# is a language and while there are two notable compilers for it (MS VC# and Mono MCS), the language is the same. What you probably mean is that it doesn't use .NET but instead uses the Mono Framework, which implements the same standards and therefore _should_ behave more or less identical to .NET for all standard libraries but ships with a different set of non-standard libraries and services. Just because it should behave the same doesn't mean it does though, which is probably why they stick with Mono on Windows even though they could have used .NET.

Advertisement

I'm sorry to disagree with you, C# is normally associated with C#.net and the MS VC# compiler... leaving the .net off is pretty standard in the industry and making special note that it is Mono C# using Mono MCS is standard. It's like when someone says they have an SQL server you don't ask them if they are using an MS SQL server or a MySQL server... MS SQL Server is assumed unless otherwise noted. Or when you say C++ you have to specify it's VC++ to indicate your using microsofts compiler or it'll be assumed to be gcc. Especially when C#.net with the MS VC# compiler are the tools used to set the standard.

Those are just YOUR assumptions. I would especially never assume any particular compiler when talking about C++, after having used nine different C++ compilers so far (DJGPP, Intel, Watcom, Borland, MSVC++, clang, SN Systems, gcc, and CodeWarrior).

I would wager that the first time someone experiences using multiple compilers or execution environments, they stop making such assumptions.

leaving the .net off is pretty standard in the industry and making special note that it is Mono C# using Mono MCS is standard. It's like when someone says they have an SQL server you don't ask them if they are using an MS SQL server or a MySQL server... MS SQL Server is assumed unless otherwise noted. Or when you say C++ you have to specify it's VC++ to indicate your using microsofts compiler or it'll be assumed to be gcc.

Those particular assumptions may be less common/popular than you seem to think; they're certainly not universal to the profession as a whole.

Taking a couple of specific examples, it would actually surprise me if a professional programmer assumed my C++ code was compiled with gcc simply because I hadn't mentioned Visual Studio; that's a completely alien assumption to me that I've never encountered. Depending on what sort of programming is being done, there are probably plenty of programmers who wouldn't assume gcc OR visual studio unless they were explicitly told so.

If someone wants me to work with an SQL server, asking whether they mean MS SQL, MySQL, or some other variant would be one of my first questions; and at least in my own experience, the answer often isn't MS.

unity doesn't Actually use C#... it uses Mono-c# which tries to be as identical to c# as possible

C# is a standardised language, and you're using the same language either way. While it may be noteworthy that Unity uses Mono rather than the .NET runtime, in my own personal experience most programmers would consider it to be incorrect to suggest that you're actually using a different language -- it's just a different implementation.

To reiterate the above, your own assumptions may be less universally accepted than you seem to think. smile.png

- Jason Astle-Adams

I'm sorry to disagree with you, C# is normally associated with C#.net and the MS VC# compiler... leaving the .net off is pretty standard in the industry and making special note that it is Mono C# using Mono MCS is standard. It's like when someone says they have an SQL server you don't ask them if they are using an MS SQL server or a MySQL server... MS SQL Server is assumed unless otherwise noted. Or when you say C++ you have to specify it's VC++ to indicate your using microsofts compiler or it'll be assumed to be gcc. Especially when C#.net with the MS VC# compiler are the tools used to set the standard.

SQL Server is a specific product by Microsoft. If someone talks about "an sql server" then I assume they are talking about a specific instance of MSSQL aka SQL Server. The more general term over here seems to be "SQL database" even though it's slightly weird/wrong. Perhaps "SQL solution" would be better..

As for C++, I assume VC++ on Windows and GCC on everything else, unless specified. This is _usually_ true in the fields I'm working in. For C++ though, there's a reason to distinguish between compilers however. They have different levels of standards conformance, shitloads of language extensions and very different performance characteristics (both for compilation and result).

For C#, I don't make any such assumptions mostly because it isn't (as) meaningful. You can switch out one compiler for the other without knowing it was done. You can compile with MCS and just attach to the exe from VS and debug it. VS probably can't even tell that it was compiled with MCS. The same way, you can use a VC# .exe on Mono without problems. The difference is not in the compilers but in the runtime.

This topic is closed to new replies.

Advertisement