Tags:
Node Thumbnail

Douglas Crockford โปรแกรมเมอร์ผู้สร้าง JSON ในปี 2000 ออกมาให้สัมภาษณ์วิจารณ์ JavaScript ว่าพัฒนาช้ามากในช่วง 20 ปีที่ผ่านมา จากที่เขาเคยเป็นกองเชียร์ JavaScript และพยายามแก้ปัญหาหลายๆ อย่าง ก็ประสบความสำเร็จน้อยมากใน ECMAScript 5 ที่เป็นเวอร์ชันใหญ่เมื่อปี 2009 จนตอนนี้เขามองว่า JavaScript เป็นภาษาไดโนเสาร์ที่ไม่ทันโลก และควรเลิกใช้กันดีกว่า (The best thing we can do today to JavaScript is to retire it.)

Crockford ยังให้ความเห็นว่าชุมชน JavaScript พยายามพัฒนาตัวภาษาให้บวมขึ้นกว่าเดิม แทนที่จะพัฒนามันให้ดีกว่าเดิม อย่างไรก็ตาม ปัญหาคือเราไม่มีภาษาอื่นมาใช้ทดแทนแนวทาง JavaScript แก้โครงของ DOM ในเบราว์เซอร์ ซึ่งก็ไม่ง่ายเลยที่จะสร้างภาษาใหม่ขึ้นมาแล้วให้เบราว์เซอร์ทุกตัวยอมรับ

เขายังแสดงความเห็นต่อภาษาโปรแกรมในภาพรวมว่า ภาษาส่วนใหญ่ที่เราใช้กันถูกออกแบบมาตั้งแต่ยุคโพรเซสเดียวบนคอมพิวเตอร์เครื่องเดียว ซึ่งโลกเปลี่ยนจากนั้นไปมากแล้ว

alt="_MG_ 1308"

ภาพจาก Flickr Douglas Crockford

ที่มา - evrone via Slashdot

Get latest news from Blognone

Comments

By: hisoft
ContributorWindows PhoneWindows
on 8 August 2022 - 13:47 #1257522
hisoft's picture

+1 ครับ

By: aomnaruk
ContributorAndroidUbuntuWindows
on 8 August 2022 - 13:49 #1257524

+256


"Those who make peaceful revolution impossible will make violent revolution inevitable." JFK.

By: Be1con
ContributorWindows PhoneWindowsIn Love
on 8 August 2022 - 13:54 #1257525
Be1con's picture

ปัญหาคือเราไม่มีภาษาอื่นมาใช้ทดแทนแนวทาง JavaScript แก้แก้โครงของ DOM ในเบราว์เซอร์

คำว่า "แก้" ซ้ำกันครับ


Coder | Designer | Thinker | Blogger

By: best
iPhoneAndroid
on 8 August 2022 - 14:14 #1257531

แล้วให้ใช้อะไรครับ

By: osmiumwo1f
ContributorWindows PhoneWindows
on 8 August 2022 - 15:49 #1257537 Reply to:1257531
osmiumwo1f's picture

PyScript?

ปล. ลืมไปว่าแต่ก่อนเคยมี VBScript ที่ใช้ทดแทน JS ด้วยครับ

By: sf_alpha on 8 August 2022 - 16:27 #1257560 Reply to:1257531

ใช้อะไรก็ไม่ได้ครับ ยกเว้นวันหนึ่ง Browser ทั้งหลายจะ Agree กันว่า

เออ เราสร้างภาษาใหม่ หรือไปใช้ภาษาใหม่กันดีกว่า แล้วก็ทำ DOM/Navigator Binding กับภาษานั้นขึ้นมา

By: forl on 8 August 2022 - 14:25 #1257534

+1024

ยิ่งนานวันยิ่งบวมของแท้

By: schanon
Android
on 8 August 2022 - 15:15 #1257541
schanon's picture

มีคนกล้าออกมาพูดสักที

By: rattananen
AndroidWindows
on 8 August 2022 - 15:25 #1257543

มันบวมอย่างไรครับ
ที่นอกจาก DOM ที inherit จน method ซ้ำซ้อนกัน
กับ API ที่เพิ่มขึ้นเรื่อยๆ ผมก็ยัง Ok อยู่
เสียอย่างเดียว ให้ทำงานแบบ parallel (webworker) ค่อนข้างยุ่งยาก

ที่อยากให้แก้สักหน่อย คืออยากให้มันเป็น strong typed กับถ้า compile เป็น binary code ได้ด้วยจะดีมาก

