Julia (Programmiersprache)

Julia
Official Julia logo
Basisdaten
Paradigmen: Multiparadigma (prozedural, funktional, objektorientiert, Metaprogrammierung)
Erscheinungsjahr: 2012
Designer: Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman
Entwickler: Jeff Bezanson, Stefan Karpinski, Viral B. Shah u. a.[1][2]
Aktuelle Version 1.11.0[3] (7. Oktober 2024)
Typisierung: dynamisch mit Typinferenz
Wichtige Implementierungen: Julia JIT Compiler
Beeinflusst von: C, MATLAB, Scheme, Lisp, Dylan, Perl, Python, R, Ruby, Lua,[4] Mathematica
Betriebssystem: Linux, macOS, FreeBSD, Windows
Lizenz: MIT-Lizenz, GPL, LGPL, BSD
The Julia Language

Julia ist eine höhere Programmiersprache, die vor allem für numerisches und wissenschaftliches Rechnen entwickelt wurde und auch als Allzweck-Programmiersprache verwendet werden kann, bei gleichzeitiger Wahrung einer hohen Ausführungsgeschwindigkeit.[5][6][7][8][9] Die Syntax erinnert stark an Matlab, wie auch an andere technische Programmiersprachen. Der Compiler wurde in C, C++ und Scheme geschrieben; die Standardbibliothek ist in Julia selbst geschrieben. Die Programmiersprache, deren Entwicklung 2009 begann, wurde im Februar 2012 als Open Source veröffentlicht.

Die Ausführungsgeschwindigkeit liegt im Bereich von C und Fortran, wodurch sich Julia gegenüber anderen wissenschaftlichen Sprachen wie MATLAB, GNU Octave oder R deutlich absetzt. Charakterisiert wird das Design der Sprache durch ein Typsystem, das parametrisierte Typen erlaubt, eine dynamische Programmierumgebung und Multimethoden als zentrales Paradigma. Julia erlaubt paralleles und verteiltes Ausführen von Programmen und den direkten Aufruf von C- und Fortran-Bibliotheken. Julia enthält standardmäßig einen Garbage Collector[10] und effiziente Implementierungen für Operationen mit Gleitkommazahlen und zur linearen Algebra, zur Generierung von Zufallszahlen und zur Verarbeitung regulärer Ausdrücke.

Die Entwicklung erfolgte am MIT; Stefan Karpinski, Viral Shah und Jeff Bezanson erhielten dafür den J. H. Wilkinson Prize for Numerical Software für 2019.

Mit Hilfe eines Pakets, das alle Julia-Funktionen unterstützt, kann zu ausführbaren Binärdateien kompiliert werden. Ein anderes Paket erzeugt besonders kleine ausführbare Binärdateien für Computer oder sogar Mikrocontroller mit 2 KB RAM. Diesen fehlt dann jedoch die Laufzeitumgebung und damit Funktionen wie der Garbage Collector und das Threading. Mit Binärpaketen muss aber kein Quellcode verteilt werden.

Die Visual Studio Code-Erweiterung von Julia bietet eine voll funktionsfähige integrierte Entwicklungsumgebung mit Unterstützung für Debugging, Linting und Profiling.

Geschichte

Die Arbeit an Julia wurde 2009 von Jeff Bezanson, Stefan Karpinski, Viral B. Shah und Alan Edelman begonnen. Ziel war eine Höhere Programmiersprache mit hoher Ausführungsgeschwindigkeit als Open-Source-Projekt – so erklären es die Autoren 2012 im ersten Blogeintrag ihrer Website.[11] Über den Namen Julia sagte Karpinski in einem Interview mit InfoWorld im April 2012: „Es gibt wirklich keinen guten Grund. Es schien einfach ein hübscher Name zu sein.“

In den Jahren seit dem Start von Julia pre-1.0 im Jahr 2012 ist die Community gewachsen. Das Julia-Paket-Ökosystem umfasst über 11,8 Millionen Codezeilen (einschließlich Dokumentation und Tests). Die JuliaCon University Conference für Julia-Benutzer und -Entwickler findet seit 2014 jährlich statt – 2021 mit über 43.000 Konferenzteilnehmern und über 300 Präsentationen, die kostenlos auf YouTube verfügbar sind.

