J Sharp
Encyclopedia
Visual J# programming language
is a discontinued transitional language for programmers of Java
and Visual J++
languages, so they may use their existing knowledge and applications on .NET Framework
.
In programming, 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 code
is unavailable. It was developed by the Hyderabad-based Microsoft India Development Center at HITEC City in India.
-like annotation:
...and change the corresponding private variable name to be different from the suffix of the getXxx/setXxx names.
J# does not compile Java-language source code to Java bytecode (.class files), and does not support Java applet
development or the ability to host applets directly in a web browser
, although it does provide a wrapper called Microsoft J# Browser Controls for hosting them as ActiveX
objects. Finally, Java Native Interface
(JNI) and Raw Native Interface (RNI) are substituted with P/Invoke
; J# does not support Remote Method Invocation (RMI).
J#'s interface to the .NET framework is solid, but not as seamless as C#. 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.
, 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 most of the Common Language Runtime
(CLR) features.
The Microsoft J# product team made two important announcements on the future of J# in January 2007:
A link to download Visual J# 2005 Express Edition is no longer available from Microsoft's website; however, the old link which was previously available is still valid.
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
is a discontinued transitional language for programmers of Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
and Visual J++
Visual J++
Visual J++ was Microsoft's specific implementation of Java. Syntax, keywords, and grammatical conventions were the same as Java's. Microsoft discontinued support of J++ in January 2004, replacing it to a certain extent with J# and C#....
languages, so they may use their existing knowledge and applications on .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
.
In programming, J# can work with Java bytecode
Java bytecode
Java bytecode is the form of instructions that the Java virtual machine executes. Each bytecode opcode is one byte in length, although some require parameters, resulting in some multi-byte instructions. Not all of the possible 256 opcodes are used. 51 are reserved for future use...
as well as source so it can be used to transition applications that use third-party libraries
Library (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....
even if their original source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
is unavailable. It was developed by the Hyderabad-based Microsoft India Development Center at HITEC City in India.
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 JavaBean class, it is necessary to prefix getXxx and setXxx methods with the JavadocJavadoc
Javadoc is a documentation generator from Sun Microsystems for generating API documentation in HTML format from Java source code.The "doc comments" format used by Javadoc is the de facto industry standard for documenting Java classes. Some IDEs, such as Netbeans and Eclipse automatically generate...
-like annotation:
...and change the corresponding private variable name to be different from the suffix of the getXxx/setXxx names.
J# does not compile Java-language source code to Java bytecode (.class files), and does not support Java applet
Java applet
A Java applet is an applet delivered to users in the form of Java bytecode. Java applets can run in a Web browser using a Java Virtual Machine , or in Sun's AppletViewer, a stand-alone tool for testing applets...
development or the ability to host applets directly in a web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
, although it does provide a wrapper called Microsoft J# Browser Controls for hosting them as ActiveX
ActiveX
ActiveX is a framework for defining reusable software components in a programming language-independent way. Software applications can then be composed from one or more of these components in order to provide their functionality....
objects. Finally, Java Native Interface
Java Native Interface
The Java Native Interface is a programming framework that enables Java code running in a Java Virtual Machine to call and to be called by native applications and libraries written in other languages such as C, C++ and assembly.-Purpose and features:JNI enables one to write native methods to...
(JNI) and Raw Native Interface (RNI) are substituted with P/Invoke
Platform Invocation Services
Platform Invocation Services, commonly referred to as P/Invoke, is a feature of Common Language Infrastructure implementations, like Microsoft's Common Language Runtime, that enables managed code to call native code.-Explicit:...
; J# does not support Remote Method Invocation (RMI).
J#'s interface to the .NET framework is solid, but not as seamless as C#. 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.
Future of J#
J# is generally not considered to be a language on par with C# or Visual Basic .NETVisual Basic .NET
Visual Basic .NET , is an object-oriented computer programming language that can be viewed as an evolution of the classic Visual Basic , which is implemented on the .NET Framework...
, 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 most of the Common Language Runtime
Common Language Runtime
The Common Language Runtime is the virtual machine component of Microsoft's .NET framework and is responsible for managing the execution of .NET programs. In a process known as just-in-time compilation, the CLR compiles the intermediate language code known as CIL into the machine instructions...
(CLR) features.
The Microsoft J# product team made two important announcements on the future of J# in January 2007:
- That Microsoft would produce an updated version of Visual J# 2.0, including a 64-bit redistributable version, called J# 2.0 Second Edition to meet customer demand for 64-bit runtime support. Microsoft released Visual J# 2.0 Second Edition on 18 May 2007.
- Retirement of the J# language and Java Language Conversion Assistant from future versions of Visual Studio, since the existing J# feature set largely meets customer needs and usage of J# is declining. The last version shipping with Visual Studio 2005 will be supported until 2015 as per the product life-cycle strategy.
- Calling J# code from .NET 4.0 code will fail unless vjsnativ.dll is pre-loaded..
A link to download Visual J# 2005 Express Edition is no longer available from Microsoft's website; however, the old link which was previously available is still valid.
External links
- Visual J# Design Choices An interview with Pratap Lakshman