Julia: Difference between revisions

4,974 bytes removed ,  13 June 2020
no edit summary
No edit summary
Line 6: Line 6:
| screenshot = <!-- filename is enough -->
| screenshot = <!-- filename is enough -->
| screenshot caption =  
| screenshot caption =  
| paradigm = [[multi-paradigm programming language|Multi-paradigm]]: [[multiple dispatch]] (core), [[procedural programming|procedural]], [[functional programming|functional]], [[metaprogramming|meta]], [[multistaged programming|multistaged]]<ref>{{cite web |url=https://medium.com/@acidflask/smoothing-data-with-julia-s-generated-functions-c80e240e05f3#.615wk3dle |title=Smoothing data with Julia's @generated functions |quote=Julia's generated functions are closely related to the multistaged programming (MSP) paradigm popularized by Taha and Sheard, which generalizes the compile time/run time stages of program execution by allowing for multiple stages of delayed code execution. |date=5 November 2015 |accessdate=9 December 2015}}</ref>
| paradigm = [[Wikipedia:multi-paradigm programming language|Multi-paradigm]]: [[Wikipedia:multiple dispatch]] (core), [[Wikipedia:procedural programming|procedural]], [[Wikipedia:functional programming|functional]], [[Wikipedia:metaprogramming|meta]], [[Wikipedia:multistaged programming|multistaged]]
| released = {{Start date and age|2012}}<ref name="announcement"/>
| released = {{Start date and age|2012}}
| designer = Jeff Bezanson, [[Alan Edelman]], [[Stefan Karpinski]], [[Viral B. Shah]]
| designer = Jeff Bezanson, [[Wikipedia:Alan Edelman]], [[Wikipedia:Stefan Karpinski]], [[Wikipedia:Viral B. Shah]]
| developer = Jeff Bezanson, [[Stefan Karpinski]], [[Viral B. Shah]], and other contributors<ref name="license">{{cite web
| developer = Jeff Bezanson, [[Wikipedia:Stefan Karpinski]], [[Wikipedia:Viral B. Shah]], and other contributors
  | url = https://github.com/JuliaLang/julia/blob/master/LICENSE.md
| typing = [[Wikipedia:dynamic programming language|Dynamic]], [[Wikipedia:nominal type system|nominative]], [[Wikipedia:parametric polymorphism|parametric]], [[Wikipedia:optional typing|optional]]
  | title = LICENSE.md
  | publisher = [[GitHub]]
  }}</ref><ref>{{cite web
  | url = https://github.com/JuliaLang/julia/graphs/contributors
  | title = Contributors to JuliaLang/julia
  | publisher = [[GitHub]]
  }}</ref>
| latest release version = 1.2.0<ref>{{cite web|author= |url=https://github.com/JuliaLang/julia/releases/tag/v1.2.0 |title=v1.2.0 |website=Github.com |date=2019-08-20 |accessdate=2019-08-20}}</ref>
| latest release date = {{Start date and age|2019|08|20|df=yes}}
| latest preview version = 1.3.0-rc2<ref>{{cite web|url=https://github.com/JuliaLang/julia/releases/tag/v1.3.0-rc2|title=v1.3.0-rc2 |website=GitHub|language=en|access-date=2019-09-13}}</ref>
| latest preview date = {{Start date and age|2019|09|12|df=yes}} / 1.4.0-DEV with daily updates
| typing = [[dynamic programming language|Dynamic]], [[nominal type system|nominative]], [[parametric polymorphism|parametric]], [[optional typing|optional]]
| implementations =  
| implementations =  
| dialects =  
| dialects =  
| influenced by = {{startflatlist}}
* [[C (programming language)|C]]<ref name="announcement"/>
* [[Lisp (programming language)|Lisp]]<ref name="announcement"/><!--only the parser implemented by femtolisp, a [[Scheme (programming language)|Scheme]]-like implementation (see: "unsupported" "julia --lisp" that invokes it, but its only influence on the language/syntax – Lisp-like macros? Maybe not even Lisp's CLOS "multimethods"? as Dylan with "multiple dispatch" was cut from the list-->
* [[Lua (programming language)|Lua]]<ref name="Introduction">{{Cite web|url=https://docs.julialang.org/en/stable/|title=<!--Chapter: Introduction under --> Home · The Julia Language|website=docs.julialang.org|language=en|access-date=2018-08-15}}</ref>
* [[Mathematica]]<ref name="announcement"/> (strictly its [[Wolfram Language]]<ref name="announcement"/><ref>{{cite web |url=https://fatiherikli.github.io/programming-language-network/ |title=Programming Language Network |publisher=GitHub |accessdate=6 December 2016}}</ref>)
* [[MATLAB]]<ref name="announcement"/>
* [[Perl]]<ref name="Introduction"/>
* [[Python (programming language)|Python]]<ref name="Introduction"/>
* [[R (programming language)|R]]<ref name="announcement"/>
* [[Ruby (programming language)|Ruby]]<ref name="Introduction"/>
* [[Scheme (programming language)|Scheme]]<ref name="JuliaCon2016">{{cite web |url=http://www.juliacon.org |title=JuliaCon 2016 |publisher=JuliaCon |quote="He has co-designed the programming language Scheme, which has greatly influenced the design of Julia"|accessdate=6 December 2016}}</ref>
{{endflatlist}}
| influenced =  
| influenced =  
| programming language = Julia, [[C (programming language)|C]],<!--"Remove when C11 is required for C code" https://github.com/JuliaLang/julia/search?utf8=%E2%9C%93&q=C11&type=
| license = [[Wikipedia:MIT License|MIT]] (core), [[Wikipedia:General Public Licence|GPL v2]]; a [[Wikipedia:makefile]] option omits GPL libraries
 
"These roughly follows the c11/c++11 memory model [..] The only exception is the GC safepoint and GC state transitions [..] We use the compiler intrinsics to implement a similar API to the c11/c++11" https://github.com/JuliaLang/julia/blob/44f3d7c921cbe50105a54258db2febb65a4b9d44/src/julia_threads.h
--> [[C++]], [[Scheme (programming language)|Scheme]], [[LLVM]]<ref name="JuliaHome">{{cite web |url=https://julialang.org/ |title=Julia |author=<!--Staff writer(s); no by-line.--> |date=<!--None listed.--> |website=Julia |publisher=NumFocus project |access-date=9 December 2016 |quote=Julia's Base library, largely written in Julia itself, also integrates mature, best-of-breed open source C and Fortran libraries for ...}}</ref>
| platform = Tier 1: [[x86-64]], [[IA-32]], [[CUDA]]<br> Tier 2: [[ARM architecture|ARM]] (both 32- and 64-bit) and Tier&nbsp;3: [[PowerPC]]<br> Also has web browser support (for [[JavaScript]] and [[WebAssembly]])<ref name="WebAssembly"/>
| operating system = [[Linux]], [[macOS]], [[Microsoft Windows|Windows]] and <!-- no longer just community support for --> [[FreeBSD]]
| license = [[MIT License|MIT]] (core),<ref name="license"/><!--for core language while, by default, "the environment, which consists of the language, user interfaces, and libraries, is under the GPL"--> [[General Public Licence|GPL v2]];<ref name="JuliaHome" /><ref>{{cite newsgroup|url=https://groups.google.com/forum/#!topic/julia-users/v4OjEK7azBs |title=Non-GPL Julia? |website=Groups.google.com |date= |accessdate=2017-05-31}}</ref><!--as some few libraries used by the standard library (that can be excluded) are [[copyleft]]--> a [[makefile]] option omits GPL libraries<ref>{{cite web |url=https://github.com/JuliaLang/julia/pull/10870 |title=Introduce USE_GPL_LIBS Makefile flag to build Julia without GPL libraries |quote=Note that this commit does not remove GPL utilities such as git and busybox that are included in the Julia binary installers on Mac and Windows.<!--dropped as of 0.5 then only libgit2--> It allows building from source with no GPL library dependencies.}}</ref>
| file ext = .jl
| file ext = .jl
| website = {{Official website|https://JuliaLang.org|name=JuliaLang.org}}
| website = {{Official website|https://JuliaLang.org|name=JuliaLang.org}}