看板 Soft_Job 關於我們 聯絡資訊
※ 引述《ripple0129 (perry tsai)》之銘言: : 也不是說轉換能馬上換掉的啊 : 真要說馬上能換就換掉的 : 我第一個就先推Javascript : 問題就是換不掉啊 JavaScript 是一個基於原型(Prototype-based)的程式語言 在本質上很難將它歸類為程序導向語言,或是物件導向語言 類別: JavaScript 中沒有類別(Class)的概念,但是有物件(object)的概念 而這個物件概念的物件,則是以GUI的 Widget為主 Widget 具有屬性及操作(事件反應)函式,兩者綁在Widget上是合乎操作的抽象習慣的 封裝: JavaScript 中的物件沒有封裝的概念 繼承: JavaScript 的物件沒有繼承(Inheritance)的特性 多形: JavaScript 的物件沒有多型(Polymorphism)的概念 命名空間: JavaScript 沒有命名空間的概念 以上這些典型的OOP亂源都沒有了,JavaScript寫出來的Code 自然也就不會像一般的OOP那樣臭 雖然有人說,還是可以用JavaScript寫出有OOP味的程式 但基本上沒有什麼人這樣做,真的這樣做,Code也是一團亂 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.0.133 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1602985969.A.989.html
sunsamy: 有可能,但有更多的例子解釋為何是亂源嗎? 10/18 10:02
如果不排斥看英文 網路上資料很多啦! Ex. 搜尋 "anti object oriented programming"
sunsamy: 很有趣的觀點, 的確以前沒注意過,不過較像c++語法的問題 10/18 10:07
sunsamy: OOP的觀念本身沒問題 10/18 10:08
Bjarne Stroustrup (C++ 創始者) 這老傢伙說C過時了 https://www.youtube.com/watch?v=KlPC3O1DVcg
看看底下的留言者,如何圍剿他
BBSealion: 說亂源太超過了,就是不同設計法各有優缺點而已,強制 10/18 11:32
BBSealion: OOP 的語言確實造成了一些麻煩,但放開一些限制,引入 10/18 11:33
BBSealion: 其他設計法的好處,截長補短,OOP本身還是很有價值 10/18 11:33
BBSealion: javascript 的玩法一樣生出了一堆討人厭的鬼東西 10/18 11:34
aidansky0989: 封裝的思想很好,代碼復用原則上是對的 10/18 11:59
ripple0129: JS的亂不是paradigm的問題,是一堆莫名奇妙設計不良 10/18 12:52
ripple0129: 的東西還轉化成了知識,譬如說hoisting,this。這樣 10/18 12:52
ripple0129: 的設計有好處就算了問題是根本沒有,不如噴錯出來給 10/18 12:52
ripple0129: 我修正。 10/18 12:52
tsao1211: 有訓練過的工程師也不會用到hoisting 10/18 12:59
全班考太爛,教授將分數開根號乘以十的概念
longlyeagle: JS可OOP可FP 反正怎麼寫都會動 輸出是什麼就不知道了 10/18 13:40
老實說前端的東西 有需要搞得這麼複雜嗎?
EricTCartman: client端也有複雜的 10/18 14:07
有技術價值的東西,放在明碼上,不是一下子就被切走了嗎?
jej: 我覺得樓主要去看看ES6之後了 你說的JavaScript是很久之前的 10/18 15:27
jej: 用狗哥查JavaScript封裝 繼承 多型 會有東西喔 10/18 15:27
daddy29: 多看點書 10/18 15:28
PO文的內容就是從書上來的
art1: 如果真的對物件導向很不滿,怎麼會連用自己的話說出來都辦不 10/18 15:32
art1: 到?只會叫別人 google,你自己的想法在哪裡? 10/18 15:32
請參考前面的發文,我已經寫很多了。 提供額外的參考,這樣也不行。就是要找碴乎
jej: 而且 js的定位並非全然都是前端喔 這樣說NodeJs支持者會哭 10/18 15:34
jej: 至於程式有大便味 就是有那種喜歡寫奇門遁甲if else的人 10/18 15:49
jej: 就是看誰衰 誰承受奇門遁甲阿 誰吃屎阿 10/18 15:49
jej: 不過回歸這話題 有沒有比oo先進 這很難說 10/18 15:58
jej: 但本肥很喜歡祖克柏 和比爾蓋茲的想法 10/18 15:58
jej: 覺得現行的語言太麻煩 自己幹出來一套語言 10/18 15:58
jej: 本肥覺得這才是這系列文最終想要的結果 10/18 15:58
前端語言要自幹,還要看瀏覽器買不買單,沒那麼大的本事 後端我用C就可以了,Web Server 還可以自己改(httpd) 不過現在沒有靠 Web 營生,所以沒有這個煩惱。 做純 Web 太血汗,好吃懶做的人早跑了
thund: JS的封裝繼承多型也只是語法糖 本質還是Prototype-base啊 10/18 16:47
x246libra: 用你的關鍵字查詢 看到一個論點是OOP的共享狀態是雷區 10/18 16:57
x246libra: 無論這個共享狀態是全域變數 或是依賴注入的封裝依賴 10/18 16:57
x246libra: 但我好奇 類似這種全域變數 比如說連線池 是一定要的吧 10/18 16:58
x246libra: 如果不依賴這個共享的連線池 是要每次都重建? 10/18 16:59
x246libra: fp的語言 會怎麼使用連線池呢? 閉包? 跟封裝差不多吧 10/18 17:00
x246libra: 還是說 完全不使用連線池? 10/18 17:00
不是很確定你問的問題是什麼? 回了怕變成雞同鴨講
askaleroux: JS本身就是垃圾語言 還好意思批評其他性質 10/18 18:13
strlen: 什麼不推 推JS這個垃圾 我越來越覺得你在反串 10/18 18:21
strlen: JS沒有class 還在新版特別做了一個語法糖 你來說說為何 10/18 18:22
strlen: ECMA為何要舔OOP的懶趴好了 XDDD 10/18 18:22
因為市場需求,商人只管滿足需求,而不管有這種需求的人是不是獃子
strlen: 樓上不要講ES6了啦 老骨頭根本跟不上時代了還活在過去 10/18 18:24
至少是美好的過去
newhandfun: 樓上這圖.....XD 10/18 18:26
strlen: 然後阿 就本質來講啦 所有的程式包括C 本來就都是語法糖阿 10/18 18:26
strlen: 阿不然你要回去看組語或機器碼喔?XDDDDDDD 10/18 18:26
Masakiad: 這篇言論的確像15年前的人講出來的 「前端不用這麼複雜 10/18 19:26
Masakiad: 」、「JS沒有OOP」這些都不是現代JS語言應用實務上的狀 10/18 19:26
Masakiad: 況 10/18 19:26
表示未來的 JavaScript code 要開始 Spaghetti 化了 殘念
lturtsamuel: 實作是prototype base是一回事 class跟extend都出來 10/18 22:17
lturtsamuel: 這麼久了不用當它空氣吧 10/18 22:17
不把它當空氣,就要開始寫 Spaghetti Code了
b85040312: 我看過前端寫REACT用一堆 if else 來控制畫面顯示 10/19 01:40
b85040312: 看到只覺得 wtf 10/19 01:40
shooter555: ES6嘎? 10/19 12:34
strlen: 你什麼時候產生了沒有OOP就不會有Spaghetti Code的錯覺XD 10/19 13:29
我沒有這樣說過呀! 是你誤會了
as30385438: 這篇看起來是久沒接觸前端的人憑著信仰發的文 10/19 14:13
as30385438: 稍有要求的公司早就都上ts了, 也不會用JS的奇怪特性 10/19 14:15
看一下這個網站,JavaScript 跟 TypeScript 的 Rank https://www.tiobe.com/tiobe-index/ https://reurl.cc/avMnOY 這篇文章說: There are no plans to support TypeScript natively in the browsers. Chrome did some experiment, but later cancelled support. (目前沒有任何的瀏覽器計畫對 TypeScript 提供天生的支援(不用加外掛)) (Chrome 曾經作過一些測試,後來取消了對它的支援) 「稍有要求的公司早就都上ts了」<-- 這是你的信仰,還是你在作夢
as30385438: 不要在那邊偷渡概念...瀏覽器不支援是另一個議題 10/19 16:04
來自同一篇文章 This is particularly important to note if you’re still in the prototyping phase. If so, don’t waste your time with TypeScript. JavaScript is so much more flexible. (不要浪費時間在 TypeScript 上面)
as30385438: 三大前端框架Angular本來就ts-based 10/19 16:04
越來越離譜了
as30385438: 另外兩個也都往ts靠攏, ts近年的趨勢網路上一堆文章 10/19 16:05
as30385438: 中型以上的frontend專案還用JS這種垃圾叫做自找麻煩 10/19 16:06
感覺就是微軟的大外宣
strlen: 那既然都會義大利麵 用不用OOP有差嗎 關鍵不就在人? 10/19 17:51
這是機率的問題,用OO的人,90%都會製造糞code 造飛機~ 造飛機~ 來到青草地~ 造糞機~ 造糞機~ 就是O.O.P.~
strlen: 反正不合你意就是大外宣 就是炒作 就是阿共仔的陰毛 10/19 17:54
阿共的陰毛不清楚啦,MS的陰毛全世界都知道
as30385438: 你看文章都不看上下文的嗎... 10/19 18:36
as30385438: if you’re still in the prototyping phase. 10/19 18:36
不用OO,那句話有什麼問題
as30385438: 該文作者看起來就是ts派的 10/19 18:39
建議你把整篇文章仔細看一遍,它裡面還提到 Javascript is more flexible. ~~~ If Typescript is Windows, Javascript is Linux. I tried to refactor some of my hobby projects to TypeScript but it did not worth the effort.
as30385438: 熊熊發現這位不就是之前大戰OOP的大師嗎XD 10/19 19:19
stopcrying: js 是 prototype-based OO language 吧 10/19 21:16
stopcrying: 他的好朋友還有 Lua 和 Self ? 10/19 21:17
您高興就好
Nitricacid: JS 跟 TS 的發言真的是原始人....XD 10/19 22:53
所以你很先進?要不要掏出來看看,不要只會說別人的雞雞小
CoNsTaR: 計畫什麼時候進桶啊? 10/20 02:57
建議你去當版主,把所有看不順眼的都桶一桶 ※ 編輯: csfgsj (218.32.249.24 臺灣), 10/20/2020 10:18:49
strlen: 你有數據顯示寫OOP的比較容易寫出糞code? 10/20 13:31
strlen: 我倒覺得根本差不多 10/20 13:31