Our great sponsors
stricks | julia | |
---|---|---|
8 | 306 | |
89 | 41,891 | |
- | 1.1% | |
0.0 | 9.9 | |
over 1 year ago | 1 day ago | |
C | Julia | |
GNU General Public License v3.0 only | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
stricks
-
Buffet
> I was thinking about Simple Dynamic Strings but I like this better.
Oh! here's my chance to plug https://github.com/alcover/stricks ! It follows the same principle as SDS (i.e user-facing type is char*) but is much faster (see bench) and frankly nicer to read through.
Not as feature complete, though.
-
Speeding past Redis/SDS strings
Mine is also variable (see https://github.com/alcover/stricks/blob/main/src/stx.c). Maybe they switch more often that necessary ?
The threads were very interesting. I got back to work and it's time to talk speed ! https://github.com/alcover/stricks#speed
- Show HN: Stricks, managed C strings library
julia
- What's Julia's biggest weakness?
-
Show HN: Codon: A Compiler for High-Performance Pythonic Applications and DSLs [pdf]
It depends on the nature of your compute. If it is dominated by IO, or if you are actually calling native libraries (like `numpy` does, or it is something that is handled by `arrow`), there is no reason to switch away from Python. If you are writing custom algorithms, I think https://julialang.org/ is a great option.
-
Brett Slatkin: Why am I building a new functional programming language?
Without articulating what particular tradeoffs the author is balancing and sounding like they only recently realized/discovered the parallelism advantage possible to functional programming languages and paradigms, it is hard to know for sure, but I might venture a guess that Julia will be superior to what they build: https://julialang.org
-
Why Python keeps growing, explained
You should check out Julia (https://julialang.org/), that's very close to what you describe.
-
Any help or tips for Neural Networks on Computer Clusters
However, if you are writing numerical code in Fortran and want to be able to better interface it it with machine learning tools and methods, the number one thing I can recommend is to look into Fortran-based automatic differentiation tools. This will enable you to calculate exact derivatives of your code, which are useful to have for training and optimization loops. You can also look into f2py and f90wrap for generating Python wrappers for your Fortran codes, as well as Julia for hooking into it directly.
- Excited for Julia v1.9
-
Yann Lecun: ML would have advanced if other lang had been adopted versus Python
If you look at Julia open source projects you'll see that the projects tend to have a lot more contributors than the Python counterparts, even over smaller time periods. A package for defining statistical distributions has had 202 contributors (https://github.com/JuliaStats/Distributions.jl), etc. Julia Base even has had over 1,300 contributors (https://github.com/JuliaLang/julia) which is quite a lot for a core language, and that's mostly because the majority of the core is in Julia itself.
This is one of the things that was noted quite a bit at this SIAM CSE conference, that Julia development tends to have a lot more code reuse than other ecosystems like Python. For example, the various machine learning libraries like Flux.jl and Lux.jl share a lot of layer intrinsics in NNlib.jl (https://github.com/FluxML/NNlib.jl), the same GPU libraries (https://github.com/JuliaGPU/CUDA.jl), the same automatic differentiation library (https://github.com/FluxML/Zygote.jl), and of course the same JIT compiler (Julia itself). These two libraries are far enough apart that people say "Flux is to PyTorch as Lux is to JAX/flax", but while in the Python world those share almost 0 code or implementation, in the Julia world they share >90% of the core internals but have different higher levels APIs.
If one hasn't participated in this space it's a bit hard to fathom how much code reuse goes on and how that is influenced by the design of multiple dispatch. This is one of the reasons there is so much cohesion in the community since it doesn't matter if one person is an ecologist and the other is a financial engineer, you may both be contributing to the same library like Distances.jl just adding a distance function which is then used in thousands of places. With the Python ecosystem you tend to have a lot more "megapackages", PyTorch, SciPy, etc. where the barrier to entry is generally a lot higher (and sometimes requires handling the build systems, fun times). But in the Julia ecosystem you have a lot of core development happening in "small" but central libraries, like Distances.jl or Distributions.jl, which are simple enough for an undergrad to get productive in a week but is then used everywhere (Distributions.jl for example is used in every statistics package, and definitions of prior distributions for Turing.jl's probabilistic programming language, etc.).
-
Machine learning with Julia - Solve Titanic competition on Kaggle and deploy trained AI model as a web service
Julia is a general purpose programming language well suited for numerical analysis and computational science. Sometimes it's stated as a future of machine learning and the most natural replacement for Python in this field.
-
What "nice-to-have" CLI tools do you know?
Or Julia!
-
What have you "washed your hands of" in Python?
*It's for Julia tho
What are some alternatives?
jax - Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more
NetworkX - Network Analysis in Python
Lua - Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.
rust-numpy - PyO3-based Rust bindings of the NumPy C-API
Numba - NumPy aware dynamic Python compiler using LLVM
StaticCompiler.jl - Compiles Julia code to a standalone library (experimental)
F# - Please file issues or pull requests here: https://github.com/dotnet/fsharp
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
LUA - A programming language based upon the lua programming language
JLD2.jl - HDF5-compatible file format in pure Julia
femtolisp - a lightweight, robust, scheme-like lisp implementation
PackageCompiler.jl - Compile your Julia Package