By: hisoft
ContributorWindows PhoneWindows
on 8 August 2022 - 16:08 #1257558 Reply to:1257543
hisoft's picture

มันบวมอย่างไรครับ

แบบที่มี string.substring string.substr string.slice มั้งครับ 😂 แต่พวกนี้ผมไม่ซีเรียสนะ

เสียอย่างเดียว ให้ทำงานแบบ parallel (webworker) ค่อนข้างยุ่งยาก

ที่ผมเจอคือไม่ใช่ยุ่งยากอย่างเดียวแต่ perf ไม่ค่อยคุ้มเลยครับ setup ช้า โยนข้อมูลข้ามไปกลับยากและช้าอีก orz

ผมชอบ JS/TS มาก แต่ก็ไม่ชอบที่มัน single thread นี่แหละ

By: chan1sook on 8 August 2022 - 19:48 #1257582 Reply to:1257543

น่าจะหมายถึง syntax ของภาษาที่เพิ่มขึ้นเรื่อยๆ ตั้งแต่ ES6 ครับ เช่น async/await iterator generator class จนถึง ?? a?.b หรือ 1_000_000 === 1000000 เป็นต้น

By: rattananen
AndroidWindows
on 8 August 2022 - 20:07 #1257585 Reply to:1257582

ยกเว้น literal อันสุดท้าย
นอกนั้น tool พื้นฐานสำหรับ modern programming language เลยนะครับ

By: Hoo
AndroidWindows
on 8 August 2022 - 22:42 #1257601 Reply to:1257582

เห็นด้วย
รู้สึก syntax อ่านเข้าใจยากขึ้นเรื่อยๆ
แถมจะจัด code ขึ้นบรรทัดใหม่เพื่อให้อ่านง่ายๆ ก็ไม่ได้ จะ error อีก 😑

By: iqsk131 on 8 August 2022 - 15:29 #1257545

จากประวัติศาสตร์... คนส่วนใหญ่ไม่ยอมเปลี่ยนเพราะมีของใหม่ดีกว่าหรอก แต่จะยอมเปลี่ยนก็ต่อเมื่อของเดิมที่ใช้มันลำบากต่างหาก

ต่อให้มีของใหม่ที่ดีกว่า JS มากแค่ไหน ถ้า JS มันยังใช้ได้แบบไม่มีปัญหาอะไรมันก็ยังอยู่แบบนั้นแหละ เพราะงั้นถ้าจะให้เลิกใช้ก็คงต้องให้เริ่มจากให้ Browser เลิกสนับสนุน แต่จะมีเจ้าไหนกล้ารึเปล่า? (แอบหันไปมอง Apple... 55+)

By: 0FFiiz
Windows PhoneAndroidWindows
on 8 August 2022 - 15:39 #1257548
0FFiiz's picture

กล้าพอไหม ฮา ๆ
จริง ๆ อยากเปลี่ยนมาก ๆ

แค่ตัว Javascript ก็ว่าลำบากแล้ว เจอการเขียน code
แบบเอาพอรันผ่าน ไม่สนว่าจะอ่านยากหรือเปล่าเข้าไป หัวจะระเบิด

By: Ford AntiTrust
ContributorAndroidBlackberryUbuntu
on 8 August 2022 - 15:41 #1257549
Ford AntiTrust's picture

ปะผุมานานมาก เวลาเปิดอ่านแล้วไมเกรนขึ้น 🤦‍♂️

By: gooGof
ContributorAndroidIn Love
on 8 August 2022 - 15:41 #1257550

No second best yet.

By: Sh0ckWaveZer0
iPhoneWindows
on 8 August 2022 - 15:52 #1257552
Sh0ckWaveZer0's picture

หนึ่งในความหวังหรือเปล่านะ 😆

https://bun.sh/

By: illuminator
ContributorAndroidUbuntuWindows
on 9 August 2022 - 01:59 #1257620 Reply to:1257552
illuminator's picture

ก็ยังเป็น JavaScript อยู่นะครับ

By: btoy
ContributorAndroidWindows
on 8 August 2022 - 15:57 #1257553
btoy's picture

แหะๆ​ ก็นะ​ ปัญหาคือทำยังไง​ให้​บรรดา browsers รองรับภาษาใหม่อย่างพร้อมหน้าพร้อมตา

ยุคนี้เว็บกลายมาเป็น​ UI มาตรฐาน​แล้วด้วยสิ


..: เรื่อยไป

By: blackdoor on 8 August 2022 - 16:00 #1257554
blackdoor's picture

