by shigemk2

当面は技術的なことしか書かない

異種プログラミング言語格闘勉強会 メモ #kbkz_tech

本当にメモです。

C++

特定企業に所有されていない

所有の弊害

  • JavaはOracleによって所有
  • C++17(正式に発表される予定)
  • 著作権

コア言語

NODISCARD 戻り値を無視させない NODISCARD 関数呼び出し側に戻り値のチェックを強制 関数呼び出しのところに警告 ライブラリ追加 filesystem optional(型が入っているか入っていないか) any string_viewなど

おまけ

C++でAMラジオを鳴らせる 高分解能タイマーが必要 予定されていた機能 モジュール コンセプトなどがすべて外された utf-8のいち文字を表現できるリテラルなどなど

高精度sleepがないOSでは動作は絶望的

正規表現

  • 正規表現とC++でごにょごにょ

Elixir

http://www.slideshare.net/ohr486/elixir-59779572

  • Rubyっぽい
  • ドリコムの人

Grass

  • 難読言語

Nim

  • 最近出来た

Crystal

Goなみに速い(ただし、資料で使われていたベンチマークツールがポンコツであること、実装がちゃんとしていないことなどを考慮する必要がある)

ShellScript

  • POSIXコマンドだけで実装
    • AWK、sedはチューリング完全
  • シェルスクリプトでExcelをごにょごにょ
  • DB操作

  • 交換可能性の担保を条件として、POSIXでないものを使う

    • 同じ機能を実現する実装が存在するならそれを使う
  • 恐怖!小鳥男
  • curlにはファイルアップロードが使えるがwgetにはない
  • W3C原理主義
    • W3C勧告に準拠
    • ドキュメントをちゃんと読んで逸脱しない範囲で組む
    • jQueryなどはもってのほか
      • AJAXはjQuery使わなくても実現できるッッ
    • ショッピングカートなどでデモ
  • 低水準領域を学べ
    • 道具を使いこなせ
  • 基礎から学べ すべてのUNIXで20年動くプログラムはどう書くべきか
  • 金沢大学での授業を受けよう
  • Makefile芸はシェルスクリプトに通用するか→あると思う
  • リトルエンディアンビッグエンディアンをシェルスクリプトが吸収している

FSharp

  • 平和に行きたい
  • MLの枠
  • 論文読んどこう
  • GitterでFSharpの話が出来る
    • 全国を見渡せば仕事が見つかるかも
  • mutableが長いからimmutableに書くように頑張る
  • SICPを読んだら
  • みどころ
    • 再代入→束縛
    • 型パラメータ HogeだけでJavaを書いていたのが遭ったけど…
  • 型推論に頼り過ぎるとバイナリ互換を崩してしまう
    • OSによっては推論を間違えてしまうことがある
  • 一部OCamlから輸入している機能がある(OCamlにオフサイドルールはない)
  • 他の言語をF#の言語に移植しようとすると型をいろいろ自作しないといけなくてつらい
  • 数値に単位が使える
  • 簡約!λカ娘 7巻を読まれよ
  • 日本語ドキュメントが充実していない
  • 愛憎入り混じっているのでこの言語を愛せる!と言い切れるか分からない

CSharp

  • 邪悪で不自由な言語というイメージ?
  • どういう言語もCからは距離をとった感じ
  • C#魔改造
    • Javaっぽいものをいくつか取り込む(unsafeポインタなど)
    • ジェネリクス、匿名メソッド、yield、null許容型、partial
    • クエリ式、式木
    • 共変反変は機能としては中途半端なので使えない
    • コールバックヘルはないと謳われてはいる
  • 微妙なところ
    • VCを意識したところ
    • 専用構文が多い
    • セミコロン 中括弧がやたら多い
  • 気持ちよく書けるのがよいところ
    • なんとなく書いてなんとなく動くような人向けの言語
    • 8割のひとが悩まず使える2割のユースケース
    • UnityはC#であって

Ponylang

http://matsu-chara.hatenablog.com/entry/2015/09/06/110000

ポニーで遊ぼう!

Rust

https://www.rust-lang.org/

http://keens.github.io/blog/2015/09/23/rustwokakutokinochiken/

" C++と殴り合える

Lisp

  • かっこいい
  • はやい
  • マルチパラダイム
  • サムライトのひと
  • 広告管理画面と配信サーバーをRailsからCaveman2(Commmon Lisp)、 Node.js → Common Lisp に
  • full stack lisp