| Visual J# | |
|---|---|
| Paradigm | Object-oriented,structured,imperative |
| Developer | Microsoft |
| First appeared | July 1, 2002; 23 years ago (2002-07-01) |
| Final release | v2.0 Second Edition / 18 May 2007; 18 years ago (2007-05-18) |
| Platform | .NET Framework |
| Website | msdn2 |
| Influenced by | |
| Java andVisual J++ | |
Visual J# (pronounced "jay-sharp") is a discontinued implementation of the J#programming language that was a transitional language for programmers ofJava andVisual J++ languages, so they could use their existing knowledge and applications with the.NET Framework.[1][2] It was introduced in 2002[3] and discontinued in 2007, with support for the final release of the product continuing until October 2017.
J# worked withJava bytecode as well as source so it could be used to transition applications that used third-partylibraries, even if their originalsource code was unavailable.[citation needed] It was developed by theHyderabad-basedMicrosoft India Development Center at HITEC City in India.[4][5]
The implementation of Java inVisual J++, MSJVM, did not passSun's compliance tests leading to a lawsuit from Sun, Java's creator, and creation of J#. Microsoft ceased such support for the MSJVM on December 31, 2007 (later Oracle bought Sun, and with it Java and its trademarks). Microsoft however, officially started distributing Java again in 2021 (though not bundled with Windows or its web browsers as before with J++), i.e. their build of Oracle's OpenJDK,[6] which Microsoft plans to support for at least 6 years, for LTS versions, i.e. to September 2027 for Java 17.
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 standardJavaBean class, it is necessary to prefix getter and setter methods with theJavadoc-like annotation:
/** @beanproperty */…and change the corresponding private variable name to be different from the suffix of the getXxx/setXxx names[citation needed].
J# does not compile Java-language source code to Java bytecode (.class files), and does not supportJava applet development or the ability to host applets directly in aweb browser, although it does provide a wrapper called Microsoft J# Browser Controls for hosting them asActiveX objects. Finally,Java Native Interface (JNI) andraw native interface (RNI) are substituted withP/Invoke; J# does not supportremote method invocation (RMI).[7]
InfoWorld said: "J#'s interface to the .NET framework is solid, but not as seamless asC#. In particular, J# code cannot define new .NET attributes, events, value types, or delegates. J# can make use of these language constructs if they are defined in an assembly written in another language, but its inability to define new ones limits J#'s reach and interoperability compared to other .NET languages."[8]
Contrariwise, Microsoft documentation for Visual Studio 2005 details the definition of .NET delegates,[9] events,[10] and value types[11] directly in J#.
In January 2007, Microsoft announced:[12]
The download of Visual J# 2005 Express Edition is no longer available from Microsoft's website.
Visual J# is out of support including the Visual J# 2.0 Redistributable Second Edition released in 2007, that was supported through to 2017 "(5 years mainstream and 5 years extended support) on EN-US locales."[15][16]
{{cite web}}: CS1 maint: bot: original URL status unknown (link){{cite web}}: CS1 maint: bot: original URL status unknown (link)