为什么HTML和CSS不是编程语言很重要?


158

这里的例子:

如果我对构建Web应用程序感兴趣,应该知道哪些语言?

是的,我了解HTML和CSS并不完整。是的,我知道它们是说明性语言,而不是命令性语言。但是,为什么人们在询问有关这些语言的问题时总是总是被这个学问(可能是显而易见的)事实所吸引呢?


32
当人们把它放在简历上时,它只会使我烦恼。更糟糕的是,他们将jQuery放在“语言体验:”下的JavaScript旁边。
Josh K 2010年

19
对我来说,这似乎很明显:如果我需要弄清楚如何聘用谁,或将谁分配给特定任务,我需要知道他们拥有什么技能。如果作业涉及实现算法,那么我不会将其提供给仅具有HTML / CSS背景的人。我不会指派只有后台编写命令行C程序的人来编写一堆必须在多个浏览器上工作的复杂网页。我不知道您是否一直在雇用或管理人员,但是您确实遇到了很多宣誓可以互换这些任务的人。
查尔斯·格兰特

8
数据仅仅是愚蠢的代码和代码仅仅是智能数据:stackoverflow.com/questions/871833/...
克里斯托弗Hammarström

14
人们无法理解OP的问题,用更直截了当的话来说就是:“为什么在讨论广义“语言”时某种花哨的人觉得有必要指出CSS不是一种编程语言。 ?首先,du。谢谢。任何人甚至只知道少量的愚蠢JavaScript技巧,都可以得到这一点。精通CSS对曾经在那里并掌握了CSS的程序员来说意味着什么吗?哦是的 是的,它确实。我不在乎我们是否正在为下一个火星探测器编程,这绝对是决胜局。
埃里克·雷彭

7
XSLT是在这种情况下考虑的一个有趣案例……
Dan Diplo

Answers:


300

真的有什么区别?

编程语言和这些其他语言之间的真正而重要的区别是:

HTML和CSS描述表示,而编程语言描述 功能

我打算说明为什么这种区别很重要,但是在这个问题上的脚步有时会放错地方。

一个真实的故事

我曾经花了几个月的时间使用“适当的”编程语言来开发复杂的绩效管理系统。它自动化了从其他各种系统收集数据的过程,对该数据执行了各种操作,然后将结果显示在一个简单的表中。

一旦投入使用,一位高级经理就看到了为类似业务编写的工具,并询问我们是否可以用他们的替代品代替我编写的内容。此外,他为我花了数周的时间开发解决方案而感到沮丧,因为这个新应用程序在几天之内就被编写出来了。

进一步的调查显示,经理的首选选项是所有陈述都没有实质内容:有很多颜色,图标和图形,但它们背后绝对没有逻辑。所有数据必须手动收集和处理。尽管界面漂亮,但该应用程序实际上是无用的。

我很高兴地说,有问题的经理被说服了,我的方法可以满足他的实际业务需求。

介绍的重要性

通常暗示HTML,CSS等方面的技能在某种程度上不如“真实”编程语言中的技能。这是一个严重的错误。

在我的故事中,高级经理认为设计对他来说非常重要,以至于他最初准备忽略对它有利的功能。现在,如果这是一起孤立的事件,我可能建议经理只是愚蠢的。但事实并非如此。我一次又一次地遇到了那些对华丽的图形和精致的小部件印象深刻的用户,但对原始的功能和我的技术成就印象深刻。我认为这里有几课要学习:

  • 人们根据他们了解的标准评估软件。他们通常理解好看和丑陋之间的区别,但很少欣赏技术上的细微差别。
  • 人们被外表迷住了。这可能不是一件好事,但这是我们必须忍受的现实。
  • 外观会影响人们对软件的感觉。人们对软件的感觉对他们而言很重要。确实,人们有时会比使功能更好的软件更喜欢使自己感觉良好的软件。确实,使用感觉良好的工具可能比使用技术上优越的工具更有效率。在这个程度上,我们的用户并没有被愚弄。他们实际上是在做出明智和周到的选择。
  • 作为程序员,我们在关注功能时经常忽略表示的作用。在某种程度上,这是正确的。但是,重要的是要认识到,我们的工作还有另一个方面对客户很重要。

因此,面向表示的语言(HTML,CSS)很重要。可以有效使用这些工具的人所增加的价值不应被低估。

真正的编程语言的重要性

