Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Bun もすなる Zig といふものをしてみむとてするなり
Search
himura467
August 23, 2025
Programming
0
1
Bun もすなる Zig といふものをしてみむとてするなり
Kyoto.なんか #7
#kyotoasterisk
himura467
August 23, 2025
Tweet
Share
More Decks by himura467
See All by himura467
Python アプリケーションの裏側とその機序 -WSGI, ASGI 編-
himura
0
70
人生における期待効用の最大化について考える
himura
0
92
CA_kube-scheduler
himura
0
10
Improving Language Understanding by Generative Pre-Training
himura
0
76
Other Decks in Programming
See All in Programming
GC25 Recap: The Code You Reviewed is Not the Code You Built / #newt_gophercon_tour
mazrean
0
110
コードとあなたと私の距離 / The Distance Between Code, You, and I
hiro_y
0
190
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
250
Developer Joy - The New Paradigm
hollycummins
1
370
NIKKEI Tech Talk#38
cipepser
0
230
SODA - FACT BOOK(JP)
sodainc
1
8.8k
Claude CodeによるAI駆動開発の実践 〜そこから見えてきたこれからのプログラミング〜
iriikeita
0
330
Writing Better Go: Lessons from 10 Code Reviews
konradreiche
3
6.7k
Reactive Thinking with Signals and the Resource API
manfredsteyer
PRO
0
110
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
2
810
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
470
CSC509 Lecture 07
javiergs
PRO
0
240
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1371
200k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Scaling GitHub
holman
463
140k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Rails Girls Zürich Keynote
gr2m
95
14k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
Unsuck your backbone
ammeep
671
58k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Building Better People: How to give real-time feedback that sticks.
wjessup
369
20k
Transcript
id:himura467 #VO͢ͳΔ;JHͱ͍;ͷΛ ͯ͠ΈΉͱͯ͢ΔͳΓ 2025.8.23 1
ࣗݾհ Self Introduction ઃָ࿕ਓ ژେֶେֶӃใֶݚڀՊम࢜ɻ ػցֶशΛ༻͍ͨ࣌ܥྻ༧ଌʹؔ͢Δݚڀʹैࣄɻ *5ºڭҭͷࣄۀΛߦ͏ձࣾͰɺେֶੜϝϯλʔͱͯ͠தߴੜʹϓϩάϥϛϯάΛ ڭ͍͑ͯΔɻ ͯͳͰΧΫϤϜͱ͍͏αʔϏεΛ͓ख͍தɻ ҰਓΒ͠ྺ̑ɻ
ཛͰͱ͡Δܥͷྉཧ͕͖ɻ ํԻஒɻ 2025.8.23 2 Akito Shitara 5ZQF4DSJQU 1ZUIPO 1FSM ࣗݾհ Α͘ॻ͘ݴޠ Frequently used programming languages 3VTU
;JHͱʁ What is Zig? 2025.8.23 5 ;JHͬͯΈͨ 3
;JHͱʁ What is Zig? 2025.8.23 5 ;JHͬͯΈͨ 4 ͍ΘΏΔ#FUUFS$ -
Robust ϝϞϦෆͳͲͷΤοδέʔεͰಈ࡞͕ਖ਼͘͠ߦΘΕΔɻ - Optimal ϓϩάϥϜͷಈ࡞ύϑΥʔϚϯε͕࠷దʹͳΔΑ͏ʹॻ͘ɻ - Reusable ੍ͷҟͳΔଟ͘ͷڥͰಉ͡ίʔυ͕ಈ࡞͢Δɻ - Maintainable ίʔυΛಡΉͨΊͷΦʔόʔϔου͕গͳ͘ɺཁ݅ڥͷมԽʹڧ͍ɻ
;JHͷར Advantages of Zig 2025.8.23 5 ;JHͬͯΈͨ 5 ΫϩείϯύΠϧՄೳ
--7.ΛόοΫΤϯυͱ͓ͯͬͯ͠Γɺඪ४ͰΫϩείϯύΠϧΛαϙʔτ͍ͯ͠Δɻ ΊͪΌΊͪΌ͍ 3VTU $ͳͲͱ΄΅ಉ͡ɻ߹ʹΑΓ͜ΕΒΑΓ͍Β͍͠ɻ $ͱͷޓੑ͕ߴ͍ $ݴޠ༝དྷͷϥΠϒϥϦશͯ͑Δɻ
;JHͷܽ Disadvantages of Zig 2025.8.23 5 ;JHͬͯΈͨ 6 ·ͩਖ਼ࣜϦϦʔεͰͳ͍
ͷͰɺഁյతมߋ͕ʑߦΘΕ͍ͯΔ ࠷ۙͰݴ͏ͱɺBTZODBXBJU͕෮׆͢ΔΒ͍͠ IUUQTLSJTUPGGJUCMPH[JHOFXBTZODJP "*܅ʹ࣮Λ͓ئ͍͢Δͱɺ͔ͳΓਏ͍ײ͡ʹͳΔ ΤίγεςϜ͕ශऑ ݻ·Γ͍ͬͯͳ͍ݴޠ༷ͷ্ʹϥΠϒϥϦΛ࡞Δͷ͕͍͠ ͪΖΜ$ݴޠ༝དྷͷϥΠϒϥϦͳΒ͑Δ
;JHͷ༻్ Usage of Zig 2025.8.23 5 ;JHͬͯΈͨ 7 ❌େنͳίʔυϕʔε ݸਓنͰ;JHͷഁյతมߋʹ͍͍͖ͭͯͳ͕Β৽ػೳΛܧଓతʹ։ൃ͢Δͷ
ޮతͰͳ͍ ❌֎෦ϥΠϒϥϦʹґଘ͍ͨ͠αʔϏε λΠϜκʔϯͷॲཧ4%,ͳͲ͕΄΅ଘࡏ͠ͳ͍ੈք؍ͳͷͰ ݱঢ়ࣗલͰ࣮͢Δ͔͠ͳ͍
2025.8.23 5 ;JHͬͯΈͨ 8 ͦΜͳʜ
2025.8.23 5 ؓٳ 9 ͜͜Ͱؓٳʢޡ༻ʣ
࠷ۙͷΈ Background 2025.8.23 5 ؓٳ 10 λʔϛφϧͷςʔϚΛݟ͖ͨ
࠷ۙͷΈ Background 2025.8.23 5 ؓٳ 11 ͷͰɺλʔϛφϧͷςʔϚ͕ຖճมΘΔΑ͏ʹͨ͠
࠷ۙͷΈ Background 2025.8.23 5 ؓٳ 12 ·ͨɺ$NE 4IJGU GͰ͓ؾʹೖΓςʔϚΛ อଘͰ͖ΔΑ͏ʹͨ͠
࠷ۙͷΈ Background 2025.8.23 5 ؓٳ 13 ॲཧ1FSMͰॻ͍͍ͯΔ͕ɺҎԼͷཁ݅ΛຬͨͤΕ ͲΜͳݴޠͰ͍͍ ΫϩείϯύΠϧՄೳ
3BOEPNॲཧͷTFFEͷݻఆ͕Ͱ͖Δ ϑΝΠϧͷAUIFNFA͔Β࢝·ΔߦΛॻ͖͑Δ 3FHFYΛαϙʔτ͍ͯ͠Δͱخ͍͠
ॲཧ1FSMͰॻ͍͍ͯΔ͕ɺҎԼͷཁ݅ΛຬͨͤΕ ͲΜͳݴޠͰ͍͍ ΫϩείϯύΠϧՄೳ 3BOEPNॲཧͷTFFEͷݻఆ͕Ͱ͖Δ ϑΝΠϧͷAUIFNFA͔Β࢝·ΔߦΛॻ͖͑Δ 3FHFYΛαϙʔτ͍ͯ͠Δͱخ͍͠
2025.8.23 5 ؓٳ 14 Ͱ͖Β͊ʂ
ॲཧ1FSMͰॻ͍͍ͯΔ͕ɺҎԼͷཁ݅ΛຬͨͤΕ ͲΜͳݴޠͰ͍͍ ΫϩείϯύΠϧՄೳ 3BOEPNॲཧͷTFFEͷݻఆ͕Ͱ͖Δ ϑΝΠϧͷAUIFNFA͔Β࢝·ΔߦΛॻ͖͑Δ 3FHFYΛαϙʔτ͍ͯ͠Δͱخ͍͠
2025.8.23 5 ؓٳ 15 Ͱ͖Β͊ʂ ;JHHZ͘Μ
;JHͰEPUGJMFTΛॻ͍ͯΈͯ خ͔ͬͨ͠ϙΠϯτΛ·ͱΊΔ dot fi les written in Zig 2025.5.31 16
EPUGJMFT
ϝϞϦཧ Memory Allocation 2025.8.23 5 ϝϞϦཧ 17 Allocator
Կ͕خ͍͠ͷ͔ Nani ga ureshii no? 2025.8.23 5 ϝϞϦཧ 18 ୯ମςετ͕
؆୯ʹͰ͖Δ
ύοͱݟGSFFͯ͠ͳ͍ͷͰϝϞϦϦʔΫىͦ͜͠͏ Free wasureteisou 2025.8.23 5 ϝϞϦཧ 19 ˠ
2025.8.23 5 ϝϞϦཧ 20 "SFOB"MMPDBUPS ύοͱݟGSFFͯ͠ͳ͍ͷͰϝϞϦϦʔΫىͦ͜͠͏ Free wasureteisou https://ziglang.org/documentation/0.15.1/#Choosing-an-Allocator $-*ΞϓϦέʔγϣϯͳͲ։͔࢝Βऴྃ·ͰҰઢʹऴΘΔॲཧʹ
"SFOB"MMPDBUPSͱ͍͏"MMPDBUPSΛ͏ ֬อͨ͠ϝϞϦΛऴྃ࣌ʹ·ͱΊͯGSFFͯ͘͠ΕΔ
3FTVMUܕͬΆ͍ͭ Error Union Type 2025.8.23 5 &SSPS6OJPO5ZQF 21 ಛఆͷΤϥʔ 'JMF/PU'PVOE
ۭͷϦετΛฦ͠ ଞͷΤϥʔ্Ґͷॲཧʹ͚͛ͭΔ
Ԇॲཧ defer and errdefer 2025.8.23 5 Ԇॲཧ 22 defer
͋ͱͰΔ͜ͱΛελοΫʹੵΜͰ͍͘ errdefer Τϥʔͷ࣌ͷΈΔ͜ͱΛελοΫʹੵΜͰ͍͘ ௨ৗ࣌ϝϞϦղ์͠ͳ͍͍ͯ͘߹ͱ͔
ͪͳΈʹ Chinamini 2025.8.23 5 ;JHͬͯΈͨ 23 ࣮ߦ ͍ͷ͕ചΓ͕ͩɺͦͦݩͷεΫϦϓτͷ࣮ߦ͕࣌ؒNTͱ͔ͩͬͨͷͰ େͯ͠มΘΒͳ͔ͬͨ
ଟগ͘ͳͬͨ
ͦͦͷ Somosomo 2025.8.23 5 ;JHͬͯΈͨ 24
id:himura467 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ ࣍ճλʔϛφϧΤϛϡϨʔλࣗ࡞ฤͰ͓ձ͍͠·͠ΐ͏ʂ 2025.8.23 25