
作者のスマートな肖像画であると同時に、最新のWeb開発のアイデアを示しています
私は正直に認めなければなりません:私は遅刻した生き物です。 それで、後で彼らがこのスコアに私の指を突かないように。 私は、掘り棒の発明より少し遅れてプログラミングを始めましたが、ピラミッドの建設よりもはるかに早く、一般的には、テロダクティルが空を横切って飛んだときです。
いくつかの欠点-リウマチとモニターの前に座っている背面の形で-にもかかわらず、このような経験は個々の利点ももたらします。 優しく温かい沼地で快適に座って、目の前で若くて進歩的なちらつきを見て、四角い車輪の別の自転車を必死に発明します。
「現代のJavaScriptを恐竜に説明する」という画期的な記事を興味深く読みました。そこでは、ジャンクコードの山が非常に必要で、マゾが便利で楽しい理由を指で説明してくれました。 しかし、私自身はWeb開発に携わっているため、そこから新しいことは何も学びませんでした。これはすべて、長年、自分の肌で経験してきました。
はい、私は長い間ウェブプログラミングの第一人者であり、彼らが正方形の真ん中に巨大な鉄の大釜を置き、そこにパスタを入れた麺を調理し、そこで他の人の庭で見つけたものすべてを味のために投げます-コード生成、機能のスニペット、依存関係の手動アカウンティング、静的タイプチェック、リアクティブフロー、そして神は他に何を知っているか。 特に、字句解析と構文解析に依存するJavascriptからJavascriptへの本格的なコンパイルが気に入っています。 本気ですか?
毎年、麺の一部が盛り上がり、底に行きます。 まともなJavascript社会では、言及するのは恥ずかしいことです。Angularのバックボーンは異なります。JqueryやPrototypeライブラリは言うまでもありません。 しかし、新しい泡が上から膨らみ、ボイラーの周りで楽しく踊って歌います。ついに、すべての問題が解決しました。
しかし、私は見ているだけでなく、この沸騰したバットから定期的に試しています-私は長年試してきました-そして結果がまだ食べられないことを見つけるたびに。 鈍く、難しく、ugく、同時に...原始的。 ゴミの山、モンブラン(「心の災い」)をブロックし、使用される言語の数はすでに10に近い(JSの異なるバージョンとさまざまな湿布の構成の言語を数える場合)、これらすべてのアセンブリ時間は指数関数的に増加しますか?
たぶん問題のテレパシーの声明でプログラムを書くメガ言語コンパイラでしょうか? 人類の幸福のための必要十分条件の計算? Step and Step overによる進化モデリング? 原子力宇宙船原子炉を起動するフェイルセーフコード? 普遍的なボタン「にきび-美しく」?
いいえ、3つのボタンを持つ日記「To Do」は、紙の祖父にも届きません。
私の中生代の経験はずっと前に私に教えてくれました:もし大量のコードがマウスを生むなら、何かがおかしいのです。 プロジェクトがテキストとしてコードを生成する場合-キャッチを探します。 通常の操作のために5つまたは2つの松葉杖を呼び出す必要がある場合-あらゆる種類の中毒テスターとコンバーター-それは灯油のようなにおいがします。
上記の兆候はすべて、1つのことを示唆しています。ソリューションはタスクの複雑さを引き伸ばさず、その下に埋もれていました。 プログラミングでは、これは一般的なことです。なぜなら、この活動領域全体が、複雑さとの継続的な闘争の本質だからです。 そして、武器はよく知られています-使用するツールの抽象化のレベルを上げます。
対応するアドレスをスタックにプッシュしてから戻すリターンプロシージャを呼び出すためのJS用の特別なアセンブラコードを生成しませんか? 2つのモジュールを接続して、グローバル変数の実際のアドレスを書き込むリンカーを起動しないでください? ifステートメントでラベルと遷移間の依存関係を別のファイルに記述しないでください? しかし、これはすべてコンピューターにまだ必要です-そして、このすべてが誰かに必要です。 長い間デバッグされた自動ツールのみを作成します。これは、アドレス、ラベル、またはコールスタックがない、はるかに高いレベルで操作しているため、ほとんど知らないことでしょう。
しかし、あなたは次のようなものを書くことはできません
application ToDo { use grid; layout "todo"; init { ...} }
, . ?
, , . — , . , , , — .
— , . , , " -". , , .
, , ? - .
— . , -. — ( , — ) , , , , , . , , — , , . , , , — , , , , . — . , , , — , , , . — .
— . , . — 90% - , . .
- , M, V C. , - . : , — , , , HTTP, — , . , ?
. .
, . — .
— , , ? . , — , "". , , , : IBM 3270, , , WinAPI, TurboVision, VisualBasic, dBase, Tcl/Tk, XUL, Rebol/View, XAML.
- ? , . , - , - . , . -? , .
, , :
) , , , - , . , , : .
) — - (layout managers), — . , , , .
) , . , , DSL, .
- ? . ? , , , : , — , — , - .
, + .
1) ( , ): . HTTP- -, — . , - , .
2) . , , . — , . .
3) . , <DIV>, , , , .
4) , . , . . , - , DOM, .
, 2-4), , , . 100500 , , — . — , , . .
, , — HTML — , . Polymer , , . , .
— , , DOM, , . DOM, , . , .
5) . , . — (!), — ( ), (JS). - *. , , — , . , , .
6) — . .
7) … ** — , , . , -, — : . . , . — Lua, . JS , , - , . .
— — . . 4.
, — , ? — , , . , .
— ( — ), (, ), - , , ***.
. , , , , . , -, - .
"", "" " " , , , .
, , , - . , ? — .
. : . , , , . , , .
, , , , , . — . , — , , , — . , . . . . .
, , .
? . , , , , , ****, DSL , - , , — , , UX. , , , , , , . " , " — - - .
, , - - , . — , , . — -.
* - , , , . , Firefox, — XUL .
** . Javascript Java. , . - , , , , , , . , "Mocha", "". , .
*** . : , . .
, , - . , .
**** , WebAssembly ?