Tags:
Node Thumbnail

Fish Shell ซอฟต์แวร์ shell กลุ่มเดียวกับ Bash และ PowerShell ออกเวอร์ชั่น 4.0 Beta 1 เป็นเวอร์ชั่นแรกที่พอร์ตฟังก์ชั่นแกนกลางไปยังภาษา Rust นับเป็นความเปลี่ยนแปลงขนาดใหญ่ในเวอร์ชั่นหลักครั้งนี้ ฟีเจอร์เดียวแก้ไข 126 ไฟล์ มีการ commit ใน pull request ถึง 50 รายการ รวมเวอร์ชั่น 4.0 มีการแก้ไขไฟล์ 1155 ไฟล์ เพิ่ม 110,247 บรรทัด ลบ 88,941 บรรทัด

ridiculousfish หนึ่งในนักพัฒนาหลักของ Fish เสนอแนวทางนี้เมื่อต้นปี 2023 ระบุเหตุผลว่า "ไม่มีใครชอบ C++ หรือ CMake จริงๆ หรอก" เพราะกระบวนการเซ็ตอัพยุ่งยาก การใช้ C++ ทำให้นักพัฒนาใหม่ๆ เข้าร่วมได้ยาก และ Rust ยังเปิดทางให้สามารถรันงานแบบ concurrent ได้อย่างปลอดภัยขึ้นในอนาคต

Fish เป็น shell ที่เน้นฟีเจอร์ช่วยเหลือผู้ใช้อย่างหนักเพื่อให้เป็นมิตรกับผู้ใช้ที่สุดเท่าที่เป็นไปได้ ตัว shell มีความสามารถ syntaxhighlight และ autosuggest ในตัว ที่ผ่านมาฟีเจอร์เหล่านี้ไม่ลดประสิทธิภาพ shell ลงเพราะรันใน thread แยกออกไป แต่พอทีมงานต้องการรันงานเป็น multithread จริงๆ กลับพบว่ายากมาก ฟังก์ชั่นในภาษา C++ จำนวนมากไม่เป็น thread-safe การพอร์ตไปใช้ Rust จะทำให้การอิมพลีเมนต์ฟีเจอร์เหล่านี้ได้ง่ายขึ้น แถม Rust มีแนวทางพยายามทำ error message ให้อ่านง่าย ซึ่งตรงกับ Fish

ที่มา - Fish Shell Blog

No Description

Get latest news from Blognone

Comments

By: Architec
ContributorWindows PhoneAndroidWindows
on 30 December 2024 - 07:20 #1329789
By: PH41
ContributorAndroidUbuntuWindows
on 30 December 2024 - 08:44 #1329790
PH41's picture

ผมใช้ fish ด้วย 3 เหตุผล
1. bash บนแมคมันเก่า เห็นว่ากันว่าเปลี่ยน license เลยไม่เอาตัวใหม่มาลง
2. zsh มันช้า ยิ่งลงของเยอะยิ่งช้า
3. อยากลอง

แต่บางงาน อาจจะไม่ได้มี first party support เช่น rvm

By: Cinnamon on 30 December 2024 - 20:11 #1329823 Reply to:1329790

เคยจะลองเอามาใช้แทน zsh ผมเจอ inline export แตกรัว ๆ เลย ไม่รู้ว่าตอนนี้แก้ได้หรือยัง
กลับไปซบ oh-my-zsh เหมือนเดิม

By: rattananen
AndroidWindows
on 30 December 2024 - 09:46 #1329793

คือแบบว่าอยากจะด้อย c++ ให้ได้
ว่า unsafe memory ไม่ได้ เพราะรู้ว่ามี counterpart
เลยต้อง ไปเอาเรื่อง concurrency แทน ซึ่งก็ไม่รู้อีกว่า
API support concurrency ของ c++ มันเยอะจนใช้ไม่ถูก

By: btoy
ContributorAndroidWindows
on 30 December 2024 - 10:30 #1329796
btoy's picture

คนใช้ bash เข้ามาอ่านแบบเงียบๆ ^^


..: เรื่อยไป

By: whitebigbird
Contributor
on 30 December 2024 - 11:01 #1329798
whitebigbird's picture

คนที่ชื่นชม c++/cmake ก็เหมือนคนที่ชม linux

ทั้งคู่เป็น alpaca

By: phoopa on 30 December 2024 - 13:42 #1329809

มันคงจะดีกว่านี้ถ้าไม่ใช้ shell

By: mr_tawan
ContributoriPhoneAndroidWindows
on 30 December 2024 - 20:41 #1329826
mr_tawan's picture

คนใช้ Rust นี่บางทีก็ดูเหมือนคนใช้ Apple อยู่นะครับ 555


  • 9tawan.net บล็อกส่วนตัวฮับ
By: mr_tawan
ContributoriPhoneAndroidWindows
on 30 December 2024 - 23:01 #1329838
mr_tawan's picture

เอาจริง ๆ ผมไม่แน่ใจว่ากระบวนการเซ็ตอัพยุ่งยากที่ว่าคืออะไรแฮะ

ถ้าใช้ CMake จริง ๆ มันแค่สั่ง CMake -G "Unix Makefile" แล้ว CMake --build <build_dir> ก็หมดละมั้ง (ผมจำคำสั่งจริง ๆ ไม่ได้หรอก 555 แต่ปรกติอันแรกก็รันทีเดียว อันหลังจริง ๆ รัน make เฉย ๆ ก็ได้ผลเหมือนกัน)

dependency จะใช้ Conan หรือ VCPKG หรืออะไรก็แล้วแต่ เพิ่มไปอีกคำสั่งนึงก็จบละ

แน่นอนว่ามันอาจจะไม่ใช่แบบคำสั่งเดียวจบเหมือนบางภาษา แต่มันก็ไม่ได้ยุ่งยากมากมายอะไรขนาดนั้น (ถ้าทำเป็นนะ)

ส่วนเรื่องภาษา C++ ผมคิดว่าตราบใดที่เราอยู่กับ style การเขียนที่เราตั้งไว้มันก็ไม่ได้ยากขนาดนั้น ที่ผ่านมาคือหลาย ๆ คนชอบเอาหลาย ๆ แบบมาผสมกันแล้วกลายเป็นว่าโปรเจคซับซ้อนกว่าที่ควรเป็นแค่นั้นเอง ของ Rust คือบังคับรูปแบบการเขียนที่ compiler เลยก็ดีเหมือนกัน เหมือนกับไม่ต้องมาเถียงกันว่าเขียนแบบไหนดีกว่าแบบไหนเพราะโดนบังคับไปเลย C++ มันมีตัวเลือกเยอะไปคนเลยทะเลาะกันเรื่องตัวเลือกนี่ล่ะ


  • 9tawan.net บล็อกส่วนตัวฮับ