DmitryBochkarev_ has quit [Ping timeout: 252 seconds]
lucasb has quit [Quit: Connection closed for inactivity]
sgt_chuckles has joined #crystal-lang
<sgt_chuckles>
Why Crystal?
<FromGitter>
<Blacksmoke16> why not?
<FromGitter>
<Blacksmoke16> fast, easy syntax, type safe, etc
<sgt_chuckles>
Nobody's using it.
<sgt_chuckles>
When will it gain market usage?
<FromGitter>
<Blacksmoke16> that would be untrue
<FromGitter>
<Blacksmoke16> its not as popular as Go or Rust, but it's also no 1.0.0 yet. So hopefully will gain popularity over time
<sgt_chuckles>
Can I make games with it?
<FromGitter>
<Blacksmoke16> have a few people in here that have done it yes
<FromGitter>
<Blacksmoke16> i dont know anything about game dev tho
<sgt_chuckles>
So if it's on par with C in terms of speed. Does that mean it's faster than C++?
<FromGitter>
<Blacksmoke16> probably depends on the context/benchmark you do
<sgt_chuckles>
On average then
<sgt_chuckles>
I mean it's faster than Java which is my primary language. I guess performance would only increase with updates
<sgt_chuckles>
Certainly is faster than Python
<FromGitter>
<Blacksmoke16> also got to take syntax into consideration
<FromGitter>
<Blacksmoke16> plus crystal doesn't require typed methods or local variables
<sgt_chuckles>
Im trying to decide which post 2000 language to learn, and I'm going for long term growth. So far theres Go, Kotlin, Dart, Swift, Scala, Ballerina and then theres Crystal
<sgt_chuckles>
Besides the website, the speed Crystal boasts has attracted me to want to learn it.
<FromGitter>
<Blacksmoke16> i would hope crystal gets more popular as time goes on, granted not saying it doesnt have its issues
<sgt_chuckles>
Only concern is lack of supporting IDEs
<FromGitter>
<Blacksmoke16> sublime works okay, really only gives syntax highlighting and auto formatting atm
<FromGitter>
<Blacksmoke16> and can show where methods are defined and stuff, it does its job, but ofc always room for PRs ;)
<sgt_chuckles>
Gotcha
<FromGitter>
<Blacksmoke16> one thing to point out i didnt notice before, is the owners ratings of `e12s` and `M.C`
<FromGitter>
<mistergibson> I like NetBeans with the Ruby plug-in
<FromGitter>
<mistergibson> works well
<FromGitter>
<Blacksmoke16> yea true, can also get away with ruby IDEs for the most part, since synatx is pretty similar
<sgt_chuckles>
I do see some promise for using it in game development since it seems pretty fast. And much easier to use than C++ with that being the standard issue language for game dev.
<sgt_chuckles>
For its speed mainly
<FromGitter>
<Blacksmoke16> imo the biggest drawbacks currently are some language features not fully fledged out/stable, e.x. generics has some issues, and libraries
<FromGitter>
<Blacksmoke16> granted libraries will mature over time as people start using it and create/contribute to shards they like/use/want
<FromGitter>
<Blacksmoke16> and language features will get sorted out over time as well, was a Q&A the other day you could watch
<FromGitter>
<Blacksmoke16> looks like something is broken with the host @mixflame
<FromGitter>
<mixflame> it's very old and broken, it needs fixes and upgrade to new version of amber
<FromGitter>
<mixflame> well not very old
<FromGitter>
<Blacksmoke16> ah 👍
<FromGitter>
<mixflame> like a year old
<FromGitter>
<mixflame> if you could do that I'll gladly accept pull requests or add you as a collaborator
<FromGitter>
<mixflame> oh
<FromGitter>
<mixflame> livepost.mixflame.com has been down for a while
<FromGitter>
<mixflame> and amber_cmd has moved
<FromGitter>
<Blacksmoke16> ah gotcha
<FromGitter>
<mixflame> gotta run it yourself if you wanna see it
<FromGitter>
<mixflame> maybe i could put that server back up if nobody tries fixing it
<FromGitter>
<Blacksmoke16> i misread and saw `live` and thought it was live, missed the `is now opensource` bit P
<FromGitter>
<mixflame> it is live with websockets, the actual app
<FromGitter>
<mixflame> yeah
<FromGitter>
<mixflame> i will consider putting livepost.mixflame.com back
<FromGitter>
<mixflame> for now, fix and run for yourself if you want to see it
<FromGitter>
<Blacksmoke16> unfortunately i dont know much about amber and got enough on my plate
<FromGitter>
<mixflame> no worries
<FromGitter>
<mixflame> if no one does, i will fix it myself and publish those fixes
<FromGitter>
<mixflame> and reinstate the site
<FromGitter>
<mixflame> for now, just the code is offered
DmitryBochkarev_ has quit [Ping timeout: 255 seconds]
DmitryBochkarev_ has joined #crystal-lang
DmitryBochkarev_ has quit [Ping timeout: 255 seconds]
<sgt_chuckles>
Is the crystal-lang site built using Crystal?
<sgt_chuckles>
Like on the backend?
<FromGitter>
<bew> @sgt_chuckles no because it's a static site, there is nothing dynamic (probably a jekyll, i don't remember)
<FromGitter>
<bew> Checkout Amber, Kemal, Lucky: those are web framework and there a already a number of ppl running it
DmitryBochkarev_ has joined #crystal-lang
rohitpaulk has joined #crystal-lang
<FromGitter>
<wontruefree> Criss is like a Jekyll in crystal.
<FromGitter>
<straight-shoota> Criss is WIP though. But it aims to be a compatible replacement for Jekyll, so can be switched any time ;)
marmotini_ has joined #crystal-lang
hightower2 has joined #crystal-lang
marmotini has joined #crystal-lang
marmotini_ has quit [Ping timeout: 264 seconds]
marmotini_ has joined #crystal-lang
DTZUZO has quit [Ping timeout: 246 seconds]
marmotini has quit [Ping timeout: 246 seconds]
<FromGitter>
<bew> Btw @bcardiff how do you write the changelog? could we find a way to automate it? or at least have a helpful helper program to write it?
ashirase has quit [Ping timeout: 252 seconds]
<FromGitter>
<Yevhenii-Kushvid> Hi
<FromGitter>
<Yevhenii-Kushvid> Do you have any information about implementation of parallel programming in crystal?
ashirase has joined #crystal-lang
<FromGitter>
<straight-shoota> @Yevhenii-Kushvid multithreading is currently worked on. The upcoming 0.28.0 release will include a MT-enabled garbage collector. But the MT scheduler is still WIP.
<FromGitter>
<straight-shoota> There is no documentation yet. It's only a preview feature.
<FromGitter>
<straight-shoota> @bew I had an idea the other day to include a change note directly into the PR. It shouldn't be in the branch (because that can cause lots of merge conflicts), but a simple comment prefixed by a key word like `CHANGENOTE: `. This could be easily extracted and form the basis of the changelog. Whoever merges the PR should make sure there is a change note, but it could also be written by the author or
<FromGitter>
<bew> This could be part of a github bot that makes sure there is this CHANGENOTE tag (or a CHANGEIGNORE)
<FromGitter>
<straight-shoota> I wouldn't want to overcomplicate it
<FromGitter>
<straight-shoota> Having a convention should be good enough.
<FromGitter>
<bcardiff> @bew / @straight-shoota I was thinkings something similar. I like to review the overal PR list so I can have a better picture of the release, choose order and what can be included in the release post. But a time consuming part of the process is to check and undersand the change of each PR itself. The initial description is not always in a changelog friendly way (that could be stated in the PR template), but
<FromGitter>
... also PRs change over time and the initial title and initial description does not reflect the merged change. Maybe a bot could help there "Hey, can you check the title is something you might want to see in the changelog? Does the initial description describe the final state, if not update it." I also check that kind:* and to ... [https://gitter.im/crystal-lang/crystal?at=5cb082abc55bd14d35d16410]
<FromGitter>
<bew> Instead of having the desc in the PR template (which might get outdated as the PR evolves as you said), the desc could be a msg we add to the PR, just-before or after we merge it
<FromGitter>
<straight-shoota> yeah
<FromGitter>
<straight-shoota> I've been writing an RFC on the forum ;)
<FromGitter>
<malkomalko> I've stumbled into an odd compiler message and can't reason about what happened. Does anybody know what `BUG: no target defs` means? I'll try to figured out and get an isolated code case.
<FromGitter>
<malkomalko> Nevermind, figured it out. It looks like when you pass args with `**args` a compiler error can be masked
<FromGitter>
<Blacksmoke16> 👍
DmitryBochkarev_ has quit [Ping timeout: 250 seconds]
hightower2 has quit [Ping timeout: 255 seconds]
rohitpaulk has joined #crystal-lang
return0e has joined #crystal-lang
return0e_ has quit [Ping timeout: 244 seconds]
rohitpaulk has quit [Remote host closed the connection]
<FromGitter>
<mixflame> livepost is now fixed for latest amber and crystal. as well as open sourced under the GPL. please check https://github.com/mixflame/livepost for an example of an advanced amber application. 😇
<FromGitter>
<mixflame> accepting PRs and collaborators as well. example site coming back soon
<FromGitter>
<mixflame> check the README for setup info. production mode is currently disabled
<FromGitter>
<j8r> too bad it use mongodb, which is no longer open source :(
DmitryBochkarev_ has joined #crystal-lang
<FromGitter>
<mixflame> didn't know mongo DB was no longer open source?
<FromGitter>
<mixflame> do you suggest any replacement?
<FromGitter>
<mixflame> it could be replaced
<FromGitter>
<mixflame> i don't know that mongoDB being open source itself is necessary for operation though
<FromGitter>
<j8r> and mongodb is withdrawn from Debian, Fedora, Red Hat etc
<FromGitter>
<mixflame> The specific objection is that SSPL requires, if you offer services licensed under it, that you must open-source all programs that you use to make the software available as a service.
<FromGitter>
<mixflame> I'm not sure that livepost is doing this
<FromGitter>
<j8r> sure, just saying it's meh :/
<FromGitter>
<j8r> that's entirely a personal opinion :)
<FromGitter>
<j8r> and why use 2 databases?
sgt_chuckles has quit [Remote host closed the connection]
<FromGitter>
<mixflame> i think redis can be removed
<FromGitter>
<mixflame> i forgot, it's been a long time
<FromGitter>
<mixflame> it would require a huge amount of code change and the mongodb change doesn't apply to us, so I think we're safe. plus, it's live and I didn't want to use SQL because it's slower
<FromGitter>
<mixflame> i've heard of Arango
<FromGitter>
<mixflame> if anyone wants to switch it, i'm accepting PRs
<FromGitter>
<j8r> Postgres is OK but *not* scalable
<FromGitter>
<mixflame> my app is real time scalable to thousands of users because of Crystal and Amber and Mongo
<FromGitter>
<mixflame> arango could make it better
<FromGitter>
<mixflame> or rethink
<FromGitter>
<j8r> Unrelated to your app. Arango is really awesome, it deserves more love
<FromGitter>
<mixflame> I'm reading their site.
<FromGitter>
<mixflame> github page
<FromGitter>
<mixflame> I'd love to switch to Arango. But I have used Mongo very heavily in the site, it will take time, and I'd rather focus on just getting it up and working. Until then, I will warn my users not to use Mongo as a service. Though they can use LivePost in their services if they want right? This was my main selling point as an open source project.
<FromGitter>
<j8r> @mixflame don't worry to much, that was just a suggestion :)
<FromGitter>
<j8r> MongoDB will no longer be updated. Depends of if you're ok to sick to 3.4 for ever (or likely it will have a fork)
<FromGitter>
<mixflame> yikes
<FromGitter>
<mixflame> i'll compile it
<FromGitter>
<mixflame> i dont need them
<FromGitter>
<mixflame> lol
<FromGitter>
<j8r> there is the official debian repo from MongoDB, too
<FromGitter>
<j8r> anyway, it looks like we'll got 0.28.0 at the end of the month, I'll bet
<FromGitter>
<j8r> there is also RocksDB, what do you think of it?
<FromGitter>
<mixflame> I will have to take a look
<FromGitter>
<mixflame> 1) 28.0 of amber or crystal?
<FromGitter>
<lunix4all> hey what's up
<FromGitter>
<mixflame> hey
<FromGitter>
<mixflame> @j8r I don't think Rocks will do. We need a NoSQL document store for this app. I think Arango or Rethink might work great though.
<FromGitter>
<mixflame> but I only took a quick glance
<FromGitter>
<mixflame> livepost posts are mongo documents of course
<FromGitter>
<j8r> Crystal @mixflame
<FromGitter>
<mixflame> ah
<FromGitter>
<lunix4all> should I learn crystal as my first programming language?
<FromGitter>
<lunix4all> Or should I take an online course on Ruby first, as there's only the documentation for Crystal when it comes to learning it
lucasb has quit [Quit: Connection closed for inactivity]
<FromGitter>
<kinxer> @lunix4all What do you want to do with programming?
<FromGitter>
<kinxer> In general, I think that you'll find better learning materials for learning other languages as your first, but I'm curious why you're only considering Crystal and Ruby.
<FromGitter>
<lunix4all> Well I wanted to make cross platform apps/games, maybe web development
<FromGitter>
<lunix4all> Ruby seemed like a good pick, but I've heard that's it's stagnating a bit, so I decided to check out Crystal
<FromGitter>
<straight-shoota> @lunix4all Crystal is right now not a good choice for learning programming because there are essentially zero resources targeted at novice programmers.
<FromGitter>
<kinxer> I don't have a lot of experience with web development, but I think Ruby is popular for that. If you're trying to make cross-platform apps/games, I don't think Ruby is the way to go.
<FromGitter>
<lunix4all> I think Ruby has Qt bindings, but yeah, doen't seem like a good choice for game development
DmitryBochkarev_ has quit [Remote host closed the connection]
<FromGitter>
<kinxer> Honestly, I think if you want to make games and learn to program you should probably go with an engine like Unity, Godot, or the like. @ImAHopelessDev_gitlab can speak to working with Godot.
DmitryBochkarev has joined #crystal-lang
<FromGitter>
<straight-shoota> Ruby is a good alternative, even if it won't fit your final use case. I'd say it's a good language for beginners. And it's easy to switch to Crystal later. Although a statically typed language might perhaps even be better. So maybe Java or C# would also be a good pick. And there's lot of tutorials, books etc.
<FromGitter>
<lunix4all> Will writing C# be an issue on Linux, as it's developed by Microsoft?
<FromGitter>
<kinxer> I actually haven't "learned" Ruby and have only used it since learning Crystal. Probably Ruby is better for web development, but I learned Python as my first language.
<FromGitter>
<kinxer> I don't think writing C# will be an issue on Linux, but I also don't work in it.
<FromGitter>
<lunix4all> Well, thanks for the help, I think I'll start with Python
<FromGitter>
<straight-shoota> I have no experience with C#, but there's an open source implementation (Mono) and Microsoft has recently ported .NET to Linux, so it should work. Most learning resource will probably focus on a Windows environment though.
DmitryBochkarev has quit [Ping timeout: 246 seconds]
<FromGitter>
<kinxer> @lunix4all No problem. While this Gitter won't be the place to ask questions about Python, feel free to reach out to me if you have any Python questions (or use StackOverflow, which would probably be more effective :P ).
early has quit [Quit: Leaving]
early has joined #crystal-lang
DmitryBochkarev has joined #crystal-lang
ukd1 has joined #crystal-lang
<FromGitter>
<mixflame> I'm a long time Ruby developer and the switch to Crystal was amazingly painless. I agree with @straight-shoota about learning Ruby first then coming to Crystal. But it's not required. If you find Crystal is easy then just go with it
ukd1 has quit [Quit: leaving]
<FromGitter>
<j8r> Yes Crystal is user friendly enough for beginners
<FromGitter>
<j8r> I'd even say static
<FromGitter>
<j8r> typing is better for learning
<FromGitter>
<j8r> The compiler teach you the types :)
DmitryBochkarev has quit [Ping timeout: 268 seconds]
wuehlmaus has joined #crystal-lang
DmitryBochkarev has joined #crystal-lang
DmitryBochkarev has quit [Ping timeout: 250 seconds]
DTZUZO has quit [Ping timeout: 264 seconds]
DTZUZO has joined #crystal-lang
<FromGitter>
<sam0x17> yeah that said, the real sweet spot is if you have C/C++ experience in the distant past, and ruby experience in the now, crystal then is super easy