Tags:
Node Thumbnail

จุดอ่อนอันยิ่งใหญ่ของ JavaScript นั้นเป็นผลพวงจากการที่ตัวภาษาถูกออกแบบมาไม่ดีเท่าที่ควร ไม่ว่าจะเป็นการใช้ scope แบบ functional (คล้ายภาษา LISP) แต่กลับเขียนไวยากรณ์ในแบบ procedural (คล้ายภาษา C) ซ้ำยังอนุญาตให้เลือกว่าจะใส่ semicolon (;) ท้ายประโยคหรือไม่ก็ได้ ไปจนถึงชื่อของภาษาที่ทำให้หลายคนเข้าใจผิดว่ามันคือ Java ขนาดย่อมๆ เสียอีก นี่ทำให้การพัฒนาโปรแกรมที่ดีบน JavaScript ยุ่งยากมากสำหรับมือใหม่

แต่เนื่องจาก JavaScript ถูกใช้อย่างล้นหลาม การจะประกาศเลิกใช้ฟังก์ชันหรือไวยากรณ์ที่เป็นจุดอ่อนจึงเป็นไปได้ยากมาก ทางออกที่มีประสิทธิภาพกว่าคือการสร้างภาษาขึ้นมาใหม่หมด ภายใต้เงื่อนไขที่ว่าภาษาใหม่นี้ต้องแปลงกลับไปเป็น JavaScript ได้ (เพื่อรับประกันว่า อย่างน้อยมันก็จะสามารถทำงานได้บนทุก browser ในปัจจุบัน)

ความพยายามที่ผ่านมาก็ได้แก่ CoffeeScript โดย Jeremy Ashkenas, Dart โดย Google และตอนนี้ Microsoft ก็ขอลงแข่งขันในสมรภูมินี้ด้วย TypeScript ครับ

ไวยากรณ์ของ TypeScript นั้นยังคงความเป็น JavaScript เดิมๆ อยู่เยอะมาก ต่างจาก CoffeeScript ที่ออกแบบใหม่ทั้งหมด (คล้ายจับ Ruby, Haskell มารวมกัน) และไม่เหมือนกับ Dart ที่เป็น structure เต็มรูป

โดยความสามารถของ TypeScript ที่เพิ่มขึ้นจาก JavaScript คือ

  • เลือกได้ว่าจะทำเป็น static type หรือไม่
  • เพิ่มไวยากรณ์สำหรับประกาศ class
  • รองรับระบบโมดูล
  • ปลั๊กอินสำหรับ Visual Studio

ตอนนี้ Microsoft ยังปล่อย TypeScript ออกมาเพียงขั้น preview อยู่ ถ้าสนใจก็ไปทดลองเล่นผ่านหน้าเว็บได้เลย ส่วนด้าน source code นั้นเป็น open source ภายใต้สัญญาอนุญาต Apache 2.0 ครับ

ที่มา: TechCrunch

Get latest news from Blognone

Comments

By: Seiryu
iPhoneWindows
on 5 October 2012 - 08:34 #486105

โค้ดอ่านง่าย เข้าใจง่ายดีครับ
ในโค้ดตัวอย่างนี่ semicolon มีมั่งไม่มีมั่ง
กำลังจะบอกว่ามีหรือไม่มีก็ได้รึเปล่าหว่า...

By: Architec
ContributorWindows PhoneAndroidWindows
on 5 October 2012 - 09:11 #486112

อ่านง่ายดีแฮะ

By: frogpro
Windows PhoneAndroidWindows
on 5 October 2012 - 10:05 #486124

การประกาศตัวแปรถ้าได้ syntax แบบ c# นี่จะเยี่ยมมากเลย

By: Arcanis
Windows PhoneWindows
on 5 October 2012 - 10:10 #486126 Reply to:486124

+1

By: konkeanweb on 5 October 2012 - 10:15 #486131
konkeanweb's picture

ผมชอบแบบ Type เห็นปุ๊ป ทำความเข้าใจง่ายกว่า +1

By: MiiXel2
iPhoneAndroidWindows
on 5 October 2012 - 10:35 #486142
MiiXel2's picture

ชอบเหมือนกันครับ ดูทำให้ง่ายขึ้นมากเลย

By: pure88
Windows
on 5 October 2012 - 10:39 #486148
pure88's picture

นึกถึงตอนที่มีทั้ง VB Script กับ JavaScript เลย (;¬_¬)ซึ่งสงครามจบที่ JavaScript แต่ตอนนี้ท่าจะหนักกว่าตอนนั้นนะ

