Rust เป็นภาษาโปรแกรมภาษาใหม่ที่พัฒนาโดย Mozilla โดยมุ่งเป้าว่าต้องการเป็นภาษาสำหรับงานประมวลผลที่ทำงานพร้อมๆ กัน (concurrency) และทำงานบนระบบขนาดใหญ่ ออกแบบมาไม่ให้มีปัญหาด้านหน่วยความจำอย่าง buffer overflow
การใช้งานจะเป็นระบบคอมไพล์ ตัว syntax ของภาษาจะคล้ายกับ C/C++ คือเป็นภาษาที่ใช้วงเล็บปีกกา {} และประกาศตัวแปรแบบ static
ตอนนี้สถานะของ Rust ยังเป็นเวอร์ชัน 0.1 รุ่นทดสอบ ความสามารถและประสิทธิภาพยังไม่สมบูรณ์มากนัก ตัวซอร์สโค้ดของเครื่องมือต่างๆ เปิดเป็นโอเพนซอร์สด้วยสัญญาอนุญาตแบบ MIT (โค้ดอยู่บน GitHub)

ตัวอย่างโค้ดในภาษา Rust

use std;
import std::io;

fn main() {
for i in [1, 2, 3] {
io::println(#fmt("hello %d\n", i));
}
}

คุณสมบัติอื่นๆ ของภาษา Rust ก็ขอยกมาจากเว็บต้นทางเลยนะครับ

  • Compilation model batch, ahead-of-time, C/C++ compatible
  • Type system static, structural-algebraic, with metadata
  • Type inference yes, only local variables
  • Generic types yes, only simple, non-turing-complete substitution
  • Concurrency isolated tasks, message passing
  • Unique pointers move semantics, no races or sharing
  • Memory safety no buffer overflow, use before init, NULL or free()
  • Immutability immutable by default, mutability is the special case
  • Garbage collection optional, per-task, only "shared" types
  • Error handling isolated tasks, unrecoverable unwinding
  • Text utf8 strings, ucs4 characters
  • Tier 1 platforms Linux, OSX, Windows
  • Developers Mozilla
  • License MIT

เป้าหมายสุดท้ายของ Rust คือเป็นภาษาที่มาแทน C++ ของฝั่ง Mozilla และในอนาคตเราอาจได้เห็นโค้ดบางส่วนของ Firefox ถูกแปลงเป็น Rust แทน C++
ที่มา - ExtremeTech

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

United Information Highway Co., Ltd. company cover
United Information Highway Co., Ltd.
UIH is Thailand’s leading Digital Infrastructure and Solution Provider for Business
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation

จะเพิ่มภาษาอะไรกันมาอีกเยอะแยะใช้ syntax แบบ C/C++ ที่มีอยู่แล้วมันลำบากมากหรือไงนะ แทนที่จะเอาเวลาไป improve C++ compiler ยังจะดีซะกว่า เบื่อพวกโปรแกรมเมอร์ก้อตรงนี้แหละ ไม่อยากเห็นศาสดาภาษาโปรแกรมมิ่งเพิ่มแล้ว เบื่อ - -

ก็ C++ มันยุ่งยากไร้สาระเกินความจำเป็นน่ะครับ และบางทีก็ไม่เหมาะกับบางงาน

แถมไลบรารี่เก่าๆก็รกไปหมด Legacy ขยะก็มีเพียบ ไล่โค้ดก็ยาก

C++0x ก็พยายามแก้ แต่ก็ได้แค่นั้น

มีตัวอย่างแบบที่ได้อานิสงส์จากการประมวลแบบขนาน เช่น bitonic sort ไหมครับ แล้วมันได้ประโยชน์จาก GPGPU ด้วยไหม

int a[256];

void bitonicSort(int lo, int cnt, int dir)
{
    int k;
    if (cnt >1)
    {
        k=cnt/2;
        bitonicSort(lo, k, (1 >0)); bitonicSort(lo+k, k, (0 >1));
        bitonicMerge(lo, cnt, dir);
    }
}

void bitonicMerge(int lo, int cnt, int dir)
{
    int k,i;
    if (cnt >1)
    {
        k=cnt/2;
        for (i=lo; i< lo+k; i++) swapifneed(i, i+k, dir); 
        bitonicMerge(lo, k, dir); bitonicMerge(lo+k, k, dir); 
    }
}

void swapifneed(int i, int j, int dir)
{
    int h;
    if (dir==(a[i] >a[j]))
    {
        h=a[i];
        a[i]=a[j];
        a[j]=h;
    }
}

ตรงที่เป็นบรรทัดเดียว แต่มีมากกว่า 1 statement คือ ทำขนานกันได้

Apple
public://topics-images/apple_webp.png
SCB10X
public://topics-images/347823389_774095087711602_515970870797767330_n_webp.png
Windows 11
public://topics-images/hero-bloom-logo.jpg
Doom
public://topics-images/doom_logo.png
Huawei
public://topics-images/huawei_standard_logo.svg_.png
Threads
public://topics-images/threads-app-logo.svg_.png
Google Keep
public://topics-images/google_keep_2020_logo.svg_.png
Fortnite
public://topics-images/fortnitelogo.svg_.png
Instagram
public://topics-images/instagram_logo_2022.svg_.png
SCB
public://topics-images/9crhwyxv_400x400.jpg
Microsoft
public://topics-images/microsoft_logo.svg_.png
Basecamp
public://topics-images/bwpepdi0_400x400.jpg
Tinder
public://topics-images/hwizi8ny_400x400.jpg
FTC
public://topics-images/seal_of_the_united_states_federal_trade_commission.svg_.png
Pinterest
public://topics-images/pinterest.png
Palantir
public://topics-images/-nzsuc6w_400x400.png
AIS Business
public://topics-images/logo-business-2021-1.png
PostgreSQL
public://topics-images/images.png
JetBrains
public://topics-images/icx8y2ta_400x400.png
Krungthai
public://topics-images/aam1jxs6_400x400.jpg
Palworld
public://topics-images/mccyhcqf_400x400.jpg
Bill Gates
public://topics-images/bill_gates-september_2024.jpg
VMware
public://topics-images/1nj4i1gp_400x400.jpg
Take-Two Interactive
public://topics-images/0khle7nh_400x400.jpg
OpenAI
public://topics-images/ztsar0jw_400x400.jpg
Thailand
public://topics-images/flag_of_thailand.svg_.png
NVIDIA
public://topics-images/srvczsfq_400x400.jpg
ServiceNow
public://topics-images/ytnrfphe_400x400.png
PS5
public://topics-images/playstation_5_logo_and_wordmark.svg_.png
Klarna
public://topics-images/urcllpjp_400x400.png
Google Play
public://topics-images/play.png
Drupal
public://topics-images/drupal.png
Virtua Fighter
public://topics-images/virtua_figther_2024_logo.png
Paradox Interactive
public://topics-images/paradox_interactive_logo.svg_.png
Europa Universalis
public://topics-images/europa-icon.png
Nintendo Switch 2
public://topics-images/mainvisual.png
Cloudflare
public://topics-images/cloudflare_logo.svg_.png
Samsung
public://topics-images/samsung.png
Google
public://topics-images/google_2015_logo.svg_.png
Uber
public://topics-images/uber.png
Microsoft 365
public://topics-images/m365.png
USA
public://topics-images/flag_of_the_united_states.svg_.png
GM
public://topics-images/0pe0po-z_400x400.jpg
Perplexity
public://topics-images/perplex.jpg
Xperia
public://topics-images/xperia.png
iOS 18
public://topics-images/ios-18-num-96x96_2x.png
True
public://topics-images/true_logo.png
SoftBank
public://topics-images/softbank.jpg
Pac-Man
public://topics-images/pacman.png
Harry Potter
public://topics-images/harry.png
Marvel
public://topics-images/marvel.png
Skydance
public://topics-images/skydance.png
SEA
public://topics-images/sealogo.png
Find My Device
public://topics-images/find.png
Gemini
public://topics-images/google_gemini_logo.svg__1.png
Accessibility
public://topics-images/accessibility-128x128_2x.png
Material Design
public://topics-images/m3-favicon-apple-touch.png
Android 16
public://topics-images/android16.png
Android
public://topics-images/android_0.png
Firefox
public://topics-images/firefox_logo-2019.svg_.png
Google Messages
public://topics-images/messages.png
Notepad
public://topics-images/notepad.png