Talk:Julia (programming language)/Archive 2
![]() | This is an archive of past discussions about Julia (programming language). Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |
Archive 1 | Archive 2 | Archive 3 |
Focus on Viral Shah
An anonymous contributor has changed the article to emphasize Viral Shah's role. He is now listed first in the "Designed by" and "Developer" lists in the sidebar, and is listed first in the "History" section. See [1]. I'd much prefer the previous order of the contributors, which follows the order of authors in the scientific article "Julia: A Fast Dynamic Language for Technical Computing". I will revert the author list ordering now, and will look for other changes to make the article less Viral-Shah-focused. Sanpitch (talk) 03:57, 22 May 2017 (UTC)
- FWIW, I think the order should be "Jeff Bezanson, Alan Edelman, Stefan Karpinski, and Viral Shah", as in the published SIAM Review article [2]. ViralBShah (talk) 15:26, 12 Sep 2017 (EST)
- The history section could use more references, yet at least it's a bit more balanced now. Sanpitch (talk) 02:25, 9 June 2017 (UTC)
External links modified
Hello fellow Wikipedians,
I have just modified one external link on Julia (programming language). Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
- Added archive https://web.archive.org/web/20120112000323/http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-December/046440.html to http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-December/046440.html
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}}
(last update: 5 June 2024).
- If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
- If you found an error with any archives or the URLs themselves, you can fix them with this tool.
Cheers.—InternetArchiveBot (Report bug) 09:38, 2 December 2017 (UTC)
Julia doesn't use a VM (i.e. bytecode at at execution time)
Enterprisey-alt, about this revertþ I put it in, and trying to give the correct meaning of JIT and LLVM, that can easily be misunderstood, without using WP:OR wording.
I also put in "While Julia uses JIT[45] (MCJIT[46] from LLVM)" text, and originally the dropped text on VM may be been closer to that text, meaning LLVM. I think if LLVM stays in the article (as it should as it's the truth, it's a major component of Julia), then it (and JIT) should be explained. comp.arch (talk) 13:23, 14 February 2018 (UTC)
Release History in table format
Wouldn't it be nice to have an overview of the released version in some kind of tabular format? I would recommend a simpler version of this table: debian release history. HerrHartmuth (talk) 18:14, 13 November 2018 (UTC)
Client side?
I'm a bit surprised to see Julia is listed as client side. Sure, you can use Escher to run Julia code interactively through a web application, but the code is still run server-side if I understand correctly (please correct me if I am wrong). I am also not aware of any possibility yet to transcompile julia to javascript like transcrypt does for Python, eg. in PyReact. This would allow Julia to be written for execution on client-side (as equivalent javascript), but that doesn't exist (yet). --M Killian (talk) 11:31, 1 September 2018 (UTC)
- See https://github.com/Keno/julia-wasm for a project which runs Julia on Wasm. That page links to https://keno.github.io/julia-wasm/website/repl.htm, which is working for me and is fun to play with. At JuliaCon 2018, someone (forgot his name) presented a poster that I can't find a link for on compiling Julia to wasm. So even if client-side is not the main focus of Julia, it is being done. Sanpitch (talk) 15:46, 9 February 2019 (UTC)
Jeff Bezanson

