Анонс Rust 1.0

от автора

Сегодня мы с гордостью представляем релиз Rust версии 1.0, нового языка программирования для создания более надёжных и эффективных систем. Раст объединяет в себе низкоуровневый контроль над производительностью с удобством и гарантиями безопасности языков высокого уровня. Лучше того, он при этом не требует сборщика мусора или среду выполнения, так что библиотеками на Расте можно безболезненно заменять библиотеки на C (англ.). Если вы хотите поэкспериментировать с Растом, лучше всего начать с раздела «Getting Started» книги Rust Book (если вы предпочитаете читать с электронных книг, Паскаль Хертлиф (Pascal Hertleif) поддерживает неофициальные версии этой книги в электронном виде).

Что отличает Раст от других языков, так это его система типов, основанная на улучшенном и кодифицированном своде лучших практик, отработанных поколениями программистов на C и C++. Так что Расту есть что предложить как опытным системных программистам, так и новичкам: опытные разработчики оценят сэкономленное на отладке время, а новичкам придётся по вкусу возможность писать низкоуровневый код, не беспокоясь о мелких ошибках, которые приводят к необъяснимым падениям их программ.

Что значит для Раста релиз 1.0?

Текущая версия Раста — результат множества итераций и экспериментов. Такой процесс разработки прекрасно нам послужил: Раст сейчас намного проще и мощнее, чем мы изначально представляли. Но из-за всех этих экспериментов поддерживать проекты, написанные на Расте, было очень сложно, так как язык и стандартная библиотека постоянно менялись.

Релиз версии 1.0 означает, что этому беспорядку пришёл конец. Этот релиз — официальное начало нашему пути к поддержанию стабильности. Начиная с этого момента изменения, ломающие совместимость, будут за пределами стабильной версии (за исключением некоторых вещей, вроде багов в компиляторе).

Учитывая сказанное, релиз 1.0 не означает, что язык Раст «завершён». У нас в запасе множество улучшений. На самом деле, ночные сборки уже содержат улучшения в скорости компиляции (а их будет ещё больше) и включают новые API и фичи языка, такие, как std::fs и ассоциированные константы.

Чтобы быть уверенными, что улучшения в компиляторе и языке входят в экосистему как можно более полно и быстро, мы решили использовать train-based модель релизов. Это означает, что мы будем выпускать регулярные релизы каждые шесть недель, как это делают команды Firefox и Chrome. Чтобы начать этот процесс, мы также выпускаем бета-релиз Раста 1.1 — одновременно со стабильным релизом 1.0.

Cargo и crates.io

Создание настоящего проекта — это не только написание кода, это ещё и управление зависимостями. Cargo — пакетный менеджер и система сборки Раста — создан, чтобы облегчить эту задачу. С использованием Cargo скачивание и установка новых библиотек проста настолько же, насколько просто добавить новую строчку в файл манифеста.

Конечно, чтобы использовать зависимость, её нужно сначала найти. Здесь появляется crates.io — центральный репозиторий пакетов Раста. С его помощью очень просто и искать чужие пакеты, и публиковать свои.

С момента анонсирования cargo и crates.io ­— месяцев шесть назад — число пакетов стабильно растёт. Однако сейчас мы в самом начале пути, так что есть ещё много замечательных пакетов, которые нужно написать. Если вам интересно создавать новые библиотеки, которые потрясут мир Раста — сейчас самое время!

Открытые и исходники, и управление

Раст был open-source проектом с самого начала. Последние несколько лет мы постоянно искали способы сделать наше руководство более открытым и управляемым сообществом. С тех пор, как мы ввели процесс RFC, чуть больше года назад, все основные решения по поводу Раста записываются и обсуждаются открыто. Недавно мы приняли новую модель управления, которая состоит в разделении на подкоманды, каждая будет отвечать за RFC в своей определённой области. Если вы хотите помочь определить будущее Раста, мы будем рады любому вашему участию: загружайте библиотеки на crates.io, комментируйте RFC, или пишите сам код Раста.

