~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 049B8212D3E52F0CC604EAAC1C2B265B__1712876880 ✰
Заголовок документа оригинал.:
✰ Ballerina (programming language) - Wikipedia ✰
Заголовок документа перевод.:
✰ Балерина (язык программирования) — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Ballerina_(programming_language) ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/04/5b/049b8212d3e52f0cc604eaac1c2b265b.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/04/5b/049b8212d3e52f0cc604eaac1c2b265b__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 10:06:03 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 12 April 2024, at 02:08 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Балерина (язык программирования) — Википедия Jump to content

Балерина (язык программирования)

Из Википедии, бесплатной энциклопедии
Балерина
Язык Балерины
Разработано Санджива Вираварана , Джеймс Кларк , Самира Джаясома, Хасита Аравинда, Шринат Перера, Фрэнк Лейманн и WSO2 [1]
Разработчик WSO2
Впервые появился 2017 ; 7 лет назад ( 2017 )
Дисциплина набора текста Структурный , сильный , статический , предполагаемый.
Язык реализации Java, Балерина, TypeScript [2]
ТЫ Кросс-платформенный
Лицензия Лицензия Апач 2.0 [3]
Веб-сайт балерина .что
Под влиянием
Java , Javascript , Go , Rust , C# [4]

Ballerina — это открытым исходным кодом общего назначения с язык программирования , разработанный WSO2 приложений облачной эпохи для программистов . [2]

Проект стартовал в 2015 году архитекторами из WSO2 как альтернатива на основе кода инструментам интеграции на основе конфигурации, таким как EAI , ESB и продуктам рабочих процессов. [5] [6]

Он имеет различные конструкции, ориентированные на облачную разработку, включая поддержку различных форматов данных и протоколов, надежности, распределенных транзакций, API и потоков событий. [7] [8] [9]

История [ править ]

Впервые о Ballerina было публично объявлено в 2017 году, а версия 1.0 была выпущена 10 сентября 2019 года. [10]

Дизайн [ править ]

Ballerina — это язык общего назначения со знакомым синтаксисом и прямым графическим представлением кода в виде диаграмм последовательности. Он содержит фундаментальные абстракции, призванные упростить программирование задач интеграции. [11] Ballerina была разработана WSO2 для повышения производительности разработчиков приложений, которым приходится работать с распределенными вычислениями . Его легко писать и модифицировать, и он подходит для прикладных программистов. [12] [13] [14]

Разработчики, которые создавали продукты для корпоративной интеграции более 10 лет, использовали свои знания отрасли при разработке языка. [15] [16] говорит директор WSO2 и основатель Ballerina Джеймс Кларк.

Примеры [ править ]

Привет, мир [ править ]

Обычная программа Hello World:

импорт   балерины  /  io  ; 

  общественная   функция   main  ()   { 
     io  :  println  (  «Привет, мир!»  ); 
  } 

Чтобы выполнить вышеуказанную программу, поместите исходный код в .bal файл и укажите путь к файлу bal run команда.

$  балерина   запустить   hello_world.bal 
  Привет, мир! 

Сервисная версия программы Hello World:

импорт балерины/http;

 сервис/приветствие нового http:Listener(9090) {
     функция ресурса получить.  () возвращает строку {
         вернуть «Привет, мир!»;
     }
 }
 

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

$  curl   http://localhost:9090/greet  
 Привет, мир! 

[17]

REST API [ править ]

импорт   балерины  /  http  ; 

  сервис   на   новом   http  :  Listener  (  9090  )   { 
     resource   function   post   Factorial  (  @http  :  Payload   string   payload  )   возвращает   http  :  Ok  |   http  :  BadRequest   { 
         int  |  ошибки    номер   =   int  :  fromString  (  полезная нагрузка  ); 

          если   num    ошибка   { 
             return   <  http  :  BadRequest  > {  body  :   «Недопустимое целое число: «   +   полезная нагрузка  }; 
          } 

         if   num   <   0   { 
             return   <  http  :  BadRequest  >{  body  :   "Целое число должно быть >= 0"  }; 
          } 

         Int   результат   =   1  ; 

          foreach   int   i   in   2   ...   num   { 
             result   *=   i  ; 
          } 

         return   <  http  :  Ok  >{  body  :   result  }; 
      } 
 } 
$  curl   http://localhost:9090/factorial   -d   5 
 120 

GraphQL API [ править ]

