Haxe คุ้มค่ากับการเรียนรู้หรือไม่? [ปิด]


153

สำหรับคนที่อยู่ที่นั่นโดยใช้Haxeอะไรที่ทำให้มีประโยชน์สำหรับคุณ อ่านเว็บไซต์มันดูมีแนวโน้มมาก มันให้ความสำคัญกับการพกพาหรือไม่?

โลกแห่งความจริงมีอะไรบ้างและบางทีภายใต้ข้อได้เปรียบที่ชื่นชม?

ข้อผิดพลาดหรือ gotchas คืออะไร?


ไม่เคยได้ยินเรื่องนี้มาก่อนดูน่าสนใจ
JoshBerke

9
เหตุใดจึงควรมีปัญหาร้ายแรงกับชุมชน? ชุมชนไม่ใหญ่มาก แต่ก็ให้การสนับสนุนอย่างมากเพียงแค่ดูกิจกรรมของรายชื่อผู้รับจดหมาย
Franco Ponticelli

4
คำตอบสั้น ๆ คือใช่มันคุ้มค่าที่จะเรียนรู้ ฉันจะเขียนคำตอบโดยละเอียดเพิ่มเติมในภายหลังหากบุคคลอื่นไม่ตอบคำถามได้ดีกว่า
tylermac

4
อาจจะดูคำถามนี้: stackoverflow.com/questions/321204/haxe-in-the-field
TheHippo

2
ฉันไม่คิดว่าจะมีอันตรายใด ๆ ในการเรียนรู้มัน อยู่ใกล้กับ JS และ AS มากพอที่ใช้เวลาในการเรียนรู้มันสามารถส่งผ่านไปยังโครงการอื่นได้
Nosredna

คำตอบ:


128

Haxe คุ้มค่ากับการเรียนรู้หรือไม่?

คำตอบสั้น ๆ คือ: แน่นอน!

สำหรับคนที่อยู่ที่นั่นโดยใช้ Haxe อะไรที่ทำให้มีประโยชน์สำหรับคุณ

หากคุณเป็นนักพัฒนาเว็บคุณรู้ว่าคุณไม่สามารถใช้เทคโนโลยีเดียวนานเกินไป ไม่ช้าก็เร็วคุณจะต้องจัดการกับการเปลี่ยนแปลงในสภาพแวดล้อมหรือเป้าหมาย (คุณพัฒนาสำหรับ. NET แต่ลูกค้าสำคัญต้องการ PHP หรือวิดเจ็ตนั้นควรอยู่ใน Flash ไม่ใช่ Javascript) และนี่เป็นสถานการณ์กรณีที่ดีที่สุด ในกรณีที่เลวร้ายที่สุดคุณจะต้องเปลี่ยนอย่างต่อเนื่องบ่อยครั้งหลายครั้งในวันทำการเดียวกัน

สวิตช์เหล่านั้นอาจเสียเวลามากเพราะคุณจำเป็นต้องเปลี่ยนกระบวนทัศน์การเขียนโปรแกรมของคุณหลายครั้งเกินไปและอาจเป็นเพราะคุณจะมีการทับซ้อนจำนวนมากในการเข้ารหัสไลบรารีของคุณสำหรับเป้าหมายเฉพาะ Haxe พยายามลดความเจ็บปวดจากการเปลี่ยนแปลงโดยมีภาษาต้นฉบับเพียงภาษาเดียว (ภาษา Haxe) และเอาท์พุทจำนวนมาก (ผ่าน Haxe คอมไพเลอร์) ภาษาเป็นมิตรและเรียนรู้ได้ง่ายมาก

อ่านเว็บไซต์มันดูมีแนวโน้มมาก มันให้ความสำคัญกับการพกพาหรือไม่?

ภาษาเดียวกันไม่ว่าคุณจะปรับใช้แพลตฟอร์มใดก็ตาม ดังนั้นคุณจึงกำหนดคลาส / อินเตอร์เฟส / enums / typedefs ในลักษณะเดียวกันสำหรับ JS, Flash, C ++ เป็นต้นหากประเภทที่คุณกำหนดไม่ได้ขึ้นอยู่กับแพลตฟอร์ม API เฉพาะพวกเขาสามารถนำกลับมาใช้ใหม่ได้จากแพลตฟอร์มหนึ่งไปยังอีกแพลตฟอร์มหนึ่ง . แพลตฟอร์มทั้งหมดยังแชร์ API ทั่วไปเช่นการเข้าถึง XML, การเชื่อมต่อ HTTP และการสะท้อนกลับ แพลตฟอร์มที่มีสิ่งที่เหมือนกัน (เช่น Neko และ PHP) แบ่งปัน API เดียวกันสำหรับสิ่งต่าง ๆ เช่นการเข้าถึงไฟล์หรือการพัฒนาเว็บเซิร์ฟเวอร์

