Talk:Julia (programming language): Difference between revisions

Content deleted Content added
No edit summary
 
(45 intermediate revisions by 25 users not shown)
Line 1:
{{Talk header}}
{{WikiProjectBannerShell|{{WikiProject Computer science |class=C |importance=low}}
{{WikiProject Computing |class=C |importance=Low}}
{{Maths rating |class=C |priority=Low |field=applied}}}}
{{old AfD multi
|date1 = June 9 2012 |result1 = '''delete''' |page1 = Julia (programming language)
}}
{{WikiProject Computingbanner shell|class=C B|importance=Low}}
 
{{WikiProjectBannerShell|{{WikiProject Computer science |class=C |importance=lowhigh}}
{{WikiProject Computing |importance=high|software=y |software-importance=Top |science=y |science-importance=high}}
}}
{{refideas|1={{Cite web |last1=Phillips |first1=Lee |title=The unreasonable effectiveness of the Julia programming language |work=[[Ars Technica]] |date=2020-10-09 |url=https://arstechnica.com/science/2020/10/the-unreasonable-effectiveness-of-the-julia-programming-language/ |language=en-us |accessdate=2020-10-10 |df=mdy-all }}
|2=
}}
{{User:MiszaBot/config
|archiveheader = {{talkarchivenav}}
|maxarchivesize = 31K
|counter = 23
|algo = old(365d)
|archive = Talk:Julia (programming language)/Archive %(counter)d
Line 25 ⟶ 29:
{{Reflist-talk}}
 
== Excessive detail/difficult readability ==
== New phrase instead of "without the need of separate compilation..." in Wikipedia description. ==
 
In my opinion, while the facts in this article are all fairly well-sourced, the article contains way too many esoteric details that are of little use to most people. These details are often in parentheses, sometimes nested parentheses, with "e.g." and "i.e.," and that in turn makes it hard to even follow the original text. This type of writing style is unlike most other articles I have encountered on this site. Take this paragraph in the introduction:
In the julialang's slack workspace<ref>https://julialang.slack.com/archives/C680MM7D4/p1555006048064000</ref> many felt the term JAOT (Just Ahead Of Time) compilation to be more accurate. I would like to know what others think of it. <!-- Template:Unsigned --><small class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:BBloggsbott|BBloggsbott]] ([[User talk:BBloggsbott#top|talk]] • [[Special:Contributions/BBloggsbott|contribs]]) 18:53, 11 April 2019 (UTC)</small> <!--Autosigned by SineBot-->
 
* "Several development tools support coding in Julia, such as [[Integrated development environment|integrated development environments]] (e.g. for Microsoft's [[Visual Studio Code]], an [[Plug-in (computing)|extension]] is available providing debugging and [[Lint (software)|linting]] support); with integrated tools, e.g. a [[Profiling (computer programming)|profiler]] (and flame graph support available for the built-in one), debugger, and the Rebugger.jl package "supports [[Interactive programming|repeated-execution debugging]]" and more."
: Thanks, I made a change. The note about the JAOT compiler is now in the second paragraph; what do you think? [[Special:Contributions/107.0.94.194|107.0.94.194]] ([[User talk:107.0.94.194|talk]]) 20:11, 11 April 2019 (UTC)
 
{{Reflist-talk}}
All that this paragraph really needs to say is that there is linting and debugging support in IDEs for the language. Mentions of VS Code, the flame graph, and whatever Rebugger.jl is doing are details which should be in a section further down or omitted altogether save their citations. I am of the opinion that the entire paragraph should be removed from the intro because it does not concern the language itself, but rather third-party tools.
 
As far as I understand, Julia's support for compilation to binary executables is still experimental, and not really a core feature of the language - does it really deserve a paragraph in the intro?
 
As another example, take the list in the history section with the version numbers 1.1, 1.2, etc. Given that the 1.X is a stable version of the language, this seems like a list that could be cleaned up by simply mentioning the most important features that have been added since the 1.0 release, such as the multithreading from 1.3. Those sentences about 1.7+ being time-based releases or 1.7.3 shouldn't be there at all - aren't all patch releases "fixing some issues?" And who cares about time-based vs. feature-based? There are also multiple sentences in this section mentioning the details regarding performance improvements or things done to reduce compiler latency when it could really be boiled down to one or two sentences about how the developers have been focusing on the problem more generally.
== Possible changes ==
 
Here's a draft of how I would write the history section, starting after the Bezanson quote and up to the sponsors subsection:
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.
[[Special:Contributions/73.252.146.143|73.252.146.143]] ([[User talk:73.252.146.143|talk]]) 01:42, 19 August 2019 (UTC)
 
Julia 1.0 was released on 8 August 2018 with the syntax stabilized. Since then, the language has added many new features, such as composable multithreading in version 1.3, syntax for generic array indexing in 1.4, and an improved random number generator in 1.7. The releases have also gradually improved compiler latency and package loading times, i.e. the "time-to-first-plot" performance.
: I made the changes above, except I did not modify the "language features" laundry list. [[Special:Contributions/73.252.146.143|73.252.146.143]] ([[User talk:73.252.146.143|talk]]) 05:24, 21 August 2019 (UTC)
 
Three of the Julia co-creators are the recipients of the 2019 [[J. H. Wilkinson Prize for Numerical Software|James H. Wilkinson Prize for Numerical Software]] "for the creation of Julia, an innovative environment for the creation of high-performance tools that enable the analysis and solution of computational science problems." Alan Edelman received the 2019 IEEE Computer Society [[Sidney Fernbach Award]] "for outstanding breakthroughs in high-performance computing, linear algebra, and computational science and for contributions to the Julia programming language."
== Criticism ==
 
Since 2014, the Julia community has hosted an annual conference (JuliaCon) focused on developers and users. The conferences have taken place across a number of locations including MIT and the University of Maryland, Baltimore. JuliaCon was conducted virtually from 2020 to 2022 due to the COVID-19 pandemic. The event audience has grown from a few dozen people to over 43,000 unique attendees during JuliaCon 2021. The conferences have featured keynote addresses from notable individuals such as [[William Kahan]] (the primary architect of the [[IEEE 754-1985|IEEE 754]] floating-point standard) and Soumith Chintala (co-creator of [[PyTorch]]).
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, [https://julialang.org/images/2019-julia-user-developer-survey.pdf this] user survey suggests some room for improvement (although a secondary source would be better). [[User:Mgnbar|Mgnbar]] ([[User talk: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. [[User:Bruno H Vieira|Bruno H Vieira]] ([[User talk:Bruno H Vieira|talk]]) 14:50, 5 April 2020 (UTC)
 
It's much shorter, but it's also more readable and obviates the need for the reader to wade through the details of changes made to the language which could be easily accessed in their release notes. This would of course be a major edit, so let me know your thoughts. [[User:Eulalie880|Eulalie880]] ([[User talk:Eulalie880|talk]]) 21:36, 12 November 2022 (UTC)
== Vim and Emacs and other cruft ==
 
:I'd be happy to see these edits merged! [[User:Closed Limelike Curves|Closed Limelike Curves]] ([[User talk:Closed Limelike Curves|talk]]) 03:00, 10 November 2023 (UTC)
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 agree the article doesn't really adhere to Wikipedia standards: a) often lacking independent sources, b) including content that is of questionable relevance, partially because it has not been mentioned in any independent sources, c) overly long, d) potentially overly positive, it doesn't list disadvantages/challenges of Julia. I could hardly find anything critical in the article, while there's plenty on the internet (yes potentially not super reliable sources [I haven't checked] but most of this article is just what Julia org says about Julia lang. Example criticism: https://www.reddit.com/r/Julia/comments/11ucqtz/whats_julias_biggest_weakness/, https://yuri.is/not-julia/, https://jamesmccaffrey.wordpress.com/2021/06/15/why-im-not-a-fan-of-the-julia-programming-language/ [[User:AncientWalrus|AncientWalrus]] ([[User talk:AncientWalrus|talk]]) 17:51, 30 January 2024 (UTC)
 
== Reads like advertising ==
I think this is emblematic of the cruft in the article. [[Special:Contributions/73.252.146.143|73.252.146.143]] ([[User talk:73.252.146.143|talk]]) 21:16, 7 March 2020 (UTC)
 
What it says. Sorry, but it does. [[Special:Contributions/2601:1C0:5401:2040:5CCB:C27C:F135:5733|2601:1C0:5401:2040:5CCB:C27C:F135:5733]] ([[User talk:2601:1C0:5401:2040:5CCB:C27C:F135:5733|talk]]) 04:12, 5 September 2023 (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. [[User:Bruno H Vieira|Bruno H Vieira]] ([[User talk:Bruno H Vieira|talk]]) 14:54, 5 April 2020 (UTC)
 
:Yeah, I mostly just glanced at the article but the sentence "Julia programs can also be (separately) compiled to binary executables, even allowing no-source-code distribution, and the executables can get much smaller with Julia 1.12." stuck out to me. Do we really need to list that 1.12 can produce smaller executables? That reads more like an ad than something belonging in an encyclopedia. [[User:Kittybwained|Kittybwained]] ([[User talk:Kittybwained|talk]]) 00:52, 27 January 2025 (UTC)
== Usage section ==
::Currently compiled apps are huge, why 1.12 is mentioned, i.e. upcoming juliac tool in there, and its binaries are small. Yes, 1.12 isn't released yet as stable, but it is usable in beta form so I thought mentioning its capabilities was ok. Feel free to just change. [[User:Comp.arch|comp.arch]] ([[User talk:Comp.arch|talk]]) 14:09, 14 April 2025 (UTC)
 
== Where it can run table (compatibility) ==
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 [[User:Bruno H Vieira|Bruno H Vieira]] ([[User talk:Bruno H Vieira|talk]]) 14:58, 5 April 2020 (UTC)
: I undid your revision {{Ping|MrOllie}}. Would you care to explain the rationale behind the removal of the [[Julia (programming language)#Usage]] section? [[User:Bruno H Vieira|Bruno H Vieira]] ([[User talk:Bruno H Vieira|talk]]) 14:57, 22 April 2020 (UTC)
 
It would be good to know on what platforms and version Julia can run on in a table, eg Windows, macOS, linux, iOS, Android, ... The table would probably need an explanation of any specific tools needed (frameworks, compilers). Also whether packaged packaged apps can be built that can be distributed (eg app store) to users without users requiring anything else to be installed.
::It's a list of apparently randomly selected libraries. Wikipedia isn't a [[WP:NOTHOWTO|howto]] or [[WP:NOT|link directory]] so such lists are off-mission for us. - [[User:MrOllie|MrOllie]] ([[User talk:MrOllie|talk]]) 15:02, 22 April 2020 (UTC)
 
An explanation of how features unique to each platform can be accessed would be useful. [[User:FreeFlow99|FreeFlow99]] ([[User talk:FreeFlow99|talk]]) 16:55, 6 March 2024 (UTC)
:::{{reply_to|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 (programming language)#Uses|Python#Uses]] section, so the precedent is out there. [[User:Bruno H Vieira|Bruno H Vieira]] ([[User talk:Bruno H Vieira|talk]]) 15:06, 22 April 2020 (UTC)
:FYI, there's no support tier for Android (or iOS), so everything for it is unofficial, and while possible to do, arguably non-ideal, at least currently. Julia can run on all the supported platforms, best if tier 1 support, all those desktop OSes you mention. No tools are needed except for Julia. But if you want precompiled, it's a more complex answer, and the (main) tools for that are mentioned in the article. Feel free to clarify the article or ask questions here. [[User:Comp.arch|comp.arch]] ([[User talk:Comp.arch|talk]]) 14:06, 14 April 2025 (UTC)
 
== Robust edits to address feedback ==
::::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. - [[User:MrOllie|MrOllie]] ([[User talk:MrOllie|talk]]) 15:20, 22 April 2020 (UTC)
 
:::::SeveralI'm entrieslooking into thedo Pythonfairly sectionmajor arerewrites notof referenced,sections that'sto whereaddress Ia gotnumber of the precedentjustified tocritiques addon thethis sectiontalk topage, thiswith article.a Iffocus theon entriesincreasing overreadability, therea werebalanced removedtone asand wellinclusion thenof Ireliable wouldindependent understandsources. it,Happy butto it'sdiscuss quitehere anor establishedon partmy oftalk thepage article.[[User:Jfo17]] [[User:Bruno H VieiraJfo17|Bruno H VieiraJfo17]] ([[User talk:Bruno H VieiraJfo17|talk]]) 1504:4931, 2218 AprilJuly 20202025 (UTC)