HTMLとCSSがプログラミング言語ではないことが重要なのはなぜですか?


158

ここの例:

Webアプリケーションの構築に興味がある場合、どの言語を知っている必要がありますか?

はい、HTMLとCSSはチューリング完全ではないことを理解しています。はい、宣言型の言語であり、命令型の言語ではないことを理解しています。しかし、なぜこれらの言語について質問するとき、人々は常にこの舌な(そして間違いなく明白な)事実で頭をかかげているのでしょうか?


32
人々が履歴書にそれを置いたとき、それは私を悩ますだけです。さらに悪いのは、「言語体験:」の下でJavaScriptの横にjQueryを配置した場合です。
ジョシュK

19
誰に雇うか、特定のタスクに誰を割り当てるかを把握する必要がある場合、彼らのスキルを知る必要があります。割り当てにアルゴリズムの実装が含まれる場合、HTML / CSSのバックグラウンドしか持っていない人には割り当てません。コマンドラインCプログラムを書くバックグラウンドしか持っていない人を、複数のブラウザーで動作する必要のある複雑なWebページの束を書くことに割り当てるつもりはありません。あなたが人を雇ったり管理したりしていたかどうかはわかりませんが、これらのタスクは互換性があると誓う多くの人々に出くわします。
チャールズE.グラント

8
データは、ちょうどダムコードとコードだけでスマートなデータです。stackoverflow.com/questions/871833/...
クリストファーHammarström

14
人々はOPの質問を理解することに失敗している。それはもっと率直に言って次のようになるだろう。 ?」まず第一に、当たり前。ありがとうございました。ほんの少しの愚かなJavaScriptのトリックさえ知っている人なら誰でもそれを手に入れるでしょう。CSSの習熟は、そこにいてそれをマスターしたプログラマーにとって何か意味があるのでしょうか?そうそう。はい、そうです。私たちが次の火星探査機をプログラミングしているかどうかは気にしません、それは明確なタイブレーカーです。
エリックReppen

7
XSLTは...この文脈で考えることは興味深いケースである
ダン・ディプロ

回答:


300

本当に違いは何ですか?

プログラミング言語とこれらの他の言語の真の重要な違いは次のとおりです。

HTMLとCSSはプレゼンテーションを記述しますが、プログラミング言語は機能を記述し ます

この違いがなぜ重要なのかを説明したいと思いますが、この問題についての注意は見当違いです。

実話

「適切な」プログラミング言語を使用した複雑なパフォーマンス管理システムの開発に数か月費やしたことがあります。他のさまざまなシステムからデータを収集するプロセスを自動化し、そのデータに対してさまざまな操作を実行してから、結果を単純なテーブルに表示しました。

運用が開始されると、シニアマネージャーが同様のビジネス向けに作成されたツールを見て、作成したツールを代替ツールで置き換えられるかどうかを尋ねました。さらに、この新しいアプリが数日で書かれていたソリューションを開発するのに何週間も費やしていたことに、彼は怒っていました。

さらなる調査により、マネージャーの好むオプションはすべて、実質のないプレゼンテーションであることが明らかになりました。多くの色、アイコン、グラフがありましたが、それらの背後にあるロジックまったくありませんでした。すべてのデータを手動で収集して操作する必要がありました。きれいなインターフェースにもかかわらず、アプリケーションは本質的に役に立ちませんでした。

問題のマネージャーは、私のアプローチが彼の実際のビジネスニーズに合ったアプローチであると確信していたと言ってうれしいです。

プレゼンテーションの重要性

HTML、CSSなどのスキルは、「実際の」プログラミング言語のスキルよりも多少劣っていることを暗示することがよくあります。これは重大な間違いです。

