Subscribe:   RSS icon   twitter icon

Julia

This is a list of resources and articles about the Julia language.

Jump to: DocumentationLibrariesOther

News

25/4/2022 12:26 Julia REPL ↓ trick: Stefan Karpinski reveals a secret superpower in plain sight: “After evaluating a command from history in the REPL, you can press ↓ and get the next command after that one, so you can replay a sequence of commands by finding the first one and doing ↓⏎ repeatedly”.
6/4/2022 14:46 Jack Dongarra, who made supercomputers usable, awarded 2021 ACM Turing prize: The creative force behind LINPACK and BLAS says that Julia is a good candidate for the next computing paradigm.
11/3/2022 11:55 Julia v1.8 Release Notes: Julia 1.8.0 is in beta. These release notes include many welcome enhancements. Several of the new features relate to the creation of sysimages, and appear to make it easier to produce smaller compiled code.
8/2/2022 7:47 Julia v1.7.2 Released: “As a patch release, 1.7.2 contains no new features or breaking changes, only bug fixes, documentation improvements, and performance improvements. […] We recommend that anyone currently using 1.7.0 or 1.7.1 upgrade to 1.7.2. Note that 1.7 on Travis, AppVeyor, Cirrus, and GitHub Actions now refers to 1.7.2.”
22/1/2022 12:53 Pluto 0.17.6 Announced: The latest version of Pluto, the computational notebook for Julia, has some great new features, including a dark mode and the ability to print logging messages from running code in the notebook.
22/1/2022 11:37 Macroeconomic Modeling: “The Federal Reserve Bank of New York publishes its trademark Dynamic Stochastic General Equilibrium models in Julia.”
12/1/2022 7:33 State of machine learning in Julia: …as of Jan, 2022.
06/01/2022 20:56 PlutoUI Demonstration: Using the PlutoSliderServer.
4/1/2022 16:43 Fermi.jl: A Modern Design for Quantum Chemistry: “we introduce the quantum chemistry package Fermi.jl, which contains the first implementations of post-Hartree–Fock methods written in Julia. Its design makes use of many Julia core features, including multiple dispatch, metaprogramming, and interactive usage. Fermi.jl is a modular package, where new methods and implementations can be easily added to the existing code. Furthermore, it is designed to maximize code reusability by relying on general functions with specialized methods for particular cases.”
2/12/2021 11:23 Julia 1.7 Highlights: “After 4 betas and 3 release candidates, Julia version 1.7 has finally been released.”
9/11/2021 13:15 Concurrency in Julia: An overview of the easiest-to-approach facilities for parallel and concurrent computation in Julia, with a demonstration of the effects of a new feature: thread migration. Discussed on Hacker News.
2/11/2021 10:50 Bash shell completions for Julia: Bash shell completions contextually finish what you’re typing when you hit the tab key. This project tells the shell about Julia commands, to save you keystrokes.
31/10/2021 9:06 Julia Data Science: A free and open-source book in several formats, including a paperback on amazon. Confined mainly to a brief language introduction, dataframes, and plotting with Mackie.
21/10/2021 10:49 Composability in Julia: Implementing Deep Equilibrium Models via Neural ODEs: “The SciML Common Interface defines a complete set of equation solving techniques, from differential equations and optimization to nonlinear solves and integration (quadrature), in a way that is made to naturally mix with machine learning. In this sense, there is no difference between the optimized libraries being used for physical modeling and the techniques used in machine learning: in the composable ecosystem of Julia, these are one and the same.[…] With a composable package ecosystem, the only thing holding you back is the ability to figure out new ways to compose the parts.”
13/10/2021 13:15 Digging into Julia’s package system: How Julia’s excellent package system eases development and code sharing.
7/10/2021 10:37 Struct Destructuring in Julia: The soon-to-arrive Julia v.1.7 has a new destructuring syntax for structs. I take a look at what it’s good for.
5/10/2021 15:37 Magnification Shape Styling in Lens Insets in Julia: In the current version of Plots you can style the lines with which the magnification shape is drawn when making lens insets.
4/10/2021 13:15 What’s coming in Julia 1.7: New features on the way.
23/9/2021 23:19 Julia v1.7 Release Notes
19/7/2021 11:16 Julia Computing Raises $24M Series A: “Julia Computing will use the funding to further develop and advance its secure, high-performance JuliaHub cloud platform and to grow the Julia ecosystem.”
8/7/2021 13:19 Pluto’s built-in package management: “Starting with version 0.15, Pluto has a built-in package manager, which means:
  • Packages are automatically installed when you use import or using.
  • Your package environment is stored inside the notebook file. When someone else opens your notebook with Pluto, the exact same package environment will be used, and packages will work on their computer.
