Content deleted Content added
m Unicode 16.0 on DEV/next version. 1.5.1 on current. |
m Proper minus signs and other cleanup. Report bugs, errors, and suggestions at User talk:MinusBot |
||
Line 128:
Both Julia 0.7<ref>{{Cite web|url=https://discourse.julialang.org/t/what-is-julia-0-7-how-does-it-relate-to-1-0/9994|title=What is Julia 0.7? How does it relate to 1.0?|website=JuliaLang|date=26 March 2018|language=en|access-date=2018-10-17|archive-date=27 July 2018|archive-url=https://web.archive.org/web/20180727054635/https://discourse.julialang.org/t/what-is-julia-0-7-how-does-it-relate-to-1-0/9994|url-status=live}}</ref> and version 1.0 were released on 8 August 2018. Work on Julia 0.7 was a "huge undertaking" (e.g., because of an "entirely new optimizer"), and some changes were made to semantics, e.g. the [[iteration]] interface was simplified.<ref>{{Cite web |url=https://julialang.org/blog/2018/07/iterators-in-julia-0.7 |title=Writing Iterators in Julia 0.7 |first=Eric |last=Davies |website=julialang.org |access-date=2018-08-05 |archive-date=6 August 2018 |archive-url=https://web.archive.org/web/20180806024646/https://julialang.org/blog/2018/07/iterators-in-julia-0.7 |url-status=live }}</ref>
<!--
Julia 1.1 was released in January 2019 with a new "exception stack" feature. Julia 1.2 was released in August 2019 with some built-in support for web browsers.<ref>{{Cite web|title=Sys.isjsvm([os])|date=2019-08-20|url=https://github.com/JuliaLang/julia/blob/75c10e435b2b9c947422ad38fa0b020595d3f747/base/sysinfo.jl#L401|quote=Predicate for testing if Julia is running in a JavaScript VM (JSVM), including e.g. a WebAssembly JavaScript embedding in a web browser.|publisher=The Julia Language|access-date=2019-08-20}}</ref> Julia 1.3 added composable multi-threaded parallelism and a binary artifacts system for Julia packages.<ref>{{Cite web|url=https://julialang.org/blog/2019/11/artifacts|title=The Julia Language|first1=Jeff|last1=Bezanson|first2=Stefan|last2=Karpinski|first3=Viral|last3=Shah|first4=Alan|last4=Edelman|website=julialang.org|access-date=2019-12-13}}</ref> Julia 1.4 added syntax for generic array indexing to handle e.g. [[zero-based numbering#Usage in programming languages|0-based]] arrays.<ref>{{Cite web|url=https://github.com/JuliaLang/julia/pull/33946|title=support a[begin] for a[firstindex(a)] by stevengj · Pull Request #33946 · JuliaLang/julia|website=GitHub|language=en|access-date=2020-04-07}}</ref> The memory model was also changed.<ref>{{Cite web|url=https://github.com/JuliaLang/julia/pull/32448|title=For structs with all isbits or isbitsunion fields, allow them to be s<!-…->tored inline in arrays <!-by quinnj-> · Pull Request #32448 · JuliaLang/julia|author=quinnj|quote=I still keep running into problems that this causes internally because it was a breaking change that changes assumptions made by some users and inference/codegen.|website=GitHub|language=en|access-date=2020-04-07}}</ref> Julia 1.5 released in August 2020 added [[record and replay debugging]] support,<ref>{{Cite web|title=Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting|url=https://julialang.org/blog/2020/05/rr/|date=2 May 2020 |first=Keno |last=Fischer|website=julialang.org|language=en|quote=Overhead for recording of single threaded processes is generally below 2x, most often between 2% and 50% (lower for purely numerical calculations, higher for workloads that interact with the OS). Recording multiple threads or processes that share memory (as opposed to using kernel-based message passing) is harder. [..] As expected, the threads test is the worst offender with about 600% overhead. |access-date=2020-05-05}}</ref> for Mozilla's [[rr (debugging)|rr]] tool. <!- It can be used manually in earlier versions, without Julia's help. ->
The release changed the behavior in the [[read–eval–print loop|REPL]] (soft scope) to the one used in [[Project Jupyter|Jupyter]], but fully compatible with non-REPL code. Most of the [[thread (computing)|thread API]] was marked as stable, and with this release "arbitrary immutable objects—regardless of whether they have fields that reference mutable objects or not—can now be stack allocated",<ref>{{Cite web|author1=Jeff Bezanson |author2=Stefan Karpinski |author3=Viral Shah |author4=Alan Edelman |display-authors=etal |title=The Julia Language|url=https://julialang.org/blog/2020/08/julia-1.5-highlights/|access-date=2020-08-14|quote=There are some size-based limits to which structs can be stack allocated, but they are unlikely to be exceeded in practice.|website=julialang.org|language=en}}</ref> reducing heap allocations, e.g. <code>views</code> are no longer allocating. <!- "± and ∓ are now unary operators as well, like + or -" -> Julia 1.5 targeted so-called "time-to-first-plot" (TTFP, also called TTFX, for first X, the more general problem) performance, in general, the speed of compilation itself (as opposed to performance of the generated code), and added tools for developers to improve package loading.<ref>{{Cite web|author1=Jeff Bezanson |author2=Stefan Karpinski |author3=Viral Shah |author4=Alan Edelman |display-authors=etal |title=The Julia Language|url=https://julialang.org/blog/2020/08/invalidations/|access-date=2020-09-16|website=julialang.org|language=en}}</ref>
Line 195:
By default, the Julia runtime must be pre-installed as user-provided source code is run. Alternatively, Julia (GUI) apps can be quickly bundled up into a single file with ''AppBundler.jl''<ref name=AppBundler.jl>{{Cite web |title=AppBundler.jl |date=2023-12-13 |url=https://github.com/PeaceFounder/AppBundler.jl |access-date=2023-12-18 |publisher=PeaceFounder |archive-date=18 December 2023 |archive-url=https://web.archive.org/web/20231218172216/https://github.com/PeaceFounder/AppBundler.jl |url-status=live }}</ref> for "building Julia GUI applications in modern desktop application installer formats. It uses Snap for Linux, [[.msix|MSIX]] for Windows, and DMG for MacOS as targets. It bundles full Julia within the app".<ref>{{Cite web |date=2023-11-30 |title=[ANN] AppBundler.jl - Bundle Your Julia GUI Application |url=https://discourse.julialang.org/t/ann-appbundler-jl-bundle-your-julia-gui-application/106971 |access-date=2023-12-18 |website=Julia Programming Language |language=en |archive-date=4 September 2024 |archive-url=https://web.archive.org/web/20240904035046/https://discourse.julialang.org/t/ann-appbundler-jl-bundle-your-julia-gui-application/106971 |url-status=live }}</ref> ''PackageCompiler.jl'' can build standalone [[executable]]s that need no Julia source code to run.<ref name="PackageCompiler.jl">{{Cite web|title=GitHub - JuliaLang/PackageCompiler.jl: Compile your Julia Package.|date=2019-02-14|url=https://github.com/JuliaLang/PackageCompiler.jl|publisher=The Julia Language|access-date=2019-02-15|archive-date=23 March 2019|archive-url=https://web.archive.org/web/20190323182857/https://github.com/JuliaLang/PackageCompiler.jl|url-status=live}}</ref>
In Julia, everything is an object, much like object-oriented languages; however, unlike most object-oriented languages, all functions use [[multiple dispatch]] to select methods, rather than single dispatch.
Most programming paradigms can be implemented using Julia's [[homoiconicity|homoiconic]] macros and packages. Julia's [[Macro (computer science)#Syntactic macros|syntactic macros]] (used for [[metaprogramming]]), like Lisp macros, are more powerful than [[Macro (computer science)#Text-substitution macros|text-substitution macros]] used in the [[preprocessor]] of some other languages such as C, because they work at the level of [[abstract syntax tree]]s (ASTs). Julia's macro system is [[hygienic macro|hygienic]], but also supports deliberate capture when desired (like for [[anaphoric macro]]s) using the <code>esc</code> construct.
Line 300:
* [[ASML Holding|ASML]], for [[hard real-time]] programming with their machines<ref>{{Cite web |title=Towards Using Julia for Real-Time applications in ASML JuliaCon 2022 |url=https://pretalx.com/juliacon-2022/talk/GUQBSE/ |access-date=2023-02-23 |website=pretalx.com |date=27 July 2022 |language=en |archive-date=23 February 2023 |archive-url=https://web.archive.org/web/20230223164311/https://pretalx.com/juliacon-2022/talk/GUQBSE/ |url-status=live }}</ref>
* The Climate Modeling Alliance<ref>{{Cite web |title=Home - CliMA |url=https://clima.caltech.edu/ |website=CliMA – Climate Modeling Alliance |access-date=18 June 2023 |archive-date=18 June 2023 |archive-url=https://web.archive.org/web/20230618064622/https://clima.caltech.edu/ |url-status=live }}</ref> for climate change modeling<ref name="Julia_Nvidia">{{Cite press release |title=Julia Computing Brings Support for NVIDIA GPU Computing on Arm Powered Servers - JuliaHub |url=https://juliahub.com/blog/2019/12/nvidia-ngc-arm/ |access-date=2022-11-16 |website=juliahub.com |archive-date=16 November 2022 |archive-url=https://web.archive.org/web/20221116115917/https://juliahub.com/blog/2019/12/nvidia-ngc-arm/ |url-status=live }}</ref>
* [[CERN]], to analyze data from the [[Large Hadron Collider]] ([[LHCb experiment]])<ref>{{Cite web |date=27 September 2021 |title=Julia for HEP Mini-workshop |url=https://indico.cern.ch/event/1074269/ |access-date=2022-08-23 |website=indico.cern.c h |quote=Julia and the first observation of Ω<sup>
* NASA and the [[Jet Propulsion Laboratory]] use Julia to model spacecraft separation dynamics,<ref>{{Cite web |title=Modeling Spacecraft Separation Dynamics in Julia - Jonathan Diegelman | website=[[YouTube]] | date=9 March 2021 |url=https://www.youtube.com/watch?v=tQpqsmwlfY0 |language=en |access-date=2021-09-06 |archive-date=6 September 2021 |archive-url=https://web.archive.org/web/20210906221540/https://www.youtube.com/watch?v=tQpqsmwlfY0 |url-status=live }}</ref><ref>{{Cite web |title=Circuitscape/Circuitscape.jl |date=2020-02-25 |url=https://github.com/Circuitscape/Circuitscape.jl |publisher=Circuitscape |access-date=2020-05-26 |archive-date=30 July 2020 |archive-url=https://web.archive.org/web/20200730074511/https://github.com/Circuitscape/Circuitscape.jl |url-status=live }}</ref><ref>{{Cite web |title=Conservation through Coding: 5 Questions with Viral Shah {{!}} Science Mission Directorate |url=https://science.nasa.gov/earth-science/applied-sciences/making-space-for-earth/5-questions-with-viral-shah |access-date=2020-05-26 |website=science.nasa.gov |archive-date=25 May 2020 |archive-url=https://web.archive.org/web/20200525212814/https://science.nasa.gov/earth-science/applied-sciences/making-space-for-earth/5-questions-with-viral-shah |url-status=dead }}</ref> analyze [[TRAPPIST]] [[exoplanet]] datasets,<ref>{{Cite web |title=Julia in the Wild - Julia Data Science |url=https://juliadatascience.io/julia_wild |access-date=2022-09-12 |website=juliadatascience.io |archive-date=12 September 2022 |archive-url=https://web.archive.org/web/20220912202632/https://juliadatascience.io/julia_wild |url-status=live }}</ref><ref>{{Cite web |title=Seven Rocky TRAPPIST-1 Planets May Be Made of Similar Stuff |url=https://exoplanets.nasa.gov/news/1669/seven-rocky-trappist-1-planets-may-be-made-of-similar-stuff/ |access-date=2022-10-06 |website=Exoplanet Exploration: Planets Beyond our Solar System |archive-date=6 October 2022 |archive-url=https://web.archive.org/web/20221006193612/https://exoplanets.nasa.gov/news/1669/seven-rocky-trappist-1-planets-may-be-made-of-similar-stuff/ |url-status=live }}</ref> and analyze [[cosmic microwave background]] data from the [[Big Bang]]<ref>{{Cite web |title=Julia in Astronomy & Astrophysics Research {{!}} Eric B. Ford {{!}} JuliaCon 2022 | website=[[YouTube]] | date=25 July 2022 |url=https://www.youtube.com/watch?v=vj1uzilanQI |language=en |access-date=2022-10-06 |archive-date=6 October 2022 |archive-url=https://web.archive.org/web/20221006193235/https://www.youtube.com/watch?v=vj1uzilanQI |url-status=live }}</ref>
* The Brazilian [[National Institute for Space Research|INPE]], for space missions and [[satellite]] simulations<ref>{{Cite web |title=JuliaSpace/SatelliteToolbox.jl |date=2020-05-20 |url=https://github.com/JuliaSpace/SatelliteToolbox.jl |publisher=JuliaSpace |access-date=2020-05-26 |archive-date=16 June 2021 |archive-url=https://web.archive.org/web/20210616105212/https://github.com/JuliaSpace/SatelliteToolbox.jl |url-status=live }}</ref>
Line 360:
[[Category:Dynamically typed programming languages]]
[[Category:Free and open source compilers]]
[[Category:Free and open source interpreters]]<!-- note there's also a Julia interpreter (not on by default); besides FemtoLisp.-->
[[Category:Free computer libraries]]
|