私の話では、シニアマネージャーはデザインが彼にとって非常に重要であると感じていました。さて、もしこれが孤立した事件であるなら、私はマネージャーがただ愚かだったと示唆するかもしれません。しかし、そうではありませんでした。何度も何度も、派手なグラフィックスと奇抜なウィジェットに感銘を受けているが、生の機能と私の技術的な成果には感銘を受けていないユーザーに会いました。ここで学ぶべきいくつかのレッスンがあると思います。

  • 人々は彼らが理解する基準でソフトウェアを評価します。見た目といの違いをよく理解しますが、技術的なニュアンスに感謝することはめったにありません。
  • 人は外見にだまされます。これは良いことではないかもしれませんが、私たちが一緒に暮らさなければならない現実です。
  • 外観は、ソフトウェアに対する人々の感じ方に影響します。ソフトウェアに対する人々の感じ方は彼らにとって重要です。実際、人々は、機能的に優れたソフトウェアよりも気分が良いソフトウェアを好むことがあります。実際、技術的に優れたツールよりも、使い心地の良いツールの方が生産性が高い可能性があります。この程度まで、ユーザーはだまされていません。彼らは実際には賢明で思慮深い選択をしています。
  • プログラマーとして、機能に焦点を当てる際にプレゼンテーションの役割をしばしば無視します。ある程度、これは正しいことです。ただし、お客様にとって重要な作業には別の側面があることを認識することが重要です。

そのため、プレゼンテーション指向の言語(HTML、CSS)が重要です。これらのツールを効果的に使用できる人が追加する価値を過小評価してはなりません。

実際のプログラミング言語の重要性

OPが指摘したように、「実際の」プログラミング言語はチューリング完全です。適切な悲しいオタクとして、私はこの崇高な魅力を見つけます。それはのために、ということを意味任意の TC言語で書かれたプログラム、機能的に同等のプログラムがで書くことができ、他の TC言語。もちろん、これはすべての言語が同じだということではありません。それぞれに長所と短所があり、特定のタスクに多かれ少なかれ適しています。ただし、I / Oは別として、これはすべてのプログラムをすべての真のプログラミング言語で作成できることを意味します。

(ちなみに、重要なのはTCです。宣言型と命令型は、ここでは赤字です。たとえば、SQLは宣言型ですが、TCであるため適切なプログラミング言語でもあります。)

もちろん、HTMLやCSSのようなマークアップ言語についても同様ではありません。実際、これらの言語では解決できない問題のクラスがすべてあります。レイアウトエンジンを含む、真のプログラミング言語で必要なものをプログラムできる場所では、TC以外の言語で同じことを達成することはできません。

私の話で強調したように、HTMLとその同類はプレゼンテーションの作成に使用されます。機能を生成するために、実際のプログラミング言語が使用されます。

なぜプログラマーはそれについてすべてにつまらないのですか?

  1. プログラマーは、スキルの開発に多大な時間、労力、および金を費やしています。人々は当然、投資するものを大切にします(「あなたの心はあなたのお金のある場所」)。
  2. プログラマーは、UIデザイナーによって達成された迅速な結果と比較して、結果を生成するのにかかる時間を正当化する必要性をしばしば感じます。これを行うには、2つのグループが実際に行うことを区別する必要があります
  3. 雇用主は、適切な人材を適切な仕事に適用する必要があるためです。(多くの場合技術的な)違いを明確にしない限り、マネージャーは簡単に間違った呼び出しを行います。
  4. あるので、実際の根本的な違いは、上記で概説したように。

つまらないことは常に適切ですか?

プログラマーとして、私たちは自然に多くのことを学んでいます。それは領土に合っています。非プログラマーが私たちの行動を理解できなかったときに、私たちの多くが火傷をしたことは助けにはなりません。

それにも関わらず(そして正直に言うと、これは私の本能に反する)、人々が小さな区別をすり抜けるたびに声をかける必要はないと思います

ここで重要なことは文脈視点です。

生物学者の観点から見ると、トマトは果物だと言われています。しかし、スーパーで買うときは、野菜の中から探します。どうして?その特定の文脈では技術的な区別は重要はないからです。さらに、区別は実際にそれらの有用性の妨げになります。例えば、フルーツサラダにトマトを入れるのに十分だったら。

コンピューター言語でも同じです。プログラミング言語と他の言語の違いが本当に重要な場合があります。ただし、多くの場合、それらをすべてまとめてひとまとめにすると、完全に効果的に通信できます。OPによってリンクされた質問の場合、どの言語が真のプログラミング言語であり、どの言語がそうでないかは実際には関係ありませんでした。区別を指摘しても、議論は決して進みませんでした。ありがたいことに、少しのノイズを追加する(そして興味深い議論の刺激になります!)ことを除けば、OPによってリンクされたペダントリーはほとんど意味がありません。最悪の場合、しかし、少なくとも私の妻によれば、学問は否定的な感情と関係を損なう可能性があります。
:-)