โลกแห่งความจริงมีอะไรบ้างและบางทีภายใต้ข้อได้เปรียบที่ชื่นชม?

  • หากคุณมีประสบการณ์กับ Flash / Flex คุณจะรู้ว่าคอมไพเลอร์สามารถทำให้งานของคุณช้าลงอย่างไร (ข้อได้เปรียบเพียงอย่างเดียวคือสามารถหยุดพักดื่มกาแฟขณะรอ;) คอมไพเลอร์ Haxe เร็วขึ้นหลายเท่าเร็วจนเกือบทุกครั้งที่คุณไม่สังเกตว่ามันใช้งานได้
  • รหัสไบต์ที่ผลิตนั้นเร็วกว่าเครื่องมือของ Adobe อย่างมาก
  • นอกจากนี้ในขอบเขตของแฟลช Haxe สามารถ "ฟังก์ชั่นอินไลน์" หรือเข้าถึงคุณสมบัติหน่วยความจำที่มีให้ที่อื่นโดยใช้การเล่นแร่แปรธาตุ
  • ในกรณีที่คุณต้องการคุณสามารถเลือกเวอร์ชันของ Flash ที่จะกำหนดเป้าหมายได้ตั้งแต่ 6 ถึง 10 API มีการเปลี่ยนแปลงมากมาย แต่ภาษา Haxe เหมือนกันทุกประการ

เมื่อพูดถึงฝั่งเซิร์ฟเวอร์เราทุกคนรู้ว่า PHP เป็นที่แพร่หลายเพียงใด คุณสามารถพัฒนาแอปพลิเคชันด้วย Haxe ที่กำหนดเป้าหมายและขยายเป็น Neko หรือแม้แต่ C ++ หากเว็บแอปพลิเคชันของคุณเติบโต

ข้อผิดพลาดหรือ gotchas คืออะไร?

นี่คือรายการของความเข้าใจผิดที่พบบ่อย:

  • Haxe is young and immatureไม่จริง, Haxe อายุเกือบ 4 ปีแล้ว, ได้เห็นรุ่นอย่างเป็นทางการ 25 รายการ (ไม่สร้าง) + 13 อัลฟ่าและเบตามันได้รับการปรับปรุงอย่างต่อเนื่องและมีชุมชนที่อุทิศตนมาก มันถูกใช้อย่างมืออาชีพโดยคนจำนวนมากในหลาย ๆ ด้านการพัฒนา ดูที่รายชื่อผู้รับจดหมายข่าวเพื่อค้นหาว่าผู้คนใช้ Haxe อย่างไร

  • Haxe is complicatedเนื่องจากเป้าหมายหลักของ Haxe คือไม่มีคำถามใด ๆ AS3 ผู้คนคาดหวังว่ามันจะต้องมีพ่อมดหรือ GUI ตามที่ระบุไว้ Haxe เป็นภาษาและคอมไพเลอร์ซึ่งทำให้เหมาะสำหรับโปรแกรมเมอร์ แต่ไม่ดีสำหรับนักออกแบบ

  • There aren't any IDEsส่วนที่แท้จริงของเรื่องนี้ก็คือ IDE อาจจะดีขึ้นในหลายแง่มุมที่ดีกว่าที่จะบูรณาการกับ Haxe แต่มีอยู่แล้วจำนวนมากของตัวเลือกที่ถูกต้อง

  • The only book published is already outdatedมีความจริงบางอย่างอยู่ที่นี่เช่นกันโชคไม่ดีที่หนังสือเล่มนี้ตีพิมพ์เพียงไม่กี่เดือนก่อนที่จะมีการเปิดตัวครั้งใหญ่ (จาก V1 ถึง V2) การเปิดตัวครั้งใหญ่นั้นไม่ได้เปลี่ยนแปลงอะไรมากมาย แต่มันเพิ่มความไม่ลงรอยกันเล็กน้อย หนังสือเล่มนี้ยังคงเป็นแหล่งข้อมูลที่ถูกต้อง (ฉันไม่ได้แค่พูดอย่างนั้นเพราะฉันเขียนมัน))


1
ขอบคุณสำหรับการตอบสนอง Franco และรายการของ IDEs ฉันรู้สึกทึ่งกับปลั๊กอิน Xcode สำหรับ HaXe นั่นดูหวานมาก! เรื่องราวของชุดกรอบ UI และ Haxe คืออะไร ตัวอย่างเช่นจะเป็นไปได้ไหมที่จะตั้งเป้าหมายว่า Cocoa กับ HaXe และรับวิดเจ็ตเนทีฟสำหรับ OS X โดยพื้นฐานแล้วใช้เครื่องมือสร้างอินเตอร์เฟสและเชื่อมโยงเข้าด้วยกันกับซอร์สโค้ด HaXe?
Gordon Potter

ถ้า C ++ นั้นเพียงพอสำหรับคุณก็เป็นไปได้ คุณควรปิดการโทรโกโก้เพื่อให้พวกเขา "เข้าถึงได้" จากรหัสที่สร้างโดย haXe เวอร์ชั่นปัจจุบันของ haXe อย่างที่คุณทราบแล้วว่าสามารถพัฒนาแอพ iPhone ได้แล้ว แน่นอนว่ามันยังคงเป็นการทดลองอย่างมาก พิจารณาว่าเป้าหมาย C ++ นั้นได้รับการแนะนำในรุ่นล่าสุดเท่านั้น
Franco Ponticelli