These two features are designed to make it easy to write and share reproducible notebooks.”
19/6/2021 11:58 ImageClipboard.jl: Copy & Paste images with Julia
25/05/2021 12:09 Julia v.1.6 release addresses latency issues: Julia’s new release turns the “time to first plot” problem into (almost) a non-issue.
22/5/2021 9:35 Julia Meta Types: “One of my favorite tools and a double edged blade in the Julia programming language are Meta Types. Loosely related to Metaprogramming, meta types, derived from the Greek word μετα, ‘transcend’ beyond a simple data structure. Rather than simply describe a physical data structure in memory, a meta type includes information on the type itself.”
6/5/2021 20:44 ModelingToolkit.jl: “A modeling framework for automatically parallelized scientific machine learning (SciML) in Julia. A computer algebra system for integrated symbolics for physics-informed machine learning and automated transformations of differential equations”.
6/5/2021 18:12 Climate Modeling Alliance: “We are building a new Earth system model that leverages recent advances in the computational and data sciences to learn directly from a wealth of Earth observations from space and the ground. Our model will harness more data than ever before, providing a new level of accuracy to predictions of droughts, heat waves, and rainfall extremes.” The code is contained in a collection of Julia packages.
6/5/2021 0:54 Downloads.jl: “The Downloads package provides a single function, download, which provides cross-platform, multi-protocol, in-process download functionality implemented with libcurl.” This is now used by the package manager to retrieve packages.
3/5/2021 19:06 Julia v1.6 Release Notes
3/5/2021 16:59 Julia 1.6 Highlights
22/4/2021 12:04 Dataframes.jl reaches v. 1.0: The powerful data-wrangling package passes a milestone.
19/4/2021 11:55 TerminalPager.jl: This lovely package, announced April 19th, 2021, lets you page horizontally and vertically through a dataframe in the REPL, sort of like paging through a file with less.
7/4/2021 14:14 How the Julia language is making it easy for programmers to use GPU capabilities with JuliaGPU: An interview with Tim Besard, a principal contributor to JuliaGPU.
24/3/2021 23:13 Julia 1.6.0 released: Version 1.6.0 was officially released on March 24th, 2021. I’ve been using 1.6.0-rc1 for a while, and it has been stable and fast with precompilation, reducing the “time to first plot” to just a few seconds.
19/3/2021 16:13 Data Science in Julia for Hackers: “This book is currently in a beta version. We are looking forward to getting feedback and criticism”.
19/3/2021 11:17 Julia Part of Google Summer of Code 2021: Proposals accepted starting March 29.
12/3/2021 14:24 Julia v1.5.4 and v1.6.0-rc2 have been released: “The Julia developers are pleased to announce two new releases: v1.5.4, the fourth patch release for Julia 1.5, and v1.6.0-rc2, the second release candidate for Julia 1.6.”
6/3/2021 8:31 Announcing Symbolics.jl: A Modern Computer Algebra System for a Modern Language: “We need new Computer Algebra Systems (CAS) for this new era of computing. We need a CAS that dispatches in the multiple ways we think. We need a CAS that scales exponentially like our problems. We need a CAS that integrates with our package ecosystem, letting people extend parts and contribute back to the core library all in one language. We need a modern CAS in a modern language.”
5/3/2021 10:08 PlutoCon 2021: “To celebrate Pluto’s 1 year anniversary, we are hosting a two day mini conference about…. Pluto! It will be a place to share your fun notebooks and to learn techniques from other Pluto users and from Pluto’s designers.” What is Pluto? The conference will be April 8th-9th, around 4pm GMT. Contributed talks are solicited.
23/02/2021 07:43 I am writing a Julia book: The preliminary title is Applied Julia; it will be published by No Starch Press.
14/2/2021 11:20 Julia 1.6: what has changed since Julia 1.0?: Great, detailed rundown of the interesting improvements in Julia, by a Julia developer.
9/2/2021 14:15 Algorithms for Decision Making: The book is free to download under a CC-BY-NC-ND license. The print version will be released in 2022. “This book provides a broad introduction to algorithms for decision making under uncertainty. We cover a wide variety of topics related to decision making, introducing the underlying mathematical problem formulations and the algorithms for solving them.”
3/2/2021 17:28 Apache Arrow Support in Julia: From the Julia Blog: “We’re excited to announce official support for the Julia language in the Apache Arrow project.” Includes some discussion of the use of Arrow in Julia.
3/2/2021 17:20 Apache Arrow 3.0.0 Release: “This is the first release to officially include an implementation for the Julia language.” The Julia work is developed in the Arrow.jl package.
18/1/2021 9:17 Julia Update: Adoption Keeps Climbing; Is It a Python Challenger?: “The rapid adoption of Julia, the open source, high level programing language with roots at MIT, shows no sign of slowing”
4/1/2021 9:59 Typed vs. Untyped Dict Performance in Julia: An interesting case study showing a massive speedup and reduction in memory allocation gained from a type declaration.