プログラマーのペダントリーに対処する方法

私の説教者の友人はかつて次のような説教をしました:

これは死ぬ価値のある丘ですか?

彼は、どの戦闘が戦闘に値するかを戦略的に評価する将軍に言及していました。利益はコストに見合うのですか?

  • この区別をするために、議論の流れを中断することは本当に価値がありますか?
  • 私のペダントリーは、rog慢感や過去の傷から生じていますか?
  • 私のコメントは自分のスキルだけでなく他の人のスキルも重視していますか?

もちろん、区別する必要がある場合があります。私の目的は、私が貢献するとき、それが私たちの集団的な努力に価値を加えることです。

つまり、結局のところ、すべての本当のプログラマーの仕事です。


4
T-SQLまたはPL / SQLについて話していない限り、SQLはチューリング完全ではないと思いました。
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner:そのとおりです!私を迎えに来てくれてありがとう。(ただし、私はスタンドを作っているポイントは-宣言型言語はTCにできること)
Kramii

1
非常に良い答え。Web開発者として、クライアントが提案された機能よりも「派手な」デザインにはるかに感銘を受ける状況を何度も繰り返してきました。これは私たちの純粋主義者のプログラマーの本能を損なうかもしれませんが(その機能は王様であるべきです)、それは私たちの危険において無視するものです。
ダンディプロ

4
+1:Joel Spolskyが興味深いブログ投稿で、機能と派手なGUIの問題を取り上げています。特に、機能が適切でない場合に100%完成した非常に派手なGUIを表示する危険性。あなたがそれを読んでいないなら良い読み物。joelonsoftware.com/articles/fog0000000356.html
レオ

3
「技術的に優れたツールよりも、使い心地の良いツールの方が生産性が高い可能性があります」-真実、真実、真実!Appleはこれに基づいてビジネスを構築しました。誤解しないで、Macがあまりに物質を持っていますが、どのような一部の人々は、LinuxやWindowsの一つとしてのMacマシンのほぼ2倍を支払う作ったのは、それがあることで見えクール、それは感じて使用することは良いです。
グレンペターソン

116

「ソフトウェアエンジニアリング」を学んだことを土木エンジニアまたは機械エンジニアに伝えれば、「ソフトウェアエンジニアリング」は実際のエンジニアリングではないことがわかります。

F-16パイロットに、あなたがセスナを楽しみに飛ばすことを伝えてください。そうすれば、彼はあなたが本当のパイロットではないことを告げるでしょう。

あなたがカイロプラクターであることを医者に伝えてください、そして彼はあなたに言うでしょう...まあ、そこに行かないようにしましょう:-)

私は、人々が自分の職業が偽装者または本当に「価値のある」人によって浸透しているという考えが好きではないことが主な理由だと思います。

公平を期すために、HTMLとCSSがプログラミング言語ではないことは明らかです。これらは.docx形式がプログラミング言語であるというプログラミング言語ではなく、HTMLとCSSだけが確かに不正確であればプログラマーであると主張することもできません。しかし、返信の激しさの一部は、私が上で言ったことに起因していると思います。

また、リンクした質問で、質問者はHTMLとCSSを「プログラミング言語」ではなく「言語」と呼びました。HTMLはマークアップ言語であり、CSSも言語です(ただし、CSSと呼ぶ言語の「種類」はわかりませんか?)。 「...


7
「しかし、CSSと呼ぶ言語の「種類」はわかりませんか?」-ピンチで「スタイル記述言語」がそれをします。
オコド

28
@ acidzombie24:「HTML」の「L」は何を表していますか?
ディーンハーディング

8
構文とセマンティクスがあれば、それが言語ではないと主張するのはかなり困難です。HTMLとCSSはどちらもこれらの基準による言語です(英語、エスペラント語、クリンゴン語、そしておそらくUML)。ただし、それらはいずれも「プログラミング」言語ではありません。
ザック