34
นอกจากนี้ยังจะช่วยให้มีข้อเสียสำหรับ haXe - ไม่เพียงสรรเสริญ
อลัน Klement

โปรแกรมเมอร์ AS3 ของตัวเองและเห็นแฟลชกำลังจะตายอย่างน่ากลัวแฮ็กก็เริ่มดีขึ้นและดีขึ้นสำหรับเรา
justnajm

เห็นด้วยกับข้อเสียที่เป็นไปได้และถ้าเป็นไปได้ฉันต้องการคำตอบของรุ่นนี้หากเป็นไปได้
โพร

25

"สำหรับคนที่ใช้ Haxe ที่นั่นอะไรที่มีประโยชน์สำหรับคุณ"

ในฐานะผู้สร้างสรรค์กะพริบฉันไม่เห็นจุดใน AS3 อีกต่อไป! ดังนั้นจาก coder ผู้ใช้ Flash / ศิลปินที่นี่เป็นของฉัน:

ในโครงการปัจจุบันของฉันฉันอายุ 19 ปีซึ่งย้ายจากไทม์ไลน์ส่วนใหญ่ AS2 / AS3 ไปเป็นคลาส Haxe ภายใต้คำแนะนำของฉันและทำการย้ายรหัส AS2 และ AS3 ข้าม ดังนั้นฉันจึงไม่คิดว่า Haxe นั้นยากต่อการใช้งานมากกว่า AS3 หรือเมื่อใช้ใน Flash แตกต่างกันอย่างมีนัยสำคัญ เท่าที่ความเสถียรเกิดขึ้น Gripe ปัจจุบันของฉันคือลักษณะของเครื่องเล่นแฟลชปัจจุบัน Haxe นั้นเสถียรหรือเสถียรกว่า AS3 เมื่อพัฒนา Flash

วิวัฒนาการของ Flash เป็นกระบวนการที่คงที่ในการสร้างห้องสมุดที่ไร้ประโยชน์เมื่อมีการเปลี่ยนแปลง Flash (อาจเป็นเพราะพวกเขาจำเป็นต้องขายซอฟต์แวร์ทุกปี!) และส่วนประกอบต่าง ๆ เป็นสิ่งที่ฉันต้องการเสมอ แต่ขนาดมันโง่ดังนั้นฉันจึงไม่เต็มใจ เพื่อติดตามเหมือนแกะเข้าสู่ Flex หรือย้ายไปที่ XAML อื่น

ข้อได้เปรียบหลักของ Haxe คือคุณสามารถเริ่มนึกถึงการสร้างคลาสที่หย่าร้างจากแพลตฟอร์มและจะสามารถใช้งานได้เป็นเวลาห้าปีนับจากนี้ฉันสงสัยว่าเป็นจริงของ AS3 ใด ๆ ที่คุณสร้าง Haxe มีเน็คไทที่น้อยลง ฉันสามารถรวบรวมรหัสเพื่อ JavaScript, Silverlight หรืออะไรก็ตามที่ Google นำเสนอต่อไป

ปัญหาหลักของฉันกับ Haxe คือการพัฒนาส่วนใหญ่ไม่ได้อยู่บน Mac ดังนั้นการรวบรวม C ++ และคุณลักษณะใหม่ของ Haxe บางครั้งก็มาจากผู้ใช้ Windows แต่ฉันไม่ได้มีปัญหากับ core Haxe เช่นการรวบรวม Flash

ในแง่ของนักออกแบบ: ฉันใช้ภาพยนตร์ Flash IDE โหลดที่รันไทม์สำหรับเนื้อหาภาพของฉันและทำเช่นเดียวกันเมื่อพัฒนาใน AS3 ดังนั้นขั้นตอนการทำงานของฉันไม่ขึ้นอยู่กับ AS3 / Haxe ฉันชอบชีวิตที่เรียบง่ายดังนั้นฉันจึงใช้ Textmate สำหรับ AS3 หรือ Haxe ฉันมีความหลงใหลใน Flash IDE และพลังของมัน แต่จะไม่ใช้มันเป็นรหัสและส่วนใหญ่ของฉันทำงานกับ Flash เป็นรหัสส่วนใหญ่ดังนั้นฉันจึงไม่ยอมใครง่ายๆ Linux Linux Haxe ไม่หยุดคุณใช้ Flash IDE แต่ถ้าคุณต้องการ ใช้ swfmill หรือ sam คุณสามารถ

คำถามคือ: ทำไมเสียเวลากับภาษาเชิงพาณิชย์ AS3 ที่มีแนวโน้มที่จะเปลี่ยนแปลงเพียงเพื่อขายรุ่นในอนาคตและถูก จำกัด ไว้ที่ Flash Player?

