interface99
crystal
interface99 | crystal | |
---|---|---|
15 | 239 | |
262 | 19,109 | |
- | 0.3% | |
1.9 | 9.8 | |
about 1 year ago | 6 days ago | |
C | Crystal | |
MIT License | Apache License 2.0 |
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.
interface99
- Full-featured OOP interfaces for C99
-
Templates in C
There is a project that achieves something like this, and quite nicely I think, worth checking it https://github.com/Hirrolot/interface99
-
Pretty-Printable Enumerations in Pure C
I agree; I would especially not recommend abusing macros throughout an application codebase too much. Conceptually, Metalang99 is more of a (sub)language than a library, which also adds some entry barrier. Ideally, I see the application of Metalang99 being used "behind the scenes", e.g., encapsulated in separate code files/libraries such as Datatype99 and Interface99. This is what I (mostly) do in SmolRTSP.
- Just Lua things
-
Comparing Golang and Interface99
There are also some differences. Golang, for example, can resolve interface methods at run-time, whereas Interface99 constructs virtual tables statically. Interface99 allows default implementations; Golang doesn't. And, of course, Interface99 mandates placing impl(MyIface, MyType), whereas Golang uses a.k.a. duck typing for interfaces (interface implementations are indistinguishable from ordinary methods). Also, when you would use embedding in Golang, such as this:
I think your github repo link is broken. Here's a working link.
-
lipstick: a Rust-like syntax frontend for C
I've done something similar with Datatype99 and Interface99. They are like a macro eDSL that compiles to C. The first one features algebraic data types, the second one features interfaces.
-
Any alternative to vala?
If you need a bit more high-level constructions, you can use the Datatype99 and Interface99 libraries. The former provides polymorphism over data, the latter -- over behaviour (I am the creator of these libraries).
-
Diamonds in the Rough : An Honest Trial for any Language
Is it possible that you could benefit from "a better C"? If so, I'd love to hear your take on Crystal, and the recent announce on Interface99.
-
Comparing interfaces: Rust and Interface99
There is a full example code: https://github.com/Hirrolot/interface99/blob/master/examples/state.c.
crystal
- A Language for Humans and Computers
-
Top Paying Programming Technologies 2024
27. Crystal - $77,104
-
Crystal 1.11.0 Is Released
I like the first code example on https://crystal-lang.org
# A very basic HTTP server
- Is Fortran "A Dead Language"?
- Choosing Go at American Express
- Odin Programming Language
- I Love Ruby
-
Ruby 3.3's YJIT: Faster While Using Less Memory
Obviously as an interpreted language, it's never going to be as fast as something like C, Rust, or Go. Traditionally the ruby maintainers have not designed or optimized for pure speed, but that is changing, and the language is definitely faster these days compared to a decade ago.
If you like the ruby syntax/language but want the speed of a compiled language, it's also worth checking out Crystal[^1]. It's mostly ruby-like in syntax, style, and developer ergonomics.[^2] Although it's an entirely different language. Also a tiny community.
[1]: https://crystal-lang.org/
-
What languages are useful for contribution to the GNOME project.
Crystal is a nice language that's not only simple to read and write but performs very well too. And the documentation is amazing as well.
-
Jets: The Ruby Serverless Framework
Ruby is a super fun scripting language. I much prefer it to python when I need something with a little more "ooomph" than bash. It's just...nice...to write in. Ruby performance has come a long way in the last decade as well. There's libraries for pretty much everything.
My modern programming toolkit is basically golang + ruby + bash and I am never left wanting.
I do find Crystal (https://crystal-lang.org/) really interesting and am hoping it has its own "ruby on rails" moment that helps the language reach a tipping point in popularity. All the beauty of ruby with all of the speed of Go (and then some, it often compares favorably to languages like rust in benchmarks).
What are some alternatives?
COS - C Object System: a framework that brings C to the level of other high level programming languages and beyond
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
smolrtsp - A lightweight real-time streaming library for IP cameras
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).
rps-tailspin - A rock-paper-scissors server written in tailspin
go - The Go programming language
sps - Pre-Scheme to (GNU) C compiler written in Pre-Scheme
Elixir - Elixir is a dynamic, functional language for building scalable and maintainable applications
Cloak - A mini-preprocessor library to demostrate the recursive capabilites of the preprocessor
mint-lang - :leaves: A refreshing programming language for the front-end web
datatype99 - Algebraic data types for C99
Odin - Odin Programming Language