импортировать   балерину  /  graphql  ; 

  сервис   /  акции   на   новом   графике  :  Listener  (  4000  )   { 
     resource   function   get   quote  ()   возвращает   StockQuote   { 
         return   { 
             тикер  :   "EXPO"  , 
             цена  :   287,5  , 
             открытие  :   285  , 
             предыдущее закрытие  :   285,5  , 
             минимум  :   276,25  , 
             максимум  :   297 
         }; 
      } 
 } 

 введите   StockQuote   запись   {  | 
      строковый   тикер  ; 
      плавающая   цена  ; 
      плавать   открытым  ; 
      плавать   предзакрыть  ; 
      плавать   низко  ; 
      плавать   высоко  ; 
  |   }; 
$  curl   -H   "Тип контента: application/json"   -d   '{"query": "{ quote { тикер, цена } }" }'   'http://localhost:4000/stocks'  
 {"data":{ "quote":{"тикер":"ЭКСПО", "цена":287.5}}} 

Диаграмма последовательности [ править ]

Сгенерированная диаграмма последовательности является каноническим представлением исходного кода. Эти два представления могут использоваться взаимозаменяемо. Поддержка диаграмм осуществляется через плагин Ballerina VS Code. Ниже приведены несколько таких сгенерированных диаграмм последовательности в сравнении с соответствующим кодом.

Пример программы для получения и обработки данных о COVID-19:

Пример программы для создания отчета на основе данных запроса на включение, полученных с GitHub:

Поддержка JSON [ править ]

Язык обеспечивает поддержку работы со значениями JSON. Встроенный тип json определяется как следующее объединение: ()|boolean|int|float|decimal|string|json[]|map<json>

импорт   балерины  /  io  ; 

  public   function   main  ()   возвращает   ошибку   { 
     // Синтаксис значений объекта `json` очень похож на синтаксис JSON 
     json   person   =   {  name  :   "John Doe"  ,   age  :   25  }; 

      // Сериализованные значения `json` соответствуют спецификации JSON 
     io  :  println  (  person  ); 

      // Доступ к полям значения `json` можно получить следующим образом: 
     string   name   =   check   person  .   имя  ; 
      int   age   =   проверить   человека  .   возраст  ; 
  } 

Код для облака [ править ]

Артефакты Docker и Kubernetes, необходимые для развертывания кода в облаке, могут быть созданы при создании кода. Значения, необходимые для этих артефактов, извлекаются из кода. Кроме того, можно переопределить эти значения, используя Cloud.tomlфайл. Чтобы включить генерацию облачных артефактов, пользователи могут использовать cloud вариант сборки в Ballerina.tomlфайл. Использовать docker сгенерировать только образ Docker и файл Dockerfile и использовать k8sдля создания артефактов Kubernetes. Минимальный образец файла конфигурации TOML будет выглядеть примерно так:

Ballerina.toml файл:

[пакет] 
 дистрибутив   =   "2201.0.0" 

 [параметры сборки] 
 облако  =  "k8s" 

Cloud.toml файл:

[container.image] 
 репозиторий  =  "bal_user" 
 name  =  "greet" 
 tag  =  "v0.1.0" 

Рабочие [ править ]

импорт   балерины  /  http  ; 
  импортная   балерина  /  яз  .   '  инт  ; 
  импорт   балерины  /  io  ; 

  // Рабочие взаимодействуют друг с другом, отправляя и получая сообщения. 
  // Ballerina проверяет каждое взаимодействие работника (отправка и получение) 
 // во избежание взаимоблокировок. 
  общественная   функция   main  ()   { 
     @strand   {  thread  :   "any"  } 
     worker   w1   { 
         int   w1val   =   checkpanic   Calculate  (  "2*3"  ); 
          // Асинхронно отправляет сообщение рабочему `w2`. 
          w1val   ->   w2  ; 
          // Получает сообщение от работника `w2`. 
          int   w2val   =   <-   w2  ; 
          io  :  println  (  "[w1] Сообщение от w2: "  ,   w2val  ); 
          // Синхронно отправляет сообщения рабочему `w3`.   Рабочий `w1` будет ждать 
         // пока рабочий `w3` не получит сообщение. 
          w1val   ->   w3  ; 
          w2val   ->   w3  ; 
          // Сбрасывает все сообщения, отправленные асинхронно рабочему `w3`.   Рабочий 
         // остановится на этом этапе до тех пор, пока не будут отправлены все сообщения или пока рабочий `w3` 
         // не выйдет из строя. 
          checkpanic   флеш   w3  ; 
      } 

     // Рабочий может иметь явный тип возвращаемого значения или, если тип возвращаемого значения не указан, 
     // это эквивалентно возврату (). 
      @strand   {  thread  :   "any"  } 
     worker   w2   { 
         int   w2val   =   checkpanic   Calculate  (  "17*5"  ); 
          // Получает сообщение от работника `w1`. 
        int   w1val   =   <-   w1  ; 
          io  :  println  (  "[w2] Сообщение от w1: "  ,   w1val  ); 
          // Асинхронно отправляет сообщение рабочему `w1`. 
          w1val   +   w2val   ->   w1  ; 
      } 

     рабочий   w3   { 
         int  |   ошибка   w1val   =   <-   w1  ; 
          интервал  |   ошибка   w2val   =   <-   w1  ; 
          io  :  println  (  "[w3] Сообщения от w1: "  ,   w1val  ,   ", "  ,   w2val  ); 
      } 

     // Ожидает завершения выполнения рабочего `w1`. 
      подожди   w1  ; 
  } 

 Функция   расчета  (  строковое   выражение  )   возвращает   int  |   ошибка   { 
     http  :  Client   httpClient   =   проверить   новое   (  "https://api.mathjs.org"  ); 
      строковый   ответ   =   проверьте   httpClient  ->  get  (  string   `/v4/?expr=${expr}`  ); 
     возврата    проверка   '  int  :  fromString  (  ответ  ); 
  } 