Documentation and tutorials

A quick introduction to data parallelism in Julia: “If you have a large collection of data and have to do similar computations on each element, data parallelism is an easy way to speedup computation using multiple CPUs […] A major hurdle for using data parallelism is that you need to unlearn some habits useful in sequential computation […] In particular, it is important to use libraries that help you describe what to compute rather than how to compute. Practically, it means to use generalized form of map and reduce operations and learn how to express your computation in terms of them. Luckily, if you already know how to write iterator comprehensions, there is not much more to learn for accessing a large class of data parallel computations.”
Julia macros for beginners: A clear introduction.
Convolutions in image processing: Not much about Julia, but a superb demonstration of how simple convolutions can create blurring, sharpening, and edge detection. Ends by showing how to speed up the calculation using FFTs.
Functional One-Liners in Julia: A clear tutorial with illustrative examples.
How to Create Software Packages with Julia Language: “This article will teach you how to create an open-source software package in the Julia programming language and develop your package using Git-based workflows.” This tutorial is a detailed and gentle on-ramp to the subject.
The Julia Package Manager: A brief introduction to packages, environments, and making your own package.
HPC Cafe: An introduction to the Julia programming language for HPC: This video is packed with insights about high performance computing with Julia, and is easy to follow.
Type-Dispatch Design: Post Object-Oriented Programming for Julia: “I am going to try to explain in detail the type-dispatch design which is used in Julian software architectures. It’s modeled after the design of many different packages and Julia Base […] Julia is built around types. Software architectures in Julia are built around good use of the type system. This makes it easy to build generic code which works over a large range of types and gets good performance. The result is high-performance code that has many features. In fact, with generic typing, your code may have more features than you know of! The purpose of this tutorial is to introduce the multiple dispatch designs that allow this to happen.”
What is a Symbol in Julia?: Stefan Karpinski’s masterful explanation of what a Symbol really is.
Julia Books: A list from Julia headquarters of works available now or on the way.
Julia for Beginners: “A beginner-friendly guide to the Julia programming language. […] This book engages the reader with fun programming examples involving building and launching a rocket, implementing simple encryption algorithms used by Roman armies, and simulating a mechanical calculator.”
Julia Data Science: A free and open-source book in several formats, including a paperback on amazon. Confined mainly to a brief language introduction, dataframes, and plotting with Mackie.
Julia Meta Types: “One of my favorite tools and a double edged blade in the Julia programming language are Meta Types. Loosely related to Metaprogramming, meta types, derived from the Greek word μετα, ‘transcend’ beyond a simple data structure. Rather than simply describe a physical data structure in memory, a meta type includes information on the type itself.”
Think Julia: How to Think Like a Computer Scientist: “This book is for anyone who wants to learn to program. No formal prior knowledge is required.” Free to read at the link; a print version is also available.
Data Science in Julia for Hackers: “This book is currently in a beta version. We are looking forward to getting feedback and criticism”.
Writing type-stable Julia code: Using many examples, this tutorial will help you understand how to do what’s in the title.
Differentiation for Hackers: “The goal of this handbook is to demystify algorithmic differentiation, the tool that underlies modern machine learning.”
Particle Simulations with Julia: Excellent tutorial and demonstration available as a web page and as a Pluto notebook. Contains fascinating animations of error propagation in a running simulation.
Ditch Excel and Use Julia Data Frames: A really useful tutorial showing how to use Julia to parse and analyse data from a CSV file.
Multithreading in Julia Language Applied to Cell Lists Algorithm: “This article teaches you how to use multithreading in Julia Language to parallelize serial algorithms. As a practical example, we explore how to convert the serial Cell Lists algorithm”.
How do Recipes actually work?: This is a great resource for quickly coming up to speed with plot recipes. It has useful examples and explains how things work under the hood.
PlutoUI Demonstration: A live demonstration of PlutoUI controls, served with the PlutoSliderServer.
Triangle frenzy: A case study using CUDA for some graphics calculations.
Why I Wrote a Julia Programming Book: Julia as a general-purpose language, and as a good choice for teaching.
Visualize Squirmers: ‘The visualization shown here is based on simulation data generated as part of the work “Modeling a spheroidal microswimmer and cooperative swimming in a narrow slit” (DOI).’

