每日最新頭條.有趣資訊

新年號來了 島國程序員卻哭了

  就在四月一日!日本的新年號公布了,它叫“令和”。等到五月一號,島國就將徹底告別平成時代,迎來令和元年!“初春令月,氣淑風和。”這個新年號的發表,讓日本舉國上下都進入了一種期待美好未來的歡欣之中。(本文已獲授權,未經原作者允許禁止私自轉載。)

原文鏈接>>>

遊民星空

  並且,因為天皇交替,日本還會在四月末五月初迎來幸福到暈過去的十連休。

遊民星空

  在島國生活的絕大多數工作人員們露出了久違的微笑:“可以利用十連休好好粗去玩嘍!”但是對於我們碼農來說,在假期到來之前將要面對的,是枯燥繁瑣的IT系統年號變更問題以及由此可能導致的加班問題。

遊民星空

  不懂程序的素人可能會問了:“換個年號而已,改不改的有那麽嚴重嗎?”還真是很嚴重。在人類已經離不開信息技術的,今天IT系統裡的時間問題,稍有不慎就會產生影響我們衣食住行的大動蕩。出生於九零年以前的人可能都對1999年記憶猶新,這一年,滿世界都在瘋傳一個謠言:“一九九九年,審判降臨,魔王現世,人類將迎來世界末日。”

遊民星空

  然後什麽都沒有發生,所謂的末日預言,被歷史證明只是互聯網的一場狂歡。

遊民星空


遊民星空

  不過,從計算機發展史來看,1999年,還真算得上人類是保衛了地球文明的一年。這一年,無數的程序員加班熬夜,終於趕在千禧年鍾聲響起之前,解決了計算機系統計時程序裡,無法區分1900年和2000年區別的“千年蟲問題”。

遊民星空

  要知道,如果沒能解決這個問題,銀行的存款,可能因為系統時間混亂而全部清空,核導彈發射系統,也可能在bug中隨機發射。不懂程序的素人可能又要問了:“計算機辣~麽聰明,怎麽會搞不清1900,和2000年的區別呢?”

  原來呀,古早時候的電腦比較弱小,記憶體只有64-128KB ,用它做事必須很節約,能省一點兒是一點兒 ,所以那時候的程序猿在輸入日期時,都隻用兩位數來表示年份——。

  比如1999年1月1日,就寫成“990101”。這樣一來,1988年變成了“88年”。1900年變成了“00年”這時候一拍大腿你會發現:“不對呀!照這麽寫1900年和2000年都變成“00年”沒有區別了哇!”沒錯!計算機也是這麽想的!

遊民星空

  當時間跨過1999年最後一天的零點,如果不提前修改系統,全世界的計算機都會在:1.倒回1900、2.跨入2000、3.選擇原地狗帶。三種模式中陷入沉思。

  有識之士很早就注意到了這個問題,號召政府和企業盡快采取措施,比如咱們國家就準備得比較完善,還在北京專門成立了一個“計算機2000年問題”辦公室,應對各地打來的求助電話。甚至由於宣傳過於到位,連根本不懂計算機的老爺爺老奶奶們,也知道“千年蟲”要來了,然鵝!他們真的把千年蟲當成了一種帶著病菌的害蟲,於是就發生了下面兩則故事。。。

遊民星空

遊民星空

  與此同時,跟咱們隔海相望的日本,也開始了“防蟲”宣傳,那時候的日本首相,叫做小淵惠三,小淵惠三親自演了個廣告,從1998年開始就天天在電視上輪放,催促本國程序員趕緊“捉蟲”。

遊民星空

  在碼農們齊心協力的努力下,日本全國系統中的bug,都被修複or掩蓋得差不多了,(為啥會說“掩蓋”這個咱們最後解釋)。即使這樣,在新千年到來之際,謹小慎微的日本人還是暫停了大多數公共設施的運轉,JR和私鐵各社統統停運,飛機也不飛了,直到2000年順利到來才讓它們重新出發