6
@Dean Harding-ハイパーテキストマークアップレゴ?
VirtuosiMedia

4
CSSはスタイルを記述するためのDSL(ドメイン固有言語)です(つまり、ドメインは視覚的な美学です)
ポール

9

私にとってはそれほど重要ではありません。

しかし、HTML、CSS、XMLなどとReal Programming Languages™の違いは、建築材料としての木材と塗料の違いに似ていると思います。木材でできるようにペイントで物事を構築することはできません。同様に、RPLでできるようにHTMLでプログラミングすることはできません。

ただし、一部の会話では、そのような区別をすることは無関係であり、したがって退屈で面倒なことがあります。


1
XMLはHTML / CSSよりも一般的であるため、悪い例です。たとえば、XSLTはXMLとチューリング完全の両方です。XMLは実際には単なる構文と同じくらい多くの言語ではないと思います。XMLはトークンの定義方法を指定しますが、トークンの意味は指定しません。
ティコンジェルビス

@TikhonJelvis私たちは基本的に同じことを言っていると思いますが、そうすることであなたは私の論点を証明しています。XML(拡張マークアップ言語)は、「言語」または「構文」であるかどうかの分岐毛が...ので、私が作っていたとの点にほとんど無関係であり、そして
エリック・キング

6

おそらく、一部のWebサイトのhtml / cssの部分ではプログラミングの部分と同じくらいの作業が行われるため、「重要な」区別ではないかもしれません。

しかし、それ何を意味するのか分からない人は誰でもWeb開発を行うチームに入れられないので、それ重要な違いです。

デザイナーがHTMLがプログラミングであると考えている場合は、Adobeツールでのデザインを続け、印刷関連のデザインを行うようにします。しかし、彼がウェブアプリについて言うかもしれないことを信じないでください。

開発者が「彼の」言語がチューリング完全であるために彼がデザイナーより上だと思っている場合、彼がデザイナーとうまく働くことを期待しないでください。


@Javier:「プログラミング言語」の定義は何ですか?
クリストファーハンマルストローム

@ChristofferHammarström:正式な定義を求められた場合、チューリング完全性を採用します。しかし非公式には、プログラム何らかの入力に応じて何かを行うと言います。通常、ランタイムif ... thenコンストラクトがなく、以前は不明な回数だけ繰り返す方法があれば、それはプログラミング言語ではないという傾向があります。もちろん、定義を複雑にするいくつかの周辺言語があります。しかし、HTML / CSSはそれとほど遠いものです。
ハビエル

@Javier:正規の「Hello World」は、入力を必要としないプログラムだと言えますか?
クリストファーハマーストローム

@Javier:Wikipedia(en.wikipedia.org/wiki/…)の議論によると、Pixel Shader言語の初期バージョンはチューリング完全ではありませんでした(「一般化された反復機能」、つまり「以前のことを繰り返す方法不明な回数」)。これらは、人気のあるゲームでグラフィックスプロセッシングユニットをプログラミングする際にプログラマのみが使用する言語でした。プログラミング言語ではなかったとまだ言いますか?
クリストファーハンマルストロム

@Christoffer:Hello worldには入力が必要です。実行開始する必要があります ただし、Pixel Shaderについてのあなたの観察は興味深いものです。
ロバートハーベイ

5

「宣言的であり、命令的ではない」と言ったとき、あなたは頭にそれを打ちます。マークアップ(HTML、CSSなど)は物事を説明します。プログラミングの重要なポイントは、物事を行うことです。

マークアップの使用に必要なスキルセットは、プログラミングに必要なスキルセットとはまったく異なります。

マークアップを書くことによって解決される問題の種類は、プログラミングによって解決される問題の種類とはまったく異なります。


16
純粋な関数型プログラミング言語は、本質的に宣言型です。Pythonのリスト内包表記であるLinq、XAML、XSLT、SQL、およびPrologも同様です。これらはすべて、真正なプログラミング言語および/または概念です。一方で、ほとんどのプログラミング言語は不可欠です、これはありません決定的な特徴。まったく。
コンラッドルドルフ

