SlideShare une entreprise Scribd logo
1  sur  18
Clojureに関する
とりとめのない話
Clojureとは

• JVM利用したLisp系言語(Lisp-1)
• 最新verは1.4 (2007 ~ )
• JVMのBig 3言語の一翼
 • (Scala, Groovy, Clojure)
• Simplicity
                 特徴
 • Code is Data
 • Immutable
• Empowerment
 • JVM
• Focus
 • right abstraction clojure.comより転載
 • Clojure's design lets you start work immediately
    on your problems
特徴
• Lispだけど割と独特の拡張
 • ()を減らして読みやすくしている
• Java系ライブラリが利用可能
 •   Swingとか使えるのでGUI appも普通に作成可能

 •   (javax.swing.JOptionPane/showMessageDialog nil
     "Hello World")	

 (SeeSawとかGUI liveも豊富?)	


• マクロとか, namespaceとかとか、STMとか、
 lazy-seqがデフォとか
最近のBig3の状況




• http://thecodegeneral.wordpress.com/
有名なプロジェクト
• Cascalog
 • Hadoop用クエリ言語
• Storm
 • distributed realtime computing System
 • JVM関連でgithubで最大のwatch数を誇る
• Incanter
 • Rっぽい統計 + 可視化ライブラリ
有名なプロジェクト2
• Joodo
 • Rails like dev/publishing env for heroku
• Gaeshi
 • Rails like dev/publishing env for app engine
• 4Clojure
 • Clojure勉強サイト
• Overtone
 • シンセサイザー
有名なプロジェクト3

• http://clojure-libraries.appspot.com/
• web開発系ライブラリ
 • noir, Compojure, Ring, hiccup etc
• GUI系ライブラリ
 • SeeSaw etc
Clojure開発環境
• leiningen + slime + Emacs あたりがデフォ
 • leiningenはantやmavenっぽいツール
• lein new nanka-project
• cd nanka-project
• lein swank
 • swankサーバー起動
• Emacs上でslime-connectしてサーバー接続
Clojure-pyの紹介

• Pythonで実装されたClojure
 • わりと最近出来た
• easy_install clojure-py
• Python系ライブラリ利用出来る
 • (numpy, flaskとか色々)
clojure-py
• $ clojurepy
• user => (reduce + (range 1 100)
 • 4950
• user => (.toUpperCase “aho”)
 • Javaのメソッド読んでも当然エラーに
   なる
Flask動かすまで
• git clone https://github.com/halgari/clojure-
  py.git
• cd clojure-py/examples/flask
• clojurepy main.clj
       * Running on http://127.0.0.1:5000/
       * Restarting with reloader
Overtone
Overtoneの紹介
• 作曲用ライブラリ (シンセサイザー)
 • https://github.com/overtone/overtone
• Collaborate Programmable Music
• Live-Programmable Music
• Cambridge大学の人のプロジェクト
• SuperCollidarとか利用してる
Demoってみる

• 参考
 • http://vimeo.com/22798433
 • http://deltam.blogspot.jp/2011/12/overtone-
    clojure.html
 • https://github.com/jonromero/music-as-data
 • live-codin
ソースの意味など


• user=> (demo 4 (pan2 (sin-osc 440)))
•   4秒間、ステレオ音声で(pan2)、440Hzの音
    (sin-osc 440)を鳴らす
Clojurescript

• jsと比較すると分かりやすい
 • http://himera.herokuapp.com/
    synonym.html
java interop
• http://clojure.org/java_interop
• Java関連のMemberへのアクセス方法

Contenu connexe

Tendances

Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
Shogo Kawahara
 
Play frameworkについて
Play frameworkについてPlay frameworkについて
Play frameworkについて
Shinobu Okano
 

Tendances (20)

誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築誰でも出来るosxでのローカルなウェブ開発環境構築
誰でも出来るosxでのローカルなウェブ開発環境構築
 
play framework 勉強会 in 関西
play framework 勉強会 in 関西play framework 勉強会 in 関西
play framework 勉強会 in 関西
 
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 RubyをコンパイルしようCookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
 
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
 
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
 
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
 
Play frameworkについて
Play frameworkについてPlay frameworkについて
Play frameworkについて
 
Re: WebServer BenchMarking
Re: WebServer BenchMarkingRe: WebServer BenchMarking
Re: WebServer BenchMarking
 
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1Ansible 2.0を使って組む kubernetesクラスタ vol.1
Ansible 2.0を使って組む kubernetesクラスタ vol.1
 
らくちん Go言語
らくちん Go言語らくちん Go言語
らくちん Go言語
 
apachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin ServerっぽいやつをつくったapachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin Serverっぽいやつをつくった
 
Ansibleハンズオン勉強会
Ansibleハンズオン勉強会Ansibleハンズオン勉強会
Ansibleハンズオン勉強会
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
 
当社のawsへの取組
当社のawsへの取組当社のawsへの取組
当社のawsへの取組
 
el-more
el-moreel-more
el-more
 
APACHE HTTP SERVER
APACHE HTTP SERVERAPACHE HTTP SERVER
APACHE HTTP SERVER
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
 
Babelで先取り次世代javascript
Babelで先取り次世代javascriptBabelで先取り次世代javascript
Babelで先取り次世代javascript
 
POWER8サーバでMariaDBベンチマーク
POWER8サーバでMariaDBベンチマークPOWER8サーバでMariaDBベンチマーク
POWER8サーバでMariaDBベンチマーク
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
 

Similaire à Clojureの発表など

fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギング
Yuichi Tateno
 
What is java_se_7
What is java_se_7What is java_se_7
What is java_se_7
TakumiIINO
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
Makoto Kato
 
Scalrご紹介資料 20130404 01
Scalrご紹介資料 20130404 01Scalrご紹介資料 20130404 01
Scalrご紹介資料 20130404 01
Haruhiko KAJIKAWA
 

Similaire à Clojureの発表など (20)

Leiningen超速入門
Leiningen超速入門Leiningen超速入門
Leiningen超速入門
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
 
fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギング
 
OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装
 
TruffleSqueakの紹介
TruffleSqueakの紹介TruffleSqueakの紹介
TruffleSqueakの紹介
 
What is java_se_7
What is java_se_7What is java_se_7
What is java_se_7
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
 
Java in the World of Container by David Buck
Java in the World of Container by David BuckJava in the World of Container by David Buck
Java in the World of Container by David Buck
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
 
Getting Started GraalVM (再アップロード)
Getting Started GraalVM (再アップロード)Getting Started GraalVM (再アップロード)
Getting Started GraalVM (再アップロード)
 
Osoljp201210 oi swift
Osoljp201210 oi swiftOsoljp201210 oi swift
Osoljp201210 oi swift
 
とりあえず使えるSBT
とりあえず使えるSBTとりあえず使えるSBT
とりあえず使えるSBT
 
Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較
 
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native ImageIntroduction to GraalVM and Native Image
Introduction to GraalVM and Native Image
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
 
Scalrご紹介資料 20130404 01
Scalrご紹介資料 20130404 01Scalrご紹介資料 20130404 01
Scalrご紹介資料 20130404 01
 

Clojureの発表など

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n