Für die Entwicklung von Julia erhielten 2019 drei der vier Erstautoren den J. H. Wilkinson Prize for Numerical Software. Im gleichen Jahr wurde Alan Edelman, Professor für Angewandte Mathematik am MIT, der Sidney Fernbach Award zuerkannt, unter anderem für seine Beiträge zu Julia.

Julia 0.7 und Version 1.0 wurden am 8. August 2018 veröffentlicht.

Nach Julia 1.0 war Version 1.6 das größte Release. Julia 1.9.0 wurde am 7. Mai 2023 veröffentlicht. Es bietet viele Verbesserungen, wie z. B. die Möglichkeit, Pakete in nativen Maschinencode vorzukompilieren (ältere Julia-Versionen bieten auch eine Vorkompilierung für Pakete, aber nur teilweise, nie vollständig in nativen Code, sodass diese früheren Versionen eine „First Use“-Strafe hatten und langsamer wurden, während auf die vollständige Kompilierung gewartet wurde). Vorkompilierte Pakete können seit Version 1.9 bei der ersten Verwendung bis zu hundertmal schneller sein (z. B. für CSV.jl und DataFrames.jl), und um die Vorkompilierung von Paketen zu verbessern, wurde ein neues Paket PrecompileTools.jl eingeführt. Julia 1.10.0 wurde am 25. Dezember 2023 (und das Update Julia 1.10.5 am 27. August 2024) mit vielen neuen Funktionen veröffentlicht, z. B. parallele Garbage Collection, verbesserte Paketladezeiten und ein neuer Parser mit besseren Fehlermeldungen und verbesserter Stacktrace-Darstellung.

Julia 1.11.0 wurde am 7. Oktober 2024 veröffentlicht neuestes stabiles Release, und damit wurde 1.10.5 die nächste Version mit Langzeitunterstützung (LTS. e. Long Term Support) (d. h. dies sind die einzigen beiden unterstützten Versionen), und 1.6 ist keine LTS-Version mehr.

Viel kleinere binäre ausführbare Dateien sind mit juliac möglich, das nur in der kommenden Julia 1.12 (der aktuellen „Nightly“-Version) verfügbar ist.

JuliaCon

Seit 2014 veranstaltet die Julia Community eine jährliche Julia-Konferenz, die sich auf Entwickler und Benutzer konzentriert. Die erste JuliaCon fand in Chicago statt und gab den Startschuss für die jährliche Veranstaltung der Konferenz. Seit 2014 findet die Konferenz an verschiedenen Orten statt, darunter das MIT und die University of Maryland, Baltimore. Das Veranstaltungspublikum ist während der JuliaCon 2020, die virtuell stattfand, von einigen Dutzend Personen auf über 28.900 einzelne Teilnehmer angewachsen. Die JuliaCon 2021 fand auch virtuell statt mit Keynote-Vorträgen von Professor William Kahan (dem Hauptarchitekten des IEEE 754-Gleitkommastandards, um den es in seiner Keynote geht, den praktisch alle CPUs und Sprachen verwenden, einschließlich Julia), und Jan Vitek, Xiaoye Sherry Li und Soumith Chintala (Mitschöpfer von PyTorch). JuliaCon wuchs auf 43.000 einzelne Teilnehmer und mehr als 300 Präsentationen (immer noch frei zugänglich, plus für ältere Jahre).

Firma Julia

JuliaHub, Inc. wurde 2015 als Julia Computing, Inc. von Viral B. Shah, Deepak Vinchhi, Alan Edelman, Jeff Bezanson, Stefan Karpinski und Keno Fischer gegründet.

Eigenschaften

Die offizielle Website stellt folgende Eigenschaften als wichtig heraus:

Julia wurde stark von Lisp-Dialekten, in erster Linie Scheme und Common Lisp, beeinflusst und hat Gemeinsamkeiten mit Sprachen, die ebenfalls Multimethoden unterstützen. Dazu zählen Dylan, mit einer ALGOL-ähnlichen Syntax statt der Lisp-ähnlichen polnischen Notation, und Fortress, mit umfangreichem parametrischem Typ-System. CLOS erweitert Common Lisp um Multimethoden.