There has been some recent activity pushing for increased coverage of Jeff Bezanson. For example, Draft:Jeffrey Werner "Jeff" Bezanson, User:Sanpitch/Jeff Bezanson. Wikipedia:Articles for deletion/Jeff Bezanson ("Redirect to Julia (programming language)#History") cannot be ignored. That decision, although not clearly stated, is that WP:BIO1E applies to Jeff Bezanson. Consequently, any well sourced information on him is assoicated with Julia, and belongs on this page.
If the AfD is to be overturned, based on new sources, the place to establish a consensus to do that is here, on this talk page, the talk page of the redirect target. --SmokeyJoe (talk) 00:58, 23 November 2018 (UTC)
- I think that Bezanson is notable enough for a page; I've updated User:Sanpitch/Jeff Bezanson to include the fact that he and fellow creators of Julia won the 2019 J. H. Wilkinson Prize for Numerical Software; please look at that page to see links to his publications and citations supporting his notability. Re WP:BIO1E, if Julia is significant enough that WP:BIO1E does not apply to Stefan Karpinski and Viral B. Shah (the other primary authors of Julia), then it certainly does not apply to Bezanson. I suggest the page be recreated. Sanpitch (talk) 03:31, 13 February 2019 (UTC)
- BTW, SmokeyJoe I'm very curious; why did you put image of Bezanson here? Sanpitch (talk) 03:40, 13 February 2019 (UTC)
- Hi Sanpitch. I have looked at the page, and I think it has not overcome the reasons expressed at AfD that Jeff Bezanson should not have a stand alone article. I see that you have WP:Reference bombed you draft. When this happens, I think the response should always be to put the onus on the author to provide the 2 to 3 best notability-attesting sources, i.e. sources that are reliable, independent of the subject, and discuss the subject in depth. The first four fail, and I don't see value in personally checking the next 13.
- The same applies to Stefan Karpinski and Viral B. Shah. Wikipedia:Other stuff exists. None of the three have WP:BIO-passing of WP:GNG-passing sources. WP:BIO1E applies to all three, all three should be covered in this article only, unless someone can point to 2 to 3 notability attesting sources for each.
- The image of Bezanson? It is a free image that illustrated his Wikipedia page when it was at AfD. It will attract attention of anyone who knows about him and may no about more, difficult-to-access, sources. --SmokeyJoe (talk) 05:29, 13 February 2019 (UTC)
- I made a few edits to User:Sanpitch/Jeff Bezanson, including making sure that the first three references were those which indicate notability. You talked about an "in depth" discussion; isn't a short article more appropriate for a notable-enough, yet not-super-notable person?
- To be clear, I'm not going to push hard for an article. Sanpitch (talk) 18:52, 13 February 2019 (UTC)
- Hi Sanpitch. Good, I will not "push hard" against it either.
- "in depth"? That is a matter of debate. How much material does it take to be "in depth"? For the deletion line, I take a very low bar of two consecutive sentences that say something qualitative about the subject. Eg "Joe Blogs is known for working really hard. His competition really respects him". Note that "talking about" means the author is making creative comment on the subject, it is not repeating facts from anywhere, least of all from the subject.
- Looking at User:Sanpitch/Jeff Bezanson and its first three sources:
- (1) https://epubs.siam.org/doi/10.1137/141000671
- Publication by the subject. Not independent. Does not attest Wikipedia-notability. Wikipedia-notability attesting sources must be independent. Further, the source does not comment on Bezanson.
- (2) https://www.zdnet.com/article/possible-python-rival-programming-language-julia-is-winning-over-developers/
- This is about Julia and doesn't even mention Bezanson.
- (3) http://news.mit.edu/2018/julia-language-co-creators-win-james-wilkinson-prize-numerical-software-1226
- "and Jeff Bezanson, will receive the 2019 James H. Wilkinson Prize for Numerical Software." This is a fact, not a comment.
- "The prize will be awarded to Bezanson, ..." A fact, not an author comment or opinion. The article is about Julia. It is not about Bezanson. This is textbook WP:BIO1E. Mention Bezanson at this Julia article, but this in no way justifies a standalone biography where we list is birth place and date, schooling, personal life, and summaries of what people have noticed about him. Some call this sad, that Wikipedia covers any football player who ran on the field, but that's the way it is. Wikipedia is not for original biographies. Someone else, independent and reputable, has to have published a biographical story on him. Not an employer website. Not mentions in passing in an article about something else. Compare Wikipedia:Articles for deletion/Clarice Phelps for example. It is not about achievements, it is about others having noticed and commented.
- http://news.mit.edu Is that a publication of the organisation employing Bezanson, or where he was/is an enrolled student. Generally, everyone agrees that this makes the publication "non-independent". All universities self-publish promotion of their research and staff and students. It doesn't really make a difference whether MIT is more prestigious and reputable than most, and that it more professionally writes its news. For notability, the local newspaper actually carries more weight. Do not confuse notability-attesting sources with reliable sources for facts.
- Sorry. Please read WP:BIO. --SmokeyJoe (talk) 23:11, 13 February 2019 (UTC)
- Wow, thanks for the detailed response including talking about the first three references. I don't plan to try to work on this more at present; I'm not certain there are articles which would pass the bar described above. It's possible that after the 2019 Wilkinson Prize talks there will be an article or two which meets the WP:BIO requirements, in which case I'll work on it more. Thanks for your response. Sanpitch (talk) 01:06, 14 February 2019 (UTC)
New phrase instead of "without the need of separate compilation..." in Wikipedia description.
In the julialang's slack workspace[1] many felt the term JAOT (Just Ahead Of Time) compilation to be more accurate. I would like to know what others think of it. — Preceding unsigned comment added by BBloggsbott (talk • contribs) 18:53, 11 April 2019 (UTC)
- Thanks, I made a change. The note about the JAOT compiler is now in the second paragraph; what do you think? 107.0.94.194 (talk) 20:11, 11 April 2019 (UTC)
Possible changes
Here are a few possible changes
- Drop "general purpose" from the first sentence of the article. Yes, Julia is general purpose, but putting it in the first sentence makes it sound like Julia wants to be C.
- The phrase "dynamic programming language" is used and linked in both the first two paragraphs. I think that changing the first to be just "programming language" is appropriate.
- The first paragraph is too soon for "web programming", which should be put later.
- The "language features" list looks like a laundry list.
73.252.146.143 (talk) 01:42, 19 August 2019 (UTC)
- I made the changes above, except I did not modify the "language features" laundry list. 73.252.146.143 (talk) 05:24, 21 August 2019 (UTC)
Vim and Emacs and other cruft
I think it's pretty silly that the article notes that one can use "Vim and Emacs" to work with Julia :-) In case it isn't clear, one could say the same thing about any textual programming language, and (for that matter) all written languages!
I think this is emblematic of the cruft in the article. 73.252.146.143 (talk) 21:16, 7 March 2020 (UTC)
- Agreed, we could remove it. You can write Julia on paper as well, paper just lack the interpreters :). So in my opinion it makes sense to keep dedicated tools and extensions such as the one in VSCode, Jupyter and Juno. Bruno H Vieira (talk) 14:54, 5 April 2020 (UTC)
Usage section
I tentatively added a Julia (programming language)#Usage section, mimicking the one in Python (programming language). The idea is that we can refer to notable libraries and other usages of Julia here. There are a few red links already, but it's missing crucial stuff such as DifferentialEquations.jl et cetera Bruno H Vieira (talk) 14:58, 5 April 2020 (UTC)
- I undid your revision @MrOllie:. Would you care to explain the rationale behind the removal of the Julia (programming language)#Usage section? Bruno H Vieira (talk) 14:57, 22 April 2020 (UTC)
- It's a list of apparently randomly selected libraries. Wikipedia isn't a howto or link directory so such lists are off-mission for us. - MrOllie (talk) 15:02, 22 April 2020 (UTC)
- @MrOllie: It's not a list of randomly selected libraries, but it's under construction. I'm adding the most prominent ones first. I added that section directly inspired by the Python#Uses section, so the precedent is out there. Bruno H Vieira (talk) 15:06, 22 April 2020 (UTC)
- The Python section is based on independent reliable sources and mentions libraries that are called out as significant by such sources. Your section was a list of libraries with no apparent selection criteria. - MrOllie (talk) 15:20, 22 April 2020 (UTC)
- Several entries in the Python section are not referenced, that's where I got the precedent to add the section to this article. If the entries over there were removed as well then I would understand it, but it's quite an established part of the article. Bruno H Vieira (talk) 15:49, 22 April 2020 (UTC)
- I'm really trying to understand how to make this section right, don't get me wrong. Bruno H Vieira (talk) 15:51, 22 April 2020 (UTC)
- Bruno H Vieira, I share your passion for for Julia and its libraries (at least DifferentialEquations.jl is state-of-the-art, and good sources should be possible to find). I was maybe to enthusiastic adding libraries at the time, and gave up on editing the article in 2015 and ended up deleting about half of it then. comp.arch (talk) 11:28, 30 September 2020 (UTC)
Is it time for some separate Julia packages to get their own page?
I have Flux.jl and/or Knet.jl in mind, and JuMP was first state-of-the-art Julia package, there's also e.g. SciML/DifferentialEquations.jl (and other in that ecosystem) and a ton more. Maybe Gen.jl or similar, I just do not follow such packages too much.
Project Jupyter has a page (in part because of Julia, why the prefix Ju-, it was formerly IPython), Pluto.jl seems to improve on it (is Julia-only, I'm pretty sure). comp.arch (talk) 13:21, 28 September 2020 (UTC)
- I know you know it, but just so others know the precedent: Flux has one already :) Flux (machine-learning framework). Other notable Julia packages will get their too in the due time. I am enthusiastically in favor of DifferentialEquations.jl, but Gen.jl and Turing.jl are quite notable too. They were even referenced in other articles IIRC Bruno H Vieira (talk) 00:06, 9 March 2021 (UTC)
Strong Typing
I removed the claim that Julia is a "strongly typed language," as the citation given was poor and ambiguous. The citation linked to a forum thread, wherein a user claimed that Julia is "strongly typed," citing Wikipedia to do so, and then another user below them claims the opposite, also citing Wikipedia. A forum thread is already not a reliable source of information, but add to that that the cited thread leaves the question of whether or not Julia is strongly typed as inconclusive at best, and it seemed appropriate to not only remove the citation, but the potentially erroneous claim as well.
If this edit has been made in error, feel free to revert and add in a less ambiguous source. drgribb (talk) 20:30, 27 January 2022 (UTC)
- Hi! Pondering on the correctness of typesystem statements here, it might be also useful to clarify the claim on parametric types in the table below: "Parametric types" header links to parametric polymorphism page which actually provides a definition of parametric polymorphism that conflicts with the definition of Julia, which instead more or less precisely satisfies the "ad-hoc polymorphism" definition. I believe the correct name for what describes the table column there is "indexed types" as in here https://en.wikipedia.org/wiki/Generic_programming . Exaexa (talk) 07:27, 17 May 2022 (UTC)
Criticism
Currently the article says nothing bad about Julia. Its tone is pretty dignified --- not quite cheerleading/advocacy --- but it still reads as if Julia solves all problems with no drawbacks. Some balance would improve the article. For example, this user survey suggests some room for improvement (although a secondary source would be better). Mgnbar (talk) 19:46, 8 February 2020 (UTC)
- The drawbacks of Julia are pretty obvious, they are mostly inherited from drawbacks of its paradigms and design choices. For example, there is a compile time attached to pretty much everything you do in Julia for the first time, because it's a compiled language. So the fact that we refer to ahead-of-time compilation is a big hint towards that. We could create a section and populate it with these drawbacks, however. For reference, Python doesn't have a section like that either, nor is the text particularly hinting at its disadvantages. Bruno H Vieira (talk) 14:50, 5 April 2020 (UTC)
- As you say Python has no drawback section, and its pros and cons are somewhat opposite to Julia. Julia however also has an interpreter, a non-default and undocumented... --compile=min option to enable it so you can get roughly Python behavior, avoiding that "compile" overhead. Language (by default) can have only either or, and both have pros and cons. There is a third hybrid option "tiered compilation"[3] (also with pros and cons, while trying to get most of the pros minimizing the cons) in C#, not yet in Julia. comp.arch (talk)
Following up on this. The article seems to read as an advertisement right now, most egregiously/noticeably the Notable uses section. Would be great to have another editor check this. For starters, I would add a criticism section, note drawbacks in various sections, and "neutralize" the tone in several parts of the article. — Preceding unsigned comment added by 24.238.13.130 (talk) 21:22, 1 July 2020 (UTC)
- Just to grab a few pieces which might be contributing to an overly positive message:
- "While it is a general purpose language and can be used to write any application, many of its features are well-suited...", which is indeed sourced, but may still be too opinionated. Alternatives could be more in the vein of "is designed for". One of the sources here is "Out in the Open: Man Creates One Programming Language to Rule Them All", so it may be possible that finding a wider variety of sources could be beneficial here?
- "Julia is in practice interoperable with many languages" (unsourced)
- Lots of "also"s, or things which do not technically contribute but may cause a biased tone overall: "Julia 1.4 allowed better syntax for..." that could be replaced with a less opinionated or more specific wording.
- Besides the notable users, The "Current and future platforms" section also feels a bit like an advertisement or maybe just confused. It compares Julia's JIT to other languages and even brings up the support tiers. It goes into a very high depth here, although I think we should expect more detail for a numerical language than most conventional languages. Yafwa (talk) 04:33, 5 July 2020 (UTC)
- On "Julia is in practice interoperable with many languages", I believe I wrote it, and a lot of other, some you point out, so feel free to amend. Where do you draw the line with "many" (you can even use Julia from within Excel[4] but that's proprietary, and otherwise I only list no-cost solutions)? You can call to/from Python, R, C, C++, Rust, Zig, (Swift I guess), and of the top 20 language on July 2020 TIOBE index list, I only see Scratch as problematic. You can call C#[5] (while not much done), i.e. .NET and thus I believe Visual Basic .NET (wouldn't cover Classic, but I'm unsure if important or how easy to do differently). For some languages you can only (in practice, currently, as you can interoperate with any language theoretically both ways) call from Julia, e.g. now to MATLAB, Java (not back as far as I know, except with callbacks). You can call to JavaScript, meaning Node.js (could call from but that package is outdated), or use in a web browser or through WebAssembly. I've called Octave from Julia, but that was though Python. You can call all languages with a C API (i.e. without garbage collection), why I listed Zig without knowing anyone actually having done that.. You can call from Ruby[6] and more, so in some sense those are interoperable but I've not seen a package to call in the other direction. "we send an integer value from Julia to Go and back via a C shared library (written in Go)."[7] You could call to/from PHP and Perl [8] but that package to do it is outdated, only needs to be revived for Julia 1.0+, and you can still shell out and call those language, or from that way or differently (web services). comp.arch (talk) 13:47, 8 July 2020 (UTC)
- Thanks for the response. I'll put the caveat that I'm relatively new to Wikipedia, so I might not be perfect on the standards. The main issue in my mind is one of sourcing/notability. There's no sourcing on that statement, and it's something of an opinionated, abstract statement on its own. So the answer to where we draw the line on "many" is that we should avoid making judgments like that outright. While it may even be true that there are quite a few languages, making that sort of judgment could be original research. I can say that I personally cannot determine from this that Julia has necessarily more than other languages; most languages have a C FFI, and in many cases bindings to other languages.
- I'm thinking a wording more like the following would work: "Julia has a foreign function interface to C, with libraries available to interact with other languages[...refs]". That sentence would avoid trying to judge how practical or complete the interoperability is. And of course, if there are other reasons that might be notable, we can mention those. Is interop a priority for the Julia language, or something which makes it stand out amongst languages in the same class? If some sources have identified Julia as being particularly strong in interop, it would also be notable. Yafwa (talk) 06:31, 11 July 2020 (UTC)
- I just thought "many" would be uncontroversial at the time, when I put it in. To clarify, if you can call another language at all, you can usually call C, and then indirectly to a lot of other. In theory, all (those that can be embedded). Also you can interact with a web service (or ZMQ), so that way in theory also all languages, but often not what's meant. Yes, I think it's fair to say that interop is a priority for Julia, why it has the
ccall
keyword (and now macro too), it is unusual (no boilerplate, for many other languages it's the opposite). At https://github.com/JuliaInterop/ you can e.g. find MathLink.jl to call proprietary Wolfram Mathematica™, and I just discovered OctCall.jl, but I was calling Octave before, through Python (not a big hoop to jump through, but without would be slightly easier). I did not know about DotNET.jl Julia [heart .NET] package. You can call Julia from D, but as I know the guy personally who made it work, I only list from people I'm not familiar with, non-Julia websites. From different people in that thread: "Julia has 0-copy numpy array interop through PyCall.jl if that's what you're asking."[9] "There are only 2 languages with really good Python interop [..]One of them is Julia! [..] The other is Swift [..]And here is the kicker: Packages is Julia are far more interoperable than in any other eco system I have seen. Than means 10 packages in Julia can quickly do more than 50 packages in other language."[10] "Julia's `ccall` is great in terms of overhead[0], so calling Rust shared libraries is not a problem."[11]. A tutorial I found on interop and a meetup. And:
- I just thought "many" would be uncontroversial at the time, when I put it in. To clarify, if you can call another language at all, you can usually call C, and then indirectly to a lot of other. In theory, all (those that can be embedded). Also you can interact with a web service (or ZMQ), so that way in theory also all languages, but often not what's meant. Yes, I think it's fair to say that interop is a priority for Julia, why it has the
- “When you see such a tweet from a renowned author about Python and Julialang interoperability then you feel good about investing time learning in #JuliaLang ”
- [tweet]
- "This is 100% Julia code, If you replace the first 3 lines with [those importing tensorflow and keras)], you can run the exact same code in Python. Talk about excellent interoperability!".[12]
- I clicked on the tweet author's name and saw "Author of the book Hands-On #MachineLearning with #ScikitLearn, #Keras and #TensorFlow. Former PM of #YouTube video classification. Founder of telco operator." comp.arch (talk) 18:44, 14 July 2020 (UTC)
- Following up on this, I still think the article reads like an advertisement, so I will be adding a cleanup template. Very Fantastic Dude (talk) 21:49, 12 March 2022 (UTC)
- Very Fantastic Dude can you point at one, two (or more) issues you have with the article? I can't cleanup otherwise, or choose to disagree. That said, I'm not sure the advert template applies even if you feel it promotional, since Julia isn't a "product", in the sense of being sold for money, and the template is explained as "When to use: Add this to articles [when in] whole or part they are advertisements masquerading as articles." with a link to "Articles considered advertisements include those that are solicitations for a business, product or service, or are public relations pieces designed to promote a company or individual." Until we figure out/agree if the template applies at all, you could also move it to one section (there's a variant for sections) if you had only one in mind and/or use a different template that might apply. comp.arch (talk) 22:18, 12 March 2022 (UTC)
- @Very Fantastic Dude: @Comp.arch: What do you think? I think it is time to remove this template. It has been there for 3 months and the issue has as far as I know not been very active. The only thing that I could maybe think of is moving the history section down and starting with the Language Features, because this is the section where the archievements of the language are stated (in particular the section on Notable uses). Starting with the features may set the tone of the article differently. However other sites about programming languages (eg. Python (programming language) start with the history as well. I personaly am not under the impression that this article reads like and advertisement, nor do I think that this template fits, because it does not hit any of the points in WP:PROMOTION.
- Because the discussion seems to be dormant, I will be removing this template (see point 7 of WP:WTRMT). If someone does not agree with this, please feel free to put it there again and write on the talk page.
- Happy editing TheFibonacciEffect (talk) 23:03, 18 June 2022 (UTC)