J Sharp
From Wikipedia, the free encyclopedia
- The correct title of this article is J#. The substitution or omission of a # sign is because of technical restrictions.
The J# (pronounced 'J-sharp') programming language is a transitional language for programmers of Sun's Java and Microsoft's J++ languages, so they may use their existing knowledge, and applications on Microsoft's .NET platform. J# can work with java bytecode as well as source so it can be used to transition applications that use third party libraries even if their original source is unavailable. It is notable for being developed outside the US. It was developed by Hyderabad-based Microsoft India Development Center at HITEC City in India. The success of this software project led to Microsoft pouring many millions into expanding their Indian facilities.
If one wanted to run Java code for the Java framework in the .NET framework, one would want to look at IKVM. While J# provides a Java syntax on top of .NET's framework, IKVM is effectively a Java framework running on top of .NET's framework. J# is generally not considered to be a language on par with C# or VB.Net, and does not have the same level of support, samples, or updates as the other languages do. This fact notwithstanding, J# is a usable .Net language and has access to all the CLR features.
[edit] The J# Editor
The J# editor can only be used to create binary based applets and applications for Windows.
It can be used to make executable applications, console applications and classes (*.dll). All Visual J# java based files ( before compiling ) are .jsl ( Java Source Language).
[edit] Fundamental differences between J# and Java
Java and J# use the same general syntax but there are non-Java conventions in J# to support the .Net environment. For example, to use .Net "properties" with a standard Java bean class (the Transfer Object pattern), one must prefix get... and set... methods with the Javadoc-like annotation:
/** @beanproperty */
and must change the corresponding private variable name to be different than the suffix of the get.../set... names.
J# does not compile Java-language source code to Java bytecode (.class files), does not support Java applet development or the ability to host applets in a web browser (though .net does have its own system for browser embedding so presumablly a wrapper could be written). Finally, Java Native Interface (JNI) and Raw Native Interface (RNI) are substituted with P/Invoke, J# does not support Remote Method Invocation (RMI).