@KonradRudolph-純粋に関数型のプログラミング言語が何らかの意味で宣言的だと思うなら、それらをあまりよく理解してはいけません。
ジョナサンキャスト

@jcast私が何かを誤解している可能性は完全にあります。しかし、その分野の専門家もそうです。一般的なリファレンスとして、ウィキペディアは(純粋に)関数型プログラミング言語を宣言型として分類しています。具体的な例として、純粋な宣言型言語の研究の博士号を持つPaul Boneもこの定義に従います。私はあなたがその定義でどのような理由で攻撃をしているのか知りたいです。
コンラッドルドルフ

5

特定の人々にとって重要なのは、どちらも表面的なロケット科学ではありませんが、実際に気にしている通常5から数十の異なる環境で実装が異なるため、それらを取り巻く多くのアルカナがあります。そのような予測不可能性とクラフトへの注意は、定量化不可能なリスクに恐怖し、学位を取得した後に絶対に必要な以上のことを学ぶことによりさらに恐ろしい特定のさまざまな技術専門家を怖がらせます。

私が知っている言語を誰かが私に尋ね、CSSをそこに投げて「しかしそれは本当の言語ではない」と言ったら、IE 5、IE 6-8、IE9 +でdivを垂直方向に中央揃えする方法を尋ねます。それから、丸みを帯びたコーナー、アルファ透明度の問題、これらのすべてのばかげたテーブルの背後にある本当の犯人に移動することができます。言語を学び、10年前に大学での授業を受けることを余儀なくされたために、彼はほとんど機能的に読み書きができないと主張しています。

それらは間違いなく「言語」です。私はそれらを「プログラミング言語」とは呼びません。これらの言語でのコーディングのプロセスを「コーディング」と説明するのは安心です。

しかし、私が懸念している限り、CSSをグランドマスターできた人は誰でも、優秀なプログラマーになるためのchutzpaと仕事の倫理を持ち、オブジェクト指向思考の背景をすでに持ち、どのように彼が現在の執筆は、彼の仕事に将来25のプロジェクトに影響を与える可能性がある


2
+1。「プログラマー」が実際のプログラミングではなく単純なプログラミングとしてHTML / CSSを置くと聞いた回数はわかりません。それから、Firefoxで箇条書きのリストが適切に並んでいる理由がわからない場合、彼らは手を挙げて、Web全体が現代のソフトウェアに適さないことを宣言します:(
Graham

3

HTMLとCSSはプログラミング言語ではありません。それを乗り越えます。

ただし、JavaScriptはプログラミング言語です。マシンはブラウザです。PHPはプログラミング言語です。マシンはサーバー内の仮想マシンです。

そのため、HTMLとCSSのみを使用している場合、プログラミングは実行していません(エンジニアリングを実行している場合もあります)。

ただし、JavaScript、PHP、または別のスクリプト言語を使用している場合。あなたはプログラミングをしています。

REALプログラミング言語について。マシン(実際のマシン、または仮想マシン)で操作している場合。そして、あなた自身のアルゴリズムを使用して、マシンに何かをするように指示しています。次に、REALプログラミング言語を使用しています。


6
結局のところ、HTML、CSS、SQLを省くことができるのは、結局のところ、これらは実際のプログラミング言語ではないからです。実際、IDEの使用をやめることもできます。なぜなら、彼の塩に値するプログラマはコマンドラインエディタで対応できるからです。
ロバートハーベイ

4
私はこの答えを個人的には下げませんでした(-6で十分だと思います!)が、下げ票の理由は、これが実際に質問に答えないからだと思います。質問は「HTMLとCSSプログラミング言語ですか?」ではなく、「なぜ重要なのですか?」です。
ディーンハーディング

6
@Robertそれは完全にスペシャリストです。「Xは役に立たない」というのは、「XはYではない」というリカードの主張には従いません。
マシューリード

4
@Lennart Regebro @Robert Harvey:@Matthew Readの立場は、ここでの会話の魅力です。あなたは、優越感と偽りの否定を同一視しています。HTML / CSS 非常に難しいです。私はそれができる人がいないので、私にできる人を雇います。スキルが足りません。それは技術的な設計スキルであり、プログラミングではありません。
10

3
「プログラミング」という言葉を非常に広くすることは、ほとんど意味がないようにすることです。意味はそれよりも狭く、あなたは異なる意見を持っているかもしれませんが、言語は大多数が意味するためにそれを使用するものを意味することがわかります。
マシュー

3

プログラミング言語は、実務家や一般人でも使用される一般的な用語であるため、少し不正確な用語です。開業医は、一般の人が通常持っていない用語の微妙な意味を持っています。通常、彼らの定義は、私がすぐに理解できない面白い単語/構文があり、プログラマーがそれを使用する場合、それはプログラミング言語でなければなりません。完全に外れているわけではありませんが、不正確であることに同意できます。

宣言的、命令的、チューリング完全などの単語は、非常に具体的な意味を持つより正確な用語です。HTML / CSSがプログラミング言語ではない理由などの質問をするとき、プログラミング言語が実際に何であるかについて、より正確な定義を求めています。意欲的ではありませんが、あなたの質問に答えようとしています。たとえそれらをグーグルで検索しても、それらの意味を理解するのが難しい場合、使用するのに最適な用語ですか?依存します。短いまたは長い答えが必要でしたか。:-)