正如OP所指出的,“真正的”编程语言是图灵完备的。作为一个适当的悲伤怪胎,我发现这令人着迷。这意味着,对于任何书面的TC语言程序,功能相当的程序可以以书面任何其他 TC语言。当然,这并不是说所有语言都是相同的。他们每个人都有自己的长处和短处,这使他们或多或少地适合于某些任务。但是,除了I / O,这意味着所有程序都可以用所有真正的编程语言编写。

(顺便说一句,重要的是TC。声明式与命令式在这里是一条红线。例如,SQL是声明式的,但由于它是TC,因此也是一种适当的编程语言。)

当然,对于诸如HTML或CSS这样的标记语言,情况并非如此。实际上,这些语言存在无法解决的全部问题。在哪里我可以用一种真正的编程语言编写任何我想编程的东西 -包括布局引擎-用非TC语言不可能实现相同的目的。

正如我的故事中强调的那样,HTML及其类似内容用于产生演示文稿。实际的编程语言用于产生功能。

为何程序员对此感到痴迷?

  1. 程序员花费大量时间,精力和金钱来发展自己的技能。人们自然会珍视他们投资的事物(“您的心就是您的金钱所在”)。
  2. 与UI设计师所获得的快速结果相比,程序员经常感到需要证明产生结果所花费的时间是合理的。为了做到这一点,他们需要区分两组的实际行为
  3. 因为雇主需要将合适的人选用于合适的工作。除非我们弄清(通常是技术上的)差异,否则经理很容易打错电话。
  4. 如上所述,因为存在实际根本的差异。

做书呆子总是合适的吗?

让我们面对现实吧,作为程序员,我们自然是个书呆子。它与领土。当非程序员无法理解我们所做的事情时,我们很多人被烧死并没有帮助。

不过,(老实说,这违背了我的本能),我认为我们不必在任何人忽视每一个细微差别的时候就叫他们出去

这里重要的是上下文观点

有人告诉我,从生物学家的角度来看,西红柿是一种水果。但是,当我在超市购买它们时,我会在蔬菜中寻找它们。为什么?因为在特定情况下技术区别并不重要。而且,这种区别实际上会妨碍它们的用处:例如,如果我足够傻,可以在水果沙拉中加入西红柿。

计算机语言也是如此。有时候,编程语言和其他语言之间的差异确实很重要。但是,经常地,将它们全部融合在一起,我们通常都能很好地进行有效沟通。对于由OP链接的问题,实际上什么语言是真正的编程语言而哪些语言不是真正的编程语言并不重要。指出区别并没有以任何方式推动讨论。值得庆幸的是,除了增加一点噪音(并成为进行有趣讨论的刺激!)之外,由OP链接的学步车也没有什么意义。但是,在最糟糕的情况下,修脚术会激起负面的情绪并破坏人际关系……至少根据我的妻子所说。
:-)

如何在程序员中处理学究

我的一位传教士朋友曾经发表过一次布道,题为:

这山值得死吗?

他指的是将军们对哪些战役值得进行战略评估的将军:这些收益是否值得付出代价?

  • 进行这种区分真的值得中断讨论流程吗?
  • 我的学步法是出于自大还是过去的伤害?
  • 我的评论是否重视别人以及我自己的技能?

当然,有时候需要加以区别。我的目标是,当我做出贡献时,它将为我们的集体努力增加价值。

毕竟,这是每个真正的程序员的工作。


4
我不认为SQL是图灵完备的,除非您在谈论T-SQL或PL / SQL。
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner:你是对的!感谢您接我。(不过,我要说的是,声明性语言可以是TC)
Kramii

1
很好的答案。作为一个Web开发人员,我一遍又一遍地看到,“浮华”的设计给客户留下的印象比提议的功能要深刻得多。尽管这可能会冒犯我们纯粹的程序员本能(功能应为王),但我们却忽略了这一风险。
Dan Diplo)

4
+1:Joel Spolsky有一篇有趣的博客文章,讨论了功能与浮华GUI的问题。特别是在没有适当功能时显示100%完成且非常浮华的GUI的危险。如果您还没有读过,那是一本好书。joelonsoftware.com/articles/fog0000000356.html
Leo

