LINUX.ORG.RU

Релиз Crystal-0.27.0

 ,


2

4

Crystal — объектно-ориентированный язык программирования общего назначения, созданный с целью:

  • иметь синтаксис, очень похожий на Ruby;
  • обеспечивать статическую проверку типов без явного указания типов переменных или аргументов методов;
  • иметь возможность написания биндингов к языку С на самом Crystal;
  • обеспечивать возможность метапрограммирования, путем выполнения кода в фазе компиляции и генерации кода;
  • компилировать программу в высокоэффективный бинарный (native) код.

Как заявляют авторы проекта: «мы любим ruby за его эффективность написания кода, а С за его эффективность при выполнения кода и мы хотим скрестить все лучшее из этих двух миров...».

>>> Changelog

>>> Подробности



Проверено: jollheef ()
Ответ на: комментарий от kaban_lyalya

На Свифте одинаково больно писать на любой платформе, кроме эппловских. Ковырял его как-то под Линём, угорал с зависимости от второго Петона, ужасался 20+ МБ static linked хеллоуворлдом. Короче, даже Вала не такая сырая. А жаль, некоторые языковые концепты я б пощупал.

anonymous ()
Ответ на: комментарий от menangen

Без графических либ все это бесполезно. Что там имеется из сторонних проектов? blurr и fiber2d? На fiber автор забил болт сразу как только собрал его под android.

Или вы swift на сервера нацелили?

P.S. А с С++ swift вообще не состыковать без извращений. Потому что «C++ слишком сложный язык».

anonymous ()
Ответ на: комментарий от anonymous

Или вы swift на сервера нацелили?

А почему нет? Компилится в натив, нормальная система типов, современный, вроде быстрый. Вопрос только как там с асинхронными делами? Есть гринтреды или async/await?

spoonbob ()
Ответ на: комментарий от spoonbob

Там целая grand central dispatch, так что все довольно удобно, асинхронщина уже очень давно внедрена во все значимые фреймворки (сеть, графика, многопоточность), но я, например, не сторонник асинхронщины где попало, только для ввод-вывод, например, для отрисовки на видеокарте.

menangen ★★★★★ ()

Свифт не нужен, потому-что кокоа и прочий шлак не открыт, это как открыть C#, но забыть открыть .NET фреймворк ;-) (даже с этим у мса с .NET core сейчас в разы лучше чем у свифт, да)

umren ★★★★★ ()

Crystal — объектно-ориентированный язык программирования общего назначения, созданный с целью:

иметь синтаксис, очень похожий на Ruby;

Сразу на помойку отнесите

develf ()
Ответ на: комментарий от develf

Сразу на помойку отнесите

Будто кто-то может предложить что-то с синтаксисом, лучше Ruby. Основная масса языков тащит себе в программу хренову кучу сраных обязательных скобочек, точек с запятой в конце строк, дебильное использование знаков вроде $%!#_ и __, заставляют писать сотни раз @ или this - всё это уродство замусоривает код и от этого шлака устают глаза.

Alve ★★★★★ ()
Ответ на: комментарий от Alve

Основная масса языков тащит себе в программу хренову кучу сраных обязательных скобочек, точек с запятой в конце строк, дебильное использование знаков ... и от этого шлака устают глаза.

Пройдите в Python, пожалуйста.

anonymous ()
Ответ на: комментарий от Alve

Будто кто-то может предложить что-то с синтаксисом, лучше Ruby

Серьезно? Тебя напрягают скобочки, когда в убогом раби в словарях зачем-то «=>» нужен?

Да и вообще гуглани ruby ugly syntax много всего интересного найдешь. Язык для мазохистов.

develf ()
Ответ на: комментарий от develf

раби

Руби.

зачем-то «=>» нужен

Был нужен в версии 1.x, сейчас 2.5 уже, судя по свежести и точности ваших знаний о Руби, вашим мнением можно пренебречь.

Alve ★★★★★ ()
Ответ на: комментарий от Alve

зачем-то «=>» нужен

Был нужен в версии 1.x, сейчас 2.5 уже

Тащемта, он и сейчас нужен, если ключ не является символьным литералом. Но на практике его использовать приходится довольно редко, да.

theNamelessOne ★★★★★ ()
Ответ на: комментарий от Alve

Руби.

раби

Был нужен в версии 1.x, сейчас 2.5 уже, судя по свежести и точности ваших знаний о Руби, вашим мнением можно пренебречь.

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

develf ()

Crystal замена С?

«мы любим ruby за его эффективность написания кода, а С за его эффективность при выполнения кода и мы хотим скрестить все лучшее из этих двух миров...»

Для того чтобы стать заменой С, транслятор этого языка должен суметь собрать сам себя, как это делается на С.

Кристалл способен на это?

sena ()
Ответ на: Crystal замена С? от sena

Re: Crystal замена С?

Разупоритесь, никакой замены це или руби не обещали. Пацаны всего лишь написали по приколу компилятор, чтобы код аля руби исполнялся не в тысячу раз медленней сишки, а сравнимо в пределах одного порядка. Внезапно прикольный компилятор оказался достаточно хорош, чтобы пацанам проплатили фулл-тайм разработку. Кому то значит оно нужно.

anonymous ()
Ответ на: комментарий от theNamelessOne

