Our great sponsors
-
-
The Crunchy Bridge CLI is written in crystal: https://github.com/CrunchyData/bridge-cli/. The program that monitors databases is likewise a crystal program.
My biggest grievance with Crystal is the lack of incremental compilation. I understand why it's difficult to achieve given the language model. I've been watching the Crystal Interpreter with interest, it would be pretty cool if it could speed up my `M-x crystal-spec-line` interactions, along with all the other usual benefits of an interpreter.
On the other hand, there's a lot to like about Crystal: it has a convenient yet powerful type system, good error messages, and generates high quality code in a straightforward manner.
-
InfluxDB
Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
-
crystal-docker-quickstart
A project template for quickly working with the Crystal programming language in a Docker container, no installation needed.
My side project https://totalrealreturns.com/ is now about 5k lines of Crystal. There are some rough edges: in particular I think it could use a better templating solution (a port of HAML would be ideal!), and there are some failure modes with the Redis connection pool that have required workarounds.
This includes unit tests: the built-in spec framework is great and much like rspec. https://crystal-lang.org/reference/1.6/guides/testing.html
I'm now starting to use Crystal for internal backend infrastructure and microservices.
For anyone who wants to kick the tires on Crystal, I built a crystal-docker-quickstart project template: https://github.com/compumike/crystal-docker-quickstart works without having to install anything locally. (Assuming you have docker.) You can have your own, home-built "Hello world" static binary in under a minute:
git clone https://github.com/compumike/crystal-docker-quickstart.git my_app && cd my_app && ./d_dev
-
Not to be confused with the C# document database built on Postgres.
-
lucky
A full-featured Crystal web framework that catches bugs for you, runs incredibly fast, and helps you write code that lasts.
I'd love to see two docs there:
- What's different from Lucky https://luckyframework.org/
- What's different from Amber https://amberframework.org/
-
amber
A Crystal web framework that makes building applications fast, simple, and enjoyable. Get started with quick prototyping, less bugs, and blazing fast performance.
I'd love to see two docs there:
- What's different from Lucky https://luckyframework.org/
- What's different from Amber https://amberframework.org/
-
They’re all good to try IMO, another is https://kemalcr.com which is akin to Sinatra if you just want to get an HTTP server with routes setup quickly.
-
SonarLint
Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
-
I have recently learned to use it to create an AutoHotkey for Linux implementation (https://github.com/phil294/AHK_X11), and it's been a delightful experience. If you like programming in Go and Ruby syntax, this will be your go to language. Other than that, it bears but few surprises, which I would consider a good thing. Its major downside is its compilation time and poor IDE support. Also, you should not be afraid to search through Crystal's GitHub issues or dig into the stdlib's source for more exotic use cases. However, the latter is as easily accessible as is your own code, and the community around Crystal seems quite friendly and welcoming. Contrary to sibling comments, I find it well suited for programs outside of web development as well.
And most of all, it's fast.
-