ทำไมมันถึงสำคัญที่ HTML และ CSS ไม่ใช่ภาษาโปรแกรม?


158

ตัวอย่างที่นี่:

ฉันควรรู้ภาษาใดถ้าฉันสนใจสร้างเว็บแอปพลิเคชัน

ใช่ฉันเข้าใจว่า HTML และ CSS ไม่ทัวริงเสร็จสมบูรณ์ ใช่ฉันเข้าใจว่าพวกเขาเป็นภาษาที่ไม่เปิดเผย แต่ทำไมผู้คนถึงตบตาหัวด้วยความจริง (และชัดเจนชัดเจน) ข้อเท็จจริงนี้เมื่อพวกเขาถามคำถามเกี่ยวกับภาษาเหล่านี้?


32
มันทำให้ฉันรำคาญเมื่อมีคนใส่ไว้ในประวัติย่อของพวกเขา สิ่งที่แย่กว่านั้นก็คือเมื่อพวกเขาวาง jQuery ถัดจาก JavaScript ภายใต้ "Language Experience:"
Josh K

19
ดูเหมือนว่าฉันจะค่อนข้างชัดเจน: ถ้าฉันต้องคิดว่าใครจะจ้างหรือคนที่จะมอบหมายงานที่เฉพาะเจาะจงฉันต้องรู้ว่าพวกเขามีทักษะอะไร หากการมอบหมายเกี่ยวข้องกับการใช้อัลกอริทึมฉันจะไม่มอบมันให้กับคนที่มีพื้นหลังเป็น HTML / CSS เท่านั้น ฉันจะไม่มอบหมายใครสักคนที่มีเพียงโปรแกรมคอมมานด์ไลน์ไลน์แบ็คกราวนด์เพื่อเขียนหน้าเว็บที่ซับซ้อนจำนวนมากที่ต้องทำงานกับเบราว์เซอร์หลายตัว ฉันไม่รู้ว่าคุณอยู่ในตำแหน่งจ้างงานหรือจัดการคน แต่คุณทำงานกับคนจำนวนมากที่สาบานงานเหล่านี้จะใช้แทนกันได้
Charles E. Grant

8
ข้อมูลเป็นเพียงรหัสใบ้และรหัสเป็นเพียงข้อมูลอัจฉริยะ: stackoverflow.com/questions/871833/…
Christoffer Hammarström

14
ผู้คนล้มเหลวในการทำความเข้าใจคำถามของ OP ซึ่งในข้อตกลงทื่อมากขึ้น: "ทำไมมันจึงเป็น twit บางประเภทในการอภิปรายเกี่ยวกับ 'ภาษา' ทั่วไป 'รู้สึกจำเป็นที่จะต้องชี้ให้เห็นว่า CSS ไม่ใช่ภาษาโปรแกรม ?" ก่อนอื่นเลย ขอขอบคุณ. ใครก็ตามที่รู้แม้กระทั่งเทคนิคการจาวาสคริปต์ที่โง่เง่าเพียงหยิบมือเดียวก็สามารถทำได้ ความเชี่ยวชาญของ CSS หมายถึงบางสิ่งบางอย่างสำหรับโปรแกรมเมอร์ที่มีและเชี่ยวชาญหรือไม่? โอ้ใช่. ใช่แล้ว. ฉันไม่สนใจว่าเรากำลังเขียนโปรแกรม rover ของ Mars คนต่อไปหรือไม่มันคือ tie-breaker ที่แน่นอน
Erik Reppen

7
XSLT เป็นกรณีที่น่าสนใจที่จะคิดเกี่ยวกับในบริบทนี้ ...
แดน Diplo

คำตอบ:


300

ความแตกต่างคืออะไรจริงเหรอ?

ความแตกต่างที่แท้จริงและสำคัญระหว่างภาษาการเขียนโปรแกรมและภาษาอื่น ๆ คือ:

HTML และ CSS อธิบายงานนำเสนอส่วนภาษาการเขียนโปรแกรมอธิบายการ ทำงาน

ฉันตั้งใจจะแสดงให้เห็นว่าทำไมความแตกต่างนี้ถึงมีความสำคัญ

เรื่องจริง :

ฉันเคยใช้เวลาสองสามเดือนในการพัฒนาระบบการจัดการประสิทธิภาพที่ซับซ้อนโดยใช้ภาษาการเขียนโปรแกรม "เหมาะสม" มันเป็นกระบวนการในการรวบรวมข้อมูลจากระบบอื่น ๆ โดยอัตโนมัติทำการจัดการกับข้อมูลนั้นแล้วนำเสนอผลลัพธ์ในตารางอย่างง่าย

เมื่อมีการถ่ายทอดสดผู้จัดการอาวุโสเห็นเครื่องมือที่เขียนขึ้นสำหรับธุรกิจที่คล้ายกันและถามว่าเราสามารถแทนที่สิ่งที่ฉันเขียนโดยใช้ทางเลือกของพวกเขาได้หรือไม่ นอกจากนี้เขารู้สึกไม่สบายใจที่ฉันใช้เวลาหลายสัปดาห์ในการพัฒนาวิธีแก้ปัญหาของฉันซึ่งแอพใหม่นี้ถูกเขียนขึ้นในเวลาไม่กี่วัน

การตรวจสอบเพิ่มเติมพบว่าตัวเลือกที่ผู้จัดการต้องการคือการนำเสนอทั้งหมดโดยไม่มีเนื้อหา: มีสีและไอคอนและกราฟจำนวนมาก แต่ไม่มีเหตุผลใดๆ ข้อมูลทั้งหมดจะต้องรวบรวมและจัดการด้วยตนเอง แม้จะมีอินเตอร์เฟสที่สวยงามแอปพลิเคชันก็ไร้ประโยชน์

ฉันยินดีที่จะบอกว่าผู้จัดการที่มีปัญหานั้นได้ชักชวนว่าวิธีการของฉันเป็นสิ่งที่ตรงกับความต้องการทางธุรกิจที่แท้จริงของเขา

ความสำคัญของการนำเสนอ :

มักจะมีความหมายว่าทักษะใน HTML, CSS และอื่น ๆ จะด้อยกว่าทักษะในภาษาการเขียนโปรแกรม "ของจริง" นี่เป็นข้อผิดพลาดร้ายแรง

