Języki programowania JVM – przewodnik eksperta do tworzenia oprogramowania dla wirtualnej maszyny Java

Ujawnienie: Twoje wsparcie pomaga utrzymać działanie witryny! Pobieramy opłatę za polecenie niektórych usług, które zalecamy na tej stronie.


Lista języków JVM na tej stronie zawiera główne języki programowania używane do tworzenia oprogramowania dla wirtualnej maszyny Java (JVM). Pierwotnie JVM został stworzony do obsługi tylko języka Java. Jednak wraz ze wzrostem popularności dodano więcej języków lub dostosowano je do działania na platformie.

Języki JVM

Następujące języki programowania JVM zostały napisane specjalnie do działania na wirtualnej maszynie Java. Wiele z nich to implementacje istniejących języków, takich jak Python lub PHP, dostosowane do pracy z JVM, takie jak Jython (implementacja Python) i Quercus (implementacja PHP).

W dolnej części artykułu wymieniono także kilka konwerterów Java, które mogą pobierać kod z języka takiego jak C lub Python i (rzekomo) tłumaczyć go na kod Java. Chociaż te konwertery spotykają się z mieszanymi opiniami użytkowników, nadal warto je obejrzeć.

Najbardziej popularny

Zacznijmy od najpopularniejszych języków programowania dla JVM. Są to Java (oczywiście), Groovy, Clojure (dialekt Functional Lisp), Scala, JRuby, Kotlin, Xtend, Ceylon, Fantom i Jython. Niektóre języki zostały opracowane specjalnie dla JVM.

Clojure

Clojure jest prawdopodobnie ulubionym tłumem spośród wszystkich języków programowania dla JVM. Funkcjonalny dialekt Lisp, jego niezmienność i prostota sprawiają, że jest popularnym wyborem wśród programistów. Przeciw temu działają mylące komunikaty o błędach, typ dynamiczny i zupełnie inna składnia.

Scala

Scala jest statycznym językiem programowania JVM, który może korzystać z bibliotek Java. Wykorzystuje niezmienne wartości i obsługuje zarówno imperatywne, jak i funkcjonalne paradygmaty, umożliwiając użytkownikom swobodę wyboru. Jednak jego złożona gramatyka i solidny system mogą zastraszyć niektórych początkujących.

Kotlin

Kotlin jest statycznie typowanym językiem kodowania wirtualnej maszyny Java. Zaprojektowany, aby rozwiązać większość problemów z Javą, z systemem typów zaprojektowanym w celu wyeliminowania pustych referencji z naszego kodu. Ponieważ działa na JVM, ten język programowania jest w pełni kompatybilny z Javą. Podobnie jak Scala, może korzystać z istniejących bibliotek i frameworków Java.

Ceylon

Ceylon jest statycznym, obiektowym językiem programowania dla JVM. Stworzony przez Red Hat ma silniejszy system typów niż Java, ale ma znaną składnię. Pomimo solidnej listy funkcji niewielki udział w rynku oznacza stosunkowo niewielką liczbę przydatnych bibliotek.

Jawa

Java jest oczywiście oryginalnym językiem programowania JVM. Dostaje sporo swojej składni z C ++ i C, ale jest prostszy w użyciu i używa programowania obiektowego. Spójne standardy i powszechność w branży sprawiają, że jest to solidny wybór dla JVM. Jednak niektórzy użytkownicy skarżą się, że jest zbyt gadatliwy i ma kilka mylących funkcji.

Groovy

Apache Groovy jest popularnym językiem programowania dla JVM z dużym i rozwiniętym ekosystemem. Istnienie kilku bibliotek i frameworków (w szczególności frameworka Grails) sprawia, że ​​jest to wszechstronny wybór dla programistów. Groovy to dynamiczny i zorientowany obiektowo język skryptowy.

Xtend

Xtend oferuje ścisłą interoperacyjność Java i bogate narzędzia. Ten statycznie napisany język programowania JVM kompiluje się do kodu Java zamiast kodu bajtowego. Jest to bardzo pomocne dla początkujących i debugujących. Niektórzy programiści narzekają na powolne problemy z kompilacją dużych klas.

Fantom

Ten zorientowany obiektowo język programowania dla JVM różni się od innych tego rodzaju, unikając obsługi generycznych elementów zdefiniowanych przez użytkownika. Zawiera jednak trzy wbudowane klasy, które można sparametryzować. Chodziło o to, aby programiści mogli korzystać z ogólnych, jednocześnie zachowując prostotę całego systemu typów.

Implementacje innych języków

Języki programowania JVM poniżej są implementacjami innych popularnych języków, takich jak Lisp, Ruby, Python i PHP.

Implementacje Lisp

