Allen Holub: Say No To XML (As Programming Language); I AgreeアレンHolub :をXMLにノーと言う(プログラミング言語) ;同意
Allen Holub (Author of Compiler Design in C and famous OO Guru) said: “XML is perhaps the worst programming language ever conceived.アレンHolub (著者はCコンパイラの設計で有名なはい達人)によると: " XMLのは、おそらく、最悪のプログラミング言語まで考えています。 I’m not talking about XML as a data-description language, which was its original design.私はXMLの話では、データの記述言語、これは、そのオリジナルデザインです。 I’m talking about perverting XML for programming applications.私が話してpervertingのXMLのプログラミングアプリケーションに最適です。 It’s inappropriate to use XML as a scripting language (eg, ANT), a test-description language (eg, TestNG), an object-relational mapping language (eg, Hibernate, JDO), a control-flow language (eg, JSF), and so forth.それの不適切なスクリプト言語としてXMLを使用する(例えば、アリ)は、テスト記述言語(例えば、 testng ) 、オブジェクト-リレーショナルマッピング言語(例えば、休止状態、 jdo )は、フロー制御言語(例えば、のJSF )などです。 These sorts of XML “programs” are unreadable, unmaintainable, an order of magnitude larger than necessary, and audaciously inefficient at runtime.”これらの種類のXMLの"プログラム"は読み取れない、 unmaintainable 、大きさよりも大きいの順序を必要とし、大胆に、実行時に非効率的です。 " Linkリンク
He surmised that the tendency to use xml for these tasks is simply because people either don’t want to create a compiler or are inacapable of creating one.彼は推定でXMLを使用する傾向は、これらの作業を行うため、人々は、単にしたくないのいずれかを作成するには、コンパイラまたは1つのinacapableを作成します。 I agree with him.彼に同意します。 Most of the time people use XML because it is easy to parse XML, so who cares how long it takes for people to create these xml documents in the first place.ほとんどの場合、使用する人々のためのXMLのXMLをパースすることは容易ので、 who苦労どのくらい時間がかかるため、これらのXMLドキュメントを作成する人々の最初の場所です。 Look at Hibernate for an example.休止状態を見てその一例です。 It is XML hell.これはXMLの地獄です。 EJB 2 was another example. EJBの2は、もう一つの例です。 Jelly was probably the worst example and I don’t like JSTL that much either.ゼリーはおそらく、最悪の例とjstlのは好きじゃないそれだけのいずれかです。
Then he goes on to define the basic qualifications of a programmer, he said something which is close to my heart:を入力し、彼は基本的な資格を定義するのが、プログラマを、彼によると何かが私の心に近い:
“This list includes a deep understanding of data structures and key algorithms, a little math (set theory, logic, a little statistics), mastery of analysis-and-design techniques, both process (eg, RUP or XP) and structure (eg, design patterns), and database structure and use (eg, SQL). "このリストのデータを構造体には、深い理解と鍵アルゴリズム、少し数学(集合論、ロジックは、ほとんどの統計) 、熟練の分析と設計技術、両方のプロセス(例えば、 RUPまたはXPの場合)と構造(例: 、デザインパターン) 、およびデータベースの構造をして使用する(例は、 SQL ) 。 You also need to know how the hardware works.”また、ハードウェアの動作方法を知る必要があります。 "
Designing compilers is hard.コンパイラの設計は難しいです。 Today it is rare to see people designing compilers for their software.今日ではまれな人々を見てコンパイラの設計ソフトウェアです。 They use XML or simple property files. xml 、または単純なプロパティを使用するファイルです。 Also, as he mentioned, it is hard to get books on compiler design.また、彼は言及したように、書籍を得ることは難しい上コンパイラの設計です。 The best Java software to design compiler is最高のJavaソフトウェアを設計するコンパイラは JavaCC JavaCCの , which was by an ex-Sun employee, who later went on to found MetaMata in the dotcom boom era. 、これは太陽の元従業員、 whoへはしてMetaMataには、ドットコムブームの時代が見つかりました。
He misses one vital point.彼は1つの重要なポイントです。 Somewhere down the road it has unfortunately become a marketing bullet point to mention that your software uses XML for configuration.残念ながらダウンする道路のどこかになることがマーケティングに言及してください。銃弾をポイントしてソフトウェアを使用してXMLを構成します。
Filed under提出されて Headline Newsニュースの見出し , 、 Java Software Javaソフトウェア , 、 Open Source Softwareオープンソースのソフトウェア , 、 Technology技術 | |
| |
RSS 2.0 RSS 2.0を | |
Trackbackトラックバック this Article |この記事|
Email this Article電子メールこの記事
You may also like to readを読むようにすることも可能 |




