CADとプログラミング
事務作業とプログラミング
自分でプログラムを組めるようになると、事務作業の効率が大幅に変わるかもしれません。もちろんそれなりの時間的な投資が必要ですが、一度覚えれば応用が利くようになり、特に事務的な繰り返し作業は確実に楽になります。
言語を選ぶポイント
1つ習得すれば他の言語の習得も比較的早くなりますが、1つ目で挫折しては意味がありません。(個人的な)結論として、「すぐ結果が得られ、処理が簡潔に書ける」言語が初級者には適すると考えています。まず一般的な事務作業で必ず必要になるのは、ファイル操作(ファイルの読み込み・保存)と、文字列操作(検索や加工)です。一般的にスクリプト言語と呼ばれ、且つ現在普及しているものは、これらの処理を簡潔に書けるものが多く、(本格的ではなくとも)ある程度の習得は比較的容易であると言えます。
スクリプト言語の定義は曖昧ですが、以下「インタプリタ形式で動く/記述が簡潔である/(普及度として)メジャーである/ある程度の資料がある」ものとして、PHP/Perl/Python/Rubyを取り上げて解説します。
各スクリプト言語の概要
- PHP
- まずPHPですが、この言語は動的なWebページを作成することを主な目的としています。文法が単純で多数の専用関数が定義されており、そのため初級者でも習得しやすいと言われます。が、前述の通りWebと組み合わせて発揮される言語であるため、事務作業などの用途には向いていないかもしれません。
- Perl
- Perlは、かつてWeb上で扱うCGIプログラムとして広く普及しました。組み込み/標準ライブラリで強力な機能を持っており、1つの目的を達成するのに複数の方法を持つような柔軟性があります。一時代を築いた言語なので、ネット上に大量のサンプル・解説が存在しています。しかし、文法が自由なため個々の技量に左右されやすく、悪い習慣が付くことがありソースコードが見づらくなりがちです。(もちろん綺麗に記述することもできます。)
- Python, Ruby
- プログラミング言語は、互いに影響を受けあって変化・成長しています。そのため、後発の言語の方が構造化の技術や方法論が整備されていることが多く、何らかの思想のもと綺麗にまとまったものが多いです。後発の言語で広く普及したものとして、Python、Rubyがよく挙げられます。これらももちろん技量によりますが、比較的綺麗なソースコードで簡潔な記述が可能です。
結局何がいいの?
言語の比較をやりだすとキリがなく、趣旨と外れていくので書きませんが、今から始めようという方にはPythonまたはRubyの何れかをお奨めします。どちらも国内外問わず人気が高く、書籍・ネット上の資料など十分にあります。特にRubyは、CAD業界でもJw_cadの外部変形プログラムとして普及しており、覚える価値は十分にあります。本サイトでもRubyプログラミングを多少扱っているので、ご参照ください。
Jw_cadとプログラミング
言うまでもなく、Jw_cadの外部変形はある程度のプログラムを書かないと利用できません。自分の得意な言語・好きな言語で記述できるので、あまりこだわる必要もないかもしれません。
- C/C++
- コンパイルして容易に配布できるのが特徴です。言語としても枯れており、開発の際のノウハウやサンプルも見つけやすく、プログラムの処理速度も出やすいです。が、外部変形のような小規模のプログラムを書くには(他言語と比べて)冗長なコードになりやすく、速度差も大したアドバンテージにはなりません。
- Perl/Ruby/Python/AWK
-
インタプリタ型の(メジャー且つ実用的な)言語は、C/C++に比べて少ないコード量で簡潔に処理を記述することができます。テキスト・文字列の処理に強いので、外部変形プログラムにも向いていると言えます。言語処理系をインストールした環境でないと実行できないのが欠点ですが、言語によっては一つの実行ファイルにまとめる方法も存在します。(RubyのExerb、Pythonのpy2exeなど。)
本サイトでも、Ruby 外部変形ライブラリを公開しています。 - GUI
- 言語ではありませんが、GUIやダイアログを表示させることで外部変形の幅が大きく広がります。スクリプト系でもライブラリ次第で簡単に出せるのですが、元からサポートされた言語(VBやDelphi)や.NET Frameworkで動く言語を視野に入れるのも良いかもしれません。
- その他
- 他の言語でも、外部変形くらいのプログラムなら開発コストは大して変わりません。「この言語が普及しているから」くらいの理由で始めても構わないかと思います。また、Common Lispの外部変形ライブラリを開発された方もいらっしゃいます。Lispの強力さを活かせるようになれば、それも面白いかもしれません。
Ruby 参考書籍
流行りの言語はWeb上に情報が多く、分からないことでも検索すればすぐに出てくる場合が多々あります。ネットを活用すれば書籍が無くてもある程度は覚えられるものです。が、一冊の参考書があるとモチベーションも保ちやすく、何より体系的な学習ができるので、最初の言語の最初の一冊だけは持っていて損はありません。
たのしいRuby 第2版 Rubyではじめる気軽なプログラミング
初めてRubyプログラミングを勉強する方にはこの本がお奨めです。チュートリアル・基礎・実践とテーマを分けて掲載してあり、プログラミング自体の初心者でも読み解けるようにまとめてあります。簡単な事務作業を行うだけなら、基本文法と基本的な組み込みライブラリの習得だけで十分だったりします。あまり込み入ってプログラムを組みたくはないけど、基礎はやっておきたいという方にもお奨めです。
Rubyレシピブック 第2版 268の技
ジャンル・テーマごとにテクニックやサンプルを記載したレシピ本です。サンプルコードを載せているので、実践向けの逆引き本として役に立ちます。他の言語を触ったことがある人など、Rubyではどう書くか/どうすればRubyらしいプログラミングができるか、が知りたい場合は一読しましょう。Rubyに限りませんが、その言語の作法を知っているかどうかで作業効率は全く違ってきます。
プログラミングRuby
Rubyプログラマとしてステップアップしたい方向けにも、基礎から高度な内容までを扱った書籍があります。以下は、Ruby作者のまつもと氏自身が翻訳に加わった書籍「プログラミングRuby」の、言語仕様・動作の仕組みなど高度な内容が記載された言語編と、組み込み/標準ライブラリを解説したライブラリ編です。
Python 参考書籍
みんなのPython
Pythonを基礎から学びたい人向けの書籍です。著者が日本の方なので、訳本にありがちな変な誤植もなく言語の習得に集中できます。Pythonらしいスマートなコードも、しっかりと学べる一冊です。
Pythonクィックリファレンス
Pythonの重要な標準ライブラリモジュールや、人気のあるサードパーティ製の拡張モジュールが記載されたリファレンスマニュアルです。また、チュートリアルや、開発の参考となる資料などの概要も載っているので、素早くPythonを掴みたい方にお奨めです。