Istnieje kilka implementacji Lisp jako języków programowania JVM. Są to: Armed Bear Common Lisp, CL dla Java, Scheme i Clojure, (o których wspominaliśmy powyżej).

Schemat

Schemat jest jednym z dwóch głównych dialektów Lisp. Jest to funkcjonalny język programowania o minimalistycznym wyglądzie i potężnych narzędziach do rozszerzania języka. Chociaż nie działa bezpośrednio z JVM, działa kilka jego implementacji. Obejmują one:

  • BiglooJVM . Ten kompilator Scheme dostarcza kod bajtowy dla wirtualnej maszyny Java bezpośrednio z języka programowania Scheme.

  • Kawa . Jest to rozszerzenie języka schematu współpracującego z wirtualną maszyną Java.

  • JScheme jest implementacją schematu, który współpracuje z Javą.

Uzbrojony niedźwiedź pospolity

Ten język programowania implementacji Common Lisp dla JVM ma zarówno interpreter, jak i kompilator, zwany zwykle ABCL.

CLforJava

CLforJava jest implementacją Common Lisp, która działa na JVM i próbuje zapewnić dostęp do dowolnej biblioteki Java bez potrzeby korzystania z interfejsu funkcji obcej. Wygląda na to, że w ostatnich latach przestał istnieć.

Clojure

Wspominaliśmy o Clojure powyżej w sekcji „najpopularniejsze”, ponieważ jest to jedna z najbardziej znanych implementacji Lisp dla JVM.

Arden2ByteCode

Opracowany w 2010 roku Arden2ByteCode jest kompilatorem typu open source stworzonym dla Arden Syntax. Działa na JVM, tłumacząc składnię Arden na bajt Java.

JGNAT (Ada)

JGNAT był darmowym kompilatorem dla języka Ady. Była to wersja kompilatora GNAT, która kompilowała język Ada do kodu bajtowego java. Początkowo część projektu dla amerykańskiego wojska, JGNAT została odroczona.

Micro Focus Visual COBOL

Visual Cobol firmy Micro Focus oferuje pełny zestaw narzędzi do przyszłych aplikacji COBOL. Jednym z nich jest kompilator, który pozwala programistom kompilować istniejący kod COBOL bezpośrednio do Java ByteCode dla wirtualnej maszyny Java.

Implementacje języka ColdFusion Markup Language (CFML)

ColdFusion Markup Language pozwala twórcom witryn tworzyć strony zawierające zmienne informacje (grafika lub tekst), które są dynamicznie uporządkowane w odpowiedzi na dane wejściowe użytkownika i inne zmienne. Ma kilka implementacji wirtualnej maszyny Java, w tym Railo, Lucee i Adoby ColdFusion.

  • Adobe ColdFusion to platforma do szybkiego tworzenia aplikacji internetowych. Język programowania działa na wirtualnej maszynie Java. Oprócz pełnego języka skryptowego zawiera także zintegrowane środowisko programistyczne (IDE).

  • Lucee . Lucee to dynamiczny, lekki język skryptowy działający w JVM. Umożliwia szybki rozwój dowolnych aplikacji, od bardzo prostych po bardzo wyrafinowane aplikacje internetowe. Pierwotnie został wydany jako widelec Railo (poniżej).

  • Railo to tak naprawdę oprogramowanie serwerowe, które implementuje język skryptowy CFML. Działa na JVM. Pierwotnie stworzony jako konkurent Adobe ColdFusion, przeszedł na model open source i jest dostępny na GitHub.

  • Otwórz BlueDragon lub po prostu OpenBD to nie język programowania, ale silnik Java CFML, który interpretuje i przetwarza kod CFML. Jest całkowicie otwarty i darmowy dla wszystkich.

Implementacje JavaScript

JavaScript jest lekkim i bardzo popularnym językiem programowania szeroko stosowanym na stronach internetowych. Mimo swojej nazwy nie jest tak naprawdę związany z językiem Java. Istnieje kilka implementacji JavaScript, które działają na wirtualnej maszynie Java.

  • Nashorn to silnik JavaScript stworzony przez Oracle dla JVM. Nashorn został wydany jako rozwiązanie open source w 2012 roku w repozytorium OpenJDK. Pozwala programistom osadzać JavaScript w aplikacjach Java, takich jak JVM. „Nashorn” to niemieckie słowo „Rhino”, kolejne wdrożenie JS dla JVM zarządzanego przez Mozillę.

  • Nosorożec jest językiem programowania JS Mozilli dla JVM. Napisany w Javie jest zwykle osadzony w aplikacjach Java w celu zapewnienia skryptów użytkownikom końcowym.

  • RingoJS jest wielowątkową implementacją JS dla JVM, głównie dla aplikacji po stronie serwera. Wykorzystuje zaawansowane sterowniki JDBC, a także bibliotekę klas Java.

