コードを特に良いものとするのは何? 98
品質 部門より
何がソースコードを特に「良い」ものとするのかについて開発者が話すとき、一握りの特徴が繰り返し言及される傾向がある(動作する、読みやすい、テストできる)。皆さんなら何をリストに加えるだろうか。
元記事のITworldでは良質なコードの特徴として、以下の8つを挙げている。
- 正しく動作すること
- 読みやすいこと
- テストできること
- メンテナンスしやすいこと
- きれいに整形されていること
- 変更しやすいこと
- シンプルであること
- 効率が良いこと
アナウンス:スラドとOSDNは受け入れ先を募集中です。
何がソースコードを特に「良い」ものとするのかについて開発者が話すとき、一握りの特徴が繰り返し言及される傾向がある(動作する、読みやすい、テストできる)。皆さんなら何をリストに加えるだろうか。
元記事のITworldでは良質なコードの特徴として、以下の8つを挙げている。
3月26日にバージョン1.9がリリースされた Dart言語だが、前日の25日にDartプロジェクトはDart VMをChromeに統合しないことを発表している( Dart News & Updatesの記事、 マイナビニュースの記事、 TechCrunch Japanの記事)。
DartはJavaScriptに替わるWebプログラミング言語として開発された。いずれはChromeにDart VMが搭載され、他のブラウザもそれに追従すると期待されていたが、方針の転換が行われたようだ。今後Dartは、JavaScriptへのトランスパイル言語の一つとしての活躍が期待される。
Dartを使用する開発者のフィードバックには、JavaScriptとのよりよい統合を求める意見や、開発したアプリをすべてのモダンブラウザで容易にデバッグや最適化を実行できるようにしてほしいとの要望がみられたという。そのため、Google ChromeだけでなくユーザーとWebにとって最も良い方針として、DartのJavaScriptへのコンパイルに注力することを決めたとのことだ。ChromeにDart VMは搭載されないが、開発者向けツールやサーバー、モバイルアプリ向けのDart VMの最適化や改善は引き続き行っていくとしている。
やや旧聞となるが、PHPコミュニティは数年にわたる議論と幾度もの投票の果てに、PHPの次期バージョン(PHP7)で関数の引数や返り値でintやstringなどのスカラー型の宣言を可能にする提案を3月17日に可決したという(PHP RFC: Scalar Type Declarations、東北ギークの記事)。
今回導入が決定された機能は「スカラー型宣言(Scalar Type Declarations)」と呼ばれるもので、これまでオブジェクトや配列でしか使用できなかった型宣言(タイプヒンティング)を拡張し、新たにint, float, string, boolのスカラー型も指定できるようにするもの。PHP7では元々返り値の型宣言の導入も予定されていたため、スカラー型宣言は引数と返り値の両方で使用可能となる。
興味深いことに、スカラー型宣言には暗黙の型変換を行うデフォルトの「弱い型検査」の他、ファイルの先頭でモードを宣言する「厳密な型検査」が搭載されるという。これは元々コミュニティに弱い型検査を求める人々と厳密な型検査を求める人々がおり、RFCが2010年頃から何度も提出されつつも双方が対立して可決に必要な3分の2に達しなかったことから、共倒れを避けるため両方の仕様が採用されたためとのこと。
UIデザイナーのEli Schiff氏が、ソフトウェア開発コミュニティーでのAppleに対する「恐怖の風潮」について記事を投稿している。記事では開発者が気軽に批判した発言が記録され、その発言を撤回する結果になることが多い点や、公表された適度な批判が追従や宣伝に終わることが多い点などを指摘する。
さらに、利益を生むためにはAppleの閉ざされた庭に依存していられないことに業界が気付いている点を指摘。不透明なレビュープロセスや価格競争、App Storeでの適切なアプリ紹介をAppleが拒むことにより、より大きな組織やベンチャー企業に個人のアプリ開発者を追いやっているという。AppleはAndroidで先にアプリをリリースした開発者に対する連絡を絶つことでも知られている。また、「恐怖の風潮」はジャーナリストにも影響する。否定的な記事を書いたジャーナリストはAppleから拒否されるだけではなく、Appleファンや他のジャーナリストからアンチAppleとして扱われるようになるとのことだ。
Panasonicは23日、IoT(Internet of Things: モノのインターネット)のソフトウェアやサービスの開発を促進するため、同社のソフトウェアや特許、製品エコシステムから得られた経験を無償で提供することをEmbedded Linux Conferenceで表明した(プレスリリース、eWeek、ZDNet、@IT MONOist)。
Panasonicではホームモニタリングシステムなどの製品で使用しているデバイスとクラウドを連携させるソフトウェアをオープンソース化し、同社が今月設立した非営利団体OpenDOF Projectで提供する。相互運用性やセキュリティーの向上により、同社の動きが企業や大学、個人によるIoTソリューションとインターネットに接続したデバイスの開発・導入を加速させることを期待しているという。また、オープンソースのIoT推進団体、AllSeen Allianceへの知的財産面での貢献も増やしていく計画とのことだ。
過去10年、開発者や技術者はMySQLとPostgreSQLを比較し、後者が技術的には優れていると考える人が多かった。PostgreSQLの支持者は、そのANSI標準サポートやACID準拠がMySQLのスピードに勝ると主張する。しかし、すべてのLinux Webホスティングパッケージに含まれることから、非常に多くのWeb開発者がMySQLを使い続けている。Diceの記事では、開発者のDavid Bolton氏がMySQL/MariaDB 5.7.6(2015年3月9日、コミュニティーにリリース)とPostgreSQL 9.4.1を比較し、サブクエリやJSONサポート、ライセンス、データの完全性といった点で現在もPostgreSQLの優位性は変わらないとみる。10年以上にわたって両方のデータベースを使用しているというBolton氏は、MySQLにも改善はみられるものの、PostgreSQLを支持するとの結論に達している。
Visual Studioなどで使われているMS製Makeツール「MSBuild」がオープンソース化された。すでにGitHub上にてソースコードが公開されている。現時点ではWindowsのみをサポートし、ビルドにはVisual Studio 2015 Previewが必要とのこと。ライセンスはMITライセンスなので、誰かがビルドして再配布してくれると良いのだが(汗)。
.NET Coreのオープンソース化による動きの1つのようで、告知が行われている.NET Framework Blogによると、LinuxやMacのサポートも行われる予定だという。
Windowsでのmakeツールというと、古い人間的にはnmakeのほうが親しみがあったりするわけだが、XMLベースのMSBuildは手書きで設定ファイルを書くのが大変そうというイメージでVisual Studio経由でしか使ったことがない。今後はAntやMavenのように、積極的にオープンソースソフトウェアで使われるようになるのだろうか?
本家Slashdot「Microsoft Has Received 1 Million Pieces of Feedback For Windows 10」より。
Windows 10 Technical Previewの「Windows Feedback」アプリによる100万件目のフィードバックをMicrosoftが受け取ったことを、Windows Insider Programの責任者 Gabriel Aul氏がTwitterで報告した。
このアプリはWindows Insider Program参加者がWindowsに対する感想や問題点、改善してほしい点などをMicrosoftに送信するためのもので、オペレーティングシステムの開発で非常に重要な役割を果たす。アプリはデスクトップ版およびモバイル版(Windows 10 Technical Preview for Phone)の両方で利用可能で、スタートメニューから起動できる。
ここ最近のMicrosoftは消費者のフィードバックを真剣に聞く努力をするようになり、新機能に関して議論する道を開いているように思われる。皆さんはこのアプリを使ってフィードバックを送信したことがあるだろうか。
最も有名なC++への批判は、おそらく2007年のLinus Torvalds氏の発言だろう。「C++はひどい言語だ。」彼はこう書き始める。「これをさらにひどいものにしているのは、水準以下のプログラマーが数多く使用していることで、またさらに簡単に完全なゴミを作り出せるようになっている点だ。」と続く。C++を嫌うのは彼だけではない。STLやBoostを潜在的に不安定で非効率にした原因がC++だと考える開発者も多い。しかし、C++の需要がなくなることはない。Diceの記事では、C++はそれほど嫌悪するべきものではないとJeff Cogswell氏が主張している。「実際には一度しか使用しないのにも関わらず、複数の継承を重ねて再利用可能なクラスを作成するといった、過剰な設計をこれまでに何度も目にしてきている。」と、Cogswell氏は語る。「しかしこれは例外であり、標準ではないと主張したい。適切に使用すれば、一般的なプログラミングや、C++のより高度な機能を使用したプログラミングで、大きな利益が得られる。」とのこと。Linusの発言は行き過ぎだったのだろうか。
GoogleによるソースコードレポジトリホスティングサービスGoogle Codeが、2016年1月25日をもって閉鎖されるとのこと(Googleからの告知、ITmedia)。
これに伴い、3月12日をもって新規プロジェクトの作成はできなくなる。また、8月24日以降Google Codeへの書き込みはできなくなるとのこと。閉鎖後も2016年中はソースコードをtar形式でダウンロードすることは可能だという。
Google Code上のコンテンツをGitHubやBitBucket、SourceForge.netに移行するためのツールやドキュメントも公開された。また、SourceForge.netはGoogle Code Importerの提供も行っている。
Slashdot「Musician Releases Album of Music To Code By」より。
MIDI楽器を使用してプログラムコードを入力する試みが以前話題となったが、今度はプロのミュージシャンでプログラマーのCarl Franklin氏が、コードを書く時に特化したBGMのアルバムをリリースした。Franklin氏は「最も難しかったのは、本当の音楽を作ることに私の本能を戻すことだった。」と、ITworldのPhil Johnson氏に語る。「この音楽はバックグラウンドに溶け込む必要がある。リスナーの気が散るようなものであってはならないが、退屈なようなものであってもならない。ほとんどのミュージシャンが気が狂いそうになると考えられるようなことが、特に難しかったところだ。」
このアルバム「Music to Code By」は、Kickstarterで資金を調達して制作されたもので、25分のインストゥルメンタル曲が3曲収録されている。価格はCD版が20ドル、MP3版が18ドル。皆さんがコードを書くときには、何かBGMをかけているだろうか。かけている場合はどのような音楽だろう。Webサイトでは試聴が可能なので、ご感想もお聞かせいただきたい。
NVIDIAが物理演算ライブラリ「PhysX」のSDKのソースコードを公開したとのこと。Unreal Engine 4の無料化、ソースコード公開に対応したものらしい(Phoronix)。
なお、ソースコードはGitHub上で公開されるそうだが(NVIDIAのGitHubアカウント)、ライセンスはフリーソフトウェアライセンスに適合するものではなく、NVIDIAの開発者向けサイトにてEULAに同意した上でGitHubアカウントを登録することで、GitHub上の該当のリポジトリへのアクセス権が付与される模様(NVIDIAの開発者向けサイト上の解説ページ)。
アレゲはアレゲを呼ぶ -- ある傍観者