SlideShare une entreprise Scribd logo
1  sur  26
(それと)   D 言語
         でー @detcoder
自己紹介




    でとこーだ@ detcoder

●   D 言語や DTM や RDBMS
●   好きな物:オカルト 嫌いな物:カルト
●   ユニット「しめり蒸気 (wetsteam.org) 」
部屋と私と D 言語




    まとめ!(発表時はここで小芝居)

●   もともと VC++ で同人ゲームを作っていた
●   コーディング・デバッギングがめんどくさい!
●   サークル内で D 言語を使うことに
D 言語とは



●   D 言語は C 言語の次の意味
●   C/C++ の遺産を継承しつつ、先進的な設計
●   C/C++ の文法を踏襲。関数も呼べる
●   ラムダ式・無名関数・契約プログラミング
    クロージャー・ GC ・スコープガード文 etcetc
Walter Bright 氏

 Zortech C++ コンパイラ
     -> 世界で最初の
         Native C++ コンパイラ
     -> 後の Symantec C++
     -> 更に後の DMC
         ( DigitalMars C/C++ )

 DigitalMars DMDScript
     ->D 言語 /C++ による
         ECMAScript 実装(速い)

 ABEL
     -> ハードウェア記述言語

 Symantec Visual Cafe
     ->Java の統合開発環境
PHOTO: decltype
http://en.wikipedia.org/User:Dec
ltype
from : WikipediaCommons
License:CC BY-SA 3.0
Walter Bright 氏




  ( 画像は DigitalMars 鯖より )
Walter Bright 氏

 Digital Mars 社

  「 c/c++ 」
    ↓
 「 Mars 」
    ↓
  「D」
Walter Bright 氏




 流        髭
 行        が
 ら        な       ↑
     ||




 な        い
 い        !
 !
D 言語の現状



●   最新バージョンは 2.060
●   Windows ・ Mac ・ Linux に対応
●   インストーラー (win) や deb/rpm(Linux)
●   現時点 Beta 版で Win64bit を吐けるように!
    (Linux/Mac は以前から吐けていた )
D 言語の現状


●   安定版 D1  開発版 D2
●   現行は D2
●   D1 はメンテナンスのみ
●   D1 はオワコン
●   2012 年末没予定
D 言語の現状




まだ肩さえ見えない!
それでは




         GO TO
         DMD!!
( ここで GitHub に公開してあるソース紹介 )
   https://github.com/detcoder/L1G
1 line tail5

    writeln(
       stdin.byLine().map!(a=>a.idup). array.
       retro.take(5).retro.join("n")
    );
●   UFCS
      第一引数を前置できる文法
        hoge(moge)  と  moge.hoge  は等価
        hoge(foo, bar) と  foo.hoge(bar)  〃
●   テンプレート引数
     関数名 !( テンプレート引数 )( 関数の引数 )
       to!int(hogehoge)
Hello World !

import std.string, std.range, std.algorithm, std.conv, std.array;

struct D
{
    string msg;
    D opDispatch(string s)()
    {
         return typeof(return)(
             ((a, b)=>a.equal(b))(
                 msg.retro.cycle.take(2),
                 msg.chain(s).retro.take(2).array.retro)
                 ? ((a, b)=>(
                     a.insertInPlace(msg.countUntil(b)+1, ", "), a.idup)
                   )(msg.dup, msg.retro.take(2).array.retro)~s
                 : text(msg,s));
    }
    string d(T)()
    {
         return text(msg, T.stringof.toLower, "! ", T.stringof);
    }
}
struct H
{
    static D opDispatch(string s)() { return D(typeof(this).stringof~s); }
}

pragma(msg, H.e.l.l.o. w.o.r.l.d! D);
                                                ( From アンサイクロペディア)
void main() {}
私が D 言語を好きな訳



●   安い
●   速い
●   うまい
私が D 言語を好きな訳



●   安い 習得コストと開発環境が
●   速い 実行速度とコンパイルが
●   うまい 充実の Phobos と過去遺産
D 言語の使われ方



●   活発なのはゲーム界隈と競技プログラミング
●   DirectX/WinAPI が叩ける
●   それなりに処理速度が速い
●   C/C++ の遺産が利用できる場合がある
    ( C++ はあまり期待できないけども;)
