`
sp42
  • 浏览: 148771 次
  • 来自: Canton
文章分类
社区版块
存档分类
最新评论

【转】AK47 與 M16

阅读更多
大家好,我是 thegiive,我正在服國防役新訓,先跟大家打個招呼。最近一直沒時間碰 Ruby on Rails ,不過軍中倒是花了點時間研究步槍。賢者總是說到「觸類旁通」這件事情,我也剛好從步槍這種殺人兵器中,看到了一些東西,很值得軟體開發借鏡。在此先警告一下,我只是在陳述輕兵器設計哲學之間的比較,並非鼓吹輕兵器,戰爭等東西,如果認為槍枝是邪惡不能被提及之人,請勿進入本文。

我研究的東西,就是號稱 20世紀最偉大的武器 AK47 ,跟屈居第二的 M16 的之間的瑜亮之爭。

AK47 是由蘇聯槍械設計師米哈伊爾·季莫費耶維奇·卡拉什尼科夫設計的自動步槍。這款武器號稱槍中之王,很多第三世界國家的戰爭都看到他的身影。可以說是哪裡有戰爭,那裡就有 AK47。有這樣一句話:「美國出口的是可口可樂,日本出口的是Sony電器,而蘇聯出口的是AK47。」

這不是沒有原因的。 AK47 當初設計的哲學,就是為了「簡單」。他被設計成為任何民眾,在沒有人教導,沒有任何工具,依舊可以在三個小時之內可以徒手拆解結合,並且裝子彈射擊,由此可以知道他的「簡單」,到底是簡單到什麼程度。

再來因為俄羅斯環境氣候糟糕,他將內部機構組織設計為較粗糙,這代表不容易因為沙土,泥水進去而導致不能擊發,也就是他當初就是為了設計為可以穩定的擊發子彈,就算再惡劣的環境也是如此。後來因為 AK47 大流行,參加了許多場戰爭,擁有相當多的實戰測試,導致他的擊發穩定性更上一層樓。有人戲稱「AK47 掉到泥水中,沒關係甩一甩,繼續打」。

但是當初社記者因為為了「簡單」,「穩定」,損失了些許射擊準度。導致 300M 外射擊準度很差。

M16 系列是屬於美國系統,他當初設計的哲學就是為了擁有穩定的設計準度,以及良好的射擊距離。所以他採取相當巧妙的設計(我們輕兵器教官是這樣講的,我沒有研究很深),但是越精巧的系統代表容錯率越低, 第一版 M16 對於環境的容忍程度較差,很容易因為環境因素導致卡彈。美軍在沙漠風暴之中,就常聽說美軍為了避免沙子進入槍口,用保險套套住槍口,形成一種很詭異的情況。

綜合比較兩者優劣,很明顯的 M16 在射擊準度上面優於 AK47 許多,但是耐用度上面,第一版的 M16 可以說是遠遠輸了 AK47,一直到 M16A2 才比較好一點,不過還是輸給 Ak47 。

使用率上面,AK47遠遠的贏過 M16,傳說 AK47 有一億隻之多。造成 AK47 大流行的原因很多,

   1. 一來是因為構造簡單,上手簡單,士兵幾乎不用訓練就可以擊發,所以許多第三世界國家喜歡使用 AK47。
   2. 再來就是因為構造簡單,容易仿造,所以很多國家都自己仿冒 AK47,傳說十支 Ak47 只有一支是正版的 AK47。
   3. 再來就是如果你有看軍火之王這部片子,裡面講到蘇聯瓦解,許多將軍失去以前的榮光,為了錢,他們將軍火庫裡面成千上萬的 AK47 盜賣給軍火商,導致黑市 AK47 大流行,既便宜又好用。
   4. 最後雖然 AK47 不準,但是第三國家沒有資源去花時間訓練士兵射擊準度,所以使用 AK47 根本沒差


這裡必須要提一件題外話,如果你看過血鑽石這部片子,就知道他們是怎麼訓練娃娃兵的。而娃娃兵雖然知識水準不高,但是因為 AK47 實在是使用上太簡單了,所以導致軍閥隨隨便便訓練娃娃兵,他們都可以上手,拿槍來殺人, AK47 的簡單某種程度導致娃娃兵的大流行。這是讓我每次看到都覺得很荒謬的一件事情。

真正決定 AK47 王者地位的戰役就是越戰。越南一方使用 AK47,美軍使用 M16。越戰是叢林戰為主,叢林戰的攻擊射程可能根本不到 10 m ,在叢林 AK47 跟 M16 射擊射程都是一樣的,也就是 M16 的強項射擊距離跟經準度就跟廢了一樣。再加上叢林環境太過惡劣了,M16的低容錯率造成大量卡彈的發生,很多美軍屍體旁邊都有卡彈的 M16,代表他們是因為卡彈才死去的。到後來,甚至出現許多美軍將自己 M16 放在一旁,反而使用搶來的 Ak47 來打越南軍的怪現象。

事後想想,AK47 早就已經實戰好幾年了,那時的穩定度以經是 3.0 版。M16 在越戰時穩定度還是 1.0 Pre release 版。再來剛好遇到 M16 強項被極小化,所以才會遇到被 AK47 八的那麼慘的情況。

雖然剛剛講了那麼多 M16 的壞現象,但是他依舊美軍最佳的利器。因為美軍戰爭時需要「減少傷亡」,減少傷亡最好的方式就是拉遠戰鬥,所以 Ak47 只能較近距離的特性依舊不適合美軍。也就是說,沒有最好的槍枝,只有最適合這次任務的槍枝。

所謂的簡單就是美,在 AK47 留下的最好的證明。簡單的設計容易修改,複製。產品正確率也較高。並且容易上手就容易造成流行。軟體又何嘗不是如此。

穩定性的重要,在輕兵器的領域優先權是相當高的,畢竟子彈往身上跑過來的時候,誰都不希望自己手上的槍枝卡彈。越戰時,AK47就在這個領域上面遠遠勝過 M16,也為這次比試留下了勝利。當某個領域的要求穩定性,已經高到一個很重要的程度時,我們應該選擇比較穩定的設計,而非功能比較強大的設計。

最後,沒有最好的槍枝,只有最合適這次任務的槍枝。同樣的,沒有最好的軟體,只有最符合這次任務需求的軟體。

我們在這些輕兵器的歷史中,是不是看到許多軟體開發的影子呢。

張貼者: thegiive 位於 13:05 

3 意見:

Plumm 提到...

    AK47 是指說類似 RoR 咩??

    不過 thegiive 竟然可以當兵中還聯想到程式 :QQ
    9/04/2007 9:13 上午  
sp42 提到...

    呵呵 有道理!
    9/05/2007 12:25 下午  
懶魚 提到...

    幫你補充一下,
    M16之所以準度較高是因為採用了同軸性的設計理念。
    所謂的同軸性就是指槍管到槍機到槍拖到使用者的肩窩是在同一直線上的。
    而也正因為這種設計,M16的槍機設計與AK47或T65K2不同,在設計上是直接將射擊時產生的高壓瓦斯直接導入槍機內提供開鎖、退殼和拋殼的能量。這種設計的好處是避免了像AK或65K2那種短彈簧推進槍機向後的用力所產生的準度偏離;但壞處是射擊時的高壓瓦斯是極為骯髒的高壓氣體,會導壓槍機很快的有碳粒堆積,導致卡彈。
    9/17/2007 9:44 下午  

張貼意見

大家好,我又放假了。看到有人問我,上篇文章,意味著誰代表RoR。我只能說,沒有特別的誰代表誰。

在技術水準差不多的狀態下,所謂的設計好壞其實只是取捨。Ak47 取了簡單,但是失去了準度。M16 強調準度,但是輕巧的設計卻換來了些許的不穩定,以及較高的訓練時間。換來的結果也沒有誰輸誰贏,只是剛好第三世界國家適合 AK47 ,美國適合 M16。

越戰這個 case ,Ak47 遠勝於 M16,但是這是在叢林戰這個 domain。其實美軍打贏那麼多場戰役,很多其他的戰爭 case,M16 說不定在其他 case 壓的死死的。只是越戰名氣大而已。

一切都只是需求的不同而已。

軟體開發也是如此。在工程師水準相近的情況下,你的選擇通常都只是因為這個任務的需求,而非這個設計方式比較好。

我所陳述的,是一段歷史,是一個工程設計哲學的頂尖對決,是一個值得去瞭解的他山之石。而非誰代表誰。

why scripting?
why scripting?

簡單一句話就是:「為了增進生產力」。不過這樣回答的話,就會衍生出另外一個問題:
「為什麼要增進生產力?」當然不是這個問題,這種問題根本沒有回答的必要。
這個問題是:「如何增進生產力?」

我們知道有一些狀況下,必須不斷修改程式,不管是因為現階段不知道最好的解決方式
是什麼,或是現況真的是會不斷改變。總而言之,我們必須「嘗試」而後「修改」。
這種時候,我們可以用需要 compile 而後 link 的程式語言(或是工作環境)嗎?

這篇影片道出了一些 "why": Better Web App Development
可以不用看沒關係,這邊會稍微提一下大概內容。簡單地說,GUI 的部份是最明顯的。
因為我們不知道我們的 user 會比較想要哪一種操作模式,甚至,連他們自己也不清楚。
這種事說來很不可思議,但實際上就是如此。很多事情是很難預測的。或是該說,
要正確地預測事情的成本,遠遠高於直接試試看,再從中獲取經驗,進而修改以符合
我們的希望。所以我們需要的是「能夠快速修改、變化」的程式語言(或是工作環境)。

scripting 就是為此而誕生的。他們的立意和 system programming 有著根本上的不同,
所以無須拿此二者來比較。這一篇並不是想探討此二者間的異同,所以不會再對此著墨。
這裡直接假設兩者同等重要,以此討論兩者之間該如何取得平衡。

*

事實上,越是前端的程式,越是需要此種「變化」的特性。因為 system programming
是面對機器,而機器可不會跟你鬧脾氣。(如果不明原因的當機不算的話…)
但是 scripting 通常是面對人,而人可是可以陰晴不定,今天好好的明天就跟你翻臉,
或是嘴巴說不要,身體倒是挺誠實的,諸如此類的問題可多著。
為了「適應」人的這種「特性」,我們也需要一個擅長「變化」的東西,
以此銜接 system, application, 與人類。

除此之外,大家也都知道 scripting 的執行效率一定遠遠不如 binary program,
在大部份的情況下,這不是個問題。因為現在的電腦已經快到一種很恐怖的境界了,
真的非常需要執行效能的狀況,其實很少。更何況大家都知道 80-20(1) 法則,效能的
重要性只會隨著時間越來越減少,但永遠不會消失,因為人的慾望是無窮的…。
分享到:
评论

相关推荐

    AK47_A1 - MetaTrader 4EA.zip

    《AK47_A1 - MetaTrader 4 EA.zip:一款基于MetaTrader 4平台的智能交易系统解析》 在外汇交易领域,自动化交易系统扮演着越来越重要的角色,它们能够根据预设的规则和策略自动执行交易操作。"AK47_A1 - MetaTrader...

    实用的机器AK47HD

    AK47HD,可看卫视和有线数字电视,高清节目伴你永远!

    E导游电子狗 AK47程序

    E导游电子狗 AK47程序

    mt4-AK47M EA

    这个是日本EA,官方说明了这个EA,用于EURGBP 5分钟 头皮EA,结果我找到了一个版本,测试效果没有官方那么好, %OTA5 Pzm!`F^r} 08-09年的测试就比较好,其他年份也都一般,但是我试着去调动他的参数,经过许多次的...

    F:\cs\cs地图\DKS_AK47.BSP

    F:\cs\cs地图\DKS_AK47.BSP

    cs的AK47源码

    AK的高光效渲染版 高级源码 华丽董卓 细分贴图

    127个机械零件图纸 终极版 全部打包

    - 尺寸标注和公差控制,理解GD&T(几何尺寸与公差)标准。 - 图纸布局和组织,如何有效地展示和注解零件信息。 - 材料选择和加工工艺考虑,如何根据设计要求选择合适的材料并考虑制造过程。 - 文件管理和版本控制,...

    CS起源ak47

    CS起源专用ak47,CSGO的模型哦!

    ak47.rar_AK47_C++ 成绩管理_学生成绩管理系统_课设

    用C++做的学生成绩管理系统,一般是软件专业新生的课设题目,虽然还存在一些不足,但是基本上让你拿A问题

    机械零件图纸

    机械零件 设计常用的一些机械零件......................................................................................................................................

    Minwin SDK for gg--AK47

    "Minwin SDK for gg--AK47" 是一个专门针对GUI图形用户界面、DVB(数字视频广播)和DVBStduio应用开发的软件开发工具包。这个SDK旨在帮助开发者构建与NVOD(网络视频点播)相关的应用程序,使NVOD的代码能够顺利运行...

    M4A1+QBZ+AK47+USP 灵敏度15 鼠标回报率1000.lua

    M4A1+QBZ+AK47+USP 灵敏度15 鼠标回报率1000.lua

    机械 零件 图纸 CAD 127个

    机械 零件 图纸 CAD 127个机械 零件 图纸 CAD 127个机械 零件 图纸 CAD 127个机械 零件 图纸 CAD 127个机械 零件 图纸 CAD 127个机械 零件 图纸 CAD 127个机械 零件 图纸 CAD 127个机械 零件 图纸 CAD 127个机械 ...

    数学建模教程

    结合编者多年数学建模课程教学、数学建模竞赛的经验和一般理工科院校的学生实际,收集历年建模真题,详细介绍各类模型建模思想,并注意与大学数学课程体系中其他课程的衔接,可作为一般理工科院校学生学习数学建模...

    ExpW_image_align_filtrate.zip

    通过对ExpW数据集进行处理,我们可以构建深度学习模型,如卷积神经网络(CNN),以自动学习并理解面部特征与情感之间的关系。在博主的博客《表情识别/情绪识别:ExpW表情数据集》中,详细阐述了如何利用此数据集进行...

    ugak47 的画法

    用ug 画ak47 包含详细的步骤 图文介绍

    Call Of Cause使命任务召唤Unity第三人称射击游戏项目源码C#

    10 种武器(激光枪、USP-45、DEAGLE、MAC-10、MP5、AK47、M4A1、SG-552、1014、SCOUT、SG-550、) 2 枚手榴弹(闪光弹、He 手榴弹) 最佳游戏音效 最佳 Unity 粒子效果 所有平台兼容的 UI-UX 完整记录视频 + 啧啧 ...

    [Windows] Word精灵插件 - Word增强辅助软件,支持微软Office和WPS

    25、快捷搜索与删除:搜索指定的目标,每点一次搜索下一个,也可以删除所有找到的目标。 26、缩放文档内的图片:将当前文档中插入的图片按指定的百分比缩小或者放大,以及还原到原图大小。 27、解除限制编辑:解除...

    零件2.SLDPRT.sldprt

    零件2.SLDPRT.sldprt

Global site tag (gtag.js) - Google Analytics