September 27th, 2006 at 6:25 am 2006年9月27日の午前6時25時
Some geeks fantasize about being with hot and sexy girls, only to come home and meet the wife (if they have any) who is far from hot and sexy.いくつかのオタクが、夢を抱いて暑くてセクシーな女の子、と会うまでに帰ってくるだけの妻(もし彼らは任意) who暑くてセクシーにはほど遠い。 That, my friend, is reality.で、私の友人は、現実です。
Allen Holub lives in a fantasy world.アレンHolub 、ファンタジーの世界に住んでいる。 In reality, there’s always deadlines to meet, profit to achieve.現実には、締め切りを満たすにはいつも、利益を達成するためにします。
September 27th, 2006 at 7:14 am 2006年9月27日は7:14アム
Wouldn’t it be more profitable in the long run to make your application easier to use, unless you also offer paid professional support services?より収益性の高いことではないが長期的にはあなたのアプリケーションをより簡単に利用を作る場合を除いて、有料のプロフェッショナルサポートサービスも提供ですか?
Creating compilers is hard for us but creating xml files aren’t easy for end-users.問い合わせコンパイラを作成するのは難しいしかし、 xmlファイルの作成、エンドユーザーが簡単です。
In my experience most of them are comfortable with Excel documents, complex xml is beyond them (obviously with exceptions).私の経験でほとんどの人が快適にExcel文書を、複雑なXMLを超えて(明らかに例外) 。
The downside of compilers is that they are not only harder to create but also harder for others to consume, unless you provide them with a parser too.コンパイラのマイナス面には、彼らは困難を作成するだけでなく、他人を消費するだけでなく、難しい場合を除いて、パーサーを提供するにはあまりにもです。 We do however need a better solution than xml, especially for simple formats.しかし私たちはよりよい解決策を必要とするよりもXMLの、特にシンプルな形式です。
September 27th, 2006 at 10:07 am 2006年9月27日の午前7:07
I got tired of doing “XML push-ups.” So I’m trying to focus my new development efforts on Ruby on Rails.私は疲れがある" XMLの腕立て伏せです。 "だから私は私の新しい開発しようとして努力してフォーカスするRuby on Rails 。 XML? XMLのですか? There is none.にはなし。 Just YAML for configuration of database. yamlためだけの設定をします。 Very nice!非常にニース!
September 27th, 2006 at 10:29 pm 2006年9月27日は10:29 pmの
Yeah, maybe… Except a bad example (ok, problem with Ant, yeah, but it’s not like make is so easy to use, please, tabs, and spaces o my), and plugging his book with all the subtlety of a sledgehammer wasn’t too coolうん、多分…悪い例を除いて、 (よし、問題がアリ、うん、でもそれはには非常に簡単に使えるように、下記、タブ、およびスペースをわたし) 、および彼の著書を閉塞するのすべての機微あまりにも大きな打撃はないクール
September 29th, 2006 at 12:32 am 2006年9月29日の午前7:32
I had read his book - “Compiler Design in C” and I think it is of very high quality.私は彼の本を読む-"コンパイラの設計はC "と思うことは非常に高品質です。 So even if he is plugging his book, I think it is a good plug.栓をするのでたとえ彼は彼の本は、プラグするのもよいと思う。
Also everyone has their natural tendencies.また誰もが、自然の傾向です。 A compiler designer sees everything as a compiler design problem, a OO designer sees the world as object oriented and so on.デザイナーはすべてのコンパイラコンパイラの設計上の問題としては、はいデザイナーとして世界には、このオブジェクト指向している。 Beyond all that I still see lots of merit in his arguments against ubiquitous use of XML as programming language.すべてを超え多くのメリットを私は今でも彼の引数を参照するユビキタスプログラミング言語としてのXMLを使用します。
March 5th, 2007 at 8:39 am 2007年3月5日の午前5:39
I think, the author exaggerates a little.私が思うに、少し大げさの著者です。
It is good that there is a simple format of configuration files.これは良いが存在することを単純な形式の設定ファイルです。 XML is maybe verbose, but it is easy to learn. XMLは冗長かもしれない、それは簡単に学べる。 And if everyone created a new format for each application, we would have to learn much more and it would take much more time.すべての新しいフォーマットを作成した場合、各アプリケーションで、私たちを学ぶがはるかに、はるかに時間はかかるだろう。 Do you remember sendmail configuration files?私のことを覚えsendmailの設定ファイルですか?
March 7th, 2007 at 11:00 am 2007年3月7日午前11時
Yes, I do remember sendmail as well as the make filesはい、私は覚えてsendmailをmakeファイルだけでなく、
I think xml for plain configuration is ok but not as a programming language.と思うのXMLの平原の構成としてはOKしかし、特定のプログラミング言語です。 Ant is a case where xml is used as a programming language. Antのケースは、プログラミング言語のXMLとして使用されています。
January 4th, 2008 at 4:25 am 2008年1月4日は4:25アム
I have often seen people creating programming languages using XML.私はよく見られる人々のプログラミング言語を使用して作成するXMLです。 I think that XML was not meant for that and does not suit that purpose.私が思うに、 XMLの意味はないが、その目的のためのスーツではありません。 Prove of that is XUL, Flex MXML or even XForms, that end up using Actionscript or Javascript to do the business logic.証明するのはXULと同様に、フレックスmxmlまたはXFormsのも、その最後のActionScriptやJavaScriptを使用してこれを行うにはビジネスロジックです。 They use the XML part to layout the components and Actionscript or Javascript to do the serious work.彼らは、 XMLの部分を使用するコンポーネントのレイアウトおよびActionScriptやJavaScriptこれを行うには、深刻な仕事です。 These make sense, because when we are creating the forms, we are marking (or laying) our UI components.これらを理解するため、フォームを作成するときに我々は、我々はマーキング(または敷設)当UIコンポーネントです。
When I started playing with XML, I thought it was going to be a solution for writing quick languages.私が働き始めたときで遊んでのXML 、と思っていたの解決策を書くだろうクイック言語です。 But, I came to the conclusion that XML is what it is: a markup language.しかし、私の結論にたどり着きましたがXMLはどのようなことは:マークアップ言語です。 And it can be used for document design and for data design as well.そしてそれはドキュメントに使用されるデータの設計とデザインです。 As for complex programming languages, I stick to writing compilers for them.複雑なプログラミング言語としては、私に固執するコンパイラを作成します。 The language becomes so much cleaner than XML.その言語にとてもクリーナーは、 XMLです。
Now, as for compiler writing being a hard, I just answer \\\”when people don\\\’t know how to use something, they always say it is difficult\\\”今すぐ、コンパイラとして書くのが難しいが、私だけ答え\ \ \ "時の人々ドン\ \ \ 'を使用する方法について何かわからない、彼らはいつも言ってやることは難しい。 \ \ \ "
It is not like in the old days whereby you would need loads of programmers to write a compiler.ではないです昔のようにしなければならないのプログラマの負荷を書くためにコンパイラを指定します。 Today, a single programmer can put together a compiler, using current compiler frameworks, in a month.今日では、単一のプログラマーをまとめることコンパイラは、現在のコンパイラフレームワークを使用して、 1カ月です。
Nowadays, you don\\\’t have to write parsers by hand.今日、あなたドン\ \ \ 'を書くパーサを手で持ちです。 You can put together a parser for a configuration file in a day or two.することができますをまとめるのためのパーサーは、設定ファイルには、 1日または2つです。
Compiler writing was, in the old days, very laborious.コンパイラ書込みは、は、昔には、非常に骨の折れる。 Not anymore, because you have many frameworks that do half of the work for you.もう、多くのフレームワークで行う必要があるため、その仕事の半分をします。 For instance, with JavaCC you can generate the lexer, the parser, the Abstract Syntax Tree using JJTree.たとえば、 JavaCCのレクサーすることができます。生成して、パーサは、 jjtree抽象構文木を使用しています。 And then, you just have write the semantic analyser, intermediate code generator, code optimizer and the code generator.と入力して、あなただけが書いて意味解析、中間コードジェネレータ、コードの最適化やコード生成ツールです。 But, that is very simple to do.しかし、それは非常に簡単に行う。 It is similar to traversing XML nodes.これはXMLノードに似て横断します。 I usually see it that way.ふうに言われると、私は通常を参照します。
Finally, I would like to mention that there is a compiler framework called SableCC, which is very easy to use.最後に、私に言及したいと呼ばれるフレームワークが存在することをコンパイラsablecc 、これは非常に簡単に使用します。 There is also an alternative based on SableCC, which allows us to write backend generators for other languages.また、代替sableccに基づいて、これにより、バックエンドの問い合わせを書く他の言語のため発生器です。 I have written two backend generators: one for Python and one Actionscript.私は2つのバックエンドで書か発電機: 1つ1つのPythonとActionScriptのです。 The Python one is in the public domain. Pythonの1つは、パブリックドメインです。 The Actionscript one is still being used internally in my company. 1つのActionScriptは、まだ私の会社の内部に使われています。 But will, eventually, be released to the public domain.しかしは、最終的には、パブリックドメインにリリースされたのです。 We used the Actionscript backend to write a SPARQL parser for Adobe Flex, and to write a compiler for a programming language based on Daplex.我々は、 ActionScriptのバックエンドのためのパーサーを書くためにはAdobe sparql flexおよびコンパイラを書くためには、プログラミング言語に基づいてdaplexです。 Well, we call it a framework, because it does more than generating database code.ええと、私たちはこれするためのフレームワーク、それはデータベースのコード生成を超える。 It generates web applications that target PHP, Java, C# with either Ajax or Adobe Flex front ends.それが生成WebアプリケーションをターゲットとPHPの、ジャワ、 C #のいずれかAjax ]または[はAdobe Flexのフロントエンドです。
Anyway, that is my two cents.とにかく、それが私の2つのセントです。
All the best,のすべてのベスト、
Fidel.フィデルです。