遊民星空

  千禧跨年之劫順利度過,日本上下松了一口氣,平成廢宅又可以放心去玩耍啦!以至於大家高興地忘了一個恐怖的事情:“大魔王2000年,不僅僅是新千年,它,還是一個閏年。”

  從小老師告訴我們——能被4整除的年份,叫做閏年。

  但是,在所有能被4整除的年份裡,同時又能被100整除的它就變回平年了。但但是!在這些能被100整除的平年裡,同時還能被400整除的它就又變回閏年了!所以1900年不是閏年,但2000年!是一個大大滴閏年!

  1900年沒有出現過的bug2000年會出現

  2000年2月29日:北海道劄幌市地鐵線上通勤的日本人。突然發現自己的定期券失效了“明明自己買的是2月15到3月14一個月的月票怎麽到2月29就不能用了呢?”

  因為日本人忘了修改閏年2月底多出來的一天。在計算機的認知裡2000年2月29日變成了不該存在的日子,人們的定期券也就因此失效了,那一天剛好是通勤地獄星期二,被改劄機困住的工作人員們,應該很想錘爆劄幌鐵道局吧。總之說了這麽多,就是為了告訴大家計算機裡的日期變動對程序員來說是不可小覷的大事件!這個bug如果不被重視,可能會引起很可怕的後果,輕則ATM宕機,重則人造衛星撞地,是一定一定要提前做好準備的。說回這次“平成”變“令和”的事件。

遊民星空

  現在是2019年4月,還屬於平成31年。日本這個國家很奇葩,明明都21世紀了。自己也引入了公歷,官方文件還在固執地延續帝位紀年法。我們在日華人從各個機構領到的證件裡,看到的多是“昭和XX年”,“平成XX年”這種表記方式。但是和歷紀年有一個致命的bug,那就是未來的日期未必真的存在,比如下面這張保險證:

遊民星空

  有效日期那裡赫然寫著:平成32年8月31日。可是4月一過,直接就進入令和元年了哪兒來的平成32年???既然沒有平成32年,那這些所有日期標注在平成31年4月30日以後的駕照,保險證,各種各樣的契大約同豈不是統統要回爐重造?

  回爐重造的話要花費大量人力物力,還需要民眾的積極配合,連個my number都推廣不出去的島國政府根本搞不起來,可是不重新發行的話,那就只能允許新舊兩個年號同時存在。和歷就是這一點很迷,天皇一出事兒,年號就要換,日本國民的時間表,就會迎來大錯亂。

  歷史上就有過這麽一次,那是大正15年(1926)的事情。眾所周知,日本人在新年的時候喜歡相互寄賀年片,年末的時候,郵局已經把大家寫好的賀年卡都收上來、蓋好了大正16年1月1日的郵戳,就等著當天統一送信啦。結果12月25日大正天皇。。。。掛了。

遊民星空

  而且,在換算和歷xx年等於公歷xx年的時候,日本人的畫風也是這樣嬸兒的:

遊民星空

  首先要把每個年代開始的年份,作為常識背下來,然後在此基礎上計算加減,對於我們中途上島的外國人來說,實在是面倒くさい。。。

遊民星空

  這時候就會有人問了:既然和歷換算這麽麻煩,為啥不乾脆全改公歷算了?實際上,大部分日本人也是這麽想的

  但是堅持和歷的人認為:公歷是具有基督教背景的歷法,強製採用公歷違反了憲法中宗教信仰的自由。憲法高於一切,所以最終大家還是一起忍受著和歷的折磨

  邁入信息時代後最受折磨的就是我們悲慘的程序員,跟官方文件一樣,日本很多系統也是以和歷形式儲存日期的,2019年4月30日在系統裡被記錄為H310430,而到了五月年號變成了“R”開頭的令和2019年5月1號就變成R010501了

  原本計算機按照H開頭往下加算的日期從五月開始就要改成R開頭,現代開發的系統實際上對於這個問題已經應對得更成熟改修起來按說應該比較容易,但是日本很早就進入了數字化時代有大量的系統是用cobol,pascal等上古語言開發的,這些系統運行時間超過30年像老古董一樣又脆又難修,而且30年前的文檔早就已經停止維護,很多時候只能讓程序員一行一行看代碼來分析,等到項目結束可憐的猿們就該排隊去看眼科了

