1. 9
  1.  

  2. 6

    This language is really hitting the sweet spot of productivity. High level and joyful to work with but retaining c-like efficiency/speed. And they have been putting focus on the right things people want thesen days: easy to use http libraries, support for popular databases, JSON support, etc. I personally would prefer they would have mimicked python instead of ruby as I find objectively simpler and more pragmatic even.

    This story really illustrates the mood of crystal and it’s community: let’s do something to the point, keep it simple and reasonable on resource usage. Kind of a grassroots take on software, but benifiting from decades of advancements and nice things.

    As for keeping the code Hiden… Let go… Just release it… It is just a weekend project. Don’t be so possessive over it. You’re very likely getting less for it than if you would just release it.

    1. 3

      The fully working source code is available on my Patreon account for all pledgers.

      This one kinda makes me feel weird about the whole post, and it adds on top of “screenshots” of code.

      I completely understand the need for monetization and the “do it yourself” approach, but on the other side I think that quite got too far here. This code isn’t anything like a million dollar startup PoC but it’s somewhat a kind of value for many people who would like to know how to process PNGs in such elegant bitmap->png pipeline in real-time and others interested in such fast HTTP responses in Crystal. So while I can’t really enforce any sort of openness or licensing on anyone, it would be better if this code gets released publicity, maybe just in a simple GitHub Gist or something like that. But if the author requests money for it (even via the Patreon, it’s still the transaction between me and an author, even more evil because 80% of people would pledge and then forget to lift it for months, that’s why I’m quite against such model) then it might be better just not to release it and tell people to figure the solution on their own.

      1. 3

        I’ve used Crystal successfully at $WORK for 2 different projects now, one I can’t talk about, and another is a web crawler (because no RSS) to alert me in Slack whenever Google ships some upstream updates (google autoupdates are the devil why do they still do this stuff instead of having support windows?) and re-schedule our E2E tests. Both code bases I touch exceedingly rarely and whenever it compiles it just works. I know Crystal is not at “1.0 stable” yet, but I can say with absolutely certainty it is dependable, and it by far my most favorite language to use whenever I own the project.

        1. 2

          If I understand correctly, the author use the http server provided by Crystal’s standard library. For the Crystal users here, is it a common/good practice (like in Go) or do you usually use a framework on top of it ? I heard of Amber and Lucky, but it seems to be more of them. What’s your goto ?

          Anyway, coming from Python I really appreciate the clarity of the syntax ! To bad $WORK’s stack does not need to change, but I definitely need to give Crystal a try !

          Oh, one more question: what’s your experience building CLIs with it ?

          1. 2

            For the Crystal users here, is it a common/good practice (like in Go) or do you usually use a framework on top of it ? I heard of Amber and Lucky, but it seems to be more of them. What’s your goto ?

            I haven’t reached for a framework yet, but I could see how it would be necessary if you were building something with a lot of routes to manage.

            Oh, one more question: what’s your experience building CLIs with it ?

            Delightful for the most part, the initially typing from parsing the argv can perhaps feel a bit rough if you aren’t use to it. I’ve only ever used the stdlib OptionParser so maybe there is something more “ergonomic” out there, but since what I’ve built are tools in our CI/CD pipeline that basically need to run forever, I do not reach for external tooling unless I really have to (because it’s just another piece that can break).

            1. 1

              Thanks for your feedback ! :)