caterpillar 積分 2 編輯於

前陣子一個放了一年還沒解的 ISSUE,其實真的有種「就這樣了嗎?」的感覺,也曾想直接把 ISSUE 關掉不理它的想法…

後來是有空就想一下,有空就看一下,直到前陣子玩 WebGL 時又補了一些 3D 的知識,才突然有了靈感…

就像文中談的,需要角色轉換,也需要時間!

#就很小眾的程式庫 #才第二個ISSUE就讓我卡關了

caterpillar 積分 2 編輯於

JEP 12: Preview Language and VM Features1

看來是會變動,要開 --enable-preview 才能用的語法。

caterpillar 積分 0

雕 Duke 好簡單的!反倒是練習拆件花了不少時間。

caterpillar 積分 0

一直覺得之前寫的龍只是概念驗證,沒想到可以直接用上。

caterpillar 積分 1 編輯於

最近試著結合 OpenSCAD 與 3D 雕塑軟體,這是練習品,順便練模型塗裝。

雕塑時的設想對象其實是 我女兒的人設1

caterpillar 積分 4 編輯於

Java 9 廢棄了 finalize 方法,FileInputStream 等也清空了 finalize 方法的實作,改用 PhantomReference 的機制,JVM 有個執行緒會監控 Reference,在實例不再被參考時,呼叫 close 方法。

至於相容性的部份,若有 FileInputStream 的子類,且自定義了 close 方法,實例化時會有個 AltFinalizer 產生,AltFinalizer 建立時會包裹 FileInputStream,AltFinalizer 的作用就是等著被回收時,呼叫自定義的 finalize 方法(被加了 @SuppressWarnings("deprecation")),其中呼叫了 FileInputStream 的 close 方法。

繞來繞去的 ...

caterpillar 積分 0 編輯於

OpenSCAD 產生龍,再進 SculptGL 進行 3D 雕塑,算是把之前寫過的龍原型做了個應用。

caterpillar 積分 1

土炮 Toy - 模組的實現方式也做了點記錄了,在整個回顧與記錄的過程,也順便看了不少語言實現的資料,土炮的不足是絕對的,然而過程卻是必要的!下次又要實作語言會是什麼時候呢?…XD

caterpillar 積分 1 編輯於

ToyLang 原型想試作的都完成了,包括變數、基本流程、一级函式、lambda expression、類别、繼承、mixin、meta programming 基礎 API 等,以及一些簡單的語法、變數除錯訊息,有興趣可以看看,可以當入門語言實作參考。

改天再來寫點文件,聊 ToyLang 語法以及實現概念。

caterpillar 積分 3 編輯於

差別主要在於有沒有可參考的 self instance(無論是 Python 明確的 self 或 Java 隱含的 this)。

像 Python 或 JavaScript 可以指定 self instance 的語言中,區分方法與函式就沒什麼意義,高興怎麼叫就怎麼叫(Java 也可以透過 Reflection 來做)。

就語言實作層面來說,其實都類似,都是變數查找之類的,看是要明確的 self 或隱含地在環境物件之類的東西中找。

caterpillar 積分 3 編輯於

Simon Ritter 留言中有重要資訊…XD

The points you make on the LTS releases are all correct. However, you're missing one very big point: the updates will only be available for customers with a commercial support contract from Oracle. Public updates for JDK 11, like those of all other release from JDK 9 onwards will stop after six months when the next version is released. This will have a big impact on deployments of Java where access to security and bug fixes is an issue.

只有簽合約的才拿得到 LTS 的維護更新!

caterpillar 積分 0 編輯於

不少人看似認為 Flux 是 Servlet Stack 的取代物,然而根本上是兩套不同的模型。

However, working with the reactive stream involves a bit of learning curve and ensuring that no developer ends up calling block(). Another deal breaker might be the lack of reactive database drivers. JDBC is inherently blocking and very few other databases like MongoDB, Cassandra support reactive drivers officially at this point.

caterpillar 積分 1 編輯於

不是指純寫 Servlet,而是指 Servlet API,掛一層 Jersey/Spring,還是看到不少人搞不出 HttpSession、ServletContext 等的一些對應功能,然後縮回去直接搞 HttpSession、ServletContext … 基本上 Jersey/Spring 這類抽象層都想或有對應的方案,不過有時麻煩,有時藏在某些地方找不到,有時是心智模型還是掛在 Servlet Container,經驗上難以脫離(新生代若完全沒有或不用接觸 Servlet 容器,大概會比較沒這困擾) …

caterpillar 積分 1 編輯於

若可以屏壁 Java EE,就算只是 Servlet API,基本上有很多人會很開心(也許他們並不清楚為什麼開心),雖然 Web Flux 目的並不在為了取代 Servlet(這野心也太小)。

或許多數人也舉不出 JSP/JSF 的問題在哪,大概只是純 Server Page 越來越不重要的投射居多。