kupon hostingowy

Szukasz odpowiedniego hosta Java?
InMotion Hosting to dobry wybór dla Java, Tomcat lub ogólnych potrzeb JSP. Nadmiarowe klastry sprzętowe zapewniają niezawodność przewyższającą wiele hostów. Teraz możesz zaoszczędzić nawet do 50% na ich planach. Użyj tego linku zniżkowego
dostać ofertę.

Java Grade Mercury

Java Grade Mercury to implementacja Mercury. Jest to kompilator, który generuje kod źródłowy Java, który można następnie skompilować do kodu bajtowego Java dla środowiska wykonawczego Java SE. Chociaż nie jest napisany specjalnie do pracy jako język programowania JVM, może wykonywać tę funkcję, jak zauważa Julien Fischer, programista Opturion .

Komponent Pascal

Powodem, dla którego Component Pascal nie jest zgrupowany z poniższymi implementacjami JVM Pascal, jest to, że tak nie jest. Jest to raczej wariant Oberona-2. Nie pozwala programistom definiować przeciążonych metod, ale przeciążone metody można wywoływać z kodu Component Pascal.

Wdrożenia Pascal

Pascal jest proceduralnym językiem programowania, powszechnie używanym do nauki pojęć programistycznych. Jest bardzo podobny do C. Opracowany pod koniec lat 60. XX wieku, jest nadal w użyciu, szczególnie w nowszych wersjach Delphi i Oxygene. Ma kilka implementacji wirtualnej maszyny Java, w tym te z poniższej listy.

  • MIDletPascal , specjalnie zoptymalizowany pod kątem tworzenia midletów J2ME, może tłumaczyć kod źródłowy Pascal na kod bajtowy Java dla JVM.

  • Bezpłatny Pascal jest kompilatorem typu open source zarówno dla pascal, jak i obiektowego pascal. Może być ukierunkowany na kilka architektur procesorów, w tym AMD64 i Java Virtual Machine.

  • Tlenowy został utworzony jako nowa wersja Pascal dla środowiska .NET i Visual Studio. Składa się z kompilatora, integracji z Visual Studio IDE i niektórych bibliotek pomocniczych.

Quercus

Quercus to implementacja Java PHP. Wydany jako oprogramowanie typu open source przez Caucho Technology, zawiera kilka rozszerzeń i modułów PHP, takich jak JSON, PDO i MySQL. Zapewnia ścisłą integrację usług Java i skryptów PHP.

Rakudo Perl 6

Perl 6 firmy Rakudo to kompilator ukierunkowany zarówno na wirtualną maszynę Java, jak i MoarVM. Jest w trakcie aktywnego opracowywania, a najnowsze stabilne wydanie 3 kwietnia 2017 r. Jest to implementacja języka programowania Perl, języka wysokiego poziomu używanego do tworzenia aplikacji internetowych.

Wdrożenia Prolog

Prolog to język programowania wysokiego poziomu, stworzony po raz pierwszy do obsługi aplikacji sztucznej inteligencji. Brakuje szerokiego zakresu zastosowania języka LISP. Mimo to jest znane jako potężne narzędzie do rozwiązywania pytań dotyczących relacji .

  • TuProlog jest lekką implementacją Prologa zaprojektowaną wokół minimalnej konfiguracji rdzenia i dynamiki poprzez ładowanie bibliotek. Zapewnia ścisłą integrację między Prologiem a popularnymi językami obiektowymi, takimi jak Java, C # i F #.

  • JIProlog to czysty interpreter Java Prolog, który jest zarówno open source, jak i wieloplatformowy. Zapewnia podwyższoną zgodność ze standardami Prolog i ulepsza Javę, dodając możliwości Prolog.

  • XProlog został opracowany w celu zaspokojenia potrzeb niektórych agentów opartych na Javie. Poprawia WProlog, dodając arytmetykę, zaawansowaną składnię i lepsze zarządzanie pamięcią.

Renjin

Renjin jest tłumaczem języka programowania R, zbudowanym na JVM. Pozwala on kodowi R na bezpośrednią interakcję z kilkoma strukturami danych i bibliotekami JVM, bez konieczności kosztownego przesyłania danych lub komunikacji między procesami.

Implementacje w języku Python

