English as 1st language vs English as 2nd language India ...
D vs OWKN Language at LLnagoya
-
Upload
n-masahiro -
Category
Technology
-
view
1.251 -
download
0
description
Transcript of D vs OWKN Language at LLnagoya
![Page 1: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/1.jpg)
D言語 vs C pLus pLus2011/11/5
LL名古屋 #llnagoya
![Page 2: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/2.jpg)
お前誰よ• @repeatedlly
• Come from Tokyo!
• I can write D Programming Language
• カンスウガタゲンゴガスキデス
• Please give me native F# compiler!
• Twitter monitored by Ganglia
![Page 3: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/3.jpg)
history
![Page 4: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/4.jpg)
普通
http://www35.atwiki.jp/futsuu/pages/1.html
![Page 7: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/7.jpg)
D言語 vs C++
![Page 8: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/8.jpg)
vsにすらならない…
![Page 9: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/9.jpg)
![Page 10: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/10.jpg)
買って下さい
![Page 11: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/11.jpg)
Red BuLL
![Page 12: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/12.jpg)
One more thing...
![Page 13: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/13.jpg)
D is LL
![Page 14: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/14.jpg)
rdmd --eval='writeln("hoge");'
![Page 15: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/15.jpg)
dmd 2.056!
![Page 16: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/16.jpg)
Broken trunk in Mac!
![Page 17: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/17.jpg)
GDC into GCC!
![Page 18: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/18.jpg)
strong point!
![Page 19: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/19.jpg)
short name :)
![Page 20: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/20.jpg)
semi-colonless
![Page 21: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/21.jpg)
struct RedBull{ int countPerDay = 2;} // ← Cool!
![Page 22: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/22.jpg)
Goodbye arrow!
![Page 23: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/23.jpg)
void f(Foo* foo){ foo.func(0);}
![Page 24: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/24.jpg)
すいろん!
C++ 11const auto num = foo.func();
![Page 25: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/25.jpg)
too long...
![Page 26: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/26.jpg)
すいろん!
Dconst num = foo.func();
![Page 27: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/27.jpg)
Many signatures!
@safe @property pure nothrowintout(int)[] func(inout(int)[] arg) const;
![Page 28: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/28.jpg)
すいろん!
{}
void delegate() pure nothrow @safe
![Page 29: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/29.jpg)
すいろん!MinType!(T1, T2, T) min(T1, T2, T...)(T1 a, T2 b, T xs)
@safe int f(int a, int b) pure nothrow{ return min(a, b);}
pure nothrow @safe int(int a, int b, () xs)
![Page 30: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/30.jpg)
*
int[] foo(int[] a, int x) {}
const(int)[] foo(const(int)[] a, int x) {}
immutable(int)[] foo(immutable(int)[] a, int x) {}
inout(int)[] foo(inout(int)[] a, int x) {}
![Page 31: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/31.jpg)
CTFE
array
associative array
struct
if
for
foreach
new(without class)
function template
regex
![Page 32: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/32.jpg)
普通に書く
![Page 33: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/33.jpg)
疑似乱数ulong gen(){ Random r; popFrontN(r, 1000); return r.front;}
![Page 34: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/34.jpg)
正規表現 (仮)
string hogeMatch(string line){ enum re = ctRegex(“hoge”); const matched = match(line, re); return matched.hit;}
![Page 35: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/35.jpg)
try - catch - finally!static assert({ int n; try { n = 2; } catch (Exception e) {} finally { n = 3; }}());
![Page 36: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/36.jpg)
Class in CTFE
https://github.com/donc/dmd/tree/ctfeclass
We will use CT Exception :)
![Page 37: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/37.jpg)
僕と契約して(ry
Boost.Contractとか(ry
class C{ invariant() {} int func(int a) in { assert(a > 10); }
out(r) { assert(r > a * 2); } body { /* */ }}
![Page 38: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/38.jpg)
Orbit Package Manager
https://github.com/jacob-carlborg/orbit
![Page 39: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/39.jpg)
Orbit Spec example
name "orbit"summary "Orbit is a package manager"version "0.0.1"files Dir["**/*.{d,rb,conf}"]executables %w[orb]bindir "bin"build "dsss"
Ruby like :)
![Page 40: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/40.jpg)
No, it’s Ruby!
![Page 41: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/41.jpg)
Walter is weak in D
![Page 42: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/42.jpg)
Wishlist
• Compiler as a Library
• Thread Local GC
• Truly IO module
• STM
• Light-weight Thread (me!)
• Concurrent Revisions (me!)
![Page 43: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/43.jpg)
HaskeLL
![Page 44: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/44.jpg)
買って下さい
![Page 45: D vs OWKN Language at LLnagoya](https://reader033.fdocuments.in/reader033/viewer/2022052619/55620683d8b42a7d028b4624/html5/thumbnails/45.jpg)
Nagoya kowai!