読者です 読者をやめる 読者になる 読者になる

謎言語使いの徒然

適当に気になった技術や言語を流すブログ。

LL祭り

日記 勉強

light weight language go

LL ってなんぞや?

メモリが小さくて、実装しやすい。文法最小限、実行速度らしい。 でも日本だと、インタプリタ、動的型、関数オブジェクト

Python/Ruby/Perl Haskell/Scala とか

GO って?

-単一マシンでコンパイルは安 -依存を簡単に解決 -強い型 -コンパイル可能

強い型、GC、並列プログラミング、ビルドやらなにやら全部入り。

関数形か?

  • 文法が簡単(A tour and go 見れば習得できる)
  • 型推論で短いコード
  • ライブラリの呼び出しが簡単(ディレクトリのパッケージ、リポジトリの直接指定等)
  • 実行が簡単(必要なライブラリの自動取得、高速ビルド、静的実行バイナリ、ビルドファイルいらず)
  • 文法最小限
  • クラスシステムなし(Interface はあり、自動で実装される。シグニチャ一致を見てる?)
  • インタプリタはなし
  • 型推論とダックタイプあり
  • 関数も第一級オブジェクト

LL じゃないか?

ほかに

関数呼び出しに、go をキーワード突っ込むと非同期になる。 Goroutine は Channel という実装でデータをやり取りする。

GO ツールやばい。標準で入ってる。

build    ビルド get      必要なパッケージの取得 install  パッケージの取得+ビルド、デプロイ run      動く test     テストとベンチマーク gofmt   自動フォーマット(コーディング規約いらず) godoc   ドキュメント生成

関数形指向Python

9/25 PyCon イベントあり

python の lambda 話。 クロージャの性質と deepcopy

あえて Python で関数形っぽく書く。   slideshare esehara

そもそも関数形を皆間違える(KSG) 代入の話 = 値渡しと参照渡し 使いこなせている人は少ない。

おまけ

decolator ってキーワードあるねん

こんなこともできるWindowsPowerShell

(株)オンターゲットの柳田さん

LL 祭り初の WPS

Windows 経験は 窓CE のみくらい。 だが、WPS で Webmail みたいなものを作ってる。 Webmail の表示テストツールがWPS。

「メールテスター」というソフト名。

概要

  • 窓7 以降標準
  • コマンドライン以外に IDE も
  • パイプも使える
  • .NET が叩ける

パイプを通過するのがオブジェクトであるということ。 UNIX シェルに比べるとここが不思議。

マジで?

$res = ls

とすると、Object[] が入ってて、中身を改めると、

$res[0].GetType()

.NET の FileInfo 型が入ってる。

IE とか自動操縦できる

  • COM インターフェースを自由に操作できる。
  • Outlook / Excel なんでもあり

画面キャプチャできる

。。。って .NET のライブラリ叩いてるやん。

C# 叩ける(Win32API 叩ける)

普通にウインドウハンドラ拾って中身を操作できる。 てかヒアドキュメントで C# 書ける。

入門

「使う気がない人向けのWindowsPowerShell」 「PowerShell in Action」

A language for the rest of us

matz さん

普通の人の為の普通の言語とは何かについて。

なんで俺ら List 使わないの? LL 2001 MIT で最初の LL を開いた人に聞いた「LL は未定義だ」 Lisp は最強の実験場だ。 最強のDSLフレームワークと言える。 でもいまいち使われない。 -> 普通の人目線がない

言語パワーに関係ない。結局自分のパワーに関係する。

結局モチベーションの問題。 普通の人には、コミュニティ、教えてくれる人というのが重要たる。

その上で皆の言語とはなにか?

1958 Lisp 時代は エリートだけ使えれば良かった 1986 Perl PC が出てきた。書き方を考え始めた。 1991 Python 普通なプログラマが出てきた。 1995 Ruby/Java/PHP/JavaScript 今のプログラマ

21世紀のみんなの言語って? - 静的形+型推論 - マルチコア - POST PC

言語か、言語処理系の進化にちょうど良い時期ではある。

WebFramework, マッシュアップ, 分散アプリ, 大規模アプリ, モバイルアプリ, フィジカルコンピューティング,

新しい言語の年じゃねえか?