I have made an easy programming language, which is not BASIC, but has some similarities with the old home computer BASIC variants. Variables don't have to be declared, you can draw on the screen with simple commands, you don't have to install anything and you can start right away, etc.
I was just playing with EasyLang the other day! Here are my initial thoughts after playing with it for half an hour or so. An intermediate to experienced programmer will have no problem understanding it. But more documentation may be in order for the complete beginner who may not understand syntactic sugars such as '+=, -=, *=... My 13-year old son is learning Python and Lua and he could make out most of the syntax. Of course, he's not used to seeing 'end' to delineate blocks of code like in Basic (eg. if end, while end (wend) as well as periods '.'
EasyLang feels like a blend between Basic and Python. It appears to be indentation-based like Python or at least the 'IDE' autocorrects any whitespaces I added to the sample code. So it appears EasyLang uses both indentation to define blocks of code as well as keywords/chars like 'end' and '.'
I really like the look of EasyLang, the syntax is terse (like replacing 'print' with 'pr', but unfortunately it also appears to lack one feature that was noticeable right away to my son and that's the input-prompt function found in both Python and most Basic variations.
age = input("How old are you? ") # Python
input "How old are you?", age # Basic
It appears I have to create two statements in EasyLang. I know some languages will allow you to place two statements on one line using a delimiter such as a colon ':' or such, but I could not find one that would work. So two separate statements it is:
pr "How old are you? "
age = number input
pr "So you are " & age & " years old."
Possible future features I might like to see:
String interpolation such as:
pr $"So you are {age} years old."
And it would be helpful if the 'IDE" could display vertical lines to delineate blocks of code, especially when periods '.' are employed.
Otherwise, Great work! I'm always amazed at the talent required to create a new programming language. I will continue to explore EasyLang with my son. :)
Hi Gary! Thanks for your feedback and the really good suggestions. Multiple statements in one line are possible since today - just separate commands with a semicolon. Vertical lines to visually connect blocks would be cool, but now I have no idea if and how to do that. The IDE can automatically correct whitespace, since blocks are terminated with 'end' or '.'. I am looking forward to further feedback from you, also by mail.
Comments
I have made an easy programming language, which is not BASIC, but has some similarities with the old home computer BASIC variants. Variables don't have to be declared, you can draw on the screen with simple commands, you don't have to install anything and you can start right away, etc.
https://easylang.online/ide/
I was just playing with EasyLang the other day! Here are my initial thoughts after playing with it for half an hour or so. An intermediate to experienced programmer will have no problem understanding it. But more documentation may be in order for the complete beginner who may not understand syntactic sugars such as '+=, -=, *=... My 13-year old son is learning Python and Lua and he could make out most of the syntax. Of course, he's not used to seeing 'end' to delineate blocks of code like in Basic (eg. if end, while end (wend) as well as periods '.'
EasyLang feels like a blend between Basic and Python. It appears to be indentation-based like Python or at least the 'IDE' autocorrects any whitespaces I added to the sample code. So it appears EasyLang uses both indentation to define blocks of code as well as keywords/chars like 'end' and '.'
I really like the look of EasyLang, the syntax is terse (like replacing 'print' with 'pr', but unfortunately it also appears to lack one feature that was noticeable right away to my son and that's the input-prompt function found in both Python and most Basic variations.
age = input("How old are you? ") # Python
input "How old are you?", age # Basic
It appears I have to create two statements in EasyLang. I know some languages will allow you to place two statements on one line using a delimiter such as a colon ':' or such, but I could not find one that would work. So two separate statements it is:
pr "How old are you? "
age = number input
pr "So you are " & age & " years old."
Possible future features I might like to see: String interpolation such as: pr $"So you are {age} years old."
And it would be helpful if the 'IDE" could display vertical lines to delineate blocks of code, especially when periods '.' are employed.
Otherwise, Great work! I'm always amazed at the talent required to create a new programming language. I will continue to explore EasyLang with my son. :)
Cheers,
Gary
Hi Gary! Thanks for your feedback and the really good suggestions. Multiple statements in one line are possible since today - just separate commands with a semicolon. Vertical lines to visually connect blocks would be cool, but now I have no idea if and how to do that. The IDE can automatically correct whitespace, since blocks are terminated with 'end' or '.'. I am looking forward to further feedback from you, also by mail.
Very cool language! Is it open source by any chance?
Thanks. I have just made it public.
https://github.com/chkas/easylang