飽きっぽい人のブログ

プログラマとしてもテスターとしても中途半端な人のブログ

ライブラリを公開するときにできるだけ無制限なライセンスにしたい

楽にライブラリを使用してほしい

こんばんわ、皆さんはライブラリを公開したことがありますか?
公開するときにはどんなライセンスを選んでますか?
修正BSDライセンス? MITライセンス? GNUなひとはGPL v3でしょうか。
俺としてはできるだけ制限をかけたくないので2条項BSDライセンスかMITライセンスで配布するのが安定かなと思っていたのですが、
これらのライセンスでも再配布の際には著作権表示をソフトウェアの重要な部分に記載しなければなりません。
たとえ他の人でも自分の著作権表示を書いてる姿を想像するとなんかもうめんどくさくなってきますよね
それで、もっと緩いやつないかなと思って探していたんですが、ちょうどいい感じのがあったんで紹介したいと思います。

著作権表示を求めないライセンス

2つ見つけました。一つはWTFPL、もう一つはNYSLです。
どちらも名前がふざけていますがいい感じのライセンスですねシンプルだし。
欠点といえばマイナー故に採用しづらいという点でしょうか。まあ個人開発なら問題なさそうです。
将来的に企業が使うことが想定されるソフトウェアでもとりあえずNYSLで公開しておいて、プロジェクトがある程度軌道に乗ったらApache Licenseなどに切り替えれば問題なさそうですね。

慣例的に行われている著作権表示が面倒だと考えている人は一度採用を検討してみてはいかがでしょうか。

.NET Nativeについていろいろ

.NET Native公開

.NET Nativeが公開されましたね
すでに岩永さんのブログでも紹介されていますが、ブログの記事を書く練習がてらにうちでも紹介したいと思います
いちおう公式のビデオ見たりヘルプを見ていますが、何分俺の英語能力あれなものでして・・・
疑わしいと思われたら公式ページを参照してください

公式の紹介ビデオをもとに、推定ですが.NET Nativeのアプリ配布の流れを図にしてみました
が、はてぶの画像アップロード機能だとぼやけて見れたもんじゃない。ブログって難しいね
かわりにOneDriveに上げときました

クライアントに.NETフレームワークインストールは不要

らしいですね。これはフレームワークも含めてILで書かれたものはアプリストア上で静的にリンクされるためだと思います
公式のビデオの内容だと正確にはIL実行ファイルと参照ライブラリを一度単一のC#ファイルに逆コンパイルしてから再コンパイルしているっぽいです
ILマージするだけでいいだろって思ったんですが、構文解析レベルでできる最適化があるのかもしれませんね
public static readonlyな変数をconst変数として解釈する、とかやってるのかもしれません

配布するときはdllで配布される?

公式ビデオだと最終的には10kbの呼び出し専用exeとアプリ本体のコードが入ったdllになるようなのですが、どのタイミングでなるかの裏はとれませんでした。多分配布されるときはネイティブのdllのみで、クライアント側でそのdllを実行可能にするexeが割り当てられるのかなと思います
解説の人がいろいろ説明してたんですが、ヒアリング能力0なんでわかりません
おまけにその人字が汚くてホワイトボードの内容を見るのも一苦労でした

C++/CXと比べてどうなのか

ネイティブということでちょっと考察してみます
OSのAPI呼び出しに関してはほぼ同等の速度ではないかと思います
ただ上にも書いたようにILのライブラリは静的にリンクされるため実行時にdllロードコストがなくなります(逆にC++/CXで書いたライブラリだと現状COMであるためdllのロードコストが避けられないかと思います)
じゃあ全てC#で書けばよいかというとそんなことはなくて、そもそもILの仕様だとどうしても最適化できないところが結構あるらしいです。また、言語仕様的にもC++のが最適化しやすいです
あとはまあ、メモリ管理にGC使いたいか参照カウント使いたいかが選ぶポイントになりますかね
とはいえ、C++/CXで提供されたライブラリにdllロードコストがかかってしまうのは問題なので今後MSからなんらかの解決策が提示されるのではないでしょうか

とりあえずこんなところですかね
記事の内容に問題がなければ次回はこの情報をもとにWindowsの今後を占ってみたいと思います

ブログ、始めました

どうも、はじめまして

初めてなんで自己紹介的なものを書きたいと思います。 と言っても紹介できるほど中身がないのです。困ったもんです。

職業はIT業界のテスター(笑)をしています。今はVBSとかいう加齢臭のする言語をやらされています。

趣味でプログラミングをしていますが、何一つとして成果物がありません。どれも途中で投げ出しているへたれです。でも何かひとつぐらいは成果物作りたいですね。

*性癖は普通です。胸はやや小さめがいいですね。

このブログを始めた経緯についてですが、私のWindowsに対する過剰な期待と妄想をさらけ出したいと思ったからです。なのでしばらくはWindowsネタの記事が続くかと思います。基本的にチラシの裏的な内容にします。

いじょうです。よろしくおねがいします。