JS แค่ส่วนเล็ก
ใช้งานจริง ๆ ชอบ TS มากกว่า (มาก)

By: hisoft
ContributorWindows PhoneWindows
on 8 August 2022 - 16:06 #1257557 Reply to:1257554
hisoft's picture

สุดท้ายมันก็ติดข้อจำกัดของ JS อยู่ดีน่ะครับเพราะมันก็แค่ compile มาเป็น JS

By: paween_a
Android
on 8 August 2022 - 17:15 #1257565 Reply to:1257557
paween_a's picture

แต่อาจจะทำให้ typescript รองรับบน browser โดยตรงเลยก็เป็นได้นะ

By: hisoft
ContributorWindows PhoneWindows
on 8 August 2022 - 17:21 #1257566 Reply to:1257565
hisoft's picture

ก็จะไปติดข้อจำกัดเดิมที่ JS ก็ติดนั่นแหละครับ เข้าใจว่าติดที่ ES เลย 😅

By: blackdoor on 8 August 2022 - 19:10 #1257579 Reply to:1257557
blackdoor's picture

ไม่เป็นไรครับ เพราะผมแค่ UX ในมุม Dev ที่เกี่ยวข้องกับเนื้อหาข่าวที่หมายถึงผู้ที่ใช้งาน

By: itpcc
ContributoriPhoneRed HatUbuntu
on 8 August 2022 - 18:17 #1257568
itpcc's picture

ถ้า WebAssembly มายำ DOM ได้เมื่อไหร่น้า... 😏


บล็อกส่วนตัวที่อัพเดตตามอารมณ์และความขยัน :P

By: adente
ContributorSUSESymbianWindows
on 8 August 2022 - 18:30 #1257569
adente's picture

ก็น่าจะอยู่เป็น mainly tech language ไปอีกนานละครับ จนกว่าจะมี security issue หนักๆจนคนต้องสละเรือหนี
jquery อีกอัน เดฟรุ่นใหม่เดียวนี้ได้แต่ร้องยี้เวลาเห็น jquery หารู้ไม่ว่าสมัยบุกเบิก มันคือเครื่องมือพระเจ้าเอาไว้สู้กับ IE เลย

By: jutipong.su on 8 August 2022 - 18:36 #1257570 Reply to:1257569

เห็นด้วยครับ

By: btoy
ContributorAndroidWindows
on 8 August 2022 - 19:08 #1257578 Reply to:1257569
btoy's picture

555+ เข้าใจทั้งสองฝ่าย ฝั่งที่ไม่เคยเจอพิษสงของ IE ก็คงเห็นแต่มุมที่ว่า jquery performance แย่ แต่ฝั่งที่สู้รบมากับ IE ยังไงก็คงไม่ลืม jquery ที่มาช่วยชีวิต

ขนาดผมไม่ใช่ dev ฝั่ง Web frontend ก็ยังพอรู้พิษสงของ IE เลย


..: เรื่อยไป

By: Architec
ContributorWindows PhoneAndroidWindows
on 8 August 2022 - 20:29 #1257589

ใครบอกไม่ช้านี่เชียร์ให้ดูคลิป/รูปในเฟสแบบเว็บลยครับ ไม่ต้องเล่นในแอพซักเดือนนึง

คลิกหนึ่งที ใจผมไปอยู่ลิงค์อื่นนานแล้วแต่หน้าต่างไม่ไปซักที

By: hisoft
ContributorWindows PhoneWindows
on 9 August 2022 - 00:27 #1257612 Reply to:1257589
hisoft's picture

ผมว่าอันนั้น Facebook ทำมาห่วยเองนะครับ 😅

By: bow_der_kleine
WriterAndroidUbuntu
on 9 August 2022 - 00:58 #1257613
bow_der_kleine's picture

“There are only two kinds of languages: the ones people complain about and the ones nobody uses.” ― Bjarne Stroustrup

ใช้ JS สำหรับ Web UI แย่ในระดับที่พอยอมรับได้ แต่ถ้าใช้เป็น Backend แบบ Node เมื่อไร นั่นแหละนรกมีจริง

By: crucifier
iPhoneAndroidUbuntu
on 9 August 2022 - 10:02 #1257650 Reply to:1257613

แต่เห็นคนเชียร์ nodejs กันเหลือเกิน ผมก็ไม่เคยเขียนเลยไม่รู้ว่ามันดีหรือแย่ยังไง พอจะแชร์ได้มั้ยครับ

By: 7elven
ContributoriPhoneWindows PhoneAndroid
on 9 August 2022 - 11:08 #1257661 Reply to:1257613

