オープンソースソフトウェアの継続的インテグレーションツールとして使われているJenkinsの最新版「Jenkins 2.0」がリリースされました。

Jenkinsを知らない方に簡単に説明すると
「ソフトウェアの開発プロセスにおけるビルドやテスト、デプロイなどをジョブとして管理してジョブの実行を自動化するツール」
です。

実際に仕事でJenkinsを導入していますが、簡単操作でデプロイが可能となり一昔前と比べて大分楽になったのではないでしょうか。

さて、「Jenkins 2.0」の目玉機能ですが、

・Built-in support for delivery pipelines.
 Jenkins 2.0では、パイプラインが標準機能としてサポートされ、ユーザーはGroovyのDSL(ドメイン特化言語)を使って、パイプラインをコードとしてモデリングできるようになった。

・Improved usability.
 ユーザビリティも改良され、一般的なニーズに合う一連の推奨プラグインが用意され、それらをインストールできるようになった。
 他にもアイテム作成のためのページのデザインを一新、ジョブ構成ページの最上部にタブが導入された他、フォーム要素のデザイン変更により、オプション間の関係が分かりやすくなった。

・Fully backwards compatible.
 Jenkins 2.0は、Jenkins 1.xから移行ができ、完全な後方互換性。

Jenkins1系を使っていたプロジェクトは2系への移行をしない理由がないとのことですが、上記の概要を見ただけじゃメリットが良くわからないですね…。
社内プロジェクトで導入際に改めて記載させて頂きます!
社内システムの開発で使っているPythonで、Javaには無い便利な文法を紹介します。

【集合オブジェクトの集合演算子】

Javaで記述するとこの手の演算は、自分で記述する必要があり、うまくアルゴリズムを考えないと無駄な計算が多く発生してしまいますが、Pythonでは言語レベルでサポート!

以下のように簡単に記述でき、直観でどういう比較かなんとなくイメージができます。

print('==集合オブジェクトのテスト===')

# 変数定義
all = {'one', 'two', 'three', 'four', 'five'}
r_all = {'five', 'four', 'three', 'two', 'one'}
even = {'two', 'four'}
prime = {'one', 'two', 'three', 'five'}

# 左項の集合要素全てが右項の集合要素に含まれているか
print(even <= all)   # True
print(even <= prime) # False

# 左項の集合要素と右項の集合要素が全て同じか
print(all == r_all) # True
print(all == prime) # False

ちなみに、開発環境はEclipse+Pydevプラグインで作成しています。
Javaの開発感覚と同じようにPythonの開発が行えます。(ショートカットキーなどがほぼ同じなのはすごく嬉しい)

上記の環境だとDjangoの開発もサポートされ、Pythonのコマンドを知らなくてもEclipse上でDjangoを使った開発が簡単にできるようになります。
ちょっと古いですが、昨年の12月にAppleはSwiftをオープンソースとしてGitHubで公開。

その後、Swift製のサーバーサイドフレームワークとして「Perfect」が誕生しました!

Perfectは、WebアプリケーションとREST APIを開発するためのフレームワークで、OS XだけでなくLinux環境もサポートされるようになったそうです。

サーバーサイドにPerfectを使うことにより、SwiftエンジニアだけでiOSアプリケーションとWebアプリケーションの両方が開発できるようになったことで話題に上がりました。

実行速度や開発効率などまだ計り知れない部分が多いですが、環境が整っていけばJavaやRubyに割って入る可能性があるかもしれませんね!