Recently I have been looking into a special need to create my own programming language. I have also studied the history of different languages and success and issues they are struggling and stuck with.
Here is my personal point of view on this:
Creating a Purely new Programming Language
The best available language is C\C++ for a cross platform development with different compilers and debuggers. If you are thinking of creating a remarkable new language, HOLD ON,
1- You need to create a compile to target X86, X64, and ARM etc
2- Compiler shall work on Windows, Linux and MAC etc...
3- You need to revisit the entire history of programming language in this case and you have to port all that stuff
4- You Need IDE, compiler
5- Debugger
6- UI components on different machines .... and on on on, so on
You can see the history, C# and D language were created almost the same time (1999-2000). C# have an unmatched success.
A new Programming Language Based on Another Language:
So, If you plan to create a new language, keep these things in mind:
1- If the language you create, and source code is translated in to C\C++ and then is compiled with C\C++ compiler, then no issues at all... You are good to go. You can integrate all previously developed source code and api... You will get a good success
2- Translate you code into any other language say (for example say java) that closely matches the new language. Then use the same compiler(Java Compile) to compile the source code.
In this case you inherit all the limitations by default.
3- Create a language that generates MSIL (Microsoft Intermediate Language) which is .NET IL. This way you can have you own syntax and style and stuff... and Compile in to .NET.
a- You can use the previously built .NET components.
b- Your components can be used in .NET.
c- You can access the C\C++ and COM as well using P-Invokes and COM interoperability
! This will work on Windows and in Limited way I guess on Linux with Mono.NET.
4- If the new language you creates; compile directly (instead of translating into C\C++, .NET or any other language) and you provide a good support for interoperability with System, hardware, and interoperability with C\C++ (dll). Then you are just ok... THIS is where I believe D language is.
But still along way to debuggers, cross platform compilation, Threading issues, a history still to walk through...
You have any feedback on these lines ... Please let me know.
Here is my personal point of view on this:
Creating a Purely new Programming Language
The best available language is C\C++ for a cross platform development with different compilers and debuggers. If you are thinking of creating a remarkable new language, HOLD ON,
1- You need to create a compile to target X86, X64, and ARM etc
2- Compiler shall work on Windows, Linux and MAC etc...
3- You need to revisit the entire history of programming language in this case and you have to port all that stuff
4- You Need IDE, compiler
5- Debugger
6- UI components on different machines .... and on on on, so on
You can see the history, C# and D language were created almost the same time (1999-2000). C# have an unmatched success.
A new Programming Language Based on Another Language:
So, If you plan to create a new language, keep these things in mind:
1- If the language you create, and source code is translated in to C\C++ and then is compiled with C\C++ compiler, then no issues at all... You are good to go. You can integrate all previously developed source code and api... You will get a good success
2- Translate you code into any other language say (for example say java) that closely matches the new language. Then use the same compiler(Java Compile) to compile the source code.
In this case you inherit all the limitations by default.
3- Create a language that generates MSIL (Microsoft Intermediate Language) which is .NET IL. This way you can have you own syntax and style and stuff... and Compile in to .NET.
a- You can use the previously built .NET components.
b- Your components can be used in .NET.
c- You can access the C\C++ and COM as well using P-Invokes and COM interoperability
! This will work on Windows and in Limited way I guess on Linux with Mono.NET.
4- If the new language you creates; compile directly (instead of translating into C\C++, .NET or any other language) and you provide a good support for interoperability with System, hardware, and interoperability with C\C++ (dll). Then you are just ok... THIS is where I believe D language is.
But still along way to debuggers, cross platform compilation, Threading issues, a history still to walk through...
You have any feedback on these lines ... Please let me know.
Comments