3
“与使用技术上优越的工具相比,使用舒适的工具可能会提高生产力” –正确,正确,正确!苹果公司以此为基础开展业务。不要误会我的意思,Mac也具有实质性,但是使某些人购买Mac机器的费用几乎是Linux或Windows机器的两倍,这是因为它看起来很酷,而且使用起来感觉很好。
GlenPeterson 2013年

116

告诉土木或机械工程师您学习过“软件工程”,他们会告诉您“软件工程”不是真正的工程。

告诉F-16飞行员您为了娱乐而乘坐塞斯纳斯,他会告诉您您不是真正的飞行员。

告诉医生你是脊医,他会告诉你...好吧,我们不要去那里:-)

我认为主要是人们不喜欢伪装者或不真正“有价值”的人渗透到他们的职业中。

现在,公平地说,很明显,HTML和CSS不是编程语言。它们不再是.docx格式是一种编程语言的编程语言,并且如果您只知道HTML和CSS肯定不准确,就声称您是一名程序员。但是我认为答复中的某些强烈含义可以归因于我上面所说的内容。

另外,在您链接的问题中,发问者将HTML和CSS称为“语言”,而不是“编程语言”。HTML是一种标记语言,而CSS也是一种语言(不过,我不知道您将CSS称为哪种“语言”?),所以我认为将他称为“语言”有点不公平。 “ ...


7
“不过,我不知道您将CSS称为哪种“语言”?-适时地使用“样式描述语言”。
ocodo 2010年

28
@ acidzombie24:“ HTML”中的“ L”代表什么?
院长哈丁2010年

8
如果它具有语法和语义,那么很难断言它不是语言。按照这些标准,HTML和CSS都是语言(英语,世界语,克林贡语以及可以说是UML)。但是,它们都不是“编程”语言。
扎克2010年

6
@Dean Harding-超文本标记乐高玩具?
VirtuosiMedia

4
CSS是用于描述样式(即,其域是视觉美学)的DSL(特定域语言)
Paul

9

对我而言,这并不重要。

但是,我认为对于HTML,CSS,XML等和Real Programming Languages™而言,对它们所做的区分就像是木材和油漆作为建筑材料之间的区别。您不能像使用木材那样使用油漆来构建事物,同样,也不能像使用RPL那样使用HTML进行编程

不过,对于某些对话,我同意你的看法,这可能是无关紧要的,因此令人讨厌而且令人讨厌。


1
XML是一个不好的例子,因为它比HTML / CSS更为通用-例如,XSLT既是XML又是图灵完备的。我认为XML实际上不只是语法,它还指定了标记的定义方式,而不是其含义。
蒂洪

@TikhonJelvis我想我们基本上是在说同样的话,但是这样做确实证明了我的意思。关于XML(可扩展标记语言)是“语言”还是“语法”,与我所讲的要点基本无关,因此……
Eric King

6

这可能不是“重要的”区别,因为可以说某些网站的html / css部分和编程部分所做的工作一样多。

但这一个重要的区别,因为任何人都不知道这意味着什么,因此在进行Web开发的团队中没有位置。

如果设计师认为HTML正在编程,请让他继续使用Adobe工具进行设计,并进行与打印相关的设计;但不要相信他会对网络应用说什么。

如果开发人员以为他的语言是图灵完备的,所以认为他高于设计师,就不要指望他与设计师合作良好,否则不要指望代码完成后可以“美化”。


@哈维尔:您对“编程语言”的定义是什么?
ChristofferHammarström,2010年

@ChristofferHammarström:如果要给出正式定义,我会选择图灵完备性。但非正式地说,我只是说一个程序可以响应某些输入。通常,如果没有运行时if ... then构造并且以某种方式可以重复执行以前未知的次数,那么我倾向于说这不是一种编程语言。当然,有一些边缘语言使定义变得复杂。但是HTML / CSS 远非如此。
哈维尔2010年

@哈维尔:您是否可以说规范的“ Hello World”是一个程序,因为它不需要任何输入?
ChristofferHammarström,2010年

@Javier:根据Wikipedia(en.wikipedia.org/wiki/…)上的讨论,Pixel Shader语言的早期版本不具备图灵完备性(没有“通用迭代功能”,即“以某种方式重复以前的内容-未知次数”)。这些语言仅由程序员在对流行游戏中的图形处理单元进行编程时使用。您还会说他们不是编程语言吗?
ChristofferHammarström,2010年

@Christoffer:Hello world需要输入:您必须启动它的执行。 但是,您对Pixel Shader的观察很有趣。
罗伯特·哈维

