お悩み解決プログラミング言語の疑問は、ここで解決しよう!

お悩み解決プログラミング言語の疑問は、ここで解決しよう!

負けた私が悪いのですが、どうかハズレプログラミング言語はゴミ箱へ。

 ゴールデンウィークに、自宅の屋根裏から約30年ぶりに、大学時代に使っていた富士通FM-77とFM-11を降ろしてきました。使用していたのは、長岡技科大時代ですから、昭和58年(1983)~昭和62年(1987年)あたりですね。 

———

まずは、FM-77ですが、好評だったFM-7の3.5インチフロッピドライブ搭載版です。NECのPC8801のライバルでしたが、FMシリーズは基本的にモトローラのMC68B09Eで(PC8801はZ80)、「究極の8bit-CPU」と言われるように洗練されたアーキテクチャを持っていて、特にプログラムカウンタ/スタックポインタ相対アドレッシングが使えるので、リロケータブル/リエントラントなプログラムが「自然とできる」のが素晴らしいです。舞鶴高専の計算機工学では、このところもチョッチだけ触れています。(ですので、OS-9/6809と言う本物のOSが動きます) 

 私(町田)は、舞鶴高専・機械工学科5年B組から、長岡技科大・機械システム工学課程3回生に編入学しました。もちろん、その頃は進学希望者はほとんどいませんでした。編入学試験は、筆記試験の他、小論文とか、集団/個人面接とかがありました。個人面接では、英作文の口頭試問とかもありましたが、「趣味は真空管アンプです」、「どんな球が好きなの」、「12BH7Aです」、「それはまた変わっているねえ」とか、「好きな小説は?」、「三国志です」、「好きな武将は?」、「曹操です」、「へえ、なぜ?」、「結局、中心人物で、天下を掌握したからです」とか、今では考えられないような受け答えをしました。最近は、個人的な内容は尋ねてはいけない、「学生時代に力を入れたことは?」、「どんな研究をしたいですか?」とかですね。それで、その学生の背景や興味の方向を判断するなかなか難しいものがあります。

 さて、長岡技科大に進学してからは、マイコン/パソコン(舞鶴高専では、Z80のボードマイコンとか、SHARP MZ-80Kとかを触っていました)ので、やはり制御/信号処理関係の研究室に行きたいということで、小林/原研に入りました。素晴らしい研究室で、先生も先輩も同僚も後輩も凄い人ばっかりで、今もOB会などで、「あの頃はみんなバイタリティがあったなあ」と昔話をします。

 さて、小林研では、まず最初にAppleIIでUCSD-Pascalを使って構造化プログラミングのゼミをしました。Pascalはスイス・チューリッヒ工科大学のニクラウス・ヴィルト教授が開発された教育用言語ですが、「本物の構造化言語」です。ヴィルト先生の名著「プログラム=アルゴリズム+データ構造」はPascal言語で書かれています。大域変数も局所変数も、手続きも関数も、値渡しも参照渡しも、みんな「正式に」使えます。また、小林先生は、それらが実際にアセンブリ言語ではどのようになるかを(そのときはCP/M-80版のTurbo-Pascalでした)示していただいたので、私としては非常に計算機プログラミングの構造が良くわかりました。現在でも舞鶴高専でその一端を教えています。

 舞鶴高専に赴任した時、西岡研(町田の所属していた研究室)では「倒立振子」の制御に取り組んでいて、卒研生が数週間徹夜して、Turbo Pascalで立たせました!!、「先生立ちました」、「おお、本当や、ツンツン、制御しているなあ」ということで、その卒研生は長岡技科大に行き、いまでは戻ってきて舞鶴高専の寮務主事をしています 🙂

 下の写真の上側のボードは、FM音源ボード(これも名作)ですが、下側はZ80Aボードです。これで、CP/M-80のTurbo-Pascalや、そのうちTurbo-Cを動かしました。その頃はもうカセットテープではなく、フロッピディスクですね。

 小林研には、他に富士通FM-8や、沖電気のIF-800(Z80)、AppleのAppleII、そしてNECのPC9801無印などがありました。フロッピディスクは巨大な8インチのもありました。小林先生は先鋭的で、そのうち、PC9801でSmalltalk/Vと言う本物のオブジェクト指向言語もやりました。また、XLisp(オブジェク指向のLisp)や私は直接やりませんでしたが、ForthLogoなどという言語もやりました。計算機センターでは、もちろんFortran言語がメインでしたが、小林研からでかけると「古臭くて、使いにくい言語だなあ」という印象でした。これは意外と重要なことだったと思います。