In Julia, Dylan und Fortress ist die Multimethode der Standard und die eingebauten Funktionen sind gänzlich generisch und erweiterbar. In Dylan werden Multimethoden genauso grundlegend behandelt wie in Julia: Sämtliche benutzerdefinierte Funktionen und eingebaute mathematische Operatoren wie die Addition mit + sind generisch. Dylans Typsystem unterstützt jedoch nicht vollständig parametrische Typen, was sich eher in von ML abstammenden Sprachen findet. Standardmäßig unterstützt CLOS keine parametrischen Typen für Multimethoden; dies muss durch das Metaobject Protocol hinzugefügt werden. Fortress erlaubt wie Julia parametrische Typen für Multimethoden, jedoch ist Fortress im Gegensatz zu Julia statisch typisiert, sodass Kompilierung und Ausführung in getrennten Phasen stattfinden. Die Tabelle fasst diese Eigenschaften zusammen:

Sprache Typ-System Multimethoden Parametrische Typen
Julia dynamisch Standard ja
Common Lisp dynamisch optional partiell (nicht für Multimethoden)
Dylan dynamisch Standard partiell (nicht für Multimethoden)
Fortress statisch Standard ja

Standardmäßig muss die Julia-Laufzeit vorinstalliert sein, da vom Benutzer bereitgestellter Quellcode ausgeführt wird. Alternativ kann eine eigenständige ausführbare Datei, die keinen Julia-Quellcode benötigt, mittels PackageCompiler.jl erstellt werden.

Benutzerinteraktion

Julia enthält standardmäßig ein interaktives Kommandozeilenprogramm REPL (Read–eval–print loop), das zum Experimentieren und schnellen Testen von Code verwendet werden kann.[14] Ein Beispielausschnitt aus dem REPL ist:[15]

julia> p(x) = 2x^2 + 1; f(x, y) = 1 + 2p(x)y
julia> println("Hallo Welt!", " Ich bin auf Wolke ", f(1, 1), ", da Julia erkennbare Syntax unterstützt!")

Das REPL gibt dem Benutzer Zugriff auf die System-Shell und stellt einen Hilfemodus zur Verfügung, indem ; oder ?, dem Kommando vorangestellt, nach der Eingabeaufforderung eingegeben werden. REPL speichert die Chronik aus eingegebenen Kommandos und solchen zwischen Sitzungen.[16] Außerdem liefert es Codebeispiele, die direkt in REPL eingegeben oder in einer separaten Datei mit einer .jl-Endung gespeichert und anschließend durch $ julia <filename> in der System-Shell aufgerufen werden können.[17]

Paketmanager

Julia hat einen integrierten Paketmanager und enthält ein Standardregistrierungssystem. Pakete werden meistens als Quellcode verteilt, der auf GitHub gehostet wird, obwohl auch Alternativen genauso gut verwendet werden können. Pakete können unter Verwendung von Artefakten auch als Binärdateien installiert werden. Julias Paketmanager wird zum Abfragen und Kompilieren von Paketen sowie zum Verwalten von Umgebungen verwendet. Es werden föderierte Paketregistrierungen unterstützt, sodass andere Registrierungen als die offiziellen lokal hinzugefügt werden können.

Wenn Sie ein Paket interaktiv aus der REPL verwenden, werden Sie automatisch gefragt, ob Sie das Paket installieren möchten. Alternativ können Pakete (eines oder mehrere) installiert werden, indem Sie zuerst die Pkg REPL eingeben, indem Sie aus der Julia REPL drücken und z. B. Folgendes tun:

(@v1.9) pkg> JSON StaticArrays

Verwendung mit anderen Sprachen

Viele Pakete[18] sind verfügbar, um andere Sprachen innerhalb von Julia aufzurufen. Beispielsweise ist das Paket JavaCall[19] verfügbar, um Java von Julia aus aufzurufen, Mathematica[20], um Mathematica aufzurufen,[21] das Aufrufen von Rust ist möglich,[22][23] und node-julia erlaubt JavaScript/node.js die Verwendung für asynchrone (Web-)Server. Für PHP, Perl und andere Sprachen, erlaubt Polyglot[24] einen transparenten Fernaufruf und rekursive Auswertung von Funktionen in anderen Sprachen, so als wären sie reguläre Julia-Funktionen. Es ermöglicht anderen Sprachen, Julia-Funktionen so zu verwenden, als wären sie in der anderen Sprache geschrieben. Mit Polyglot.jl hat Julia ebenfalls native und Wrapper-Pakete für symbolische Mathematik.

