The OpenNET Project / Index page

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

Выпуск языка программирования Crystal 1.16

11.04.2025 10:57

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

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

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

Основные изменения:

  • Добавлена экспериментальная поддержка запуска легковесных потоков (fiber) в отдельных контекстах исполнения (Execution Contexts), что позволяет добиться более эффективного параллельного выполнения задач - блокировка потоков в одном контексте, не приводит к остановке выполнения в другом.
    
       mt_context = Fiber::ExecutionContext::MultiThreaded.new("worker-threads", 4)
    
       10.times do
         mt_context.spawn do
          do_something
         end
       end
    
       gtk = Fiber::ExecutionContext::Isolated.new("Gtk") do
         Gtk.main
       end
       gtk.wait
    
  • В методе Slice.literal обеспечен вывод типа элементов, содержащихся в срезе (slice), и добавлена поддержка работы в интерпретаторе.
  • В макросах sizeof и alignof обеспечено предоставление информации о стабильных типах.
  • В стандартную библиотеку добавлены новые методы: Indexable#find, #find!, EventLoop#wait_readable и #wait_writable.
  • В компилятор добавлен длинный вариант опции "-o" - "--output" и реализована возможность указания каталога в вместо файла (имя файла будет выбрано в соответствии с именем файла с кодом).
  • В генератор документации добавлена возможность включения в документацию приватных и защищённых объектов, а также объектов в библиотечных обвязках (lib, fun, union, cstruct, external, type).
  • В методе "File.match?" задействован новый алгоритм сопоставления файловых путей, позволивший избавиться от некоторых проблем и ограничений. Например, теперь корректно обрабатываются экранирование символов (под маску "\\t" подпадает "\t", а не символ "t"), разделение путей (маска "a**" охватывает "ab", но не срабатывает для "ab/c", а маска "**/a" охватывает "a"), вложенные шаблоны (маска "{[}]}" охватывает "}"), диапазоны (маска "[a-]" охватывает "-").
  • В именах параметров определений (defs), макросов и блоков объявлены устаревшими суффиксы "?" и "!".
  • В методах Enumerable#sum и #product убрано автоматическое определение типа возвращаемого значения, если тип элементов является объединением (union). При вызове данных методов теперь нужно явно указывать тип, например, вместо "[1, 10000000000_u64].sum" следует писать "[1, 10000000000_u64].sum(0_u64)".
  • В HTTP::Request обеспечен корректный разбор частей URL.
  • Добавлена поддержка набора компиляторов LLVM 20.
  • Объявлены устаревшими вызовы LLVM::ABI и LLVM::TargetMachine#abi.

   
  1. Главная ссылка к новости (https://crystal-lang.org/2025/...)
  2. OpenNews: Выпуск языка программирования Crystal 1.6
  3. OpenNews: Доступна операционная система Lilith 0.0.5, написанная на языке Crystal
  4. OpenNews: Язык Crystal пытается совместить производительность Си и удобство Ruby
  5. OpenNews: Первый релиз языка программирования Ceylon, развиваемого компанией Red Hat
  6. OpenNews: Выпуск языка программирования Zig 0.11.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63052-crystal
Ключевые слова: crystal
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (98) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (3), 12:33, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +4 +/
    Конпиляется всё ещё только шлангом? Точнее, не конпиляется вообще..
     
  • 1.4, Аноним (4), 12:48, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +2 +/
    До сих пор компилираует "Привет, Мир!" пять минут?
     
     
  • 2.38, Аноним (-), 15:55, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –7 +/
    >с высокой производительностью приложений, свойственной языку Си

    Читайть умеешь?

     
     
  • 3.59, Аноним (59), 19:06, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +6 +/
    Мусьё в силах понять разницу между производительностью работы программы и скоростью компиляции этой программы компилятором из исходников? И, кстати, скорость компиляции си-программ тоже так себе.
     
     
  • 4.62, ilowry (?), 19:24, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    Быстрее Си (не путать с Си++) только разве у Паскаля.
     
     
  • 5.65, Аноним (65), 20:37, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +6 +/
    У си отвратительная скорость компиляции. https://www.opennet.ru/opennews/art.shtml?num=56449 Для ускорения компиляции нужны некоторые фундаметнальные изменения, типа отказа от взаиморекурсивного включения файлов. Кроме паскаля нужно обратить внимание как минимум на go и ocaml.
     
     
  • 6.78, Аноним (78), 01:29, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    У окамла вообще кажется лучший компилятор, что был придуман.
     
  • 5.109, Аноним (109), 16:42, 13/04/2025 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +/
    У java и .net тоже быстро. Секрет во встроенном reflection - если есть актуальный (по дате модификации) .class, то нафиг вообще обрабатывать .java. И в рантайме и в compile-time смело вытаскиваем все типы, константы и прочее из ,class.

    У C++ уже тоже так можно, но пока ещё не всегда и не везде (модули). У паскаля примерно аналогично. Reflection нет, но в compile-time всё что надо вытаскивается из объектных файлов.

     
     
  • 6.121, Аноним (121), 21:28, 17/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > У java и .net тоже быстро.

    Проверим на 386? (заметь, я даже не заикась про 8086, т.б как 16 битные)

     
  • 5.117, Аноним (117), 21:37, 15/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Кристалл.
     
  • 2.73, Аноним (65), 22:18, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Да
     

  • 1.5, Аноним (5), 12:50, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    Это ещё что за def - end конструкции? Где блин фигурные скобочки?
     
     
  • 2.6, Аноним (6), 12:54, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –18 +/
    Да и то и другое что-то прошлый век, отступов вполне достаточно.
     
     
  • 3.7, Аноним (5), 12:56, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +13 +/
    Ты про питоновские отступы что ли? Абсолютно тупое решение. Стоит туда сюда код покопипастить, сразу всё сбивается.
     
     
  • 4.10, Аноним (6), 13:03, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –7 +/
    Зато приучает к порядку.
     
     
  • 5.42, User (??), 16:22, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +4 +/
    Не, ну если ваша работа "детей к порядку приучать" то что вы здесь-то делаете? Чат второй ясельной группы детсада 122 в whatdsup'е ведётся...
     
  • 5.120, Аноним (121), 21:23, 17/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    К порядку приучает ограничение на кол-во ошибок в 1 шт., кто знает - знает где такое,
    - в итоге при компиляции именно что 7 раз подумаешь перевычитывая.


    С отступами же проблема не в CopyPaste, по кр.мере пока размер блока не сильно большой,
    а кое в чём другом и это решаемо. Но, Python сам по себе зоговский трэш, что то вроде BASIC для зог и понтовиков, но всё же BASIC... Если бы у меня было лишнее время я бы их внедрил в свой аналог С++ но, увы... Да что там отступы, вещи куда полезней тут - канут в небытие с ним.

     
  • 4.12, Аноним (12), 13:12, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    Nim
     
  • 3.21, Аноним (65), 14:27, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +4 +/
    Отступы должны ставится автоматически, как на https://try.ocamlpro.com/. Вы ещё попросите программистов самостоятельно синтаксис подсвечивать, словно текст в ворде набирается, и с неправильной подсветкой - не компилировать.
     
     
  • 4.43, User (??), 16:27, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –3 +/
    Второй раз мне уже про эти чудеса рассказывают, прям даже спросить хочется - а другие практические преимущества, окромя автоматической расстановки скобочек и отступов есть? Где и для чего можно с практической пользой написанным на - попользоваться? Глядишь - заценю/пойму чего...
     
     
  • 5.48, n00by (ok), 16:40, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    MLDonkey на OCaml написан.
     
     
  • 6.50, User (??), 16:50, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Ээээто должно мне что-то сказать? Т.е. память мне подсказывает, что лет *цать назад я это название слышал, но и только.
     
     
  • 7.57, n00by (ok), 18:40, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Ну, не знаю, может надо с практической пользой закачать торрент.
     
     
  • 8.58, User (??), 18:47, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    А у этого клиента есть какие-то практические преимущества перед clientname ... текст свёрнут, показать
     
     
  • 9.61, n00by (ok), 19:15, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Сейчас вряд ли, поскольку другие сети он поддерживает несколько разных вроде б... текст свёрнут, показать
     
     
  • 10.75, Аноним (75), 22:43, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    вы бы еще Kazaa вспомнили бы ... текст свёрнут, показать
     
     
  • 11.81, n00by (ok), 08:53, 12/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Просто помню, что этот MLDonkey авторы OCaml написали с целью прорекламировать я... текст свёрнут, показать
     
     
  • 12.89, Аноним (89), 15:07, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    А как для настоящего времени Что в нём устарело, чего не хватает ... текст свёрнут, показать
     
     
  • 13.96, Аноним (75), 16:36, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    вопрос некорректный, вот к примеру, чего не хватает в русском языке - русских с... текст свёрнут, показать
     
  • 11.86, Вы забыли заполнить поле Name. (?), 13:00, 12/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    GNUtella ... текст свёрнут, показать
     
  • 5.69, Аноним (65), 21:42, 11/04/2025 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +/
    В исходном сообщении речь шла об оформлении блоков кода Какие ещё вы хотите пре... большой текст свёрнут, показать
     
     
  • 6.88, User (??), 13:50, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Воу! Крутая штука, не то, что этот наш гвидобейсик - а то, что за 30 лет так ничего полезного и не (пере|на)писали - то, понятно, фигня.
    А если это чудо еще и в emacs под NixOS - то и вовсе, все дивчОнки мои будут!
     
     
  • 7.99, Аноним (65), 16:45, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    >А если это чудо еще и в emacs под NixOS

    Сенсей-сама, как вы догадались, что я пишу в эмаксе под NixOS?

     
  • 5.70, ИмяХ (ok), 21:48, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    Благодаря скобкам можно написать огромную программу в одну строку
     
  • 2.14, Профессор Кукушкин (?), 13:23, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Там же, где и в Ruby -- взаимозаменяемы с do ... end.
     
  • 2.15, Аноним (3), 13:34, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    ты ещё про пустые скобки у методов спроси,
    и вообще про все сишные "чипыжи"
     

  • 1.13, Аноним (13), 13:21, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    Fiber::ExecutionContext::MultiThreaded

    мода на многословность?

     
     
  • 2.60, Аноним (59), 19:10, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    на понятность
     
     
  • 3.67, Аноним (13), 21:14, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    пять плюс восемь равно тринадцать

    понятность

     

  • 1.16, Аноним (-), 13:51, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –2 +/
    >в виде легковесных потоков, именуемых файберами (Fiber)

    Слово Fiber с аглицкого переводится как "клетчатка". Эти легковесные потоки должны переводится как "клетчатки".

     
     
  • 2.20, Аноним (12), 14:16, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Целлюлоза
     
  • 2.22, Аноним (65), 14:27, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +6 +/
    Волокно же!
     
  • 2.24, Аноним (24), 14:30, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Fiber optics - клетчаточная оптика?
     
     
  • 3.56, Аноним (-), 18:07, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    n00by считает что правильнее - нитчатая оптика.
     
     
  • 4.100, Аноним (75), 16:51, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    нить - результат прядения, а прядение это:

    https://ru.wiktionary.org/wiki/прядение

    """
    процесс продольного складывания и спирального скручивания отдельных волокон для получения длинной и прочной нити
    """

    То есть волокна это кусочки такие, а точнее:

    https://ru.wiktionary.org/wiki/волокно

    """
    тонкая непряденая нить растительного, минерального или синтетического происхождения
    """

    И вот тут прикол, нить это пряденное волокно, волокно это непряденая нить :)
    Синоним волокна - фибра:

    https://ru.wiktionary.org/wiki/фибра

    """
    жилка, нерв, волокно животной ткани
    """

     
  • 2.49, n00by (ok), 16:42, 11/04/2025 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +/
    "Нить" это переводится, и потоки так называются.
     
     
  • 3.63, Аноним (59), 19:32, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    Ну, вроде как "thread" - нить, а "fiber" - волокна, из которых состоит эта нить. И очень логично названо: тред - поток исполнения с аппаратной поддержкой в процессоре и в распространенных ОС обычно еще и вытесняющиеся по времени, а уже внутри потока куча файберов - сопрограмм с "кооперативной" многозадачностью (вытеснения нет по времени, передача управления следующему файберу происходит или добровольно явно или при входе в вызов ввода/вывода).
     
     
  • 4.83, n00by (ok), 09:19, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Для английского действительно логично. С переводом возникает путаница, thread переводят и как "поток" (встречаю такое чаще), и как "нить". Последней вариант используют обычно, когда "легковесных потоков" нет. В любом случае, оно не клетчатка.

    ЗЫ у thread-а нет аппаратной поддержки в процессоре (IA32/AMD64) в смысле каких-то команд или специально предназначенных регистров. Под "аппаратно" понимается вызов планировщика по таймеру, может заодно меняться регистр fs или gs, через который адресуется thread local storage, но это "просто сегментный" регистр, без особого смысла как у ss (сегмент стека).

     
  • 2.94, Bottle (?), 15:41, 12/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Фибры.
     

  • 1.17, th3m3 (ok), 13:52, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    И после этого, ещё Rust ругают за синтаксис?
     
     
  • 2.18, Аноним (5), 14:03, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –2 +/
    Синтаксис у него может и не самый плохой, но отсутствие хорошей IDE портит всё впечатление.
     
     
  • 3.26, Аноним (24), 14:35, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –4 +/
    IDE нужна для джунов, вполне комфортно писать и без неё. Тут всё впечатление портит сам язык.
     
     
  • 4.28, Аноним (65), 14:40, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Для любого крупного проекта нужна IDE, или как минимум языковой сервер
     
     
  • 5.29, th3m3 (ok), 14:43, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –2 +/
    Нет.
     
     
  • 6.44, User (??), 16:29, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Ага. Особенно, если окромя хелловрота ничего писать и не собираешься.
     
  • 6.104, нейм (?), 23:31, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    программиста-писаки-в-стол ответ
     
  • 5.32, Аноним (32), 15:32, 11/04/2025 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • +1 +/
    "Блокнот" и компилятор командной строки.
     
     
  • 6.74, Аноним (74), 22:32, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    И мазохизм, конечно
     
  • 6.90, Аноним (89), 15:09, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Emacs!
     
  • 5.76, YetAnotherOnanym (ok), 23:10, 11/04/2025 [^] [^^] [^^^] [ответить]  [] []     [к модератору]
  • –1 +/
    > языковой сервер

    Не напоминай про эту мерзость

     
     
  • 6.98, Аноним (65), 16:44, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Это лучшее, что случалось с IDE. Теперь редактор можно развивать отдельно, а поддеркжу языка - отдельно, и не мирится с отвратительной IDE ради хорошей поддержки языка
     
  • 5.85, Аноним (85), 12:35, 12/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Есть crystalline, хотя проект лишь "пассивно обновляется" автором.

    https://github.com/elbywan/crystalline/blob/master/assets/small_demo.gif

     
  • 4.34, Аноним (34), 15:48, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +3 +/
    > вполне комфортно писать и без неё.

    Хелловорлды — да.

     
  • 2.41, Аноним (13), 16:17, 11/04/2025 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 2.55, Аноним (55), 17:56, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Да, у Crystal синтаксис гораздо лучше.
     

  • 1.25, Аноним (24), 14:34, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –11 +/
    Надоели уже новости о pet-язычках, на которых никто кроме автора не пишет и писать не будет. В которых даже идей новых нет. Crystal, nim, zig, v, сколько этого мусора уже наплодили...
     
     
  • 2.30, Аноним (30), 15:08, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    а где есть идеи?
     
  • 2.45, User (??), 16:30, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Поезд уже ушёл, ага. Llm учить не на чем --> ненужно.
     
  • 2.53, anonimus (?), 17:22, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +3 +/
    Вас кто-то насильно заставляет их внимательно читать? Или если Вам не нужно, то и всем остальным должно быть не нужно? Какое-то детское-потребительское мышление
     
  • 2.87, Аноним (-), 13:14, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Crystal, nim, zig, v, сколько этого мусора уже наплодили...

    Продолжайте список

     
     
  • 3.123, Аноним (121), 22:01, 17/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    LUA, ..., Ruby, ..., Python, ..., Rust, ..., C# :)
     

  • 1.27, Аноним (65), 14:38, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    Интересно, какие это удобства писать на руби Скобки при вызове можно опускать, ... большой текст свёрнут, показать
     
     
  • 2.51, Аноним (51), 16:51, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    Лучше уж бороться со скобочками в руби и опционвльно собираться в натив, чем бороться с питонистами, не понимающими, что такое map и упорно заставляющими писать типы в скриптухе.
     
     
  • 3.71, Аноним (65), 21:55, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    >и упорно заставляющими писать типы в скриптухе.

    Это позор питона, ведь код

    def test(a : int):
      print(a)
      
    test("a")

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

    List.iter print_string ["hello "; "world"]

    let result = let sum a b = a + b in
      List.map sum [1; 2; 3]

    Хотя в этих строках тип данных не указан ни разу, компилятор знает тип каждой переменной

     
     
  • 4.82, Аноним (6), 08:55, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Кому позор, а кому и регулярно помогает находить трудновыявимые баги до того, как они себя проявят. Да и в своём коде ещё ладно, а вот в коде зависимостей не всегда очевидно. Видимо, ты никогда не работал ни с чем сложнее привет мира, и не понимаешь, чем полезна индикация ожидаемого типа программисту (и не компилятору).
     
     
  • 5.97, Аноним (65), 16:42, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    >Кому позор, а кому и регулярно помогает находить трудновыявимые баги до того, как они себя проявят

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

    Второй момент - питон превращается в некую жабу, где нужно писать тип буквально на каждой строке.

     
     
  • 6.102, Аноним (6), 17:05, 12/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Никто не заставляет это делать, пихай, что хочешь. Тайпскрипт вон по понятным причинам лучше жс прижился в приличных проектах. В питоне система типов хоть и более адекватная, но без тайпхинтов не очень удобно (и всегда возможно) угадывать.
     
     
  • 7.105, Аноним (105), 04:50, 13/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    Так не пойдёт, а как же затгавить его за то, что он позорит весь дом высокой кул... большой текст свёрнут, показать
     
  • 7.106, Аноним (105), 08:11, 13/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Или другой пример про питон, типизацию и каргокультизм Кто-то демонстрирует 1 ... большой текст свёрнут, показать
     
     
  • 8.107, Аноним (6), 08:45, 13/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Ну ничего ужасного, пусть mypy порадуется, это же обучающие материалы Единствен... текст свёрнут, показать
     
     
  • 9.108, Аноним (105), 09:59, 13/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Обучающие материалы по теме конформное поведение для обучения психологов По-м... большой текст свёрнут, показать
     
  • 7.112, Аноним (65), 12:10, 14/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    >Никто не заставляет это делать, пихай, что хочешь
    >но без тайпхинтов не очень удобно (и всегда возможно) угадывать.

    Об этом и речь. В Ocaml даже если тип не указан, а это почти везде, компилятор может вывести тип самостоятельно. В ts или python, либо тип указывается везде, как в старых джавах, либо проверка отваливается, так как не может ничем помочь

     
     
  • 8.113, Аноним (6), 12:30, 14/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Кажется, ты не осознаёшь, для чего явные типы в динамических языках используются... текст свёрнут, показать
     
     
  • 9.114, Аноним (65), 17:11, 14/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Раньше было лучше Была вероятность, что в серьёзном проекте питон выкинут, и на... текст свёрнут, показать
     
     
  • 10.124, Аноним (121), 22:12, 17/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Ахаха, теперь я понял отчего AI обычно ан Python е такие глюченые Даже есл... текст свёрнут, показать
     

  • 1.64, Нуину (?), 19:33, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    Нужно что-то такое для питона. Да, я знаю, что есть mypyc, nuitka, codon и несолько других проектов.
     
     
  • 2.66, BrainFucker (ok), 21:08, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    Cython.
     
     
  • 3.68, Нуину (?), 21:36, 11/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Cython.

    Он более низкоуровневый чем сrystal?

     
     
  • 4.72, Аноним (65), 22:12, 11/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    Он не только более низкоуровневый, у него гораздо слабее система типов. Для Crystal код типа этого

    10.times do
      a = Random.rand 10

      if a > 6
        b = "2"
      elsif a > 3
        b = "error"
      else
        b = 1
      end

      if b.is_a?(String)
        puts "b is string"
        c = b.to_i?
      else
        c = b
      end

      if !c.nil?
        puts c + 1
      end
    end

    не проблема, crystal позволяет присваивать переменной значения разных типов, и обрабатывать в зависимости от типа, cython так не сможет

     
     
  • 5.125, Аноним (121), 22:17, 17/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Так это отстрел себе сразу обоих ног... стоит коду только чуть разрастись.
     
  • 4.91, Аноним (89), 15:12, 12/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Более низкоуровневый, чем CPython. Но, наверное, не сильно более.
     
     
  • 5.115, Аноним (6), 19:44, 14/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Более низкоуровневый, чем CPython. Но, наверное, не сильно более.

    Cython буквально низкоуровневый настолько, насколько низкоуровневый си. Он транслирует в си и обеспечивает 1 в 1 с си производительность. Но при обычном использовании может также исполнять код на питоне через libpython без модификаций, у которого будет производительность cpython (конкретно той версии, с конторой линкуется).

     
  • 2.80, Аноним (6), 07:43, 12/04/2025 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Это всё не то (да и не даёт никакого профита), ты, видимо, ищешь shedskin или cython.
     
  • 2.116, Аноним (117), 01:37, 15/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > Нужно что-то такое для питона.

    Но есть же python, для питона.

     

  • 1.103, Аноним (103), 20:00, 12/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Возьмем по ведру фишек от каждого яп'а и с этим попытаемся взлететь.
    Отличный план, только высота полета низенькая
     
     
  • 2.111, Аноним (111), 09:04, 14/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    так все делают
     
     
  • 3.118, Прохожий (??), 07:21, 16/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Нет, конечно.
     
     
  • 4.127, Аноним (111), 10:49, 18/04/2025 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    конечно да
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру