so, the idea here is basically, thoughts for what a person might want in an "ideal" programming language.
granted, some limits may be set, as what is ideal for one person may not be ideal for another.
so, for example, a few general thoughts:
mostly a "fairly generic" syntax, like say a mixture of C, C++, Java, and C# syntax;
can be either compiled to native, or compiled to bytecode and run in a VM;
should have easy access to existing C (and ideally also C++) libraries;
should have some built in mechanisms for internal security and sandboxing (pieces of code within the program can be run with reduced rights, ...);
should have the ability to load bytecode and source programs at run-time, accept dynamically created bytecode, and support an "eval" mechanism;
probably includes optional variant and auto-typing as well (variant-typing being dynamically-typed with optional type-inference, and auto-typing mandating that only a single type be used);
stuff should be portable between OS's and CPU architectures;
...
more specific thoughts:
may use a Java-like class declaration syntax (and probably Single Inheritence + Interfaces);
may use a C#-like package/namespace system, and allow more free-form contents declared in source files;
uses a C#-like parsing strategy (mostly avoids the issues of ordering and context dependence from C and C++, and doesn't depend on a few of the "tricks" used in parsing Java, *1);
probably includes a few other features like in C#: pointers, references, structs, properties, operator overloading, ... (*2)
interfaces likely support default methods and fields (*2);
probably uses more of a "nearly everything is an expression" syntax design (*3);
...
*1: C# basically defines the syntax in terms of more rigid rules which don't depend on declaration context (like C or C++) or on external context (Java).
*2: pointers can be made "safer" by supporting implicit bounds-checking, and possibly by placing some limits on allowed pointer type conversions. in most cases, this can be made fairly invisible to code using the pointers.
other features would likely be similar to their analogues in C#, though a property syntax more like AS3's could be considered (slightly less funky than the C# property syntax).
*3: a default method allows a method implementation to be provided in an interface, and a default field would allow field declarations within an interface. in effect this makes an interface more analogous to an "abstract base class".
*4: basically, like C, but possibly taken a little further. many statements are syntactically actually expressions, just put on their own lines. could possibly also consider adding the concept of tail-calls.
probably the "landscape" it would live in would build directly on top of the C landscape, with what exists as the "class library" existing to some extent as wrapper libraries. most C API wrapping can be done fairly automatically by tools, allowing C headers/libraries to be made available in a form resembling packages (or namespaces).
in my own language "BGBScript" I had called this concept "native packages" and "native import", where the idea was to allow packages to exist which directly represented parts of the C landscape, and could be used for importing/exporting to/from C land. most of the import/export work can be handled fairly automatically by batch-tools (basically, say, you make OpenGL available by, say, invoking a tool and telling it to use "opengl32.dll" and "GL/gl.h" and also give a few other settings, and it spits out any wrapper code and metadata). (a drawback is as-is, separate tools are used for importing/exporting, whereas ideally a single code could handle both at once).
there is a possible choice between "package ... { import ...; ...}" and "namespace ... { using ...; ...}", but this is more primarily a syntactic issue (both would be functionally equivalent).
thoughts?...