Visual J Sharp

Last updated
Visual J#
Paradigm Object-oriented, structured, imperative
Developer Microsoft
First appearedJuly 1, 2002;21 years ago (2002-07-01)
Final release
v2.0 Second Edition / 18 May 2007;16 years ago (2007-05-18)
Platform .NET Framework
Website msdn2.microsoft.com/en-us/vjsharp/default.aspx
Influenced by
Java and Visual J++

Visual J# (pronounced "jay-sharp") is a discontinued implementation of the J# programming language that was a transitional language for programmers of Java and Visual 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.

Contents

J# worked with Java bytecode as well as source so it could be used to transition applications that used third-party libraries, even if their original source code was unavailable.[ citation needed ] It was developed by the Hyderabad-based Microsoft India Development Center at HITEC City in India. [4] [5]

The implementation of Java in Visual J++, MSJVM, did not pass Sun'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.

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 getter and setter methods with the Javadoc-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 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). [7]

InfoWorld said: "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." [8]

Contrariwise, Microsoft documentation for Visual Studio 2005 details the definition of .NET delegates, [9] events, [10] and value types [11] directly in J#.

History of 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]

See also

Related Research Articles

<span class="mw-page-title-main">Java applet</span> Small application written in Java

Java applets were small applications written in the Java programming language, or another programming language that compiles to Java bytecode, and delivered to users in the form of Java bytecode. The user launched the Java applet from a web page, and the applet was then executed within a Java virtual machine (JVM) in a process separate from the web browser itself. A Java applet could appear in a frame of the web page, a new application window, Sun's AppletViewer, or a stand-alone tool for testing applets.

<span class="mw-page-title-main">Java (programming language)</span> Object-oriented programming language

Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need to recompile. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but has fewer low-level facilities than either of them. The Java runtime provides dynamic capabilities that are typically not available in traditional compiled languages. As of 2019, Java was one of the most popular programming languages in use according to GitHub, particularly for client–server web applications, with a reported 9 million developers.

<span class="mw-page-title-main">Java virtual machine</span> Java Virtual machine

A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required in a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform.

Visual Basic for Applications (VBA) is an implementation of Microsoft's event-driven programming language Visual Basic 6.0 built into most desktop Microsoft Office applications. Although based on pre-.NET Visual Basic, which is no longer supported or updated by Microsoft, the VBA implementation in Office continues to be updated to support new Office features. VBA is used for professional and end-user development due to its perceived ease-of-use, Office's vast installed userbase, and extensive legacy in business.

<span class="mw-page-title-main">Visual Basic (.NET)</span> Object-oriented computer programming language

Visual Basic (VB), originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visual Basic language, the last version of which was Visual Basic 6.0. Although the ".NET" portion of the name was dropped in 2005, this article uses "Visual Basic [.NET]" to refer to all Visual Basic languages released since 2002, in order to distinguish between them and the classic Visual Basic. Along with C# and F#, it is one of the three main languages targeting the .NET ecosystem. Microsoft updated its VB language strategy on 6 February 2023, stating that VB is a stable language now and Microsoft will keep maintaining it.

JScript is Microsoft's legacy dialect of the ECMAScript standard that is used in Microsoft's Internet Explorer 11 and older.

<span class="mw-page-title-main">Microsoft Foundation Class Library</span> Windows OS object-oriented library

Microsoft Foundation Class Library (MFC) is a C++ object-oriented library for developing desktop applications for Windows.

<span class="mw-page-title-main">JCreator</span>

JCreator is a Java IDE created by Xinox Software. Its interface is similar to that of Microsoft's Visual Studio. Because it is programmed entirely in C++, Xinox Software has asserted that JCreator is faster than competing Java-based Java IDEs.

<span class="mw-page-title-main">Microsoft Visual Studio Express</span> Integrated development environment

Microsoft Visual Studio Express is a set of integrated development environments (IDEs) that Microsoft developed and released free of charge. They are function-limited version of the non-free Visual Studio and require mandatory registration. Express editions started with Visual Studio 2005.

Managed Extensions for C++ or Managed C++ is a now-deprecated set of language extensions for C++, including grammatical and syntactic extensions, keywords and attributes, to bring the C++ syntax and language to the .NET Framework. These extensions were created by Microsoft to allow C++ code to be targeted to the Common Language Runtime (CLR) in the form of managed code, as well as continue to interoperate with native code.

Visual J++ is Microsoft's discontinued implementation of Java. Syntax, keywords, and grammatical conventions were the same as Java's. It was introduced in 1996 and discontinued in January 2004, replaced to a certain extent by J# and C#.

<span class="mw-page-title-main">C Sharp (programming language)</span> Programming language

C# is a general-purpose high-level programming language supporting multiple paradigms. C# encompasses static typing, strong typing, lexically scoped, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.

