I have some ideas for a new .NET language, but I'm not sure if it's worth developing. I think for a new language to really take off, it needs supporting tools, like an IDE. I think integration with Visual Studio is a great advantage. So I have some questions. Is it really worth it? What features would you like to see in a new language? What do you not like in existing languages? Does anyone have experience with integrating a new language with Visual Studio? Any ideas for naming the language?
TommyCarlier wrote:I have some ideas for a new .NET language, but I'm not sure if it's worth developing. I think for a new language to really take off, it needs supporting tools, like an IDE. I think integration with Visual Studio is a great advantage. So I have some questions. Is it really worth it? What features would you like to see in a new language? What do you not like in existing languages? Does anyone have experience with integrating a new language with Visual Studio?
How would you pull it off? or where would you get the information to convert from your code to IL and other things needed for a dot net language.
What is the point of your language?
Any ideas for naming the language?
Thats your problem?
How I would pull it off? That's technical details (writing a parser, writing a compiler using reflection/emit, ...). I'm not worried about the technical side (yet). The point of the language? What's the point of VB or C#? To make it easier to write applications. The naming of the language is not the main problem, that was just a question I added later. That's of course not the most important issue.
TommyCarlier wrote:What's the point of VB or C#? To make it easier to write applications.
Exactly, a broader type of application. but if we look at LISP as an example it was not made for broad use and creation of general applications but for easier language parsing.
are you trying to create another C# or VB?
or does your language have a special purpose like LISP?
It's supposed to be a broad range language, inspired by other languages, but designed from scratch. C# is nice, but I think its syntax looks too much like Java and C++. Not that that's a bad thing, but some features about it I don't like. I also want the language to have more than just some pretty syntax.
there was a session in PDC titled "Compiler in one Hour" . check its video for the basics in developing for a language in .net . it will be usefull in learning the internals like compilers, parsers etc. but in order to make a new language that should be used by a large no of people it needs some thing different and useful enough to migrate from their current language and learn a new one . thats difficult.
Thank you, Shiv. I just watched the video of that PDC session, and it's very inspiring. Shmuelpro, watch the video if you want to see how the technical part of a compiler can be implemented. Fascinating stuff.
I have ideas more for a framework...
I would like to see 2 types of frameworks:
First, a data-oriented language that deals specificly with manipulating large datasets. This would basically work like LINQ, dynamically creating strongly typed classes for access to any database connection. Yes, Typed Datasets already do this; however, they would be dynamic and always automatically reflect the data format that is in the database.
The primary purpose of the framework would be to manipulate data that is in XML or SQL Datasources beyond what any SQL query could do without needing to understand Stored Procedures. In the enviornment you would specific one or more various datasources. The schema's of the datasources would then be reflected in the .net framework so IntelliSense would work when you're writing the data scripts. Finally, you could run the scripts and manipulate whatever datasource you want to manipulate. The scripts would be compiled of course.
The second framework would be something like Ruby on Rails for the .net framework... another "Convention over Configuration" framework. If you haven't used Rails yet this being forced to build your application a certain way is really nice. It seems like its very limiting at first but it actually makes developing easier, you don't have to think too much about how to build/structure the application correctly. The ASP.net web projects are more difficult to code MVC style; you have to think more about it anyway.
There are of course plenty of special-purpose .NET languages offered by third-party vendors. Here are just two examples. So it is more nearly a question of, "Do we need a new language?", rather than "Do we need a new .NET language?" If the language itself fits a need, then it can be integrated into .NET - sort of. Note that even an extremely popular language such as C++ has to be extensively modified (first as "Managed C++" and then as "C++/CLI") to fit its square peg into .NET's round holes, since the language standard and the .NET Framework have totally different ideas about memory management. If you are designing a language specifically for .NET, of course, that wouldn't be a problem. But C# is already a language written specifically for .NET, so why not just develop an alternate syntax for C#? (Yeah, that's been done too - it's called VB.NET!)