当時、よく読んでいた書籍・雑誌です。現在はネットでなんでも情報が集まるようですが、当時はこれしかほとんどありませんでした。先生や先輩の存在も大きかったです。また、身銭を切らないと分からないこともあると思うのですが。

 私(町田)自身は、ディジタル信号処理がメインで、FFT(高速フーリエ変換アルゴリズム)を用いたHilbert変換の高速計算の研究をしていました。基本的にはPascalとCで書いたと思います。Hilbert変換は、FM音源の基本となる瞬時位相/周波数を合成のそのまた基本なので、FM音源には大変興味がありました。実際に、パソコンに積まれると、それまでのSG(サウンドジェネレータ)のピコピコ音とは、まったく次元の違う綺麗な音色が聞けました。時がたって、同じYAMAHAから歌声合成ソフト「Vocaloid」すなわち「初音ミク」などがでましたので、ミクは娘のような気がします。また、私の本当の娘は「リサ」なのですが、もちろんAppleのMcCintoshの前
パソコン(ミニコン)Lisaです。ですから我が娘は、「Lisa MAC(hida)」なのです。(本当は「梨佐」なので、「みずみずしくて、人の助けになれる(人偏に左)」ということにしていますが)。

 現在、舞鶴高専・町田研のメインの言語は、VHDL(ハードウェア記述言語)とPythonだったりします。メンバーにプロコンをやってきたK君がいて、プログラミング言語の話(特にオブジェクト指向系)ができて大変楽しいです。

—————————–

元箱と梱包材の発砲スチロール、しっかりしています。なにしろ当時で10万円からしましたので。

背面、ディスプレイケーブルコネクタは左のD-SUBですね。ケーブルの先はアナログ8ピンです。この時代はもちろんCRT(ブラウン管)ですから、いまではほぼないし、あっても調子が悪いでしょう。現在の液晶ディスプレイに表示するには「アップスキャンコンバータ」をFPGAで自作するというのが、もっともスマートでしょうが、そうならいっそのこと丸ごとFM-77を1チップのFPGAに実現してしまった方が爆速になるでしょうね。ただ、もちろん富士通の資産ですし、富士通さんも忙しいし、そんなことまでは手が回らないでしょうが。

右側面、ボリュームと拡張コネクタ

左側面

上面、カビています。はずして漂白したいところです。

—————–

次に、マニュアルやソフト類です。このころはドキュメントも紙媒体で読みごたえがありました。

————————

次に、FM-11EXです。このパソコンは、MC6809の他に、8088(16bit CPU (バス幅は8bit))が使え、OS-9/6809やCP/M-86を使っていました。また、600×400のグラフィックスだったので、FM-7/8の600×200よりも精細でした。

正面、5インチフロッピドライブです。
右側面、電源スイッチとリセットボタン(NMI)です。
背面、DINコネクタが懐かしい。GREEN-CRTがあるので、直接テレビのNTSCビデオ入力に繋いでも表示できるそうです。プリンタはセントロニクス・パラレル、シリ
アル(RS-232CはD-SUB25ピン)です。
正直言って、骨董品ですが、整備すれば動かせるはずです。
青春の思い出てという感じですねえ。

