J-Sharp
J# ist eine von Microsoft entwickelte objektorientierte Programmiersprache, die Java- und Visual-J++-Programmiern den Um- bzw. Einstieg in die .NET-Umgebung erleichtern sollte. Langfristig sollten sich Java-Entwickler mit dem Framework näher vertraut machen, um später in C# alle Funktionen von .NET nutzen zu können. Auch diente J# eher dazu, dass Java-Entwickler bestehenden Java-Code leichter in die Umgebung mitnehmen konnten, um ihn in neuen Projekten unter einer anderen .NET-Sprache wie C# oder VB.NET weiter zu nutzen.
J# | |
---|---|
Paradigmen: | Objektorientierte Programmiersprache |
Erscheinungsjahr: | 2002 |
Entwickler: | Microsoft |
Aktuelle Version: | 2.0 (22. Januar 2006) |
Beeinflusst von: | Java |
Betriebssystem: | Windows |
MSDN.Microsoft.com |
Microsoft erklärte zum 10. Januar 2007, dass J# nicht mehr weiterentwickelt und es auch keine neue Version in Visual Studio 2008 hierfür geben werde. Visual Studio 2005 war somit die letzte Version die J# enthielt.[1] Bis 2015 gab es eine eingeschränkte Produktunterstützung, die sich auf Fehlerbehebungen beschränkte.
Unterschiede zwischen J# und Java
Beide Sprachen besitzen zwar dieselbe „Grundsyntax“, setzen dennoch auf unterschiedliche Laufzeitumgebungen. J# wird unter CLR (Common Language Runtime) eingesetzt, während Java die JRE (Java Runtime Environment) von Oracle oder eine ähnliche Umgebung nutzt.
In Visual Studio 2005 stellt Microsoft eine Vielzahl von aus der Java-Welt übernommenen Namensräumen und Klassen bereit, die es einem Java-Programmierer erleichtern sollen, mit .NET zu arbeiten. Insbesondere Wert gelegt wurde auf die Konvertierung der Standard- und Swing-Klassen. Zudem existiert dort ein Compiler, welcher J#-Quelltexte in C#-Code übersetzt.
Programmierbeispiel
Die folgenden Zeilen geben einen kleinen Einblick in den Aufbau und die Verwendung von J#:
import System.Console;
import System.Windows.Forms.*;
public final class Program extends Object
{
public final static String HalloWeltAusdruck = "Hallo Welt!";
/**
* Einstiegspunkt
*/
public static void main(String[] args)
{
(new Program()).Run(args);
}
/**
* "Hallo, Welt!" Ausgabe an Standardausgabe (meistens Konsole)
*/
private void DefOutput()
{
System.Console.WriteLine("Ausgabe an Konsole...\n");
Console.get_Out().WriteLine(HalloWeltAusdruck);
System.Console.WriteLine("ENTER betätigen, um fortzufahren...\n");
Console.ReadLine();
}
/**
* Eine Art nicht-statischer Einstiegspunkt
*/
private void Run(System.String[] args)
{
// Ausgabe => Konsole
this.DefOutput();
// Ausgabe an Windows
WinOutput();
}
/**
* "Hallo, Welt!" Ausgabe als Windows-Fenster
*/
private void WinOutput()
{
System.Console.WriteLine("Ausgabe als Windows-Fenster...");
MessageBox.Show(Program.HalloWeltAusdruck, "Ausgabe als Windows MessageBox.");
System.Console.WriteLine("ENTER betätigen, um fortzufahren...\n");
Console.ReadLine();
}
}