/ BasicKnowledge

Markup Language?

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


WHAT IS MARKUP LANGUAGE?

HTML มาจากคำว่า HyperText Markup Language เรามาลองแปลเป็นคำๆกันไปเลยดีกว่า คำแปลจากเว็บ oxforddictionaries.com

hyper- = Over; beyond; above
text = A book or other written or printed work, regarded in terms of its content rather than its physical form

Hyper หมายถึงอะไรที่เหนือกว่า มากกว่า สูงกว่า ส่วน Text ก็หมายถึง ข้อความ เนื้อหา อะไรประมาณนั้น ความหมายรวมๆ ก็ได้ว่า ข้อความที่มิติ เหนือกว่าข้อความทั่วๆไป

Markup  = [Computing] A set of tags assigned to elements of a text to indicate their relation to the rest of the text or dictate how they should be displayed

Language = the method of human communication, either spoken or written, consisting of the use of words in a structured and conventional way

Markup หมายถึงกลุ่มของ tag ที่ใช้ในการบอกความสัมพันธ์ และรูปแบบการแสดงผล language หมายถึงวิธีการสื่อสารต่างๆ เมื่อรวมกันเป็น Markup Language ก็หมายถึง รูปแบบวิธีในการจัดการความสัมพันธ์และการแสดงผล

Alt html

ในมาตรฐาน HTML 2.0 มีเขียนไว้ว่า

The HyperText Markup Language (HTML) is a simple data format used to create hypertext documents that are portable from one platform to another. HTML documents are SGML documents with generic semantics that are appropriate for representing information from a wide range of domains.

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

<html>
	<body>
		<p>
        	Hello World!!
		</p>
	</body>
</html>

code ข้างต้นเขียนด้วย HTML เมื่อรันแล้ว จะแสดงคำว่า Hello World!! ออกมาเท่านั้น เพราะ tag html body และ p ใช้ในการระบุองค์ประกอบของเว็บเพจเฉยๆ ไม่ได้มีการแสดงผลอะไรเพิ่มเติม

Markup Language VS Programming Language

ธรรมชาตอของ Markup Language นั้นถูกออกแบบมาเพื่อจัดการการแสดงผลเพียงอย่างเดียว เพื่อให้เรียบง่ายที่สุด จึงไม่มีความสามารถเชิงโปรแกรมอะไรเลย กล่าวคือ คุณไม่สามารถสร้าง Dynamic Content ได้ด้วย Markup Language เพียงอย่างเดียว

ในทางกลับกัน Programming Language ถูกออกแบบมาให้มีความสามารถเชิงโปรแกรม สามารถทำงานประมวลผลต่างๆ ได้ ส่วนจะมีความสามารถในการจัดการแสดงผลมากแค่ไหนก็ขึ้นอยู่กับตัวภาษาเอง

Markup Language ไม่ได้มีแค่ HTML ที่ใช้แสดงผลเว็บไซต์ แต่ยังมีภาษาอื่นอีกมากมาย เช่น LaTex ที่มักใช้ในการแสดงผลสมการคณิตศาสตร์ SGML ภาษาที่เป็นต้นแบบของ HTML เอง

MARKUP LANGUAGE NEVER WALK ALONE

เมื่อ Markup Language นั้นไร้ความสามารถในการสร้าง Dynamic Content จึงไม่มีใครใช้มันแบบเดี่ยวๆ แต่จะมาคู่กับ Programming Language เสมอๆ ไป ตัวอย่างที่ดีที่สุดคือเมื่อคุณเรียนเขียนเว็บคุณก็จะได้ยินศัพท์คำว่า JavaScript ซึ่งมันก็ไม่ใช่อะไรอื่น มันคือภาษาโปรแกรมที่ใช้ในฝั่ง Client เพื่อประมวลผล หรือทำ Interaction ต่อ User คู่ไปกับ HTML

ในการเขียนแอพพลิเคชั่นสมัยใหม่ ก็จะมี Pattern ที่แบ่งแยกระหว่างชั้นประมวลผล และชั้นแสดงผลออกจากกัน เช่น MVC, MVP, MVVM, MOVE, etc… และมักจะใช้ภาษาตัวหนึ่งสำหรับประมวลผล และอีกตัวหนึ่งสำหรับแสดงผลเสมอ เพื่อให้สามารถทำสิ่งต่างๆ ได้สะดวกขึ้น ตัวอย่างเช่น บน Windows Platform เราใช้ C#/Visual Basic ในการเขียนส่วนประมวลผล และก็ใช้ XAML ในการเขียนส่วนแสดงผล ทำให้เราสามารถแยกหน้าที่ให้คนสองคนได้เลย

"Learn To Know Unknown"