お知らせ

  • パソコン関連

開発者と学習

noimage

開発者と学習

IT企業に勤める開発者としてのスキルアップのためには学習は必要です。 同じことを専任して続けていく開発者と、様々な分野のことを覚える開発者であれば後者のほうが比率として大きいはずです。 そのような業務に就いていれば様々な業務や開発環境、言語への知識は増えていきます。 また覚えることも多くなるためにこれ以上自主的な学習は難しい、あるいは不要と考えるかたもいるはずです。 ただ仕事を続けていく上で、キャリアというものを意識することはどんな業種であっても大切です。開発者も例外ではありません。 開発者としてプロジェクトに加わる場合、おおよそルールはできているか、あるいは先輩開発者と連携して作ることになりますが、なぜそのようにするのかただ漠然と受け取っていると開発の本質に届かない可能性があります。 システム開発とは何か、あるいは他の開発では何が行われているか、そのようなことを学ぶことは今行なっている工程の意味を改めて認識する気っけになります。 また新しい言語の言語仕様を学ぶ時に、なぜこのような仕様が言語開発者によって設計されたのかということを積極的に意識して学べば、物珍しさを超えた意味のある学習になるはずです。 おおよそは品質と効率を確保するためになりますが、そのためになぜこれが必要だったのかを見つけることです。 このようなことはほとんどの現場では業務時間内に学ぶことは不可能です。業務時間外の自主的な学習によってしか得られないでしょう。 ただ漠然と本を読んで頭に入るのはノウハウですが、身につけることを意識して学習すればキャリアの形成に役立つ知識が手に入るはずです。

  • パソコン関連

エンジニアとプログラム言語

noimage

エンジニアとプログラム言語

コンピュータエンジニアにとって、これから業務に使うプログラム言語や環境というものは手段にすぎなく、コンピュータのプログラミングについて考え方はどれも同じです。 小さい単位のアルゴリズム(並び替えや、データの検索など)を組み合わせ、ロジックという実際に実現したいプログラム内容を構築するのが開発で、その考え方はどの開発環境、言語でも同じです。 Accessで例えるなら、一つ一つのクエリをアルゴリズム、最終的なデータベースをロジックと考えればわかりやすいかもしれません。 ですからプログラミング言語はロジックを達成するために使う方言のようなものです。 ただこれについて、流行り廃りではありませんが、時代に合わせた潮流というものがあります。 objective-CというほぼMac用の言語が、iPhoneの普及で大きなシェアを得たり、それと入れ替わるように従来型の携帯電話のプログラマーの数が減ったりということです。 業界内の開発者のシェアが増えれば、その分たくさんのノウハウが蓄積されていきます。 PHPやVBA、JavascriptのようなWebサイトでも多くのノウハウを見つけることのできる言語以外に、ごく限られた業界の中でだけ蓄積されているノウハウというのは沢山あります。 先ほどの例でも挙げた従来型携帯の開発、Symbian上の開発などの情報は守秘義務などもあり、ほとんど表に出回ることはありません。 エンジニアのシェアが低くなると、こういった業界内部でのノウハウを持ったエンジニアも散り散りになってしまいます。 COBOLなどは歴史のある言語ですが、今でも金融などを中心に基幹系のシステムには必要不可欠な存在です。 やがてスマートフォンより魅力ある一般向けの機器がリリースされる未来にも、COBOLは一定の需要が引き続き残っているのではないでしょうか。 パソコン向けの業務アプリケーションはこの潮流の影響を大きく受けます。 歴史の長いC++や、.Net製品のVisualBasicやC#は開発工数が比較的小さく、その他javaにもクライアント側とサーバー側があり、別なものと言っても過言ではありません。 またブラウザ経由で利用するWEBアプリをデスクトップで利用することも多くあり、主流はPHPやASP.netなど、要望や予算に応じて様々なものが選ばれます。 やはりノウハウや他の開発者間のコミュニティーが充実している方が、開発者としても習得が早く、効率を上げやすいので、そちらを選ぶエンジニアも多くなります。 依頼も少なくなる見込みの技術からは、やはりエンジニアは離れていき、ノウハウなども分散して減っていきます。 それがやがて一般のユーザのニーズにも変化を及ぼすことがありますので、マイクロソフトは.Net、AppleはObjective-Cをより使い回しのできるプログラム言語として強化しています。 エンジニアは最新の潮流と技術のシェアを常に視界に入れていますが、システムを発注する側にしてもある程度の知識を持っていた方がいいでしょう。 一般のユーザーにとっても時々かいま見えるそれが、今後利用するサービスや機器のトレンドになっていくかもしれません。

  • パソコン関連

