Linux

Wedson Almeida Filho หนึ่งในผู้ดูแลโครงการย่อย Rust for Linux ประกาศถอนตัวจากโครงการหลังดูแลโครงการนี้มา 4 ปีเต็ม ระบุเหตุผลว่าเบื่อที่จะต้องมาตอบโต้เรื่องที่ไม่ใช่เรื่องเทคนิค

Filho แนบลิงก์ถึงสาเหตุที่เขาลาออกเป็นวิดีโองานสัมมนา Linux Storage Filesystem ที่ Kent Overstreet บรรยายถึงข้อเสนอของการรองรับ Rust ใน API ของ filesystem แต่ช่วงถามตอบก็มีการโต้แย้งกันว่า C/C++ ยังคงเป็นภาษาหลักแล้วทำไม Overstreet ยังคงพยายามยัดเยียด Rust เข้ามา (LWN เขียนสรุปเหตุการณ์ไว้) โดย Filho ยืนยันว่าไม่ได้ยัดเยียดให้ใครใช้ Rust

ภาษา Rust ชูประเด็นหน่วยความจำปลอดภัยมา ทำให้หลายคนมองว่าเหมาะกับการใช้งานในเคอร์เนล แต่ก็มีเสียงต้านจากนักพัฒนาจำนวนมาก ตัว Filho ก็เคยโต้เถียงกับ Linus ค่อนข้างแรง

ที่มา - linux-kernel

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

rattananen Fri, 30/08/2024 - 12:10

Viro came back to his objections about the proposed replacement for iget_locked(). The underlying problem that he sees is the reliance on methods versus functions; using methods is not the proper way forward because the arguments are not specified explicitly. But Overstreet said that the complaints about methods come from languages like C++ that rely too heavily on inheritance, which is "a crap idea". Rust does not do so; methods in Rust are largely just a syntactical element.

นี้เขาโดน C++ programmer ทัวร์ลงบางไหม
พูดแบบรู้จักแค่ C++ สมัยเมื่อ 20 ปีที่แล้ว

ผมว่าใน core linux มีแต่ C ไม่มี C++ ด้วยนะ
ไงโยงไป C++ ได้

ชาว kernel เขาเป็น C Developer กัน พอเจอ syntax ที่ไม่เข้าพวก อย่างการใช้ method การที่เค้าจะปฎิเสธมันไม่ใช่เรื่องแปลก การที่ยกเหตุผลว่า C++ method มันห่วย (ทั้ง ๆ ที่จริง ๆ แล้ว inheritance มันมีผลเฉพาะกับ virtual method มั้ย?) แต่ Rust เราเหนือกว่าเพราะเป็นแค่ syntax sugar นี่มันก็ฟังดูแปลก ๆ เหมือนกัน

เผื่อบางคนไม่ทราบ คุณจะเขียน method ให้ struct แล้วไม่ระบุเป็น virtual ก็ได้นะ แล้วมันก็จะเป็นแค่ syntax sugar เหมือนกัน (น่าจะเหมือน rust เลย ณ.จุดนี้)

ผมหมายถึงพัฒนาการของ C++ น่ะครับ มันออกไปแนว "เรา provide ไว้ให้แต่คุณจะใช้หรือไม่ก็เรื่องของคุณ"
คือผม"รู้สึก"ว่าคนออกแบบ C++ พยายามออกแบบภาษาให้รับ ความต้องการที่หลายหลายของ dev
แต่คงความเข้ากันได้กับ C ไว้
เช่น

  • ไม่อยากใช้ polymorphism ที่เป็น OOP ก็ไปใช้ polymorphism แบบ structured (overload) แทนก็ได้
  • ไม่อยากใช้ try catch ก็ไปใช้ std::error_code
  • อยากได้ memory safety ก็มี smart pointer ให้นะ หรือจะ raw pointer ไปเลยถ้าใจพอ

ซึ่งถ้าใครรู้จัก C++ นิดหน่อยจะคิดว่า
C++ ต้องเป็น OOP, ต้อง inherit, ต้อง memory unsafety ทั้งที่ภาษาได้ provide feature ที่ไม่ต้องเจอของแบบนี้ไว้

ในคอมมู C++ เราจะมีคำพูดประมาณว่า คุณรู้เท่าที่คุณใช้พอ อะไรที่คุณไม่ได้ใช้ก็จะไม่มีผลอะไร ในความเป็นจริงมันก็ใช่ครับว่ามันก็ต้องรู้ OOP กับ Template Metaprogramming บ้าง (exception handling บ้างด้วย) เพราะมันใช้ใน STL แต่ว่าอย่างอื่นจริง ๆ ก็ไม่ได้สำคัญขนาดนั้น

ทั้งนี้ปัจจุบันนี้เราไม่น่าจะมี "คนออกแบบ C++" แต่จะเป็นคณะทำงาน 21 (ยาวๆ คือ ISO/IEC JTC1 (Joint Technical Committee 1) / SC22 (Subcommittee 22) / WG21 (Working Group 21) แต่มักจะเรียกกันว่า WG21) และคณะทำงานย่อย ๆ กับคณะศึกษา (Study Group) ที่ทำงานกับฟีเจอร์ย่อยๆ ดูแลเฉพาะเรื่องที่ตัวเองถนัดและสนใจ คือการออกแบบ C++ มันเป็นการทำงานกันเป็นสังคมขนาดใหญ่ที่เปิดให้ใครเข้ามาทำก็ได้ ดังนั้นพอมันเปิดซะขนาดนี้ปัญหานึงที่เจอแน่นอนคือต่างคนต่างมีความเห็นและสิ่งที่คาดหวังจากตัวภาษา นั่นทำให้ตัวภาษามันใหญ่มากซะจนคนบ่นว่าภาษามันไม่มีไดเรคชัน (แต่ไดเรคชันเขาคือเปิดรับไอเดียให้กว้างที่สุดตราบใดที่ยังตั้งอยู่บนหลัก

ทั้งนี้ถ้าเคยอ่าน C++ guideline ของ google เนี่ยจะเห็นว่ามีข้อห้ามสารพัดเลยครับ เรียกได้ว่าแทบจะเขียน C บน C++ แค่นั้นเลยล่ะ (แต่เค้าก็อนุญาตบางฟีเจอร์ของ C++ นะ) เอาจริง ๆ ผมว่าบางที ภาษาอย่าง Rust เนี่ยมีพื้นฐานจากการเอา C++ Guideline ของบางที่เอามาคอมไพล์รวมกันสร้างเป็นภาษาใหม่แหละ

ผมถือว่า Rust คือ Drama จาวาเร็วส์ สมัย 14-15 ปีทีแล้ว ver, international ก็แล้วกันครับ
เพราะงั้นคุณจะ Java จะ Python จะ Ruby ก็ ตามถนัดดีกว่าครับ
ก็เหมือนกัน จะ C หรือ Rust เอาตามที่ถนัดครับ bug น้อย ๆ เป็น target หลักครับผม

มันไม่ได้อยู่ที่ภาษา แต่มันอยู่ที่คนที่นั่งอยู่หน้าจอ แป่ว ล้อเลียนมาจากหนัง Fast จากวลีเด็ดที่ว่า

อะไรจะอยู่ในห้องเครื่องไม่สำคัญหรอก...
สิ่งเดียวที่สำคัญที่สุดคือ "ใครอยู่หลังพวงมาลัย"
Dominic Toretto - Fast and Furious 8 (2017)

เอาฮาเป็นหลัก ไม่มีสาระใดๆ เพราะไม่ใช่ทางผมทั้ง 2 ภาษา

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