I'm kind of new to language development, and have wondered how names are usually chosen for different programming languages, like Cs. C, C++, C#, then F#, and even J#. I've been developing a new language which is dynamic and cross-platform, and have been considering either calling it XVAR (since it runs on any platform, including WP7, ZuneHD, Windows, and Linux), or B♭ (for the sake of consistency).
The syntax of a general program to store the operating system architecture in a variable and print it are as follows:
callnative RoutedCommands getArchitecture null test
callnative RoutedCommands print test
Optional, deletes variable test from system memory. However, it would be deleted anyways, because the virtual machine terminates at the end of the program execution.
When I execute the above code, I get the following output: Microsoft Windows NT 6.1.7600.0
The new language is a managed language, similar to Java or .NET, but does NOT have a garbage collector like .NET. When a variable is created, it will not be removed from RAM until delete is called on it. It features different levels of security, such as Trusted, Intermediate, and VirtualOnly. These security levels indicate the following things in a program:
The program's ability to call into native libraries
The program's level of access to the filesystem. Programs running in a VirtualOnly machine will only have accessed to a 'sandboxed' filesystem, similar to the way the Windows Phone 7 works.
Various library capabilities which haven't been determined yet.
Objects from outside a virtual machine instance (host machine) can be passed into the virtual environment, overriding any security settings defined by VM access policies. However; if these objects are 'delete'd, these additional priveledges are lost.
Native system libraries transferred to a Trusted VM must be passed in at initialization of the VM; not afterwards.
Native libraries may NOT be accessed in a Intermediate or VirtualOnly machine. Native calls can only be made if an object is passed into the program from native code at any time.
So my question is; based off of this information, what should the language be called, and WHY?
You should definitely not call it B flat because everyone would have a brutal time typing it out. C# was bad enough for that. Also, "flat" just sounds bad. I also wouldn't name it C anything because it doesn't look anything like C, and using C in the name implies that the syntax looks something like C and is derived from it.
As for how names are found ... well, I know C# was picked because it's derived from C++ syntax, C+++ is just too many +'s but # looks like a bunch of pluses put together, 4 of course, and that's close enough to emphasize that C# is an evolution of C++ in a sense, but quite different).
F# - F obviously F stands for Functional. They didn't really need the #, but there's already an F - a subset of Fortran, so the # distinguishes it from F and also hints that it's a .NET language, because of C#. Having a musical connotation in .NET languages kind of ties things together. I always wondered why they didn't call VB.NET, VB#. Actually they could drop the V(isual) altogether ... it's kind of lost it's purpose considering that many languages have drag and drop designer based IDEs now.
H, N, O, P, U, V, W, and X are the only single-letter names not listed in Wikipedia. P would be too funny to use in conversation: "I wrote it in P". In general I don't think single letter names are a great idea nowadays.
You should consider what you would find if you tried a Google search ... I heard the creator of Clojure said he picked the name because it sounds like closure and nothing came up in Google when he searched for that. If you search for XVAR now, you see the domain name is taken and there are some technical references related to Cisco, and other various results.
I can't believe there's no language called Babbage.
EDIT: There is a language called Babbage ... it's not in the Wikipedia list referenced above, but is present in Wikipedia: here. (Update: I've added it to the list of programming languages page.)
I'll consider using CPDL, XVAR, of Geoffrey (if someone can explain where that one came from).
By the way; I got this to enable Application Streaming on WP7! Re-wrote the bytecode interpreter in C# and it runs nicely. Streams XVAR/Geoffrey/CPDL binaries over the Internet. Lots of 'uggly' .NET reflection involved though.....
Also; seems I can't edit/post comments on Google Chrome! The browser locks up while I'm typing! Has anyone else had this problem? It's sure annoying. I'm using the Dev channel of Google Chrome, and am now using Internet Explorer 9 instead (which seems to be a LOT faster than older versions of IE, but I don't like the cross-site scripting 'correction' feature that it offers. Some sites might actually WANT cross-site scripting for demonstration purposes/security lectures/really odd bulletin boards/etc).
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.