Standardmäßig unterstützt Julia UTF-8, jedoch können die optionalen Pakete ICU[25], ein Wrapper für International Components for Unicode und UnicodeExtras[26] für eine erweiterte Unicodeunterstützung verwendet werden. Außerdem ist für die Erstellung und das Arbeiten mit Browserfenstern das Paket Blink[27] verfügbar.

Für Julia gibt es Wrapper-Bibliotheken, um mit grafischen Benutzeroberflächen zu arbeiten, wie beispielsweise das (zumindest für Linux, Windows und macOS) plattformunabhängige GTK, Qt, Tk oder JGUI[28], der die Unterschiede der vorherigen verbirgt und das verwendet, was verfügbar ist.

Es gibt zahlreiche einzelne SQL- oder NoSQL-Datenbankenschnittstellen und das generische ODBC[29] für datenbankübergreifenden Zugriff.

Während Julia standardmäßig Eager Evaluation (frühe Auswertung) verwendet, liefert das Lazy[30] -Paket Grundlagen für funktionales Programmieren – Lazily-evaluated-Listen und eine große Bibliothek von Funktionen, um mit diesen zu arbeiten.

Verwendung für Statistik- und Datenanalyse

Julia wurde mit dem Ziel erschaffen, so einfach für Statistik zu sein wie R es ist.[9]

Für den Fall, dass Julia Statistikfunktionen fehlen, die in R verfügbar sind, stehen die Pakete RCall[31] und Rif[32] zur Verfügung, und für den umgekehrten Fall RJulia,[33] um Julia von R aufzurufen.

Gadfly[34] ermöglicht es, in Julia statistische Grafiken zu erstellen. Um mit Verteilungen zu arbeiten, gibt es das Paket Distributions.[35]

Ohne eine gemeinsame Verwendung mit R existiert Rmath in Julia. Rmath ist eine Bibliothek von R, die einfache statistische Funktionen enthält. Julia verwendet eine gepatchte Version von Rmath, die dSFMT (double precision SIMD-oriented Fast Mersenne-Twister) als zu Grunde liegenden Zufallszahlengenerator für schnellere normalverteilte Zufallszahlen nutzt.[36][37]

Anzeige von Assemblercode

Die kompilierte Assemblersprache lässt sich für jede gerade erst eingegebene Funktion anzeigen. Selbst für eingebaute Funktionen wie den Additionsoperator + ist dies möglich. Bei Operatoren wie + handelt es sich in Julia ebenso lediglich um Funktionen, was durch syntaktischen Zucker ermöglicht wird:

julia> code_native(+, (Float64, Float64))
	.text
Filename: float.jl
Source line: 120
	push	RBP
	mov	RBP, RSP
Source line: 120
	addsd	XMM0, XMM1
	pop	RBP
	ret

Implementierung

Der Kern von Julia wurde in C und C++ implementiert, der Parser in Scheme (femtolisp[38]), außerdem wurde das LLVM-Compilerframework dazu verwendet, optimierten 64-Bit- oder 32-Bit-Maschinencode Just-in-time (JIT) zu generieren. Abgesehen von wenigen Ausnahmen (wie libuv) wurde die Standardbibliothek in Julia selbst geschrieben. Die Ausführungsgeschwindigkeit von Julia ist besonders hoch im Vergleich zu Sprachen, die ähnliche Zwecke erfüllen. Optimierter C-Code ist meist höchstens doppelt so schnell wie Julia-Code, sodass Julia-Code eine Größenordnung schneller ausgeführt wird als Python- oder R-Code.[39] Die Entwicklung von Julia begann 2009, eine Open-Source-Version wurde im Februar 2012 veröffentlicht.[40]

Julia verwendet einen Mark-and-Sweep-Garbage-Collector zur Speicherbereinigung. Für hochperformante Zahlenverarbeitung stellt diese Wahl kein Problem dar. Bei Berechnungen in Echtzeit, wie etwa bei Audioverarbeitung, kann eine inkrementelle Implementierung des Garbage Collectors deutlich bessere Ausführungsgeschwindigkeit liefern.[41]

Im November 2015 wurde bekannt, dass die Gordon-und-Betty-Moore-Stiftung 600.000 US-Dollar für die Entwicklung der Sprache gespendet hatte, um so Version 1.0 zu erreichen.[42]

Am 8. August 2018 wurde die Version 1.0.0 veröffentlicht.[43]

Aktuelle und geplante Plattformen