プログラミング言語さえあれば

 ゴールデンウィークに、自宅の屋根裏から約30年ぶりに、大学時代に使っていた富士通FM-77とFM-11を降ろしてきました。使用していたのは、長岡技科大時代ですから、昭和58年(1983)~昭和62年(1987年)あたりですね。 

———

まずは、FM-77ですが、好評だったFM-7の3.5インチフロッピドライブ搭載版です。NECのPC8801のライバルでしたが、FMシリーズは基本的にモトローラのMC68B09Eで(PC8801はZ80)、「究極の8bit-CPU」と言われるように洗練されたアーキテクチャを持っていて、特にプログラムカウンタ/スタックポインタ相対アドレッシングが使えるので、リロケータブル/リエントラントなプログラムが「自然とできる」のが素晴らしいです。舞鶴高専の計算機工学では、このところもチョッチだけ触れています。(ですので、OS-9/6809と言う本物のOSが動きます) 

 私(町田)は、舞鶴高専・機械工学科5年B組から、長岡技科大・機械システム工学課程3回生に編入学しました。もちろん、その頃は進学希望者はほとんどいませんでした。編入学試験は、筆記試験の他、小論文とか、集団/個人面接とかがありました。個人面接では、英作文の口頭試問とかもありましたが、「趣味は真空管アンプです」、「どんな球が好きなの」、「12BH7Aです」、「それはまた変わっているねえ」とか、「好きな小説は?」、「三国志です」、「好きな武将は?」、「曹操です」、「へえ、なぜ?」、「結局、中心人物で、天下を掌握したからです」とか、今では考えられないような受け答えをしました。最近は、個人的な内容は尋ねてはいけない、「学生時代に力を入れたことは?」、「どんな研究をしたいですか?」とかですね。それで、その学生の背景や興味の方向を判断するなかなか難しいものがあります。

 さて、長岡技科大に進学してからは、マイコン/パソコン(舞鶴高専では、Z80のボードマイコンとか、SHARP MZ-80Kとかを触っていました)ので、やはり制御/信号処理関係の研究室に行きたいということで、小林/原研に入りました。素晴らしい研究室で、先生も先輩も同僚も後輩も凄い人ばっかりで、今もOB会などで、「あの頃はみんなバイタリティがあったなあ」と昔話をします。

 さて、小林研では、まず最初にAppleIIでUCSD-Pascalを使って構造化プログラミングのゼミをしました。Pascalはスイス・チューリッヒ工科大学のニクラウス・ヴィルト教授が開発された教育用言語ですが、「本物の構造化言語」です。ヴィルト先生の名著「プログラム=アルゴリズム+データ構造」はPascal言語で書かれています。大域変数も局所変数も、手続きも関数も、値渡しも参照渡しも、みんな「正式に」使えます。また、小林先生は、それらが実際にアセンブリ言語ではどのようになるかを(そのときはCP/M-80版のTurbo-Pascalでした)示していただいたので、私としては非常に計算機プログラミングの構造が良くわかりました。現在でも舞鶴高専でその一端を教えています。

 舞鶴高専に赴任した時、西岡研(町田の所属していた研究室)では「倒立振子」の制御に取り組んでいて、卒研生が数週間徹夜して、Turbo Pascalで立たせました!!、「先生立ちました」、「おお、本当や、ツンツン、制御しているなあ」ということで、その卒研生は長岡技科大に行き、いまでは戻ってきて舞鶴高専の寮務主事をしています 🙂

 下の写真の上側のボードは、FM音源ボード(これも名作)ですが、下側はZ80Aボードです。これで、CP/M-80のTurbo-Pascalや、そのうちTurbo-Cを動かしました。その頃はもうカセットテープではなく、フロッピディスクですね。

 小林研には、他に富士通FM-8や、沖電気のIF-800(Z80)、AppleのAppleII、そしてNECのPC9801無印などがありました。フロッピディスクは巨大な8インチのもありました。小林先生は先鋭的で、そのうち、PC9801でSmalltalk/Vと言う本物のオブジェクト指向言語もやりました。また、XLisp(オブジェク指向のLisp)や私は直接やりませんでしたが、ForthLogoなどという言語もやりました。計算機センターでは、もちろんFortran言語がメインでしたが、小林研からでかけると「古臭くて、使いにくい言語だなあ」という印象でした。これは意外と重要なことだったと思います。