In Microsoft Windows applications programming, OLE Automation is an inter-process communication mechanism created by Microsoft. It is based on a subset of Component Object Model (COM) that was intended for use by scripting languages – originally Visual Basic – but now is used by several languages on Windows. All automation objects are required to implement the IDispatch interface. It provides an infrastructure whereby applications called automation controllers can access and manipulate shared automation objects that are exported by other applications. It supersedes Dynamic Data Exchange (DDE), an older mechanism for applications to control one another. As with DDE, in OLE Automation the automation controller is the "client" and the application exporting the automation objects is the "server".

<span class="mw-page-title-main">Java (software platform)</span> Set of computer software and specifications

Java is a set of computer software and specifications developed by James Gosling at Sun Microsystems that provides a system for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages.

Comparison of the Java and .NET platforms.

Visual Studio Tools for Office (VSTO) is a set of development tools available in the form of a Visual Studio add-in and a runtime that allows Microsoft Office 2003 and later versions of Office applications to host the .NET Framework Common Language Runtime (CLR) to expose their functionality via .NET.

<span class="mw-page-title-main">Visual Studio</span> Code editor and IDE

Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such as Windows API, Windows Forms, Windows Presentation Foundation, Windows Store and Microsoft Silverlight. It can produce both native code and managed code.

The Microsoft Java Virtual Machine (MSJVM) is a discontinued proprietary Java virtual machine from Microsoft. It was first made available for Internet Explorer 3 so that users could run Java applets when browsing on the World Wide Web. It was the fastest Windows-based implementation of a Java virtual machine for the first two years after its release. Sun Microsystems, the creator of Java, sued Microsoft in October 1997 for incompletely implementing the Java 1.1 standard. It was also named in the United States v. Microsoft Corp. antitrust civil actions, as an implementation of Microsoft's "Embrace, extend and extinguish" strategy. In 2001, Microsoft settled the lawsuit with Sun and discontinued its Java implementation.

<span class="mw-page-title-main">.NET Framework</span> Software platform developed by Microsoft

The .NET Framework is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until being superseded by the cross-platform .NET project. It includes a large class library called Framework Class Library (FCL) and provides language interoperability across several programming languages. Programs written for .NET Framework execute in a software environment named the Common Language Runtime (CLR). The CLR is an application virtual machine that provides services such as security, memory management, and exception handling. As such, computer code written using .NET Framework is called "managed code". FCL and CLR together constitute the .NET Framework.

<span class="mw-page-title-main">.NET Framework version history</span>

Microsoft started development on the .NET Framework in the late 1990s originally under the name of Next Generation Windows Services (NGWS). By late 2001 the first beta versions of .NET Framework 1.0 were released. The first version of .NET Framework was released on 13 February 2002, bringing managed code to Windows NT 4.0, 98, 2000, ME and XP.

References

  1. "Visual J# Home". msdn.microsoft.com. Retrieved 2017-03-24.
  2. "Java to .NET Framework Migration Workshop: Free Online Training". Archived from the original on 2008-04-23. Retrieved 2020-01-28.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  3. Microsoft News, , 1 July 2002
  4. S Prasanna, Microsoft's VJ#.Net is made in India, Express Computer, 29 July 2002 Archived 28 November 2013 at the Wayback Machine
  5. "The Hindu Business Line : Microsoft lines up big plans for Hyderabad centre". www.thehindubusinessline.com.
  6. "Announcing General Availability of Microsoft Build of OpenJDK". Java at Microsoft. 2021-05-25. Retrieved 2021-08-03.
  7. "Visual J# Migration". Visual Studio 2005. MSDN Library . Archived from the original on 2012-03-16. Retrieved 2021-12-25.
  8. Yager, Tom (21 November 2001). "Just don't call J# Java". InfoWorld . Retrieved 2020-07-20.
  9. "delegate (Visual J#)". Visual Studio 2005. MSDN Library . Archived from the original on 2011-12-19.
  10. "Definition and Use of Events". Visual Studio 2005. MSDN Library . Archived from the original on 2011-12-19.
  11. "User-Defined Value Types". Visual Studio 2005. MSDN Library . Archived from the original on 2011-12-20.
  12. Microsoft Developer Network, Visual J# Product Announcement, 10 January 2007
  13. "Visual J# 2.0 Second Edition Redistributable Download". Microsoft . Archived from the original on 2007-05-23. Retrieved 2010-04-27.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  14. "Calling J# code from .NET 4.0 - Windward Wrocks" . Retrieved 6 March 2017.
  15. "Visual J# Home" . Retrieved 6 March 2017.
  16. "End of Support for Visual Studio 2008 – in One Year" . Retrieved 2017-04-11.