プログラミング言語は通常、プログラマーによって完全な回転と考えられていますが、それはどういう意味ですか?これは、言語が動作または方法を記述することができることを意味します。正式にロジックと呼びます。HTML / CSSは、右上隅にボタンがあるか、4列5行のテーブルがあり、最初の2行が黄色で、下の行に緑色のテキストがあり、テーブルの各セルに5ピクセルがあることを記述できますコンテンツの周りの空白スペース。

HTML / CSSができないことは、ボタンをクリックしたときの動作またはロジックを表現することです。そのボタンをクリックしても、そのテーブルから値を取得して加算し、その値をテーブルの下部にある新しい行に書き込むことはできません。振る舞いを記述することは、過度に独創的になることなく、Turning-completeとほぼ同等です。

より正確には、チューリング完全とは、言語をそれ自体で実装できることを意味します。つまり、javascriptの文字列を受け取るjavascriptプログラムを作成して実行できます(eval()関数を使用しません)。実際、チューリング完全言語で書かれたプログラムを取得して評価できるjavascriptプログラムを作成できます。それがチューリング完全であることの意味です。完全に回転するすべての言語は、プログラムを表現できるものと同等です。あなたがそれについて考えるならば、かなり驚くべき啓示。


チューリング完全とは、この言語を使用してチューリングマシンをシミュレートできることを意味します(または、チューリング計算可能な関数を計算できます)。
ミパディ

3
@pipadi-非常に正確で正確な定義を提供しますが、このような質問をする人は「WTFはチューリングマシンですか?WTFはチューリング計算可能な関数ですか?」と言うでしょう。チューリング完了を理解していない場合、チューリングマシンまたはチューリング計算可能関数のどちらを理解するのでしょうか?これは、辞書で修辞的な単語を検索するようなもので、「レトリックの」、「レトリックに関連する、またはレトリックに関係する」と書かれています。その定義は、修辞的が実際に何を意味するかをあなたに教えず、あなたが理解していない別の単語を指し示すだけです。
チャブソンダブ

1

これが私の2セントです。HTMLとCSSは明らかにプログラミング言語ではありません。そのため、「プログラミング言語」の下で誰かの履歴書にHTMLまたはCSSが表示されると、この人は何を話しているのかわからないことがわかります。

それ以外は、いや、それは本当に重要ではありません。

ちなみに、プログラマーは一般的に慢になる傾向があります。それは単に仕事に付属しています。


4
だからあなたの心では、誰かが別のマークアップ言語セクションを持っているスペースを無駄にしたくないので、誰かがそれについておおよその余地はありませんか?私にとっては、それは有用なものを超えた独創的な方法です。
ジョンホプキンス

1
「プログラミング」の下にHTML / CSSを含むCVが表示されたら、+ 1を読みます。彼は(そう、彼は私のためには使用ません)の違いを知らない、または希望は私が(私は彼と一緒に仕事したくない)の違いを知らないのどちらか
ハビエル・