当時、よく読んでいた書籍・雑誌です。現在はネットでなんでも情報が集まるようですが、当時はこれしかほとんどありませんでした。先生や先輩の存在も大きかったです。また、身銭を切らないと分からないこともあると思うのですが。

 私(町田)自身は、ディジタル信号処理がメインで、FFT(高速フーリエ変換アルゴリズム)を用いたHilbert変換の高速計算の研究をしていました。基本的にはPascalとCで書いたと思います。Hilbert変換は、FM音源の基本となる瞬時位相/周波数を合成のそのまた基本なので、FM音源には大変興味がありました。実際に、パソコンに積まれると、それまでのSG(サウンドジェネレータ)のピコピコ音とは、まったく次元の違う綺麗な音色が聞けました。時がたって、同じYAMAHAから歌声合成ソフト「Vocaloid」すなわち「初音ミク」などがでましたので、ミクは娘のような気がします。また、私の本当の娘は「リサ」なのですが、もちろんAppleのMcCintoshの前
パソコン(ミニコン)Lisaです。ですから我が娘は、「Lisa MAC(hida)」なのです。(本当は「梨佐」なので、「みずみずしくて、人の助けになれる(人偏に左)」ということにしていますが)。

 現在、舞鶴高専・町田研のメインの言語は、VHDL(ハードウェア記述言語)とPythonだったりします。メンバーにプロコンをやってきたK君がいて、プログラミング言語の話(特にオブジェクト指向系)ができて大変楽しいです。

—————————–

元箱と梱包材の発砲スチロール、しっかりしています。なにしろ当時で10万円からしましたので。

背面、ディスプレイケーブルコネクタは左のD-SUBですね。ケーブルの先はアナログ8ピンです。この時代はもちろんCRT(ブラウン管)ですから、いまではほぼないし、あっても調子が悪いでしょう。現在の液晶ディスプレイに表示するには「アップスキャンコンバータ」をFPGAで自作するというのが、もっともスマートでしょうが、そうならいっそのこと丸ごとFM-77を1チップのFPGAに実現してしまった方が爆速になるでしょうね。ただ、もちろん富士通の資産ですし、富士通さんも忙しいし、そんなことまでは手が回らないでしょうが。

右側面、ボリュームと拡張コネクタ

左側面

上面、カビています。はずして漂白したいところです。

—————–

次に、マニュアルやソフト類です。このころはドキュメントも紙媒体で読みごたえがありました。

————————

次に、FM-11EXです。このパソコンは、MC6809の他に、8088(16bit CPU (バス幅は8bit))が使え、OS-9/6809やCP/M-86を使っていました。また、600×400のグラフィックスだったので、FM-7/8の600×200よりも精細でした。

正面、5インチフロッピドライブです。
右側面、電源スイッチとリセットボタン(NMI)です。
背面、DINコネクタが懐かしい。GREEN-CRTがあるので、直接テレビのNTSCビデオ入力に繋いでも表示できるそうです。プリンタはセントロニクス・パラレル、シリ
アル(RS-232CはD-SUB25ピン)です。
正直言って、骨董品ですが、整備すれば動かせるはずです。
青春の思い出てという感じですねえ。

プログラミング言語がもっと評価されるべき5つの理由

昨日、あるQ&Aサイトで「するなら何言語?Python、Ruby、またはJavaScript?」という質問を見ました。

確かに、Python、Ruby、JavaScriptなど、その言語でもスクレイピングはできますが、各方法のメリットデメリットがいまいちわからず選ぶのに困るでしょう。

というわけで、今日はそれぞれ、私なりの見解とおすすめの本を挙げておきます。