ในเรื่องของฉันผู้จัดการอาวุโสรู้สึกว่าการออกแบบมีความสำคัญต่อเขามากในตอนแรกที่เขาเตรียมที่จะมองข้ามการทำงานในความโปรดปราน ทีนี้ถ้านี่เป็นเหตุการณ์ที่เกิดขึ้นอย่างโดดเดี่ยวฉันอาจแนะนำว่าผู้จัดการโง่เง่า แต่มันไม่ใช่ ครั้งแล้วครั้งเล่าฉันได้พบกับผู้ใช้ที่ประทับใจกับกราฟิกที่ฉูดฉาดและวิดเจ็ตเสียงดัง แต่ไม่ประทับใจกับฟังก์ชันการทำงานแบบดิบและความสำเร็จทางเทคนิคของฉัน ฉันคิดว่ามีหลายบทเรียนให้เรียนที่นี่:

  • คนประเมินซอฟต์แวร์ตามเกณฑ์ที่พวกเขาเข้าใจ พวกเขามักเข้าใจความแตกต่างระหว่างหน้าตาดีและน่าเกลียด แต่ไม่ค่อยชื่นชมความแตกต่างทางเทคนิค
  • ผู้คนถูกหลอกโดยการปรากฏตัว นี่อาจไม่ใช่สิ่งที่ดี แต่เป็นความจริงที่เราต้องอยู่ด้วย
  • รูปลักษณ์ภายนอกมีอิทธิพลต่อความรู้สึกของผู้ใช้เกี่ยวกับซอฟต์แวร์ ความรู้สึกของผู้คนเกี่ยวกับซอฟต์แวร์เป็นสิ่งสำคัญสำหรับพวกเขา แน่นอนว่าบางครั้งผู้คนชอบซอฟต์แวร์ที่ทำให้พวกเขารู้สึกดีกับซอฟต์แวร์ที่เหนือชั้นกว่า ที่จริงแล้วพวกเขาอาจมีประสิทธิผลมากกว่าด้วยเครื่องมือที่ให้ความรู้สึกดีกว่าเครื่องมือที่ดีกว่าทางเทคนิค ในระดับนี้ผู้ใช้ของเราจะไม่ถูกหลอก พวกเขาเป็นตัวเลือกที่ฉลาดและรอบคอบ
  • ในฐานะโปรแกรมเมอร์เรามักละเลยบทบาทการนำเสนอเมื่อเรามุ่งเน้นไปที่ฟังก์ชั่น ในระดับหนึ่งสิ่งนี้ถูกต้องและเหมาะสม อย่างไรก็ตามสิ่งสำคัญคือต้องตระหนักว่ามีอีกมิติหนึ่งสำหรับงานของเราที่มีความสำคัญต่อลูกค้าของเรา

ดังนั้นภาษาที่เน้นการนำเสนอ (HTML, CSS) จึงมีความสำคัญ ไม่ควรประเมินค่าที่เพิ่มโดยผู้ที่สามารถใช้เครื่องมือเหล่านี้ได้อย่างมีประสิทธิภาพ

ความสำคัญของภาษาโปรแกรมจริง

ดังที่ OP ชี้ให้เห็นว่าภาษาการเขียนโปรแกรม "ของจริง" นั้นสมบูรณ์แบบสำหรับทัวริง ในฐานะที่เป็นบุคคลที่มีความเศร้าฉันก็พบว่าสิ่งนี้น่าหลงใหลอย่างไม่น่าเชื่อ หมายความว่าสำหรับโปรแกรมใด ๆ ที่เขียนด้วยภาษา TC โปรแกรมที่เทียบเท่ากับการใช้งานสามารถเขียนได้ในภาษา TC อื่น ๆ แน่นอนว่านี่ไม่ได้หมายความว่าทุกภาษาจะเหมือนกัน พวกเขาแต่ละคนมีจุดแข็งและจุดอ่อนที่ทำให้พวกเขามากหรือน้อยเหมาะสำหรับงานบางอย่าง อย่างไรก็ตาม I / O กันหมายความว่าโปรแกรมทั้งหมดสามารถเขียนด้วยภาษาโปรแกรมจริงทั้งหมด

(บังเอิญสิ่งที่สำคัญคือ TC. การประกาศเทียบกับความจำเป็นคือปลาเฮอริ่งแดงที่นี่ SQL ตัวอย่างเช่นเป็นการประกาศ แต่ยังเป็นภาษาการเขียนโปรแกรมที่เหมาะสมเพราะมันเป็น TC.)

แน่นอนเช่นเดียวกันไม่เป็นจริงสำหรับภาษามาร์กอัปเช่น HTML หรือ CSS อันที่จริงมีปัญหาทั้งชั้นเรียนที่ภาษาเหล่านี้ไม่สามารถแก้ไขได้ ที่ฉันสามารถเขียนโปรแกรมอะไรก็ได้ที่ฉันต้องการในภาษาการเขียนโปรแกรมจริง - รวมถึงเอ็นจิ้นเลย์เอาต์ - มันเป็นไปไม่ได้ที่จะบรรลุสิ่งเดียวกันกับภาษาที่ไม่ใช่ TC

ไฮไลต์ในเรื่องราวของฉัน HTML และ ilk ของมันถูกใช้เพื่อสร้างงานนำเสนอ ภาษาการเขียนโปรแกรมจริงใช้ในการสร้างฟังก์ชั่น

ทำไมโปรแกรมเมอร์ถึงอวดทุกอย่าง?

  1. โปรแกรมเมอร์ใช้เวลาความพยายามและเงินในการพัฒนาทักษะ ผู้คนให้ความสำคัญกับสิ่งที่พวกเขาลงทุน ("หัวใจของคุณคือที่ที่เงินของคุณ")
  2. โปรแกรมเมอร์มักรู้สึกว่าจำเป็นต้องประเมินระยะเวลาที่ใช้ในการสร้างผลลัพธ์เมื่อเปรียบเทียบกับผลลัพธ์ที่รวดเร็วโดยนักออกแบบ UI เพื่อที่จะทำเช่นนี้พวกเขาต้องการที่จะดึงความแตกต่างระหว่างสิ่งที่ทั้งสองกลุ่มจริงทำ
  3. เพราะนายจ้างต้องใช้คนที่เหมาะสมกับงานที่ถูกต้อง เว้นแต่เราจะชี้แจงความแตกต่าง (บ่อยครั้งทางเทคนิค) ผู้จัดการโทรออกผิดได้อย่างง่ายดาย
  4. เพราะมีความแตกต่างที่แท้จริงและพื้นฐานดังที่อธิบายไว้ข้างต้น

มันเหมาะสมที่จะเป็นคนอวดดีเสมอหรือไม่?

ปล่อยให้หน้ามันเป็นโปรแกรมเมอร์เราเป็นจำนวนมากอวดความรู้ตามธรรมชาติ มันไปกับดินแดน มันไม่ได้ช่วยให้พวกเราหลายคนถูกไฟไหม้เมื่อผู้ที่ไม่ใช่โปรแกรมเมอร์ไม่เข้าใจสิ่งที่เราทำ

อย่างไรก็ตาม (และจะซื่อสัตย์นี้ไปกับสัญชาตญาณธรรมชาติของฉัน) ผมไม่คิดว่าเราจำเป็นต้องเรียกคนออกมาเมื่อใดก็ตามที่พวกเขาลื่นกว่าทุกความแตกต่างเล็ก ๆ น้อย ๆ

สิ่งที่สำคัญที่นี่มีบริบท และมุมมอง

ฉันบอกว่าจากมุมมองของนักชีววิทยามะเขือเทศเป็นผลไม้ แต่เมื่อฉันซื้อพวกมันในซุปเปอร์มาร์เก็ตฉันจะมองหาพวกเขาท่ามกลางผักต่างๆ ทำไม? เนื่องจากความแตกต่างทางเทคนิคไม่สำคัญในบริบทเฉพาะนั้น ยิ่งไปกว่านั้นความแตกต่างจะได้รับในทางที่เป็นประโยชน์ของพวกเขา: ถ้าฉันบ้าพอที่จะรวมมะเขือเทศในสลัดผลไม้