Auch wenn Julia-JIT die LLVM verwendet[44] (MCJIT[45] der LLVM), wird nativer Maschinencode generiert, sobald eine Funktion erstmals ausgeführt wird. Im Gegensatz zu Java oder Dalvik wird in Julia kein in einer virtuellen Maschine laufender Bytecode generiert.

Aktuell gut unterstützt (Tier 1) werden neuere x86- und ältere i386-Prozessorarchitekturen, zusätzlich in Linux die 64-Bit ARMv8 und die 64-Bit Nvidia PTX.

Von einigen Tests ist bekannt, dass sie fehlschlagen, und Stacktraces sind nicht verfügbar[46] mit Alpha-Unterstützung für den Raspberry Pi 1 und Pi 2[47][48] jedoch startet Julia [auf ARMv7] Samsung Chromebook […] ohne Probleme[49], an PowerPC wird noch gearbeitet.[50][51]

Einbindung in andere Sprachen

Die Julia-C-API erlaubt es, Julias gesamte Laufzeitumgebung inklusive Bibliotheken innerhalb von C-Programmen auszuführen, ohne Daten kopieren zu müssen. Sprachen, die C aufrufen können, werden unterstützt (solange die CPU von allen drei Umgebungen unterstützt wird), wie beispielsweise C++, möglicherweise C# (für C# unter Windows 8.1 ist Version 0.4 nötig).[52] Außerdem wird Python unterstützt,[53] wobei Aufrufe, auch rekursive, in beide Richtungen möglich sind.[54] Für Sprachen, die Ausnahmen unterstützen, können Ausnahmen in Julia abgefangen und in der Zielsprache erneut geworfen werden (in C, das keine Ausnahmen unterstützt, müssen diese in Julia abgefangen und behandelt werden).

Es gibt eine Bibliothek, die C++ direkt aufruft, ohne C zu verwenden, und so Name-Mangling vermeidet. So können auch Methoden zum Einsatz kommen, die auf sogenannte Staged Functions angewiesen sind; dies ist jedoch erst ab Version 0.4.0-dev möglich.

Ein Compiler nach JavaScript, der die Ausführung im Browser erlaubt, befindet sich in Entwicklung.[55]

Alternativen

Die älteste Alternative zu Julia und gleichzeitig eines der Vorbilder ist Matlab, eine Sprache und Desktop-Umgebung, die seit 1984 kommerziell von MathWorks entwickelt und vertrieben wird.

Da die Routinen für lineare Algebra in Julia auf den quelloffenen Fortran-Bibliotheken LAPACK und BLAS basieren, existieren mehrere Alternativen zu diesen Aufgabenbereichen mit gleicher numerischer Qualität. Vom französischen INRIA (Institut National de Recherche en Informatique et en Automatique) stammt Scilab/Xcos. Im Rahmen des GNU-Projektes ist GNU Octave entstanden. Ein weiteres Beispiel ist das Softwarepaket FreeMat.

NumPy und Matplotlib sind Python-Bibliotheken, die Python um wissenschaftliches Rechnen und Analysefunktionen erweitern. NumPy basiert ebenfalls auf LAPACK und BLAS.

Zwei weitere Alternativen sind die JVM-basierte Programmiersprache Scala (mit der Programmbibliothek ND4S) und ILNumerics, das auf das .Net-Framework aufsetzt.

Die größeren Computeralgebrasysteme wie Maple und Mathematica sind vor allem für symbolische Berechnungen gedacht und enthalten numerische Algorithmen.

Siehe auch

