views:

892

answers:

11

Is C# a high level language? I see it as more like medium level, but I am still unsure about this. Would you consider it as high level as some of the popular scripting languages?

Or does it accommodate more than one level?

+4  A: 

Yes C# is considered a high level language.

zodeus
+12  A: 

Yes, it is high-level. Very. You are the only one who recognizes 'medium-level language' as a term. :)

chaos
lol, you are probably right.
Joan Venge
"Medium-level" isn't a bad term, though. You could call C or C++, languages with direct memory allocation, but that are hardware-independent, "medium-level" and it would be fairly appropriate, IMHO.
Chris Lutz
Mmkay, except for the part where it's completely contrary to convention, so no one else would know what you're talking about.
chaos
Yeah, well, it's still not a bad idea.
Chris Lutz
Where's Alan Kay when you need him?
GateKiller
I think Chris Lutz has a good point, if you are going to label a language as a medium level language the c and c++ type languages would fit that, but I have to say chaos has it right, with out defining what you mean the discussion is pointless
Bob The Janitor
Yeah I was thinking in an absolute way.
Joan Venge
"‘MLL’ stands for ‘Medium-Level Language’" has been in the Jargon File for years.
Ken
I guess I was wrong, then. It's Joan and Eric Raymond that recognize the term. But *he* hardly counts.
chaos
+4  A: 

Define a high level language? When C was created it was considered a high level language because it could be compiled on multiple architectures

Bob The Janitor
C is still a high-level language... Nothing changed.
Juliano
@Juliano, But it's lower level than C#, for example. So wouldn't it be a medium-level language? Or are there only two tiers?
strager
A: 

Um, yes, it is a high-level language. And you can remove the subjective tag. There's nothing subjective about it.

Kevin
You have enough rep to retag.
chaos
+1  A: 

I would personally say that it has a high level of abstraction. A lot of complicated matters are handled by the .NET framework unlike C or C++ where you are responsible for almost everything that happens.

GateKiller
+1  A: 

C# is the very much so a high level language and is more developed than most scripting languages. As far as I've ever learned, there is no such thing as a medium level language and the ones considered low level these days is pretty much any form of assembly or binary code.

achinda99
+2  A: 

C# allows use of pointers, is compiled just in time but sometimes ahead of time. Compared to a lot of other languages I use even though it allows very rapid software development it is slightly lower and closer to the hardware which comes to great advantage.

Tim Matthews
+2  A: 

In consideration of Bob The Janitor's post:

Define a high level language? When C was created it was considered a high level language because it could be compiled on multiple architectures

I'd say it's moving from the "High" spot just like Java is.

Java's considered the assembly language of the JVM at this point. New languages like Scala and Ruby seem to offer quite a variety that Java and C# are not going to easily match.

Don't get me wrong, I happen to think that Java/C# are at the perfect level--I'm just saying, as with C, these languages have a fairly set definition/feature set whereas "Features" will continue to be invented and implemented in newer languages.

If you don't believe me, have a look at Scala.. a completely different monster!

Bill K
+4  A: 

From what I have read from various sources, C# is considered a 3GL language. A higher level language 4GL would look more like natural language and a 5GL language is about constraints based programming (artificial intelligence) where you define the constraints of a problem but leave it up to the computer to solve it.

If you judge the C# language by itself (not considering the .Net framework), it is not a huge departure from other C based languages so in that sense the 3GL definition fits.

Here is a link to wikipedia for reference:

http://en.wikipedia.org/wiki/Third-generation_programming_language

Brian
This is a pretty good reply.
Joan Venge
This is referring to the time period, not how deep the language goes, which is what high level means
TStamper
A: 

In 20 years people will probably not consider it a high level language, but at the moment it certainly is. It's all relative to your basis of comparison. Compared to Assembler, it is a very high level language. Compared to a hypothetical computer program that writes the code for you (as Brian called a 5GL), then I guess it isn't.

Jess
+1  A: 

"A programming language is low level when its programs require attention to the irrelevant." --Alan Perlis

Ken
Wow, this is a great quote I will remember. Thanks.
Joan Venge