1997年5月。京都にてインディーズで音楽活動を続ける原田博行が、自身のソロライブに旧友の笹野みちるを始め、清水健太郎や村田聡らをゲストとして呼んだ事より、活動の基礎が出来る。 当初からバンドとしての活動を行っていた訳ではなく、この時に発表した『HIMAGINE』や『Sin』『僕に捧げる歌』は、後にバンドの曲として定着するようになる。 また、『チックタック』や『どう？』などのように、元々が原田博行のソロ曲だったものが、バンドの曲として移行したものも、この当時には幾つかみられる。具体的にいつをもって活動開始と定めるかはバンド結成のいきさつ上、難しい。『京都町内会バンド』との名称を用いての初めての公の活動は、同年6月22日のラジオ出演からとなる。 バンド名称の由来は、当時ライブを目にしたRDレコードのスタッフが、バンドを『町内会的な雰囲気』と評した事が笹野の頭に残り、そこからヒントを得たとされている。当初は原田を核とし、笹野、村田、清水の4人編成だったが、同年秋頃、清水から有田さとこ（加入当時は『有田聡子』）へメンバーチェンジしての4人編成となる。
前述のような批判があるのは確かであるが、ヴィオレ・ル・デュクが近代建築家たちに与えた影響はとても大きい。ゴシック建築の合理的解釈に出発して建築そのものに合理性を追求するようになり、また機能主義的に建築の有用性を重視した彼の理論はアール・ヌーヴォーの建築家だけでなく、20世紀の建築家たちに多大なインスピレーションを与えた。革新的な材料を用いた新しい建築のあり方を模索し、古典主義建築家たちが賛美してきた歴史様式からの脱皮を目指し、また建築の機能美を追求しようとした彼ら近代建築家たちにとって、ヴィオレ・ル・デュクの建築理論はその先駆を行くものとして高く評価されたのである。
ヴィオレ・ル・デュクの建築理論に対する批判は多く分けて以下の２つの議論から成り立っている。第一の論点は、ゴシック建築の交差リブは彼が主張するほどの構造的役割を持ってはいないのではないかという点である。これは、その後の戦災がある程度答えを出した。砲弾による攻撃を受けて交差リブが破壊されたとしても、ヴォールト天井が落下しない場合があることが分かったのである。第二の論点は、たとえゴシック建築を合理的に解釈できたとしても、実際にそれらの建設を行った中世の職人たちがそれほどまでに合理的な考えを持っていたとは言えないのではないかという論点である。これも近年の文献研究によって明らかになってきた。建設当時の職人たちは決して合理的とは言えない比例論を用いるなどしながら建設を行っていたのである。以上のことから、ヴィオレ・ル・デュクの理論が修正を迫られたことは確かである。
19世紀当時新しい建築材料として使われ始めていた鉄の利用を認めている点もヴィオレ・ル・デュクの建築論の特徴の一つである。彼はゴシック建築への合理的解釈を広げ、合理的建築こそが良い建築なのであり、19世紀の建築も合理的建築を目指さなければならないとした。彼は中世ゴシック建築の研究をしていたが決して懐古主義者ではなく、過去と現在の建築の目指すべきものの違いを認識していた。その上で彼はその違いを材料の違いに求め、新しい材料である鉄を目指すべき新しい建築の材料として重要視した。『建築講話』第二巻には鉄を用いた理想的建築の例が提示されている。
ヴィオレ・ル・デュクは、ゴシック建築をすべて力学的に説明することを試み、ゴシック宗教建築の最大の特徴である交差リブの構造的な重要性を示した。その理論的説明はその隅々に及び、ピナクルや控壁に至るまですべての部位の存在に理論的整合性が与えられた。これが彼の確立した構造合理主義理論である。このことにより、ゴシック建築は、それまで重要視されていた古典建築と同等の地位を獲得したと言えよう。啓蒙思想の広まりや科学の発展などを背景に、当時の新古典主義建築は二つの方向性に分裂していた。一方は、考古学的に過去の建築様式を正確に再現していこうとするものであり、もう一方は古典建築の合理的解釈に基づき建築のあるべき姿を追い求めていこうとするものである。ヴィオレ・ル・デュクは、構造的合理主義理論によって両者の分裂を統合し、建築における理想的な姿と、理想とするべき過去の遺構とを一致させようとした。その具現化こそが中世ゴシック建築であった。
ループなどの制御構造についても、スタイルの議論となる。適切なループ方法により可読性が向上する（命令型プログラミング言語の場合）。例えば、次の擬似コードを見てみよう。 count = 0 while count < 5   print count * 2   count = count + 1 endwhileこのコードは変数名や字下げは問題ないが、次のようにfor文を使った方がずっと読みやすい。 for count = 0, count < 5, count = count + 1   print count * 2多くの言語では、このようなパターンは次のように短縮できる。 for count = 0 to 5   print count * 2 print "Ended loop";ブロック（複文）のある言語で、制御構造の本体が「文、または、ブロック」である場合、ブロックにすることを原則とすることがある（PerlやGoなど、言語自身の構文規則でこのように強制しているものも多い）。 for (count = 0 to 5) {   print count * 2; } print "Ended loop";これは例えば、次のような「誤ってセミコロンを付けた」発見に時間のかかるバグを回避する。 for (count = 0 to 5);  // この行の最後のセミコロンがバグ   print count * 2; print "Ended loop";あるいは、次のようにループ内で実行する行を増やしたときも中括弧を予めつけておけば、バグを回避できる。 for (count = 0 to 5)   log "loop reached " + count;   print count * 2;  // この行が「実はループ内ではない」のがバグ print "Ended loop";さらに、「プリプロセッサによって本体が削除されてしまい、意図していなかった次の行が本体になってしまった」というような場合も防げる。 for (count = 0 to 5) print "Ended loop";