遊民星空

遊民星空

  唯一讓猿們感到欣慰的是明仁是一位很不錯的天皇,博學多才,愛好和平,不戀權不好戰,業餘喜歡研究蝦虎魚,一不小心還成了這塊兒最厲害的權威。

遊民星空

遊民星空

  這位很不錯的天皇,連退位也是有條不紊地讓程序員可以提前做好準備。如果像大正一樣那麽突然大家可能要直接上天台了!

遊民星空

  然鵝,即使天皇早在幾年前就宣布了提前退位,公布新年號也還是前幾天的事情。對於日本程序員們來說這依然是一項時間緊任務重的大工程,微軟,IBM等公司也必須在最短時間內根據新年號修改各種程序工具

遊民星空

  尤其對於給銀行稅務證券機構改系統的猿而言,就更不能掉以輕心了,不僅要改得快還要保證沒有錯誤,不然在金額上出了差錯就真的會背上一個比天還要大的鍋了

遊民星空

  啊!說到背鍋!我終於能講出今天最後一個小故事了!這是一個關於上屆程序員甩鍋的故事!

遊民星空

  大家都知道在平成之前的呢叫做昭和時代,昭和時代橫跨1926~1989那會兒人們也已經用上計算機啦。所以早在昭和天皇去世的1989年日本的IT系統就經歷過一次改元,當時的島國程序員已經預見到這些系統會在2000年的時候撞上千年蟲問題,1989,離2000只差11年了那會兒自己還沒退休說不定會被公司綁去祭天。

遊民星空

  這時不知哪個工程師賊光一閃。

遊民星空

  提議道:“要不咱這樣吧用公歷1989的話過11年就會撞上雙零,但是如果沿用昭和64年的話還有36年才會爆發危機!等到那會兒咱就退休,啊不,就開發出更先進的技術了!後輩肯定有辦法解決的!其他碼農聽了紛紛覺得:

遊民星空

  於是大家就這樣管殺不管埋地接著給昭和老鬼續命。

遊民星空

  所以直到今天一個名叫昭和的幽靈依然在日本列島上空盤旋。當年的碼農們為了延後2000年問題的爆發,只為一般消費市場的IT系統進行了改元換算,而在更牽扯國民經濟命脈的政企領域則按昭和的年份繼續悄無聲息地加算,現在令和元年都要來了,這些政企系統的軟體裡表面上是平成31年的記錄,內部卻是令人毛骨悚然的昭和94年(63+31)!再過六載,也就是2025年昭和也要歸零了,這就是在日本IT界比“換位改元問題”,更加令日本人擔憂的“昭和100年問題”。

遊民星空

  因為舊的仕様書很多已經遺失,當年參與開發的工程師也都退休了,幾乎沒人知道怎麽去修改這些昭和年代留下的老古董。所謂前人砍樹後人遭殃,日本職場的甩鍋絕技就這樣跨越兩個時代直接打擊到走向令和的我們身上,那一天的島國會出現怎樣的光景呢,想想就覺得好刺激啊

遊民星空

  最後給大家講個IT界流傳已久的笑話:一個COBOL程序員因解決了千年蟲問題掙了大錢,以至於他可以花錢請人將自己冷凍起來。未來的某天這隻猿突然被復活,睜開眼他詢問自己被復活的原因,未來人這樣回答他:“現在是9999年,而你懂COBOL語言”。

遊民星空

  - END -

獲得更多的PTT最新消息
按讚加入粉絲團