administrative-scripting-with-julia
libuv
administrative-scripting-with-julia | libuv | |
---|---|---|
7 | 75 | |
160 | 23,276 | |
- | 0.6% | |
5.2 | 9.0 | |
7 months ago | 7 days ago | |
Jupyter Notebook | C | |
- | 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.
administrative-scripting-with-julia
- GitHub - ninjaaron/administrative-scripting-with-julia: Guide for writing shell scripts in Julia
-
Administrative Scripting with Julia
I appreciate the "Why You Shouldn't Use Julia for Administrative Scripts" section[0] which asked exactly the questions I would have asked.
The choice of (non-Bash) language to write command line utilities is in a bit of odd spot right now. Python is basically almost everywhere installed but the dependency on runtime + venv oddities bring their own set of problems. Java has the same runtime need issues though things might improve with initiatives regarding native binary compilation (though including the runtime may not produce exactly lightweight executables). Perl used to be a hot favorite in this space but I don't think lot of people are writing new stuff in Perl even though it is still present by default almost everywhere. Go is almost perfect here except I don't want to deal with 3x the boilerplate. Personally I think Rust isn't a bad choice (libraries like clap hugely reduce the boilerplate) but the learning curve makes it a harder sell (even though for basic utilities, I don't think there would be too much wrestling with the borrow checker). Another choice that comes to mind is Nim; I think it is very well positioned except a lot of people don't know even about it so its a hard sell + even among those who know, everyone is looking at everyone else to take the initiative to adopt it in a corporate environment at a non-trivial scale.
[0]: https://github.com/ninjaaron/administrative-scripting-with-j...
-
Lisp or Julia
My question is actually not what everyone uses, but what is best suited for the task. Those two things are, of course, almost always different, because the average person is anything but smart. Here you see that Julia is indeed better suited for handling data than Bash: https://github.com/ninjaaron/administrative-scripting-with-julia And here you see that Lisp will be the best scripting language for certain persons: https://quotepark.com/quotes/1879617-larry-wall-is-lisp-a-candidate-for-a-scripting-language-whil/ Obviously, if you don't have in-depth experience with both languages, you don't have to answer my question.
libuv
- Epoll: The API that powers the modern internet (2022)
-
APIs in Go with Huma 2.0
I wound up on a different team with pre-existing Python code so temporarily shelved my use of Go for a bit, and we used Sanic (an async Python framework built on top of the excellent uvloop & libuv that also powers Node.js) to build some APIs for live channel management & operations. We hand-wrote our OpenAPI and used it to generate documentation and a CLI, which was an improvement over what was there (or not) before. Other teams used the OpenAPI document to generate SDKs to interact with our service.
- Python Is Easy. Go Is Simple. Simple = Easy
-
Notes: Advanced Node.js Concepts by Stephen Grider
In the source code of the Node.js opensource project, lib folder contains JavaScript code, mostly wrappers over C++ and function definitions. On the contrary, src folder contains C++ implementations of the functions, which pulls dependencies from the V8 project, the libuv project, the zlib project, the llhttp project, and many more - which are all placed at the deps folder.
- A Magia do Event Loop
-
A complete guide to the Node.js event loop
Libuv, the C library that gives Node.js its asynchronous, non-blocking I/O capability is responsible for managing the thread pool. Node.js gives you the capability of using additional threads for computationally expensive and long-lasting operations to avoid blocking the event loop.
-
What is Node.js?: A Complete Guide
Node.js is written in C, C++, and JavaScript. The core components of Node.js - the V8 engine and the libuv library - are written in C++ and C, respectively, since these languages provide low-level access to system resources, making them well-suited for building high-performance and efficient applications. JavaScript is mainly used to write the application logic.
-
Node v20.3.0 (Current) upgrade to libuv 1.45.0, including SIGNIFICANT performance improvements to file system operations on Linux
x8 apparently https://github.com/libuv/libuv/pull/3952
-
Node.js – v20.3.0
Notably upgrades to libuv 1.45 which has io_uring support. Faster file system access! Awhh yeah, it's on.
Remarkable what a mild & unintrusive PR adding io_uring was. https://github.com/libuv/libuv/pull/3952
-
Using Parallel Processing in Node.js and its Limitations
Well, the single-threaded nature ultimately leads to its biggest downfall. Node.js utilizes a synchronous event loop engineered using Libuv that takes in code from the call stack and executes it.