計算機領域有哪些 將錯就錯 被沿用至今?

時間 2021-05-06 04:35:29

1樓:

我覺得[第0個]這種說法也是錯的,"第幾個"是序數詞,序數詞的取值範圍應該是自然數,往往陣列第乙個元素編號為零,就容易在描述時使用"第0個"這種錯誤叫法。如果使用Pascal這種語言宣告陣列,陣列的下標可以是字串型別,難道這個時候我們要把第乙個元素叫做"第霸個"嗎!?

後來這種不嚴謹的叫法更擴充套件到一些寫書的作者將一本書的第一章時候稱做"第0章"。

我認為這種錯誤的叫法使用了很多年。

2樓:shuhari

我知道的幾個。

Windows API 函式 GetVersion,返回值的高低位顛倒了。按照一般設計習慣,高位/低位應該分別對應主/副版本,但這個函式的返回卻是正好相反的。

麻煩在於,微軟已經把這個函式公開,而且很多人真的用它來寫程式了,如果再改的話,這些程式的表現就錯亂了...沒辦法,微軟保留了這個行為,但是在文件裡反覆強調:不要再使用 GetVersion!

都給我用 GetVersionEx 去!

2. 按照 Windows 原本的設計,工作列應該是在螢幕上方的。這其實是更合理的方案,包括 Mac 和很多版本的 Linux 介面也是這樣的。

但 Windows 據說是因為工作列在上邊影響螢幕座標計算,部分老程式無法相容,所以靈機一動改到了螢幕下方。這麼多年過去了,使用者習慣早已養成,雖然今天的工作列可以四處移動,但預設位置在下邊的設計還是原封不動保留了下來。

3. 按照 Nodejs 之父 Ryan Dahl 的說法,package.json 和 node_modules 的設計就是錯誤的。

但等他意識到這個問題的時候,npm 已經廣泛使用,再去底層動大手術是不可能了。這也是他重新設計 Deno 的主要動機之一。

3樓:random walk

IPV4協議設計的時候沒有考慮到ip位址不夠用,導致後期需要各種複雜技術來解決這個設計缺陷。

IPV6協議改正了這個設計,但是由於IPV4使用的太廣泛,至今,大部分裝置仍然在用IPV4協議。

4樓:阿信

哈哈哈,必須要說瀏覽器中的referer,這個單詞本來是這麼寫的referrer ,不過大家都習慣了寫referer 23333

5樓:神小韜

default我們老師教的是預設。。。

可是預設這個中文詞語我都沒聽說過,更不知道是它是什麼意思,然後就一直將就著用。

後來才知道default是預設的意思。。。

聽說當年程式設計師英語不好,拿到英語詞典隨便一翻看到default有預設的意思就用上了。。。

