kagamihogeの日記

kagamihogeの日記です。

JEP 335: Deprecate the Nashorn JavaScript Engineをテキトーに訳した

http://openjdk.java.net/jeps/335

JEP 335: Deprecate the Nashorn JavaScript Engine

Owner    Jim Laskey
Type    Feature
Scope   JDK
Status  Closed / Delivered
Release 11
Component   core-libs / jdk.nashorn
Discussion  jdk dash dev at openjdk dot java dot net
Effort  S
Reviewed by Alex Buckley, Brian Goetz, Dalibor Topic
Endorsed by Mark Reinhold
Created 2018/05/08 14:23
Updated 2018/07/17 11:21
Issue   8202786

Summary

Nashorn JavaScriptエンジンとAPIおよびjjsツールを、将来リリースでの削除を明示するため、非推奨化します。

Motivation

Nashorn JavaScriptエンジンはRhinoの置き換えとして、JEP 174を通し、最初はJDK 8で組み込まれました。リリース当初、これはECMAScript-262 5.1標準の完全な実装でした。

ECMAScriptの言語要素とAPIは極めて速いペースで修正され、Nashornのメンテナンスに負荷がかかるようになりました。

Non-Goals

非推奨化はjavax.script APIに何らの影響も与えない。

Description

二つのJDK modulesを最終的に非推奨化して@Deprecated(forRemoval=true)を付与します。

  • jdk.scripting.nashorn -- jdk.nashorn.api.scriptingjdk.nashorn.api.treeを含む。
  • jdk.scripting.nashorn.shell -- jjsツールを含む。jjs実行時にwarningを表示する。
Warning: The jjs tool is planned to be removed from a future JDK release.

型とモジュールの実際の削除は将来のJDKリリースで別のJEPとして提案します。

Alternatives

代替案は、信頼できる開発者がNashornのメンテナンス続行を表明することです。このJEPが組み込まれる前に表明があれば、差し戻します。組み込み後だがNashornの削除前の場合、それ以降のJEPで非推奨化をリバートします。

Risks and Assumptions

Nashorn削除のリスクは、JavaScriptが存在する前提の特定のアプリケーションが動作しなくなる恐れがあります。Nashorn使用の程度の把握は容易ではありません。Nashorn使用の実態をよりよく把握するため、フィードバックをお願いします。

アトラス作品ファンのオフ会 眼鏡祭 眼鏡祭10周年記念会(2018/11/10)に行ってきた

11/10 眼鏡祭 眼鏡祭10周年記念会を普段通り開催する会 - Twipla に行ってきました。

f:id:kagamihoge:20180407142821j:plain

*1

眼鏡祭はペルソナを初めとしたアトラス作品ファンの大規模なオフ会です。開催は今回で10周年となり、今回も200人近くの参加者が集まりました。当日はとても過ごしやすい陽気で、薄手の服装でも十分なほど暖かい一日でした。場所はキリストンカフェ東京を貸し切っての開催です。

ペルソナなどアトラス作品のコスプレOKなオフ会

眼鏡祭の特徴はコスプレOKなオフ会な点です。雰囲気を知るには毎回恒例のコスプレ参加者全員の集合写真を見るのが手っ取り早いです。

どの作品のコスプレが多いかはその時々のトレンドもありますが、個々の参加者それぞれが思い思いのチョイスをするので毎回バラエティに富み、何度見ても飽きません。今回開催時のトピックとしては、P5の熱狂も落ち着き、P3D&P5Dを経て、P5Aの放映も一息ついた段階です。とはいえP5の人気はまだまだ高かったです。

今回は視線を引き付ける組み合わせがありました。「プレイステーション クラシック」に「女神異聞録ペルソナ」収録決定! - ペルソナチャンネル の発表があったからなのかは分かりませんが、相当に古い作品にもかかわらず、同作品のコスプレ参加者が多数みられました。ともあれ、新旧様々な作品のコスプレが集まるのが眼鏡祭の特徴の一つです。

コスイベではなく、コスプレもできるオフ会

眼鏡祭は、コスプレが目立ちがちではありますが、オフ会です。このイベントレポート内では「コスプレ」としていますが、眼鏡祭としては「仮装」と表現しています。その意図はコスプレの心理的なハードルを下げ、交流のツールとして使いやすくするためです。