Libraries

Bayesian Statistics using Julia and Turing: “Welcome to the repository of tutorials on how to do Bayesian Statistics using Julia and Turing.”
tullio: “Tullio is a very flexible einsum macro. It understands many array operations written in index notation”.
GridWorlds.jl: Help! I’m lost in the flatland!: “A package for creating grid world environments for reinforcement learning in Julia.“ Juliacon presentation here.
Changing Physics education with Julia: Interactivity in physics education; why Julia is an ideal language for physics education; applied to teaching dynamical systems and the DynamicalSystems library, of which the author is the maintainer, and his textbook.
JuliaSymbolics: “JuliaSymbolics is the Julia organization dedicated to building a fully-featured and high performance Computer Algebra System (CAS) for the Julia programming language.”
Introduction to GRUtils: “GRUtils is a refactoring of the module jlgr from GR, a graphics package for Julia. The purpose of GRUtils is to provide the main utilities of jlgr in a more ‘Julian’ and modular style, easier to read, and facilitate code contributions by others.”
TensorCast.jl: It slices, it dices, it splices!: “This package lets you work with multi-dimensional arrays in index notation, by defining a few macros which translate this to broadcasting, permuting, and reducing operations.”
ImageClipboard.jl: Copy & Paste images with Julia
APL.jl: APL in Julia, with all the beautiful characters, and with Julia’s speed.
TerminalPager.jl: This lovely package, announced April 19th, 2021, lets you page horizontally and vertically through a dataframe in the REPL, sort of like paging through a file with less.
How the Julia language is making it easy for programmers to use GPU capabilities with JuliaGPU: An interview with Tim Besard, a principal contributor to JuliaGPU.
Distributions Package: “The Distributions package provides a large collection of probabilistic distributions and related functions.”
StatsPlots.jl: Statistical plotting recipes for Plots.jl: A large variety of statistical visualizations, built on Plots.jl.
PlutoUI.jl: Convenient Julian wrappers for HTML input controls, for use with Pluto.
Books.jl: Creates books with embedded output from Julia code, using Pandoc.
PairPlots.jl: Julia package for making corner plots, the statistical visualization that lets you compare a collection of distributions all at once.
Revise.jl: Automatically update function definitions in a running Julia session: “Revise.jl allows you to modify code and use the changes without restarting Julia. With Revise, you can be in the middle of a session and then update packages, switch git branches, and/or edit the source code in the editor of your choice; any changes will typically be incorporated into the very next command you issue from the REPL. This can save you the overhead of restarting Julia, loading packages, and waiting for code to JIT-compile.”
JuliaAstroSim/AstroNbodySim.jl: “Unitful and differentiable gravitational N-body simulation code in Julia”.
Agents.jl: A Julia package for agent-based modeling. Very easy to set up simulations on a variety of spaces, including Open Street Map.
RangeArrays.jl: “Efficient and convenient array data structures where the columns of the arrays are generated (on the fly) by Ranges.”
ThreadPools: A set of useful macros for concurrency.
BioJulia: “Fast, open, easy, software for biology. The bioinformatics infrastructure for the julia language.”
EmacsVterm.jl: “Better integration of Julia REPL with Emacs vterm terminal.”
Turing.jl: “Bayesian inference with probabilistic programming.”
PGFPlotsX.jl: Create plots in Julia using the PGFPlots LaTeX package: “PGFPlotsX is a Julia package to generate publication quality figures using the LaTeX library PGFPlots.”
FunSQL.jl: Julia library for compositional construction of SQL queries’
OhMyREPL.jl: “A package that hooks into the Julia REPL and gives it syntax highlighting, bracket highlighting, rainbow brackets and other goodies.”
SuiteSparseGraphBLAS.jl: An Introduction: “This blog post serves a couple purposes. The first is to introduce Julia users to GraphBLAS, and the features and performance of the SuiteSparseGraphBLAS.jl package. The second is an update on new features in versions 0.6 and 0.7 as well as a roadmap for the near future.”
PipelessPipes.jl - Even More Convenient Piping: “it allows to omit pipe operators, it implicitly assumes first argument piping if not otherwise stated explicitly, it allows for more helpful error highlighting and enables you to interject arbitrary statements into the pipeline for debugging.”
Einsum.jl: Einstein summation notation in Julia: Incredibly convenient syntax. Also see Tullio.
CSV: A powerful package for dealing with data stored in comma (or any delimiter) separated value files.
Javis.jl: Julia Animations and Visualizations: Animation library, still in early stages of development. An interesting feature is LaTeX support.
Pluto’s built-in package management: “Starting with version 0.15, Pluto has a built-in package manager, which means:
  • Packages are automatically installed when you use import or using.
  • Your package environment is stored inside the notebook file. When someone else opens your notebook with Pluto, the exact same package environment will be used, and packages will work on their computer.