ฉันใช้เวลาไม่นานในการขึ้นสู่เวทีที่ฉันสามารถสร้างเกมหรือไอเดียที่ซับซ้อนในจาวาสคริปต์โดยไม่จำเป็นต้องใช้ jQuery ฯลฯ เพิ่งออกจากกล่อง Haxe ... มันจะทำงานข้ามเบราว์เซอร์ ฯลฯ ... Haxe ให้ฉันใช้แฟลช ทักษะการเขียนโปรแกรมและความเข้าใจในการพัฒนาอินเตอร์เฟสนอกแฟลช (ไม่เคยใช้ JavaScript มาก่อนจริงๆ) ถ้าฉันเรียนรู้ JavaScript อย่างแท้จริงฉันอาจจะไม่รู้สึกเปิดใช้งานมากขึ้นเหมือนกับมีคนตัดแขนออกและฉันจะเขียนโค้ดเฉพาะแพลตฟอร์ม ในขณะที่ตอนนี้ฉันสามารถใช้FEffectsสำหรับการทวีตและต่อมาเพิ่มสวิตช์คอมไพเลอร์และคอมไพล์ไปยังแพลตฟอร์มอื่นและใช้ neash / nme

ฉันค่อนข้างชอบแง่มุมต่าง ๆ เช่นคอมไพเลอร์ที่ฉลาดเกี่ยวกับประเภททำให้รหัสของฉันสะอาดขึ้น และ typedef นั้นยอดเยี่ยม

ฉันดูที่ PHP และตัดสินใจว่ามันเป็นภาษาสกปรกที่งี่เง่าและเหมือนกันสำหรับ JavaScript ฉันดีใจที่ฉันสามารถกำหนดเป้าหมายด้วย Haxe และไม่ต้องใช้เวลามากกับเวทมนตร์แฮ็คสีดำ

ถ้าคุณชอบที่จะสร้างรหัสเพื่อพัฒนาความคิดสร้างสรรค์ทางภาพอย่างรวดเร็วฉันคิดว่า Haxe เป็นภาษาในอุดมคติและในฐานะอิสระที่ฉันใช้งานเชิงพาณิชย์


18

มุมมองของ Haxe

คำเตือนในย่อหน้าต่อไปนี้มีความเป็นปรัชญาสูง

ในฐานะที่เป็นคนที่เปิดรับภาษาการเขียนโปรแกรมจำนวนมากในช่วงเวลาสั้น ๆ ของฉันการเขียนโปรแกรมและคนที่เพียงแค่ย้ายเมื่อฉันรู้สึกว่าบางสิ่งบางอย่างไม่ทำงานสำหรับฉัน; ฉันพบว่า Haxe เป็นสิ่งที่ฉันไม่สามารถก้าวหน้าได้ฉันแค่ 'ดีกว่า'

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

Haxe อนุญาตให้ฉันแสดงออกได้มากขึ้นด้วยวิธีที่ฉันเขียนฉันไม่ได้หมายถึง 'การแสดงออก' เช่นเดียวกับคุณภาพที่ทุกคนพูดถึงภาษาที่ฉันหมายถึงความสามารถในการมีความคิดและทำงานด้วยความพยายาม สิ่งที่ฉันรู้สึกว่าถูกต้อง ไม่ว่าจะสำเร็จหรือล้มเหลวทั้งหมด

Haxe เป็นเส้นโค้งการเรียนรู้ที่ง่ายมากสำหรับฉันด้วยภูมิหลังทั่วไปของฉันในภาษาสไตล์ c และ AS2 / 3 และฉันไม่ได้มีปัญหาอะไรเลยในการเลือกมัน สิ่งหนึ่งที่ขัดขวางความก้าวหน้าของฉันด้วยภาษาใหม่อยู่เสมอคือการทำความเข้าใจแนวคิดที่อยู่เบื้องหลังไวยากรณ์ / กรอบนั้นโดยเฉพาะ แต่แม้เมื่อฉันผ่านอุปสรรค์นั้นฉันมักจะพบว่าภาษานั้นมีอยู่ในตัวเอง จำกัด จำกัด หรือทั้งสองอย่าง ด้วย Haxe ฉันไม่ได้ถูก จำกัด หรือฉันค้นหาภาษาเพื่อ จำกัด ตัวฉัน ด้วย Haxe ไม่มีเพดานกระจก แต่เป็นพื้นกระจกในที่ไม่มีข้อ จำกัด ในสิ่งที่คุณสามารถทำได้ แต่คุณสามารถเห็นได้อย่างชัดเจนว่าคุณไปถึงที่นั่นได้อย่างไร

การหยิบ Haxe ไม่เหมือนการหยิบไม้เท้าขึ้นมาและจุดไฟ แต่ก็ไม่เหมือนการออกไปซื้อชุด oxyacetylene แล้วเริ่มจุดไฟด้วย ในแง่นี้ Haxe เข้าใกล้การแข่งขันมากขึ้นและคุณสามารถนำมาใช้ซ้ำได้ มันติดตามการเปลี่ยนแปลงเกือบทั้งหมดของบางสิ่งที่คุณคุ้นเคย แต่เพิ่มคุณสมบัติใหม่ที่มีประโยชน์ แต่การทำเช่นนั้นมันไม่ได้คิดค้นล้อใหม่ทั้งหมดเลยเพียงแค่แก้ไขบิตเน่าเสีย (ใช้ได้น้อยกว่าการเปรียบเทียบในย่อหน้าถัดไป)

สิ่งที่ปฏิบัติ:

ภาษานั้นเรียบง่ายและเป็นมาตรฐานขณะที่ยังคงให้โปรแกรมเมอร์สามารถไปได้ไกลเท่าที่พวกเขาต้องการ

คุณสามารถเขียนโค้ดในระดับสูงมากหรือไปเล่นซอกับบิตและชิ้นเล็ก ๆ (ในระดับที่รุนแรงในบางแพลตฟอร์ม)

Haxe ไม่ได้กำหนดสิ่งที่คุณสามารถทำได้และไม่สามารถทำได้บนแพลตฟอร์มใดก็ตามมันให้ (หรือแผนการที่จะให้คุณ) เข้าถึงทุกอย่างได้อย่างเต็มที่ แต่มันสามารถเพิ่มวิธีมาตรฐานในการทำสิ่งต่าง ๆ ได้อย่างไร

รายชื่อผู้รับจดหมายมีประโยชน์มากและตอบสนองได้ดีและในตอนนี้ฟอรั่มก็มีการพัฒนาอย่างรวดเร็ว

ภาษามีการเปลี่ยนแปลงอยู่ตลอดเวลา (ในรูปแบบเล็กน้อย) พร้อมสิ่งใหม่ ๆ ที่เพิ่มเข้ามาในทุกรุ่น

มีข้อบกพร่องจริงน้อยมากที่ผ่านมาสำหรับ API หลักและแม้แต่น้อยสำหรับคอมไพเลอร์

ทุกคนพูดอย่างเปิดเผยเกี่ยวกับทิศทางของภาษาและทิศทางที่พวกเขาแนะนำสำหรับ Haxe (และแน่นอนว่าทำไมจึงควรใช้ทิศทางนั้น)

และในที่สุด Haxe ก็ไม่ได้เป็น บริษัท เอกชนรายใหญ่โดย บริษัท ขนาดใหญ่ (หรือแม้แต่เล็ก) ที่จะทำเงินจากคุณในฐานะนักพัฒนา แต่มันถูกสร้างขึ้นเพื่อให้นักพัฒนาทุกคนใช้สร้างและปรับปรุง และนั่นคือเหตุผลที่ฉันรู้สึกว่า Haxe เป็นที่ที่ฉันต้องการ (ตอนนี้กลับไปที่การเข้ารหัส)


13

หากคุณต้องการคำตอบสั้น ๆ : ใช่!

สำหรับคนที่อยู่ที่นั่นโดยใช้ Haxe อะไรที่ทำให้มีประโยชน์สำหรับคุณ

เวลาส่วนใหญ่ที่ฉันใช้ Haxe สำหรับฝั่งเซิร์ฟเวอร์ (ซึ่งหมายถึงเป้าหมายของ PHP หรือ neko) ในความคิดของฉัน PHP เป็นภาษาที่ดูดมากที่สุดที่ฉันเคยใช้นั่นคือเหตุผลที่ฉันเริ่มใช้ Haxe: มีภาษาที่ใช้ได้

ข้อดีอีกอย่างที่สำคัญสำหรับฉันคือ Haxe เป็นโอเพ่นซอร์ส

มันให้ความสำคัญกับการพกพาหรือไม่?

มีรหัสเดียวกันในเป้าหมายที่แตกต่าง! ฉันไม่สามารถจินตนาการได้เลยว่าจะมีความสามารถในการพกพามากขึ้น

การย้ายเว็บไซต์จาก PHP ไปยังmod_toraซึ่งทำงานได้เร็วกว่า 40-80 เท่าจากนั้น PHP จึงต้องทำงาน 5 นาที ???

โลกแห่งความจริงมีอะไรบ้างและบางทีภายใต้ข้อได้เปรียบที่ชื่นชม?

  • ข้อได้เปรียบที่ใหญ่ที่สุดคือการพกพาโค้ดและตัวเลือกที่ยอดเยี่ยมในการสื่อสารระหว่างแพลตฟอร์มมันไม่เคยง่ายต่อการจัดการข้อมูลระหว่างไคลเอนต์และเซิร์ฟเวอร์ (ดูหัวข้อRemotingในวิกิ)
  • ชุมชนดีมาก (ถ้าคุณชอบรายชื่อผู้รับจดหมายอย่างน้อย :-)
  • อีกสิ่งหนึ่งคือ: หากคุณต้องการดำเนินการตามแพลตฟอร์มที่ไม่ได้รับการสนับสนุนจาก Haxe (ซึ่งเกิดขึ้นน้อยมาก) Haxe จะให้ตัวเลือกแก่คุณในการกำหนดเป้าหมายเหล่านั้น มันเรียกว่าเวทมนตร์ Haxe กล่าวอีกนัยหนึ่ง: คุณสามารถทำทุกสิ่งได้ในภาษาท้องถิ่นของแพลตฟอร์ม + สิ่งที่ดีที่ Haxe เสนอให้คุณ