นรกยังไงเหรอครับ อยากอ่านมุมมอง

By: rattananen
AndroidWindows
on 9 August 2022 - 11:58 #1257665 Reply to:1257661

ผมค่อยได้ใช้ nodejs
แต่เดาจากประสบการณ์
เพราะว่ามันเป็น Duck typing ครับ
เวลาต้องทำงานกับ 3rd party library มันจะ error ง่ายมากๆ
เพราะกว่าคุณจะรู้ว่ามันผิด คุณจะไปรู้ตอน runtime เสียส่วนใหญ่
เนื่องจากขณะเขียนคุณไม่รู้ว่า argument หรือ return value มัน type อะไรหรือ structure เป็นอย่างไร
หรือคุณรู้แต่อาจจะ typo

ตัวอย่าง
ปกติผมจะใช้ Typescript แล้วเอาไป build เป็น JavaScript ตอนเอาไป run แทบจะไม่มี error
แต่เมื่อเร็วๆ นี้ผมจำเป็นต้องใช้ JavaScript เขียนบน platform หนึ่ง ตอนเอาไป run นี้ error กระจายไม่ type error ก็พิมพ์ผิด

Duck typing มันเป็นอะไรควรจะใช้น้อยๆ อย่าง PHP หรือ Python ที่เคยเป็น 100% Duck typing นี้ก็ยังต้อง add feature strong type เข้าไป

By: 7elven
ContributoriPhoneWindows PhoneAndroid
on 9 August 2022 - 12:14 #1257670 Reply to:1257665

Nodejs ก็เขียน typescript ได้นะครับ แล้ว 3rd party ที่ได้รับการ maintenance อยู่ มีอัพเดตตลอด ก็กลายมาเป็น typescript กันซะส่วนใหญ่แล้ว

เรื่อง type นี่ js มีปัญหาจริง พอมาใช้ ts นี่ชีวิตดีขึ้นเยอะ

By: adente
ContributorSUSESymbianWindows
on 9 August 2022 - 11:20 #1257662 Reply to:1257613
adente's picture

ก็พูดเกินไป nodejs รับโหลดได้สบายๆ มันไม่ได้เร็วจัดๆแบบบางภาษาแต่ก็ไม่ได้แย่ขนาดนั้น มีทางเดียวที่จะทำให้ dev ปวดหัวคือโปรเจคต้องใหญ่มากแล้วไม่ได้ใช้ typescript เขียน

By: blackdoor on 9 August 2022 - 12:45 #1257676 Reply to:1257613
blackdoor's picture

NodeJS ที่เขียนด้วย JS ไม่ได้แย่ขนาดนั้นครับ รับโหลดได้สบาย ๆ ดีกว่าภาษา Interpreter อย่าง PHP และ Python เสียอีก

นอกเสียจาก คุณจะหมายถึง นรกของ Code เพราะที่จริงถ้าเอา NodeJS มาทำ Backend และเขียนด้วย JS + ExpressJS ก็นรกจริง ๆ แหละครับผมเห็นด้วย

เพราะ ExpressJS ถ้าวางโครงสร้างไม่ดี ก็เหมือนเขียน Hard coding เพราะ ExpressJS ค่อนข้างยืดหยุ่น เช่น สามารถเขียน Logic ลงบน Route และ Response ออกมาได้เลย หรือบางคนไม่ใช้ ORM ก็เขียน Raw Query สด ๆ หรือเขียน Logic เองเพื่อ Connect DB เอง และมั่วไปหมดอันไหนเปิด Connection อันไหนปิด Connection นี่ยังไม่พูดถึงยังไม่ใช้ TypeScript อีกนะครับ

By: IZaCl2eam
iPhone
on 9 August 2022 - 09:20 #1257640

ต้องสร้างภาษาใหม่แล้วแหละ

By: blackdoor on 9 August 2022 - 12:45 #1257677 Reply to:1257640
blackdoor's picture

น่าจะยากครับ แต่เป็นไปได้ แต่เป็นไปได้ยากเพราะว่า

ปัญหาคือเราไม่มีภาษาอื่นมาใช้ทดแทนแนวทาง JavaScript แก้โครงของ DOM ในเบราว์เซอร์ ซึ่งก็ไม่ง่ายเลยที่จะสร้างภาษาใหม่ขึ้นมาแล้วให้เบราว์เซอร์ทุกตัวยอมรับ

By: rbus
ContributoriPhoneAndroidUbuntu
on 9 August 2022 - 19:34 #1257723

webassembly!!!