Commons: Julia – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

  1. LICENSE.md. GitHub; (englisch).
  2. Contributors to JuliaLang/julia. GitHub; (englisch).
  3. Julia 1.11 Highlights. 8. Oktober 2024 (englisch).
  4. Julia Documentation. Abgerufen am 14. Januar 2022 (englisch).
  5. The Julia Language. (englisch).
  6. Avi Bryant: Matlab, R, and Julia: Languages for data analysis. O’Reilly Strata, 15. Oktober 2012; (englisch).
  7. Paul Krill: New Julia language seeks to be the C for scientists. InfoWorld, 18. April 2012; (englisch).
  8. Klint Finley: Out in the Open: Man Creates One Programming Language to Rule Them All. Wired, 3. Februar 2014;.
  9. a b dotnetpro.de: Julia schlägt Python, Matlab, Octave und R. Neue Mediengesellschaft Ulm mbH, 3. April 2012, abgerufen am 20. März 2017.
  10. Suspending Garbage Collection for Performance… good idea or bad idea? (englisch).
  11. https://julialang.org/blog/2012/02/why-we-created-julia/
  12. groups.google.com
  13. github.com
  14. Interacting With Julia
  15. Siehe auch: docs.julialang.org für String Interpolation
  16. Julia Documentation. In: julialang.org. Abgerufen am 16. Januar 2022 (englisch).
  17. Learn Julia in Y Minutes
  18. Julia Package Library. In: Julialang.org. Abgerufen am 18. November 2014 (englisch).
  19. JavaCall.jl
  20. Mathematica.jl
  21. Julia aus Mathematica aufrufen. Abgerufen am 9. April 2015 (englisch).
  22. Verwendung von Rust in Perl und Julia. Archiviert vom Original am 16. Februar 2020; abgerufen am 15. Mai 2015 (englisch): „Julia is even easier to use [than Perl, in the given example]“
  23. Stefan Karpinski: Julia and the Rust Language. 5. September 2013, abgerufen am 15. Mai 2015 (englisch): „Since Rust uses the C ABI, we can already call Rust libraries just as well as C. I have no idea what Erlang’s ABI is like, but if it can expose a C ABI, then we can call it. Beyond that would take some work but is certainly possible.“
  24. Polyglot.jl
  25. ICU.jl
  26. UnicodeExtras.jl
  27. Blink.jl
  28. JGUI.jl
  29. ODBC.jl
  30. Lazy.jl
  31. RCall.jl
  32. Rif.jl
  33. RJulia.jl
  34. Gadfly.jl
  35. distributionsjl.readthedocs.org
  36. dmbates.blogspot.com
  37. github.com
  38. femtolisp
  39. Julia: A Fast Dynamic Language for Technical Computing. (PDF) 2012, archiviert vom Original am 2. Dezember 2012; abgerufen am 25. Juni 2015 (englisch).
  40. Mark Gibbs: Pure and Julia are cool languages worth checking out. In: Network World. 9. Januar 2013, abgerufen am 21. März 2017 (englisch).
  41. github.com WIP: Incremental GC
  42. Rainald Menge-Sonnentag: Programmiersprachen: Finanzspritze soll Julia auf Release-Kurs bringen. In: heise Developer. Heise Medien GmbH & Co. KG, 16. November 2015, abgerufen am 18. November 2015.
  43. The Julia Blog Julia 1.0
  44. Support MCJIT. Abgerufen am 26. Mai 2015 (englisch).
  45. Using MCJIT with the Kaleidoscope Tutorial. 22. Juli 2013, abgerufen am 26. Mai 2015 (englisch).
  46. README.arm.md auf GitHub. Abgerufen am 16. Januar 2022 (englisch).
  47. Cross-compiling for ARMv6. Abgerufen am 16. Mai 2015 (englisch): „I believe #10917 should fix this. The CPU used there arm1176jzf-s.“
  48. ARM build failing during bootstrap on Raspberry Pi 2. Abgerufen am 16. Mai 2015 (englisch): „I can confirm (FINALLY) that it works on the Raspberry Pi 2 […] I guess we can announce alpha support for arm in 0.4 as well.“
  49. github.com
  50. Make.powerpc auf GitHub
  51. Porting Julia to PowerPC. Abgerufen am 9. Mai 2015 (englisch): „Wow, the latest git allows me to build to completion.“
  52. Unable to use ‘libjulia.dll’ in a C# application on Windows 8.1. (englisch).
  53. github.com
  54. Embedding Julia
  55. Support compiling to JavaScript with Emscripten. Abgerufen am 28. Januar 2015 (englisch).

Read other articles:

هذه المقالة بحاجة لصندوق معلومات. فضلًا ساعد في تحسين هذه المقالة بإضافة صندوق معلومات مخصص إليها. جزء من سلسلة مقالات حولالتصوف المفاهيم الشهادتان الصلاة الصوم الحج الزكاة الطهارة الشعر الصوفي علم النفس الصوفي الأبدال الإحسان الإنسان الكامل اللطائف الستة البقاء الدروي�...

 

