9 ms·
Crystal 0.25
- faitswulff 8y agoAs a long-time Rubyist, I took a serious look at Crystal for the first time and discovered a lot of the best batteries of Ruby included in Crystal. So pleased to find an RSpec-like DSL for testing, for example, and Crystal's Rails-like framework, Amber, generates scaffolds with Bootstrap built in. It's almost cheating how much learning and takeaways the Crystal core team can borrow from Ruby! I'm really liking it so far.
- ksec 8y agoWhile Ruby allows you to choose and provide way too many choices, many guns for you to shoot your foot into. Crystal decided some are not good and actually enforce those best practices. I think Lucky [1] is actually a more Rails Like framework. ( Or more like both are NOT like Rails. As features rich or heavyweight, Rails provides more then you will ever need. ) [1]https://luckyframework.org/why-lucky/ https://luckyframework.org/why-lucky/
- fiatjaf 8y agoCrystal for Ruby programmers: https://rosetta.alhur.es/compare/Ruby/Crystal/# https://rosetta.alhur.es/compare/Ruby/Crystal/#
- prydt 8y agoI really like Crystal, and while it hasn't reached a 1.0 yet, it is still great and used in production. I think the main selling point of Crystal is performance + nice syntax. The docs are great and will help anyone curious to learn Crystal along the way. Crystal's biggest problem is that it doesn't have the support of a company or a large base of users so the core team isn't funded as much as they'd like. All in all, I think it is a great language!
- SparkyMcUnicorn 8y agoIf anyone is looking for companies that are using it in production (like I was), here's a list: https://github.com/crystal-lang/crystal/wiki/Used-in-production https://github.com/crystal-lang/crystal/wiki/Used-in-product... Crystal always fascinates me when it gets brought up, and I'd really like to dive in sometime.
- omaranto 8y ago> Crystal's biggest problem is that it doesn't have the support of a company I thought it was supported by Manas (https://manas.tech/ https://manas.tech/).
- blairanderson 8y agoI think that's the point. Manas is a fairly small consulting company without previous clout in the OSS world. A large organization adopting it and supporting it would make a considerable difference regarding adoption.
- RX14 8y agoManas is a tiny company without the resources to spare a single developer. The money to pay for the single developer who is working full-time on crystal comes entirely from bountysource and other donations: https://salt.bountysource.com/teams/crystal-lang https://salt.bountysource.com/teams/crystal-lang
- deleted 8y ago[deleted]
- darkcha0s 8y agoWhy is Crystal popping up so much on HN and why do all these comments read like advertisements
- coldtea 8y ago>Why is Crystal popping up so much on HN 1) Because HN is a social news website, so when someone reads a post about a subject, others are reminded of it, and can post in return. This happens with all popular topics, they come in batches. 2) Because Crystal is getting more popular (e.g. it jumped TIOBE rank for what it's worth), and more people like to read and hence vote such articles. 3) There's a huge conspiracy, with marketing shills and aliens, for an OSS language. 4) More than Go or Rust or React or Ruby back in the day? Take your pick
- deleted 8y ago[deleted]
- nedp 8y agoBecause advertising Crystal means a chance for Ruby enthusiasts and some beginners to try a statically-typed language without having too much learning curve.
- noncoml 8y agoBecause Ruby is a really nice language to write code in (minus some quirks) and everyone would love a language with similar programmer experience, but much faster.
- derefr 8y ago> why do all these comments read like advertisements Enthusiastic users of new programming languages with small communities, generally want more people to use it as well, so that the community will grow and 1. produce more libraries; 2. produce more tutorials and other resources; 3. have more people for them to talk to about the language.
- woodruffw 8y agoI've been using (and contributing to) Crystal for some small projects over the last few months. Writing C bindings within it is amazingly stress-free[1]. It's still an unstable language (there are plenty of breaking changes in this release), but I highly recommend it -- especially if you like both static typing and Ruby. [1]: https://github.com/woodruffw/x_do.cr/blob/master/src/x_do/libxdo.cr https://github.com/woodruffw/x_do.cr/blob/master/src/x_do/li...
- _RPM 8y agoI think I asked this in the past, but how did Crystal become self hosted?
- simen 8y agoNaturally for a language based off Ruby, the original compiler was written in Ruby. It became self-hosting in late 2013: https://crystal-lang.org/2013/11/14/good-bye-ruby-thursday.html https://crystal-lang.org/2013/11/14/good-bye-ruby-thursday.h...
- krylon 8y agoI am on openSUSE, and I just realized I can install Crystal from the RPM repository (well, duh! I should have thought of that a lot sooner...), so I now have no excuse left to play around with it a little. I also happen to be on vacation right now, so I have plenty of time on my hands. =D Now the only thing that bothers me is the lack of a REPL. It comes with a web-based playground which is pretty nice, but still not quite the same. Is there any chance Crystal does have a true REPL which I just managed to miss? (If not, it's not a dealbreaker - Go doesn't have a REPL, either[0]. But it still would be nice.) [0] I know, I know, there are third-party REPLs like gore, but by the time I found out about them, my need for one had diminished a lot.
- woodruffw 8y agoThere's the semi-official ICR[1]. [1]: https://github.com/crystal-community/icr https://github.com/crystal-community/icr
- deleted 8y ago[deleted]
- sam0x17 8y agoIf you are using amber you can also do `amber exec "code here"` and it will execute the code within your amber environment and return the result.
- samuell 8y agoI'm confused about the state of threading in Crystal. See the last message in : https://github.com/crystal-lang/crystal/issues/1967#issuecomment-391321948 https://github.com/crystal-lang/crystal/issues/1967#issuecom... I'm hoping to see more languages with light-weight threads automatically mapped (multiplexed) to physical threads, like in Go. So far, based on the crowd-sourced table I started working on, it is otherwise only Ada, Haskell and Pony (in addition to Go) that seems to meet these criteria: https://docs.google.com/spreadsheets/d/1BAiJR026ih1U8HoRw__nzbCSFnnHicWrjxpW5l6-O3w/edit#gid=0 https://docs.google.com/spreadsheets/d/1BAiJR026ih1U8HoRw__n...
- RX14 8y agoCrystal will eventually have go-style parallelism as well as go-style concurrency. It's a hard thing to implement, and we don't have the resources of google (in fact we have very little resources at all) so it's taking time. Until 3 weeks ago, nobody at all was working full-time on crystal, it was entirely a spare-time project, so progress is slow, i'm incredibly proud of what we've managed to achieve so far and looking forward to more in the future. Really, the best way to help the language is to donate: https://salt.bountysource.com/teams/crystal-lang https://salt.bountysource.com/teams/crystal-lang
- samuell 8y agoGreat to hear, thanks for the info!
- lkurusa 8y agoLast time I checked/heard about Crystal, it had support for concurrency, but not parallelism yet.
- sam0x17 8y agocoming VERY VERY soon. They already have go-like parallelism working in a branch.
- 8y ago
- jaequery 8y agois there like Sinatra equivalent for Crystal? and what is the go to ORM for Postgres in Crystal?
- steveklabnik 8y agohttps://github.com/kemalcr/kemal https://github.com/kemalcr/kemal No idea about ORMs though.
- deleted 8y ago[deleted]
- skli 8y agohttps://github.com/veelenga/awesome-crystal#ormodm-extensions https://github.com/veelenga/awesome-crystal#ormodm-extension...
- nlh 8y agoTake a peek at Amber and its native ORM Granite. Amber is a bit more rails-like than Sinatra-like, but it’s super lightweight and has been a pleasure to build with so far. I’m using it for several projects. https://github.com/amberframework/amber https://github.com/amberframework/amber
- fridgamarator 8y agoGranite, Jennifer.cr and Crecto are the most popular ORM's at the moment.
- jaequery 8y agoonly thing I don't like about Ruby is the "symbols". if there was a new language that copied everything about Ruby minus the symbols, I'd be all over it. what is the reasoning for a language like Crystal to support symbols? i am under the impression that is just a relic of the past due to performance reasons but it is not the case anymore.
- yebyen 8y agoWhat have you got against symbols exactly? I don't know enough about the reasons why they are implemented to argue this strongly, but I know that they are immutable and that they are one step closer to the language in the sense that, constructions which you may not use in an unquoted symbol, are also not allowed to be used in a Ruby method name. That seems like a handy data structure to have around next to a string (and nobody's stopping you from using a string if you wanted a string and not a symbol, ...or are they?)
- samatman 8y agoIn Lua, symbols are just strings, all strings are immutable via internment, and the symbol rules constrain the parser, not the runtime. So obj.field is shorthand for obj["field"], you can have obj["="] if you want, it means obj.= but that is of course a syntax error. I find this approach more comfortable and easy to reason about than a separate Symbol class.
- yebyen 8y agoThanks! Pretty sure you can get progressive versions of this type of behavior (where obj["field"] is equivalent to obj[:field] or obj.field) by using Ruby's HashWithIndifferentAccess and/or OpenStruct classes, but those are both obviously more obscure than something which is a built-in default language feature.
- samatman 8y agoIt's one of several decisions that make Lua's type system easy to reason about. Another one is that environments themselves are simply tables, the global is _G, and environments can be set and retrieved on functions. Kinda like mutable Mars ^_^
- j1elo 8y agoGreat to see some steps made towards supporting Windows! (i.e. "non-POSIX systems") Now a pressing issue (though not for everyone) is that the compiler needs to escale from the current state because it takes too much memory and too much time to compile, but last time I checked it still wasn't crystal clear how to improve it.
- kowdermeister 8y agoOh, they copied neglecting windows from RoR? :/ That was the reason I skipped Rails back in the day.
- RX14 8y agoCrystal is still fairly early in it's development. We have plenty of time available to make the breaking changes required to make windows a true first class citizen. I'm putting a lot of thought into how to do this.
- backpropaganda 8y ago> how to improve it Give up on type inference, or at least type inference across modules and classes.
- bazeblackwood 8y agoI really, really like Crystal — the Ruby syntax is great, and better type safety is always a plus. But I haven't found a reliable way for building a binary on a Mac OS without requiring dyld already be present on the target user's system. Seems none of the following issues are resolved, or that the project has indicated a recommended way to do this? https://github.com/crystal-lang/crystal/issues?utf8=%E2%9C%93&q=dyld%3A+Library+not+loaded https://github.com/crystal-lang/crystal/issues?utf8=%E2%9C%9...
- bazeblackwood 8y agoSeems like the most relevant issue is here: https://github.com/crystal-lang/crystal/issues/3067#issuecomment-238669615 https://github.com/crystal-lang/crystal/issues/3067#issuecom...
- Birch-san 8y agoI had a crack at fixing this. Could you try my make_portable.sh script on one of your Crystal binaries? https://github.com/crystal-lang/crystal/issues/3067#issuecomment-397841583 https://github.com/crystal-lang/crystal/issues/3067#issuecom...
- faaq 8y agoWow, amazing! Well, a couple of breaking changes, but... still amazing!