Reputation: 331350
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?
Upvotes: 6
Views: 16840
Reputation: 6492
C# is also a very "flexible" language. If by "Low Level Programming" you mean pointer manipulation, then you can do the same in C#.
For people who want to do "low level" work then C# allows you to do so. But if you don't want to get in to the "low level" stuff, you can do the same without bothering about unsafe
keyword. Many newbies don't even know about the /unsafe option to compile C# code.
According to wikipedia:-
C# is intended to be suitable for writing applications for both hosted and embedded systems, ranging from the very large that use sophisticated operating systems, down to the very small having dedicated functions.
I think the above statement pretty much sums up whether C# is a "high" level or "low" level language.
Upvotes: 0
Reputation: 2731
"A programming language is low level when its programs require attention to the irrelevant." --Alan Perlis
Upvotes: 10
Reputation: 19171
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.
Upvotes: 1
Reputation: 146
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
Upvotes: 12
Reputation: 62789
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!
Upvotes: 3
Reputation: 5121
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.
Upvotes: 2
Reputation: 75949
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.
Upvotes: 3
Reputation: 5078
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.
Upvotes: 1
Reputation: 7309
Um, yes, it is a high-level language. And you can remove the subjective tag. There's nothing subjective about it.
Upvotes: 0
Reputation: 20802
Define a high level language? When C was created it was considered a high level language because it could be compiled on multiple architectures
Upvotes: 6
Reputation: 124335
Yes, it is high-level. Very. You are the only one who recognizes 'medium-level language' as a term. :)
Upvotes: 17