人を集めて、さぁコミュニケーションを、と言われても困りものです。しかし、それぞれが好きなキャラや作品のコスプレをしていると「ジョーカー格好良いですね」「私も荒垣先輩が好きで」と、自然に話の切欠が生まれます。また、昨今オタク向けの趣味もアニメ・マンガ・ゲームが幅広くありますが、何かしら好きなものが同じであれば他にも共通の推しやら何やらがあることも多いものです。

そのため眼鏡祭では「仮装」をオススメしています。難しく考えず、ハロウィンでちょっとした被り物をするノリです。普段は付けられないアクセサリー類をカバンにじゃらりと下げてみるとか、その程度で十分です。これが私の好きなものとアピールしたり、会場の人数にひるまないようテンションを上げるためにつけたり……自分に出来る範囲で楽しむ工夫をするのはそれはそれで楽しいものです。

毎回1~2割は「はじめまして」

200人も集まるオフ会にいきなり行くのはかなりの勇気パラメータが必要です。にも関わらず、驚くべきことに毎回1~2割は初参加者です。これは運営スタッフの努力の結晶で、初参加者のストレスをなるべく減らすべく、様々な工夫を凝らしているためです。

眼鏡祭の流れはいきなり200人の混沌に放り込む事はせず、まずは事前に割り振られた7-8人グループのテーブルに向かいます。ここでスタッフから細々とした説明を受け、少人数でのコミュニケーションから始めます。乾杯後は自由行動で、初期グループで気が合えばそこに居てもいいし、お目当てのキャラを探しに行ってもいいです。なお、このテーブル配置は「初めてで不安なので知り合い同士で同じグループを」と事前に運営に伝えれば、可能な限り配慮をして頂けます。

なお、眼鏡祭はいわゆるコスプレイベントではありません。よって、写真撮影は被写体の許可を得ること、twitterなどSNSへのアップの際も許可を取ること、などオフ会ゆえのルールが幾つかあります。会場が通常営業時はレストランなので照明は必ずしも十分ではなく、更衣室も一部を暗幕等で仕切っただけ、などコスプレを目当てに来ると肩透かしになるかもしれません。

それで実際のところ初参加で楽しめるのか……どうなの? は初参加者のtweetをピックアップするのが一番でしょう。

有志スタッフの情熱が支える眼鏡祭

眼鏡祭はイベント会社が開催するのではなく有志スタッフによる運営です。

上記二つは運営スタッフの尽力のピックアップです。設営は眼鏡祭向けにテーブルや椅子の配置変更と原状復帰、女子更衣室は着替えの時間管理や物品管理など。こちらは参加者の目に見えやすい箇所ですが、これ以外にも様々なところに運営スタッフが関わっています。

何しろ200人を一日動かすイベントなので、これに必要な作業は多岐に渡ります。有志スタッフは常に募集しているので主催のtwitterhttps://twitter.com/muscle_bomber/)に問い合わせてみて下さい。参加してみて、眼鏡祭を良くしたい・続けたい、と感じてスタッフを始めた方は沢山います。眼鏡祭に感謝の気持ちを伝える方法として、有志スタッフに手を挙げるのも一興でしょう。

眼鏡祭から自分なりの「コープ」を作る

眼鏡祭だけで知り合いを増やすのは相当なコミュニケーション強者でないと難しいです。その理由は、200人居る上にコスプレしていると誰が誰なんだか覚えられないのが主因です。よって、オフの眼鏡祭で切欠を作り、オンのtwitterで交流、そしてオフの別のイベントにも顔を出してみる、を主宰はオススメしています。

たとえば、以下は眼鏡界隈が集まる飲み会で、眼鏡祭初参加の方はとりあえず行ってみるのが良いでしょう。

さいごに

主催のマソーさんはじめ運営スタッフの皆さん、当日俺の話し相手になって頂いた方、常連顔なじみの皆さんなど、今回も非常にたのしい一日を過ごすことが出来ました。また、この日記を書くにあたり、眼鏡祭の雰囲気を伝えるには極めて効果的なため、沢山のツイートを引用させて頂いた方*2にも感謝致します。

URL一覧

*1:この写真は以前の眼鏡祭の写真ですが、twitter投稿時の見栄えを良くするためです。今回写真を撮り忘れました……