มันเหมือนกันกับภาษาคอมพิวเตอร์ มีหลายครั้งที่ความแตกต่างระหว่างการเขียนโปรแกรมภาษาและภาษาอื่น ๆมันไม่สำคัญ อย่างไรก็ตามบ่อยครั้งที่เราทุกคนสามารถสื่อสารได้อย่างมีประสิทธิภาพอย่างสมบูรณ์แบบเมื่อรวมกันเข้าด้วยกัน ในกรณีของคำถามที่เชื่อมโยงโดย OP มันไม่สำคัญว่าภาษาใดเป็นภาษาการเขียนโปรแกรมจริงและไม่ใช่ การชี้ให้เห็นความแตกต่างไม่ได้ทำให้การสนทนาก้าวหน้าไปในทางใดทางหนึ่ง โชคดีที่นอกเหนือจากการเพิ่มเสียงเล็ก ๆ น้อย ๆ (และกลายเป็นตัวกระตุ้นสำหรับการสนทนาที่น่าสนใจ!) คนอวดที่เชื่อมโยงโดย OP มีผลเพียงเล็กน้อย อย่างไรก็ตามที่เลวร้ายที่สุดมันคนอวดรู้สามารถกระตุ้นความรู้สึกเชิงลบและทำลายความสัมพันธ์ ... อย่างน้อยตามภรรยาของฉัน
:-)

วิธีจัดการกับคนเดินถนนในหมู่โปรแกรมเมอร์

เพื่อนนักเทศน์ของฉันเคยส่งคำเทศนาเรื่อง:

นี่เป็นเนินเขาที่กำลังจะตายหรือไม่?

เขาหมายถึงนายพลผู้ทำการประเมินเชิงกลยุทธ์ว่าการต่อสู้ใดที่ควรค่าแก่การต่อสู้: กำไรจะคุ้มกับต้นทุนหรือไม่?

  • มันคุ้มค่าที่จะขัดจังหวะการอภิปรายเพื่อทำให้ความแตกต่างนี้เกิดขึ้นจริงหรือ
  • pedantry ของฉันมีต้นกำเนิดมาจากความเย่อหยิ่งหรือจากความเจ็บปวดในอดีตหรือไม่?
  • ความคิดเห็นของฉันให้ความสำคัญกับทักษะของผู้อื่นเช่นเดียวกับฉันหรือไม่?

แน่นอนว่ามีบางครั้งที่ต้องแยกแยะ เป้าหมายของฉันคือเมื่อฉันบริจาคเงินจะเพิ่มมูลค่าให้กับความพยายามร่วมกันของเรา

นั่นคืองานของโปรแกรมเมอร์จริงทุกคน


4
ฉันไม่คิดว่า SQL เป็นทัวริงสมบูรณ์เว้นแต่ว่าคุณกำลังพูดถึง T-SQL หรือ PL / SQL
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner: คุณพูดถูก! ขอบคุณที่มารับเรื่องนี้ (อย่างไรก็ตามจุดที่ฉันกำลังยืน - ภาษาที่สามารถประกาศได้ TC)
Kramii

1
คำตอบที่ดีมาก ในฐานะนักพัฒนาเว็บฉันได้เห็นสถานการณ์ซ้ำแล้วซ้ำอีกที่ลูกค้าประทับใจมากยิ่งขึ้นด้วยการออกแบบ "ฉูดฉาด" มากกว่าฟังก์ชั่นที่เสนอ ในขณะที่สิ่งนี้อาจทำให้เกิดความขุ่นเคืองสัญชาตญาณของนักเขียนโปรแกรมที่พิถีพิถัน (ฟังก์ชั่นนั้นควรเป็นราชา) มันเป็นสิ่งที่เรามองข้ามในอันตราย
Dan Diplo

4
+1: Joel Spolsky มีบล็อกโพสต์ที่น่าสนใจซึ่งมีปัญหากับฟังก์ชั่นเทียบกับ flashy GUI โดยเฉพาะอย่างยิ่งอันตรายจากการแสดง GUI 100% ที่เสร็จสิ้นและฉูดฉาดมากเมื่อไม่มีฟังก์ชั่นการใช้งาน การอ่านที่ดีถ้าคุณไม่ได้อ่าน joelonsoftware.com/articles/fog0000000356.html
Leo

3
"พวกเขาอาจมีประสิทธิผลมากกว่าด้วยเครื่องมือที่ให้ความรู้สึกดีกว่าเครื่องมือที่ใช้เทคนิคดีกว่า" - จริงจริงจริง! Apple ได้สร้างธุรกิจของพวกเขาในเรื่องนี้ ไม่ได้รับฉันผิด, Mac มีสารเกินไป แต่สิ่งที่ได้ทำบางคนจ่ายเงินเกือบสองเท่าสำหรับเครื่อง Mac เป็นลินุกซ์หรือ Windows หนึ่งก็คือว่ามันมีลักษณะเย็นและมันให้ความรู้สึกที่ดีที่จะใช้
GlenPeterson

116

บอกวิศวกรโยธาหรือเครื่องกลว่าคุณเรียน "วิศวกรรมซอฟต์แวร์" แล้วพวกเขาจะบอกคุณว่า "วิศวกรรมซอฟต์แวร์" ไม่ใช่วิศวกรรมจริง

บอกนักบิน F-16 ว่าคุณบินเซสนาสเพื่อความสนุกและเขาจะบอกคุณว่าคุณไม่ใช่นักบินจริง

บอกแพทย์ว่าคุณเป็นหมอนวดและเขาจะบอกคุณ ... เอาล่ะอย่าไปที่นั่น :-)

ฉันคิดว่าคนส่วนใหญ่ไม่ชอบความคิดที่ว่าอาชีพของพวกเขาถูกแทรกซึมโดยผู้อ้างสิทธิหรือผู้ที่ไม่ "มีค่า" อย่างแท้จริง

ตอนนี้เพื่อความยุติธรรมมันค่อนข้างชัดเจนว่า HTML และ CSS ไม่ใช่ภาษาโปรแกรม พวกเขาไม่มีภาษาโปรแกรมอีกต่อไปที่รูปแบบ. docx เป็นภาษาโปรแกรมและเพื่ออ้างว่าคุณเป็นโปรแกรมเมอร์หากสิ่งที่คุณรู้คือ HTML และ CSS นั้นไม่ถูกต้องอย่างแน่นอน แต่ฉันคิดว่าความโหดร้ายบางอย่างในการตอบกลับสามารถนำมาประกอบกับสิ่งที่ฉันพูดไว้ข้างต้น

นอกจากนี้ในคำถามที่คุณเชื่อมโยงผู้ถามที่เรียกว่า HTML และ CSS เป็น "ภาษา" ไม่ใช่ "ภาษาการเขียนโปรแกรม" HTML เป็นภาษามาร์กอัปและ CSS ก็เป็นภาษาด้วย (ฉันไม่รู้ว่า "ชนิด" ของภาษาที่คุณเรียกว่า CSS เป็นอย่างไร) ดังนั้นฉันคิดว่ามันค่อนข้างไม่ยุติธรรมที่จะเรียกเขาว่า "ภาษา" " ...


7
"ฉันไม่รู้ภาษา" ชนิด "ที่คุณเรียกว่า CSS ใช่ไหม" - ที่ "ภาษาคำอธิบายลักษณะ" ที่หยิกจะทำมัน
ocodo

28
@ acidzombie24: "L" ใน "HTML" หมายถึงอะไร
Dean Harding