5

当您说“声明性的,不是命令性的”时,您就把它打在了头上。标记(无论是HTML,CSS还是其他任何东西)都可以描述事物。编程的全部意义在于的事情。

使用标记所需的技能与编程所需的技能完全不同。

通过编写标记解决的问题类型与通过编程解决的问题类型完全不同。


16
纯函数式编程语言本质上是声明性的。Linq,Python的列表理解,XAML,XSLT,SQL和Prolog也是如此。所有这些都是真正的编程语言和/或概念。尽管大多数编程语言都是必须的,但这不是定义功能。完全没有
康拉德·鲁道夫

@KonradRudolph-如果您认为纯函数式编程语言在任何意义上都是声明性的,那么您一定不能很好地理解它们。
乔纳森·

@jcast我完全有可能误解了某些东西。但是显然地,该领域的专家也是如此。作为一般参考,Wikipedia将(完全)功能编程语言分类为声明性语言。举一个具体的例子,拥有纯声明式语言博士学位的Paul Bone也遵循此定义。我很想知道您是出于什么原因对这个定义发脾气。
康拉德·鲁道夫

5

这对某些人来说很重要,因为表面上都不是火箭科学,但是由于它们在您实际关心的通常5到数十种不同的环境中以不同的方式实施,因此围绕它们存在大量奥秘。这种不可预测性和对工艺的关注使一定数量的技术专业人士感到恐惧,他们被无法量化的风险吓到了,甚至在获得学位后绝对不知道要学什么,因此更加恐惧。

如果有人问我知道什么语言,然后我把CSS扔了出去,他们说“那不是REAL语言”,我会问他们如何处理div在IE 5,IE 6-8和IE9 +中居中居中。然后,我们可以继续讨论圆角,alpha透明度问题,所有这些荒谬的表即布局参数背后的REAL罪魁祸首,这些参数才刚刚变得真正无关紧要,还有许多关于所说的uber编码器的主题,他们可能知道一个语言,并声称一到两个他由于十年前被迫上大学而上课,几乎没有功能素养。

它们肯定是“语言”。我不会称它们为“编程语言”。我很乐于描述用这些语言“编码”编写的过程。

但是,就我而言,任何能够熟练掌握CSS的人都具有chtzpa和职业道德,可以成为一名优秀的程序员,已经具有一些面向对象的思想背景,并且毫无疑问已经学会了思考他如何现在的写作可能会影响他未来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不是Y”的论点并不遵循“ X是一文不值”的说法。
马修(Matthew)

4
@Lennart Regebro @Robert Harvey:@Matthew Read的立场是这里谈话的核心-您将优越感等同于否认虚假。HTML / CSS 非常困难的,我雇的人谁可以做到这一点对我来说,因为我没有在附近足够好它,我缺乏的技能。这是一种技术设计技能,而不是编程
2010年

3
使“编程”一词如此广泛意味着使其几乎毫无意义。含义比那狭窄,您可能会有不同的看法,但事实证明语言意味着大多数人用它来表示。
马修(Matthew)阅读了2010年

3

编程语言是一个不太精确的术语,因为它是从业人员和非专业人士都使用的通用术语。从业者对该词的含义有些微妙的含义,而外行人士通常没有。通常,他们的定义是如果它有我不立即理解的有趣的单词/语法,而程序员使用它,那么它一定是一种编程语言。并非完全偏离标准,但我们可以同意它是不精确的。

声明性,命令性和图灵完备之类的词是更精确的术语,具有非常特定的含义。当您问诸如HTML / CSS为什么不是编程语言之类的问题时,您是在要求更精确地定义什么是编程语言。我们不是在ped脚,而是试图回答您的问题。当即使您谷歌搜索它们很难理解它们的含义时,它们是最好的术语吗?要看。您想要简短还是长久的答案。:-)

编程人员通常认为编程语言可以完全完成,但这意味着什么?这意味着该语言可以描述行为或做事方式。我们正式称其为逻辑。HTML / CSS可以描述在右上角有一个按钮,或者有一个包含4列5行的表格,前两行是黄色,而下一行是绿色文本,表格中的每个单元格都有5像素内容周围的空白。

HTML / CSS不能做的是表达单击按钮时发生的行为或逻辑。它不能说当我单击该按钮时从该表中获取值并将其加起来,然后将该值写入表底部的新行。描述行为大致等同于“翻车完成”,而不会过于学究。

