<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Crystal Language</title>
    <description>The latest articles on DEV Community by Crystal Language (@crystal-lang).</description>
    <link>https://dev.to/crystal-lang</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F14%2Fcrystal-logo-2.png</url>
      <title>DEV Community: Crystal Language</title>
      <link>https://dev.to/crystal-lang</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/crystal-lang"/>
    <language>en</language>
    <item>
      <title>We created the Crystal language, ask us anything!</title>
      <dc:creator>Matías García Isaía</dc:creator>
      <pubDate>Wed, 06 Sep 2017 17:23:20 +0000</pubDate>
      <link>https://dev.to/crystal-lang/we-created-the-crystal-language-ask-us-anything</link>
      <guid>https://dev.to/crystal-lang/we-created-the-crystal-language-ask-us-anything</guid>
      <description>&lt;p&gt;Hi there!&lt;/p&gt;

&lt;p&gt;I'm Matias Garcia Isaia, and together with &lt;a href="https://dev.to@bcardiff"&gt;Brian Cardiff&lt;/a&gt; and &lt;a href="https://dev.to@mverzilli"&gt;Martin Verzilli&lt;/a&gt;, we're part of the Crystal Team working at Manas.Tech.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://manas.tech/"&gt;Manas.Tech&lt;/a&gt; is a software company from Buenos Aires, Argentina, that develops unconventional tech projects for people around the world. And, after being involved in Crystal's development for a while, I can assure you there are not that many conventional things in developing a programming language!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://crystal-lang.org/"&gt;Crystal&lt;/a&gt; is a programming language that aims to be friendly for both humans and computers alike - make developers enjoy writing code, and make code run as efficiently as it can. Statically typed, compiled language with a really heavy type inference to make it feel as scripting - the best of both worlds. And did I say &lt;a href="https://github.com/crystal-lang/crystal"&gt;it's open source?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Its first commit has &lt;a href="https://github.com/crystal-lang/crystal/commit/220bb8c736381d5beda5e7bc36c8d7f0d59badf6"&gt;just turned 5&lt;/a&gt;, and it has changed from an individual's hobby back then into an amazing language supported by Manas.Tech and &lt;a href="https://crystal-lang.org/community"&gt;an amazing community&lt;/a&gt;. To celebrate that, we are doing this AMA. Starting today, at 2PM EST, we'll do our best to share with you everything we know about the project, life, the universe, and everything! &lt;/p&gt;

&lt;p&gt;So - don't be shy, ask us anything!&lt;/p&gt;

</description>
      <category>ama</category>
      <category>crystal</category>
    </item>
    <item>
      <title>Announcing Crystal CodeCamp SF2017</title>
      <dc:creator>Santiago Palladino</dc:creator>
      <pubDate>Thu, 23 Mar 2017 21:25:14 +0000</pubDate>
      <link>https://dev.to/crystal-lang/announcing-crystal-codecamp-sf2017</link>
      <guid>https://dev.to/crystal-lang/announcing-crystal-codecamp-sf2017</guid>
      <description>

&lt;p&gt;&lt;em&gt;This blogpost was originally posted by &lt;a href="https://manas.tech/staff/mdavid/"&gt;MarÃ­a Inti David&lt;/a&gt; on &lt;a href="https://crystal-lang.org/2017/03/23/announcing-crystal-codecamp-sf2017.html"&gt;the official Crystal Blog&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We're happy to announce that the Crystal team is coming to San Francisco!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/CrystalLanguage/status/841763640629964800"&gt;Maybe you've heard&lt;/a&gt; we're organizing the first #CrystalLang &lt;a href="https://codecamp.crystal-lang.org/"&gt;CodeCamp&lt;/a&gt;. The event will consist of a 2 day hands-on training dictated by &lt;a href="https://manas.tech/staff/spalladino/"&gt;Santiago Palladino&lt;/a&gt; &amp;amp; &lt;a href="https://manas.tech/staff/ggiraldez/"&gt;Gustavo GirÃ¡ldez&lt;/a&gt;, members of the Crystal core team. &lt;a href="https://twitter.com/sdogruyol"&gt;Serdar DoÄŸruyol&lt;/a&gt; (creator of &lt;a href="http://kemalcr.com/"&gt;Kemal&lt;/a&gt;) will also be joining us as a guest speaker.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codecamp.crystal-lang.org/#Programme"&gt;The programme&lt;/a&gt; includes hands on labs, Q&amp;amp;A sessions with the team, networking sessions and more than 10 hours of training. We will provide official Crystal certificates for attendees, along with the obligatory Crystal swag.&lt;/p&gt;