8
หากมีไวยากรณ์และซีแมนทิกส์ยากที่จะอ้างว่าไม่ใช่ภาษา HTML และ CSS เป็นทั้งสองภาษาตามเกณฑ์เหล่านี้ (เช่นภาษาอังกฤษ, ภาษา, คลิงออนและ UML เนื้อหา) ไม่มีพวกเขาเป็นภาษา "การเขียนโปรแกรม"
ซัค

6
@Dean Harding - Hyper Text Markup Legos?
VirtuosiMedia

4
CSS เป็น DSL (Domain Specific Language) สำหรับอธิบายสไตล์ (เช่นโดเมนคือสุนทรียภาพของภาพ)
Paul

9

มันไม่สำคัญสำหรับฉันมากนัก

แต่ฉันคิดว่าสำหรับคนที่ทำมันความแตกต่างระหว่าง HTML, CSS, XML, ฯลฯ และReal Programming Languages ​​™นั้นเหมือนกับความแตกต่างระหว่างไม้และสีเป็นวัสดุก่อสร้าง คุณไม่สามารถสร้างสิ่งต่าง ๆ ด้วยการระบายสีเช่นเดียวกับที่ทำด้วยไม้และในทำนองเดียวกันคุณไม่สามารถเขียนโปรแกรมด้วย HTML อย่างที่คุณสามารถทำได้ด้วย RPL

ฉันขอให้คุณแม้ว่าสำหรับการสนทนาบางอย่างการทำให้ความแตกต่างดังกล่าวไม่เกี่ยวข้องดังนั้นจึงมีความคล่องแคล่วและน่ารำคาญ


1
XML เป็นตัวอย่างที่ไม่ดีเนื่องจากเป็นเรื่องทั่วไปมากกว่า HTML / CSS - XSLT เป็นทั้ง XML และทัวริงสมบูรณ์ ฉันคิดว่า XML ไม่ได้เป็นภาษาเดียวกับวากยสัมพันธ์เพียงอย่างเดียว - มันระบุวิธีการกำหนดโทเค็น แต่ไม่ใช่สิ่งที่พวกเขาหมายถึง
Tikhon Jelvis

@TikhonJelvis ฉันคิดว่าโดยพื้นฐานแล้วเรากำลังพูดในสิ่งเดียวกัน แต่ในขณะที่ทำเช่นนั้นคุณกำลังพิสูจน์จุดของฉัน การแยกขนเป็นไปได้ว่า XML (eXtensible Markup Language) เป็น "ภาษา" หรือ "ไวยากรณ์" ส่วนใหญ่ไม่เกี่ยวข้องกับประเด็นในขณะที่ฉันกำลังทำอยู่และ ...
Eric King

6

มันอาจไม่ใช่ความแตกต่างที่ "สำคัญ" เนื่องจากมีเนื้อหามากพอที่จะทำงานในส่วน html / css ของบางเว็บไซต์เช่นเดียวกับในส่วนการเขียนโปรแกรม

แต่มันเป็นความแตกต่างที่สำคัญเนื่องจากทุกคนที่ไม่รู้ว่ามันหมายถึงอะไรไม่มีทีมในการพัฒนาเว็บไซต์

หากนักออกแบบเชื่อว่า HTML คือการเขียนโปรแกรมให้เขาออกแบบด้วยเครื่องมือของ Adobe และออกแบบที่เกี่ยวข้องกับการพิมพ์ แต่อย่าเชื่อสิ่งที่เขาพูดเกี่ยวกับเว็บแอป

หากนักพัฒนาคิดว่าเขาเป็นนักออกแบบที่เหนือกว่าเพราะภาษา 'เขา' นั้นสมบูรณ์แบบทัวริงอย่าคาดหวังว่าเขาจะทำงานได้ดีกับนักออกแบบหรือรหัสของเขาสามารถ 'prettified' ได้


@ จาเวียร์: นิยามของ "ภาษาโปรแกรม" คืออะไร?
Christoffer Hammarström

@Christoffer Hammarström: ถ้ากดเพื่อให้ความหมายอย่างเป็นทางการฉันจะไปกับทัวริง - สมบูรณ์; แต่อย่างไม่เป็นทางการฉันแค่บอกว่าโปรแกรมทำสิ่งต่าง ๆ เพื่อตอบสนองต่อการป้อนข้อมูลบางอย่าง โดยปกติหากไม่มีการสร้างรันไทม์if ... thenและวิธีการทำซ้ำสิ่งต่าง ๆ จำนวนครั้งที่ไม่รู้จักก่อนหน้านี้ฉันมักจะบอกว่ามันไม่ใช่ภาษาโปรแกรม แน่นอนว่ามีบางภาษาที่ซับซ้อนนิยาม; แต่ HTML / CSS นั้นห่างไกลจากสิ่งนั้น
Javier

@ จาเวียร์: คุณจะบอกว่าเป็นที่ยอมรับ "Hello World" เป็นโปรแกรมที่กำหนดว่าจะไม่มีการป้อนข้อมูล?
Christoffer Hammarström

@ จาเวียร์: ตามการอภิปรายใน Wikipedia ( en.wikipedia.org/wiki/ ...... ) ภาษา Pixel Shader รุ่นแรก ๆ นั้นไม่ได้รับการทำให้ทัวริงสมบูรณ์ ไม่ทราบจำนวนครั้ง ") เหล่านี้เป็นภาษาที่ใช้โดยโปรแกรมเมอร์ในการเขียนโปรแกรมหน่วยประมวลผลกราฟิกในเกมยอดนิยม คุณจะยังบอกว่าพวกเขาไม่ใช่ภาษาโปรแกรม?
Christoffer Hammarström

@Christoffer: สวัสดีชาวโลกต้องการอินพุต: คุณต้องเริ่มต้นการดำเนินการ การสังเกตของคุณเกี่ยวกับ Pixel Shader นั้นน่าสนใจ
Robert Harvey

5

คุณตีมันบนหัวเมื่อคุณพูดว่า "ประกาศไม่จำเป็นต้อง" มาร์กอัป (ไม่ว่าจะเป็น HTML, CSS หรืออะไรก็ตาม) จะอธิบายสิ่งต่าง ๆ จุดทั้งหมดของการเขียนโปรแกรมคือการทำสิ่งต่าง ๆ

ชุดทักษะที่จำเป็นต้องใช้มาร์กอัปนั้นแตกต่างจากชุดทักษะที่จำเป็นสำหรับโปรแกรม

ประเภทของปัญหาที่แก้ไขได้ด้วยการเขียนมาร์กอัปแตกต่างจากประเภทของปัญหาที่แก้ไขโดยการเขียนโปรแกรม


16
ฟังก์ชั่นการเขียนโปรแกรมภาษาบริสุทธิ์โดยการประกาศธรรมชาติของพวกเขามาก ดังนั้น Linq, Python list comprehension, XAML, XSLT, SQL และ Prolog ทั้งหมดนี้เป็นภาษาการเขียนโปรแกรมโดยสุจริตและ / หรือแนวคิด ในขณะที่ภาษาการเขียนโปรแกรมส่วนใหญ่มีความจำเป็น แต่นี่ไม่ใช่คุณสมบัติที่กำหนด เลย
Konrad Rudolph

@ KonradRudolph - หากคุณคิดว่าภาษาการเขียนโปรแกรมที่ใช้งานได้จริงล้วนมีความหมายอย่างชัดเจนคุณจะต้องไม่เข้าใจภาษาเหล่านั้นเป็นอย่างดี
Jonathan Cast

@jcast เป็นไปได้ทั้งหมดที่ฉันเข้าใจผิดบางอย่าง แต่แล้วผู้เชี่ยวชาญในสาขาก็เห็นได้ชัด สำหรับการอ้างอิงทั่วไปวิกิพีเดียจะจำแนกภาษาการเขียนโปรแกรมที่ใช้งานได้จริง ตัวอย่างที่เฉพาะเจาะจงคือ Paul Bone ผู้มีปริญญาเอกสำหรับการทำงานกับภาษาที่มีการประกาศอย่างบริสุทธิ์และก็เป็นไปตามคำจำกัดความนี้เช่นกัน ฉันอยากรู้อยากเห็นว่าคุณทำผิดอะไรในคำจำกัดความ
Konrad Rudolph

5

มันมีความสำคัญกับบางคนเพราะไม่มีวิทยาศาสตร์จรวดบนพื้นผิว แต่มีอาร์คาน่ามากมายรอบตัวพวกเขาเนื่องจากพวกเขาใช้งานที่แตกต่างกันโดยทั่วไปในสภาพแวดล้อมที่แตกต่างกัน 5 ถึงสิบที่คุณสนใจ การคาดเดาไม่ได้และการใส่ใจในงานฝีมือนั้นทำให้ผู้เชี่ยวชาญด้านเทคโนโลยีหลายคนกลัวความเสี่ยงที่ไม่อาจคาดการณ์ได้และยิ่งทำให้เกิดความกลัวโดยเรียนรู้อะไรมากไปกว่าพวกเขาต้องได้รับปริญญา

ถ้ามีคนถามฉันว่าฉันรู้ภาษาอะไรและฉันก็โยน CSS ออกจากที่นั่นและพวกเขาก็พูดว่า "แต่นั่นไม่ใช่ภาษาที่แท้จริง" ฉันจะถามพวกเขาว่าพวกเขาจะจัดการกับ div ในแนวตั้งตรงกลางใน IE 5, IEs 6-8 และ IE9 + ได้อย่างไร จากนั้นเราสามารถย้ายไปที่มุมโค้งมนปัญหาความโปร่งใสอัลฟ่าผู้กระทำผิดจริงที่อยู่เบื้องหลังการโต้แย้งตาราง - เป็น - เลย์เอาต์ที่ไร้สาระเหล่านี้ซึ่งเพิ่งจะเริ่มกลายเป็นเรื่องที่ไม่เกี่ยวข้องอย่างแท้จริงและอีกหลายสิบหัวข้อ ภาษาและอ้างว่าหนึ่งหรือสองคนที่เขาแทบจะไม่รู้หนังสือเนื่องจากเรียนเขาถูกบังคับให้เข้าเรียนในวิทยาลัยเมื่อ 10 ปีที่แล้ว

พวกเขาเป็น 'ภาษา' แน่นอน ฉันจะไม่เรียกพวกเขาว่า 'ภาษาการเขียนโปรแกรม' ฉันรู้สึกสบายใจที่จะอธิบายขั้นตอนการเขียนใน 'การเข้ารหัส' ภาษาเหล่านี้

อย่างไรก็ตามเท่าที่ฉันกังวลใครก็ตามที่สามารถจัดการ CSS มาสเตอร์ระดับแกรนด์มี chutzpa และจรรยาบรรณในการทำงานเพื่อเป็นโปรแกรมเมอร์ที่ยอดเยี่ยมมีภูมิหลังในการคิดเชิงวัตถุอยู่แล้วและไม่ต้องสงสัยเลยว่าได้เรียนรู้วิธีการที่เขา ตอนนี้เขียนอาจส่งผลกระทบต่อการทำงานของเขา 25 โครงการในอนาคต


2
+1 ฉันไม่รู้ว่ากี่ครั้งที่ฉันได้ยิน "โปรแกรมเมอร์" วาง HTML / CSS ลงอย่างง่ายๆและไม่ใช่โปรแกรมจริง จากนั้นเมื่อพวกเขาไม่สามารถคิดได้ว่าเหตุใดรายการสัญลักษณ์แสดงหัวข้อย่อยของพวกเขาเพียงอย่างถูกต้องใน Firefox พวกเขาโยนมือของพวกเขาและประกาศว่าทั้งเว็บไม่เหมาะสำหรับซอฟต์แวร์ที่ทันสมัย ​​:(
Graham

3

HTML และ CSS ไม่ใช่ภาษาโปรแกรม ได้รับมากกว่านั้น.

อย่างไรก็ตาม: JavaScript เป็นภาษาการเขียนโปรแกรม เครื่องเป็นเบราว์เซอร์ PHP เป็นภาษาโปรแกรม เครื่องเป็นอุปกรณ์เสมือนในเซิร์ฟเวอร์

ดังนั้นหากคุณใช้ HTML และ CSS เพียงอย่างเดียวคุณจะไม่ทำการเขียนโปรแกรมใด ๆ (แม้ว่าคุณจะทำวิศวกรรมอยู่ก็ตาม)

แต่ถ้าคุณใช้ JavaScript, PHP หรือภาษาสคริปต์อื่น คุณกำลังเขียนโปรแกรมอยู่

สำหรับภาษาการเขียนโปรแกรมจริง หากคุณกำลังทำงานบนเครื่อง (ของจริงหรือเสมือน) และใช้อัลกอริธึมของคุณเองเพื่อบอกให้เครื่องทำสิ่งต่าง ๆ จากนั้นคุณกำลังใช้ภาษาการเขียนโปรแกรมจริง


6
ดังนั้นฉันเดาว่าเราสามารถแจกจ่ายด้วย HTML, CSS และ SQL ได้เพราะพวกเขาไม่ใช่ภาษาโปรแกรมจริง ในความเป็นจริงเราอาจแจกจ่าย IDE ด้วยเช่นกันเนื่องจากโปรแกรมเมอร์คนใดก็ตามที่มีค่าเกลือของเขาก็สามารถทำได้ด้วยเครื่องมือแก้ไขบรรทัดคำสั่ง
Robert Harvey

4
ฉันไม่ได้ลงคะแนนคำตอบนี้เป็นการส่วนตัว (ฉันคิดว่า -6 ก็พอแล้ว!) แต่ฉันเดาว่าเหตุผลสำหรับ downvotes คือสิ่งนี้ไม่ได้ตอบคำถามจริงๆ คำถามไม่ใช่ "เป็นภาษาการเขียนโปรแกรม HTML & CSS?" คำถามคือ "ทำไมจึงเป็นเรื่องสำคัญ"
Dean Harding

6
@ Robert ที่กว้างขวางอย่างสมบูรณ์ "X ไม่มีประโยชน์" ไม่ได้ตามมาจากการโต้แย้งของ Ricardo ว่า "X ไม่ใช่ Y"
แมทธิวอ่าน

4
@Lennart Regebro @Robert Harvey: @Matthew Read ตำแหน่งของ nubbin ของบทสนทนาที่นี่ - คุณกำลังรู้สึกถึงความเหนือกว่าด้วยการปฏิเสธความเท็จ HTML / CSS นั้นยากมากฉันจ้างคนที่สามารถทำได้สำหรับฉันเพราะฉันไม่มีที่ไหนใกล้พอที่จะเก่งฉันขาดทักษะ มันเป็นทักษะการออกแบบทางเทคนิคก็ไม่ได้เขียนโปรแกรม
Orbling

3
การทำให้คำว่า "การเขียนโปรแกรม" ในวงกว้างนั้นคือการทำให้มันแทบไม่มีความหมาย ความหมายนั้นแคบกว่าและคุณอาจมีความคิดเห็นที่แตกต่างกัน แต่ปรากฎว่าภาษานั้นหมายถึงสิ่งที่คนส่วนใหญ่ใช้ในการสื่อความหมาย
Matthew อ่าน

3

ภาษาการเขียนโปรแกรมเป็นคำศัพท์ที่ไม่แน่นอนเพราะเป็นคำศัพท์ทั่วไปที่ผู้ฝึกปฏิบัติและบุคคลทั่วไปใช้เช่นกัน ผู้ประกอบการมีความหมายที่เหมาะสมยิ่งของคำนั้น ๆ ที่คนทั่วไปมักไม่ทำ โดยปกติแล้วคำจำกัดความของพวกเขาคือถ้ามันมีคำ / ไวยากรณ์ที่ตลกที่ฉันไม่เข้าใจในทันทีและโปรแกรมเมอร์ใช้มันดังนั้นมันต้องเป็นภาษาการเขียนโปรแกรม ไม่ปิดเครื่องหมายทั้งหมด แต่เราสามารถยอมรับได้ว่ามันไม่ถูกต้อง

คำเช่นการประกาศคำสั่งและการทำให้สมบูรณ์นั้นเป็นคำที่แม่นยำยิ่งขึ้นพร้อมความหมายที่เฉพาะเจาะจงมาก เมื่อคุณถามคำถามว่าทำไม HTML / CSS ไม่ใช่ภาษาการเขียนโปรแกรมคุณจึงขอคำจำกัดความที่แม่นยำยิ่งขึ้นว่าภาษาการเขียนโปรแกรมคืออะไร เราไม่ได้อวดรู้ แต่พยายามตอบคำถามของคุณ พวกเขาเป็นคำที่ดีที่สุดที่จะใช้เมื่อแม้ว่าคุณ google พวกเขามันยากที่จะเข้าใจสิ่งที่พวกเขาหมายถึงอะไร? ขึ้นอยู่กับ คุณต้องการคำตอบสั้นหรือยาว :-)

โดยทั่วไปแล้วภาษาการเขียนโปรแกรมคิดว่าการเขียนโปรแกรมเสร็จสมบูรณ์แล้ว แต่สิ่งนี้หมายความว่าอย่างไร มันหมายถึงภาษาที่สามารถอธิบายพฤติกรรมหรือวิธีการทำสิ่งต่าง ๆ เราเรียกมันอย่างเป็นทางการว่าตรรกะ HTML / CSS สามารถอธิบายว่ามีปุ่มอยู่ที่มุมขวาบนหรือมีตารางที่มี 4 คอลัมน์ 5 แถวสองแถวแรกเป็นสีเหลืองและแถวด้านล่างมีข้อความสีเขียวและแต่ละเซลล์ในตารางมี 5 พิกเซล ของพื้นที่ว่างรอบเนื้อหา

สิ่งที่ HTML / CSS ไม่สามารถทำได้คือแสดงพฤติกรรมหรือตรรกะของสิ่งที่เกิดขึ้นเมื่อคุณคลิกปุ่ม ไม่สามารถบอกได้ว่าเมื่อฉันคลิกที่ปุ่มรับค่าจากตารางนั้นและเพิ่มขึ้นและเขียนค่าลงในแถวใหม่ที่ด้านล่างของตาราง การอธิบายพฤติกรรมนั้นเทียบเท่ากับการกลึงเสร็จสมบูรณ์โดยไม่ได้รับความรู้มากเกินไป

ทัวริงที่แม่นยำยิ่งขึ้นหมายความว่าคุณสามารถใช้ภาษาในตัวเองได้ นั่นหมายความว่าฉันสามารถเขียนโปรแกรมจาวาสคริปต์ที่ใช้สตริงของจาวาสคริปต์และสามารถใช้งานมัน (และไม่ใช้ฟังก์ชัน eval ()) ที่จริงแล้วฉันสามารถเขียนโปรแกรมจาวาสคริปต์ที่สามารถใช้โปรแกรมที่เขียนด้วยภาษาทัวริงที่สมบูรณ์และประเมินผล นั่นคือความหมายของการทำให้ทัวริงสมบูรณ์ ภาษาทั้งหมดที่กำลังเปลี่ยนเสร็จสมบูรณ์เทียบเท่ากับโปรแกรมที่สามารถแสดงได้ การเปิดเผยที่น่าอัศจรรย์ทีเดียวถ้าคุณคิดเกี่ยวกับมัน


ทัวริงสมบูรณ์หมายถึงภาษาที่สามารถใช้ในการจำลองเครื่องทัวริง (หรือมันสามารถคำนวณฟังก์ชั่นคำนวณทัวริงใด ๆ )
mipadi

3
@pipadi - คำจำกัดความที่ถูกต้องและแม่นยำมากฉันจะให้คุณ แต่มีคนถามคำถามแบบนี้จะพูดว่า "ดี WTF เป็นเครื่องทัวริงหรือไม่ WTF เป็นฟังก์ชันที่คำนวณได้ทัวริง?" หากพวกเขาไม่เข้าใจทัวริงเสร็จพวกเขาจะเข้าใจทัวริงเครื่องหรือฟังก์ชั่นคำนวณทัวริงด้วยหรือไม่ มันเหมือนกับการค้นหาคำวาทศิลป์ในพจนานุกรมและมันบอกว่า "ของเกี่ยวข้องหรือเกี่ยวข้องกับวาทศาสตร์" คำจำกัดความนั้นไม่ได้บอกความหมายของวาทศิลป์ที่แท้จริงแล้วชี้ให้คุณเห็นอีกคำที่คุณไม่เข้าใจ
chubbsondubs

1

นี่คือสองเซ็นต์ของฉัน HTML และ CSS ไม่ใช่ภาษาโปรแกรมอย่างชัดเจน ด้วยเหตุนี้เมื่อฉันเห็น HTML หรือ CSS ในประวัติย่อของใครบางคนภายใต้ "ภาษาการเขียนโปรแกรม" นั่นก็แค่บอกฉันว่าบุคคลนี้ไม่ทราบว่าเขากำลังพูดถึงอะไร

นอกจากนั้นไม่มันไม่สำคัญ

โดยทั่วไปโปรแกรมเมอร์มักจะอวดความรู้ ที่มาพร้อมกับงาน


4
ดังนั้นในความคิดของคุณไม่มีที่ว่างสำหรับใครบางคนที่เป็นเพียงแค่ประมาณเกี่ยวกับเรื่องนี้เพราะพวกเขาไม่ต้องการที่จะเสียพื้นที่ที่มีส่วนของภาษามาร์กอัปอีกใช่ไหม สำหรับฉันนั่นเป็นวิธีที่โอ้อวดเกินกว่าสิ่งที่มีประโยชน์
Jon Hopkins

1
+1 เมื่อฉันเห็น CV พร้อม HTML / CSS ภายใต้ 'การเขียนโปรแกรม' ฉันไม่อ่านอีกเลย อย่างใดอย่างหนึ่งเขาไม่ทราบความแตกต่าง (ดังนั้นเขาจึงไม่มีประโยชน์สำหรับฉัน) หรือหวังว่าฉันจะไม่ทราบความแตกต่าง (ดังนั้นฉันจึงไม่ต้องการทำงานกับเขา)
Javier

2
@ Jon Hopkins: การใส่ใจในรายละเอียดคือคุณภาพที่จำเป็นในโปรแกรมเมอร์ การวาง HTML ภายใต้ภาษาการเขียนโปรแกรมไม่ได้เป็นเพียงการประมาณเท่านั้น นั่นทำให้ความประทับใจแรกที่แย่มาก ๆ ถ้าคุณสมัครงานเป็นโปรแกรมเมอร์
Dima

1
@Dima: อย่างแน่นอน ความไม่เป็นทางการนั้นโอเคบางครั้งแม้แต่เป็นลายลักษณ์อักษรความไม่เข้าใจในแนวคิดพื้นฐานทางการค้าก็เป็นที่ยอมรับ
Javier

1
นี่มันไร้สาระ เรซูเม่และการสัมภาษณ์เป็นหนึ่งในส่วนที่มีปัญหามากที่สุดของอุตสาหกรรมของเราในขณะนี้ คุณไม่มีทางรู้ว่าคนที่รู้ถึงความแตกต่างยังคงใส่ "HTML" ภายใต้ "ภาษาการเขียนโปรแกรม" เพราะพวกเขากลัวเสียงหึ่ง ๆ HR HR จะไม่สังเกตเห็นมันภายใต้ "มาร์กอัป / การออกแบบ / ฯลฯ " อย่างน้อยคุณควรโทรหาพวกเขาหรือพาพวกเขาเข้ามาหากพวกเขาบอกคุณว่า "โปรแกรมใน HTML" เป็นสิ่งที่ดีจริงๆนั่นคือธงสีแดง แต่จากนั้นอีกครั้งให้นึกถึงสิ่งที่คุณสามารถทำได้ในขณะนี้ใน HTML 5 เพียงอย่างเดียว! มันยืดออกจริงเหรอ?
เกรแฮม

0

มันไม่สำคัญ และมันก็เป็นเรื่องของคำนิยาม ภาษาการเขียนโปรแกรมคืออะไร บางคนหมายความว่ามันต้องสมบูรณ์แบบ อื่น ๆ มีคำจำกัดความอื่น ๆ ที่ทำให้ HTML เป็นภาษาการเขียนโปรแกรม (และในตัวอย่างของคุณพวกเขาไม่ได้เรียกว่าภาษาโปรแกรมเพียงภาษาที่เห็นได้ชัด)

คำแนะนำของฉัน: พยายามที่จะเพิกเฉยต่อคนที่ชี้ให้เห็นสิ่งไร้สาระเหล่านี้และในหลาย ๆ ความรู้สึกแม้กระทั่งการอ้างสิทธิ์ที่ไม่ถูกต้อง มันเป็นเพียงแค่รูปแบบของไวยากรณ์ nazi-ism การเรียก HTML ภาษาการเขียนโปรแกรมไม่ถูกต้องในแง่ที่มีความหมายใด ๆ


7
-1 มันมีความหมายเนื่องจาก HTML ไม่ใช่ภาษาการเขียนโปรแกรม แต่ไม่มีองค์ประกอบพื้นฐานของสิ่งนั้น - เพียงอธิบายเลย์เอาท์บนหน้าเว็บโดยส่วนขยายเดียวกันกับหนังสือเกี่ยวกับการวาดภาพทางเทคนิคเป็นภาษาการเขียนโปรแกรม
Orbling

1
@Orbling: เป็นภาษาการเขียนโปรแกรมประกาศเฉพาะโดเมนตามคำจำกัดความทั่วไปของความหมาย ดูตัวอย่าง: en.wikipedia.org/wiki/…ดังนั้นขออภัยคุณล้มเหลว ตามคำจำกัดความทั่วไปและมีเหตุผลอย่างสมบูรณ์พวกเขาเป็นภาษาการเขียนโปรแกรม และตามคำจำกัดความที่แตกต่างกันโดยสิ้นเชิงแต่มีเหตุผลและเข้าใจง่ายพอ ๆ กันพวกเขาไม่ใช่ภาษาโปรแกรม มุมมองทั้งสองถูกต้อง แต่สิ่งที่ตีความคิดเห็นของพวกเขาเหนือหัวของคนอื่นนั้นไม่ปลอดภัยและจำเป็นต้องรู้สึกดีกว่าพวก HTML
Lennart Regebro

8
คำว่า "โปรแกรม" มีความหมายที่กำหนดที่ตกลงกันโดยทั่วไป คุณไม่สามารถสร้างโปรแกรมด้วย HTML ได้ดังนั้นการสร้างบางสิ่งด้วย HTML ไม่ใช่ "โปรแกรม" ใครก็ตามที่โต้แย้งแตกต่างกันก็เถียงว่าคำพูดที่พวกเขาใช้ในการโต้แย้งนั้นสามารถเปลี่ยนความหมายของพวกเขาได้ตามอำเภอใจและในกรณีนั้น
แมทธิวอ่าน

4
@Orbling: "ฉันทำงานกับ HTML guys" เพื่อนใหม่ "คนหนึ่งของฉันคือ {แทรกกลุ่มชนกลุ่มน้อยที่นี่}" หรือไม่
อานนท์

2
@ Lennart Regebro คำจำกัดความมาตรฐานของภาษาการเขียนโปรแกรม (แม้แต่ใน Wikipeida) บอกว่าภาษาการเขียนโปรแกรมสามารถอธิบายอัลกอริทึมได้ คุณอธิบายอัลกอริทึมใน HTML และ CSS ได้อย่างไร
Charles E. Grant

0

ฉันคิดว่ามันมาถึงสิ่งนี้ - HTML & CSS ในขณะที่ซับซ้อนพอที่จะต้องใช้ความเข้าใจบางอย่างเป็นภาษาที่นำเสนอเหมาะที่สุดสำหรับรูปแบบสำหรับรายงานที่สร้างขึ้น ดังนั้นคนที่สามารถทำสิ่งเหล่านี้เท่านั้นจึงไม่ถือว่าเป็นผู้เข้ารหัส โปรดจำไว้ว่าผู้เขียนโค้ดบางคนใช้คอมพิวเตอร์มานานพอที่จะจำได้เมื่อตัวประมวลผลคำโดยเฉลี่ยใช้ไวยากรณ์คำสั่งมากกว่าเพื่อจัดรูปแบบข้อความมากกว่า HTML

สิ่งที่บางคนเรียกว่าภาษา 'ของจริง' คือสิ่งที่จะประมวลผลข้อมูลด้วยวิธีใดวิธีหนึ่งในการสร้างรายงาน หรือบางอย่างที่สามารถใช้ในการเขียนเกม การรู้จัก HTML และ CSS ทั้งด้านในและด้านนอกเป็นทักษะที่มีคุณค่า แต่ก็มีมากขึ้นดังนั้นเมื่อรวมเข้ากับความรู้ของ JS สำหรับส่วนหน้าและ Java, PHP, Perl, Ruby, Python, C / C ++ หรือ C # ที่ด้านหลัง

