The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

08.08.2016 22:11  Язык Crystal пытается совместить производительность Си и удобство Ruby

В рамках проекта Crystal развивается новый язык программирования, разработчики которого намерены создать язык удобный как Ruby при разработке, но быстрый как Си при выполнении приложений. Код компилятора написан на языке Crystal и распространяется под лицензией Apache 2.0.

Синтаксис Crystal очень близок к языку Ruby (без переработки выполняются некоторые ruby-программы), но разработчики не ставят целью обеспечение полной совместимости. В языке применяется статическая проверка типов, но без необходимости явного указания типов переменных и аргументов методов в коде. Программы на Crystal компилируются в исполняемые файлы, с вычислением макросов и генерацией кода во время компиляции. С производительностью не всё однозначно: на текущей альфа-стадии развития в одних тестах Crystal опережает Ruby в 40 раз, но в отдельных тестах в 4-5 раз проигрывает по скорости выполнения.

В программах на языке Crystal допускается подключение биндингов, написанных на языке Си. Распараллеливание выполнения кода осуществляется при помощи ключевого слова spawn, которое позволяет запустить фоновую задачу в асинхронном режиме, не блокируя основной поток, в виде легковесных потоков, именуемых фибрами (Fiber).

Стандартная библиотека предоставляет большой набор типовых функций, в том числе средства для обработки CSV, YAML, и JSON, компоненты для создания HTTP-серверов и поддержки WebSocket. В процессе разработки удобно использовать команду "crystal play" которая формирует web-интерфейс (по умолчанию localhost:8080) для интерактивного выполнения кода на языке Crystal.

  1. Главная ссылка к новости (https://blog.codeship.com/an-i...)
Лицензия: CC-BY
Тип: Программы
Ключевые слова: crystal, ruby, compiler
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 22:40, 08/08/2016 [ответить] [смотреть все]
  • +/
    напомнило кассио и эмуляцио HP
     
  • 1.2, Онаним, 23:00, 08/08/2016 [ответить] [смотреть все]
  • +/
    Есть же Elixir - и на Ruby похож, и производительность и прочие ништяки от Erlang-а.
     
     
  • 2.10, Crazy Alex, 02:07, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]
  • +8 +/
    Производительность эрланга... Хорошая шутка для тех, кто в курсе, угу
     
     
  • 3.14, Аноним, 02:31, 09/08/2016 [^] [ответить] [смотреть все]
  • +5 +/
    Типа "её нет, но вы держитесь там"?
     
     
  • 4.16, Crazy Alex, 03:06, 09/08/2016 [^] [ответить] [смотреть все]
  • +2 +/
    Она есть местами, но упоминать его как эталон скорости смешно Эрланг - вообще н... весь текст скрыт [показать]
     
     
  • 5.53, rob pike, 16:02, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    Под сишные расширения он заточен очень хорошо С FFI по удобству сравнимому то... весь текст скрыт [показать]
     
     
  • 6.59, Crazy Alex, 16:56, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    А что не так с Perl XS? Вполне рабочая штука
     
     
  • 7.65, Аноним, 18:45, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    http slonik-v-domene livejournal com 31403 html Я сомневаюсь в его компетенции... весь текст скрыт [показать]
     
     
  • 8.76, Аноним, 13:09, 10/08/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Нашли с чем сравнивать Lua 8212 в первую очередь встраиваемый язык на всяки... весь текст скрыт [показать]
     
  • 8.79, rob pike, 16:40, 10/08/2016 [^] [ответить] [смотреть все]  
  • +/
    С LuaJIT еще проще.
     
  • 7.78, rob pike, 16:39, 10/08/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    ASN 1 и HLASM - тоже очень рабочие штуки Тем не менее, перловый XS остается одн... весь текст скрыт [показать]
     
  • 3.25, Аноним, 08:20, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    а вы использовали elixir для написания приложений уровня ROR или так по теорети... весь текст скрыт [показать]
     
     
  • 4.58, Crazy Alex, 16:55, 09/08/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Даже смотреть не стану Работа со строками и подобным в BEAM быстрой в жизни не ... весь текст скрыт [показать]
     
  • 2.89, Аноним, 19:21, 11/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    ну в принципе да, что руби что эрланг и эликсир - корнями частично уходят к ван... весь текст скрыт [показать] [показать ветку]
     
  • 1.3, Аноним, 23:12, 08/08/2016 [ответить] [смотреть все]  
  • +1 +/
    никогда не писал на ruby, вот от чего дискомфорт
     
     
  • 2.24, 12de, 08:16, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    начинай, не пожалеешь
     
     
  • 3.27, Очень злой и закадровый смех, 08:25, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    Начал. Пожалел. Where is your god now?
     
     
  • 4.31, Michael Shigorin, 09:04, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    > Начал. Пожалел.

    О чём именно, кстати?

     
     
  • 5.75, Пингвино, 12:14, 10/08/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Скорее всего о том, что родился.
     
  • 1.4, Xasd, 23:18, 08/08/2016 [ответить] [смотреть все]  
  • –6 +/
    всё больше и больше плодят тупых дыр про которые раньше люди и не мыслили ... весь текст скрыт [показать]
     
     
  • 2.32, Michael Shigorin, 09:05, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    Вы опять неправы ... весь текст скрыт [показать] [показать ветку]
     
  • 1.5, YetAnotherOnanym, 23:24, 08/08/2016 [ответить] [смотреть все]  
  • +2 +/
    А на руби удобно писать? Чёрт, жизнь прошла мимо...
     
     
  • 2.6, Павел, 00:46, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    По многим параметрам на Ruby даже приятнее писать чем на Python
     
     
  • 3.13, Аноним, 02:31, 09/08/2016 [^] [ответить] [смотреть все]  
  • +5 +/
    Марсианину - несомненно ©
     
     
  • 4.33, Michael Shigorin, 09:06, 09/08/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    А что, венерианская логика уже окончательно решила вопрос с табиками и пробельчи... весь текст скрыт [показать]
     
     
  • 5.43, Snm, 11:25, 09/08/2016 [^] [ответить] [смотреть все]  
  • +6 +/
    Да даже чиорт с ними с табами-пробелами, к этому в конце концов привыкаешь со временем.
    Вот что действительно раздражает - так это встроенные функции, особенно вперемешку с методами классов. Непонятно откуда читать выражение в итоге.
     
  • 5.64, _, 17:10, 09/08/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Гугли PEP8
    Стандарт между прочим.
     
  • 4.91, Аноним, 23:42, 12/08/2016 [^] [ответить] [смотреть все]  
  • +/
    > Марсианину - несомненно ©

    Фанаты бэйсиков рубаются.

     
  • 3.36, robux, 09:13, 09/08/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Сравнил тоже Это как сравнивать советский мопед Рига пистон и фольксваген ... весь текст скрыт [показать]
     
     
  • 4.63, _, 17:06, 09/08/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    ну ты держись там, Туарег ... весь текст скрыт [показать]
     
  • 4.92, Аноним, 23:43, 12/08/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Это как сравнивать советский мопед и стремный китайский мотороллер Ездят конечн... весь текст скрыт [показать]
     
  • 1.7, Аноним, 01:18, 09/08/2016 [ответить] [смотреть все]  
  • +9 +/
    > удобный как Ruby
    > быстрый как Си

    Как они до такого догадались? До них все пытались сделать ровно наоброт.

     
  • 1.8, angra, 01:22, 09/08/2016 [ответить] [смотреть все]  
  • +17 +/
    Я так понимаю, что сравнительные бенчмарки с С или Go решили не приводить только из скромности. И вообще джентельмены верят на слово, сказали "производительность Си", значит так и есть.
     
     
  • 2.9, vdevrvtgrb, 01:46, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –6 +/
    Вы так говорите как будто у Go производительность на уровне С Единственный яз... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.15, chinarulezzz, 02:43, 09/08/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Так что фикс ... весь текст скрыт [показать]
     
     
  • 4.93, Аноним, 23:45, 12/08/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    В результате пока сишник просто пишет код, адепт Новых Модных Языков получает зн... весь текст скрыт [показать]
     
  • 3.17, Аноним, 04:44, 09/08/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Если official implementation подразумевает эталонность, то эталонность обычно ... весь текст скрыт [показать]
     
     
  • 4.22, Аноним, 06:33, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    одно другому никак не мешает ... весь текст скрыт [показать]
     
  • 3.19, angra, 05:24, 09/08/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    Не я так говорю, а вы так интерпретируете мои слова Go был упомянут по совсем д... весь текст скрыт [показать]
     
     
  • 4.56, Аноним, 16:47, 09/08/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    При этом Java с JIT, разумеется довольно близко подходит к C по производительн... весь текст скрыт [показать]
     
  • 2.11, Crazy Alex, 02:09, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    какое, на фиг, тестирование производительности у суровой альфы Хоть где-то пока... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, angra, 05:11, 09/08/2016 [^] [ответить] [смотреть все]  
  • +3 +/
    Если ставишь задачей производительность, то она должна быть уже в альфе А то со... весь текст скрыт [показать]
     
     
  • 4.21, Аноним, 06:29, 09/08/2016 [^] [ответить] [смотреть все]  
  • +5 +/
    Там его пилят какие-то аутисты, ушибленные рубями Добавили ещё столько же опера... весь текст скрыт [показать]
     
  • 4.41, Аномсис, 10:40, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    Не должна, т к в первой альфе намного важнее совсем другое Ну и да, производит... весь текст скрыт [показать]
     
     
  • 5.45, angra, 11:56, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    Вообще-то первая альфа была зарелизена два года назад, развитие началось четыре ... весь текст скрыт [показать]
     
  • 4.55, Crazy Alex, 16:42, 09/08/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Вообще-то далеко не все хотят максимально возможной производительности, ей часто... весь текст скрыт [показать]
     
  • 2.39, Аномсис, 10:16, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Читать надо внимательней Там не написано, что у него производительность, как у ... весь текст скрыт [показать] [показать ветку]
     
     ....нить скрыта, показать (14)

  • 1.12, Аноним, 02:29, 09/08/2016 [ответить] [смотреть все]  
  • +3 +/
    это называется эффект низкой базы Сравните с cpython или go и получите свои ... весь текст скрыт [показать]
     
  • 1.20, skybon, 05:56, 09/08/2016 [ответить] [смотреть все]  
  • –2 +/
    Тем временем, уже есть GI-привязки:

    https://github.com/jhass/crystal-gobject

    Молодой язык, а гномовские либы можно использовать на полную катушку.

     
  • 1.23, _KUL, 06:39, 09/08/2016 [ответить] [смотреть все]  
  • –2 +/
    Логика бессмысленная - язык Ruby удобен, но не быстр. С быстр, но не удобен. Нужно создать язык "Crystal" который будет иметь удобство Ruby и скорость С.
    ВОПРОС - почему нельзя просто Ruby сделать быстрым как С и всё???
     
     
  • 2.28, 12de, 08:25, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    потому что философия языка позволяет все сделать как тебе удобно, 100500 способа... весь текст скрыт [показать] [показать ветку]
     
  • 2.29, Аноним, 08:27, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    потомучто там - идеология бредовая - Все есть объект - возможность манкипат... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.48, Аноним, 12:54, 09/08/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    чем плохо иметь простую и регулярную модель языка, в которой всё предельно понят... весь текст скрыт [показать]
     
     
  • 4.50, Аноним84701, 14:35, 09/08/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Оптимизация-с сэр Вы не поверите, но вызывать нужный метод каждый раз через таб... весь текст скрыт [показать]
     
     
  • 5.94, Аноним, 23:48, 12/08/2016 [^] [ответить] [смотреть все]  
  • +/
    Еще бы питонисты и рубисты понимали что ты написал :)
     
  • 5.98, Аноним, 07:43, 17/08/2016 [^] [ответить] [смотреть все]  
  • +/
    А как вы собрались это делать без JIT?
     
  • 4.69, Аноним, 23:09, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    Динамика и производительность скорость сочетаются чуть лучше, чем никак ... весь текст скрыт [показать]
     
     
  • 5.80, rob pike, 16:46, 10/08/2016 [^] [ответить] [смотреть все]  
  • +/
    В LuaJIT почему-то сочетаются замечательно.
     
     
  • 6.81, Аноним, 18:02, 10/08/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    http benchmarksgame alioth debian org u64q lua html Непохоже Проигрывает той ... весь текст скрыт [показать]
     
     
  • 7.83, ОШИБКА Отсутствуют данные в поле, 22:28, 10/08/2016 [^] [ответить] [смотреть все]  
  • +/
    смотрели бы то на что ссылаетесь ... весь текст скрыт [показать]
     
  • 2.34, robux, 09:09, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    ОТВЕТ потому что Ruby - интерпретатор, а Си - компилятор А интерпретатор никог... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.40, angra, 10:22, 09/08/2016 [^] [ответить] [смотреть все]  
  • –3 +/
    А если стадия jit занимает доли процента от времени выполнения А если jit еще и... весь текст скрыт [показать]
     
     
  • 4.42, freehck, 10:56, 09/08/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    Это решает скорее проблему распространения, нежели проблемы производительности ... весь текст скрыт [показать]
     
     
  • 5.44, angra, 11:44, 09/08/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    Ну давай на этапе компиляции определи мне размер переменной, которая будет счита... весь текст скрыт [показать]
     
     
  • 6.51, freehck, 15:50, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    Вряд ли Раз мы говорим о jit, значит мы говорим о демоне, ибо иначе jit не окуп... весь текст скрыт [показать]
     
     
  • 7.62, Аноним, 17:04, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    Еще как окупится Иммутабельность не JIT-а, а переменной в программе, которую JI... весь текст скрыт [показать]
     
     
  • 8.70, freehck, 00:26, 10/08/2016 [^] [ответить] [смотреть все]  
  • +/
    Мне право же трудно понять, что Вы подразумевали под им мутабельностью JIT-а ... весь текст скрыт [показать]
     
  • 6.57, Crazy Alex, 16:48, 09/08/2016 [^] [ответить] [смотреть все]  
  • +/
    Ну вот на практике в 99 9 случаев можно заранее предсказать и ограничить осмы... весь текст скрыт [показать]
     
  • 2.99, Akzhan, 13:45, 19/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Все просто, разница между статической типизацией и динамической типизацией в ско... весь текст скрыт [показать] [показать ветку]
     
  • 1.26, Аноним, 08:24, 09/08/2016 [ответить] [смотреть все]  
  • +/
    не нужно т к для масшабируемых высокопроизводительных приложений есть elixir ... весь текст скрыт [показать]
     
     
  • 2.47, Аноним, 12:24, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Нет никакого erlang vm. Есть BEAM -- но это другое :)
     
  • 1.30, Аноним, 09:00, 09/08/2016 [ответить] [смотреть все]  
  • +/
    > удобный как Ruby при разработке

    Ребят, может не надо?

     
     
  • 2.35, Michael Shigorin, 09:10, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    >> удобный как Ruby при разработке
    > Ребят, может не надо?

    ?

     
  • 1.37, Аноним, 09:22, 09/08/2016 [ответить] [смотреть все]  
  • +/
    Они изобретают golang?
     
     
  • 2.61, Crazy Alex, 16:57, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    надеюсь, что нет - убогих полуязыков и так уже многовато
     
  • 1.38, Demo, 09:26, 09/08/2016 [ответить] [смотреть все]  
  • +/
    > Crystal развивается новый язык программирования,
    > разработчики которого намерены создать язык
    > удобный как Ruby при разработке, но быстрый как Си при выполнении

    А как же Smalltalk? o_O

     
     
  • 2.60, Crazy Alex, 16:57, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    У которого ни удобства, ни скорости?
     
     
  • 3.73, Demo, 08:53, 10/08/2016 [^] [ответить] [смотреть все]  
  • +/
    171 Наша информационная среда LPE приобрела свою мощность, дружест... весь текст скрыт [показать]
     
  • 1.46, Аноним, 12:22, 09/08/2016 [ответить] [смотреть все]  
  • +/
    Интересно было бы увидеть синтаксические отличия от руби Статическая типизация ... весь текст скрыт [показать]
     
  • 1.49, Аноним, 13:40, 09/08/2016 [ответить] [смотреть все]  
  • –2 +/
    Ещё одна Scala.
     
     
  • 2.54, rob pike, 16:08, 09/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Совсем не Scala. Но перспектив никаких.
     
  • 2.77, Аноним, 13:58, 10/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    > Ещё одна Scala.

    По своей идеологии скорее Rust.

     
     
  • 3.82, Аноним84701, 18:14, 10/08/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    У раста, справедливости ради, в идеологии много внимания уделяется управлению ... весь текст скрыт [показать]
     
  • 1.52, Аноним, 15:53, 09/08/2016 [ответить] [смотреть все]  
  • +1 +/
    Где реклама Kotlin?
     
  • 1.66, Аноним, 19:58, 09/08/2016 [ответить] [смотреть все]  
  • +/
    Хочу си как ява как паскаль!
     
     
  • 2.88, вввв, 14:38, 11/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    ява и так как с, только урезана и объектно ориентированна
     
     
  • 3.95, Аноним, 23:51, 12/08/2016 [^] [ответить] [смотреть все]  
  • +/
    Нифига себе урезана - рантайма на 100 метров А оопешные фичи это здорово Но то... весь текст скрыт [показать]
     
  • 1.90, Аноним, 19:22, 11/08/2016 [ответить] [смотреть все]  
  • –1 +/
    производительность С доставило когда он в 1-й тройке-пятерке семых шустрых... весь текст скрыт [показать]
     
     
  • 2.96, Аноним, 23:53, 12/08/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Он обычно второй в очереди - сразу после ассемблера Это, конечно, зависит от, н... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.97, КО, 17:07, 16/08/2016 [^] [ответить] [смотреть все]  
  • +/
    >Он обычно второй в очереди - сразу после ассемблера.

    Так вот с им родимым и сравнивают, когда особо пропиариться хотят.
    Даже Оракул с Явой в этом был замечен. :)
    Некоторые, из ныне забытых, были даже быстрее оного. :)

    P.S. Язык (компьютерный) сам по себе не быстрый и не медленный. Если безотносительно его реализации и программиста рассматривать. :)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor