Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@usk81

Ballerinaとお付き合いをはじめたので軽く紹介してみる

More than 1 year has passed since last update.

この記事はパーソルキャリア Advent Calendar 2018の1日目です。

ballerinaとは

誤: こちらではありません
ballerina.png

正: プログラミング言語です
ballerina-logo.png

Ballerinaは Cloud Native Programming Language を謳い文句にした、ウェブサービスを作るためのプログラミング言語です。

Ballerina is a simple programming language whose syntax and platform address the hard problems of integration. It is a general purpose, concurrent, transactional, statically and strongly typed programming language with both textual and graphical syntaxes. Its specialization is integration - it brings fundamental concepts, ideas and tools of distributed system integration into the language and offers a type safe, concurrent environment to implement such applications. These include distributed transactions, reliable messaging, stream processing, workflows and container management platforms.

簡単に言うと

みんながWebアプリケーションを作るときに使っているstreamingとかContainerとかそういうものを詰め合わせて簡単に作れるようにしたよ

っていうこと

ballerinaでできること / できないこと

できること

  • 簡単にAPIが実装できる
  • すぐにgRPCの実装ができる
    • gRPCが標準パッケージ化されている
  • 外部ツール無しでswaggerのドキュメントをImport/Exportできる
    • 標準機能です
  • 外部ツール無しでAPIドキュメントできる
    • 標準機能です
  • ソースコードをいじらずにプログラミングできる
    • このあとで説明しますが、IDEを使うとビジュアルプログラミング的なことができる
  • 外部ツール無しでテストできる
    • ここらへんはGoなど最近の言語と同じでテストツールが同梱されているので、Ballerina単体でテストが可能です

できないこと

  • ローカルで実行するコマンドラインツールなどの開発
    • Cloud上でAPIでリクエストされて動くもの作成することを想定しているため
  • APIハンドラのファイル分割
    • 1ファイルを読み込んで、runしたり、buildしたりすることが想定されているようなので、出来なさそうです。
    • もちろん共通処理をライブラリ化して、読み込むということはできます

おすすめ機能: ダイアログ

IDE(VSCodeもしくはIntelliJ IDEA)を使うと、公式プラグインで、IDE上に処理のダイアログ図を表示することができます。
このダイアログの面白いところは、コードを修正するとリアルタイムにダイアグラムに反映されるだけでなく、ダイアログを修正することでコードもリアルタイムに修正されます。

たとえば、ダイアログの面白い使い方として、考えられるのは、
アジャイルのスプリントレビューなどで、プログラマじゃない人たちにプログラムを見せて、処理上問題がないか判断してもらうことは困難だと思います。
ですが、ballerinaはダイアログでグラフィカルに表示されるので、それを見せながら説明することで、ビジネスロジックに問題がないかを確認することは、今までよりも用意になるのではないでしょうか?
さらに、簡単な修正であれば、ダイアログを少しいじるだけで修正できるので、その場で直して再度確認ということもできます。

作った機能は、ballerina run xxx.bal(作ったファイル) で実行することでサーバが立ち上がりすぐに確認することもできます。

diagram.png

インストール

現在、安定版(0.983.0)をMacにインストールするといろいろ正常に動かなかったりするようなので、通常のインストールとバージョン指定でインストールする方法を記載します

通常の手順

Homebrewもあるのですが、インストール時にうごくshellがHomebrewの不具合で正確に動かないものがあるらしいので、おすすめしません。
https://github.com/ballerina-platform/ballerina-lang/issues/12099

  1. 公式サイト( https://ballerina.io/downloads/ )にアクセスして、インストーラをダウンロードします。
  2. ダウンロードしたインストーラを実行します
  3. ballerina version で正常にバージョンが表示されたら完了です
  4. 以降VSCodeの設定です
    1. VSCodeを開きます
    2. 拡張機能で、ballerinaを検索すると公式のプラグインが検索できるので、それをインストールします
    3. VSCode再読込するように言われるので、再読込します
    4. VSCodeで基本設定 > 設定 > 拡張機能でballerinaの設定を確認します
    5. ballerina.homeが設定されていなかったら設定してください
ballerina.home
/Library/Ballerina/ballerina-(インストールしたバージョン)

安定版に異常があるとき

バージョン指定して、インストールする場合の手順になります。

  1. 公式サイト( https://ballerina.io/downloads/archived/ )にアクセスして、過去バージョンのインストーラをダウンロードします。
  2. ダウンロードしたインストーラを実行します
  3. ballerina version で正常にバージョンが表示されたら完了です
  4. 以降VSCodeの設定です
    1. 公式サイト( https://ballerina.io/downloads/archived/ )にアクセスして、先程インストールしたバージョンと同じバージョンのVSCodeプラグイン( ballerina-vscode-plugin-(インストールしたバージョン).vsix )をダウンロードします
    2. ダウンロードしたvsixをインストールします
    3. VSCodeを開きます
    4. VSCode再読込するように言われるので、再読込します
    5. VSCodeで基本設定 > 設定 > 拡張機能でballerinaの設定を確認します
    6. ballerina.homeが設定されていなかったら設定してください
vsixのインストール
code --install-extension ~/Downloads/ballerina-vscode-plugin-(インストールしたバージョン).vsix

VSCodeで意図的に古いバージョンのvsixを入れると、VSCode開いたあとで勝手にバージョンあげようとするんだけど、これはバグではないのかな、マイクロソフトさん?

ballerina.home
/Library/Ballerina/ballerina-(インストールしたバージョン)

Appendix

Qiitaで一部意訳してる記事を見つけたので、記載しておきます
https://qiita.com/shinshin86/items/e4361ff08737cac9533d

4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
usk81
お仕事内容:プログラマ & たまにインフラ & SEOラングラー & データアナリスト & データサイエンティスト見習い & バリスタじゃないけど、コーヒー淹れる人 & 農家から買い付けて日本茶淹れる人

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?