更准确地说,图灵完备意味着您可以自己实现语言。那意味着我可以编写一个采用字符串的javascript的javascript程序,并且可以执行它(而不使用eval()函数)。实际上,我可以编写一个javascript程序,该程序可以采用用任何Turing完整语言编写的程序并对其进行评估。那就是图灵完成的意义。所有可以转换的语言在可以表达哪些程序方面都是等效的。如果您考虑一下,这将是非常惊人的启示。


图灵完备意味着该语言可以用于模拟图灵机(或者可以计算任何可计算图灵的函数)。
mipadi 2010年

3
@pipadi-一个非常正确和精确的定义,我会告诉您,但是有人问这样的问题时会说:“ WTF是图灵机吗?WTF是可计算图灵的功能?” 如果他们不了解Turing Complete,他们是否会了解Turing Machine或Turing可计算的功能?这就像在词典中查找“修辞学”一词,并说“属于,有关或关心修辞学”。这个定义并不能告诉您修辞实际上意味着什么,而只是指向您一个您不理解的词。
chubbsondubs 2010年

1

这是我的两分钱。HTML和CSS显然不是编程语言。因此,当我在某人的简历上的“编程语言”下看到HTML或CSS时,这只是告诉我该人不知道他在说什么。

除此之外,不,这并不重要。

顺便说一句,程序员通常倾向于学究。这只是工作带来的。


4
因此,在您的脑海中,没有人可以让所有人对此有所了解,因为他们不想浪费其他标记语言部分的空间吗?对我来说,这超出了实用性。
乔恩·霍普金斯

1
当我在“编程”下看到带有HTML / CSS的CV时,就+1了,我没有再读了。他要么不知道区别(所以他对我没用),或者希望我不知道区别(所以我不想和他一起工作)
哈维尔2010年

2
@乔恩·霍普金斯(Jon Hopkins):注重细节是程序员的必备素质。将HTML放在编程语言下并不是近似的,而是草率的。如果您申请程序员的工作,那将给人留下非常不好的第一印象。
Dima 2010年

1
@Dima:绝对。非正式是可以的,有时甚至是书面形式,对贸易的基本概念的不精确也是不可接受的。
哈维尔2010年

1
这是荒唐的。简历和访谈是当前我们行业中最棘手的部分之一。您永远不会知道是否知道差异的人是否仍将“ HTML”放在“编程语言”下,因为他们害怕某些HR无人机不会在“标记/设计/等”下注意到它并踢出简历。您至少应该调用它们或将它们引入。如果它们告诉您它们在“ HTML编程”,那么……这确实是一个危险信号。但是再想一想,您现在仅凭HTML 5就能完成什么工作!真的那么舒展吗?
Graham

0

没关系 这也是定义的问题。什么是编程语言?有些意味着它必须是图灵完备的。其他人则具有其他定义,这些定义使HTML成为一种编程语言。(在您的示例中,它们甚至没有被称为编程语言,而只是被称为语言)。

我的建议:试着忽略那些指出这些毫无意义甚至在很多方面甚至是错误主张的人。这只是语法纳粹主义的一种变体。从任何有意义的意义上讲,将HTML称为编程语言都是不正确的。


7
-1这是有意义的,因为HTML 不是一种编程语言,它没有这种东西的基本元素-它仅描述页面的布局,同样,关于技术制图的书也是编程语言。
2010年

1
@Orbling:根据最常见的定义,它们是特定于领域的声明性编程语言。参见例如:en.wikipedia.org/wiki/…因此,对不起,您失败了。根据完全通用和合理的定义,它们编程语言。并且根据完全不同但同样合理且通用的定义,它们不是编程语言。两种观点都是正确的。但是那些在别人的头上大打出手的人是不安全的,需要感觉比HTML的人优越。
Lennart Regebro

8
单词“程序”具有通常被同意的定义含义。您无法使用HTML编写程序,因此使用HTML编写内容不是“编程”。持不同观点的人争辩说,他们在论证中使用的词语可以任意改变其含义,在这种情况下,我会随意将其词语赋予任何含义。
马修(Matthew)