_ и __, а также self — единственное из его списка, что есть в пайтоне. В руби же есть префиксы у переменных (наследие перла), и, о ужас, нужно каждый блок завершать «хреновой кучей сраных» завершающих лексем (типа end или '}'). Т.е., чисто технически синтаксис пайтона чище.

Хотя по мне, как там говорится, «шо то..., шо это...»

anonymous ()
Ответ на: комментарий от develf

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

Совсем дебил? Ты своей жизни хоть что-то заметное создал, кроме кубометров мусора и отходов своей жалкой жизнедеятельности, откуда у тебя может быть право вякать на вещи, созданные тысячами умных людей, вещи, которые работают и каждый день приносят пользу, чтобы такое чучело, как ты, воняло «стрелочка мне не нравится, кококо»? Даже название языка прочитать не может, а лезет со своими комментариями про язык, которому явно лет, больше чем самому.

Alve ★★★★★ ()
Ответ на: комментарий от anonymous

Да вы задрали синтаксосом. Обсуждайте уже сабж, а не скобочки с отступами. Хоть одна шавка интересно посмотрела что это за кристал такой? Руби с питонами вообще мимо кассы здесь. Неужели лоровец настолько дебил, что различает языки только по синтаксосу? Надеюсь что нет.

anonymous ()
Ответ на: комментарий от anonymous

Да вы задрали синтаксосом.
Руби с питонами вообще мимо кассы здесь.

Ну знаешь ли, анонимус. Если у авторов языка одна из основных целей «иметь синтаксис, очень похожий на Ruby», то как-то сложно не обсуждать здесь синтаксис и Руби.

anonymous ()
Ответ на: комментарий от anonymous

Неужели лоровец настолько дебил, что различает языки только по синтаксосу?

А чем языки кроме синтаксиса и семантики различаются, по-твоему?

anonymous ()

я вот чего не понимаю. Сколько язков есть? 100? 200? А сколько парадигм? 10? Почему до сих пор находяться желающие сделать что-то «радикально новое»? Неужели все что было до этого кал?

dikiy ★★★★☆ ()
Ответ на: комментарий от dikiy

я вот чего не понимаю. Сколько людей есть? 6 миллиардов? 7? Почему до сих пор находятся желающие родить кого-то «радикально нового»? Неужели все кто были до этого кал?

anonymous ()
Ответ на: комментарий от anonymous

я вот чего не понимаю. Сколько людей есть? 6 миллиардов? 7? Почему до сих пор находятся желающие родить кого-то «радикально нового»? Неужели все кто были до этого кал?

ты намекаешь, что авторы языков больны графоманией?

dikiy ★★★★☆ ()
Ответ на: комментарий от dikiy

Я намекаю на такую вещь, как эволюция. Не будь которой, ты был бы так же ненужен, как и все эти 100-200 (на самом деле >8000) языков программирования.

anonymous ()
Ответ на: комментарий от dikiy

Сколько язков есть? 100? 200? А сколько парадигм? 10? Почему до сих пор находяться желающие сделать что-то «радикально новое»?

Даже исходя из твоей, сильно упрощённой, модели, комбинируя парадигмы можно создать 1023 языка. Не так много, конечно, но таки сильно больше, чем ты предположил. А ведь кроме «парадигмы» есть ещё очень много факторов.

anonymous ()
Ответ на: комментарий от dikiy

Ещё бы. Примерно такая же, как в контексте природы. Все зависит через призму какой временной рамки ты смотришь. Языкам не 10 лет, и даже не 20. Как и ты, из обезьяны выродился не 100 и даже не тысячу лет назад, но зато на рубеже этого тысячелетия перешел в новую эпоху, предыдущая от которой длилась 12 тысяч лет. Как ты считаешь, сильно ли ты эволюционировал от человека 12 тысяч лет назад? Вот примерно так же, эволюционировали языки, от языков 50ти летней давности. Но не того ни другого бы не случилось, если бы людей не вырождалось миллиардами, а языков программирования тысячами.

anonymous ()
Ответ на: комментарий от dikiy

так а есть она, эта эволюция? В котнексте ЯП?

Безусловно.

Если вдруг тебе захочется возразить, то ответь сначала, как давно ты изучаешь языки программирования (и сколько за это время успел изучить)?

anonymous ()
Ответ на: комментарий от dikiy

Пусть в этих сотнях языков студентота с академиками копошится, когда горят сроки, тебя все равно отладчик, система тестирования и репозиторий с библиотеками выручат больше, чем самая хитровыкрученная парадигма. При этом языки, для которых написаны дельные инструменты, можно посчитать на пальцах и все мы их знаем и ненавидим.

anonymous ()
Ответ на: Re: Crystal замена С? от anonymous

Re: Crystal замена С?

Эй, царёк, помнится ты кукарекал, что указатели в рандомное место в сишке — не UB.

$ cat foo.c
#include <stdio.h>

int main(int argc, char **argv) {
    int a[10];
    int *p = a + 11;
    printf("%p %p\n", a, p);
}
$ clang -fsanitize=undefined foo.c
$ ./a.out
foo.c:5:16: runtime error: index 11 out of bounds for type 'int [10]'
0x7ffe75417160 0x7ffe7541718c
anonymous ()