Raspberry Pi 2とWindows10

noimage

Raspberry Pi 2とWindows10

Raspberry Pi(ラズベリーパイ)という、手のひらサイズのワンボードで、一式のコンピュータが開発され、世界様々なところで、教育用途や、機器の制御などに利用され始めています。 HDMI端子からディスプレにつなげばGUIでの操作も可能で、USBポート、LANポートも用意されおり、パソコンとして利用することができます。 このRaspberry Piに新機種Raspberry Pi2が登場し、性能大幅アップとともにWindows10が無償提供されることが発表されました。 Windows10が提供される意味 Raspberry Piはもともと開発元からDebian LinuxをベースにしたOSが提供されていました。これをハードディスク代わりのSDカードに書き込み、起動する形をとっていましたが、今回はMicrosoftからWindows10がそのディスクのイメージとして提供されるようです。 Windows10のコンセプトは、今まで別々のプロジェクトであったパソコン用のWindowsや組込型のWindows、スマートフォン用のWindowsの基礎となる部分を共通化する、というものがあります。 Raspberry Piは小さなコンピュータですから、フルセットのWindows10を載せるわけではないと思われます。 Windows10は様々な機器の中核になることを目指しています。 Internet of Things(物のインターネット化)という言葉があります。様々なものにインターネットを接続させようという考え方です。 かつてユビキタスというような言葉でも語られていましたが、いま超小型でも十分な性能をもつコンピュータ、スマートフォンやタブレットのようなものが世の中に溢れています。 かつて携帯電話を持っていた人たちが、今続々とその手にコンピュータを持つようになっています。 そんな流れの中、Raspberry PiをWindowsのプラットフォームにすれば、Windowsの開発者にとっては、特別な技術の習得なくVisualStudioのような既存の開発環境で様々な機器と接続させるプログラムを開発することができます。 マイクロソフトの戦略 現在iPhoneであればObjective-C、アンドロイドであればJava、Raspberry PiであればLinuxで動作するCやスクリプト、WebサーバーであればPHPやJavascriptなど、マイクロソフトはビジネス用アプリ以外が相対的に増えていく中で、比率として縮小しています。 この新しいソフトウェアの中にマイクロソフトが食い込んでいくためには、積極的にWindowsの動作する機器を増やしていくことです。 Windows Phoneなどもまだ日本で発売されていない状態でもあり、スマートフォン市場の中でかなり苦戦を強いられています。 .Netのオープンソース化でも書きましたが、Windows開発者が他のプラットフォーム開発に移ってしまうまえに、またマイクロソフトの提供する開発ツールの優秀さで新たな開発者を呼び込むことができるように、という思惑があります。 実際にWindows PCがここまでビジネスの世界で浸透した大きな理由のなかに、開発の容易さが含まれていることは確かです。 プラットフォームとしてのWindowsが今後どのような広がりを見せ、開発者に受け入れられていくか、Raspberry Pi2へのWindows10無償提供は、動向を伺う一つの指標になりそうです。

  • パソコン関連

.NETのオープンソース化

noimage

.NETのオープンソース化

