Come Healing | |
---|---|
O gather up the brokenness | 撿起這殘破 |
And bring it to me now | 來給我帶上 |
The fragrance of those promises | 你從來不敢承諾的 |
You never dared to vow | 誓言的芬芳 |
· | |
The splinters that you carry | 你背負的荊棘 |
The cross you left behind | 留下的十字 |
Come healing of the body | 來,治癒身體 |
Come healing of the mind | 來,治癒神智 |
· | |
And let the heavens hear it | 就讓上天聽聞 |
The penitential hymn | 懺悔的聖詩 |
Come healing of the spirit | 來,治癒靈魂 |
Come healing of the limb | 來,治癒四肢 |
· | |
Behold the gates of mercy | 慈悲的門廊 |
In arbitrary space | 隨處可見 |
And none of us deserving | 你我都配不上 |
The cruelty or the grace | 殘酷或恩典 |
· | |
O solitude of longing | 渴望的孤寂裡 |
Where love has been confined | 愛被禁制 |
Come healing of the body | 來,治癒身體 |
Come healing of the mind | 來,治癒神智 |
· | |
O see the darkness yielding | 看黑暗屈服前 |
That tore the light apart | 撕裂了光 |
Come healing of the reason | 來,治癒理念 |
Come healing of the heart | 來,治癒感傷 |
· | |
O troubled dust concealing | 紛亂灰塵遮著 |
An undivided love | 完整的愛 |
The Heart beneath is teaching | 下界的心教著 |
To the broken Heart above | 上蒼破碎的心 |
· | |
O let the heavens falter | 讓天空震顫 |
And let the earth proclaim: | 大地揚聲: |
Come healing of the Altar | 來,治癒聖壇 |
Come healing of the Name | 來,治癒聖名 |
· | |
O longing of the branches | 枝椏的渴望 |
To lift the little bud | 將嫩芽提拔 |
O longing of the arteries | 動脈的渴望 |
To purify the blood | 將血液淨化 |
· | |
And let the heavens hear it | 就讓上天聽聞 |
The penitential hymn | 懺悔的聖詩 |
Come healing of the spirit | 來,治癒靈魂 |
Come healing of the limb | 來,治癒四肢 |
· | |
O let the heavens hear it | 噢,讓上天聽聞 |
The penitential hymn | 懺悔的聖詩 |
Come healing of the spirit | 來,治癒靈魂 |
Come healing of the limb | 來,治癒四肢 |
source: http://www.gnu.org/philosophy/right-to-read.html
(引自「通往 Tycho 之路」,一份關於月球革命的歷史結集,出版於月球市,2096)
對於丹‧哈伯特而言,通往 Tycho 之路從大學時開始──當麗莎‧琳茲跟他借電腦時開始。她的電腦壞了,除非她能借到另一台電腦,她的期中報告就完了。除了丹之外,她不敢問任何人。
這使得丹陷入兩難。他得幫這個忙──但是如果把電腦借給她,她就可能看到他的書。除了借別人看書會被判許多年的刑期之外,這個想法本身使他感到震驚。就像所有人一樣,他從小學開始就被教導,分享書藉是卑鄙錯誤的罪行──祗有海盜纔做這種事。
而且,SPA(軟體保護機關)一定抓得到他。在軟體課程裡,丹學到了每本書都裝有一份著作權監視器,會自動回報中樞每一次閱讀的時間、地點和讀者。這份資訊不但被用來抓盜版,也被賣給傳播商做為顧客行為的參考。下一次他的電腦上網時,中樞就會發現這件事。他作為電腦的擁有人,會接受最嚴厲的制裁──因為他沒有盡力防止犯罪的發生。
當然,麗莎不一定想看他的書;她也許祗想借電腦來作專題。但是丹知道她出身於中產階級,她的家庭好不容易纔付得起她的學費,更不用說閱讀費了。讀他的書也許是她惟一能畢業的方式。丹瞭解這個情況;他自己都得借錢來付他所閱讀的論文費用。(10%的費用會付給原作者;既然丹想要成為學者,他可以希望他自己的研究論文,如果經常被引用,能夠帶來足夠還債的收入。)
不久之後,丹發現了曾經有過一段時期,任何人都可以走進圖書館,翻閱期刊、甚至書藉,而不用付錢。以前的獨立學者,可以看過數千頁的論文而不需要政府補助。但是在 1990 年代,商業和非營利的期刊都開始徵收使用費。到了 2047 年,免費提供學術論著的圖書館已經成了遙遠的回憶。
當然,要避開 SPA 和中樞是有辦法的,雖然要冒著犯法的風險。丹有個軟體課的同學,法蘭克‧馬圖西,拿到了一份非法的除錯工具,然後用它來繞過閱讀偵測軟體。但是他把這件事告訴了太多朋友,其中有一個為了賞金向 SPA 檢舉他──債台高築的學生很容受到誘惑而背叛。在 2047 年,法蘭克入獄了,他的罪名不是盜版閱讀,而是持有除錯工具。
丹後來發現,在歷史上的某個時期,每個人都可以擁有除錯工具。甚至還有免費的除錯工具以 CD 發行,或在網路上下載。但是一般使用者開始利用這些工具來規避著作權檢測,最後使得法官判定這已成為除錯工具的主要用途。除錯工具因此被判為非法,它們的作者被關進監獄。
當然,程式員仍然需要除錯工具,但是在2047年它們都以序號編碼,祗提供給簽下嚴格契約的程式員。丹在軟體課上使用的除錯工具被放在一堵特殊的防火牆後面,祗能作為課堂練習使用。
另外,重裝一份作業系統核心也可以避開著作權偵測。丹日後會發現,在世紀交替時曾經有過免費的系統核心,甚至一整套免費的作業系統。但是今天它們不僅和除錯工具一樣違法──就算拿到了也不能安裝,除非知道電腦的系統管理員密碼。但是,FBI和微軟都守口如瓶。
丹決定自己不能把電腦借給麗莎。但是他難以拒絕,因為他愛著她。每個跟她說話的片刻都令丹雀躍萬分。而且既然她找上他借電腦,這表示她也愛他。
丹以一種令人更難以想像的方式,來解決這個兩難──他不但借了她電腦,還將自己的密碼告訴了她。這樣,如果她看了丹的書藉,中樞會以為是丹在閱讀。這仍然是犯罪,但是除非麗莎舉發了他,中樞就不會發現。
當然,如果學校發現了他把密碼給了麗沙,無論她是否已經使用,他們兩人都會被嚴格處份。學校的政策是,任何干預學校監看學生的行為,都必須予以懲罰。是否造成損害並不重要──罪名都是妨害執法。在這種情況下,總是先假設罪犯會做出違法的事情,而實際狀況如何無關緊要。
學生通常不會直接因為這樣被退學。但是被禁止使用學校電腦系統的學生,在每一科都會被當掉。
後來,丹會發現這樣的大學政策從 1980 年代,學生大量使用學校電腦時纔開始。之前,學校祗能為實際造成損害的行為處罰學生,而不是基於執法困難的懷疑。
麗莎並沒有向 SPA 舉發丹。他幫助她的行為最後使這兩個人結了婚,也使她們開始質疑自己從小被教導的「盜版」觀念。兩人開始研讀著作權的歷史:關於蘇聯對影印機的禁令,甚至美國原本的憲法。在搬家到月球後,兩人遇到了不少逃避 SPA 爪牙的同伴。當 Tycho 革命在 2062 年爆發時,舉世皆然的「閱讀權」成為革命者的核心訴求。
作者後記
閱讀的權利是今天正在發生的戰爭。雖然以上的場景可能要花 50 年的佈置,絕大部份的相關法令已經被柯林頓政府和出版商所通過。
祗有一個例外,就是 FBI 和微軟會壟斷個人電腦的系統管理員密碼。這是從 Clipper 晶片和長期的趨勢──就是把操作電腦的權利從使用者身上逐漸剝奪──推估而來的。
SPA 的原名是「軟體發行者工會」,在今天還不是正式的警察單位,但已經採取了相同的行動。她們故勵人們檢舉同事和朋友,以高額的賞金讓規避執法的行動無所遁形。
SPA 目前已經威脅大部份的網路系統業者,讓 SPA 能偵測所有使用者的動向。大部份打不起官司的業者屈從了。
小說裡的大學政策並非虛構;舉例而言,一所芝加哥地區大學的電腦在登入時顯示以下的訊息:
「此系統僅供授權人士使用。未經同意或超出授權範圍的使用者的所有行為,將被監看並紀錄。在監測未經授權的使用時,授權人士的行為也可能被監測。所有此系統的使用者都必須了解並同意此項原則,並在發現非法行為時踴躍向大學或警察機關舉發。」
(逐字稿、活動錄影、現場錄音、線上簡報、下載 Keynote 檔。)
這份簡報是 Allison Randal 在 OSDC.tw 2012 演講的衍生,白底是 Allison 原本的內容中譯,楬色底的圖片是新加上的。
Enlightenment 這個字在十八世紀,伏爾泰、康德、牛頓說 Lumières、Aufklärung,指的是讓理性的光線,照亮人類的生活,這些想法最終導致了世紀末的法國大革命,提出自由、平等、博愛的理想。
自由軟體運動 30 年來,爭取不受限制的網路言論、創作、近用權利,是政治概念。
後起的開源運動則是希望企業放下身段,平等對待貢獻者、透過開放協作獲得高效率、高品質的創作,這是共享經濟的概念。
這兩個概念在實務上做的事是相同的,自由軟體和開源軟體基本上沒有差別。
但我今天想分享的是「Solidarity」這個文化概念。這個字原本是 Fraternity 「兄弟之情」,但現在一般說「社會連帶」,就是人和人之間的互相幫助。
科學技術社群的特點,就是可以和社會上的任何社群有連帶。
開源社群開宗明義說「不限制用途」,也就是和整個社會有連帶。
Web 是建立在連結上的世界。我們透過 Web 和社會對話,也創造社會對話的新形式、新空間。
這不僅讓我們成為更好的創作者,也讓我們通過與人合作,而成為更好的人。
這條路走向哪裡呢?魯迅說:希望本是無所謂有,無所謂無的。這正如地上的路;其實地上本沒有路,走的人多了,也便成了路。
開源尤其是一條創造的路,已經有的拿來用就是了,所以都是沿著前人的足跡,往無人處行去。
您可以將它想成一條修行之道,讓身而為人的我們能夠不斷成長。
讓人不斷成長的是社群。每個社群都有自己線上、線下空間,就像一片園地,它的內容是有機的。
開源的道路,可以帶領我們走進全世界的社群空間裡。
首先,人是一切開源專案的核心。程式碼是很重要,但最核心的永遠是人。人們透過各種不同的方式來參與專案。
每一百個使用者裡,也許有十個人會參與修正,一個人會做出新貢獻。
但是隨著需要花的時間減少,參與和貢獻的分界也變得更模糊。
除了專案開發常見的分類之外,最重要的就是解決使用者的需求,以及使用者之間的彼此支持。
當然很多專案的開發者就是第一個使用者。
在開源發展初期,要取代的就是過去「for the People」的概念,一小群大神推出新產品讓大眾使用。
開源的概念是「with the People」,專案的走向由使用者、參與者、貢獻者來一起形成。
您的專案也許會用到別人開發的軟體,而因此接觸到上游的專案,或許偶爾也會向他們提出建議和修正。
又或許您開發的是一套程式庫或模組,提供給其他專案的人使用。此時,您就是他們的上游專案,他們也會用相同的方式來與您溝通。
怎麼和上游溝通?源頭有許多個,有溝通就是活水。
無法溝通時,可以找新的源頭,或者自己 fork 一份。
所以,人們到底為什麼要做開源軟體呢?
如果您想理解開源模式如何運作,這是一個很關鍵的問題。
認知剩餘,也就是「閒閒無代誌」。有些人休閒娛樂是看書,有些人畫畫,有些人拍照,有些人專門幫貓咪圖片加字幕...
有 Web 之後,到線上的空間一起做同樣的事,花同樣的時間,可是樂趣是加倍的。
像維基百科,大家看的時候有空改幾個錯字,品質就提高了。
一部分的原因,是因為這能夠讓人迅速接觸到刺激、有趣的新鮮技術。
能夠與人分享,也是一個主因:透過與人分享,我們可以認識開源專案裡的同好,來提升彼此的樂趣。
不只程式、文字、影像創作共用,傳統上車子、房子這類以「擁有」為主的東西,現在已經逐漸演變成大家一起分享、使用,增進彼此生活的品質,這叫共享經濟。
除了互惠之外,投入開源專案的人,往往也帶著分享奉獻的精神。
能夠伸出雙手幫助別人,是身而為人很重要的一部份,所謂助人為快樂之本。
Iain King "Help someone if your time and effort is worth more to them than it is to you” 就是說你花一分力氣,如果可以幫到對方兩分忙,而大家都願意互助,那整體的生活品質就會不斷提昇。
在零邊際成本的時代,表示你用開源工具幫了一個人,他可以拿去再幫兩個、四個... 指數性的成長。
除了這些內在因素,參與開源專案工作,也可以得到許多回報。
其中一項,是獲得別人的敬重:當我們創造新的事物與人分享,進而吸引人們一同合作時,人們自然會認識我們的人品與才能,從而為我們自己帶來成就感。
現在有 Git,要解釋「協作」概念就容易多了。
每個人各行其是,但是把成果都開源出來,這樣好主意自然會被認同的人吸收、合併,大家也會知道「你就是當初提出那個好主意的人」。
所以,我們應當對於加入專案的人表示尊重,這樣人們才會願意繼續參與專案的活動。
每個人的貢獻,就是我們認識他們的方式。認識了新朋友,又可以揪團做新的創作。
認識彼此的價值是很重要的,所謂 “I'd like to know you by your values, not by your types, classes or roles.”
欣賞別人的作品也很重要。當人們發表自己的作品,而您有機會與他們交流時,即使是一封簡單的電子郵件感謝函,說「您的專案對我很重要」,也足以營造出一種正向的文化,讓大家都能保有繼續創造的動力。
以前我每天醒來都收到感謝函,一整天就很高興。現在收 pull request 當然更高興... 感謝是會傳染的。
社群是建立在彼此介紹、彼此認識、彼此肯定上的。
在線上的空間裡,每一次 ++,都是在建立文化,讓社群參與者知道,哪些貢獻是社群需要的。
一起合作時,我們可以透過彼此鼓勵,讓彼此變得更好更強大。
當您看到其他人正在解決艱難的問題時,您不妨鼓勵他們:「你做得很棒,未來會做得更棒,需不需要幫什麼忙?」
當許多人聚在一起的時候,每個人都有不同的能力。
一起工作時,可能您知道專案需要的五樣東西,而其他人知道另外五樣東西,您們互補長短,就有了一整套技能足以完成專案,而這是單打獨鬥時做不到的事情。
南非的「Ubuntu」文化說的,就是每個人不是單獨存在,而是透過彼此互相支援、互相幫助,才能完成自己、超越自己。
另一件很重要的事,是鼓勵彼此放眼未來、看得更遠。
我們可以給其他人靈感,幫助他們解決有意思的問題。
有時,只要說「這裡有個坑...」,別人就可以將它化為現實。
有些時候,您只要看看別人在做些什麼,然後告訴他們您想到的關鍵之處,不必自己跳下去實作,也可以幫助他們走得更好更遠。
在做開源工作時,我們得時常提醒自己,我們並不是孤身一人。
由於需要和許多人合作,我們最需要注意的,就是不斷改進自己的溝通技巧。
README、ChangeLog、ROADMAP、FAQ、etc...
在開源社群中,我注意到一件事情:人們對如何做軟體往往有很好的規劃,可是卻由於缺乏良好的溝通,而讓彼此的計劃互相衝突。
如果您朝向某個規劃埋頭開發,而沒有與人溝通的話,很可能會踩到別人的腳。
我們就像一窩在蜂巢裡的蜜蜂,要經常發出嗡嗡聲,才能讓彼此持續發揮功能。
認知偏差:
- 透明度錯覺(以為別人知道自己的內心狀態)。
- 基礎歸因謬誤(以為別人是故意的)。
此外,我們還會不時討論技術問題,嘗試找出最好的解決方案。
在面對技術問題的時候,人們可能會戰到底,為了找出「最好的解決方案」,反而讓事情難以獲得實質的進展。
通常只能有粗略共識。要求更一致,就變成了「粗暴共識」。
所以,我們在工作過程裡,要逐漸學會接受各種各樣的可能性。
對於您自己想到的解法,您當然應該持續努力,但也不妨對別人所提出的其他可能性,抱持開放的態度。
- io.js 加入 Node.js 基金會。
- 微軟幫 Node.js 添加查克拉。
而在您自己的工作有所進展時,也可以透過各種通訊管道,讓大家知道您做了些什麼。
發電郵、寫推特… 有很多方法能讓人們知道您的進度。
膽子要大,臉皮要厚,有心得就分享。
說錯了,別人才有糾正的機會,我們才可以學到新的事情。
「萬事萬物都有缺口,缺口就是光的入口。
溝通的另一個重點是問問題。社群的好處,就是可以讓你找到人、找到資訊。
心得要放在找得到的地方。Permalink。
專案的關鍵字很重要。
資訊科學裡最難的兩大問題:取新的名字、決定什麼時候清掉快取,還有不小心多算一個的問題。
同樣的道理,當別人想要學習時,您也可以認真回應,而不是對簡單的問題拋下一句「RTFM(去看該死的說明書)」就算了。
如果說「不要跟人打交道,去跟書打交道」,Social Object 的特性就不見了。
學著如何去給別人有幫助的答案,幫助他們一同走上這條開源之道,日後他們才能把這條路走得更長、更遠。
取暖、小圈圈、自嗨,這些都是最基本的需求,對新手是不可或缺的。
團體心理學上叫做 Basic Assumption Group。
滿足了之後,才能形成工作組,做出實際的創作,登上更高的山。
有些時候,批評別人是必要的。
雖然我們對各種可能性抱持開放的態度,但針對特定的情況,確實可能對方的資訊已經過時了。
這個時候,就要先找到彼此可以同意的一個地方。
我們不能改變別人的想法,但可以改變他的感覺:「我同意你說的概念,但是有些資源已經過期,該清 Cache 了。」
即使對方態度惡劣,也請保持優雅。有時候,臉皮厚一點也有好處。
雖然有些人的溝通方式有待加強,也許有 5% 仍有價值。
從這個角度來看,就算人們說話的時候不禮貌,您還是可以禮貌地回應他們。
擁抱小白擁抱廚。
簡單來說,如果對方講十句話,有九句是來亂的,只要認真回應不是來亂的那一句,久了之後對方就會學到,來亂是不會有人理的。
溝通的另一部分不是說話,而是傾聽。
有時我們須要做的,不是告訴別人我們的想法,而是靜靜地坐好,讓別人暢所欲言。
HTTP:
- 100 請繼續說
- 200 這是我聽到的意思
- 300 這件事也可以找別人說
- 不要 400 「這是你的錯」和 500 「這是我的錯」。
光是聆聽是不夠的,我們還需要有同理心,也就是設身處地的能力。
每個人在開源社群的活動,都會留下足跡。
沿著這些痕跡,想想對方當年為什麼會說這些話、寫這些字,慢慢就能從對方的角度,看到新的世界。
有些人以為,能夠從事開源軟體工作的人,個個都得是天才。事情絕對不是這樣。
的確有特別專精某個領域的人,但其實任何專案,都需要各方面具有不同才能的人加入。
即使再能發光、發熱的人,同時也只能往一個方向照。
開源社群的連帶,像是德勒茲在《千高原》這本書裡,提出 Rhizome「地下莖」的想法:往各個方向有機生長,群龍無首、自行組織,斷裂之處可以冒出新芽,也就是新的社群 。
重要的是,無論您有多聰明,都要保持謙虛。謙遜的心態,讓您能歡迎其他人加入您的專案。
相反的,抱持驕傲自大的態度,就等於是在跟其他人說:「我不需要你們,我用自己的方法做事就夠了。」
劣即是夯。不要怕丟臉。
社群愈有多元交織的文化,參與者的基礎就愈豐厚。
所謂多元交織 Intersectionality,意思是每個人在社會階層、身份、族群、認同上,可能有些居於優勢,有些居於弱勢。
運用自己在弱勢時的經驗,就可以體會別人處於弱勢的感受,也才能設身處地,形成真正的社會連帶和互助。
「安全空間」這個概念是從 LGBT 同志社群來的。我在這個空間裡,假設是來學習的,那對身材、膚色等無關的評論,或是性感圖片等等,就是一種干擾。
這幾年來,我們推廣各 Conference 的籌備團隊,自己討論出 Code of Conduct 與會守則,來確保安全空間。
希望下次 Modern Web 可以有自己的 Code of Conduct。
就像每個地方有不同的語言和文化一樣,相同的多元性,也體現在各式各樣的開源專案裡。
舉例來說,Linux 社群、Perl、Ruby、Python、PHP 和 JS 社群,都各自用獨特的方式來交流合作。
以前南非種族隔離時,黑人白人互不往來,但你問歐巴馬他是白人還是黑人?在場的各位是白人還是黑人?
「多樣性」Diversity 的概念,就是現場一千個人就有一千種人。
在這個前提上來溝通,才能互相理解彼此的世界觀,而不只是互相貼標籤而已。
另外,做開源專案並不只是享受樂趣而已。樂趣當然是有,但同時也有責任。
責任的「自我治理」。個人的層面,像是蕃茄鐘啊,Inbox Zero 等等。
社群的層面,則是儘量把決策過程透明化,讓新來的人容易接手。
為什麼要這樣做呢?
因為人生中還有其他的事情,像是您的伴侶、父母、孩子,以及新的社群。
所以在過程裡,就要不斷交棒,逐漸放手,而不是忽然留下一大塊遺產給繼承人。
我們要意識到這是一個循環。一開始我們加入社群,逐漸負起越來越多的責任。
但當人生到達某個階段之後,您總會逐漸減少所負的責任。
成、住、壞、空。
開源不是零和的競賽,沒有「輸在起跑點上」的問題。
只要讓接棒的人知道,他可以往自己的方向跑,這樣就贏在起跑點上了。
所以我們不妨想想:「哪天我無法再付出那麼多心力的時候,誰來繼續我的工作呢?」
能留下來的,就是我們在彼此心中的樣子。
為了確保其他人能繼續我們的工作,我們可以創造出持續前進的過程。
這是一個不斷吸收與分享的過程。
張懸有一句歌詞說「時光穿梭,我們不在左右,只在彼此其中。」
在 Social Web 的時代,我們都是彼此的分靈體。
這張圖裡列出了「樂趣優先」的主要元素:穩定的支持、安全的空間、不受限制的活動,就能出現新的看世界的方式。
專案像是金字塔,讓社群圍繞著它彼此發現、彼此學習。
開站是一時的,開源是一輩子的。
一輩子也並不長,人生像彩虹一樣,原本就是向大自然借來的。
但是看到彩虹留下的感動,會激發新的創作,再感動更多人,這樣的文化可以綿延不絕。
這是 Git 的 Logo,展現出人跟人之間有連帶,也跟外部的社會有連帶。
- 遇到新的事情時,要先 Fetch 新的狀況(接受它)。
- 接下來要跟心裡的想法 Merge(面對它)。
- 這時可能產生衝突,衝突是要解決的。
- 衝突解決之後才能夠用行動 Commit(處理它)。
- 最後再 Push(放下它)。
一旦把 Code push 出去、開源之後,它就不是你的了。
開源的意思,就是任何人可以拿著這個 Code,向他自己想要做的創作方向,繼續去創作。
所以,要放下對自己的作品的執著。
這是開源之道目前讓我學習到的事情。謝謝大家。
2014-04-27, TEDxTaipei, https://www.youtube.com/watch?v=E6xIcKTRZ00
Hazel (主持人)、Linda (RailsGirls 創始人)、Charles (JRuby 創始人)、Matz (Ruby 創始人)、Audrey。
Hazel:現在,我們準備問第一個問題。你們都準備好了嗎?第一個問題是「今天,獨立工作已經不再流行。在這個跨領域合作的時代,團隊合作成為了潮流。」
「我們在程式編寫中學會的東西 —— 能夠在現實生活中幫助我們更好地工作嗎?也許 —— 為男人,也為女人 —— 為所有人。」
Linda:起初當別人告訴我,學習程式設計讓你學會怎樣思考時,我剛開始的時候也不明白。後來我慢慢學習,跟工程團隊有很多合作。它確實能夠幫你以一個特別的方式去構建它,讓工程人員更容易處理問題。
舉例來說,我想出一個功能,然後他們會說:「嘿,好吧,我們就做這個」。儘管我沒有以工程師的身份工作,可是如果能夠理解代碼如何運作,或者產品如何建立,或者建立什麼樣的功能才是可行等等,都能夠幫助我更好、更有效地工作。[笑聲及掌聲]
Charles:這很有趣,因為在過去幾個星期,我太太決定開始學習程式設計。她對於種種的可能性感到非常興奮。開始的時候她也會因為想到可能會遇到的困難而感到害怕。可是,多年來她一直是家裡的大廚。她會照顧小孩,她會編織,也做了其他不同的手工藝品和專案。
她開始看到的是,她在寫程式當 中所學會的,跟其他使用方法、藍圖的系統、甚至於製作手工藝或做飯等這類事情,都非常吻合。她越是學會寫程式,這些事情就越跟她的人生連繫在一起。看到這一點讓人很興奮。[笑聲]
Audrey:既然 Linda 和 Charles 已經把程式設計的重要性解釋得這麼好,我想談一下關於團隊合作的部分。我覺得作為聽眾 —— 我們都知道 —— 作為聽眾,聆聽能力是最重要的。
我認為現在網路上很多寫程式的經驗,無論它發生在 GitHub 或者是其他社交活動上,要感知、或者是看到對方的觀點,都和聆聽能力有關。我們從 GitHub 的問題看得到、從郵件列表中看得到、從 IRC 上看得到、從維基上也看得到。
我認為這些事情合起來,比代碼本身重要得多。我們看得到,正如 why the lucky stiff 轉發的推文所說,代碼本來就不會長久,它總會被新東西所取代。
可是人類的記憶,那些我們一起共享的靈魂碎片,可能沒有代碼一樣精準,可是它們比代碼維持得久。社群、人類、它們之間的關係、它們的連繫,都比代碼長久。
代碼給我們一個美好的機會,讓我們學會聆聽對方、做出更漂亮的東西,而這都是客觀存在的。就像是一個文物、一座金字塔,或任何我們可以看得到的東西,每天實際地在成長,全都因為我們對彼此慷慨。
我認為懂得聆聽和回饋,是我們在團隊合作設計中要學習的最重要事情。那是我們的未來。謝謝。[掌聲]
Matz:我想我要說一些話。[笑聲]
從原來的問題偏離一下。在以前,創作認真的軟體不是獨立的工作,所以人們不能單獨創作正式的軟體,他們要在同一家公司、同一個專案中工作,然後作為一個團隊一起合作,也許當中會有幾百位程式員,創作出像 IBM 的 System/360 這一類系統。
可是,科技發展已經改變了這個情況,Ruby 就是一個例子。Ruby 是我自己以業餘程式語言設計師的身份開始的。我創造了第一個雪球,把它放到網路上,讓大家聚集在一起。然後,我們在網路上一起合作。
Ruby 變得越來越大,也越來越好,團隊不斷擴大。後來創立了 JRuby,之後是 Rubinius,也跟 Rails、Sinatra,甚至於其他社群,例如 RailsGirls 諸如此類的單位有很多合作專案。這意味著技術的使用讓我們變得更靈活。
我們可以單獨工作,一個人也可以利用網際網路的力量開始偉大的事情。與此同時,使用 —— 比如說社群、網路,甚至是 GitHub —— 大家可以進行社交活動,形成一股力量,讓大家寫程式來創造偉大的事情。
我認為那就是靈活性,從個人到龐大的社群,數以百萬的人。做選擇的是我們自己,而不是公司,也不是專案,更不是組織機構之類的。我相信這種靈活性是 21 世紀的新力量。
Charles:還有一個想法。我發現學習程式的其中一個最大優點,是你能夠跟其他程式員合作、互相了解,跟他們一起工作,而且我們這些程式員的確愈來愈多。
每天都有更多的新軟體面世。它們推動世界的運作,並成為世界的一部分,我覺得這意味著幾乎每個人都應該學習如何寫一些程式。你要了解一下你周圍的世界是如何運作的。還有,剛才 Matz 談論起 Ruby,你永遠都不知道明天自己寫的那段代碼,你所建立的那個專案,會不會就是將來成林的那顆種子。
幾年前 Matz 發起的專案,正就是我們今天在這裡的原因,所以才會有這麼精彩的活動,我們才能夠創造出這麼棒的應用程式。這可能是你們當中任何一個人。下一個可以長成奇妙程式世界森林的作品,可能就是來自你。[掌聲]
Hazel:可不可以提供一些建議,給那些希望推廣程式設計的人,以避免這種情況(性別排斥)?Linda,也許你可以分享一些想法。你覺得有什麼可以有效改善這種讓人不舒服的情況?可能是針對這個情況,或者是你自己的想法。至於 Matz 和 Charles,也許你們可以分享一下在這個 IT 行業所看到的情況。
Audrey:Hazel 指的是我們在會面前私底下的對話,我們當時討論的是,台灣一方面受到日本文化對女人的刻板印象所影響,另一方面也受到中華文化對待女人的態度影響。
這裡有一種內在固有的禮貌意識,不只是女人,而且是每一個人都有的。當我們加入一個社群的時候,往往會尋找一個安全點,讓自己跟團隊建立某種同理心, 或者是同情心,或者是理解共識,才有勇氣開始說話、開始舉手。這是東亞地區一個非常普遍的事情。
可是,尤其是女人,如果她們看到整個空間都是由男性,或者是一些持不同性別表達方式的人組成的話,要在開始加入參與之前建立這種關係或相互支持感是非常困難的。正如 Hazel 自己所提到,這是一個真正的門檻。這是由社群成員組成結構造成的,也是台灣(或者是東亞地區)的文化造成的。
這不單單是女人獨有的。至於如何去解決這個問題,有些人就純粹無視他們的社會劇本。他們會說:「好吧,我們就從這裡跳進去。」[笑聲]
當他們剛跳進一個社群,開始問一些愚蠢的問題,有些人會說:「嘿,你為什麼在這裡?你這樣不妥當,對吧?」可是之後 [笑聲] 過了一段時間,他們就開始成為社群的一部分,而且實際上這是最快的方法。
正如 Matz 所暗示,讓社群繼續運作的最快方式,就是釋出一些不盡完善的東西。就像發表你的問題,然後用一個非常糟糕的方式回答,就有很多人會回應說:「嘿,其實有一個更好的方式來做到。」
因此,這種無視社會規訓的人,實際上可以更容易進入網上技術社群(雖然可能要經過很多爭辯和吵鬧),而且他們所遇到的困難,比有禮貌的人來得要少。後者也許就轉向到其他比較友好的社群(像數位藝術創作)了。
其實我的建議,就是要「策略性」的忽視禮貌。 [笑聲] 只要開個頭進去,假裝你已經是團體的一份子,然後這就是一個自我實現的預言,你很快就會真正成為團體的一部分。
Linda:我有一個非常個人的體驗。我之前不是一個專業程式員,而我現在還不是一個專業的程式員,所以我在發起 RailsGirls 時,對軟體界的生活方式、那些過去的創傷、所有在科技圈內圍繞著女性的戲碼,以及各種問題,完全一無所知。
我只是想要可以幫助我學習程式設計的東西。我不知道「Girls」這個詞會得罪這麼多美國人。我想當初能夠建立這個平台,也是因為英文不是我的母語,那時候我真的不知道業界是用這種方式或那種方式來教程式設計。
有這麼多我們不知道的事情,讓我們所有人去嘗試,並且真的去做事情,而不是去擔心會發生什麼事。
我完全同意最好的辦法就是闖進一個社群,然後開始提出問題。在我的文化裡,跟別人一樣也是非常重要的。芬蘭人通常比較安靜,屬於觀察型, 而不會主動提出問題。其中一個我特別想 RailsGirls 工作坊有的東西,是一些關於文化的環節,我們可以談論不同的人 —— 比如說在 Rails 社群內有哪些人。
我們會談論 Matz;我們會談論 DHH;我們會談論 _why;我們會談論 #FridayHug。我們會談論我引用的所有這些其他機構和東西,因為這不單單是關於代碼。
然後,我們鼓勵人們去成為他們本地社群的一份子,再來參與這些活動,並能夠有信心說:好吧,我所知道的足夠讓我去一趟社群聚會,參與更重要的事情。技術上我可能還不到這個水平,但是我很想再見到 DHH。[笑聲]
Charles:其中一件事情,我很想講清楚,其實今天一整天都已經以各種方式說過,就是如果你覺得自己被排除在外,或者是被孤立,請你永遠記住一點,這不是你的問題。
每個人都要面對這個問題,不僅僅是程式社群。你可以去問任何一個超過 40 歲的程式員,問他覺得自己在舊金山、矽谷可有受到歡迎,或者是類似的問題。你看,這不是你的錯。請記住,我們之所以有這樣的活動,而這些問題都變得那麼重要,更成為人們討論的焦點,都是因為我們正在嘗試修正問題。
現在已經有資源幫助你避免被排斥在社群之外。只要繼續奮鬥,我們一路上會嘗試盡力幫助你。 [笑聲]
Matz:真的,已經開始了,只要多努力一點。[笑聲] 在 CRuby,我們有大概 90 多位核心的貢獻者,他們有核心檔案庫的寫入權限。其中有些是日本人,有些住在美國,也有一些是歐洲人。我不知道任何台灣或中國的。不幸的是,我知道還沒有女性貢獻者,但我還挺期待的。
其實我並不關心這方面,有關於性別、國籍、年齡、職稱等等。我們有非常年輕的貢獻者(大概只有 18 歲左右),也有很年長的貢獻者(像 50、60 歲),但實際上我不在乎。正如 Audrey 所說,我們看重的是人們內心的價值。我認為只有公平,而不需要太在意其他特性,才是對社群管理至關重要的。
待人友善在我們的社會是一個非常好的傳統,所以 Ruby 社群都以友善著稱。正如 Linda 所說,無論是社群、開源,甚至是網際網路,都是屬於人的事情,我們都是人,都有心靈。心靈之間的溝通,在程式設計、軟體創作,或者是任何事情裡面都是非常重要的。
Charles:對不起,我想快速分享一個勵志故事。2013 年我去了突尼斯的一個會議,是大概有 100 人參加的 Java 活動。第一次,在突尼斯一所技術大學舉行,無論是那個會議,還是那所大學都是以女人為主。那是我在全世界第一次看到的場面,我感到很驚訝。
可是她們都表現得很興奮,她們幾乎已經掌控了那裡的一切。 [笑聲] 舉辦那個東西的都是她們。很高興看到世界上已經有些地方在做著這種事情,並開始讓更多女人涉足科技。我很高興看到它在這裡,甚至世界各地發生著。
感謝 Linda 安排這個活動,並感謝 Rails Bridge 伙伴們在美國做的所有工作。這真是一個很激動人心的時刻,很高興現在有這麼多精彩有趣的程式員加入社群。
Linda:昨天在 RubyConf 台灣的活動上,有很多 RailsGirls 校友參與,並自願留在那裡幫助組織活動。我認為突然之間有數百位女人參與演講會議,幾乎就像童話一樣。
我真的希望昨天來幫忙的你們能夠繼續設計程式,明年可能換成是你在那裡演講,而我們也將會有更多女人擔任講者或者參與會議。
Hazel:主辦本次活動的是 RailsGirls,所以現在讓我們來談談 RailsGirls 社群。根據你的觀察,這個社群有什麼因素能鼓勵女人加入程式設計?
Linda:我認為那有拓展的作用,但是因為 RailsGirls 是我學習程式設計的一個非常個人的東西,不能單純照本宣科、套用到每一位女人身上,就讓人走進程式的世界。正如 Charles 提到,還有很多團體組織正在以非常不同的方式工作。可以重複一下問題嗎?是什麼?[笑聲]
Hazel:也許我們可以改變一下問題,有哪些因素...
Linda:對了,有什麼因素鼓勵女人加入程式設計?正如我在演講中提到,對我來說,當初給我那個「啊哈時刻」的,是程式的實際應用、表達自己的能 力,以及事物創意的一面。我認為其中有兩種重要時刻:第一種是非常切實的時刻,就是當你看到栩栩如生的畫面,然後你說:「哇,這是我做的嗎?」第二種是比較知性上的樂趣,就是當你看到類似漂亮的程式碼的東西,然後你會說:「哇」,這是一個知性上的「啊哈時刻」。
有時候,我們的教育系統針對的是後者,在我們有那種實做的「啊哈時刻」之前,總要花很長一段時間去了解陣列怎麼運作之類的。也許要吸引更多女人加入,其中一種方式就是讓她們有更多第一種時刻。
Audrey:延伸這個比喻,我想說一下「人們為什麼要寫詩?」人們寫詩,是因為他們對某個東西有很強烈的感覺。正因為如此,很多十幾歲的青少年都會寫詩,因為他們對事物有很強烈的感覺。[笑聲]
只有少數人之後會繼續寫作,但無論如何,那就是火花的開始。那是第一個時刻。無論你是什麼性別、年齡,如果你開始非常關注某個東西,程式設計總是有方法幫助你實現這個目標。
一般來說,它可以自動化一些任務,讓你減少挫折;或者傳遞你的訊息;或者讓你身邊有更多的社群;或者得到更好的裝備,讓你可以更有效地做任何你關心的事情。軟體總有某種方法,像熟練掌握語言一樣,幫助你跟其他人溝通。
而 Linda 所說的第二點,當你看到你寫的詩感動了別人,他們到你這裡來,然後說:「嘿,我讀了你的詩,我感動極了,而且哭了起來。」—— 只是閱讀你的詩。然後你會得到一種成就感,因為你創造的東西觸及到另一個人的心靈。
這實際上很容易做到,尤其是做網站。所以這就是人們傳遞訊息時應該專注的另外一件事,不僅僅是使用現有的網路系統,例如 Twitter、Facebook 等等。只要你自己設計的東西 —— 即使它只是使用 iframe 和入門級 CSS 寫成 —— 就有著一種影響力,因為這就是你;它是你的一部分;是你靈魂的其中一塊,而不單單是部落格系統或社交網絡系統中的帖子。謝謝。[掌聲]
Charles:我想說,讓女人更容易進入程式世界的其中一個最大因素,正就是你們在做的事情 —— 讓更多女人投身社群,讓更多可以被識別為新程式員的女性加入。
你正在幫助未來女性程式員奠定基礎。你在幫助打開那扇門,讓它變得更具吸引力,使未來的女人可以更自在的成為程式員。
不要忘記,你正在做的是一件很了不起的事情。沒有你們,未來那些希望入行的人,將會跟 10 年前或者 20 年前的人遇著同樣的麻煩,所以繼續努力做你正在做的事情,因為你真的在幫忙。你現在正幫助世界上所有的女人。
Matz:我一輩子從來沒有寫過一首詩,但古語有云,詩是心中熱情的結晶。如果這是真的,那 Ruby 本身就是我的詩,是我大概用了 600,000 行 [笑聲] C 代碼寫成的詩。 [掌聲]
Charles:對啊,是一首史詩。 [笑聲]
Audrey:而且很動人。
Matz:但無論如何,創造 Ruby 背後的主要動機是熱情,是我對程式語言的熱情。熱愛程式語言對大多數人來講都不可思議,但我就是不能控制。[笑聲] 從高中時候開始,我就喜歡上程式語言,所以接下來的熱情很重要。
也許圈內的女士、女孩和男孩都會有同感,會有熱情想要創造東西,然後你看到你的軟體寫在屏幕上,讓你感覺很好。那就是讓你開始的熱情,熱情讓你成為更好的程式員、更好的創造者,甚至是藝術家。
如果我要說一點什麼,那就是 —— 順應你的熱情,然後滋養你的熱情。也許這對你成為一個更好的人是非常重要的。
Hazel:首先請大家給他們四位一點掌聲 。 [掌聲]
這真的令人興奮,對嗎?我知道在座很多人都從沒有參加過程式課程,或者是參與編碼過程。我想問一個問題。你們想要學程式嗎?如果你想,請舉手。舉起你的手,高一點。 [笑聲]。拜託,OK。請不要把手放下來。拜託,我們很快就會錄取你。[笑聲]
在座有沒有任何程式員願意教這些人,請舉手。哇,你看,有好多的手都舉起來了。我認為這是真的有可能。如果你真的想參與這個社群,想要學習,你只需要請他們教你,也許像 RailsGirls 一樣,你可以建立自己的社群。也許使用不同的語言,在不同的城市、不同的區域,這一切都有可能。
最後,我希望在座各位給觀眾一些話,鼓勵他們追求學習程式,或者也許他們想做點別的。你們可以講一些話嗎?
Audrey:我想邀請你忠於你自己。在台灣你可以在雜誌或書本上看到很多,人們都追求要像雜誌或書本封面的人一樣成功,或者一樣的有趣,或時尚。這種訊息到處都是。我想這已經是世界性的事情。
但我想鼓勵你,讓你知道,如果你遵循這些雜誌書本所列出的方式做人,你頂多只能夠成為一個很好的複製品,或者是某人一個更好的複製品。但是,那也不是不可替代的。這不是原創真實的,對你來說也不是真誠的。
我想至少對我來說,唯一追隨熱情的方法,是想想自己有什麼獨特的經驗,讓你在乎你所在乎的東西、讓你以自己感覺的方式去感覺事情,然後再從中發現真實面對自己的理由。無一例外,我認為熱情和慈悲心會隨之而來。謝謝。 [掌聲]
Matz:我喜歡閱讀科幻小說和幻想小說,也喜歡看好萊塢電影和科學小說,但在現實生活中我們沒有 ESP,也不像蜘蛛俠或者超人般有神奇力量,可是現在我們可以控制電腦。
我們可以控制網絡,從而以光速在一秒之間跟世界各地的人溝通。這是一種神奇的力量。我相信程式是一種神奇的力量,讓想像成真。所以透過學習,並具有程式設計能力,讓你可以命令電腦使用一些神奇的東西。學習程式,成為一個魔術師、一個精靈,變得更快樂。[掌聲]
Linda:現在我依然在試著搞清楚自己長大後到底想做什麼,到底我想要做什麼事情。 [笑聲]
我和 Audrey 有完全相同的概念。我回首看過自己的人生,試著找出是什麼時刻讓我變成今天的自己,讓我做著今天在做的事情。我想首先是八歲的那一年,我讀到 Steve Jobs 的一句話,那時候他在談論把點連接起來。如果你只會往前看,而不是向後看,你怎麼可能把點連接起來呢?
然後我看著天空,星星形成的形狀,有誰知道到底是哪個人想出了星座這回事?絕對不是科學家,也不是工程師,而是講故事的人。
人們以前想要透過繪畫,並說「這是一隻貓頭鷹;這是一頭驢」,然後試著了解天空。同樣的方式,我一直在嘗試找出自己生命中的點到底是什麼,而它們會形成一張怎麼樣的圖畫。
這些圖畫會隨著時間而改變,當中也有可能有著不同種類的連接,但擁有這些點本身就很重要,而且要開始思考它們會形成什麼。這就像 Audrey 說的,是每個人的個性,而且非常獨特,絕對不是從別人那裡複製的東西。[掌聲]
Charles:我有一點偏頗,但說實話,我相信能夠編寫程式是一個人能夠擁有最強大的技能。它基本上沒有要求什麼資源。當然有一台電腦的確有幫助,但本質上這一切都只是來自你的頭腦,就看你能創造出什麼來。
任何你能夠想像的,你都可以創造出來,而且你不需要什麼,只要有時間和精力就行。一旦你開始投入其中,它幾乎就像嗑藥一樣。你會感覺到自己到底有多強大,也知道你可以用程式做多少東西。要努力熬過艱難的早期階段,因為它是一趟很棒的旅程,真的令人興奮。[掌聲]
Hazel:OK。謝謝你。我從觀眾那裡收到了一些問題,但在回答問題之前,你們還有沒有其他問題想問?有沒有任何筆記你們想要傳到台上?有沒有人?這已經是所有的問題嗎?
那我們開始 Q&A 吧。我認為這個問題應該由程式員來回答。是什麼讓你想要讓女人參加這次活動?你認為這對參與本次活動的女人會有什麼不一樣的影響?
Audrey:現在的問題是,我想,是關於我們認為這對參與這次活動的人有什麼影響,那些活動讓參與的女人會有什麼生活上的改變。這是一個非常好的問題。
當我們想讓參與者自願擔起重要的社會任務時,我們要謹慎使用技巧。這是有關培養的問題,要培養一個在人們內在點燃的火花、觸及他們所在乎的東西。也許有人覺得很無力,是因為相信自己是世界上唯一在乎某個問題的人,或是認為那個系統太大、不可改變,單靠自己根本不能挑戰什麼,諸如此類的原因。
我認為寫程式本身,就是一種能夠賦予人們力量的方法,讓你看到世界上有上百萬的人,他們也許每天只花五分鐘的時間做某件事情。或者,如果你真的上了癮,你會每天花 15 個小時去做那些事情…… [笑聲]
而這些事情很明顯讓世界變得更美好。我認為那會影響一個人的生命,以其他領域很少可以提供的方式,賦予人們力量。
Charles:我想說我的理由比較自私一點。幾乎每個我所碰過的程式員都教會了我一些東西。如果女人不是這個社群的一部分,那麼有些事情我就學不到。我希望每個人都成為這個社群的一份子,有一天讓我有機會跟你們見面和討論程式。
這一切都是雙向的。社群的運作總離不開社群本身。它裡面必須有很多不同的人,很多不同的想法和看待事物的不同方式。它也不只是為了你而存在。我認為在程式世界、IT 和高科技世界裡,引入更多想法絕對是至關重要的。這是一個很好的方法去做到這一點。
Linda:至於 RailsGirls 活動,我們常常說,其實在一個週末,特別是對 Rails,根本不可能學到太多關於程式設計的東西。可是,你有機會跟導師接觸,你能夠跟一位真正的程式員溝通,然後你也會跟其他所有因為科技感到興奮的女人碰面。
在台灣,你會在活動上看到很多女人,但我們曾經在埃及開羅或者是亞塞拜然,他們甚至不知道有其他女人會因為這個東西而感到興奮。這是一個非常強大的東西,去改變和接觸人民群眾。
Matz:每一個人的動機和背景都不一樣,比如說獲得新的知識,或者是透過學習程式設計提高收入,但不管你背後的動機是什麼,我真的希望你能夠理解寫程式本身是非常愉快的事情。它很有趣。我寫程式已經超過 30 年,但我從來沒有感到厭倦。這是非常令人興奮的。我經常忘了吃飯,忘了睡覺。[笑聲及掌聲]
真的,它真的那麼有趣。我希望你能夠理解當中的樂趣和喜悅,而且你也會有自己的個人動機,加上你知道那種樂趣將會改善,甚至於提升你的個人動機。
Hazel:第一個問題之後,現在輪到第二題。這題也涉及到第一題。發問的人正在行銷業工作,想問學習程式設計,會對現實生活有什麼幫助?
我想也許這個問題,我們應該問一下這裡的 RailsGirls 參與者。有沒有任何 RailsGirls 想要回答這個問題?有沒有 RailsGirls?哎呀。我覺得 Linda 應該有很多關於這方面的經驗。
Linda:讓我想一想,行銷人員,也許會舉辦電郵活動。也許你可以做一個儀表板,展示那些電郵活動的分析,那樣你可以更好地傳達給老闆知道,這些東西有多麼重要。
也許你需要買一個新的活動網站,然後程式員告訴你:「這是不可能的。你不能做到這樣。」之類的話。那麼你就可以肯定的說:「是喔?亂講。你這樣做就可以了。」 [笑聲]
這類事情,我想你的行業裡有很多實在的東西可以做。有沒有其他想法?我從來沒有做過行銷。
Audrey:我打算從比較哲學的角度聊一下。行銷就是把訊息傳遞給其他人,讓對方用他們有的東西跟你交換,然後彼此都變得更好。這就是行銷的基本概念。
傳統上,有三種為人熟悉的交換或市場營銷行為。其中一種是內團體(In-group),就像我們同在一個家庭,或者是處於同一個「社區」裡,當中有分內團體(In-group)和外團體(Out-group)。
家庭或是這些內團體的成員,他們會共享一切、交換一切,可是他們不會跟外人,比如說非我族類(「外來人」)分享。這就是其中一種交換模式。
第二種交換,就是我們在政府或者是其他層次結構中看到的,我們只會跟梯子上方或下方的人進行交換。比如說,我只會向我的經理報告,然後我的經理會跟他們的經理報告,再往下分配資源。這種交換是完全科層式的。
第三種就是我們跟任何有錢的人交換。我們向有錢的人提供服務或貨品,然後我們用這筆錢再與別人交換,與其他向我們賣東西的營銷者交換。基本上就是使用貨幣交換。
以上是世界上三個主要的交換模式。
可是,以行銷者的身份參與開放源碼(像 Ruby 社群),你就能學會世界上第四種交換模式,也就是說,你可以自由地跟世界上任何人,為了任何目的而交換。
這是一個非常革命性的想法:我不在乎你是否跟我來自同一個族群;我不在乎你是不是台灣人。我不在乎你是不是老闆或經理;我不在乎你有沒有錢。我想向你提供我的服務,我就慷慨給你。
我們已經證明了,這種行銷方式(像 Linda 的 Kickstarter 活動)比起前三種傳統交換模型,能夠更有效地在更短的時間內接觸到更多的人。這將會是 21 世紀的潮流。參與開源社群,你會親眼看到它如何運作,以及掌握它的運作方式。 [掌聲]
Matz:我曾經是一個專業程式員,我現在還是。可是以前我為公司打工,我在團隊裡開發軟體。那個時候有很多事情都不在我控制之內,所以當時老闆決定說,你要使用這個工具、你要使用這個語言,諸如此類的,但都是廢話。 [笑聲]
現在我在做開源軟體,主要是因為它比較受我控制。我可以自己決定做什麼專案,可以決定使用什麼技術。某程度上我可以決定自己今天想要做什麼,比以前好多了。我想寫程式的樂趣之一,就是讓你更有權力、更能控制。當然,有權力就必然有責任。
Hazel:謝謝。接下來是關於程式設計普及性的問題。如果女性程式員社群越來越大,她們對程式設計的相關市場有沒有什麼影響?
Linda:我之前在寫關於這個問題的報告。世界上首位專業程式員出現在第二次世界大戰的時候,當時也有很多女人操作電腦和計算彈道等事情 —— Audrey 可能會知道更多關於這個歷史 —— 當時他們在為自己的國家服務。
然後到了上世紀 60 年代,操作電腦或者是做電腦程式的都是女人,因為男人覺得這是一個愚蠢的體力勞動,所以就讓女人去做,她們負責操作電話系統也是相同的原因。
可是這些女人後來意識到,程式的力量真的很強大,然後她們的技術變得愈來愈好,就像從前的貝爾實驗室。
我已經不記得那台電腦的名字了,但人們那時候就在這台電腦上工作。「程式設計只屬於男性」的整個形象都是在 60 年代的時候才出現的,因為男人想回到程式行業。他們所設立的程式員職位的要求,都是為了只讓年輕男性入行而訂下的,而且整個運動就是很刻意的去做。在這之前,它就是一個女人的職業,不論好壞,因為它沒有受到當時的社會所看重。也許 Audrey 會了解更多。
Audrey:其實,Linda 已經幾乎說了美國那邊所有有關的歷史。我認為程式教學和服務業 ,將會變得非常分散。
在 20 年前,我們有所謂「結蛹期」的概念。這是黑客詞典 Jargon Files 裡的一個詞。它說,基本上要成為一個專業的程式員或黑客,你必須花三、四年的時間沉迷於電腦當中,你會完全打亂你的睡眠模式,一次寫 20 個小時的程式。然後,到了某個點,你就會頓悟。這其實很像禪宗的想法。[笑聲]
一旦你到了那個點,所謂「零的轉移、巫術的權勢」,基本上你就成為一個巫師。一旦你成為巫師,正如 Matz 所說,所有關於性別、種族、年齡、國籍的差別都會消失。這就像《駭客任務》中 Neo 把一切都看成是綠色數字的一幕。[笑聲]
到了那個階段,沒有東西能夠影響你的客觀判斷。這也是一個非常禪宗的概念。可是我認為這算是一個神話,主要是因為那個時候如果沒有網路社群,要學習程式是非常困難的事。
現在有 RailsGirls 和類似的社群,我們就有了一個緩坡。你可以非常舒適地留在斜坡上的任何一點,還有很多人會在同一級階梯上互相支持,不一定需要兩三年的密集時間。用這種方式,你可以學上五、六年 —— 你甚至可以一天睡 8 個小時也不會退步。我認為這會大幅改變市場,因為除了業餘愛好者和專業人士之外,階梯上的每一點還會有細分的市場,這樣市場和社群都會變得大很多。[掌聲]
Hazel:下一個問題:你第一次投身程式設計是什麼情況?
Charles:我真的不知道是什麼時候,大概六、七歲吧。我學會了如何使用電腦後,就立刻試著了解如何讓它做更多的事情。
可是這麼多年來,真的激發了我繼續走下去的,除了覺得自己很厲害的感覺之外,就是能夠編寫軟體幫助人們,讓別人快樂、讓人們的生活變得更容易。
我對 JRuby 工作很有熱情,因為我聽到使用者的故事,他們很愛使用我們的軟體。他們很高興,而且生活都變得更好。那就是真正讓我繼續走下去的動力,而且還激發了我繼續成為一個程式員,嘗試讓每個我認識的人都成為程式員,因為它真的為其他人的生命帶來很多。
[講者把麥克風傳來傳去]
Audrey:這就像在傳接力棒,對吧?
我記得我第一次寫程式是在我七歲的時候,家裡有一本很舊的書。Matz 剛剛私底下告訴我,他在一間小鎮的圖書館裡,找到一本關於 Ada 程式語言的書。 那時候日本沒有很多關於程式語言的書籍,所以這本 Ada 參考書,他就從頭讀到尾。很不幸的是,我的書是講 GW-BASIC 的。[笑聲及掌聲]
如果它是一本 Ada 的書,也許我會成為一個更好的程式員。可是無論如何,我也把它從頭讀到尾。但那時候我沒有任何電腦,也沒有看過任何電腦。
我所做的是,拿了一張紙,開始在上面寫,又畫了一個鍵盤在上面。我開始在紙上按著。我按著那些鍵,並寫下出現在命令行後的英文字母。然後,我還記得輸入「10、空白鍵、RANDOMIZE TIMER」時候手指的觸感(這是 GW-BASIC 程式一開始要做的)。在我遇到人生第一台電腦時,這已經銘刻在我的肌肉記憶裡了。
這對我來說,是一個關鍵的時刻,因為它的意義是,計算不只是和電腦有關,而是某種思維方式。透過某種方式 —— 如果你用某種方式組織你的思想,它會產生可預期的成果。它所產生的東西,你可以展示給其他人看,這樣他們就可以複製你的成果。
實際上這就是科學的範型。一個沒有任何科學儀器的人,可以靠著一本古老的 GW-BASIC 書,就自己體認到科學方法。對我來說,這就是具決定性的一個時刻。
Matz:嗯,我也有類似的經歷。我遇上電腦的時候已經長大了,那時候我 15 歲。那時候電腦運行的是 BASIC(簡化版),語言是非常有限的。它只有大概 4K 的記憶體,BASIC 的要求非常嚴格,它只容許一個字符的變數名稱,意思就是說,你只能有 26 個變數。這讓我很挫折。
在書店裡,我找到一本關於 Pascal 語言的書,於是我就從頭讀到尾。後來我意識到,其實世界上有很多種程式語言。各種程式語言彼此不同,那些語言的創造者一定有自己的意圖。
那個時候,不知道為什麼我有個想法,如果有人為了自己的目的去創造了程式語言,那為什麼我不行?
從此以後,這個想法擊中了我的大腦,我對程式語言變得非常、非常感興趣。不管是怎麼樣的程式 —— 我不在乎,我只在乎程式語言。
所以,我有其他朋友想要寫程式,比方說,來創作遊戲或賺錢什麼的,但我都不在乎。我只關心這個媒介,而不是目的。我跑去讀 Ada 的書、Pascal 的書,還有 Modula、Lisp 和其他程式語言。
可是我沒有一台電腦用來創作程式語言。我沒有關於編譯器或解釋器的知識,所以我就拿出筆記本,用我想像中的程式語言寫下程式。你不需要會寫程式,就可以設計程式語言了。
不幸的是,我弄丟了那個筆記本,真的很可惜。我什麼都不記得了。我相信那是在 Pascal 和 LISP 之間的一種語言。
其實我在高中時代沒有懂得電腦的朋友。後來上了大學,我遇到一些喜愛寫程式的人。那個時候,我發現很少有人會關注程式語言。之後,我去研究資訊科學,學會了怎樣寫編譯器。接下來,我慢慢地創造出 Ruby。不知不覺地,它就接管了世界。 [笑聲]
Linda:[笑聲] 我已經講過關於我做高爾網站的故事了。 [笑聲] 關鍵的時刻。最近,我去逛書店。在做畫 Ruby 繪本之前,我試著找一些書籍,是孩子了解電腦如何運作的。
我找到大量談論天文學的書籍,像如何成為一個天文學家,或者內燃機如何運作,目標讀者都是孩子 [笑聲] ,但就是沒有一本有解釋電腦是如何運作的。對我來說,那就是一個「啊哈」時刻,這種關於軟體工程的材料有存在的需要,也許要做這件事的人就是我。我很喜歡 Audrey 提到的紙張電腦例子。
其中一件我想做的事情,就是做一個小小的摺紙電腦,孩子們可以自己動手組裝,放入迷你 CPU,就像擁有一台真正電腦的感覺,是他們第一台摺紙電腦。正如 Audrey 所說,運算不只是關於實際硬體或者類似的東西,而是操作它的那段經歷。
Charles:保持對程式的熱愛,看看你每天都會碰到的問題,然後找個方法使用程式來解決它。以養育孩子為例,真的有千千萬萬種方法讓你使用程式來幫助你管理 —— 睡眠時間、飲食等等。各種各樣的事情,你都可以做得到。 [笑聲]
另一件事要記住,我們作為人類擁有的所有技能當中,進行程式設計的能力,對你的要求可能是最少的。你真的只需要花一點時間和精力。當然,如果你在養育孩子,那你真的可能沒時間也沒力氣。
可是只要你能夠每天拿出短短幾分鐘的時間,繼續前進,從你的生活和熱情當中創作出新東西(如果需要的話,有關於孩子和家裡的東西)。那麼你就可以繼續下去。你就可以繼續下去。
我已經無法想像程式設計不是我生活的一部分這回事。即使在最困難的時候,我有時候都會拿出一點時間來休息,我不得不離開一下。我曾經被自己在做的專案累壞了,也曾經因為別人針對我、我的程式、我的專案所說的話感到難過。可是我總是會回來。
我不認識有任何人曾經是程式員,後來卻放棄的個案。它以某種方式改變了你,我想這會跟著你一輩子。
Linda:一個實際的例子,我的朋友做了一個小小的 Arduino 時鐘,連接到她的 Fitbit。它有一個小屏幕,總是為她的小孩顯示著她離家還有多少步。也許就是這種專案,幫助點燃心中的熱情。
我想引用一些很實際的德國朋友說的話。我曾經跟世界各地很多人談過他們參加 RailsGirls 的動機。其中一個德國女孩跑過來跟我說:「寫程式是最靈活的工作,薪水高,你可以在家裡跟孩子們一起做。你可以在晚上做,也可以在早上做。」這讓她們能夠自給自足,因此她們想要轉行。 [掌聲]
Matz:女士們很容易從程式設計和事業分心。主要是因為社會壓力,還有心理「思維模式」之類的。我現在宣布,對程式和事業抱有熱情是沒有問題的。即使你要照顧家人和孩子,你都可以對程式或事業抱有熱情。
你任何一天都可以回來。那種熱情可以激勵你。那種熱情可以推動你向前。[掌聲]
Audrey:以下是親身經歷,其實我弟前一陣子在教我父親寫程式,那是好幾個月前的事。我的父親 60 幾歲。他有很多學生要教,還有很多日常事務,他有三隻狗,還要照顧父母等等。
我在教人寫程式時,我覺得最重要的事情,是把你的想法放在某個地方,讓其他人可以看到並改進。當然 Ruby 是讓你做到這一點的快速方法。只要你有 GitHub 帳戶,你就可以直接放一些東西在那裡,甚至只是作為一個 Gist 也好,不用建立一個檔案庫,人們就可以開始使用代碼工作,並給你想法和建議。
即使這很困難(GitHub 對我爸而言並不容易),也可以使用其他工具,例如 Hackpad,甚至像 Google Doc、Google Spreadsheet、EtherCalc 或類似的東西,任何線上的試算表、共筆文件、或者是繪圖工具。你可以把你的想法發布在一個地方,讓每個人都可以看到和評論。這其實就是寫程式的第一步。我的意思是從社群的角度切入,而不是從代碼的角度。
回到原題。我覺得對於時間比較零散或有限的人,其中一種方法是觀看或參與。有一些需要群眾投入的專案,其實並不需要你投放全部時間。
舉例來說,這裡幫 g0v 零時政府打個廣告。我們現在有一個專案,有人到監察院裡印出政治獻金報表。它被鎖在 PDF 格式裡面,而且只能列印成紙本帶出,一定還會加上浮水印。他們不在網上發布,而且印的人還要付列印費,每次只能夠拿特定的頁數出來。這是非常古老的做法,因為監察院沒有足夠預算做電子化。
我們所做的,是請人們把列印本拿出來,進行掃描,再把它們上傳到 DropBox 或 Google Drive。你不需要有什麼技術去做這一點,然後我們用演算法把它們分割成單獨的格子。
然後你到網站上,會看到某個格子的圖形。這就像一個驗證碼(Captcha)或遊戲,只會看到一張圖片,然後你要輸入 —— 也許是一個名字,或者是一個數字,你只需要鍵入它就好了。有了這個群眾來源的方式,我們已經辨識了 300,000 格的資料,而且還在增加當中。人們一起改善代碼和流程,讓捐款資料能夠公開透明,成為公共財的一部分。
這個專案激發了很多原本不知道什麼是程式設計的人,他們開始幫助我們寫更好的指引。比如說,有一位朋友,他從來沒有設計網頁的經驗,他只是非常認同這個活動,就自己開始學習如何寫一個基本的 HTML 網頁,只是為了把自己設計的漂亮圖示,寫進專案的標準作業程序裡。
總歸來說,就是要把東西放到人們可以看到,並允許他們有貢獻的地方。哪怕你每天只有五分鐘,或者只有 15 秒,都可以感覺到你是社群的一份子。而你結識的人,將來當你有多一點時間時,就會帶你進一步向前走。
a̶n̶ assembly language | ![]() |
---|---|
translation is a site of struggle | 翻译是斗争的场域,抗拒 |
essential to the formation of subjects | …新物流地帶諸眾「分流」 |
that can resist the “pooling” of populations | …為生體資訊價/碼: |
as producers/consumers of bioinformatic value/code | …或產出、或消費 |
in the new logistical zones. | 而成主體,不可或缺。 |
we ask: if the translation-function | 試問那通譯函式 |
could not in fact be re-programmed | 我們能否重新編程 |
rather than deciphered— | 毋需解碼—— |
to see if translation, that is, could be viewed: | 來繙轉看進: |
not as an objective terrain | …遍在的科技 |
but as an immanent technology | …移風易心 |
of anthropological transformation? | 而非客觀地景。 |
“a world no longer dominated by value” — | 「標價不再宰治世界」—— |
a world in which the translation-transfomers | 此世傳譯,當變形金剛: |
destroy the apparatus of area | …摧滅區域之措置 |
and the index of anthropological difference, | …摧滅族別之索引 |
— liberating the common. | ——以此公共解放。 |
— Jon Solomon, «The Taiwan Spring: When the Transformers invest black boxes»
— 蘇哲安,〈台灣之春:當變形金剛圍攻黑箱之際〉
這是很久以前剛學 Haskell 時看到的一篇 日文諧擬作品,現在翻譯出來,作個紀念。
鑽研語言宗教學以及腦生理學的專家們,去年測量了激進派 Haskell 信徒專注於咒術時的腦波。觀察在該情境下掌管「人性」的腦前葉部份,可發現 α 波的強度增加,而 β 波的強度則減弱。
在腦科學界裡,α 波咸認為是個人在放鬆時會出現的腦波。「[咒術師]將眾多函數電腦化的過程裡,flip 和 (.) 彷彿化成一片唸唸有辭的洪水,將不純淨的副作用超度昇華。上述過程,就好像幼童拿著木棒,不斷重複對髒東西又 (>>=) 又 (>>) 的行為。我認為這會對腦部產生某種影響。」艾努博士如此述說他的發現。
艾努博士在訪問裡,還指出了更驚人的事實。「這個腦波的波形,與『Lisp 腦』患者非常的類似。」他接著對我們說:「Haskell 派雖然不為大眾所知,但專門學者普遍認為,就算在『函數型程式語言』這個宗教裡,他們也是屬於特別危險的基本教義狂信派。
與採取現實路線的 ML 派不同的是,Haskell 派會不斷重複詠唱『南無參照透明性』的咒文,一旦決定某個數值之後,就非常頑固永遠不肯變更。也因為他們的這種執拗性格,所以也將與外界的對話視為一種禁忌。他們對 ML 的妥協路線感到不滿,同時也認為 Lisp 派的浪蕩行為是對『唯一絕對真神 λ』難以饒恕的背叛。Haskell 派將現世的資料視為不淨之物, 為了讓自己專注於操作函數,『現實世界』對他們來說,只是函數裡的某個參數而已。」
艾努博士接著說:「不再考慮現實世界後,魂結斷裂的 Haskell 派信徒將會逐漸忘記『程式語言只是馮紐曼電腦架構裡,為了傳達機械動作的指令集』這回事。對他們而言,程式不是為了解決問題的計畫與說明書,程式語言本身就是世界的記錄。也因為這樣,他們會認為自己已經瞭解了世界的全部,而煽動『不需要去考慮程式繁雜內容』的幻想思維,更把其他宗派對執行效率與空間效率的改善,貶低為『小家子氣』的行為。
而在 Haskell 派裡,除了把傳統語言視為不淨之物的成員之外,還有更加極端的份子,將『唯一絕對真神 λ』過度神聖化,而開始將聖名 λ 從程式碼之中除去的人,也就是所謂的『無點流』(Point-free Style)信徒。」
「『無點流』是一種麻藥,它將現實世界的存在,不斷減弱到只剩下一些虛擬參數的地步,讓操作者完全脫離現世,沈浸在游離的幻覺世界當中。」艾努博士將這類型的程式腦,稱為「Haskell 腦」,認為這是比「Lisp 腦」更加危險的狀態。
「Lisp 腦」的患者,由於能夠以超人的速度撰寫程式碼,所以招致其他工程師的嫉妒。「Haskell 腦」的患者,則是表現出「寫出根本沒有次序,無法被稱為程式碼的函數」、「如果要求說明的話,就用一些『這就 λ 啊』、『這就 Monad 啊』的宗教術語來打馬虎眼」、「滿口『5 倍速根本太慢了』,『同一個數量級裡的最佳化難道有意義嗎?』的囈語,然後還亂發脾氣」、「不能依照計畫順序來處理工作」、「不能預先決定要處理哪些事項」等等狀況,讓身邊的工程師和上司都完全無法理解。
某些大學裡也有教導 Haskell 程式語言的課程。當記者提到這件事的時候,博士卻勃然大怒。「這是扼殺程式能力的教育!讓學生們學習 Haskell,等於是摧毀他們對結構化程式設計基本三要素『順序』、『分支』、『重複』的理解!我認為這個程式語言背後的黑幕,就是軟體世界之首『微暖研究院』的術士,日日夜夜想要召喚黑魔法的陰謀。這不只會對工程師們造成影響,恐怕全世界的人類也都…… 我不能再多說了。」
最近的研究指出,使用 Haskell 的工程師討厭與外部的人進行對話,和繭居族的症狀十分相似。「Haskell 會讓人變成繭居族。」艾努博士如此斷定:「這些人會封閉在自己的殼中,沉溺於自由自在表記世界的全能感裡。」
博士接著在記者的耳邊小聲說:「底下這兩個記號,就是被典型的 Haskell 程式員視為唯一絕對神崇拜的存在。」
¥ λ
「如果第一個符號在你眼裡是日圓記號,那表示你還沒有受到影響。但是呢千萬不要放鬆,你絕對不能說出後面那個拖著腳走路的人的名字……」
這是 2014-04-27 在 TEDxTaipei 與 Linda Liukas 座談前的演講內容。
中文投影片 & English Transcript.
感謝琳達分享引人入勝的故事。有幸獲邀來到這裡談談「程式語言與 RailsGirls.tw」,我想先從一些程式語言的故事開始說起。
我們都知道,Rails 構建在 Ruby 語言上。松本行弘創造 Ruby 語言時,混合了他最喜愛的五種程式語言: Ada、Eiffel、Lisp、Perl、Smalltalk。
因為演講只有 20 分鐘,沒辦法五種都涵蓋,所以讓我們先從 Ada 開始說起。Ada 位列名單之首,不僅是因為它的名字以「A」開頭,更因為它是根據世界第一位程式人愛達‧勒芙蕾絲(Ada Lovelace)而命名的。
1842 年,愛達為分析引擎(Analytical Engine,第一部通用電腦,設計一個世紀後才製造出來)寫了程式。不只如此,愛達也是首位意識到電腦不僅限於處理數字的人,也預言了未來人們可以在電腦上創作音樂和藝術。
愛達的母親安娜貝拉,是一位早慧的數學研究者。愛達的父親是偉大的浪漫主義詩人拜倫,他為妻子取了個綽號叫「平行四邊形公主」,因為安娜貝拉具有嚴格的道德觀,嚴謹的程度有如數學公式。
程式設計這門藝術,正是融合了數學和詩詞。好的程式就像數學公式,既嚴謹又正確。程式設計者的工作,卻和詩人相似——我們運用語言來創造,以簡潔的方式陳述使命,而且我們會互相激發靈感,來繼續彼此的工作。
正如迪科斯徹教授所說: 「除了熱愛數學之外,專業程式人最重要的,就是精通自己的母語。」
數學家和詩人都需要一致的願景,來引導自己的工作,這原則也適用於專業程式設計:如果沒有一致的願景和完整的設計概念,馬馬虎虎的程式很快便會變得難以維護,以致當你試圖修復一個錯誤時,會導致更多錯誤產生。
然而,專業程式設計並不是唯一的一種程式設計,甚至不是最流行的一種。近二十年來,全球資訊網上最知名的語言是 JavaScript。它是一種「腳本語言」,雖然很容易上手,但亦因此很容易編寫出馬虎而且充滿錯誤的程式。
腳本語言(Scripting Language)和編程語言(Programming Language)的區別,可以追溯到 20 世紀 70 年代。當時跨平台的 C 語言出現,幾乎能在所有電腦上運行。貝爾實驗室的電腦科學家用 C 寫下幾百個程式,它們串接成一個複雜的作業系統,也就是 Unix。
Unix 系統的一般用戶通常不會寫 C 語言,他們寫的是「shell 腳本」,寫法簡單(通常只是一系列的指令),但一旦複雜起來,就變得很難維護。
在 80 年代當中,複雜強大的編程語言繼續出現,如 Objective-C 和 C++;也出現了簡單但能力有限的語言,如 sed 和 AWK。
這是一個線性光譜,中間是一片荒蕪。如果腳本變得過於複雜、無法維護,人們會用「真正」的編程語言(如 C++)重新編寫。
1987 年,拉里·沃爾說:「我們可以打破這道光譜,把它想成一個二維空間。」他看到 C 善於「Manipulexity」,也就是操縱複雜性的能力,而 shell 則善於「Whipuptitude」,也就是信手捻來、一揮而就的能力。
Perl 誕生在這個新發現的空間當中,它可以兩者兼顧,也可通過重新定義自己的詞彙,來進行演化。隨著時間推移,Perl 的「信手捻來力」已經變得比任何 shell 腳本都要更好,至於其「複雜操作力」,除了規模最大的程式之外,也與 C++ 和 Java 在伯仲之間。
因此,Perl 程式員可以先寫出簡單的腳本作為開端,然後通過「重構」技巧,逐漸使之變得更加嚴謹和正確,而毋需切換到不同的語言。
90 年代,受 Perl 影響的新一代語言出現,如 Python、PHP 和 Ruby。它們向著各自的領域比 Perl 更進一步;我認為 Ruby 是三者中最靈活的一個。
2005 年, Rails 專案把伺服器端的 Ruby 和客戶端的 JavaScript 結合成全端的網站服務框架。對於很多使用 C++ 或 Java 工作的人來說,Rails 首次展現出所謂的「腳本」語言,也可以構建比當代「編程」語言更宏大、更複雜的網站程式。
Rails 之所以成功,部分原因是它使用 Ruby 的「元編程」特性,將語言本身改編為適合特定領域的一家之言,例如 ActiveRecord。
此後盛行的框架,例如 jQuery 和 AngularJS,也對 JavaScript 採取了同樣的方式,把它改編成更嚴謹、更安全的語彙,來表達我們的願景和設計概念。
來到 2010 年代,Rails 採用了 CoffeeScript 這套程式語言,來搭配內建的 jQuery 框架。CoffeeScript 將與 Ruby 類似的語法,編譯到 JavaScript 的「優良部份」。這是元編程概念的一個延伸——改造一套語言,保留它最好的部分。
Perl 社群的朋友接力將 CoffeeScript 改造成 Coco 語言,Haskell 社群的朋友再將 Coco 接力打造成 LiveScript。如今,我大部分的程式都是以 LiveScript 撰寫,它讓我用像 Ruby、像 Perl,或是像 Haskell 的方式,來表達相同的願景,端視哪種方式最適合當下的詩意,噢,應該說是語意才對。
以上就是關於 Rails 和程式語言的故事。接下來的部分,我想談談 Rails Girls 中的「Girls」(女孩)部分。
20 世紀上半葉,致力爭取婦女權益的運動者,已經在法律上取得不少勝利,為世界上許多人在投票權、教育權、個體經濟、結婚和離婚等事宜上,帶來平等待遇。
然而,這種法律上的平等並不代表實質的平等。正如西蒙·波娃在 1949 年所觀察到的,許多社會並不是用法律來貶低女人,而是靠語言和行為上的「他者化」(Othering)。因為男人被認定為預設主體,社會對待女人的方式經常將其視為「他者」,也就是異於預設。
70 年代,社會工作者和思想家應用此想法,觀察出各種社會構建的期望,統稱為「性別角色」。比方說,某個社會可能將婦女限制為兩種主要角色:「女孩」角色——可愛、欲望的對象,與人無害,但處於弱勢地位;或者作為「母親」角色——照顧者、提供情感支持,以及生殖媒介。
這裡缺少的是什麼?當然就是每個人對自己命運的期望。每當我們與加諸於己身的社會角色發生衝突時,就會感受到社會壓力。
要解決這個問題,需要採取一個願景: 人的命運不應受生理構造的支配。從實務上來說,我們可以再次引入「Script」和「Program」這兩個概念,從社會研究的角度來定義它們。
拉里‧沃爾在 2007 年的講座裡這樣說:「如果我們回到過去,問愛達‧勒芙蕾絲說 Script 和 Program 之間有什麼區別,愛達可能會笑著說:嗯,劇本(Script)是給演員看的,而程序(Program)是給觀眾看的。愛達的確是位聰明的女士……」
在這裡我們可以看到,所謂的社會「劇本」就是身處某個角色中的人,被要求採取的行動。相反的,社會「程序」則設定了參與者對「正常狀態」的期望,但並沒有像劇本那樣,規定人們的行動方式。
舉個具體的例子,1994 年當我剛剛開始進入資訊領域時,是一間小出版社「資訊人」的網站管理員,透過 BBS 在線上工作,有時也會到辦公室。出版社的工作者們,要不自己就是同志,不然就是支持 LGBTQ 族群的人。那是一個安全的空間,讓我能探索自己的性別表現。
出版社在 1995 年改組成「資迅人」軟體公司,我擔任技術總監時,開始參與全球自由軟體社群的工作。當時台灣本地的軟體業的性別還算平衡,但當我發現線上的自由軟體社群全是以男性劇本為主導時,不免大喫一驚。
不久之後,我發現許多女性朋友在自由軟體社群的論壇和聊天室中,都使用男性化的網名。這並不是因為他們喜歡這種性別表達方式,而是作為一種防止騷擾的自保策略。這顯然是個問題。
1998 年,開源運動(Open Source)方興未艾,我在矽谷、中國和臺灣幫忙新創公司,也開始參加實體的開源聚會、四處演講。此時我不禁注意到,這些聚會的成員無論在性別表現,或是族裔組合上,都非常單調。
舉例來說,我在這些聚會裡,好幾次聽到這樣的詰問:「你是跟男朋友來的嗎?」,但從來沒聽過「你是跟女朋友來的嗎?」或是「你是跟伴侶一起來的嗎?」——這顯然是個社會劇本,讓聽者感到自己是「他者」、局外人,而不是會議的參與者。
之後,我回臺灣參與開放文化社群的工作時,即開始有意識地在我所有的中文網路著作中使用女性代名詞,試著扭轉語言「他者化」的局面。
2003 年,我們開始組織自己的聚會時,我費心邀請了最友善、最有同理心的國外講者群,來幫助我們建立更放鬆的氛圍,讓參與者得以享受安全的空間。
然而,隨著開源運動在商業領域盛行, 資訊界的「商展」文化也逐漸開始影響會議的文化。一方面是攤位的走秀模特,由廠商聘來吸引目光;另一方面是演講內容中使用性意象的問題,甚至出現在自由軟體和開源社群的某些知名講者上。
2009 年,長時間活躍於 Perl 社群的朋友 Skud 開始巡迴演講,在各大會議上指出這個文化問題。Skud 創立了「Geek Feminism(技客女性主義)」的共筆與部落格平台,讓我們可以紀錄問題,並共同努力加以改進。
經過一年的努力,參與共筆的朋友們推出「行為守則」模板,也就是設定聚會上行為規範的社會「程序」。2011 年,兩名來自 Linux 社群的 Geek Feminism 貢獻者瓦萊麗‧奧羅拉和瑪麗‧加德納共同創立了「Ada Initiative」,全職投入支持女人參與各式開放科技與文化社群的志業。
在許多貢獻者的幫助下,Ada Initiative 與超過 100 個組織單位合作,幫助他們為會議的行為守則做出承諾。我很高興能看到即將舉行的「Rails Girls Summer of Code」活動也名列其中。
行為守則由三個要素組成:
- 常見,但不能接受的行為之具體描述(如性別歧視的笑話等)
- 如何回報此類事件
- 對處理此類事件的承諾
有了這些,人們才能在安全的空間裡,意識到自己習以為常的社會劇本對彼此的影響,進而重構出一個更能持續發展、以開放性和多樣性作為長遠願景的社群。
Ada Initiative 持續舉辦活動,我們在 Geek Feminism 共筆上也有各地的資源與社群,希望各位有空時可以來網站上看看。
對我來說,最具啟發性的也許不是「守則」本身,而是「一起編製程序」,也就是將它調整成最適合地區文化的過程。
當我們為社群參與者創造出安全空間,來觀察和決定我們自己的社會劇本,我們就可以編製出共同的社會規範,既嚴謹又創新——就像是最好的公式、詩詞和程式那樣。
最後,我想與大家分享一下我的兩段詩詞節錄:
I would like to know you
not by your types,
classes or roles —
— but by your values.我想認識你的
不是型別、
類別或角色 —
— 而是心中的價值。Saying "Life is what we make it to be",
is like saying "Language is what we make it to be" —
True, but not at once;
— just one bit at a time.說「生命的意義要自己創造」
就像「語言的定義自己創造」:
對,但不能一蹴而及,
只有篳路藍縷。
謝謝大家。
握在手心 你的安慰 | Held in my palms, your solace |
足以讓殘破變美 | Turns desolation into beauty. |
綻放無畏 | An intrepid blooming |
無懼黑夜 | Unafraid of the dark. |
一回神到了現在 | At the blink of an eye I'm here, |
看身邊季節輪轉 | Watching the seasons unfold around me. |
其中的色彩 | The colors within |
我漸漸明白 | Are dawning on me. |
二十三十之間 | Between twenty to thirty, |
距離只有一點點 | ’Tis but a short journey. |
一口氣和一句誓言: | With one vow in one breath: |
我願 我願 | I do — I do. |
無論是高山或是低谷 | Mountains high or valleys low, |
你看著我每個腳步 | Thou watchest o’er my every step. |
你愛將我圍住 | Thy Love surrounds me, |
聖靈裡有一切我要的滿足 | Thy Spirit satisfies my every need. |
我是一棵秋天的樹 | I am an autumn tree, |
安安靜靜守著小小疆土 | Quietly guarding a small plot. |
眼前的繁華我從不羨慕 | I envy not the flourish I see before me, |
因為最美的在心不在遠處 | For the great beauty lies in the heart — not afar. |
二十三十之間 | Between twenty to thirty, |
看身邊季節輪轉 | Watching the seasons unfold around me, |
無論高山或是低谷 | Mountains high or valleys low, |
綻放無畏 無懼黑夜 | An intrepid blooming, unafraid of the dark, |
因為最美的在心 不在遠處 | For the great beauty lies in the heart — not afar. |
— Lyrics: Chen-Yu Mag Lin, Chang-Te Hsu
— 詞: 林真宇、許常德
I.
We have
a calm and peaceful love
No angles to damage
No hardness to destroy
I love the people who make you happy
and the things you grew up with:
metal, wood, fire and water;
the sun, the moon, the mountains and rivers;
friends and companions;
peaches soft, frost harsh.
So, I love
the whole world
II.
I shall pause for you, time and time again
listening to how you tell me,
among people, many troubles;
among people, many rains;
among people, many clear days.
I shall scribe for the world, over and again
thinking about how to tell you,
that body has more happiness;
that world has more blessings;
that the way has
more harvests ripe;
more radiance bright.
— Chen, Yi-Wen, «Two Notes»
— 陳依文,〈雙箋〉
無念 | M∅u Nim |
---|---|
原無甚麼值得聽 | Nothing was worth hearing |
但耳根怕靜 | but my ears feared silence |
尤其靜得 | when it became so quiet |
心跳有聲 | they heard my own heart beat |
如無甚麼值得映 | Nothing was worth seeing |
為要心鎮定 | but my heart craved tranquility |
蜃樓海市 | eyes pacified |
安慰眼睛 | by mirages on the screen |
連場電光 | Electronic illusions |
幻影 | one after another |
落花流水 | fallen flowers on flowing streams |
拼命馳騁 | pressed onward, charging |
一熄燈 | Lights off |
一切被紀念 | everything was a memory |
一開燈 | Lights on |
一切是妄念 | everything is a reverie |
飄過這懸念 | Float o'er this lingering thought |
填補那個懸念 | fill in that lingering thought |
一呼吸一臉是愛念 | One breath with a face of desire |
一思想一腦是怨念 | one thought with a mind of quagmire |
釋放了殘念 | Release the remaining thoughts |
留空了 | now it's empty here |
有何念 | what thoughts were there |
不可念 | I can't remember |
無塵亦不斷打掃 | No dust remains, keep dusting still |
讓氣息顫動 | let the air quiver |
猶如密室 | Like a closed room |
牽掛猛風 | yearning for the wild wind |
無人在腦內打擾 | No disturbances in the brain |
沒有輕與重 | lightness and heaviness disappear |
猶如紙鷂 | Like a paper kite |
恐懼太空 | dreading the deep space |
靜坐 | Sit in meditation |
淨得無蹤 | everything receding |
剩低自己卻又 | but when I am all that is left |
惶恐 | I shudder |
一熄燈 | Lights off |
一切被紀念 | everything was a memory |
一開燈 | Lights on |
一切是妄念 | everything is a reverie |
飄過這懸念 | Float o'er this lingering thought |
填補那個懸念 | fill in that lingering thought |
一呼吸一臉是愛念 | One breath with a face of desire |
一思想一腦是怨念 | one thought with a mind of quagmire |
挑戰過邪念 | I've challenged my wrongful thoughts |
誰給我正念 | Who'd give me mindful thoughts |
一出世 | Being born |
便入世 | into the world |
紙一片 | A piece of paper |
給點染 | dyed with color |
哪裡有素臉 | Where's an unpainted face? |
一熄燈 | Lights off |
一切被紀念 | everything was a memory |
一開燈 | Lights on |
一切是妄念 | everything is a reverie |
一剎那懷念 | One moment with reminiscence |
無一剎那無念 | not a moment without sentience |
一呼吸 | Within one breath |
千百度意念 | thousands of thoughts criss-crossed |
一轉身 | then I turned |
轉眼又轉念 | eyes averted and the mind changed |
釋放了殘念 | Released the remaining thoughts |
還可以 | what else is there |
有何念 | to remember |
可不念 | I won't remember |
— Lyrics: Lin Xi. Melody: Sandee Chan
— 詞: 林夕 曲: 陳珊妮