Java(或者python,perl)軟件方案deploy的歷史回顧。

n
netghost
楼主 (未名空间)

deploy這件事情看起來簡單,但的確是大部分Java方案的頭痛的地方:到底怎麼
deliver?如果同時還要deliver JVM那麼所謂編譯一次到處運行就成了一個笑話,所以早年當Java程序員還有點堅持的時候就是直接deliver Jar的,但是結果當然也知道了
,就是無窮無盡的煩惱。不僅各個操作系統JVM有不兼容的問題,JVM不同版本也有不兼容的問題,此外還有M$這種和你搗亂的JVM存在。所以很長一段時間,Java就是慢,崩
的代名詞,很多時候都不一定是Java程序員的問題,而是廚師放的是醬油,但是擋不住別人賣給你的醬油裏面裝的是醋。

所以到某個點上,Java開發人員也知道死要面子活受罪沒有意義,所以就就和jar一起
shipjvm。但是jvm一般來說有一堆東西,並不是簡單copy幾個文件就完了的,同時因爲Java開發團隊一般都對Unix的系統瞭解不多,所以怎麼分發這件事情就成了巨大的麻煩每個系統的底層庫的問題都可以造成jvm的問題,而且要解決這個問題,只會寫Java是沒
有任何辦法的。雖然其實UNIX下面早就有標準接口可以解決這個問題:只要你知道編譯鏈接的原理,會寫幾行C和shell。

直到docker這個東西出來了,這些人立刻就像撿到了寶貝,因爲知道怎麼不懂UNIX也可以相對容易的deploy Java的方案了,which我承認的確是部分程度上的確解決了他們的問題,但是,真的至於嗎?如果稍微認證瞭解一下UNIX program是怎麼運行的,很多年前就能有出路。

這件事情也apply到python,perl所有這種一堆dependency和運行時環境的程序,賣起
來都有一堆這種問題。

g
guvest

当初是Unix各种分裂,无解的license问题,还有CPU分裂问题。所以有后来的追求统一吧。
但是解决了一些问题之后,人们就会做更复杂的应用,随后,还是原来的问题又出来了。
【 在 netghost (Up to Isomorphism) 的大作中提到: 】
: deploy這件事情看起來簡單,但的確是大部分Java方案的頭痛的地方:到底怎麼
: deliver?如果同時還要deliver JVM那麼所謂編譯一次到處咝芯统闪艘粋€笑話,所

: 早年當Java程序員還有點堅持的時候就是直接deliver Jar的,但是結果當然也知
道了
: ,就是無窮無盡的煩惱。不僅各個操作系統JVM有不兼容的問題,JVM不同版本也有不兼
: 容的問題,此外還有M$這種和你搗亂的JVM存在。所以很長一段時間,Java就是慢,崩
: 的代名詞,很多時候都不一定是Java程序員的問題,而是廚師放的是醬油,但是擋不住
: 別人賣給你的醬油裏面裝的是醋。
: 所以到某個點上,Java開發人員也知道死要面子活受罪沒有意義,所以就就和jar一起
: shipjvm。但是jvm一般來說有一堆東西,並不是簡單copy幾個文件就完了的,同時因爲
: Java開發團隊一般都對Unix的系統瞭解不多,所以怎麼分發這件事情就成了巨大的麻煩
: ...................

n
netghost

其實我的point是,維持portable,方便性最最重要的是降低複雜度。所有聲稱爲了方
便性,可移植度增加複雜度的做法,最後既沒有簡潔性,也沒有方便性和可移植度。歷史就擺在那裏的。
【 在 guvest (我爱你老婆Anna) 的大作中提到: 】
: 当初是Unix各种分裂,无解的license问题,还有CPU分裂问题。所以有后来的追求统一
: 吧。
: 但是解决了一些问题之后,人们就会做更复杂的应用,随后,还是原来的问题又出来了。
:
: 道了

g
garphy

繁体字写软件,看着很违和

【 在 netghost (Up to Isomorphism) 的大作中提到: 】
: deploy這件事情看起來簡單,但的確是大部分Java方案的頭痛的地方:到底怎麼
: deliver?如果同時還要deliver JVM那麼所謂編譯一次到處咝芯统闪艘粋€笑話,所

