I saw that Ruby uses the $-prefix for global variables. Would you like to have the $-prefix as a synonym for global.?
I don't know how often this specific feature would be used, but in general, I would tend to not offer everything in multiple variations only to make everyone happy. It may easily cause confusion, if it's not clear that there are no differences.
Should it be possible that classes have private, or even protected members?
What about virtual methods? (class inheritance is already planned)
This depends on how complex you want the language to be. Should it be a simple script language for configurations and AI scripts or similar? Or do you want a full-fledged interpreted language with OOP language features?
I personally would keep things simple for the moment, and make sure they run stable, bug-free and efficient. You can still add more features later. But for complex OOP designs, statically typed languages scale better -- while script languages are useful to manage the dynamic parts, or configurations.
Would you prefer the last expression of a function always being the default return value, or would you only allow explicit return values with the return keyword?
What if there are multiple places to leave a function? I would prefer return statements.
What do you think about "everything is an expression"? For example, should this be possible?: x = if y > 0 then true else false
Basically an interesting idea, but can it be applied to everything? What's the expression of a loop? Of a function call that returns nothing? In this specific case, you could also use something like
operator?: What do you think about the idea, that any number of parameters can be passed to a function, no matter how many are specified? Non-passed parameters are initialized as nil (or their default value).
You lose type safety by doing so and introduce the need to check for validity of function parameters. However, there could be a way to pass multiple parameters to functions (in an array/list or something).
When passing more parameters to a function as specified, how would you like to access the additional parameters? (compare with vargs and printf-like functions in C)
As stated, a list or something similar might be the way. Do you have such a data structure which is built-in to your language?
In syntax, while-loops look like if-loops, just with a different keywords. Which other loops would you like to have (such as for), and how to design it?
If-statements are no loops, they are executed at most once. The for loop should definitely be available, its design depends on other language features. Do you have something like intervals or ranges?
Also, a foreach loop would be very handy.
What do you think about the distinction between Integer and Decimal in my language? Types are dynamic, though.
The distinction is a good idea, it allows to check more easily for valid index access, for example.
What should count as "false"? Only nil and false? Or also 0? What about "empty" classes and arrays?
What does "count as false" mean? Inside if statements? What I wouldn't do is the ambiguity that
if (xy) is true if xy is valid or true. I would allow only boolean statements in conditions, and provide something else to check for the existence or validity of a variable, maybe an additional operator like
if (#xy).
Do you differ between existence (variable has been assigned a value) and validity (variable is not nil)? If so, is it possible to "undeclare"/delete a variable, such that it becomes inexistent?