*2:問題があれば面倒ですが https://twitter.com/kagamihoge にお願いします。

JEP 336: Deprecate the Pack200 Tools and APIをテキトーに訳した

http://openjdk.java.net/jeps/336

JEP 336: Deprecate the Pack200 Tools and API

Author   Kumar Srinivasan
Owner   Henry Jen
Type    Feature
Scope   SE
Status  Closed/Delivered
Release 11
Component   tools
Discussion  jdk dash dev at openjdk dot java dot net
Effort  S
Duration    S
Reviewed by Alex Buckley, John Rose
Endorsed by John Rose
Created 2018/04/04 17:11
Updated 2018/10/12 00:50
Issue   8200752

Summary

pack200unpack200ツール、およびjava.util.jarPack200 APIを非推奨にします。

Motivation

Pack200はJARファイルの圧縮スキーマです。JSR 200によりJava SE 5.0にて導入されました。その目的は、"Javaアプリケーションのバッキング・送信・配布によるディスクと帯域の削減"、です。開発者はpack200unpack200のツールペアを使用し、JARファイルの圧縮展開を行います。APIjava.util.jarです。

Pack200の非推奨(最終的には削除)の理由は三つあります。

  1. 過去、56kモデムでJDKダウンロードが遅いことはJavaを使い始める際の障害となっていました。度重なるJDKの機能拡張でダウンロードサイズを肥大化させると、更なる障害となりました。Pack200でJDKを圧縮することは問題の緩和になりました。しかし、時が経ち、ダウンロード速度は改善し、JDK 9でJavaランタイム(JEP 220)とランタイムのビルドに使うモジュール(JMOD)用の新しい圧縮スキーマが導入されました。JDK 9以降はPack200に依存しません。よって、JDK 8は、ビルド時にpack200で圧縮してインストール時にunpack200で展開される、最後のリリースになります。つまり、Pack200の主要な使い手である、JDK自身が、必要としなくなりました。
  2. JDKの外の世界では、特にアプレットで、Pack200によるクライアントアプリケーションの圧縮は惹かれるものがありました。Oracleのブラウザプラグインなど、ある種のデプロイメント方法は自動的にアプレットのJARを展開します。しかし、クライアントアプリケーションの世界は変わり、大半のブラウザはプラグインサポートを止めています。そういう訳で、Pack200の使い手の主要クラスである、ブラウザ上のアプレットが、JDKでPack200を持つ理由にはならなくなりました。
  3. Pack200は複雑で緻密な技術です。ファイルフォーマットクラスファイルフォーマットJARファイルフォーマットに密結合しており、どちらもJSR 200では予期しない方向へと進化しました。(例えば、JEP 309はクラスファイルフォーマットにconstant pool entryの新しい種類を追加し、JEP 238はJARファイルフォーマットにversioning metadataを追加しました。)JDKの実装はJavaとネイティブコードに分かれており、メンテナンスは困難です。java.util.jar.Pack200APIJava SE Platformのモジュール化(modularization)にとって有害になったため、Java SE 9での4つの削除メソッドとなりました。つまり、Pack200のメンテナンスコストが極めて高くなり、Java SEとJDKにこれを含める利点を上回っています。

Description

java.baseモジュールの三つの型を非推奨にし、@Deprecated(forRemoval=true)を付与します。

  • java.util.jar.Pack200
  • java.util.jar.Pack200.Packer
  • java.util.jar.Pack200.Unpacker

pack200unpack200ツールを含むjdk.packモジュールも同様に非推奨にします。

pack200unpack200を実行するとツール削除を予定している旨の警告を表示します。jar -cをサブオプションnnormalize the archive)で実行するとサブオプション削除を予定している旨の警告を表示します。全三つのツールのドキュメントには非推奨化と削除予定を記述します。

型とモジュールの実際の削除はこれとは別のJEPを提出し、将来のJDK feature releaseで行います。

Risks and Assumptions

アプリケーションJARの縮小にpack200を使う開発者はjlinkに移行する、と想定しています。jlinkは最適化されたフォームファクタ(optimized form factor)でアプリケーション固有のランタイムを作成するツールです。tool documentationJEP 282を参照してください。別の選択肢としてjpackagerもありえます。(draft JEP