forked from crystal-lang/crystal-website
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
242 lines (223 loc) · 8.94 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
---
title: Crystal
layout: home
custom_body_classes:
- main
---
<div class="banner center sponsorship no-select">
<div class="flag">
financie o cristal e ajude-o a continuar crescendo
<div class="flag-logos">
<a href="https://opencollective.com/crystal-lang" target="_blank">
<img src="/assets/oc.png" class="oc-logo">
</a>
</div>
</div>
</div>
<div class="container">
<div class="row center">
<div class="col s12">
{% assign latest_release = site.releases | reverse | first %}
<h2 class="latest-release">Ultima versão <a href="{{ latest_release.url }}">{{ latest_release.version }}</a></h2>
<p>{{ latest_release.date | date: "%d %B %Y" }} - <a href="/blog#release_notes" class="gray-link">Mais notas de atualização</a></p>
</div>
</div>
<hr class="fullwidth" />
<div class="row">
<div class="col s12">
<h2>Sintaxe</h2>
<p>A sintaxe de crystal é bem semelhante a sintaxe de ruby, fácil de ler e escrever, e da vantagem
para desenvolvedores ruby de uma curva de aprendisagem menor.</p>
<div class='code_section'>
{% include sample_server.md %}
</div>
<p class="read-more"><a href="https://crystal-lang.org/reference/getting_started/">Comece a aprender com a referência da linguagem</a></p>
</div>
</div>
<div class="row">
<div class="col s12">
<h2>Tipagem</h2>
<p>O Crystal é verificado estaticamente por tipo, portanto, quaisquer erros de tipo serão detectados antecipadamente pelo compilador, em vez de falhar em tempo de execução. Além disso, para manter a linguagem limpa, o Crystal possui inferência de tipo integrada, portanto, a maioria das anotações de tipo são desnecessárias.</p>
<div class="code_section">
{% include sample_type_system.md %}
</div>
<p class="read-more"><a href="https://crystal-lang.org/reference/syntax_and_semantics/types_and_methods.html">Leia mais sobre a tipagem de crystal</a></p>
</div>
</div>
<div class="row">
<div class="col s12">
<h2>Checagem de referência nula</h2>
<p>Todos os tipos não são nulas no Crystal, e as variáveis nulas são representadas como uma união entre o tipo e
nada. Como consequência, o compilador verificará automaticamente as referências nulas em tempo de compilação, ajudando <a href="https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare" target="_blank">O erro de bilhões de dolares</a>.</p>
<div class="code_section">
{% include sample_null.md %}
</div>
<p>Rodando o arquivo anterior:</p>
<div class="code_section">
<figure class="highlight console">
{% include sample_null_refs.html %}
</figure>
</div>
</div>
</div>
<div class="row">
<div class="col s12">
<h2>Macros</h2>
<p>A resposta do Crystal à metaprogramação é um poderoso sistema de macros, que varia de modelagem básica e inspeção AST, até inspeção de tipos e execução de programas externos arbitrários.</p>
<div class="code_section">
{% include sample_macros.md %}
</div>
<p class="read-more"><a href="https://crystal-lang.org/reference/syntax_and_semantics/macros.html">Leia mais obre macros</a></p>
</div>
</div>
<div class="row">
<div class="col s12">
<h2>Concorrência</h2>
<p>O Crystal usa fios verdes, chamados fibras, para alcançar a concorrência. As fibras se comunicam entre si usando canais, como em Go ou Clojure, sem ter que recorrer à memória compartilhada ou bloqueios. </p>
<div class="code_section">
{% include sample_concurrency.md %}
</div>
<p class="read-more"><a href="https://crystal-lang.org/reference/guides/concurrency.html">Leia mais sobre o modelo de simultaneidade do Crystal</a></p>
</div>
</div>
<div class="row">
<div class="col s12">
<h2>C-bindings</h2>
<p>O Crystal possui uma sintaxe dedicada para chamar facilmente as bibliotecas nativas, eliminando a necessidade de reimplementar tarefas de baixo nível.</p>
<div class="code_section">
{% include sample_bindings.md %}
</div>
<p class="read-more"><a href="https://crystal-lang.org/reference/syntax_and_semantics/c_bindings/">Aprenda como utilizar blibliotecas C</a></p>
</div>
</div>
<div class="row">
<div class="col s12">
<h2>Dependencias</h2>
<p>As bibliotecas Crystal são empacotadas como Shards e distribuídas via Git sem a necessidade de um repositório centralizado. Os comandos integrados permitem que as dependências sejam facilmente especificadas por meio de um arquivo YAML e buscadas em seus respectivos repositórios.</p>
<div class="code_section">
{% include sample_dependencies.md %}
</div>
<p class="read-more"><a href="https://github.com/crystal-lang/shards">Leia mais sobre shards</a></p>
</div>
</div>
<div class="row center">
<div class="col s12">
<div class="flag">
<h3>Top financiadores de crystal</h3>
<a href="/sponsors">Veja todos</a>
</div>
</div>
</div>
<div class="row">
<div class="col s12">
<div class='sponsors-list'>
<a href='https://manas.tech/' target='_blank' class="sponsor">
<img src="/assets/manas-orange.svg" />
<span class="small">Manas Technology Solutions</span>
</a>
<a href='https://www.84codes.com/' target='_blank' class="sponsor">
<img src="/assets/sponsors/84.png" />
<span class="small">84 codes</span>
</a>
<a href='https://nikolamotor.com/' target='_blank' class="sponsor">
<img src="/assets/sponsors/nikola_motor_company.png" />
<span class="small">Nikola Motor Company</span>
</a>
<a href='https://place.technology/' target='_blank' class="sponsor">
<img src="/assets/sponsors/placeos.png" />
<span class="small">PlaceOS</span>
</a>
</div>
</div>
</div>
<div class="row center">
<div class="col s12">
<div class="flag">
<h3>Algumas de nossos CI rodam aqui</h3>
</div>
</div>
</div>
<div class="row">
<div class="col s12">
<div class='sponsors-list'>
<a href='https://developer.arm.com/solutions/infrastructure/works-on-arm' target='_blank' class="sponsor">
<img src="/assets/sponsors/woa.png" />
<span class="small">Works on Arm</span>
</a>
</div>
</div>
</div>
<hr class="fullwidth">
<div class="row">
<div class="col s12">
<h2>Artigos de nosso blog</h2>
{% assign articles = site.posts %}
{% for post in articles limit: 3 %}
{% include blog_row.html post=post %}
{% endfor %}
<p><a href="/blog">Mais artigos</a></p>
</div>
</div>
<div class="row">
<div class="col s12">
<h2>Release Notes</h2>
<table class="bordered no-underline">
<tbody>
{% assign releases = site.releases | reverse %}
{% for post in releases limit: 10 %}
<tr>
<td></td>
<td><a href="{{ post.url }}">
{{ post.title }}
</a></td>
<td>{{ post.date | date_to_string }}</td>
{% endfor %}
</tbody>
</table>
<p><a href="/blog#release_notes">Notas de versões</a></p>
</div>
</div>
<div class="row center">
<div class="col s12">
<div class="flag">
<h3>Community channels</h3>
<a href="/community">Ver todos</a>
</div>
</div>
</div>
<div class="row">
<div class="col s12">
<div class='row community-list center'>
<div class="col s12 m12 l3">
<a href='https://github.com/crystal-lang/crystal/' target='_blank' class="item">
<span class="small">Repositório de código</span>
<i class="extra-icons github"></i>
<span class="with_icon">crystal-lang/crystal</span>
</a>
</div>
<div class="col s12 m12 l3">
<a href='https://forum.crystal-lang.org' target='_blank' class="item">
<span class="small">discussão geral</span>
<i class="material-icons">forum</i>
<span class="with_icon">forum.crystal-lang.org</span>
</a>
</div>
<div class="col s12 m12 l3">
<a href='https://gitter.im/crystal-lang/crystal' target='_blank' class="item">
<span class="small">Sala para bate-papo</span>
<i class="extra-icons gitter"></i>
<span class="with_icon">crystal-lang/crystal</span>
</a>
</div>
<div class="col s12 m12 l3">
<a href='https://twitter.com/CrystalLanguage' target='_blank' class="item">
<span class="small">Anúncios gerais e eventos</span>
<i class="extra-icons twitter"></i>
<span class="with_icon">@CrystalLanguage</span>
</a>
</div>
</div>
</div>
</div>
</div>
<script src="https://d3js.org/d3.v3.min.js"></script>