2010 soundtrack album by David Byrne and Fatboy SlimHere Lies LoveSoundtrack album by David Byrne and Fatboy SlimReleased5 April 2010 (2010-04-05)Recorded2008–2009StudioSouth Hell Studios (New York City, United States)Length90:06LanguageEnglishLabelTodomundo/NonesuchProducerDavid Byrne, Fatboy Slim, Cagedbaby (Thomas Gandey), Patrick Dillett and Los Amigos InvisiblesDavid Byrne chronology Everything That Happens Will Happen on This Tour – David Byrne on Tour: Songs...

 

Artikel ini perlu dikembangkan agar dapat memenuhi kriteria sebagai entri Wikipedia.Bantulah untuk mengembangkan artikel ini. Jika tidak dikembangkan, artikel ini akan dihapus. Halaman artikel ini diterjemahkan, sebagian atau seluruhnya, dari halaman di en.wikipedia yang berjudul « The Armenian Massacres in Ottoman Turkey ». Lihat pula sejarah suntingan halaman aslinya untuk melihat daftar penulisnya. The Armenian Massacres in Ottoman Turkey: A Disputed Genocide adalah sebuah buku...

Синелобый амазон Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:ЗавропсидыКласс:Пт�...

 

American politician (1829–1908) Senator Allison redirects here. For other uses, see Senator Allison (disambiguation). William B. AllisonAllison in 1870Chairman of the Senate Republican ConferenceIn officeMarch 4, 1897 – August 4, 1908Preceded byJohn ShermanSucceeded byEugene HaleUnited States Senatorfrom IowaIn officeMarch 4, 1873 – August 4, 1908Preceded byJames HarlanSucceeded byAlbert B. CumminsMember of the U.S. House of Representativesfrom Iowa's 3rd d...

 

Cet article est une ébauche concernant une localité italienne et le Piémont. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Salza di Pinerolo Salza di Pinerolo Noms Nom français Salze-de-Pignerol Nom occitan Salso Nom piémontais Sansa Administration Pays Italie Région Piémont  Ville métropolitaine Turin  Code postal 10060 Code ISTAT 001234 Code cadastral H734 Préfixe tel. 0121 Démographie Ge...

Zona waktu IndonesiaPeta zona waktu Indonesia Waktu terkini Waktu Indonesia Barat (UTC+07:00)04:58, May 12, 2024 WIB [refresh]Waktu Indonesia Tengah (UTC+08:00)05:58, May 12, 2024 WITA [refresh]Waktu Indonesia Timur (UTC+09:00)06:58, May 12, 2024 WIT [refresh] Saat ini, Indonesia terbagi atas tiga zona waktu, yaitu:[1] Waktu Indonesia Barat (WIB), dengan waktu tujuh jam lebih cepat daripada Waktu Universal Terkoordinasi (UTC) (UTC+07:00) dan memiliki bujur tolok 105°BT. WIB mencakup ...

 

DC Extended Universe character This article is about the DC character. For the TV series, see Peacemaker (TV series). For the Eastenders character, see Chris Smith (EastEnders). Fictional character PeacemakerChristopher Chris SmithDC Extended Universe and DC Universe characterPromotional still of John Cena as Peacemaker in The Suicide Squad (2021)First appearanceThe Suicide Squad (2021)Based onPeacemakerby Joe GillPat BoyetteAdapted byJames GunnPortrayed byJohn CenaQuinn Bennett (young)Voiced...

 

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)&#...

19th century American politicians For other people named William Harries, see William Harries (disambiguation). William HarriesHarries circa 1911. Houston County Historical Society (Caledonia, MN)Member of the U.S. House of Representativesfrom Minnesota's 1st districtIn officeMarch 4, 1891 – March 3, 1893Preceded byMark H. DunnellSucceeded byJames Albertus Tawney Personal detailsBorn(1843-01-15)January 15, 1843Dayton, Ohio, U.S.DiedJuly 23, 1921(1921-07-23) (aged 7...

 

County in Maryland, United States County in MarylandKent CountyCountyKent County Courthouse in Chestertown FlagSealLocation within the U.S. state of MarylandMaryland's location within the U.S.Coordinates: 39°14′N 76°06′W / 39.23°N 76.1°W / 39.23; -76.1Country United StatesState MarylandFoundedDecember 30, 1642Named forKentSeatChestertownLargest townChestertownArea • Total413 sq mi (1,070 km2) • Land277 sq...

 