&lt;p&gt;Right now this event is possible thanks to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.academyx.com/"&gt;AcademyX&lt;/a&gt;, who is sponsoring us and providing the space to host the event at their &lt;a href="https://www.academyx.com/schedule/san_francisco/"&gt;San Francisco offices&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.twentify.com/"&gt;Twentify&lt;/a&gt;, who is sponsoring the event and also making it possible for Serdar to travel and be a guest speaker.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://manas.tech/"&gt;Manas.Tech&lt;/a&gt;, the company behind Crystal since 2011.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We're looking for sponsors who want to support the event, so if you're interested (or know someone who might be) make sure to read our &lt;a href="https://codecamp.crystal-lang.org/assets/Crystal-Sponsors-Prospectus-583b3c87b27dce9dc8c1c3554c2bd5ae0fb448f23d78a8f61cb3ae57122a0c77.pdf"&gt;sponsorship prospectus&lt;/a&gt;. As with every other official Crystal event, all profits from sponsorships and ticket sales will be destined exclusively to Crystal Development. This will help us invest more hours in the language and &lt;a href="https://crystal-lang.org/2017/02/24/state-of-crystal-at-0.21.html"&gt;accomplish&lt;/a&gt; our &lt;a href="https://crystal-lang.org/2016/12/29/crystal-new-year-resolutions-for-2017-1-0.html"&gt;2017 resolutions&lt;/a&gt; (yes, I'm talking about Crystal 1.0).&lt;/p&gt;

&lt;p&gt;We hope this is the first of many Crystal CodeCamps around the world, so we're open for suggestions about where we should go next.&lt;/p&gt;

&lt;p&gt;PS: This blogpost will be updated as new sponsors join us, we want to thank the companies supporting Crystal in this new event series.&lt;/p&gt;


</description>
      <category>crystallang</category>
    </item>
    <item>
      <title>State of Crystal at 0.21</title>
      <dc:creator>Santiago Palladino</dc:creator>
      <pubDate>Fri, 24 Feb 2017 12:52:17 +0000</pubDate>
      <link>https://dev.to/crystal-lang/state-of-crystal-at-021</link>
      <guid>https://dev.to/crystal-lang/state-of-crystal-at-021</guid>
      <description>

&lt;p&gt;&lt;em&gt;This blogpost was originally posted on &lt;a href="https://crystal-lang.org/2017/02/24/state-of-crystal-at-0.21.html"&gt;the official Crystal Blog&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With the release of &lt;a href="https://groups.google.com/d/msg/crystal-lang/sGxeIxlLKX4/VFIM-iTECwAJ"&gt;version 0.21&lt;/a&gt;, we wanted to share with you the state of Crystal development so far this year, aiming towards a &lt;a href="https://crystal-lang.org/2016/12/29/crystal-new-year-resolutions-for-2017-1-0.html"&gt;1.0 version&lt;/a&gt; by the end of the year.&lt;/p&gt;

&lt;p&gt;First and foremost, we have updated our &lt;a href="https://github.com/crystal-lang/crystal/wiki/Roadmap"&gt;roadmap&lt;/a&gt; with the goals we have in mind, not just for Crystal during this year, but also tools we would like to see built using the language in the future, such as a full DSL for easily writing Ruby extensions, or a desktop UI library. We have also changed our &lt;a href="https://github.com/crystal-lang/crystal/labels"&gt;labelling scheme&lt;/a&gt; for Github issues, and updated the &lt;a href="https://github.com/crystal-lang/crystal/blob/master/CONTRIBUTING.md"&gt;contributing guidelines&lt;/a&gt; accordingly, to make it easier for anyone in the community to find out how to help with Crystal.&lt;/p&gt;

&lt;p&gt;Regarding the key features we had identified for 1.0, we are making steady progress on &lt;a href="https://github.com/crystal-lang/crystal/pull/3582"&gt;Windows support&lt;/a&gt;, with work from community member &lt;a href="https://github.com/lbguilherme"&gt;lbguilherme&lt;/a&gt; and core team member &lt;a href="https://github.com/bcardiff"&gt;bcardiff&lt;/a&gt;. Today Crystal is able to compile some programs in Windows, and the last milestone has been support for exceptions in that platform. We still have a long way to go on the standard library front, as every module was implemented with just UNIX support in mind, so contributions are most welcome from anyone interested in the Windows platform.&lt;/p&gt;