2
@Jon Hopkins:細心の注意はプログラマーに必要な品質です。HTMLをプログラミング言語の下に置くことはおおよそではなく、ずさんです。プログラマーとしての仕事に応募する場合、それは非常に悪い第一印象になります。
ディマ

1
@ディマ:絶対に。非公式は大丈夫で、時には書面でさえも、貿易の非常に基本的な概念の不正確さは受け入れられません。
ハビエル

1
ばかげてる。現在、履歴書とインタビューは、業界で最も問題のある部分の1つです。違いを知っている人がまだ「プログラミング言語」の下に「HTML」を置いているのかどうかはわかりません。なぜなら、彼らは一部のHRドローンが「マークアップ/デザイン/など」の下でそれに気付かず、履歴書を追い出すからです。少なくともそれらを呼び出すか、それらを持ち込む必要があります。彼らが「HTMLでプログラムする」とあなたの顔に告げるなら、それは本当に赤い旗です。しかし、HTML 5だけで今できることを考えてみてください!それは本当にそんなにストレッチですか?
グラハム

0

関係ありません。また、それは定義の問題でもあります。プログラミング言語とは何ですか?いくつかは、チューリング完全でなければならないことを意味します。他には、HTMLをプログラミング言語にする他の定義があります。(そして、あなたの例では、それらはプログラミング言語とも呼ばれず、単に言語と呼ばれていました)。

私の推奨事項:これらの種類の無意味で、多くの意味で誤った主張さえ指摘する人々を無視するようにしてください。それは単なる文法のナチ主義のバリエーションです。HTMLをプログラミング言語と呼ぶことは、意味のある意味で間違っていません。


7
HTMLがあるとしてそれは意味のある-1 ないプログラミング言語で、それはそのようなことの基本的な要素を持っていない-それは単に技術的な図面上の本はプログラミング言語で同じ拡張子によって、ページのレイアウトを説明しています。
オーブリング

1
@Orbling:意味の最も一般的な定義によると、ドメイン固有の宣言型プログラミング言語です。たとえば、en.wikipedia.org / wiki /…を参照してください。完全に一般的で賢明な定義によると、それらプログラミング言語です。そして、まったく異なるが、同じように賢明で一般的な定義によると、それらはプログラミング言語ではありません。両方のビューが正しいです。しかし、自分の意見を他の人の頭にぶつけるものは安全ではなく、HTMLの人たちよりも優れていると感じる必要があります。
レナートレゲブロ

8
「プログラム」という言葉には、一般的に同意されている定義された意味があります。HTMLでプログラムを作成することはできません。したがって、HTMLで何かを作成することは「プログラミング」ではありません。異論を唱える人は誰でも、彼らが彼らの議論で使用するまさにその言葉の意味をchanged意的に変えることができると主張している。
マシューリード

4
@Orbling:「私はHTMLの人たちと仕事をしています」は新しい「私の友人の1人は{ここに少数派グループを挿入}」ですか?
アノン。

2
@Lennart Regebro、プログラミング言語のすべての標準定義(Wikipeidaを含む)は、プログラミング言語がアルゴリズムを記述することができると言っています。HTMLとCSSでアルゴリズムをどのように記述できますか?
チャールズE.グラント

0

これは、HTMLとCSSに精通している必要があるほど複雑ですが、生成されたレポートの形式として最も適したプレゼンテーション言語であると思います。したがって、これらのことしかできない人はコーダーとは見なされません。一部のコーダーは、平均的なワードプロセッサがHTMLよりもテキストをスタイルするために多くのコマンド構文を使用したことを記憶するのに十分な長さの計算を行っていることに留意してください。

一部の人が「本物の」言語と呼ぶものは、何らかの方法でデータを処理してレポートを生成する言語です。または、ゲームを書くために使用できるもの。HTMLとCSSの内と外を知ることは価値のあるスキルですが、フロントエンドのJS、バックエンドのJava、PHP、Perl、Ruby、Python、C / C ++、またはC#の知識と組み合わせることははるかに重要です。

逆に、Webフロントエンドテクノロジを使用せずに「実際の」言語の1つだけを知っている人は、コーダーとしての柔軟性を非常に制限しています。


