-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Broad Question: "What is C#" #11923
Comments
So you did a quick search and didn't find anything? it's odd because if you write C# you get to the wiki page. C# is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines. https://en.wikipedia.org/wiki/C_Sharp_(programming_language) |
Of course there is a text book definition of C# available. But Microsoft or more importantly the MS language design team didn't author that. The other descriptions i have posted were all taken from their respective language websites. The assumption being that the people in charge of those languages wrote them. That is what i'm trying to get at. |
The closest thing i could find to it was from dot.net stating the following: "The .NET Framework is a comprehensive programming model for building mobile, desktop and web applications that run on Windows." And ".NET Core and ASP.NET Core give you a blazing fast and modular platform for creating server applications that run on Windows, Linux and Mac." Perhaps C# doesn't have an identity distinct from .Net itself. |
Well the main problem is C# (and VB.NET) don't have a website or anything like that (yet) and that's a shame! maybe you can write an issue about it? and someone at Microsoft will do it! :) |
That's what they wrote here: C# (pronounced "C sharp") is a programming language that is designed for building a variety of applications that run on the .NET Framework. C# is simple, powerful, type-safe, and object-oriented. The many innovations in C# enable rapid application development while retaining the expressiveness and elegance of C-style languages. |
Ah! I think that comes close to answering my questions. I'll leave the issue open for a little while longer in case any team members have an additional opinion on it. Thanks! |
C# was created as primary language for NET, and NET was created as primary competition to Java. Because NET was closed and Windows-only, it failed to dethrone Java. Now this is changing, but there are much more competitors than Java. |
I propose this: "C# is a modern functional programming language with a syntax that is not insane". |
@dsaf yeah only it's not only functional, in fact it's actually object-oriented first, if it was functional first than we could have non-member functions etc.. Maybe it was sarcasm so in this case 👍 |
Declaring functions in the root namespace adds value? Otherwise static classes are same as modules in practice.
You get a little new piece of that "etc" with every new major version of C#. Which makes my proposed mission statement consistent with reality. |
@dsaf it's not about whether it adds value but about your statement that C# is a modern functional language! where in functional languages the notion of types is not mandatory that is the reason F# uses type inference so aggressively, so if you need to group your functions in a class and then create an instance of that class to use it then it is by definition object-oriented first so if anything C# is a modern, statically typed, object-oriented and a multi-paradigm language with robust functional capabilities. p.s. forgot to say that I agree with you on that static classes are just the same as modules but due to lack of aggressive type inference and lack of strong pattern matching focus on C# you can't really say that it is a functional language where these two components are vital to functional languages. btw, aggressive type inference was declined. |
Here si short answer |
That would read C plus plus plus plus. |
Haha... :D |
@richlander since we'd been talking about this earlier |
I'll reopen for a while to encourage some more comments |
@AlgorithmsAreCool C# is the language with no form or no style and no website (yet). 😆 |
@AlgorithmsAreCool @eyalsk Do you guys mind if I quote you in a book or an article ? |
I don't mind being quoted. Feel free. |
@prajaybasu I don't mind it. |
or put another way:
What is the mission statement of C#?
I did a quick google and couldn't find a real statement about what the language is supposed to be or the core principles guiding its growth. It cannot be everything to everyone, so who is the primary audience and what is the core goal of the language? I'm just curious what the language design team thinks of C# as. It would help me frame some of the proposed features I've seen here.
I guess my direct questions are :
- Does C# have a driving goal or identity?
- What are the core design goals of C#
- What are kinds of things C# is primarily intended for? Web sites? Apps? Data processing? All of these?
Some other popular languages
Python : "Python is a programming language that lets you work quickly and integrate systems more effectively."
Swift : "Swift. A modern programming language that is safe, fast, and interactive."
Swift (alternate) : "Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns."
Go : "Go is an open source programming language that makes it easy to build simple, reliable, and efficient software."
Rust : "Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety."
Haskell : "Haskell is an advanced purely-functional programming language. ... it allows rapid development of robust, concise, correct software."
F# : "F# is a mature, open source, cross-platform, functional-first programming language. It empowers users and organizations to tackle complex computing problems with simple, maintainable and robust code."
Java : "The Java™ Programming Language is a general-purpose, concurrent, strongly typed, class-based object-oriented language."
The text was updated successfully, but these errors were encountered: