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
90
CA_kube-scheduler
himura
0
10
Improving Language Understanding by Generative Pre-Training
himura
0
71
Other Decks in Programming
See All in Programming
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
530
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
3.3k
250830 IaCの選定~AWS SAMのLambdaをECSに乗り換えたときの備忘録~
east_takumi
0
400
Navigating Dependency Injection with Metro
zacsweers
3
2.5k
意外と簡単!?フロントエンドでパスキー認証を実現する WebAuthn
teamlab
PRO
2
770
奥深くて厄介な「改行」と仲良くなる20分
oguemon
1
560
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
350
Flutter with Dart MCP: All You Need - 박제창 2025 I/O Extended Busan
itsmedreamwalker
0
150
個人開発で徳島大学生60%以上の心を掴んだアプリ、そして手放した話
akidon0000
1
140
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
710
RDoc meets YARD
okuramasafumi
4
170
個人軟體時代
ethanhuang13
0
330
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
How to Ace a Technical Interview
jacobian
279
23k
Six Lessons from altMBA
skipperchong
28
4k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
920
Making Projects Easy
brettharned
117
6.4k
A Tale of Four Properties
chriscoyier
160
23k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
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