Python

この中でも最もスクレイピングに適したプログラミング言語はPythonだと思います。なぜなら、Pythonにはスクレピングに適したライブラリが多数揃っているためです。コードの中にスクレイピングのライブラリを読み込ませコードを書きます。ライブラリを使うことにより全くの1からコードを書く必要がなく、効率的にコーディングできます。また、スクレイピング関連の新し目の情報やライブラリに関してはpythonの方が充実しています。

おすすめの本:「Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド」

Ruby

非常にお勧め出来る言語です。Pythonと同様スクレイピングするのに使えるライブラリが一通り揃っております。Pythonを比較して、軽量なライブラリのみで実装出来るのがメリットです。また、Nokogiriというライブラリが非常に秀逸で、Pythonの同等のライブラリよりもずっと使いやすいです。

おすすめの本:「Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例」

JavaScript

スクレイピングするのに使えるライブラリがいくつかあります。垂直Webサイトをクローリングすることができます。動的 Web サイトをスクレイピングすることができます。しかし、環境を揃えるのにかなり手間がかかります。Webページにスクレイピング結果を乗せたいなど、特段の事情が無ければ、PythonかRubyにしておいたほうが明らかに無難でしょう。

おすすめの本:「JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック」

その他

プログラミング言語を使えるならスクレイピングは簡単ですが、プログラミング知識がない人はどうでしょう?心配しないで、を使ったり、Excelの機能を使ったり、を使ったり、非プログラマーの方が使える技も多々あります。ここではをお勧めます。

は、視覚的に分かりやすくWebサイトからデータを自動で取得できる無料/です。コードを書くことなく、スクレイピングの初心者でも、Webサイトから大量の情報を手軽に抽出できます。取得ができるデータは、HTML、テキスト、PNGやGIFをはじめとした画像など幅広く対応できます。ビジネスシーンにあわせて、CSV、EXCEL、HTML、JSON、データベース(MySQL、SQL Server、Oracle)などさまざまな出力形式があります。WindowsアプリケーションであるOctoparseは、Ajaxを使うWebページを含む静的および動的Webサイトに対応し、フォームを記入したり、テキストボックスに検索語を入力したりするなどで、人間の操作をシミュレートしてWebページとやり取りできます。

まとめ

Webスクレイピングにより、効率良く情報を集め、加工する技術を身に付けることが出来ます。この技術は、ニュースポータル、人工知能、フォーラム、Eコマースサイト、ソーシャルメディア、不動産、財務報告などさまざまな分野で広く使われています。職業プログラマのみならず、非プログラマーにとっても重宝すると思います。ぜひご活用ください。

プログラミング言語の常識って世間の常識と食い違ってることが多いよね

昨日、あるQ&Aサイトで「するなら何言語?Python、Ruby、またはJavaScript?」という質問を見ました。

確かに、Python、Ruby、JavaScriptなど、その言語でもスクレイピングはできますが、各方法のメリットデメリットがいまいちわからず選ぶのに困るでしょう。

というわけで、今日はそれぞれ、私なりの見解とおすすめの本を挙げておきます。

Python

この中でも最もスクレイピングに適したプログラミング言語はPythonだと思います。なぜなら、Pythonにはスクレピングに適したライブラリが多数揃っているためです。コードの中にスクレイピングのライブラリを読み込ませコードを書きます。ライブラリを使うことにより全くの1からコードを書く必要がなく、効率的にコーディングできます。また、スクレイピング関連の新し目の情報やライブラリに関してはpythonの方が充実しています。

おすすめの本:「Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド」

Ruby

非常にお勧め出来る言語です。Pythonと同様スクレイピングするのに使えるライブラリが一通り揃っております。Pythonを比較して、軽量なライブラリのみで実装出来るのがメリットです。また、Nokogiriというライブラリが非常に秀逸で、Pythonの同等のライブラリよりもずっと使いやすいです。

おすすめの本:「Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例」

