IoT向け言語Nimの紹介です。 SIer IoTLTにて ( https://iotlt.connpass.com/event/76829/ ) Nimの書き味紹介のためにLINE BOT作ってみます。
Nim流行るといいなぁ
Nimの日本コミュニティDiscord -> https://discord.gg/PVPYV8c
NimͰ5ΫοΩϯά#iotlt (SIer) 2018/3/27IoT͚ݴޠ(ओ؍)NimͰLINE BOTΛ࡞ͬͯΈΑ͏
View Slide
ੁݪ ͷͼ͚͢dotstudio, Inc.ɾWebΤϯδχΞɾMicrosoft MVP (Node.js)ɾLINE API Expert (ࠃ5ਓ)ɾσδλϧϋϦουେֶେֶӃ ඇৗۈߨࢣɾIoTLT ओ࠵ (࣍ճ3/26 vol37)nobisuke sugawara
dotstudio, inc.ཧ೦ : Ϟϊͮ͘ΓΛָ͠ΉਓΛ૿͍ͨ͠2016ۀ
IoT͚ݴޠ(ओ؍)Nimͷհࠓͷ
Nimͱඒ͋͘͠Γͳ͕ΒύϑΥʔϚϯε͕͔ͳΓߴ͘ϝλϓϩάϥϛϯάʹ͚ͨίϯύΠϧݴޠͰ͢ɻNimͱ(ࢀߟ) ࢸߴͷݴޠɺNimΛ࢝ΊΔΤϯδχΞ by @riganihttps://qiita.com/rigani/items/6e87c7cee6903ed65ed2
https://nim-lang.org/
ͷͼ͚͕͢ࢥ͏IoT͚ݴޠ=> σόΠεͱWeb։ൃ྆ํ͕Մೳɺ͕ग़ͯॻ͖͍͢IoT͚ݴޠͷ͖ෆ͖(ओ؍)ݴޠ Web։ൃ σόΠε։ൃ ॻ͖қ͞JavaScript ˕ ̋ ˚ ˕Python ˕ ̋ ˚ ˕C++ ˚ ˕ ˕ ×Go ˕ × ˕ ̋Rust ˚ ˚ ˕ ˚Nim ̋ ˚ ˕ ˕※֤ք۾ͰౖΒΕͦ͏ͳͷͰౖΒΕͨΒमਖ਼[wip]
JSPythonͰ࢝ΊΒΕΔ͚Ͳ݁ہϥΠϒϥϦͷ༗ແͰC++ʹߦ͖ண͚͘ͲɺC++Λॻ͘ͷਏ͍IoT͚ݴޠͷ͖ෆ͖(ओ؍)ݴޠ Web։ൃ σόΠε։ൃ ॻ͖қ͞JavaScript ˕ ̋ ˚ ˕Python ˕ ̋ ˚ ˕C++ ˚ ˕ ˕ ×Go ˕ × ˕ ̋Rust ˚ ˚ ˕ ˚Nim ̋ ˚ ˕ ˕※֤ք۾ͰౖΒΕͦ͏ͳͷͰౖΒΕͨΒमਖ਼[wip]
Alt C++తͳϙδγϣϯͰRust͕ग़ͯདྷ͚ͨͲɺRustͷॻ͖ํݸਓతʹཧղ͕ͳ͔ͳ͔͍͔ͭͳ͍(ಛʹॴ༗ݖपΓ͕͍͠ͳͱײͨ͡)IoT͚ݴޠͷ͖ෆ͖(ओ؍)ݴޠ Web։ൃ σόΠε։ൃ ॻ͖қ͞JavaScript ˕ ̋ ˚ ˕Python ˕ ̋ ˚ ˕C++ ˚ ˕ ˕ ×Go ˕ × ˕ ̋Rust ˚ ˚ ˕ ˚Nim ̋ ˚ ˕ ˕※֤ք۾ͰౖΒΕͦ͏ͳͷͰౖΒΕͨΒमਖ਼[wip]
CC++ͱಉ͘Β͍ͷΛ୲อͭͭ͠ɺॻ͖ຯPythonϥΠΫͰ(εΫϦϓτݴޠग़ͷਓʹಛʹ)ཧղ͍͢͠ɻIoT͚ݴޠͷ͖ෆ͖(ओ؍)ݴޠ Web։ൃ σόΠε։ൃ ॻ͖қ͞JavaScript ˕ ̋ ˚ ˕Python ˕ ̋ ˚ ˕C++ ˚ ˕ ˕ ×Go ˕ × ˕ ̋Rust ˚ ˚ ˕ ˚Nim ̋ ˚ ˕ ˕※֤ք۾ͰౖΒΕͦ͏ͳͷͰౖΒΕͨΒमਖ਼[wip]
ͷͼ͚͕͢ࢥ͏IoT͚ݴޠ(࠶ܝ)=> σόΠεͱWeb։ൃ྆ํ͕Մೳɺ͕ग़ͯॻ͖͍͢IoT͚ݴޠͷ͖ෆ͖(ओ؍)ݴޠ Web։ൃ σόΠε։ൃ ॻ͖қ͞JavaScript ˕ ̋ ˚ ˕Python ˕ ̋ ˚ ˕C++ ˚ ˕ ˕ ×Go ˕ × ˕ ̋Rust ˚ ˚ ˕ ˚Nim ̋ ˚ ˕ ˕※֤ք۾ͰౖΒΕͦ͏ͳͷͰౖΒΕͨΒमਖ਼[wip]ϥΠϒϥϦϓϥοτϑΥʔϜͷࠓޙͷ֦ॆͰڥมΘΔ -> ظ෦ݴޠͱͯ͠ͷࠜװ෦ʹྑ͞Έ
ɾNimIoT͚ݴޠ- C/C++ͱ࿈ܞͰ͖ɺग़Δ- Webαʔόʔͱͯ͠ར༻͍͢͠- ॻ͖͍͢(ಛʹLLܥग़ऀ)- ͷͼ͚͕͍ͯ͢͠Δͭ·Γ
͞ΒʹNimC/C++ͷ࿈ܞػೳ͕͋Γ·͢ɻNimͷC/C++࿈ܞ”NimجຊతʹCΛ௨ͯ͠ίϯύΠϧ͢Δʢ͍ΘΏΔτϥϯεύΠϥʣͷͰɺCίϯύΠϥͷ࠷దԽͷԸܙΛड͚ΒΕΔ͚ͩͰͳ͘ɺCͷࢿ࢈ͱͷ૬ੑͱͯྑ͍Ͱ͢ɻ”proc printf(formatstr: cstring) {.header: "", importc: "printf", varargs.}ɾimportc - cݴޠͷؔΛNimʹΠϯϙʔτ# file: fib.nimproc fib(a: cint): cint {.exportc.} =if a <= 2:result = 1else:result = fib(a - 1) + fib(a - 2)ɾexportc - NimͷίʔυΛcݴޠ͔Βݺͼग़͢// file: export_test.c#include "fib.h"#include int main() {NimMain();printf("%d\n", fib(10)); // output: 55}(Ҿ༻) NimͰଞͷݴޠͱͷ࿈ܞํ๏·ͱΊ by @snowlt23https://qiita.com/snowlt23/items/1696687cca61bfedb1cc
ͭ·ΓArduinoͱ࿈ܞͰ͖Δ…?(׆ൃͰͳͦ͞͏……׆ൃʹͳͬͯ΄͍͠)
ؾʹͳΔϕϯνϚʔΫ (:20151݄࣌)(Ҿ༻) ͜ͷࠒ ྲྀߦΓͷ ݴޠͨͪʢଞʣͰϕϯνϚʔΫ ʢDart, Go, Julia, Nim, Python, Rust ଞʣ by Blank Filehttp://h-miyako.hatenablog.com/entry/2015/01/23/060000
NimݴޠͰLINE BOT։ൃʹνϟϨϯδखܰ͞Λ࣮ײͯ͠Β͓͏
࠷ۙNim͕ΩςΔΒ͍͠ͷͰɺLINE BotͰࢼͯ͠Έͨ by @enta0701ࢀߟhttps://qiita.com/enta0701/items/ead034f13fa7cf7a1fe9͜ΕಡΊͨͿΜ୭Ͱ࡞Ε·͢ɻ
ͷͼ͚͢ͷNimྺ 30ఔ(ଂӺۙ͘υτʔϧͰ18:30ࠒʹ৮Γ͡Ί·ͨ͠)͔͠
ຊޠใͷௐํ - NimͷDiscord×URL #iotlt πΠʔτͰ!
ຊޠใͷௐํ - NimͷDiscord࣭ͯ͠1Ͱճ͕……!
ຊޠใͷௐํ - NimͷDiscord·ͩ4ਓʂ ࠓ(2018/2/27)ͷ15:00ࠒʹ্ཱ͕ͪͬͨ
ɾNim͕࠷ۙΩς͍ΔΒ͍͠ɾIoTքͰಛʹͳͷͰɾNim৮ͬͯΈΑ͏·ͱΊ