コンピューターで完全に実行および実行される言語を提案します。Cコードをデバッグし、CSSスタイルをデバッグしました。後者は前者よりも長く(長くはないにしても)かかることがあると確信できます(誰かがポインターで何をしたかによって、あなたが作業しようとしているスペックのどの部分を隠しているかによって異なります*&^ %$ @ブラウザーは見た目が間違っています)。HTMLだけではあまり意味がありませんが、CSSの完全な表現と相まって非常に興味深い場合があります。
ダニーステープル

2
CSSに対処し、開発者がそれを子供の遊びだと思ってマークアップすることほど悪いことはありません。
エリックReppen

0

論理的な「左脳」または創造的な「右脳」のピジョンホール/ステレオタイプは、多くの人々のスキルセットを正確に表します。私の経験では、「HTML / CSSはプログラミング言語ですか」とは、HTML / CSSが得意な人が他のプログラミングタスクも得意であるかどうかに関することです。

過去13年間にWeb開発を行ってきたほとんどのWebデザイナーは、実用的なHTMLとCSSを作成できましたが、より厳しいプログラミングの課題(最も単純なカットアンドJavaScriptを貼り付けました)。ホットショットプログラマーとデータベースデザイナーのほとんどは、HTML / CSSまたはプレゼンテーション全般で良い仕事をするために、視覚的なプレゼンテーションを十分に気にしません。ほとんどの場合、実際に試すことを拒否します。

HTMLとCSSが必要といくつかのプログラミングのスキル:実験、問題解決、慎重に検査、継承の理解を...しかし、彼らは設計スキルの少なくとも同数が必要です:色、線、間隔、バランスに対する感度を-同じのほとんど優れた写真を作成する視覚的な作文スキル。

HTML / CSSはレイアウトまたはプレゼンテーション言語であるため、データフロー図の最後にあります。他のコードは下流にありません。優れたAPI、サービス、またはデータベーススキーマを設計するために誰かが必要とする大規模な設計スキルは、HTMLおよびCSSでは使用されません。一般に、HTMLやCSSに関連する何かをモジュール化する必要はありません。もしあれば、それを行うのはグラフィックデザイナー次第ではありません。HTML / CSSで機能が作成されることはまれです。ドロップダウンメニューはおそらく最も一般的な例外ですが、コードを設計するのではなく、Webからレシピを切り取って貼り付けることで作成できます。

プログラマーが視覚的なデザインやレイアウトのスキルを持っていることや、デザイナーがプログラミングのスキルを持っていることは珍しいことではありませんが、不可能ではありません。これらの人々は、私たちのほとんどが抱えているギャップを埋めるのに役立つため、Webチームにとって特に価値があります。しかし、彼らはしばしばステレオタイプの対象となります。HTML/ CSSを実行できることは、「本物のプログラマー」には不可能であり、その逆も同様です。しかし、このスキルの組み合わせは、同じプログラマーがまともな船乗り、画家、料理人であること、または暇なときに練習する他のスキルを持つことほど不可能ではありません。

他の人が言ったように、この区別は雇用の際に最も焦点になります。クロスオーバーの才能を持つ人々はまれであるため、ほとんどの求人情報はいずれかのスキルセットをターゲットにする必要があります。プログラマーが「プログラミング言語」の下にHTML / CSSをリストすると、一般的なプログラミングタスクを達成できないか、プログラミングの定義が非常に狭い可能性があるという赤いフラグが立てられます。たぶん彼らはできるでしょう、それはただ質問を提起します。デザイナーがHTML / CSSをリストしている場合、ポートフォリオを見て、目的の視覚効果を作成する芸術的な能力があることを確認する必要があります。

HTML / CSSは、本物のプログラミング言語ではないため、彼らが代表する半球の境界線を越えることができない人々を破壊するよりも安全で社会的に受け入れられるため、繰り返し破壊される可能性があります。もちろん、一部の人々はその抑制を持たないかもしれません。私は実際に、「彼は[部門バックボーン機能をここに挿入]書いたのですか?彼はHTMLをやっただけだと思いましたか?」

いい質問です!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.