ในทางกลับกันคนที่รู้เพียงภาษาใดภาษาหนึ่ง 'จริง' โดยไม่ต้องใช้เทคโนโลยีส่วนหน้าเว็บต่างก็จำกัดความยืดหยุ่นของตัวเองในฐานะผู้ทำโค้ด


ฉันอยากจะแนะนำภาษาที่ดำเนินการอย่างสมบูรณ์และดำเนินการโดยคอมพิวเตอร์ ฉันมีรหัส C ที่ดีบั๊กและ CSS สไตล์ที่ดีบั๊ก ฉันสามารถพูดด้วยความมั่นใจว่าหลังสามารถใช้เวลานาน (ถ้าไม่นาน) กว่าเดิม (ขึ้นอยู่กับสิ่งที่น่ากลัวบางคนทำกับตัวชี้เทียบกับที่ปิดบังส่วนหนึ่งของสเป็คที่คุณพยายามทำงานและ * & ^ เบราว์เซอร์% $ @ ผิดปกติ) HTML เพียงอย่างเดียวไม่ได้พูดอะไรมาก แต่ควบคู่ไปกับการแสดงออกอย่างเต็มรูปแบบของ CSS มันน่าสนใจมาก
Danny Staple

2
ไม่มีอะไรเลวร้ายไปกว่าการรับมือกับ CSS และมาร์กอัปโดยผู้พัฒนาที่คิดว่ามันจะเป็นการเล่นของเด็ก
Erik Reppen

0

ตรรกะ "สมองซีกซ้าย" หรือ pigeonhole / stereotype "สมองซีกขวา" ที่สร้างสรรค์ถูกต้องอธิบายชุดทักษะของผู้คนมากมาย จากประสบการณ์ของฉัน "คือ HTML / CSS ภาษาการเขียนโปรแกรม" เป็นเรื่องเกี่ยวกับว่าคนที่เก่งภาษา HTML / CSS สามารถทำภารกิจการเขียนโปรแกรมอื่น ๆ ได้หรือไม่

นักออกแบบเว็บไซต์ส่วนใหญ่ที่ฉันทำงานด้วยในช่วง 13 ปีที่ผ่านมาฉันได้ทำการพัฒนาเว็บไซต์สามารถสร้าง HTML และ CSS ที่ใช้งานได้ แต่ไม่สามารถรับมือกับความท้าทายด้านการเขียนโปรแกรมที่ต้องการมากขึ้น (อะไรก็ได้มากกว่าการตัดและง่ายที่สุด) วางจาวาสคริปต์) โปรแกรมเมอร์และนักออกแบบฐานข้อมูลฮอตสปอตส่วนใหญ่ไม่สนใจเรื่องการนำเสนอแบบเห็นภาพเพียงพอที่จะใช้งาน HTML / CSS หรืองานนำเสนอได้ดี ส่วนใหญ่ปฏิเสธที่จะลองจริง ๆ

HTML และ CSS ต้องการทักษะการเขียนโปรแกรมบางอย่าง : การทดลอง, การแก้ปัญหา, การทดสอบอย่างรอบคอบ, ความเข้าใจในการสืบทอด ... แต่พวกเขาต้องการทักษะการออกแบบอย่างน้อยจำนวนเท่ากัน: ความไวต่อสี, เส้น, ระยะห่าง, สมดุล - ส่วนใหญ่เหมือนกัน ทักษะการจัดองค์ประกอบภาพที่ทำให้ภาพถ่ายดี

เนื่องจาก HTML / CSS เป็นรูปแบบหรือภาษาการนำเสนอจึงอยู่ที่ส่วนท้ายของแผนภาพการไหลของข้อมูล ไม่มีรหัสอื่นที่อยู่ปลายน้ำของมัน ทักษะการออกแบบระดับที่ใหญ่กว่าที่ใครบางคนต้องการเพื่อออกแบบ API ที่ดีการบริการหรือสคีมาฐานข้อมูลจะไม่ถูกใช้ใน HTML และ CSS โดยทั่วไปไม่จำเป็นต้องทำให้เป็นโมดูล HTML หรือ CSS ใด ๆ ที่เกี่ยวข้องหรือถ้ามีก็ไม่ได้ขึ้นอยู่กับนักออกแบบกราฟิกที่จะทำ มันเป็นเรื่องยากที่ใด ๆการทำงานทำด้วย HTML เมนูแบบเลื่อนลงอาจเป็นข้อยกเว้นที่พบบ่อยที่สุด แต่สามารถทำได้โดยการตัดและวางสูตรอาหารนอกเว็บแทนที่จะออกแบบรหัส

มันเป็นเรื่องแปลก แต่ก็เป็นไปไม่ได้ที่โปรแกรมเมอร์จะมีทักษะการออกแบบหรือเลย์เอาต์หรือผู้ออกแบบมีทักษะการเขียนโปรแกรม คนเหล่านี้มีค่าเป็นพิเศษในทีมงานทางเว็บเพราะพวกเขาช่วยลดช่องว่างที่พวกเราส่วนใหญ่มี แต่บ่อยครั้งที่พวกเขาอยู่ภายใต้แบบแผนที่การทำ HTML / CSS นั้นเป็นไปไม่ได้สำหรับ "โปรแกรมเมอร์จริง" หรือในทางกลับกัน แต่การผสมผสานทักษะนี้เป็นไปไม่ได้มากไปกว่าที่โปรแกรมเมอร์คนเดียวกันจะเป็นกะลาสีที่ดีจิตรกรทำอาหารหรือมีทักษะอื่น ๆ ที่พวกเขาฝึกฝนในเวลาว่าง

อย่างที่คนอื่น ๆ พูดความแตกต่างนี้มุ่งเน้นไปที่การจ้างงานมากที่สุด เนื่องจากคนที่มีความสามารถแบบครอสโอเวอร์เป็นของหายากการโพสต์งานส่วนใหญ่จึงต้องตั้งเป้าหมายทักษะหนึ่งชุดหรืออื่น ๆ หากโปรแกรมเมอร์เขียนรายการ HTML / CSS ภายใต้ "ภาษาการเขียนโปรแกรม" จะทำให้เกิดค่าสถานะสีแดงว่าพวกเขาไม่สามารถทำงานการเขียนโปรแกรมทั่วไปได้หรือว่าคำจำกัดความการเขียนโปรแกรมของพวกเขาแคบมาก บางทีพวกเขาสามารถทำได้ก็แค่ตั้งคำถาม หากนักออกแบบแสดงรายการ HTML / CSS คุณต้องการดูผลงานของพวกเขาเพื่อดูว่าพวกเขามีความสามารถทางศิลปะในการสร้างเอฟเฟ็กต์ภาพที่ต้องการ

HTML / CSS อาจถูกถังขยะซ้ำ ๆ เนื่องจากไม่ใช่ภาษาการเขียนโปรแกรมจริงเพราะปลอดภัยกว่าและเป็นที่ยอมรับทางสังคมมากกว่าการทิ้งคนที่ไม่สามารถข้ามส่วนแบ่งของซีกโลกได้ แน่นอนว่าบางคนอาจไม่มีการยับยั้ง ฉันทำงานกับผู้จัดการคนหนึ่งซึ่งมักพูดว่า "เขาเขียน [ฟังก์ชั่นการทำงานของส่วนแทรกหลักที่นี่] ฉันคิดว่าเขาเพิ่งทำ HTML"

เป็นคำถามที่ดีมาก!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.