アイキャッチ

プログラミング8言語の近況報告対談レポ【Java&Python、Ruby&Go、PHP&Perl、Dart&Swift】

ITニュース

法林浩之@jusがお届け!

UNIXエンジニア温故知新

UNIXが生まれてから半世紀。脈々とソフトウエアの進化を支えてきた技術は、どのようにして今に至るのか? そこから学べるものとは? 日本UNIXユーザ会「jus」の法林浩之さんが、イベントレポートを中心に「UNIXの今」をお届けします!

日本UNIXユーザ会(jus)の法林です。この連載では、jusの活動報告を通して、IT関連のさまざまな話題をお届けしていきます。お楽しみください。

今回は、2021年8月に開催した「Learn Languages 2021」の模様をお届けします。

イベント概要

・タイトル:Learn Languages 2021
・日時:2021年8月28日(土) 12:00-17:00
・会場:オンライン

Learn Languagesとは?

Learn Languages(通称:LLイベント)は、「複数のプログラミング言語を学ぼう」という趣旨のもとに開催しているイベントです。(2003年から毎年開催していたLightweight Languageイベントが前身で、2017年からLearn Languagesに改称して開催を継続)

昨年はコロナ禍のため開催を見合わせましたが、今年は初のオンラインイベントとして、オープンデベロッパーズカンファレンスの中で実施しました。

今年のプログラムは、8言語による近況報告と、最後にBoFという構成。この記事では、各セッションについて報告していきます。

Language Update: Java&Python

Javaはこの3年間にバージョンが11から17まで更新されましたが、現場では今でもJava 8や11の利用が多く、移行が難しいという声があります。

言語仕様に関する更新としてはswitch式やテキストブロックなど、その他の更新点としては新しいGCの追加やARM対応などが報告されました。

Javaの開発環境にも変化があり、近年はVisual Studio Codeの利用が急増しています。

Pythonは3.10が10月にリリースされる予定です(予定通り10月にリリースされました)。

今回の主な更新点としては、新しいパターンマッチングの文法が導入され、他言語と同様の書き方ができるようになること、型ヒントの拡充やエラーメッセージの改善などがあります。作者のGuidoさんによると、当分はPython 4の予定はなく、Python 3を更新していくとのことです。

Language Update: Ruby&Go

発表者

Ruby:まつもとゆきひろ @yukihiro_matz、遠藤侑介 @mametter
Go:辻大志郎(フューチャー株式会社)、伊藤真彦(フューチャー株式会社)
司会:鈴木嘉平

Rubyは2020年12月に、8年ぶりのメジャーバージョンアップとなるRuby 3.0がリリースされました。

主な更新点は、Numbered parameter、パターンマッチ、右代入、静的解析基盤の導入などです。Ruby 2系との互換性を重視していますが、それでもキーワード変数などいくつかの点で互換性のない変更もありました。また、Ruby 3は従来に比べて約3倍の高速化が図られました。

Goは半年ごとに新しいバージョンが出る決まりになっていて、この3年の間に1.11から1.17までがリリースされました。この間の主な更新点としては、パッケージ管理の仕組みの変化、それに伴うコマンドの挙動の変化、エラーハンドリングの進化、go:embed(Goのバイナリに静的ファイルを埋め込む機能)などがあります。

この他に、業務でGoを使うメリットや、Goを学ぶ方法が紹介されました。

Language Update:PHP&Perl

PHPは、現在サポート中のバージョンが7.3, 7.4, 8.0(最新版)で、近々8.1がリリースされる予定です(11月にリリースされました)。Linuxディストリビューションにはこれよりも古いバージョンが入っている場合も多いので注意が必要です。

近年はWeb以外の領域でのPHPの利用が増えており、クライアントアプリ、ミドルウエア、機械学習、IoTなどでの利用事例があります。また、最近のPHPプログラミングでは型を付けて開発することが一般的になってきているという話もありました。

Perlについては、まず長年Perl6として開発されてきたものがRakuに改名しました。別名の言語になりましたが、Perlコミュニティーとのつながりはまだあるようです。それから、Perl7を出すという発表をめぐってコミュニティー内で混乱が発生したため、ガバナンスが強化されました(Perl7は未リリース)。

Perl5の最新版は5.34で、try catch構文の導入や、複雑な構文を無効にできる機能などが盛り込まれています。

Language Update: Dart&Swift

発表者

Dart: 林尚之 @t_hyssh、えんどうやすゆき @eyasuyuki
Swift: 岸川克己(株式会社ヤプリ) @k_katsumi、Yuta Koshizawa(Qoncept) @koher
司会:前田薫

Dartについては、直近2年間の主な更新事項として、Non-Null By Default(NNBD)になったこと、type aliasの導入、フレームワークFlutter 2の公開などがありました。特にNNBDになったことは大きな変化で、これに関する話題に多くの時間が割かれました。

Dartも開発が進み、これからモバイルアプリを開発する人にとっても有力な選択肢の一つになるだろうとのことです。

Swiftの方は、Swift 5.5が近くリリースされるものと予想されています。今回の大きな更新点として並行処理の導入があります。特にSwiftでは、並行処理で起こりがちなデータ競合やデッドロックが発生しないようにコンパイラが保証してくれます。また、並行処理関連技術として、async/await, StructuredConcurrency, actorといったものの解説もありました。

レガシーアプリケーションをどうすればいいのか会議

司会:法林浩之

最終セッションは、レガシーアプリケーションとの向き合い方をBoF形式で議論。まずオンライン上にホワイトボードを用意し、参加者に体験談・悩み・ノウハウなどを記入していただきました。そして、セッションではそれらを見ながら話題を選び、参加者にコメントしてもらう形式です。

取り上げた話題のうち、悩みの類いとしては開発環境が古いとかドキュメントやテストツール、Excelで作られているなど、解決ノウハウとしては型解析ツールの導入やAPIの書き直し、notionの導入などがありました。

おわりに

今回のLanguage Updateは、オンラインイベントでは単独で発表するよりも2人で掛け合いにした方が視聴者が楽しめるのではないかというアイデアにより、各言語とも2人での発表をお願いしました。セッションの映像を見ると、その効果はあったように思います。

BoFは参加者からのコメントを上手に引き出すのが難しかったですが、オンラインになったことで今までできなかったような形式のセッションに挑戦できたことは価値があると思っています。

来年以降はどのような形式で実施するか分かりませんが、複数の言語を学ぶことの意義は薄れないと思うので、これからもこのイベントを継続していきたいと考えています。

イベントならびに発表内容についてさらに詳しく知りたい方は、Learn Languages公式サイトにぜひアクセスしてください!

プロフィール画像
   

法林浩之さん(@hourin

大阪大学大学院修士課程修了後、1992年、ソニーに入社。社内ネットワークの管理などを担当。同時に、日本UNIX ユーザ会の中心メンバーとして勉強会・イベントの運営に携わった。ソニー退社後、インターネット総合研究所を経て、2008年に独立。現在は、フリーランスエンジニアとしての活動と並行して、多彩なITイベントの企画・運営も行っている

Twitterをフォローしよう

この記事をシェア

RELATED関連記事

RECOMMENDEDあなたにオススメ

RANKING人気記事ランキング

JOB BOARD編集部オススメ求人特集




サイトマップ