ข้อผิดพลาดหรือ gotchas คืออะไร?

  • เอกสารประกอบการติดตั้งบางครั้งอาจไม่สมบูรณ์แบบ 100% การสนับสนุน IDEs สามารถปรับปรุงได้มาก
  • บางครั้งเป้าหมาย JavaScript ก็ยากที่จะใช้เพราะ Haxe ให้ภาษาที่ดีมาก แต่กรอบบางอย่างสำหรับการจัดการ DOM ที่ใช้กันทั่วไปส่วนใหญ่หายไป แต่ฉันคิดว่าบางคนกำลังใช้งาน ;-)
  • ถ้าฉันต้องทำงานให้กับลูกค้าบางครั้งพวกเขาไม่ชอบความคิดที่จะให้โครงการของพวกเขาได้รับรู้ในภาษาที่ไม่รู้จัก

PS: ฉันคิดว่ามันคุ้มค่าที่จะเรียนรู้ภาษาใหม่เพราะจะช่วยพัฒนาทักษะการเขียนโปรแกรมและประสบการณ์ของคุณ


mode_tora ฟังดูน่าสนใจ แต่คุณจะทำอย่างไรถ้าคุณไม่มี / ต้องการ httpd ของ apache? มีเซิร์ฟเวอร์ใน neko แต่เอกสารระบุว่าเป็นเพียงการพัฒนา
stesch

8

คำถามของคุณได้รับคำตอบแล้ว แต่ฉันต้องการเพิ่มคำย่อสั้น ๆ

ฉันได้เรียนรู้และใช้ Haxe อย่างต่อเนื่องหลังจากวางตลาดครั้งแรกและใช้มันตั้งแต่นั้นมา มันเป็นภาษาแรกที่ฉันได้เรียนรู้ (ฉันยังอยู่ในวิทยาลัยในเวลานั้น) ซึ่งทำให้ฉันเข้าใจความแตกต่างระหว่างภาษาและ API

คุณเห็นที่วิทยาลัยฉันเรียนรู้ AS2 เป็นครั้งแรกจากนั้น PHP และ Javascript บางส่วน เราไม่มีการแนะนำอย่างเป็นทางการเกี่ยวกับการเขียนโปรแกรม (และฉันไม่ได้เรียนวิทยาศาสตร์คอมพิวเตอร์) ภาษาเหล่านี้ล้วนเชื่อมโยงกับแพลตฟอร์มดังนั้นในฐานะที่เป็นโปรแกรมเมอร์มือใหม่ที่ฉันคิดโดยอัตโนมัติว่าสิ่งต่างๆเช่น strlen () คือ PHP, MovieClip คือ AS2, ...

โดยการใช้ Haxe ฉันเข้าใจถึงคุณค่าของการออกแบบเชิงวัตถุตั้งแต่แพลตฟอร์มไม่ได้ควบคุมคลาสของฉันอีกต่อไป ฉันสามารถใช้โค้ดที่เขียนขึ้นใหม่สำหรับโครงการ Flash ในรหัสเว็บปกติของฉันหากฉันแยกพวกเขาออกจากแพลตฟอร์มเฉพาะของพวกเขาได้ดีพอ

เนื่องจากคลาส remoting ที่ยอดเยี่ยมที่คุณสามารถใช้ในการสื่อสารระหว่างแพลตฟอร์มฉันจึงตระหนักว่า XML ไม่ใช่สิ่งที่พิเศษทั้งหมดหรือเป็น JSON ทั้งหมดนี้ไม่มีความหมายเลยหากไม่มีโค้ดที่ทำงานบนมัน

สำหรับคนอย่างฉันที่เพิ่งเริ่มเขียนโปรแกรมนั่นเป็นการเปิดเผยครั้งใหญ่ในช่วงเวลาที่ XML นั้น 'เจ๋ง' และดีสำหรับทุกอย่าง ;-)


5

Haxe เป็นภาษาที่มีค่า จุดบวกหลายจุดมักถูกมองข้าม ตัวอย่างเช่นมันมีห้องสมุดในตัวที่ยอดเยี่ยมที่ทำให้การพัฒนาแอพพลิเคชั่นง่ายขึ้นมากเช่น ORM (Neko / PHP) ที่เรียบง่าย แต่ทรงพลัง, การข้ามแพลตฟอร์มเต็มรูปแบบ (Flash / JS / PHP / C ++ / Neko) ที่ใด ๆ แพลตฟอร์มที่ได้รับการสนับสนุนสามารถสื่อสารกับแพลตฟอร์มอื่น ๆ ได้อย่างลำบากไลบรารีนิพจน์ทั่วไปที่มั่นคง (สนับสนุนโดยทุกคนยกเว้น Flash <8) และอีกมากมาย

ตามบันทึกแล้วฉันเพิ่งเขียนแอปพลิเคชันโดยใช้ Haxe สำหรับ PHP / JS / Flash และพบว่าความเร็วในการพัฒนาเพิ่มขึ้นแบบทวีคูณ

จริงอยู่ที่ Haxe อาจไม่ใช่นักออกแบบ แต่ก็ไม่ยอมใครง่ายๆ Haxe นั้นง่ายต่อการเรียนรู้และนำกลับมาใช้ใหม่และเมื่อจำนวนของแพลตฟอร์มเป้าหมายเพิ่มขึ้นผู้พัฒนา Haxe ก็สามารถกำหนดเป้าหมายเหล่านั้นได้เช่นกันโดยไม่ต้องเรียนรู้อะไรใหม่