マイクロソフトが自社のアプリケーション実行環境.NET Framework(ドットネット フレームワーク)のソースコードを公開する方針を明らかにしました。 これは一部分を公開するのではなく、広く開発者の参加を求め、.NET Coreとよばれる機能の中枢部分を公開して作成するというものです。 この決定はかなり大きな発表で、業界内での反響は大きいです。 .NETを公開する意義 .NETはC#やVisualBasic.NETなどで作成されたアプリケーションを動作させるために必須のもです。 これが今後Windows以外のプラットフォーム、LinuxやMac OSなどでも動作するようになります。 とはいえ今回公開されるのはCore部分とよばれる、いわゆるフォームなど画面の機能を省いたもので、サーバー側で動くサービスを作成するために提供される形になります。 .NETはJavaよりも新しい製品なので、より生産性の高くなる仕様を盛り込んでおり、さまざまなスキルの開発者に多くの機能を提供しています。 これをマイクロソフトは、Windowsの業界内での地位を確固とするための基盤としていました。比較的新しいC#やVisual Basic.NETも開発者の総数はとても大きいものです。 昨今のクラウドや、タブレット、スマートフォンの登場により、よりサーバー側で機能を大きく持ち、パソコンよりも非力なクライアント上で動作するサービスが増えてきています。 そうなるとサービスや、アプリケーションを構築する際に、サーバー側にコストが偏ることになります。 現在Windowsの動作するクラウドWindows Azureをマイクロソフトは公開しており、それが.NETが唯一動作するクラウド環境でした。クラウド業界ではコストパフォーマンスでAmazonなどが大きなシェアを占めるようになり、トータルのコストを考えるとインフラはAmazon、サーバーOSはLinuxが選ばれることが多くなりました。 そうなれば自然とLinuxで動作するソフトウェア開発、実行環境が選ばれますので、それまでは大多数だったWindowsだけのエンジニアの比率は小さくなっていってしまいます。 Linuxでリッチな開発環境と機能をもつ.NETが動作するとなると、.NET技術者をサーバー側のソフトウェア開発者にも充てることができるようになり、スマートフォンやタブレットなどのマルチプラットフォームを相手にしたサービス開始までの選択肢が広がります。 これはエンジニアとしても活動の範囲が広がり、より.NETの習得に意義を見いだすことができます。 オープンソースとマイクロソフト Windows Serverのセールスポイントの一つであったActive DirectoryをLinuxのプロジェクトSambaに提供するなど、マイクロソフトはLinuxと協調的な姿勢を示しています。 サーバー、クライアント、すべてをWindowsで固めると割高になるために、マイクロソフトの技術を避けた社内システムを構築する方向性もみられ、それがGoogle Appsなどのクラウド製品の導入のきっかけになりつつあります。 マイクロソフトも自社で開発した技術が無用なものになれば、それまでの研究開発費は無意味になってしまいます。 業界内でも最高度の品質と性能を持つマイクロソフトの技術を、Windows環境の普及と囲い込み、という目的だけでは守りきれないという判断もあるのではないでしょうか。 使いこなすことのできるエンジニアあっての技術です。エンジニア数が減ればプロジェクトの維持が難しくなりますので、自然と技術のシェアも低下していきます。 このようなオープンソースなどの取り組みは、マイクロソフトの技術力の高さを業界内でも大きく示すことになり、エンジニア離れを減らす効果が期待できそうです。 機材費、開発費、運用費など、トータルの判断で.NETなどマイクロソフトの技術を選ぶのであれば、プラットフォームもWindows ServerやWindows Azureを使うことの意義が出てきます。 より長期の戦略において、今回の.NETオープンソース化はマイクロソフトの今後に大きな影響を与えそうです。

  • パソコン関連

Kintone開発者講習会を行いました

noimage

Kintone開発者講習会を行いました

システムキューブでは2014年10月1日にサイボウズ株式会社より講師をお招きし、社内向けにクラウドビジネスプラットフォームKintoneの開発者講習会を行いました。 Kintone(キントーン)とはクラウド上にビジネスアプリを簡単に作成し、業務を効率化したり、協力会社との連携を行うビジネス向けのプラットフォームです。 現在複数人でエクセルファイルを共有したり、エクセルから別のエクセルに貼付けてまとめたり、エクセルからプリントアウトして手書きの書式として提出したり、といった事柄をスマートに解決することができます。 またこの開発者講習会で学んだAPIの使い方によっては、基幹業務システムとの連携や、他のWebをはじめとしたアプリケーションとの組み合わせによって、様々な用途に利用することができます。 KintoneのAPI Kintoneはブラウザから様々なカスタマイズを行い、業務に適応させることができますが、APIというプログラム同士がやり取りをする仕組みが複数用意されており、さまざまに用途を拡張していくことができます。 REST APIは要求URLとヘッダの組み合わせで、必要な情報の取得、更新などを行うことができます。HTTPのリクエストで様々な処理を行えますので、相手方のプラットフォームを選びません。 JavaScript APIはJavaScriptをKintoneのアプリケーション内に組み込むことで、様々な機能を拡張することができます。 データ更新時、削除時、などのイベントによるプログラムの実行や、見た目や使いやすさに対する変更も加えることができます。 ExcelやAccessでいえばVBAに近い機能です。Kintoneアプリ間の連携も行うことができます。 利用が広がるKintone Kintoneは大手企業をはじめとして、導入が全国でひろがっています。 何らか手続き上の効率化をはかりたいとお考えの企業は多くありますし、Kintoneの導入によりモバイル活用などのスピード感がえられることで、より大きなチャンスを見込めることもあります。 弊社もKintoneを活用し、お客様に提案することで、クラウドを前面に押し出していく方針をさらに強くしていきたいと考えています。