4
@Orbling:“我与HTML专家一起工作”是新的“我的一个朋友是{在这里插入少数群体吗?”?
Anon。

2
@Lennart Regebro,编程语言的每个标准定义(甚至在Wikipeida上都说)是一种编程语言可以描述一种算法。您如何用HTML和CSS描述算法?
查尔斯·格兰特

0

我认为可以归结为这一点-HTML和CSS虽然很复杂,需要一些技巧,但它们是表示语言,最适合作为生成报告的格式。因此,只能执行这些操作的人员不被视为编码人员。请记住,一些编码器的计算时间已经足够长,以至于让普通的文字处理器比HTML花费更多的命令语法来设置文本样式。

有人称其为“真实”语言是指以某种方式处理数据以生成报告的语言。或者可以用来编写游戏的东西。内外都知道HTML和CSS是一项宝贵的技能,但要与前端的JS知识和后端的Java,PHP,Perl,Ruby,Python,C / C ++或C#知识相结合,那就更重要了。

相反,只知道其中一种“真实”语言却没有任何Web前端技术的人在很大程度上限制了自己作为编码器的灵活性。


我建议一种完全由计算机执行并运行的语言。我已经调试了C代码,并调试了CSS样式。我可以肯定地说,后者可能花费比前者更长的时间(如果不长)(取决于某人用指针做了什么可怕的事情,以及您试图使之工作的规范的哪一部分晦涩难懂和*&^ %$ @浏览器似乎错误)。仅HTML本身并不能说太多,但是再加上CSS的完整表达,可能会很有趣。
丹尼·史泰普

2
没有比研究CSS和标记的开发人员更糟糕的了,他们认为这将是孩子们的游戏。
埃里克·雷彭

0

逻辑上的“左脑”或创造性的“右脑”信鸽/刻板印象准确地描述了许多人的技能。以我的经验,“ HTML / CSS是一种编程语言”更多地是关于擅长HTML / CSS的人是否也可以擅长其他编程任务。

在过去的13年中,与我一起从事Web开发工作的大多数Web设计师都能够创建有效的HTML和CSS,但无法应对更为苛刻的编程挑战(除了最简单的裁剪和-粘贴的JavaScript)。大多数热衷于编程的程序员和数据库设计人员对可视化表示的关注都不够,无法很好地使用HTML / CSS或一般的表示。大多数人实际上拒绝尝试。

HTML和CSS需要一些编程技能:实验,解决问题,仔细测试,对继承的理解...但是它们至少需要同等数量的设计技能:对颜色,线条,间距,平衡的敏感性-大部分都相同各种视觉构图技巧,可以拍出好照片。

由于HTML / CSS是一种布局或表示语言,因此它位于数据流程图的末尾。没有其他代码位于其下游。HTML和CSS并未使用某人为设计良好的API,服务或数据库架构所需的更高级别的设计技能。通常不需要模块化任何与HTML或CSS相关的东西,或者,如果有的话,图形设计者不可以这样做。很少有功能是使用HTML / CSS进行的。下拉菜单可能是最常见的例外,但是可以通过在网上剪切和粘贴配方而不是通过设计代码来完成。

对于程序员来说,具有一些视觉设计或布局技能,或者使设计师具有一些编程技能,这是不寻常的,但并非不可能。这些人在Web团队中特别有价值,因为他们帮助弥合了我们大多数人之间的鸿沟。但是它们通常受制于成见,对于“真正的程序员”来说,做HTML / CSS是不可能的,反之亦然。但是,与同一位程序员成为一个体面的水手,画家,厨师或在业余时间实践其他技能相比,这种技能组合并非没有可能。

正如其他人所说的,这种区别在招聘时最受关注。由于具有交叉人才的人很少,因此大多数工作职位必须针对一种或另一种技能。如果程序员在“ Programming Languages”(编程语言)下列出HTML / CSS,它会发出危险信号,表明他们无法完成一般的编程任务,或者他们的编程定义很狭窄。也许他们可以,这只是一个问题。如果设计人员列出了HTML / CSS,则您肯定希望查看他们的产品组合,以确保他们具有创造所需视觉效果的艺术能力。

HTML / CSS可能会一再被误认为不是真正的编程语言,因为它比丢弃无法跨越他们所代表的半球鸿沟的人更安全,也更能为社会所接受。当然,有些人可能没有这种抑制作用。我实际上和一位经理一起工作,他经常说:“他在[在这里插入了部门骨干功能]编写了代码?我以为他只是做HTML的?”

好问题!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.