Railway station in Echizen, Fukui Prefecture, Japan Takefu Station武生駅Takefu Station in August 2019General informationLocation1-1 Fuchu, Echizen-shi, Fukui-ken 915-0071JapanCoordinates35°54′12″N 136°10′15″E / 35.903321°N 136.170816°E / 35.903321; 136.170816Operated byHapi-Line FukuiLine(s)■ Hapi-Line Fukui Line Distance35.1 km from TsurugaPlatforms1 side + 1 island platformsTracks3ConstructionStructure typeGround levelAccessibleYesOther informationSt...

John Locke, Bapak Liberalisme dan Konstitusionalisme modern dengan konsep Trias Politica-nya yang membatasi kekuasaan seroang Kepala Negara Konstitusionalisme (serapan dari Belanda: constitutionalismecode: nl is deprecated ) adalah suatu konsep atau gagasan yang berpendapat bahwa kekuasaan pemerintah perlu dibatasi, agar penyelenggaraan negara tidak sewenang-wenang atau otoriter. Ide konstitusionalisme ini kemudian diadopsi oleh para Founding Fathers Amerika Serikat sebagai dasar mereka merum...

 

В Википедии существуют статьи о других людях с именем Амвросий и фамилией Зертис. Архиепископ Амвросий Архиепископ Московский 18 января 1768 — 16 (27) сентября 1771 Церковь Русская православная церковь Предшественник Тимофей (Щербацкий) Преемник Геннадий (Драниц�...

 

Device to help infants walk A baby in a baby walker, 1905 A 6-month-old child sitting in a baby walker A baby walker is a device that can be used by infants who cannot walk on their own to move from one place to another. Modern baby walkers are also for toddlers. They have a base made of hard plastic sitting on top of wheels and a suspended fabric seat with two leg holes. In the US, baby walkers are responsible for about 2000 injuries annually to children serious enough to require a trip to t...

Jewelry worn around the wrist For other uses, see Bracelet (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Bracelet – news · newspapers · books · scholar · JSTOR (October 2012) (Learn how and when to remove this message) A decorative gold charm bracelet showing a heart-shaped locket, seahor...

 

Stasiun Ichigaya市ヶ谷駅Peron Stasiun Ichigaya JR, 2015LokasiPrefekturTokyo(Lihat stasiun lainnya di Tokyo)KotaTokyoDistrik kotaChiyodaSejarahDibuka1895Layanan kereta apiOperatorJR EastTokyo MetroToei SubwayJalurJalur Chūō-SōbuJalur Tokyo Metro YurakuchoJalur Tokyo Metro NambokuJalur Toei Shinjuku Stasiun Ichigaya (市ヶ谷駅code: ja is deprecated , Ichigaya-eki) adalah stasiun kereta di Chiyoda, Tokyo, Jepang. Stasiun ini telah beroperasi sejak 6 Maret 1895.[1] Layanan Jalur...

 

Solferino komune di Italia Tempat Negara berdaulatItaliaDaerah di ItaliaLombardyProvinsi di ItaliaProvinsi Mantova Ibu kota dariQ21207864 NegaraItalia Ibu kotaSolferino PendudukTotal2.610  (2023 )GeografiLuas wilayah13,08 km² [convert: unit tak dikenal]Ketinggian124 m Berbatasan denganCastiglione delle Stiviere Cavriana Guidizzolo Medole Lonato del Garda SejarahSanto pelindungNikolas dari Myra Informasi tambahanKode pos46040 Zona waktuUTC+1 UTC+2 Kode telepon0376 ID ISTAT020063 Kod...

Ship of the line of the French Navy For other ships with the same name, see French ship Généreux. Le Généreux in action against HMS Leander History France NameGénéreux NamesakeGenerosity BuilderRochefort shipyard Launched12 June (or July) 1785 Capturedby Britain, 1800 Great Britain NameGénéreux Acquired1800 Nickname(s)Jenny Rooks[1] FateBroken up in 1816 General characteristics [2] Class and typeTéméraire-class ship of the line Displacement 1,966 tonnes 3,260 tonnes ...

 

Questa voce sull'argomento missioni spaziali è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Il Jovian Europa Orbiter (JEO) era uno studio dell'Agenzia spaziale europea per una missione verso Giove. La missione comprendeva anche l'esplorazione della superficie ghiacciata della luna Europa[1] e la Jovian Minisat Explorer (JME), una sonda per esplorare l'atmosfera di Giove, per circa 2 ore prima ...