LINUX.ORG.RU

Bosque - очередной убийца C++ от MS

 


1

4

https://github.com/microsoft/BosqueLanguage

Основные фичи:

  • GC в виде счетчика ссылок, ага
  • immutable
  • нет циклов, только функциональщина
  • дженерики, в том числе variadic
  • sum types/adt
  • синтаксически, смесь C++, Rust, Swift и OCaml, но страшнее
  • optional - часть языка, ака оператор ?
  • рекурсия должна быть явно объявлена через ключевое слово recursive
  • трансплитер написан на typescript и выплёвывает C++ (но это не точно)
  • они ещё используют Z3, но не ясно как именно

Пример:

entity Person {
    field name: String; 
}

function foo(arg?: {f: Int, n?: String} | String | Person): String {
    if(arg == none) {
        return "Blank";
    }
    else {
        return switch(arg) {
            type Record => arg.n ?| "Blank"
            type String => arg
            type Person => arg.name
        };
    }
}

foo()                    //"Blank"
foo(none)                //Type error - none not allowed
foo("Bob")               //Bob
foo(Person@{name="Bob"}) //Bob
foo({f=5})               //"Blank"

foo({f=1, n="Bob"})      //"Bob"
foo({g=1, n="Bob"})      //Type error - Missing f property
★★★★★

Последнее исправление: RazrFalcon (всего исправлений: 8)

Иероним Босх?

По сабжу: Мы знаем и помним сколько проектов Майкрософт закопала.

И этот закопает

Twissel ★★★★★
()
Последнее исправление: Twissel (всего исправлений: 2)

Убийца Раста скорее.

anonymous
()

Синтаксис конечно адский. Явно сделан не для людей а для парсеров.

ya-betmen ★★★★★
()

По упоротости синтаксиса они переплюнули даже Rust.

anonymous
()

синтаксически, смесь C++ и Rust

Так забавно смотреть, когда человек знает(?) лишь 2 языка, везде их видит.

Расширяй кругозор.

Ну и:

We couldn’t find any code matching ‘rust’ in microsoft/BosqueLanguage

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

Ну тут уже по синтаксису видно что неосиляторы делали язычек.

Если точнее, то уеб-макаки.

anonymous
()

Всё ближе тот день когда каждая IT-компания, претендующая на серьёзность, будет иметь свой неповторимый ЯП и компилятор!

ados ★★★★★
()

Выглядит любопытно. Типы-суммы, Maybe как часть языка, не видать ооп.. что до синтаксиса - то он вполне привычный сишникам/явистам всем мастей и яваскриптерам. Но, кажется, если бы они добавили циклы, то «приучать к функциональщине» было бы чуток проще. Хотя им виднее, конечно, что у них в целях записано...

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Вы знаете другие системные языки?

Православная Сишечка, Дьявольская Ада, Атеистический Паскаль, Католический Оберон.

anonymous
()

очередной убийца C++

Зачем так желто? Ясно же написано, breakthrough research project from Microsoft Research. Что действительно интересно – это заява на сочетание простоты TypeScript/Node stack и скорости native C++ application. Ну и реализация на

TypeScript 72.3% JavaScript 15.7% C++ 10.8% SMT 1.2%

Совместили js, C++ и лисп, чтоб всех затроллить.

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

похоже на студенческую поделку

Microsoft Research

@{Не в "бровь", а => глаз?|}

Владимирский Централ

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

arg?: {f: Int, n?: String} | String | Person

Может быть, это и сильно, но читать-то такиое неудобно, глаза текут.

И этот свич внутри функции в примере — дерьмо какое-то. Оно же в рантайме будет выполняться? Хочется какой-то дополнительной декларации для приведения входного значения к общему типу / интерфейсу, а не мусорной логики с условиями и свичами. Тогда и код чище получится и компилятору будет проще, можно сгенерировать предобработку вне тела функции и что-то типа перегрузки.

Раз уж экспериментируют, могли бы что-то поинтересней придумать.

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

И Божественный Ассемблер же.

+1, но для Флакона это будет уже слишком.

anonymous
()

Зачем это нужно, еще и тайпскрипт если есть rust, haskell которые объективно лучше всем. В каком месте оно убивает С?

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

Он же умер.

Если Objective C умер, то Rust еще и не родился :(

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

В каком месте оно убивает С?

В воспаленном мозгу Флакона.

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

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

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

дальше бежать некуда.

Есть куда – в теплые материнские объятия Православной Сишечки, конечно же.

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

теплые материнские объятия

Некрофилия - нехорошо.

Материнские объятия = некрофилия? Я начинаю сомневаться в твоих моральных ориентирах.

anonymous
()

Что мешает добавлять новые возможности, максимально оставляясь близким к Си? Вот как D-lang делали мне нравится

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от xaizek

Было же год назад: Bosque Language от Microsoft

Ну, год назад убили C++, теперь опять нужно убивать плюсы, да что ж такое :(

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

Что мешает добавлять новые возможности, максимально оставляясь близким к Си?

Еще можно просто использовать только один компилятор C + всяких расширений по максимуму – clang вон в C позволяет перегрузку использовать (attribute_((overloadable))), а также всякие векторные расширения, statement expressions, совершенно новый язык получается, сохраняя при этом уют и доброту Православной Сишечки, которая другим языкам и не снилась.

anonymous
()

Совершенно очевидно, что это чисто эксперементальный проект, песочница. В любой корпорации их десятки. Но умственные калеки уже включили «юмор».

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

И до того, как меня Царь распнет, хочу отметить, что большинство из этих возможностей есть и в GCC (про ICC не знаю) откуда они собственно и пошли, но в clang’е временами покрасивее будет, хотя и GCC ниче так.

anonymous
()

/* Тяжко вздохнув... */

Ждём в Linux. И да, вносите царя… =)))

Ну а так, если без шуток, то С как был, так и останется, ибо альтернатив нет и близко не видно. А что там за пределами С, начиная с С++ и всяких Go-rust и иже с ними, это не так и важно. Ну чудить изволят в M$, чего бы не почудить за свои-то деньги? Пусть чудят. Помнится, с F# они тоже чудили, а чего-то его не видно особо как-то…

anonymous
()
Ответ на: /* Тяжко вздохнув... */ от anonymous

А что там за пределами С, начиная с С++ и всяких Go-rust и иже с ними, это не так и важно.

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

Не введи нас в искушение, но избавь нас от лукавого. Ибо Твоё есть Царь и Си и слава во веки. main().

Владимир

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.