JavaScript

スクレイピングするのに使えるライブラリがいくつかあります。垂直Webサイトをクローリングすることができます。動的 Web サイトをスクレイピングすることができます。しかし、環境を揃えるのにかなり手間がかかります。Webページにスクレイピング結果を乗せたいなど、特段の事情が無ければ、PythonかRubyにしておいたほうが明らかに無難でしょう。

おすすめの本:「JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック」

その他

プログラミング言語を使えるならスクレイピングは簡単ですが、プログラミング知識がない人はどうでしょう?心配しないで、を使ったり、Excelの機能を使ったり、を使ったり、非プログラマーの方が使える技も多々あります。ここではをお勧めます。

は、視覚的に分かりやすくWebサイトからデータを自動で取得できる無料/です。コードを書くことなく、スクレイピングの初心者でも、Webサイトから大量の情報を手軽に抽出できます。取得ができるデータは、HTML、テキスト、PNGやGIFをはじめとした画像など幅広く対応できます。ビジネスシーンにあわせて、CSV、EXCEL、HTML、JSON、データベース(MySQL、SQL Server、Oracle)などさまざまな出力形式があります。WindowsアプリケーションであるOctoparseは、Ajaxを使うWebページを含む静的および動的Webサイトに対応し、フォームを記入したり、テキストボックスに検索語を入力したりするなどで、人間の操作をシミュレートしてWebページとやり取りできます。

まとめ

Webスクレイピングにより、効率良く情報を集め、加工する技術を身に付けることが出来ます。この技術は、ニュースポータル、人工知能、フォーラム、Eコマースサイト、ソーシャルメディア、不動産、財務報告などさまざまな分野で広く使われています。職業プログラマのみならず、非プログラマーにとっても重宝すると思います。ぜひご活用ください。

プログラミング言語 しかし、泥棒にだけは、やさしくない家です。

みなさま、こんにちは富士山

Cygames人事担当ですゲーム

今回は、『株式会社Cysharp』の設立についてお知らせいたしますルンルン

ダイヤオレンジCysharpとは?

Cysharpは、プログラミング言語C#の専門集団として

「C#の可能性を切り開いていく」ことを掲げて設立されました!

C#を使用し、Unityに代表されるクライアントやサーバーサイドにおけるC#技術の双方をハイパフォーマンスにすることで、ゲーム業界全体やC#コミュニティの発展に貢献していきます!!

ダイヤオレンジ代表取締役は?

代表の河合はC#の言語としての魅力、実践的な開発環境としての力に魅せられた一人キラキラ

GitHub上に多数のOSSを公開しており、
やなどは世界的にも多くの支持を集めています炎

実は『Shadowverse』もMessagePack for C#を採用しておりますグッキラキラ

▼河合がCEDEC2018で発表した資料

これからCysharpでは「C#の可能性を切り開いて」いき、

日本はもとより、世界でも大きい存在感を出せるようにしていければと考えています!

CygamesともどもCysharpをよろしくお願いいたします流れ星


プログラミング言語 関連ツイート

プログラミング言語「COBOL」がTwitterトレンド入り AWS Lambdaのサポート言語に追加、技術者がざわつく #SmartNews
笑笑
COBOL知らずに業務システム語るなかれとは思う https://t.co/iPFfbqa4Wu
プログラミング言語「COBOL」がTwitterトレンド入り AWS Lambdaのサポート言語に追加、技術者がざわつく
https://t.co/njoC2qwrpu
RT @itmedia_news: プログラミング言語「COBOL」がTwitterトレンド入り AWS Lambdaのサポート言語に追加、技術者がざわつく
https://t.co/YVhiAAPtgN
RT @itmedia_news: プログラミング言語「COBOL」がTwitterトレンド入り AWS Lambdaのサポート言語に追加、技術者がざわつく
https://t.co/YVhiAAPtgN

シェアする

  • このエントリーをはてなブックマークに追加

フォローする