crystal-libraries-neede
zig
crystal-libraries-neede | zig | |
---|---|---|
2 | 854 | |
- | 36,516 | |
- | 3.7% | |
- | 10.0 | |
- | 4 days ago | |
Zig | ||
- | 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.
crystal-libraries-neede
-
Py2cr: A Python3 to Crystal Translator
This project started with this request: https://github.com/crystal-community/crystal-libraries-neede...
However, it is heavily based on the (abandoned?) py2rb work by Naitoh which I made enhancements to.
IMO, Rubyists should have an easier time with Crystal syntax since it is more similar. Also, the likelihood of having type annotations in Python is much higher than Ruby because type annotations have been around longer in Python, iirc.
-
Crystal 1.1.0 Is Released
There's one here: https://github.com/crystal-community/crystal-libraries-neede...
Not sure how active it is, though.
zig
-
TIL: Ghostty — a new and quite promising terminal emulator
At the same time, in the internal Slack of the company I work for, my colleague asked the security team whether we have any policies about the apps, as they'd like to start using Ghostty as their terminal emulator. I took a look at it, and it immediately caught my attention: a fresh look, a zero-config setup, platform-native UI (discovered in details in the “Ghostty Is Native—So What?” post by Gregory Anders) and GPU acceleration, and FOSS with very permissive MIT license (here is the GitHub repo). I googled the author (Mitchell Hashimoto), and discovered that he is a co-founder of HashiCorp, that brought Terraform, Vargant, Consult, Vault, and others to the world. That's quite a list. And, last but not the least, Zig as the main programming language was an interesting factor as well.
-
C++ or Rust? I'd stick to my good old C++
I'm not sure which language will be more mainstream in the future between these two. Maybe Zig(https://ziglang.org) can be some contender in the future, but not now at least - it could be a good contender at least it shows OOP grammar as simple as Python, internalizing vtable. For C++ and Rust, at least for me Rust is more like "you MUST do this" while C++ is like "you CAN do it also in this way." While one is highly opinionated, the other is unopinionated at all(that is to say, at least for me. your opinions are always welcome). And that may be one of the reasons that I don't like Qt? :D Maybe C++ is still superset of Rust in some way (it's just "in some way", because there are things unique in Rust language itself. For example, Rust trait can be mimicked with template class and combination of C++ enum and template class can behave like class-associated Rust enum, but C++ doesn't have anything equivalent or similar to borrow checker).
-
Flattening ASTs (and Other Compiler Data Structures)
Zig compiler pipeline (AST, Zir, Air, Sema) does exactly this on all layers. Not only contiguous, but instead of array-of-structs it is struct-of-arrays, so walking the tree is even more cache friendly. For AST see: https://github.com/ziglang/zig/blob/master/lib/std/zig/Ast.z...
-
I Wrote a Game Boy Advance Game in Zig
Yes, please read the comment linked at the issue description: https://github.com/ziglang/zig/issues/16270#issuecomment-161...
-
When Zig Is Safer and Faster Than Rust
A few notes:
1) Lack of a garbage collector does not make your program faster, it makes the performance more easily predictable in terms of latency.
It also makes it more friendly for memory bandwidth, CPU cache and to overall memory usage, which in turn results in better performance in real-case scenarios vs synthetic/toy benchmarks. This is particularly noticeable in constrained environments (like embedded systems).
2) Zig was never about memory safety, and it is not a memory-safe language.
It might have better plumbing than C, it might add better way to implement and abstract concepts.. but so does C++, for instance.
The more striking differences between C++ and Zig, IMHO, are syntax and the ability to use the same language instead of a separate one to do meta-programming (templates vs comptime).
3) Aliasing enforcement in Rust is there for a reason.
Two examples I quickly found on Zig's issue tracker:
https://github.com/ziglang/zig/issues/3696
-
Enum of Arrays
I'll tell you my experience with Zig. I don't have any. I saw maybe Primagen talking about it and I see your post here. I watched 10 minutes of your vimeo video. I see it has 30k+ stars on github. So now I have to try to understand it in a nutshell.
First like any language, I go to indeed.com and put in "Zig" to see if there are any jobs listed which use it. I don't see any.
Then I click to https://ziglang.org/ and it describes Zig as "robust, optimal and reusable". Well that doesn't really say much of anything.
I read the example listed, which appears to be a test case, and I wonder how the 'try' mechanism works without a 'catch'
Then I go to https://ziglang.org/documentation/master/ and see that it says:
- Zon – object notation like JSON in Zig
- Linux Syscall Support
-
Zig is everything I want C to be
> will that function also get to return a u8?
No, the main function (the entry point of the entire program) is special cased. Have a look at the source code. There you can see the it's calling the user defined main function and handling its return value / error.
https://github.com/ziglang/zig/blob/2d888a8e639856e8cb6e4c6f...
> Also, what happened to argv/argc?
You can access argv with std.os.argv which is a slice of null terminated strings. It's better to go with std.process.argsAlloc though (requires an allocation but works on all supported platforms).
-
Introduction to Zig (a project-based book)
I'm a bit hesistant to mentally invest in Zig, given the maintainers choice to directly develop against a mostly undocumented NT-API instead of the Win32 API.
[1]: https://github.com/ziglang/zig/issues/1840
What are some alternatives?
crystalline - A Language Server Protocol implementation for Crystal. 🔮
Odin - Odin Programming Language
tree-sitter-crystal
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
scry - Scry is a code analysis server for https://crystal-lang.org
ssr-proxy-js - A Server-Side Rendering Proxy focused on customization and flexibility!
crystal-libraries-needed - A list of libraries that are needed or wanted for the Crystal-Language
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).
Graal - GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀
go - The Go programming language
py2cr - Python3 to Crystal Translation using Python AST Walker
rust - Empowering everyone to build reliable and efficient software.