4

การใช้งานหลักของ Haxe นั้นยัง จำกัด อยู่ที่การพัฒนา Flash ฉันค่อย ๆ ร้อนขึ้นกับแนวคิดที่ว่าสามารถใช้กับเป้าหมายอื่นได้ ฉันยังไม่เห็นข้อดีในทิศทางนั้นและทำ PHP และ JS ของฉันโดยตรงใน PHP และ JS

แม้ว่าฉันจะไม่ได้พัฒนา Neko back-end แต่ก็มีการสนับสนุนที่ดีเนื่องจากมันหมายความว่าฉันสามารถเขียนเคสทดสอบสำหรับรหัสและรวมเข้ากับสคริปต์สร้างได้แทนที่จะสามารถเรียกใช้ในแฟลชเพลย์เยอร์ได้เท่านั้น นี่เป็นข้อได้เปรียบที่ดีมาก

ลักษณะที่เปิดกว้างของรหัสและการพัฒนาก็เป็นข้อได้เปรียบที่ดีเช่นกัน ฉันต้องการตัวประมวลผลล่วงหน้าและ#lineเพิ่มการสนับสนุนลงใน Haxe ฉันไม่คิดว่า Adobe จะทำตามคำขอของฉันอย่างจริงจัง

ฉันพบว่าการเป็นภาษาที่พิมพ์นั้นมีความได้เปรียบอย่างมากเมื่อเทียบกับภาษาสมัยใหม่ใหม่ ๆ

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


3

ฉันใช้รหัส Haxe ในการใช้งานส่วนตัวและมืออาชีพมาประมาณ 2 ปีแล้ว มีข้อดีบางประการที่คุณจะไม่ได้รับจากภาษาอื่น ๆ สิ่งที่ยิ่งใหญ่ที่สุดคือมันถูกออกแบบมาตั้งแต่ต้นเป็นคอมไพเลอร์เกรดการผลิตที่ทันสมัยที่สามารถปรับได้อย่างยืดหยุ่นกับแพลตฟอร์มใหม่และใช้ประโยชน์จากคุณสมบัติที่เป็นเอกลักษณ์ . สิ่งนี้ทำให้สิ่งที่ใกล้เคียงกับรุ่น C ในระดับที่สูงกว่าถ้าคุณเขียนโค้ดใน Haxe คุณสามารถเชื่อใจมันได้