&lt;p&gt;The next big thing is &lt;a href="https://github.com/crystal-lang/crystal/tree/thread-support"&gt;parallelism&lt;/a&gt;, with core team members &lt;a href="https://github.com/ggiraldez"&gt;ggiraldez&lt;/a&gt; and &lt;a href="https://github.com/juanedi"&gt;juanedi&lt;/a&gt; working heavily on it, based on the work started by &lt;a href="https://github.com/waj"&gt;waj&lt;/a&gt;. We are happy to have a working version of the compiler built with multi-thread support, with a similar model to Go: a fixed thread pool that executes tasks from fibers, including goodies such as work-stealing. Work on this is still experimental, and there are quite a few breaking changes to define, such as explicit Thread handling; but most of the compiler and standard library specs are currently green. Kemal's author &lt;a href="https://github.com/sdogruyol/"&gt;sdogruyol&lt;/a&gt; even managed to &lt;a href="https://twitter.com/sdogruyol/status/833369972919382019"&gt;run the web framework&lt;/a&gt; in multiple threads already. However, there is still much work to do on testing and performance, to ensure the contention produced by distributing the workload on multiple threads does not offset the speed gain.&lt;/p&gt;

&lt;p&gt;We have also started discussions on the type system to ensure the feasibility of incremental compilation. We have identified some potential bottlenecks on generics and on modules-as-interfaces that will have to be addressed, and we'll do our best to identify the breaking changes required as soon as possible, as well as minimise their impact.&lt;/p&gt;

&lt;p&gt;On the communications front, we are also now cross-posting from our official blog to the awesome platform &lt;a href="https://dev.to/"&gt;dev.to&lt;/a&gt;, where you might be reading this post now. The folks at &lt;a href="https://twitter.com/thepracticaldev"&gt;ThePracticalDev&lt;/a&gt; were super friendly and set up a &lt;a href="https://dev.to/crystal-lang/"&gt;crystal-lang account&lt;/a&gt; for us in no time on the site. Many of us in the Crystal core team have been following the site and twitter feed for quite some time, and are now really excited to see Crystal have a room in the platform.&lt;/p&gt;

&lt;p&gt;Also, and not to spoil the surprise, but we have almost finished a brand new version of our website, with a much cleaner design. Expect to see it online quite soon.&lt;/p&gt;

&lt;p&gt;Last but not least, we are happy to have given talks at &lt;a href="https://www.youtube.com/watch?v=8FvrBLWUwxc"&gt;Google NYC&lt;/a&gt; and Recurse Center earlier this month, as well as organised another meetup. We are also organising the first Crystal Code Camp for April in San Francisco: &lt;a href="https://docs.google.com/a/manas.com.ar/forms/d/e/1FAIpQLSdN4a-ELm54lZFr_qcD97YLe-OTYnP7vAzMfpQdreCoG4o8_Q/viewform"&gt;let us know&lt;/a&gt; if you are interested in joining, or &lt;a href="mailto:crystal@manas.tech"&gt;contact us&lt;/a&gt; if you want to sponsor the event!&lt;/p&gt;

&lt;p&gt;We'll share news from the state of Crystal in a regular basis, so make sure to stay tuned to the blog and other &lt;a href="https://crystal-lang.org/community/"&gt;communication channels&lt;/a&gt;. Happy Crystalling!&lt;/p&gt;


</description>
      <category>crystallang</category>
    </item>
    <item>
      <title>Hello World</title>
      <dc:creator>Matías García Isaía</dc:creator>
      <pubDate>Wed, 10 Jul 2013 00:00:00 +0000</pubDate>
      <link>https://dev.to/crystal-lang/hello-world</link>
      <guid>https://dev.to/crystal-lang/hello-world</guid>
      <description>

&lt;p&gt;&lt;em&gt;This blogpost was originally posted by &lt;a href="https://github.com/asterite"&gt;@asterite&lt;/a&gt; and &lt;a href="https://gihtub.com/waj"&gt;@waj&lt;/a&gt; on &lt;a href="https://crystal-lang.org/2013/07/10/hello-world.html"&gt;the official Crystal Blog&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is the simplest way to write the Hello World program in Crystal:&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;puts "Hello World"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;But if you feel like it, you can also use some object oriented programming:&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Greeter
  def initialize(@name : String )
  end

  def salute
    puts "Hello #{@name}!"
  end
end

g = Greeter.new("world")
g.salute
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Or maybe with blocks:&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Hello world".each_char do |char|
  print char
end
print '\n'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Each alternative might have a different performance, but luckily all of them are pretty expressive.&lt;/p&gt;

&lt;p&gt;Ok, but what's the purpose of learning a language if we cannot run the damn thing? Let's see how we do this with Crystal (and let's assume you already have it &lt;a href="https://crystal-lang.org/docs/installation/index.html"&gt;installed&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;First create a file &lt;code&gt;hello.cr&lt;/code&gt; containing your preferred choice of the previous examples.&lt;br&gt;
Then type in the console:&lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ bin/crystal hello.cr
$ ./hello
Hello World
$
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;The compiled output is a standalone executable without any specific runtime dependency. Neat! Isn't it?&lt;/p&gt;


</description>
      <category>crystallang</category>
    </item>
  </channel>
</rss>