Мы бы хотели выразить особую благодарность следующим людям, каждый из которых привнёс свой вклад с момента нашего предыдущего релиза (полный список контрибуторов здесь):

  1. Aaron Gallagher <_@habnab.it>
  2. Aaron Turon <aturon@mozilla.com>
  3. Abhishek Chanda <abhishek@cloudscaling.com>
  4. Adolfo Ochagavía <aochagavia92@gmail.com>
  5. Alex Burka <durka42+github@gmail.com>
  6. Alex Crichton <alex@alexcrichton.com>
  7. Alex Quach <alex@clinkle.com>
  8. Alexander Polakov <plhk@sdf.org>
  9. Andrea Canciani <ranma42@gmail.com>
  10. Andreas Martens <andreasm@fastmail.fm>
  11. Andreas Tolfsen <ato@mozilla.com>
  12. Andrei Oprea <andrei.br92@gmail.com>
  13. Andrew Paseltiner <apaseltiner@gmail.com>
  14. Andrew Seidl <dev@aas.io>
  15. Andrew Straw <strawman@astraw.com>
  16. Andrzej Janik <vosen@vosen.pl>
  17. Aram Visser <aramvisser@gmail.com>
  18. Ariel Ben-Yehuda <arielb1@mail.tau.ac.il>
  19. Augusto Hack <hack.augusto@gmail.com>
  20. Avdi Grimm <avdi@avdi.org>
  21. Barosl Lee <vcs@barosl.com>
  22. Ben Ashford <ben@bcash.org>
  23. Ben Gesoff <ben.gesoff@gmail.com>
  24. Björn Steinbrink <bsteinbr@gmail.com>
  25. Brad King <brad.king@kitware.com>
  26. Brendan Graetz <github@bguiz.com>
  27. Brett Cannon <brettcannon@users.noreply.github.com>
  28. Brian Anderson <banderson@mozilla.com>
  29. Brian Campbell <lambda@continuation.org>
  30. Carlos Galarza <carloslfu@gmail.com>
  31. Carol (Nichols || Goulding) <carol.nichols@gmail.com>
  32. Carol Nichols <carol.nichols@gmail.com>
  33. Chris Morgan <me@chrismorgan.info>
  34. Chris Wong <lambda.fairy@gmail.com>
  35. Christopher Chambers <chris.chambers@peanutcode.com>
  36. Clark Gaebel <cg.wowus.cg@gmail.com>
  37. Cole Reynolds <cpjreynolds@gmail.com>
  38. Colin Walters <walters@verbum.org>
  39. Conrad Kleinespel <conradk@conradk.com>
  40. Corey Farwell <coreyf@rwell.org>
  41. Dan Callahan <dan.callahan@gmail.com>
  42. Dave Huseby <dhuseby@mozilla.com>
  43. David Reid <dreid@dreid.org>
  44. Diggory Hardy <github@dhardy.name>
  45. Dominic van Berkel <dominic@baudvine.net>
  46. Dominick Allen <dominick.allen1989@gmail.com>
  47. Don Petersen <don@donpetersen.net>
  48. Dzmitry Malyshau <kvarkus@gmail.com>
  49. Earl St Sauver <estsauver@gmail.com>
  50. Eduard Burtescu <edy.burt@gmail.com>
  51. Erick Tryzelaar <erick.tryzelaar@gmail.com>
  52. Felix S. Klock II <pnkfelix@pnkfx.org>
  53. Florian Hahn <flo@fhahn.com>
  54. Florian Hartwig <florian.j.hartwig@gmail.com>
  55. Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
  56. FuGangqiang <fu_gangqiang@163.com>
  57. Garming Sam <garming_sam@outlook.com>
  58. Geoffrey Thomas <geofft@ldpreload.com>
  59. Geoffry Song <goffrie@gmail.com>
  60. Gleb Kozyrev <gleb@gkoz.com>
  61. Graydon Hoare <graydon@mozilla.com>
  62. Guillaume Gomez <guillaume1.gomez@gmail.com>
  63. Hajime Morrita <omo@dodgson.org>
  64. Hech <tryctor@gmail.com>
  65. Heejong Ahn <heejongahn@gmail.com>
  66. Hika Hibariya <hibariya@gmail.com>
  67. Huon Wilson <dbau.pp+github@gmail.com>
  68. Igor Strebezhev <xamgore@ya.ru>
  69. Isaac Ge <acgtyrant@gmail.com>
  70. J Bailey <jj2baile@uwaterloo.ca>
  71. Jake Goulding <jake.goulding@gmail.com>
  72. James Miller <bladeon@gmail.com>
  73. James Perry <james.austin.perry@gmail.com>
  74. Jan Andersson <jan.andersson@gmail.com>
  75. Jan Bujak <j@exia.io>
  76. Jan-Erik Rediger <janerik@fnordig.de>
  77. Jannis Redmann <mail@jannisr.de>
  78. Jason Yeo <jasonyeo88@gmail.com>
  79. Johann <git@johann-hofmann.com>
  80. Johann Hofmann <git@johann-hofmann.com>
  81. Johannes Oertel <johannes.oertel@uni-due.de>
  82. John Gallagher <jgallagher@bignerdranch.com>
  83. John Van Enk <vanenkj@gmail.com>
  84. Jonathan S <gereeter+code@gmail.com>
  85. Jordan Humphreys <mrsweaters@users.noreply.github.com>
  86. Joseph Crail <jbcrail@gmail.com>
  87. Josh Triplett <josh@joshtriplett.org>
  88. Kang Seonghoon <kang.seonghoon@mearie.org>
  89. Keegan McAllister <kmcallister@mozilla.com>
  90. Kelvin Ly <kelvin.ly1618@gmail.com>
  91. Kevin Ballard <kevin@sb.org>
  92. Kevin Butler <haqkrs@gmail.com>
  93. Kevin Mehall <km@kevinmehall.net>
  94. Krzysztof Drewniak <krzysdrewniak@gmail.com>
  95. Lee Aronson <lee@libertad.ucsd.edu>
  96. Lee Jeffery <leejeffery@gmail.com>
  97. Liam Monahan <liam@monahan.io>
  98. Liigo Zhuang <com.liigo@gmail.com>
  99. Luke Gallagher <luke@hypergeometric.net>
  100. Luqman Aden <me@luqman.ca>
  101. Manish Goregaokar <manishsmail@gmail.com>
  102. Manuel Hoffmann <manuel@polythematik.de>
  103. Marin Atanasov Nikolov <dnaeon@gmail.com>
  104. Mark Mossberg <mark.mossberg@gmail.com>
  105. Marvin Löbel <loebel.marvin@gmail.com>
  106. Mathieu Rochette <mathieu@rochette.cc>
  107. Mathijs van de Nes <git@mathijs.vd-nes.nl>
  108. Matt Brubeck <mbrubeck@limpet.net>
  109. Michael Alexander <beefsack@gmail.com>
  110. Michael Macias <zaeleus@gmail.com>
  111. Michael Park <mcypark@gmail.com>
  112. Michael Rosenberg <42micro@gmail.com>
  113. Michael Sproul <micsproul@gmail.com>
  114. Michael Woerister <michaelwoerister@gmail>
  115. Michael Wu <mwu@mozilla.com>
  116. Michał Czardybon <mczard@poczta.onet.pl>
  117. Mickaël Salaün <mic@digikod.net>
  118. Mike Boutin <mike.boutin@gmail.com>
  119. Mike Sampson <mike@sambodata.com>
  120. Ms2ger <ms2ger@gmail.com>
  121. Nelo Onyiah <nelo.onyiah@gmail.com>
  122. Nicholas <npmazzuca@gmail.com>
  123. Nicholas Mazzuca <npmazzuca@gmail.com>
  124. Nick Cameron <ncameron@mozilla.com>
  125. Nick Hamann <nick@wabbo.org>
  126. Nick Platt <platt.nicholas@gmail.com>
  127. Niko Matsakis <niko@alum.mit.edu>
  128. Oak <White-Oak@users.noreply.github.com>
  129. Oliver Schneider <github6541940@oli-obk.de>
  130. P1start <rewi-github@whanau.org>
  131. Pascal Hertleif <killercup@gmail.com>
  132. Paul Banks <banks@banksdesigns.co.uk>
  133. Paul Faria <paul_faria@ultimatesoftware.com>
  134. Paul Quint <DrKwint@gmail.com>
  135. Pete Hunt <petehunt@users.noreply.github.com>
  136. Peter Marheine <peter@taricorp.net>
  137. Phil Dawes <phil@phildawes.net>
  138. Philip Munksgaard <pmunksgaard@gmail.com>
  139. Piotr Czarnecki <pioczarn@gmail.com>
  140. Piotr Szotkowski <chastell@chastell.net>
  141. Poga Po <poga.bahamut@gmail.com>
  142. Przemysław Wesołek <jest@go.art.pl>
  143. Ralph Giles <giles@mozilla.com>
  144. Raphael Speyer <rspeyer@gmail.com>
  145. Remi Rampin <remirampin@gmail.com>
  146. Ricardo Martins <ricardo@scarybox.net>
  147. Richo Healey <richo@psych0tik.net>
  148. Rob Young <rob.young@digital.cabinet-office.gov.uk>
  149. Robin Kruppe <robin.kruppe@gmail.com>
  150. Robin Stocker <robin@nibor.org>
  151. Rory O’Kane <rory@roryokane.com>
  152. Ruud van Asseldonk <dev@veniogames.com>
  153. Ryan Prichard <ryan.prichard@gmail.com>
  154. Scott Olson <scott@scott-olson.org>
  155. Sean Bowe <ewillbefull@gmail.com>
  156. Sean McArthur <sean.monstar@gmail.com>
  157. Sean Patrick Santos <SeanPatrickSantos@gmail.com>
  158. Seo Sanghyeon <sanxiyn@gmail.com>
  159. Shmuale Mark <shm.mark@gmail.com>
  160. Simon Kern <simon.kern@rwth-aachen.de>
  161. Simon Sapin <simon@exyr.org>
  162. Simonas Kazlauskas <git@kazlauskas.me>
  163. Sindre Johansen <sindre@sindrejohansen.no>
  164. Skyler <skyler.lipthay@gmail.com>
  165. Steve Klabnik <steve@steveklabnik.com>
  166. Steven Allen <steven@stebalien.com>
  167. Swaroop C H <swaroop@swaroopch.com>
  168. Sébastien Marie <semarie@users.noreply.github.com>
  169. Tamir Duberstein <tamird@gmail.com>
  170. Tero Hänninen <tejohann@kapsi.fi>
  171. Theo Belaire <theo.belaire@gmail.com>
  172. Theo Belaire <tyr.god.of.war.42@gmail.com>
  173. Thiago Carvalho <thiago.carvalho@westwing.de>
  174. Thomas Jespersen <laumann.thomas@gmail.com>
  175. Tibor Benke <ihrwein@gmail.com>
  176. Tim Cuthbertson <tim@gfxmonk.net>
  177. Tincan <tincann@users.noreply.github.com>
  178. Ting-Yu Lin <aethanyc@gmail.com>
  179. Tobias Bucher <tobiasbucher5991@gmail.com>
  180. Toni Cárdenas <toni@tcardenas.me>
  181. Tshepang Lekhonkhobe <tshepang@gmail.com>
  182. Ulrik Sverdrup <root@localhost>
  183. Vadim Chugunov <vadimcn@gmail.com>
  184. Vadim Petrochenkov <vadim.petrochenkov@gmail.com>
  185. Valerii Hiora <valerii.hiora@gmail.com>
  186. Wangshan Lu <wisagan@gmail.com>
  187. Wei-Ming Yang <rick68@users.noreply.github.com>
  188. Will <will@glozer.net>
  189. Will Hipschman <whipsch@gmail.com>
  190. Wojciech Ogrodowczyk <github@haikuco.de>
  191. Xue Fuqiao <xfq.free@gmail.com>
  192. Xuefeng Wu <xfwu@thoughtworks.com>
  193. York Xiang <bombless@126.com>
  194. Young Wu <doomsplayer@gmail.com>
  195. bcoopers <coopersmithbrian@gmail.com>
  196. critiqjo <john.ch.fr@gmail.com>
  197. diwic <diwic@users.noreply.github.com>
  198. fenduru <fenduru@users.noreply.github.com>
  199. gareins <ozbolt.menegatti@gmail.com>
  200. github-monoculture <eocene@gmx.com>
  201. inrustwetrust <inrustwetrust@users.noreply.github.com>
  202. jooert <jooert@users.noreply.github.com>
  203. kgv <mail@kgv.name>
  204. klutzy <klutzytheklutzy@gmail.com>
  205. kwantam <kwantam@gmail.com>
  206. leunggamciu <gamciuleung@gmail.com>
  207. mdinger <mdinger.bugzilla@gmail.com>
  208. nwin <nwin@users.noreply.github.com>
  209. pez <james.austin.perry@gmail.com>
  210. robertfoss <dev@robertfoss.se>
  211. rundrop1 <rundrop1@zoho.com>
  212. sinkuu <sinkuupump@gmail.com>
  213. tynopex <tynopex@users.noreply.github.com>
  214. Łukasz Niemier <lukasz@niemier.pl>
  215. らいどっと <ryogo.yoshimura@gmail.com>

ссылка на оригинал статьи http://habrahabr.ru/post/258069/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *