GSharp Programming Language. A modern, simple, and accessible programming language for .NET.
I want to enable other developers to benefit from the .NET framework without necessarily having to learn C#. In particular, I want to ensure new developers and developers who find C#'s learning curve a bit steep to be able to use .NET. I want VB.NET developers and Python developers to find a language that speaks to them as well. I want non-English speakers to have access to powerful libraries and technologies in .NET. In short, I want simplicity and productivity at the hand of everyone.
I want a simple, concise, productive programming language targetting .NET based on the good lessons learned from Go, Kotlin, as well as other programming languages. Modern languages such as Go give the user a simple approach to programming while also providing powerful foundations to deliver applications in all forms and factors.
Here's a few relevant links to bring this point home:
- Classes versus Data Structures http://blog.cleancoder.com/uncle-bob/2019/06/16/ObjectsAndDataStructures.html
- Why OO sucks http://www.cs.otago.ac.nz/staffpriv/ok/Joe-Hates-OO.htm
- Why I prefer go over Java or Python https://yourbasic.org/golang/advantages-over-java-python/
- Go is in a trajectory to become the next enterprise language https://hackernoon.com/go-is-on-a-trajectory-to-become-the-next-enterprise-programming-language-3b75d70544e
Go is also finding its way into unexpected places with projects such as TinyGo https://tinygo.org/.
Kotlin, on the other hand, is gaining popularity as a language targetting the JVM in replacement of Java. Kotlin provides a more elegant and smaller language to efficiently write code that runs on the JVM and is interoperable with Java language code. This allows developers to not have to use the Java language while still leveraging the power of the JVM and the large body of libraries available.
GSharp is born with a similar mindset to Kotlin and with a similar philosophy to Go. GSharp is intended to start small, slowly lighting up application development features such as consuming libraries written in C#, while keeping the language simple.
Note that I'm not thinking about attracting current Go developers necessarily. I am a Go developer myself and I will continue using Go where it's appropriate. GSharp doesn't intend to take developers away from Go, although Go skills should be transferable to GSharp development: grammar, channels, goroutines, etc.
Contributions to this project are welcome. Before you submit a pull request, open an issue to discuss your idea, the problem it solves, the desired implementation and after that a PR can be considered. This should expedite the PR acceptance process.
The GSharp language takes its name from CSharp and Go, reflecting its roots and target (.NET). If there are any trademark issues with calling it that way I'm happy to also call it AFlat.
I also wouldn't mind calling it Festivus
(a programming language for the restofus).