Tags:
Node Thumbnail

บริษัท Modular ผู้พัฒนาโคงสร้างพื้นฐานสำหรับการพัฒนาปัญญาประดิษฐ์ เปิดตัวภาษา Mojo ที่ตัวภาษาเหมือนภาษา Python แต่เป็นภาษาคอมไพล์และใช้ฟีเจอร์เร่งความเร็วต่างๆ ของซีพียูจนได้ประสิทธิภาพเต็มที่ ในงานที่สามารถใช้ฟีเจอร์ประมวลผลขนานของซีพียูได้มากๆ สามารถทำความเร็วได้เหนือ Python ปกติถึง 35,000 เท่าตัว

ทีมพัฒนาระบุว่าออกแบบให้ Mojo เป็น superset ของภาษา Python ทำให้กระบวนการย้ายโค้ดจาก Python มายัง Mojo ทำได้ไม่ยากเกินไป และตัว Mojo เองจะฝัง CPython ไว้ในตัวเพื่อให้รันโค้ด Python เดิมได้ทั้งหมด แล้วค่อยๆ ย้ายโมดูลหรือโค้ดบางส่วนไปรันใน Mojo จริงๆ รูปแบบเดียวกับ Swift ที่ทำงานร่วมกับ Objective-C ได้แนบแน่น ขณะที่ตัว Mojo เองจริงๆ จะรองรับรูปแบบการเขียนโปรแกรมระดับล่างมากขึ้น ควบคุมชนิดตัวแปร, กำหนดความเป็นเจ้าของตัวแปร (แบบเดียวกับ Rust), ตลอดจนเข้าไปควบคุม MLIR ไฟล์คั่นกลางระหว่างการคอมไพล์

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

ทาง Modular ระบุว่าตั้งใจจะโอเพนซอร์ส Mojo ออกมาภายหลัง แต่ตอนนี้ยังขอทดสอบวงปิด โดยผู้สนใจต้องลงชื่อขอทดสอบล่วงหน้าเท่านั้น

ที่มา - Modular

No Description

Get latest news from Blognone

Comments

By: rattananen
AndroidWindows
on 8 May 2023 - 11:55 #1284155
แต่เป็นภาษาคอมไพล์... สามารถทำความเร็วได้เหนือ Python ปกติถึง 35,000 เท่าตัว

เปลี่ยนจาก script language เป็น compile language แล้วเร็วขึ้นไม่ใช่เรื่องแปลกอะไร

แต่ Syntax ควรเปลี่ยนด้วย ผมว่า scope โดยใช้ indent นี้ไม่ work

By: btoy
ContributorAndroidWindows
on 8 May 2023 - 12:37 #1284157 Reply to:1284155
btoy's picture

เรื่อง Indent ถ้าต้องเขียนบน plain text ผมว่ามันก็ชีวิตลำบากจริงๆแหละ แต่พอเรามี tools ช่วย ก็ลืมๆมันไปได้

ว่าแต่ถ้า python เปลี่ยน syntax ไม่ใช้ indent ก็น่าจะทำ backward compatibility กับโค๊ดเดิมยากสุดๆ กรณีที่เขียนผสมกัน เว้นแต่จะแยก extension เพราะไม่เหมือน JS ที่มี {} เข้ามาช่วยแยก นอกจาก line break


..: เรื่อยไป

By: Kazu
iPhoneWindows PhoneAndroidUbuntu
on 8 May 2023 - 20:20 #1284187 Reply to:1284155

ส่วนตัวที่งานหลักใช้ c++ โปรเจคส่วนตัวใช้ python
ผมชอบscopeแบบindentมากกว่า{} เพราะทุกคนจะเขียนเหมือนๆกันหมด พอมา {} ในc++ มีทั้งที่ขึ้นบันทัดใหม่ กับไม่ขึ้นบันทัดใหม่ ซึ่งการไม่ขึ้นบันทัดใหม่ มันก็ไม่ต่างอะไรกับ indent

By: mr_tawan
ContributoriPhoneAndroidWindows
on 8 May 2023 - 20:30 #1284189 Reply to:1284187
mr_tawan's picture

ก็แบบเดียวกับข้างบนครับ คือก็ต้องใช้เครื่องมือบังคับไป (ผมใช้ clang-format)

แต่ปัญหาของ C++ คือหลาย ๆ คนเค้าอาจจะหัว conservative นิดนึง คิดว่าการจัดฟอร์แมทด้วยมือมันดีที่สุดแล้ว ก็ต้องสู้กันต่อไป

ผมไม่ได้บอกว่าจัดมือไม่ดีนะ แค่บอกว่าในหลาย ๆ สถานการณ์ ใช้เครื่องมือช่วยดีกว่า


  • 9tawan.net บล็อกส่วนตัวฮับ
By: lew
FounderJusci's WriterMEconomicsAndroid
on 8 May 2023 - 20:44 #1284192 Reply to:1284189
lew's picture

ขนาด python ยังเถียงกันไม่จบ (ภาษาบังคับ + มี best practice ของภาษา pep8 อยู่แล้ว)

ผมใช้ black ก่อน push ทุกไฟล์จบ ไม่ต้องเถียงกัน


lewcpe.com, @wasonliw

By: rattananen
AndroidWindows
on 9 May 2023 - 01:12 #1284223 Reply to:1284189

ของ c++ นี้ก็ freedom เกินครับ
เปิด code ดู 5 libraries format ไม่เหมือนกันสักอัน

By: rattananen
AndroidWindows
on 9 May 2023 - 00:53 #1284218 Reply to:1284187

ที่ผมว่าไม่ work มันไม่เกี่ยวกับเรื่อง format ครับ สมัยนี้ tool ช่วย format เยอะมาก

มันแค่เขียนแยก scope ใน indent level เดี่ยวกันไม่ได้น่ะครับ
ภาษาอื่นมัน แยกแบบนี้ได้

{
//scope1
}
{
//scope2
}

ผมยังนึกไม่ออกว่าถ้าใช้ indent จะทำยังไง
ภาษาสมัยนี้มันเอาเรื่อง scope มาใช้กันมาขึ้นด้วย

และเวลา indent ผิด แล้วไป error ที่ runtime นี้ผมรู้สึกว่าหา error ยากมาก (ผมเคยใช้ Python มานิดเดียว)