: 早年當Java程序員還有點堅持的時候就是直接deliver Jar的,但是結果當然也知
道了
: ,就是無窮無盡的煩惱。不僅各個操作系統JVM有不兼容的問題,JVM不同版本也有不兼
: 容的問題,此外還有M$這種和你搗亂的JVM存在。所以很長一段時間,Java就是慢,崩
: 的代名詞,很多時候都不一定是Java程序員的問題,而是廚師放的是醬油,但是擋不住
: 別人賣給你的醬油裏面裝的是醋。
:
: 所以到某個點上,Java開發人員也知道死要面子活受罪沒有意義,所以就就和jar一起
: shipjvm。但是jvm一般來說有一堆東西,並不是簡單copy幾個文件就完了的,同時因爲
: Java開發團隊一般都對Unix的系統瞭解不多,所以怎麼分發這件事情就成了巨大的麻煩
: 每個系統的底層庫的問題都可以造成jvm的問題,而且要解決這個問題,只會寫Java
是沒
: 有任何辦法的。雖然其實UNIX下面早就有標準接口可以解決這個問題:只要你知道編譯
: 鏈接的原理,會寫幾行C和shell。
:
: 直到docker這個東西出來了,這些人立刻就像撿到了寶貝,因爲知道怎麼不懂UNIX也可
: 以相對容易的deploy Java的方案了,which我承認的確是部分程度上的確解決了他們的
: 問題,但是,真的至於嗎?如果稍微認證瞭解一下UNIX program是怎麼咝械模芏嗄

: 前就能有出路。
:
: 這件事情也apply到python,perl所有這種一堆dependency和咝袝r環境的程序,賣起: 來都有一堆這種問題。
y
yhangw

java这个大一统神话坑挺多人。我刚工作时遇到过一个case,从ibm websphere到bea
weblogic的迁移,18m的sales为了卖机器承诺了太多根本短时间搞不定的东西,后面销售,售前,售后(收钱的),客户,管理层直到大中华区,打成一坨。根上就是在各种兼容坑。

【 在 netghost (Up to Isomorphism) 的大作中提到: 】
: deploy這件事情看起來簡單,但的確是大部分Java方案的頭痛的地方:到底怎麼
: deliver?如果同時還要deliver JVM那麼所謂編譯一次到處咝芯统闪艘粋€笑話,所

: 早年當Java程序員還有點堅持的時候就是直接deliver Jar的,但是結果當然也知
道了
: ,就是無窮無盡的煩惱。不僅各個操作系統JVM有不兼容的問題,JVM不同版本也有不兼
: 容的問題,此外還有M$這種和你搗亂的JVM存在。所以很長一段時間,Java就是慢,崩
: 的代名詞,很多時候都不一定是Java程序員的問題,而是廚師放的是醬油,但是擋不住
: 別人賣給你的醬油裏面裝的是醋。
: 所以到某個點上,Java開發人員也知道死要面子活受罪沒有意義,所以就就和jar一起
: shipjvm。但是jvm一般來說有一堆東西,並不是簡單copy幾個文件就完了的,同時因爲
: Java開發團隊一般都對Unix的系統瞭解不多,所以怎麼分發這件事情就成了巨大的麻煩
: ...................

n
netghost

所以說IT這行業,很早的時候就是fake it until make it。 Java可能是我serious的
學的第一個語言,從JDK 1.0開始的。很快就覺得不靠譜,因爲it居然有情況是我無論
怎麼寫都要漏內存的。

後來接觸了OS方面的東西,就義無反顧地拋棄了it。

【 在 yhangw (老妖) 的大作中提到: 】
: java这个大一统神话坑挺多人。我刚工作时遇到过一个case,从ibm websphere到bea
: weblogic的迁移,18m的sales为了卖机器承诺了太多根本短时间搞不定的东西,后面销
: 售,售前,售后(收钱的),客户,管理层直到大中华区,打成一坨。根上就是在各种
: 兼容坑。
:
: 道了

t
tomqmd

其实我对于java的最大疑问在于现在有了container,那只要系统支持,那软件实际可以运行在任何环境下,那java这个兼容性的大卖点就没了。既然这样,java是不是就该开始没落了?(感觉好像已经开始了)
w
walkrandom

java泄漏是个什么情况
object有gc
thread有threading pool
理论上很难泄露
反正我很少见到