[18]

Ссылки [ править ]

  1. ^ «Спецификация языка балерины» . WSO2. Архивировано из оригинала 11 августа 2020 г. Проверено 24 апреля 2020 г.
  2. ^ Перейти обратно: а б Участники открытого исходного кода (18 июня 2019 г.). «Исходный код Балерины» . Гитхаб .
  3. ^ «WSO2/ЛИЦЕНЗИЯ» . github.com . ВСО2 . 08.03.2017 . Проверено 01 марта 2018 г.
  4. ^ «Балерина. Современный язык программирования, ориентированный на интеграцию» (PDF) : 15. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  5. ^ «Язык программирования микросервисов Ballerina: представляем последнюю версию и Ballerina Central » . ИнфоQ . Проверено 7 июня 2018 г.
  6. ^ Эрлз, Алан (01 марта 2019 г.). «Как Ballerina выглядит как облачный язык программирования?» . Проверено 23 июля 2019 г.
  7. ^ Дойл, Керри. «10 лучших языков программирования для изучения в 2020 году» . Проверено 16 сентября 2020 г.
  8. ^ Поста, Кристиан. «Эволюция интеграции и микросервисов с Service Mesh и Ballerina» . YouTube . Проверено 24 июля 2019 г.
  9. ^ Сотрудники Техмир. «Лучшие языки программирования, которые стоит попробовать» . Техмир . Проверено 7 июня 2018 г.
  10. ^ «Ballerina заново изобретает облачное промежуточное ПО как язык программирования» . GlobeNewswire (Пресс-релиз). 10 сентября 2019 года . Проверено 16 сентября 2020 г.
  11. ^ Ратнаяке, Дакшита. «Балерина Лебединое озеро: 10 убедительных характеристик языка для облачного программирования» . ИнфоQ . Проверено 1 марта 2022 г.
  12. ^ Джексон, Иоав. «Балерина: первый язык программирования, ориентированный на API» . Новый стек . Проверено 11 июня 2018 г.
  13. ^ Форемски, Том (01 марта 2019 г.). «Технологии и искусство: слава балерины, компьютерного языка интеграции» . Проверено 14 июля 2019 г.
  14. ^ Лоутон, Джордж (01 ноября 2018 г.). «Язык балерины обещает улучшить интеграцию приложений» . Проверено 23 июля 2019 г.
  15. ^ Кларк, Джеймс. «Язык программирования Ballerina. Часть 0 — Контекст» . Проверено 16 сентября 2020 г.
  16. ^ Кларк, Джеймс. «Язык программирования Ballerina. Часть 1. Концепции» . Проверено 16 сентября 2020 г.
  17. ^ Команда «Балерины» (16 сентября 2020 г.). «Привет, всемирный сервис» . ballerina.io. Архивировано из оригинала 16 сентября 2020 года . Проверено 16 сентября 2020 г.
  18. ^ Команда «Балерины» (16 сентября 2020 г.). «Рабочее взаимодействие» . ballerina.io.

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 049B8212D3E52F0CC604EAAC1C2B265B__1712876880
URL1:https://en.wikipedia.org/wiki/Ballerina_(programming_language)
Заголовок, (Title) документа по адресу, URL1:
Ballerina (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)