Open archisman-panigrahi opened 1 year ago
Hello there 👋 Thanks for submitting your first issue to the Pi-Apps project! We'll try to get back to you as soon as possible. In the meantime, we encourage you join our Discord server, where you can ask any questions you might have.
Hello @apandada1.
Pi-Apps does not currently host any standalone programming languages, but I am open to the idea of us growing into that area. Could you describe how this app addition would benefit people? For example, are Raspberry Pies commonly used to program in Julia? Is this the type of language that would be common in a classroom?
Julia is a general purpose language, but is primarily aimed for high performance scientific computing.
It has a (relatively) simple syntax like Python/MATLAB, but the code is compiled before running (unlike Python/MATLAB). As a result, it can achieve speed comparable to C and Fortran (See benchmarks). It is significantly faster than Python/MATLAB/Mathematica.
It has an excellent plotting library (https://docs.juliaplots.org/latest/tutorial/), and can be used for classroom demonstrations. It also supports Jupyter notebooks.
It has a package to support controlling the GPIO pins of Raspberry Pi.
There are thousands of packages available for Julia (similar to Python libraries). The prebuilt Julia binary has its own package manager to download and install these packages.
Prebuild binaries of the latest version for arm64 are available at https://julialang.org/downloads/ The same link hosts prebuilt binaries of the LTS version for armhf.
armhf binaries are not guaranteed to be available as julia lists armv7l as a tier 3 platform. that is probably why it is only available for the stable LTS branch
Tier 3: Julia may or may not build. If it does, it is unlikely to pass tests. Binaries may be available in some cases. When they are, they should be considered experimental. Ongoing support is dependent on community efforts.
julia prebuilts for aarch64 seem sensible though since whoever is making them is doing so with an effort to keep dependencies very low. only glibc 2.17 is required
armhf binaries are not guaranteed to be available as julia lists armv7l as a tier 3 platform. that is probably why it is only available for the stable LTS branch
Tier 3: Julia may or may not build. If it does, it is unlikely to pass tests. Binaries may be available in some cases. When they are, they should be considered experimental. Ongoing support is dependent on community efforts.
Yes, many projects are slowly phasing out armhf.
julia prebuilts for aarch64 seem sensible though since whoever is making them is doing so with an effort to keep dependencies very low. only glibc 2.17 is required
I have tried the Julia binary for aarch64 on several computers (Raspberry Pi, an aarch64 server running Ubuntu 22.04, my mobile phone running Arch Linux ARM using proot in Termux), and it works flawlessly.
I am seriously considering adding a new "Programming languages" category to contain things like Rust, Julia, Node.js, Go, GCC, Clang, QT5, etc.
Some of these are already available in Debian (e.g. gcc/Qt5), and Pi-apps can simply offer the default versions in the repositories.
For recent languages (e.g. Julia, Go, Rust), having the latest version is important, and it would be great if Pi-apps offer the latest version (in contrast, the latest version of gcc is rarely necessary).
For Go, .deb packages of many versions are available in this PPA.
For Go, .deb packages of many versions are available in this PPA.
that ppa is unforuntatly not useful. bionic is not building and thats going to be the minimum required version for bionic and buster compatibility
I am seriously considering adding a new "Programming languages" category to contain things like Rust, Julia, Node.js, Go, GCC, Clang, QT5, etc.
QT5 is not a programming language. it is a GUI toolkit. electron, flutter, GTK, SWT, and many others are examples of other GUI toolkits. almost all of them are deeply engrained in most distros and shoud never be replaced as newer versions deprecate and remove older functionality, breaking system apps that depend on that functionality.
GCC/G++ has the same issue with deprecation, removal, and disallowing of previously legal functions however it is usually packaged in a way as to not interfere with other versions of the compiler so there isn't an issue with having multiple versions installed.
rust does not have these issues (yet) as far as I am aware all releases after 1.0 have backwards compatibility with each other.
Any updates on this? I don't know how pi-apps works, but the algorithm to install Julia using a script would be the following.
julia-1.8.5-linux-x86_64.tar.gz
$HOME/pi-apps/julia/julia-1.8.5
(alternatively, at /opt
).ln -s $HOME/pi-apps/julia/julia-1.8.5/bin/julia $HOME/.local/bin/julia
(alternatively, it can be symlinked at /usr/bin
or /usr/local/bin
.)That's it.
Here is a working bash script for ARM64, which you may want to slightly tweak to include Julia in pi-apps
#!/bin/bash
## download and extract julia in /tmp
cd /tmp
wget https://julialang-s3.julialang.org/bin/linux/aarch64/1.9/julia-1.9.2-linux-aarch64.tar.gz
tar -xvzf julia-1.9.2-linux-aarch64.tar.gz
## remove previous versions of julia, if any
sudo rm -rf /opt/julia*
## move julia to /opt
sudo mv julia-1.9.2 /opt/
### symlink the binary so that it can be called with the command `julia`
## create /usr/local/bin, in case it already does not exist
cd /usr && sudo mkdir local
cd local && sudo mkdir bin
## remove previous symlinks, if any
sudo rm julia
## create the symlink
sudo ln -s /opt/julia-1.9.2/bin/julia /usr/local/bin/julia
What is the name of the app?
Julia
(Optional) Where is the app hosted?
https://julialang.org/downloads/
About the app
Julia is a high performance programming language.
Prebuild binaries of the latest version for arm64 are available at https://julialang.org/downloads/ The same link hosts prebuilt binaries of the LTS version for armhf.
Note: The official repositories contain older versions of Julia. But it would be great if Pi-Apps provides the latest version of Julia.
Confirmations