---
# System prepended metadata

title: 論文調査
tags: [Tsukuba Univ, PRO143]

---

###### tags: `PRO143` `Tsukuba Univ`

# 論文調査
## ブラウザがJava Appletのサポートをやめた理由
https://www.infoq.com/jp/news/2021/05/end-of-applets/
- Javaで書かれているため、専門的なプログラマー以外には難易度が高い
- 動画やベクター描画の処理が苦手だった

https://www.infoq.com/jp/news/2021/05/end-of-applets
- Java Appletはもともと、ブラウザの性能が低く、アプリケーションを開発するための標準が少なかった時代に使用された
- 最新のブラウザ標準以前は、ファイル転送や認証、JavaScriptが処理できなかったその他のケースなどを補うために使用されてきた

## BJVMはOSなのか
ちがいます
- ファイルシステムやソケット通信を提供しているわけではない
- マルチスレッディングにも対応していない
    - 以下のいずれでも言及されている
    - ref. [Doppio](https://plasma-umass.org/doppio-demo/)
    - ref. [Browsix](https://browsix.org/)

そもそもBJVMはブラウザ上で動作させることを念頭としている
- DoppioやBrowsixはWebブラウザ上であるという環境をうまく生かし切れていない
    - DOMの操作ができるように拡張できればいいのでは
    - 「拡張JVM」のような位置づけ

**調査**
- 「ブラウザは環境」というときの「環境」は多義的
    - OS？仮想マシン的？
    - DoppioやBrowsixの関連研究のAbstractを読んでおく
    - "言語" + 実行系
        - 今回の目的に合うようなものはまだないだろう

## DOM操作に特化したような先行研究
- GWT
    - [Wikipedia](https://ja.wikipedia.org/wiki/Google_Web_Toolkit)
    - JavaでWeb用Ajaxアプリケーションを開発するためのフレームワーク
    - GWTクラスコンパイラJavaからJavaScriptへの変換を行う
    - 以下の二つのモードで動作する
        - ホステッドモード：JavaバイトコードとしてJJVM上で動作する　開発中のデバッグなどで使用する
        - ウェブモード：JavaScriptとHTMLとして動作する　開発完了後に使用する

![](https://i.imgur.com/fAxPEjo.png)

- thymeleaf
    - [公式サイト](https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf_ja.html)
    - Javaサーバーサイドテンプレートエンジン
    - RubyでいうERB的なもの
    - BJVMとは異なり、JavaをWebブラウザ上で動作させるわけではない