จุดอ่อนอันยิ่งใหญ่ของ 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
on
โค้ดอ่านง่าย
Seiryu Fri, 05/10/2012 - 08:34
โค้ดอ่านง่าย เข้าใจง่ายดีครับ
ในโค้ดตัวอย่างนี่ semicolon มีมั่งไม่มีมั่ง
กำลังจะบอกว่ามีหรือไม่มีก็ได้รึเปล่าหว่า...
อ่านง่ายดีแฮะ
Architec Fri, 05/10/2012 - 09:11
อ่านง่ายดีแฮะ
การประกาศตัวแปรถ้าได้ syntax
frogpro Fri, 05/10/2012 - 10:05
การประกาศตัวแปรถ้าได้ syntax แบบ c# นี่จะเยี่ยมมากเลย
+1
Arcanis Fri, 05/10/2012 - 10:10
In reply to การประกาศตัวแปรถ้าได้ syntax by frogpro
+1
ผมชอบแบบ Type เห็นปุ๊ป
konkeanweb Fri, 05/10/2012 - 10:15
ผมชอบแบบ Type เห็นปุ๊ป ทำความเข้าใจง่ายกว่า +1
ชอบเหมือนกันครับ
MiiXel2 Fri, 05/10/2012 - 10:35
ชอบเหมือนกันครับ ดูทำให้ง่ายขึ้นมากเลย
นึกถึงตอนที่มีทั้ง VB Script
pure88 Fri, 05/10/2012 - 10:39
นึกถึงตอนที่มีทั้ง VB Script กับ JavaScript เลย (;¬_¬)ซึ่งสงครามจบที่ JavaScript แต่ตอนนี้ท่าจะหนักกว่าตอนนั้นนะ
ถ้าให้ต้อง compile ให้เป็น JavaScript ทุกครั้งที่แก้โปรแกรมก็ไม่ไหวนะ สุดท้ายกลับไปเขียน JavaScript อยู่ดี ( ̄ε(# ̄)
ลืมเอา video intro to
Soul_Master Fri, 05/10/2012 - 10:46
ลืมเอา video intro to TypeScript ของ Anders มาใส่หรือเปล่าครับ?
ปล. จริงๆ ควรจะบอกว่า TypeScript คือส่วนต่อขยายจาก JavaScript ในปัจจุบัน(extend/superset) แปลว่าเอา JavaScript ธรรมดาไปเปิดใน TypeScript Editor ได้
สงสัยยังไม่ได้เปลี่ยน Input
Be1con Fri, 05/10/2012 - 11:26
In reply to ลืมเอา video intro to by Soul_Master
สงสัยยังไม่ได้เปลี่ยน Input format เป็น Markdown-iframe แน่ ๆ
ผมกำลังงงอยู่
neizod Fri, 05/10/2012 - 12:58
In reply to ลืมเอา video intro to by Soul_Master
ผมกำลังงงอยู่ เนื้อข่าวต้นฉบับก็ไม่เห็นมีพูดถึง video หรือ Andres เลยหนิครับ?
ง่ายดีและลดการเรียนรู้ได้เยอะ
nextman13 Fri, 05/10/2012 - 10:57
ง่ายดีและลดการเรียนรู้ได้เยอะทีเดียวเพราะคล้าย javascript เลยครับ
ตอนนี้ jQuery เข้าสายเลือด ><
AongDev Fri, 05/10/2012 - 15:15
ตอนนี้ jQuery เข้าสายเลือด ><
คิดเหมือนกัน
EThaiZone Fri, 05/10/2012 - 18:04
In reply to ตอนนี้ jQuery เข้าสายเลือด >< by AongDev
คิดเหมือนกัน เป็นตัวแปรสำคัญที่ยังยึดกับ Javascript ต่อไป
ต่อให้ดันมีบริษัทใดจ่ายเงินให้ JQuery มีภาษาของตัวเองขึ้นมา แล้ว community เดิมๆ ผู้พัฒนาปลั๊กอินเดิมๆ ไม่เอาด้วย ก็แป๊กอยู่ดี
มันใช้กับ jQ ได้ 100% เลยนิ
tontpong Sat, 06/10/2012 - 04:20
In reply to คิดเหมือนกัน by EThaiZone
มันใช้กับ jQ ได้ 100% เลยนิ :?
อยากให้ทำตัวแปลงจาก C# VB C++
SaMzAn Fri, 05/10/2012 - 20:47
อยากให้ทำตัวแปลงจาก C# VB C++ เป็น Java script
มันคนละเรื่องกันเลยนะครับ
PaPaSEK Sat, 06/10/2012 - 00:23
In reply to อยากให้ทำตัวแปลงจาก C# VB C++ by SaMzAn
มันคนละเรื่องกันเลยนะครับ
เข้าใจครับว่ามันคนละเรื่องกัน
SaMzAn Sat, 06/10/2012 - 13:08
In reply to มันคนละเรื่องกันเลยนะครับ by PaPaSEK
เข้าใจครับว่ามันคนละเรื่องกัน
เพียงแต่อ่านข่าวแล้วรู้สึกว่า ทำภาษาใหม่แล้วแปลงกลับมาเป็น JavaScript เพื่อให้พัฒนาโปรแกรมง่ายขึ้น
ก็เลยรู้สึกว่า Microsoft มีภาษาอยู่แล้วตั้งหลายภาษา ถ้าทำ Tool แปลงภาษาตระกูล .Net ให้เป็น Java Script น่าจะดีกว่าใหม เพราะ Dev จะได้ไม่ต้องเรียนรู้ภาษาใหม่
ผมคิดเล่นๆครับ ^^
อันนี้ target
tontpong Sun, 07/10/2012 - 08:21
In reply to เข้าใจครับว่ามันคนละเรื่องกัน by SaMzAn
อันนี้ target คือกลุ่มที่เขียน js .. แต่ว่าทำให้ js มันใช้ง่ายขึ้น
Java != JavaScript
inkirby Sat, 06/10/2012 - 00:24
In reply to อยากให้ทำตัวแปลงจาก C# VB C++ by SaMzAn
Java != JavaScript
มีวิธีทำอยู่นะครับแต่หลายขั้น
lunargone Sat, 06/10/2012 - 03:01
In reply to อยากให้ทำตัวแปลงจาก C# VB C++ by SaMzAn
มีวิธีทำอยู่นะครับแต่หลายขั้นตอนหน่อย คือเขียนโปรแกรมด้วยจาวาหรือภาษาตระกูลด็อทเน็ทแล้วคอมไพล์เป็นไบท์โค้ด เมื่อเสร็จแล้วแปลงไบท์โค้ดที่ได้เป็นซอสโค้ดของ c++ ด้วย xmlvm เสร็จแล้วคอมไพล์โค้ดภาษา c++ ด้วย Clang ให้เป็น LLVM bitcode เสร็จแล้วแปลงต่อด้วย Emscripten ตัวนี้มีหน้าที่แปลง LLVM bitcode เป็น javascript ครับ ....(ละมั้ง!)
ฮ่า ฮ่า ฮ่า
PaPaSEK Sat, 06/10/2012 - 10:40
In reply to มีวิธีทำอยู่นะครับแต่หลายขั้น by lunargone
ฮ่า ฮ่า ฮ่า
.. this one
tontpong Sat, 06/10/2012 - 04:19
In reply to อยากให้ทำตัวแปลงจาก C# VB C++ by SaMzAn
.. this one :?
http://sharpkit.net/Compare.aspx
โอ้ เพิ่งรู้ว่ามีตัว
SaMzAn Sat, 06/10/2012 - 13:03
In reply to .. this one by tontpong
โอ้ เพิ่งรู้ว่ามีตัว Convertด้วย
ขอบคุณครับ
ง่ายกว่าวิธีของผมเยอะเลย T-T
lunargone Sat, 06/10/2012 - 21:44
In reply to .. this one by tontpong
ง่ายกว่าวิธีของผมเยอะเลย T-T 555+
typescript dogfooding by ms,
tontpong Sun, 04/11/2012 - 04:18
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 คน ใช้ได้ฟรี)