These two features are designed to make it easy to write and share reproducible notebooks.”
Downloads.jl: “The Downloads package provides a single function, download, which provides cross-platform, multi-protocol, in-process download functionality implemented with libcurl.” This is now used by the package manager to retrieve packages.
JuliaFolds/Folds.jl: A unified interface for sequential, threaded, and distributed fold: Powerful, convenient, does what it’s supposed to do.
Pluto: The computational notebook for Julia.
Announcing Symbolics.jl: A Modern Computer Algebra System for a Modern Language: “We need new Computer Algebra Systems (CAS) for this new era of computing. We need a CAS that dispatches in the multiple ways we think. We need a CAS that scales exponentially like our problems. We need a CAS that integrates with our package ecosystem, letting people extend parts and contribute back to the core library all in one language. We need a modern CAS in a modern language.”
DEC2D.jl: Discrete Exterior Calculus 2D
Measurements.jl: “Error propagation calculator and library for physical measurements. It supports real and complex numbers with uncertainty, arbitrary precision calculations, operations with arrays, and numerical integration.”
Weave.jl - Scientific Reports Using Julia: Weave is a scientific report generator/literate programming tool for Julia. It resembles Pweave, knitr, R Markdown, and Sweave.
Reel.jl: computations caught on camera: Easily turn your Plots.jl or other plots into movies in several formats.