Język programowania Python jest językiem interpretowanym. Podkreśla czytelność dla ludzi, zamiast białych nawiasów klamrowych. Zazwyczaj wymaga mniej wierszy kodu niż inne języki, takie jak C ++ lub Java.

  • Jython jest implementacją języka Python dla wirtualnej maszyny Java. Jego ostatnie stabilne wydanie miało miejsce w połowie 2015 roku.

  • PyPy to interpreter języka Python, który tłumaczy kod źródłowy na kod maszynowy, kod bajtowy C lub JVM.

  • Pełen werwy to szybka i lekka implementacja języka Python 3 w JVM. Korzysta z kompilatora Java JIT i jest dostępny na GitHub.

Implementacje Ruby

Ruby to dynamiczny język programowania typu open source, który koncentruje się na wydajności i prostocie. Jego elegancka składnia ułatwia czytanie i pisanie. Implementacje dla JVM obejmują Mirah i JRuby.

  • Mirah jest językiem programowania JVM i implementacją Ruby, która jest zgodna z zasadami braku biblioteki wykonawczej, prostej składni, makr i metaprogramowania oraz bez obniżenia wydajności.

  • JRuby jest w pełni wątkową, stabilną, wysokowydajną implementacją Ruby dla wirtualnej maszyny Java. Jest niezależny od platformy i zapewnia łatwe w instalacji rozwiązanie z prostą migracją.

NetRexx

NetRexx to uniwersalny język programowania typu open source dla JVM inspirowany zarówno językiem Java, jak i Rexx. Został zaprojektowany tak, aby programowanie było znów „łatwe i przyjemne”.

Jabaco

Jabaco to język programowania BASIC opracowany dla wirtualnej maszyny Java. Kod źródłowy jest podobny do VB6, skompilowanego do kodu bajtowego, który jest „podobny” do danych wyjściowych z języka programowania Java.

Jacl

Język programowania Jacl to implementacja języka Tcl napisanego w Javie. Jest gotowy do produkcji i wystarczająco stabilny do codziennego użytku. Tworzy kod bajtowy Java do użytku z JVM.

JBasic

JBasic to interpreter języka BASIC, w całości napisany w Javie, zarówno do wbudowania, jak i do wiersza poleceń. Obsługuje tradycyjną składnię w stylu GW-BASIC i zapewnia nowoczesne rozszerzenia. Może biegać prosto z powłoki.

Konwertery JVM (programy zewnętrzne tworzące kod Java)

Oprócz języków programowania napisanych specjalnie dla wirtualnej maszyny Java lub dostosowanych do istniejących języków, istnieje kilka programów, które konwertują zewnętrzny kod na Java. Te konwertery JVM nie zawsze otrzymują entuzjastyczne recenzje (patrz ta dyskusja na ResearchGate, ta na StackOverflow i ta na Quora).

Z tym ostrzeżeniem oto kilka lepszych konwerterów kodów:

  • C2J. Ten konwerter tłumaczy programy napisane w C na Javę do użytku z JVM.

  • CS2J Aby przekonwertować C # na Javę dla wirtualnej maszyny Java lub innych aplikacji, spróbuj konwertera CS2J.

  • C ++ na Java Converter. To ma darmową edycję, która działa na maksymalnie 1000 linii na raz dla folderów i 100 linii na raz dla fragmentów kodu. Pełna wersja kosztuje 129 USD.

  • P2J. Ten konwerter Python na Java składa się z translatora źródłowego i debuggera i twierdzi, że jest w stanie konwertować kod z 75% dokładnością do użycia z JVM.

  • Nie ma specyficznych konwerterów JavaScript na Java, głównie dlatego, że pomimo nazw są to dwa bardzo różne języki. Dla tych, którzy muszą tłumaczyć JS do użytku z wirtualną maszyną Java, to repozytorium GitHub pokazuje prosty sposób na zawijanie obiektów JS do obiektów Java.

  • PHP i Java to bardzo różne języki. (Zobacz tę dyskusję.) Przez pewien czas konwerter P2J próbował przekonwertować PHP na Javę do użycia z JVM. Ten projekt został jednak przerwany.

  • Możliwe jest dołączenie kodu Java do programu Perl przy użyciu Inline :: Java (zobacz tę dyskusję). Aby przekonwertować kod bezpośrednio do użytku z wirtualną maszyną Java, dostępny jest tutaj eksperymentalny konwerter .

kupon hostingowy

Szukasz świetnej oferty na hosting JVM?
A2 Hosting zdobył pierwsze miejsce w naszych ostatnich testach szybkości i wydajności. Ich plany hostingowe obsługują strony Tomcat, strony JSP, serwlety Java i wiele innych. Możesz zaoszczędzić do 50% na planach przyjaznych dla programistów. Użyj tego linku zniżkowego
dostać ofertę.

Dalsza lektura i pokrewne zasoby

Oprócz pokazanej tutaj listy języków JVM, zobacz to repozytorium GitHub, a także naszą rosnącą listę zasobów języka programowania.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map