D 言語の使われ方




いりす症候群! Win32 DX ライブラリ利用
   2D 物理演算アクションパズル

( 公式サイトスクリーンショットより )
→公式サイト  →制作サークルサイト
D 言語の使われ方


●   活発なのはゲーム界隈と競技プログラミング
●   AtCoderでも利用可能に!
●   CTFE ・テンプレート mixin
●   std.bigint ( 1,000 桁まで最適化)
●   std.concurrency( マルチスレッド)
D 言語の課題


    破壊的変更の恐怖(主にライブラリ関係)
    ( 最近はそれほどでもなく、ライブラリにも移行期間が )

●   書籍が少ない
●   さらにキラーフレームワークが無い
●   おまけに決定的な IDE も無い

    ( デバッガは C++ のものが使える )
D 言語の課題




 ↑
こいつ
マスコット(?)




「 D 言語はマスコットだすだけで
      笑いとれるからずるい 」
D 言語のコミュニティ



●   主に twitter
    (「D言語」で検索、もしくは #dlang)
●   dsource.org( trac+subversion )
●   ニュースグループ( digitalmars.D )
●   @mono_shoo 氏の「D言語友の会」
D 言語のコミュニティ



●   Twitter ( dmd コミッター 1 人 :Phobos コミッター 2 人)


●   @repeatedly氏
         つけ麺の人。 Phobos コミッター
●   @mono_shoo氏
        東方の人。 Phobos コミッター
D 言語のコミュニティ



●   Twitter
               <D> <D>
●   @repeatedly 氏
         つけ麺の人。 Phobos コミッター
●   @mono_shoo 氏
        東方の人。 Phobos コミッター
参考文献


●   プログラミング言語D(公式) by DigitalMars
●   プログラミング言語D(和訳) by k.inaba
●   競技プログラミングのためのD言語
                                  by cafelier
●   D言語基礎文法最速マスター
                            by @repeatedly
●   D言語友の会(dusers.dip.jp)
                   by @mono_shoo & authors

●   Template 「 DarkGray Crawls」   by Foral

Contenu connexe

Tendances

Boost.python
Boost.pythonBoost.python
Boost.python
fate_fox
 
111015 tokyo scipy2_ディスカッション
111015 tokyo scipy2_ディスカッション111015 tokyo scipy2_ディスカッション
111015 tokyo scipy2_ディスカッション
Shohei Hido
 

Tendances (19)

Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会
 
Deep Learningと自然言語処理
Deep Learningと自然言語処理Deep Learningと自然言語処理
Deep Learningと自然言語処理
 
Boost.python
Boost.pythonBoost.python
Boost.python
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
 
[FUNAI輪講] BERT
[FUNAI輪講] BERT[FUNAI輪講] BERT
[FUNAI輪講] BERT
 
Goとテスト
GoとテストGoとテスト
Goとテスト
 
Microsoft Learn で C# を学ぶとどんな感じ?
Microsoft Learn で C# を学ぶとどんな感じ?Microsoft Learn で C# を学ぶとどんな感じ?
Microsoft Learn で C# を学ぶとどんな感じ?
 
20180830 implement dqn_platinum_data_meetup_vol1
20180830 implement dqn_platinum_data_meetup_vol120180830 implement dqn_platinum_data_meetup_vol1
20180830 implement dqn_platinum_data_meetup_vol1
 
単語・句の分散表現の学習
単語・句の分散表現の学習単語・句の分散表現の学習
単語・句の分散表現の学習
 
KMC Font Project 3 - FontForgeで欧文書体製作
KMC Font Project 3 - FontForgeで欧文書体製作KMC Font Project 3 - FontForgeで欧文書体製作
KMC Font Project 3 - FontForgeで欧文書体製作
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカー
 
Tokyo r50 beginner_2
Tokyo r50 beginner_2Tokyo r50 beginner_2
Tokyo r50 beginner_2
 
111015 tokyo scipy2_ディスカッション
111015 tokyo scipy2_ディスカッション111015 tokyo scipy2_ディスカッション
111015 tokyo scipy2_ディスカッション
 
[DL輪読会]BERT: Pre-training of Deep Bidirectional Transformers for Language Und...
[DL輪読会]BERT: Pre-training of Deep Bidirectional Transformers for Language Und...[DL輪読会]BERT: Pre-training of Deep Bidirectional Transformers for Language Und...
[DL輪読会]BERT: Pre-training of Deep Bidirectional Transformers for Language Und...
 
Introduction to lambda calculation
Introduction to lambda calculationIntroduction to lambda calculation
Introduction to lambda calculation
 
静的型付け言語Python
静的型付け言語Python静的型付け言語Python
静的型付け言語Python
 
F#の基礎(?)
F#の基礎(?)F#の基礎(?)
F#の基礎(?)
 
定理証明言語によるハードウェア検証
定理証明言語によるハードウェア検証定理証明言語によるハードウェア検証
定理証明言語によるハードウェア検証
 

Similaire à L-1グランプリ "D言語"

ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
Takahito Tejima
 

Similaire à L-1グランプリ "D言語" (20)

FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語Go
 
DelphiでWin/Macクロスコンパイル
DelphiでWin/MacクロスコンパイルDelphiでWin/Macクロスコンパイル
DelphiでWin/Macクロスコンパイル
 
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
 
初心者向けGo言語勉強会
初心者向けGo言語勉強会初心者向けGo言語勉強会
初心者向けGo言語勉強会
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
 
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPCZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使う
 
DartVM on Android
DartVM on AndroidDartVM on Android
DartVM on Android
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
 
C++0xの概要(デブサミ2010)
C++0xの概要(デブサミ2010)C++0xの概要(デブサミ2010)
C++0xの概要(デブサミ2010)
 
Golang tokyo #7 qtpm
Golang tokyo #7 qtpmGolang tokyo #7 qtpm
Golang tokyo #7 qtpm
 
Cプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧めCプログラマのためのカッコつけないプログラミングの勧め
Cプログラマのためのカッコつけないプログラミングの勧め
 
Rust v1.0 release celebration party
Rust v1.0 release celebration partyRust v1.0 release celebration party
Rust v1.0 release celebration party
 
Nginx lua
Nginx luaNginx lua
Nginx lua
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
 
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISるC++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
 

Dernier

Dernier (12)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

L-1グランプリ "D言語"

  • 1. (それと) D 言語 でー @detcoder
  • 2. 自己紹介 でとこーだ@ detcoder ● D 言語や DTM や RDBMS ● 好きな物:オカルト 嫌いな物:カルト ● ユニット「しめり蒸気 (wetsteam.org) 」
  • 3. 部屋と私と D 言語 まとめ!(発表時はここで小芝居) ● もともと VC++ で同人ゲームを作っていた ● コーディング・デバッギングがめんどくさい! ● サークル内で D 言語を使うことに
  • 4. D 言語とは ● D 言語は C 言語の次の意味 ● C/C++ の遺産を継承しつつ、先進的な設計 ● C/C++ の文法を踏襲。関数も呼べる ● ラムダ式・無名関数・契約プログラミング クロージャー・ GC ・スコープガード文 etcetc
  • 5. Walter Bright 氏 Zortech C++ コンパイラ -> 世界で最初の Native C++ コンパイラ -> 後の Symantec C++ -> 更に後の DMC ( DigitalMars C/C++ ) DigitalMars DMDScript ->D 言語 /C++ による ECMAScript 実装(速い) ABEL -> ハードウェア記述言語 Symantec Visual Cafe ->Java の統合開発環境 PHOTO: decltype http://en.wikipedia.org/User:Dec ltype from : WikipediaCommons License:CC BY-SA 3.0
  • 6. Walter Bright 氏 ( 画像は DigitalMars 鯖より )
  • 7. Walter Bright 氏 Digital Mars 社 「 c/c++ 」 ↓ 「 Mars 」 ↓ 「D」
  • 8. Walter Bright 氏 流 髭 行 が ら な ↑ || な い い ! !
  • 9. D 言語の現状 ● 最新バージョンは 2.060 ● Windows ・ Mac ・ Linux に対応 ● インストーラー (win) や deb/rpm(Linux) ● 現時点 Beta 版で Win64bit を吐けるように! (Linux/Mac は以前から吐けていた )
  • 10. D 言語の現状 ● 安定版 D1  開発版 D2 ● 現行は D2 ● D1 はメンテナンスのみ ● D1 はオワコン ● 2012 年末没予定
  • 12. それでは GO TO DMD!! ( ここで GitHub に公開してあるソース紹介 ) https://github.com/detcoder/L1G
  • 13. 1 line tail5 writeln( stdin.byLine().map!(a=>a.idup). array. retro.take(5).retro.join("n") ); ● UFCS 第一引数を前置できる文法 hoge(moge)  と  moge.hoge  は等価 hoge(foo, bar) と  foo.hoge(bar)  〃 ● テンプレート引数 関数名 !( テンプレート引数 )( 関数の引数 ) to!int(hogehoge)
  • 14. Hello World ! import std.string, std.range, std.algorithm, std.conv, std.array; struct D { string msg; D opDispatch(string s)() { return typeof(return)( ((a, b)=>a.equal(b))( msg.retro.cycle.take(2), msg.chain(s).retro.take(2).array.retro) ? ((a, b)=>( a.insertInPlace(msg.countUntil(b)+1, ", "), a.idup) )(msg.dup, msg.retro.take(2).array.retro)~s : text(msg,s)); } string d(T)() { return text(msg, T.stringof.toLower, "! ", T.stringof); } } struct H { static D opDispatch(string s)() { return D(typeof(this).stringof~s); } } pragma(msg, H.e.l.l.o. w.o.r.l.d! D); ( From アンサイクロペディア) void main() {}
  • 15. 私が D 言語を好きな訳 ● 安い ● 速い ● うまい
  • 16. 私が D 言語を好きな訳 ● 安い 習得コストと開発環境が ● 速い 実行速度とコンパイルが ● うまい 充実の Phobos と過去遺産
  • 17. D 言語の使われ方 ● 活発なのはゲーム界隈と競技プログラミング ● DirectX/WinAPI が叩ける ● それなりに処理速度が速い ● C/C++ の遺産が利用できる場合がある ( C++ はあまり期待できないけども;)
  • 18. D 言語の使われ方 いりす症候群! Win32 DX ライブラリ利用 2D 物理演算アクションパズル ( 公式サイトスクリーンショットより ) →公式サイト  →制作サークルサイト
  • 19. D 言語の使われ方 ● 活発なのはゲーム界隈と競技プログラミング ● AtCoderでも利用可能に! ● CTFE ・テンプレート mixin ● std.bigint ( 1,000 桁まで最適化) ● std.concurrency( マルチスレッド)
  • 20. D 言語の課題 破壊的変更の恐怖(主にライブラリ関係) ( 最近はそれほどでもなく、ライブラリにも移行期間が ) ● 書籍が少ない ● さらにキラーフレームワークが無い ● おまけに決定的な IDE も無い ( デバッガは C++ のものが使える )
  • 23. D 言語のコミュニティ ● 主に twitter (「D言語」で検索、もしくは #dlang) ● dsource.org( trac+subversion ) ● ニュースグループ( digitalmars.D ) ● @mono_shoo 氏の「D言語友の会」
  • 24. D 言語のコミュニティ ● Twitter ( dmd コミッター 1 人 :Phobos コミッター 2 人) ● @repeatedly氏 つけ麺の人。 Phobos コミッター ● @mono_shoo氏 東方の人。 Phobos コミッター
  • 25. D 言語のコミュニティ ● Twitter <D> <D> ● @repeatedly 氏 つけ麺の人。 Phobos コミッター ● @mono_shoo 氏 東方の人。 Phobos コミッター
  • 26. 参考文献 ● プログラミング言語D(公式) by DigitalMars ● プログラミング言語D(和訳) by k.inaba ● 競技プログラミングのためのD言語 by cafelier ● D言語基礎文法最速マスター by @repeatedly ● D言語友の会(dusers.dip.jp) by @mono_shoo & authors ● Template 「 DarkGray Crawls」 by Foral