D   vs C pLus pLus       2011/11/5    LL      #llnagoya
• @repeatedlly• Come from Tokyo!• I can write D Programming Language•  • Please give me native F# compiler!• Twitter monit...
history
http://www35.atwiki.jp/futsuu/pages/1.html
http://jubat.us/
Fluenthttp://atnd.org/events/21711
D   vs C++
vs   …
Red BuLL
One more thing...
D is LL
rdmd --eval=writeln("hoge");
dmd 2.056!
Broken trunk in Mac!
GDC into GCC!
strong point!
short name :)
semi-colonless
struct RedBull{   int countPerDay = 2;} // ← Cool!
Goodbye arrow!
void f(Foo* foo){   foo.func(0);}
C++ 11const auto num = foo.func();
too long...
Dconst num = foo.func();
Many signatures!    @safe @property pure nothrowintout(int)[] func(inout(int)[] arg) const;
{}void delegate() pure nothrow @safe
MinType!(T1, T2, T) min(T1, T2, T...)(T1 a, T2 b, T xs)       @safe int f(int a, int b) pure nothrow       {         retur...
*            int[] foo(int[] a, int x) {}     const(int)[] foo(const(int)[] a, int x) {}immutable(int)[] foo(immutable(int...
CTFE                function               template foreach                      struct                   array           ...
ulong gen(){   Random r;   popFrontN(r, 1000);   return r.front;}
(    )string hogeMatch(string line){   enum re = ctRegex(“hoge”);   const matched = match(line, re);   return matched.hit;}
try - catch - finally!  static assert({        int n;        try {           n = 2;        } catch (Exception e) {}        ...
Class in CTFE https://github.com/donc/dmd/tree/ctfeclassWe will use CT Exception :)
(ryclass C{   invariant() {}   int func(int a)   in { assert(a > 10); }   out(r) { assert(r > a * 2); }   body { /* */ }} ...
Orbit Package Manager https://github.com/jacob-carlborg/orbit
Orbit Spec examplename "orbit"summary "Orbit is a package manager"version "0.0.1"files Dir["**/*.{d,rb,conf}"]executables %...
No, it’s Ruby!
Walter is weak in D
Wishlist• Compiler as a Library• Thread Local GC• Truly IO module• STM• Light-weight Thread (me!)• Concurrent Revisions (m...
HaskeLL
Nagoya kowai!
D vs OWKN Language at LLnagoya
D vs OWKN Language at LLnagoya
D vs OWKN Language at LLnagoya
D vs OWKN Language at LLnagoya
Upcoming SlideShare
Loading in...5
×

D vs OWKN Language at LLnagoya

1,301

Published on

Nagoya Kowai!

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,301
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

D vs OWKN Language at LLnagoya

  1. 1. D vs C pLus pLus 2011/11/5 LL #llnagoya
  2. 2. • @repeatedlly• Come from Tokyo!• I can write D Programming Language• • Please give me native F# compiler!• Twitter monitored by Ganglia
  3. 3. history
  4. 4. http://www35.atwiki.jp/futsuu/pages/1.html
  5. 5. http://jubat.us/
  6. 6. Fluenthttp://atnd.org/events/21711
  7. 7. D vs C++
  8. 8. vs …
  9. 9. Red BuLL
  10. 10. One more thing...
  11. 11. D is LL
  12. 12. rdmd --eval=writeln("hoge");
  13. 13. dmd 2.056!
  14. 14. Broken trunk in Mac!
  15. 15. GDC into GCC!
  16. 16. strong point!
  17. 17. short name :)
  18. 18. semi-colonless
  19. 19. struct RedBull{ int countPerDay = 2;} // ← Cool!
  20. 20. Goodbye arrow!
  21. 21. void f(Foo* foo){ foo.func(0);}
  22. 22. C++ 11const auto num = foo.func();
  23. 23. too long...
  24. 24. Dconst num = foo.func();
  25. 25. Many signatures! @safe @property pure nothrowintout(int)[] func(inout(int)[] arg) const;
  26. 26. {}void delegate() pure nothrow @safe
  27. 27. 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)
  28. 28. * 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) {}
  29. 29. CTFE function template foreach struct array associative array if fornew(without class) regex
  30. 30. ulong gen(){ Random r; popFrontN(r, 1000); return r.front;}
  31. 31. ( )string hogeMatch(string line){ enum re = ctRegex(“hoge”); const matched = match(line, re); return matched.hit;}
  32. 32. try - catch - finally! static assert({ int n; try { n = 2; } catch (Exception e) {} finally { n = 3; } }());
  33. 33. Class in CTFE https://github.com/donc/dmd/tree/ctfeclassWe will use CT Exception :)
  34. 34. (ryclass C{ invariant() {} int func(int a) in { assert(a > 10); } out(r) { assert(r > a * 2); } body { /* */ }} Boost.Contract (ry
  35. 35. Orbit Package Manager https://github.com/jacob-carlborg/orbit
  36. 36. Orbit Spec examplename "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 :)
  37. 37. No, it’s Ruby!
  38. 38. Walter is weak in D
  39. 39. Wishlist• Compiler as a Library• Thread Local GC• Truly IO module• STM• Light-weight Thread (me!)• Concurrent Revisions (me!)
  40. 40. HaskeLL
  41. 41. Nagoya kowai!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×