การดูดซับของชุมชนแข็งแกร่งกว่าที่คุณคิด - ฉันทำการวิเคราะห์ปริมาณการใช้รายการเล็กน้อยในแง่ของกิโลไบต์ที่บีบอัด (จากข้อมูลในhttp://lists.motion-twin.com/pipermail/haxe/ ) เพิ่มขึ้น 25-50% YTD (ม.ค. - กันยายน) ในแต่ละปีตั้งแต่ปี 2549 ในช่วงหกเดือนที่ผ่านมาปริมาณการใช้งานเพิ่มขึ้นอย่างมากและฉันกำลังพิจารณาที่จะแยกย่อยอย่างจริงจังเพราะไม่เช่นนั้นกล่องจดหมายของฉันจะถูกน้ำท่วม มันมากกว่าหนึ่งวัน มันไม่ได้ถูกสะกดจิตเหมือนกับภาษาอื่น ๆ แต่ในทางกลับกันหมายความว่าผู้คนที่ผูกปมเกวียนของพวกเขากับ Haxe มักจะมีความมั่นใจโปรแกรมเมอร์ที่มีความรู้ดี

ผู้คนได้ทดลองใช้คอมไพเลอร์ภาษาต่อภาษาในบริบทอื่น (Scheme ที่ไหนก็ได้ Python หรือ Ruby ใน JS ฯลฯ ) แต่ภาษาเหล่านั้นได้รับการออกแบบมาสำหรับสถานที่และวัตถุประสงค์ที่แตกต่างกัน ผลการแฮ็กเย็น แต่ไม่สะดวกสำหรับการทำงานแบบวันต่อวัน Haxe ไม่รู้สึกเช่นนั้น ในขณะที่มันไม่ได้มีสิ่งอำนวยความสะดวกที่มาจากการมีบูรณาการภาษา / รันไทม์ก็มีจำนวนมากสิ่งที่น่าสนใจอื่น ๆ ที่จะนำเสนอในขณะนี้


3

ฉันพบว่าฉันมีประสิทธิผลใน Haxe มากกว่าภาษาอื่น ฉันใช้ Haxe ส่วนใหญ่กำหนดเป้าหมาย Neko และ JavaScript

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

ฉันพบว่าความเร็วของ Neko เพียงพอและมันเป็นภาพขนาดเล็กที่ยอดเยี่ยมสำหรับสภาพแวดล้อมที่มีข้อ จำกัด มันคือ C FFI ยอดเยี่ยม - ง่ายมากในการเพิ่มฟังก์ชั่นใหม่

ฉันใช้ Haxe สำหรับตัวควบคุมฝั่งไคลเอ็นต์ JavaScript ของฉัน, ถ่ายเหตุการณ์ไปยังมุมมอง jQuery มาตรฐาน วิธีนี้ใช้งานได้ดีจริง ๆ เพราะคุณสามารถพิมพ์ตรวจสอบไคลเอ็นต์และรหัสเซิร์ฟเวอร์พร้อมกันในขณะที่ทำให้ JS ดิบไม่ถูกพิมพ์ให้น้อยที่สุดและรักษาประโยชน์ของไลบรารี JS ปกติ ไลบรารี JSON พร้อมใช้งาน Btw ถึงแม้ว่า Haxe จะมาพร้อมกับ mod_ * สำหรับ Apache และอื่น ๆ แต่ฉันพบว่าการใช้พร็อกซีมีความยืดหยุ่นมากขึ้นดังนั้นฉันจึงสามารถตั้งค่าอินสแตนซ์ Neko หลายรายการไว้ด้านหลังเว็บเซิร์ฟเวอร์

โดยรวมแล้วฉันคิดว่ามันมีความโค้งมนมากและคิดออกมา - และเป็นช่วงที่ใช้งานได้ตามที่โฆษณาไว้ในทุกแพลตฟอร์ม


2

ใช่อย่างสมบูรณ์

แต่มันต้องการ IDE และเอกสารที่ดีกว่าการขาด IDE ที่ยอดเยี่ยม (เช่น eclipse based) สำหรับฉันสร้างความแตกต่างทั้งหมดและฉันไม่สามารถไปถึงระดับของการผลิตที่ฉันทำใน langauges อื่นเนื่องจากสิ่งนี้

ภาษา = ดีมาก - ดีที่สุดโดยสภาพแวดล้อมการพัฒนาไมล์ = แย่ (ในเวลานี้และ imho)


1

ฉันมี Haxe บนเรดาร์ตั้งแต่เริ่มต้น ฉันเห็นด้วยดูเหมือนว่าจะมีแนวโน้มมาก แต่ฉันสังเกตเห็นว่านักพัฒนาไม่ได้ใช้มันอย่างรวดเร็วเท่าที่คุณคาดหวัง (เทียบกับ RoR และแม้แต่ Flex)

ไม่ว่า Haxe จะดีเพียงใดสำหรับคุณในตอนนี้คุณจะยังคงอยู่ในกลุ่มผู้เริ่มใช้และคุณจะมั่นใจได้ว่าจะมีปัญหาในช่วงเริ่มต้น

แม้ว่าจะมีรายชื่อผู้รับจดหมายที่แอคทีฟมาก ๆ พร้อมสมาชิกที่มีประโยชน์มากฉันยังคงรอจนกว่าจะมีคนเข้าร่วมมากขึ้นและมีการเขียนหนังสือและแหล่งข้อมูลเพิ่มเติม

ในตอนท้าย Haxe ช่วยคุณเขียนเป็นภาษาเดียวและกำหนดเป้าหมายแพลตฟอร์มที่แตกต่างกัน (JS และ Flash เป็นหลักและตอนนี้ NekoVM, PHP และ C ++) คุณต้องการสิ่งนั้นจริงหรือ?


1
ฉันไม่แน่ใจว่าเป็นการเปรียบเทียบที่เป็นธรรมสำหรับอัตราการยอมรับ ด้วย Flex เป็นภาษาที่ได้รับการสนับสนุนจาก Adobe นั่นให้โดยอัตโนมัติ "street credit";) Ruby อยู่ใกล้อะไรประมาณ 10 ปีที่ Rails ออกมา จากสิ่งที่ฉันเห็นปรากฏว่ามีผู้คนเปลี่ยนไปใช้ RoR มากขึ้นและเปลี่ยนเป็น Ruby ธรรมดา ในทางตรงกันข้าม Haxe มีอายุราวครึ่งปีและแม้ว่าจะมีกรอบการทำงานมากมายสำหรับ Haxe ในการพัฒนา แต่ก็ไม่มีผู้ใดได้รับเชื้อไวรัสเหมือนรางรถไฟ
tylermac

อย่างจริงจัง?! % ของนักพัฒนา RoR ที่ใช้ Ruby ก่อนออก RoR คืออะไร และไม่สำคัญสำหรับฉัน (ในฐานะนักพัฒนา) หากแพลตฟอร์ม dev ได้รับการสนับสนุนจากองค์กรขนาดใหญ่หรือไม่? อัตราการปรับตัวที่มีการเคลื่อนไหวช้าจริงๆกับ Haxe IMO และนี่คือความกังวลหลักของฉันเกี่ยวกับมัน
Ammar

วิธีการใหม่ไม่ชัดเจนสำหรับทุกคนฉันจำได้ว่า RoR และ papervision ทั้งสองโครงการที่ขยายตัวในช่วงไม่กี่ปีที่ผ่านมาที่ฉันสนใจและฉันต้องบอกว่า haXe พิสูจน์ศักยภาพของมันจริงๆ จะบอก;)
JLM

ข้อโต้แย้งของฉันยังคงมีอยู่: เร็วเกินไป :)
Ammar

1
@JLM: 4 ปีผ่านไปคุณสามารถแก้ไขคำตอบของคุณและปรับ :)
Janus Troelsen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.