ถ้าให้ต้อง compile ให้เป็น JavaScript ทุกครั้งที่แก้โปรแกรมก็ไม่ไหวนะ สุดท้ายกลับไปเขียน JavaScript อยู่ดี ( ̄ε(# ̄)

By: Soul_Master
Windows Phone
on 5 October 2012 - 10:46 #486157

ลืมเอา video intro to TypeScript ของ Anders มาใส่หรือเปล่าครับ?

ปล. จริงๆ ควรจะบอกว่า TypeScript คือส่วนต่อขยายจาก JavaScript ในปัจจุบัน(extend/superset) แปลว่าเอา JavaScript ธรรมดาไปเปิดใน TypeScript Editor ได้

By: Be1con
ContributorWindows PhoneWindowsIn Love
on 5 October 2012 - 11:26 #486176 Reply to:486157
Be1con's picture

สงสัยยังไม่ได้เปลี่ยน Input format เป็น Markdown-iframe แน่ ๆ


Coder | Designer | Thinker | Blogger

By: neizod
ContributorTraineeIn Love
on 5 October 2012 - 12:58 #486220 Reply to:486157
neizod's picture

ผมกำลังงงอยู่ เนื้อข่าวต้นฉบับก็ไม่เห็นมีพูดถึง video หรือ Andres เลยหนิครับ?

By: nextman13
AndroidBlackberryUbuntuWindows
on 5 October 2012 - 10:57 #486165

ง่ายดีและลดการเรียนรู้ได้เยอะทีเดียวเพราะคล้าย javascript เลยครับ

By: AongDev
ContributoriPhoneAndroidIn Love
on 5 October 2012 - 15:15 #486281
AongDev's picture

ตอนนี้ jQuery เข้าสายเลือด ><

By: EThaiZone
ContributorAndroidUbuntuWindows
on 5 October 2012 - 18:04 #486349 Reply to:486281
EThaiZone's picture

คิดเหมือนกัน เป็นตัวแปรสำคัญที่ยังยึดกับ Javascript ต่อไป

ต่อให้ดันมีบริษัทใดจ่ายเงินให้ JQuery มีภาษาของตัวเองขึ้นมา แล้ว community เดิมๆ ผู้พัฒนาปลั๊กอินเดิมๆ ไม่เอาด้วย ก็แป๊กอยู่ดี


มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB

By: tontpong
Contributor
on 6 October 2012 - 04:20 #486539 Reply to:486349

มันใช้กับ jQ ได้ 100% เลยนิ :?

By: SaMzAn
Windows PhoneWindows
on 5 October 2012 - 20:47 #486396
SaMzAn's picture

อยากให้ทำตัวแปลงจาก C# VB C++ เป็น Java script

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 6 October 2012 - 00:23 #486450 Reply to:486396
PaPaSEK's picture

มันคนละเรื่องกันเลยนะครับ

By: SaMzAn
Windows PhoneWindows
on 6 October 2012 - 13:08 #486639 Reply to:486450
SaMzAn's picture

เข้าใจครับว่ามันคนละเรื่องกัน

เพียงแต่อ่านข่าวแล้วรู้สึกว่า ทำภาษาใหม่แล้วแปลงกลับมาเป็น JavaScript เพื่อให้พัฒนาโปรแกรมง่ายขึ้น
ก็เลยรู้สึกว่า Microsoft มีภาษาอยู่แล้วตั้งหลายภาษา ถ้าทำ Tool แปลงภาษาตระกูล .Net ให้เป็น Java Script น่าจะดีกว่าใหม เพราะ Dev จะได้ไม่ต้องเรียนรู้ภาษาใหม่

ผมคิดเล่นๆครับ ^^

By: tontpong
Contributor
on 7 October 2012 - 08:21 #486847 Reply to:486639

อันนี้ target คือกลุ่มที่เขียน js .. แต่ว่าทำให้ js มันใช้ง่ายขึ้น

By: inkirby
ContributoriPhoneAndroidIn Love
on 6 October 2012 - 00:24 #486452 Reply to:486396
inkirby's picture

Java != JavaScript


Dream high, work hard.

By: lunargone
Android
on 6 October 2012 - 03:01 #486531 Reply to:486396

มีวิธีทำอยู่นะครับแต่หลายขั้นตอนหน่อย คือเขียนโปรแกรมด้วยจาวาหรือภาษาตระกูลด็อทเน็ทแล้วคอมไพล์เป็นไบท์โค้ด เมื่อเสร็จแล้วแปลงไบท์โค้ดที่ได้เป็นซอสโค้ดของ c++ ด้วย xmlvm เสร็จแล้วคอมไพล์โค้ดภาษา c++ ด้วย Clang ให้เป็น LLVM bitcode เสร็จแล้วแปลงต่อด้วย Emscripten ตัวนี้มีหน้าที่แปลง LLVM bitcode เป็น javascript ครับ ....(ละมั้ง!)

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 6 October 2012 - 10:40 #486592 Reply to:486531
PaPaSEK's picture

ฮ่า ฮ่า ฮ่า

By: tontpong
Contributor
on 6 October 2012 - 04:19 #486538 Reply to:486396

.. this one :?

http://sharpkit.net/Compare.aspx

By: SaMzAn
Windows PhoneWindows
on 6 October 2012 - 13:03 #486635 Reply to:486538
SaMzAn's picture

โอ้ เพิ่งรู้ว่ามีตัว Convertด้วย
ขอบคุณครับ

By: lunargone
Android
on 6 October 2012 - 21:44 #486752 Reply to:486538

ง่ายกว่าวิธีของผมเยอะเลย T-T 555+

By: tontpong
Contributor
on 4 November 2012 - 04:18 #501213

typescript dogfooding by ms, in development of tfs .. http://blogs.msdn.com/b/bharry/archive/2012/10/24/typescript-a-real-world-story-of-adoption-in-tfs.aspx

ใครไม่รุจัก tfs ก้อลองแวะดูที่ http://tfs.visualstudio.com/ ละกัน (ตอนนี้มัน RTM แล้วด้วย ใช้กับงาน production ได้ละ ถ้าไม่เกิน 5 คน ใช้ได้ฟรี)