不管這個說法是真是假,還是應該感謝當年第一批接觸計算機的人。他們在書籍都全是外文的情況下,不斷探索,為後人鋪平了道路,才有了現在越來越禿頂的程式設計師_(`」 ∠)_

6樓:

傳聞中的某些判斷windows 95/98的版本檢測方法if(version

.toLowerCase

().contains

("windows 9"

))(笑話而已,不要太認真……

7樓:曲奇

物件導向程式設計」這個神翻譯,你初學的時候迷惑嗎?物件??漢語之美,在於能望文而會意,大致不差。你看到這句翻譯,是不是感到莫名其妙?

漢語詞典是這樣解釋「物件」的:

①行動或思考時作為目標的人或事物:革命的~,研究~。

②特指戀愛的對方:找~,他有~了。

「物件」意味著有相對的雙方。比如「革命物件」,意味著革命者和被革命者;「研究物件」,意味著主體和客體;「戀愛物件」,意味著男人和女人。

Object Oriented Programming,它的初始內涵是,把軟體系統拆成乙個個的 Object,它們之間通過互相發訊息來實現功能需求。相對於過去 Structure Oriented Programming -- 側重於邏輯過程的拆分,它則側重於系統構件的拆分。因此,翻譯成「面向構件的程式設計」比較合適。

大家也給個翻譯唄?

8樓:FusionBolt

Unix有乙個建立檔案的API是

int creat(const char *name, mode_t mode)

這個函式名少了乙個e

Unix的創造者Thompson曾經開玩笑地說:設計Unix時遺漏字母是他最大的遺憾

9樓:陳舸

Ken Thompson, the creator of Unix, was once asked what he'd do if he had it to do over again. He said, "I'd spell creat with an 'e'."

Unix的系統呼叫creat,那個時候某些linker會出現不能正確識別5個字元以上的符號,為了避免這個問題,Ken把create寫成creat。 於是後期其他的Unix變種包括Linux都繼承了這個「問題」。

10樓:NICUOLE

鍵盤算麼,當年我們背鍵盤位置折騰一星期的有沒有,我們一直沿用這qwert式的鍵盤,為什麼不是字母表abc鍵盤,

答案是,以前鍵盤的設計各高頻率使用的按鍵容易撞針,為了避免這種情況發生,故意打亂了這順序,

然而苦了一代又一代的新人

11樓:凱斯邁

HTML及DOM JS的很多設計...特別是涉及到和方面...(不然也不會有CSRF的問題和CORB之類防範的東西了...

12樓:動感小菜刀

關於SQL的發音,標準的讀法是三個字母分開發音,而不是連起來的"sequel"。然而由於"sequel"被用的太廣範,官方都表示大家隨意吧。

13樓:愛吃生菜的小倉鼠

現在用的鍵盤為什麼不按字母順序排。

因為曾經有人根據研究常用字母和手指習慣設計了現在的鍵盤並推廣。

後來研究證明,暖用沒有。

14樓:

最經典的就是鍵盤鍵位布局了。

為啥是這麼亂七八糟的布局?要花好長時間去記憶?

因為是按照打字機的鍵位布局設計的。

那麼打字機為啥這麼設計呢?

是為了防止卡鍵。那麼是怎麼防止卡鍵的呢?因為打字速度上不來就不會卡鍵了。

為啥打字慢呢?因為你想不起來要打的字母在哪。

好吧還是從頭說。

一開始有乙個牛人發明了打字機,這時候打字機的布局就是普通的abcde的布局順序。

大家使用後反應都很好。

大家熟悉後打字速度就飆公升上來了。

但是那時候打字機不給力,經常卡鍵。

看老電影裡面,打字機的工作方式是,按下乙個字母,對應的「鉛字」會向下移動打到字上形成字元。

然後你按另乙個字母,再打下乙個字元。

這樣一上一下的運動就很耗費時間。

按鍵的速度就可以快很多了。

這樣速度不匹配就會卡鍵。

怎麼解決問題呢?從技術上一時半會搞不定呀!

於是發明者就另闢蹊徑,把鍵位布局給打亂了,這樣打字速度就上不了,就不會發現卡鍵的這個問題。

然後怎麼解釋這個亂七八糟的布局呢?

就開啟了忽悠人模式,這是一種高效打字的布局方式,用這種方式打字,可以顯著提高打字速度!

話說老外也挺好騙的。

於是這種打字機就迅速普及了。

後來發明了電腦,鍵盤就沿用了這種布局方式。

後來人們雖然發現這種布局其實很影響打字速度,但是也沒有辦法。

習慣的力量太強大了。

更高效的布局方案

1.「DVORAK」鍵盤

沒試過,據說挺厲害的。

2.「MALT」鍵盤

這個就更怪異了,還需要安裝特定的驅動程式才行,能普及才怪。

15樓:程式猿啊

幾個"這麼多還不夠?"的錯誤

第乙個,著名的IPv4

以及關於時間的,2023年事件和即將發生的千年蟲還有很多翻譯錯誤

比如預設,控制代碼(這個似乎是印刷錯誤)

16樓:

unix/linux 系統中dot開頭的檔案被稱為隱藏檔案,源自乙個bug.

我們知道, ". "和".."分別是當前目錄和上層目錄,ls命令有個選項是不顯示這兩個檔案,所以程式設計師用filename[0]=='.

'來過濾掉這兩個檔案,然後大家發現dot開頭的檔案全部被隱藏了。

17樓:羊鼠鼠

我司之前有個變數build,被拼錯了,bulid,我第一次看到的時候,去搜了一下,發現這個變數到處有,就沒改按照之前的邏輯寫,某日新來了乙個耿直boy,他愣是把那個模組全拼對了,批量替換,可是這個欄位連資料庫裡面也是錯的,然後他改了好久的bug。。。。

18樓:小莫筆記

看到這個問題,腦子裡竟然突然閃過的是愛情公寓的一段情節。

就是曾老師在向全廠人介紹網際網路時的那段演講了:

眾所周知,無線電廣播源於仿生學,科學家通過蝙蝠和海豚的聲波,找到了靈感,無獨有偶,網際網路這一偉大的創舉,同樣源於仿生學,人們通過研究蜘蛛結網的原理,建立了網際網路!

當今全球,網際網路系統共分為四大區域,每乙個區域都由一件網際網路的本體,通過光纜覆蓋訊號。這四大區域分別被命名為:格蘭芬多,斯萊特林,赫奇帕奇以及拉文克勞~

被編劇的神邏輯驚呆了。。。。

19樓:

這個命令

sed -i "s/\/mnt\/disk1\/tp\//\/mnt\/tmp\/tools\//g" gagaga.txt

目的是把gagaga.txt中的/mnt/disk1/tp/替換成/mnt/tmp/tools/

那一串正反斜槓,想不想死……

20樓:wtngng

1.c:

void

main

()$ cc 1.c

1.c:1:1: warning: return type of 'main' is not 'int' [-Wmain-return-type]

void main() {

^1.c:1:1:note: change return type to 'int'

編譯器說, main 的返回值不是 int,我幫你把它改成 int 吧

$ g++ 1.c

1.c:1:1: error: 'main'mustreturn 'int'

void main() {

^~~~

int1 error generated.

編譯器說,必須是 int,毛病!g++不再將就

void main 的是微軟的 c 語言編譯器最先實現的。這個錯誤被 gcc 編譯器將錯就錯。

它的歷史緣由是這樣的。

1. c 是有個人興趣發明的,它比較將就,支援很多預設。

函式宣告可以寫成 f(),其實是 int f()

區域性變數可以寫成 auto a,其實是 auto int a

全域性變數可以寫成 int a,其實是 int a = 0

2. main 函式應不應該有返回值

這關乎作業系統的設計,unix的shell關心這個退出碼 $?

windows系統沒有shell

最後,void main 就成了乙個經典的錯誤

這是個 linux 下使用頻率很高的路徑,被稱作 user local

usr 的真正含義是 Unix Software Resources

計算機領域從事生物資訊的牛人有哪些?

竟然沒人說Eran Segal!去看看他的戰績就知道了,做到讓biologist聞風喪膽。cs轉bio我只服此人,其他某Kellis和Frey相比之下真的就是呵呵了。 Manolis Kellis,從Eric Lander 大牛,原先學數學的,現在是Broad Institude的頭兒 手下出來的,...

計算機領域有哪些精妙絕倫的設計?

文武 最近複習作業系統 置換演算法 opt fifo lru time感覺每個演算法都精妙絕倫 頁表塊表的設計 磁碟排程演算法 sstf scan c scan組成原理 從暫存器到cache 從三態門到匯流排 感覺計算機本身從硬體到軟體 從系統呼叫到使用者介面 每乙個都是精妙絕倫 當然,背起來就沒那...

知乎有哪些值得關注的計算機領域在讀博士?

憶臻 我補充知道的幾位nlp方向的博士。果醬師兄 jiangfeng目前在mit做博后董力 董力目前愛丁堡大學博士 桂林桂林博士,雖未見面,聊過幾次,倍感親切。劉李嫣然香港理工大學博士,第一次主動花錢買過她的chatbot課,講的很好!其它後面補充。哈哈 補充幾位從事體系結構的博士 李博傑 微軟亞洲...