Other

The accelerating adoption of Julia: The programming language Julia and its importance to science.
Matlab vs. Julia vs. Python: He came from Matlab but he has explored the wilderness. And he can write; not many articles about computer languages are pleasant to read.
Programming languages: Julia touts its speed edge over Python and R | ZDNet: Benchmarks suggest programming language Julia may be the best choice for big-data analysis using CSV format files.
Why Julia is the most suitable language for science: Engaging presentation by the maintainer of the Julia dynamical systems package.
Multiple Dispatch In Perl: A valuable explanation of the enhanced software extendability that multiple dispatch provides, using Perl as an example.
Julia: dynamism and performance reconciled by design: “Julia is a programming language for the scientific community that combines features of productivity languages, such as Python or MATLAB, with characteristics of performance-oriented languages, such as C++ or Fortran. […] This paper details the design choices made by the creators of Julia and reflects on the implications of those choices for performance and usability.”
Algorithms for Decision Making: The book is free to download under a CC-BY-NC-ND license. The print version will be released in 2022. “This book provides a broad introduction to algorithms for decision making under uncertainty. We cover a wide variety of topics related to decision making, introducing the underlying mathematical problem formulations and the algorithms for solving them.”
PlutoCon 2021: “To celebrate Pluto’s 1 year anniversary, we are hosting a two day mini conference about…. Pluto! It will be a place to share your fun notebooks and to learn techniques from other Pluto users and from Pluto’s designers.” What is Pluto? The conference will be April 8th-9th, around 4pm GMT. Contributed talks are solicited.
Quantitative Economics with Julia: Link is to the table of contents of a book based on a series of lectures.
The Top Programming Languages: Julia is #19, breaking into the top 20 for the first time.
Apache Arrow 3.0.0 Release: “This is the first release to officially include an implementation for the Julia language.” The Julia work is developed in the Arrow.jl package.
Apache Arrow Support in Julia: From the Julia Blog: “We’re excited to announce official support for the Julia language in the Apache Arrow project.” Includes some discussion of the use of Arrow in Julia.
Fuzzy completions: In Pluto, the computational notebook for Julia.
State of machine learning in Julia: …as of Jan, 2022.
Struct Destructuring in Julia: The soon-to-arrive Julia v.1.7 has a new destructuring syntax for structs. I take a look at what it’s good for.
Fermi.jl: A Modern Design for Quantum Chemistry: “we introduce the quantum chemistry package Fermi.jl, which contains the first implementations of post-Hartree–Fock methods written in Julia. Its design makes use of many Julia core features, including multiple dispatch, metaprogramming, and interactive usage. Fermi.jl is a modular package, where new methods and implementations can be easily added to the existing code. Furthermore, it is designed to maximize code reusability by relying on general functions with specialized methods for particular cases.”
Julia 1.7 Highlights: “After 4 betas and 3 release candidates, Julia version 1.7 has finally been released.”
Statistics with Julia: Fundamentals for Data Science, Machine Learning and Artificial Intelligence: Contains most of the text of the draft of what looks like a solid, compendious book.
Plotting stuff in julia [sic]: Opinionated rundown of options by a mathematician.
Comparing Julia to Performance Portable Parallel Programming Models for HPC: “Julia programs enjoys comparable performance to native C/C++ solutions.[…] Julia gets the unique opportunity to provide best-in-class performance on some of the latest hardware platforms.”
An Introduction to Pluto: Pluto is a new computational notebook for the Julia programming language.
Julia v1.8 Release Notes: Julia 1.8.0 is in beta. These release notes include many welcome enhancements. Several of the new features relate to the creation of sysimages, and appear to make it easier to produce smaller compiled code.
The Scientist’s Linux Toolbox: Free software for scientists in Linux Pro Magazine.
Composability in Julia: Implementing Deep Equilibrium Models via Neural ODEs: “The SciML Common Interface defines a complete set of equation solving techniques, from differential equations and optimization to nonlinear solves and integration (quadrature), in a way that is made to naturally mix with machine learning. In this sense, there is no difference between the optimized libraries being used for physical modeling and the techniques used in machine learning: in the composable ecosystem of Julia, these are one and the same.[…] With a composable package ecosystem, the only thing holding you back is the ability to figure out new ways to compose the parts.”
Magnification Shape Styling in Lens Insets in Julia: In the current version of Plots you can style the lines with which the magnification shape is drawn when making lens insets.
The Unreasonable Effectiveness of Recipe Analogies: On an article about the programming language Julia.
Julia REPL ↓ trick: Stefan Karpinski reveals a secret superpower in plain sight: “After evaluating a command from history in the REPL, you can press ↓ and get the next command after that one, so you can replay a sequence of commands by finding the first one and doing ↓⏎ repeatedly”.
Nonlinear Dynamics: “A Concise Introduction Interlaced with Code”.
Epidemiological Modeling With Structured Cospans: “This is a wonderful development! Micah Halter and Evan Patterson have taken my work on structured cospans with Kenny Courser and open Petri nets with Jade Master, together with Joachim Kock’s whole-grain Petri nets, and turned them into a practical software tool!”
Julia Part of Google Summer of Code 2021: Proposals accepted starting March 29.
Julia v.1.6 release addresses latency issues: Julia’s new release turns the “time to first plot” problem into (almost) a non-issue.
Pluto 0.17.6 Announced: The latest version of Pluto, the computational notebook for Julia, has some great new features, including a dark mode and the ability to print logging messages from running code in the notebook.
Julia Update: Adoption Keeps Climbing; Is It a Python Challenger?: “The rapid adoption of Julia, the open source, high level programing language with roots at MIT, shows no sign of slowing”
I am writing a Julia book: The preliminary title is Applied Julia; it will be published by No Starch Press.
What’s coming in Julia 1.7: New features on the way.
Auto-Optimization and Parallelism in DifferentialEquations.jl: A video by Chris Rackauckas describing two levels of automation for the scientist who needs to solve some differential equations efficiently: first, detect properties of the equation system to choose the best solver; but also automate the choice of what algorithm use to do that. The pieces are under the SciML ecosystem.
Climate Modeling Alliance: “We are building a new Earth system model that leverages recent advances in the computational and data sciences to learn directly from a wealth of Earth observations from space and the ground. Our model will harness more data than ever before, providing a new level of accuracy to predictions of droughts, heat waves, and rainfall extremes.” The code is contained in a collection of Julia packages.
Announcing composable multi-threaded parallelism in Julia: New in v. 1.3: a very nice task parallelism interface.
Greenspunning Predicate and Multiple Dispatch in JavaScript: Nothing to do with Julia, but contains a clear discussion of the expression problem.
Julia 1.5 Highlights: The new release of the most advanced language for scientific computing features significant improvements in convenience and performance.
Concurrency in Julia: An overview of the easiest-to-approach facilities for parallel and concurrent computation in Julia, with a demonstration of the effects of a new feature: thread migration. Discussed on Hacker News.
The Accelerating Adoption of Julia on Hacker News: My article has been on the front page of Hacker News most of today. If the subject interests you, you might want to take a look, as there are some really knowledgeable people commenting there.
Julia’s Big Problem With Namespace: Points out how using two modules that export the same names leads to a naming conflict.
Typed vs. Untyped Dict Performance in Julia: An interesting case study showing a massive speedup and reduction in memory allocation gained from a type declaration.
Analyzing sources of compiler latency in Julia: method invalidations: “The Julia programming language has wonderful flexibility with types, and this allows you to combine packages in unanticipated ways to solve new kinds of problems. Crucially, it achieves this flexibility without sacrificing runtime performance. It does this by running versions of code or algorithms that have been”specialized” for the specific types you are using. Creating these specializations is compilation, and when done on the fly (as is common in Julia) this is called “just in time” (JIT) compilation. Unfortunately, JIT-compilation takes time, and this contributes to latency when you first run Julia code. This problem is often summarized as “time-to-first-plot,” though there is nothing specific about plotting other than the fact that plotting libraries tend to involve large code bases, and these must be JIT-compiled.”
Macroeconomic Modeling: “The Federal Reserve Bank of New York publishes its trademark Dynamic Stochastic General Equilibrium models in Julia.”
What’s bad about Julia?: A sophisticated and detailed critique, concentrating especially on the type system, from the point of view of a Julia user.
Julia Computing Raises $24M Series A: “Julia Computing will use the funding to further develop and advance its secure, high-performance JuliaHub cloud platform and to grow the Julia ecosystem.”
Automated Code Optimization with E-Graphs: “Can programmers implement their own high-level compiler optimizations for their domain-specific scientific programs, without the requirement of them being compiler experts at all? […] can symbolic mathematics do high-level compiler optimizations or vice-versa?”
Julia v1.7.2 Released: “As a patch release, 1.7.2 contains no new features or breaking changes, only bug fixes, documentation improvements, and performance improvements. […] We recommend that anyone currently using 1.7.0 or 1.7.1 upgrade to 1.7.2. Note that 1.7 on Travis, AppVeyor, Cirrus, and GitHub Actions now refers to 1.7.2.”
Digging into Julia’s package system: How Julia’s excellent package system eases development and code sharing.
Bash shell completions for Julia: Bash shell completions contextually finish what you’re typing when you hit the tab key. This project tells the shell about Julia commands, to save you keystrokes.
The JuliaMono Typeface: some glyphs Today I learned that Julia has its own typeface. It has huge Unicode coverage, with 10,028 glyphs.
Meshes.jl: Computational geometry and meshing algorithms in Julia
World Age in Julia: “Dynamic programming languages face semantic and performance challenges in the presence of features, such as eval, that can inject new code into a running program. The Julia programming language introduces the novel concept of world age to insulate optimized code from one of the most disruptive side-effects of eval: changes to the definition of an existing function. This paper provides the first formal semantics of world age in a core calculus named Juliette, and shows how world age enables compiler optimizations, such as inlining, in the presence of eval.”
Physics-informed neural networks (PINNs) solver on Julia.: “My project aim was to design a general solver for different types of PDEs using a deep learning approach base on the Physics-informed neural networks(PINNs) algorithm as part of NeuralPDE library using the ModelingToolkit PDE interface for the automated solution.”
Forecasting the weather with neural ODEs: Using Julia to forecast the weather with machine learning techniques.
A Look at Communication-Intensive Performance in Julia: “if programmers properly balance the computation to communication ratio, Julia can actually outperform C/MPI in a cluster computing environment.”
Jack Dongarra, who made supercomputers usable, awarded 2021 ACM Turing prize: The creative force behind LINPACK and BLAS says that Julia is a good candidate for the next computing paradigm.
Julia 1.6.0 released: Version 1.6.0 was officially released on March 24th, 2021. I’ve been using 1.6.0-rc1 for a while, and it has been stable and fast with precompilation, reducing the “time to first plot” to just a few seconds.
The Unreasonable Effectiveness of the Julia Programming Language: My article about Julia and science in Ars Technica.
Julia 1.6: what has changed since Julia 1.0?: Great, detailed rundown of the interesting improvements in Julia, by a Julia developer.
ModelingToolkit.jl: “A modeling framework for automatically parallelized scientific machine learning (SciML) in Julia. A computer algebra system for integrated symbolics for physics-informed machine learning and automated transformations of differential equations”.

Share with Facebook Share with Twitter Share with Reddit Share with Slashdot
▶ Comment
lee-phillips.org is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com.
Quotilizer ... loading ...

Tenuously related:

The best tool for CVs with publication lists.