HTML có được coi là ngôn ngữ lập trình không? [đóng cửa]


184

Tôi đoán câu hỏi là tự giải thích, nhưng tôi tự hỏi liệu HTML có đủ điều kiện là ngôn ngữ lập trình hay không (rõ ràng là "L" là viết tắt của ngôn ngữ).

Lý do để hỏi là thực tế hơn, tôi sắp xếp một bản lý lịch và không muốn trông giống một kẻ ngốc khi liệt kê những thứ như HTML và XML theo các ngôn ngữ, nhưng không thể tìm ra cách phân loại chúng.


28
Có lẽ bạn không nên gọi nó là ngôn ngữ lập trình mà chỉ đơn giản là ngôn ngữ , công nghệ , kinh nghiệm hoặc kỹ năng .
Gumbo

5
Chào. Tôi đang sử dụng Java EE và tôi đang lập trình bằng XML, có vẻ như ...
whirlwin

4
Không, ngôn ngữ lập trình nên được hoàn thành. HTML không hoàn thành.
Arunav Sanyal

2
HTML giống như các bản nhạc được đục lỗ được đưa vào một cây đàn piano tự động, dành cho các trình duyệt. Theo một nghĩa nào đó, nó là ngôn ngữ lập trình trình duyệt, tức là nó chỉ dẫn cho trình duyệt những gì cần hiển thị. Nhiều ngôn ngữ ngày nay có cấu trúc lambda cấp cao như LINQ trong C # cho máy tính biết những gì không nên làm. Sự phát triển của các ngôn ngữ lập trình đang hướng tới một bản chất khai báo hơn, các ngôn ngữ như Kotlin là điều hiển nhiên về điều này.
aggaton

Như một lý lịch, Quy tắc 110 đã được triển khai bằng CSS 3 và nó đã được chứng minh là hoàn thành Turing.
aggaton

Câu trả lời:


463

Không, HTML không phải là ngôn ngữ lập trình. Chữ "M" là viết tắt của "Đánh dấu". Nói chung, một ngôn ngữ lập trình cho phép bạn mô tả một số quy trình thực hiện một cái gì đó, trong khi HTML là một cách để thêm ngữ cảnh và cấu trúc vào văn bản.

Nếu bạn đang tìm cách thêm súp bảng chữ cái vào CV, đừng phân loại chúng. Chỉ cần đặt chúng vào một đống lớn gọi là "Công nghệ" hoặc bất cứ thứ gì bạn thích. Tuy nhiên, hãy nhớ rằng bất cứ điều gì bạn liệt kê là trò chơi công bằng cho một câu hỏi.

HTML phổ biến đến mức tôi mong đợi hầu hết mọi người công nghệ đều biết đến nó (mặc dù không phải là thứ như CSS, v.v.), vì vậy bạn có thể cân nhắc không liệt kê mọi chủ nghĩa ban đầu bạn từng gặp. Tôi có xu hướng coi CV liệt kê quá nhiều điều đáng ngờ, vì vậy tôi đặt nhiều câu hỏi hơn để loại bỏ những thứ không nên liệt kê. :)

Tuy nhiên, nếu trải nghiệm HTML của bạn bao gồm các công cụ thiết kế web nghiêm túc bao gồm Ajax, JavaScript, v.v., bạn có thể nói về những điều đó trong phần "Trải nghiệm" của mình.


38
+1 để gọi nó là khởi tạo thay vì từ viết tắt
Jason

15
TeX là một ngôn ngữ hoàn chỉnh Turing, vì vậy phân loại của nó là ngôn ngữ lập trình hoặc ngôn ngữ đánh dấu là một chút mờ. :)
mipadi

7
Rõ ràng, HTML5 + CSS3 là Turing hoàn tất quá: lemire.me/blog/archives/2011/03/08/...
e-satis

3
Tôi đã từng đặt LaTeX như một kỹ năng, nhưng vì nó quan trọng trong một số lĩnh vực. :)
brian d foy

7
@SarahofGaia một từ viết tắt là khi bạn nói các chữ cái như thể đó là một từ (ví dụ: NASA) trong đó một khởi tạo là nơi bạn nói từng chữ cái riêng lẻ (ví dụ: HTML). Đó là một sự khác biệt tinh tế, nhưng dù sao đi nữa.
Jason

64

CÓ, một ngôn ngữ lập trình khai báo.

Bạn thực sự muốn liệt kê những điều quan trọng nhất mà bạn biết có liên quan đến công việc bạn đang ứng tuyển trong hồ sơ xin việc. Nếu bạn liệt kê ASP.NET nhưng không liệt kê HTML, mặc dù điều đó hơi rõ ràng, có rất nhiều người quản lý và / hoặc các loại nhân sự sẽ cho rằng bạn không biết HTML vì nó không được liệt kê. Tôi đã có nó xảy ra với tôi trước đây.

Cập nhật - Một số người nói không, đó không phải là ngôn ngữ lập trình và bạn có thể không đồng ý với tôi về điều này, nhưng bất kể trong bản lý lịch, đó là ngôn ngữ lập trình. Bạn nhận được các loại nhân sự nhìn vào sơ yếu lý lịch của bạn trước khi người quản lý tuyển dụng thậm chí nhìn thấy nó. Nếu người quản lý nói rằng bạn cần biết HTML và nó không được liệt kê trong phần 'ngôn ngữ lập trình' thì nhân sự có thể coi thường bạn tiếp tục nghĩ rằng bạn không biết vì nó không được liệt kê.

Cập nhật 6-8-2012: Bất kỳ hướng dẫn nào yêu cầu máy tính làm điều gì đó là ngôn ngữ lập trình. Vì vậy, ngay cả sau nhiều năm, tôi vẫn đứng trước câu trả lời của mình. HTML là một ngôn ngữ lập trình. Một cái gì đó không phải là ngôn ngữ lập trình sẽ là XML.


16
Nếu hello world là một chương trình, thì các trang html là các chương trình, vì chúng chỉ đơn thuần là một thế giới xin chào phức tạp hơn. Ergo, html ngôn ngữ lập trình, vì nó hướng dẫn máy tính làm gì. Tôi với anh chàng này.
freespace

17
Không đúng. Ngay cả thế giới xin chào cũng có logic trong đó. Chỉ vì IDE yêu thích của bạn chuẩn bị cấu trúc chương trình cần thiết dưới vỏ bọc, hoặc chỉ cần một vài từ khóa để in ra đầu ra, có logic trong công việc. Tôi đồng ý với Chris ở đây về nhân sự mặc dù.
Ed S.

40
@freespace - theo định nghĩa đó, gần như mọi thứ đều là ngôn ngữ lập trình, khiến nó trở thành một phân loại gần như vô dụng.
Kaz Dragon

20
@freespace: Lập luận đó là vô nghĩa. Nó thực chất giống như nói: Chó có lông. Mèo có lông. Do đó, mèo là chó.
James Curran

8
@ChrisPietschmann khai báo, vâng. Lập trình, không. Làm thế nào bạn sẽ viết một vòng lặp trong HTML?
Thorbjørn Ravn Andersen


22

Ở một mức độ nào đó Chris Pietschmann là chính xác. SQL chưa hoàn thành Turing (ít nhất là không có thủ tục được lưu trữ) nhưng mọi người sẽ liệt kê rằng đó là ngôn ngữ, TeX hoàn thành Turing nhưng hầu hết mọi người coi đó là ngôn ngữ đánh dấu.

Đã nói rằng: nếu bạn chỉ đang xin việc, không tranh luận logic chính thức, tôi sẽ chỉ liệt kê tất cả chúng là công nghệ. Những thứ như .NET không phải ngôn ngữ nhưng có lẽ cũng sẽ được liệt kê.


2
"Tuy nhiên, mọi người sẽ liệt kê đó là ngôn ngữ", chắc chắn, là ngôn ngữ truy vấn, không phải là ngôn ngữ lập trình.
Andrej Istomin

@AndrejIstomin Tôi không thấy rằng bạn không nói về HTML, nhưng SQL, xin lỗi.
Karl Richter

14

'M' là viết tắt của một 'Đánh dấu'. Đó là 'Ngôn ngữ đánh dấu' không phải là ngôn ngữ lập trình. Một số người sẽ không đồng ý với điều này, nhưng ý kiến ​​của tôi là nếu nó thiếu các cấu trúc logic (phân nhánh có điều kiện, lặp lại, v.v.) thì nó không thực sự là ngôn ngữ lập trình.

Đối với sơ yếu lý lịch, tôi khuyên bạn nên đặt HTML và XML trong một phần như 'Công nghệ'. Tôi thường có một phần như thế này nơi tôi liệt kê những thứ như phần mềm kiểm soát phiên bản, hệ điều hành tôi đã phát triển, xây dựng hệ thống, v.v.


1
Prolog không có vòng lặp. Nhiều ngôn ngữ chức năng phải dùng đến đệ quy.
aggaton

13

Tôi nghĩ không chính xác một ngôn ngữ lập trình, nhưng chính xác những gì tên của nó nói: một ngôn ngữ đánh dấu. Chúng tôi không thể lập trình bằng cách sử dụng thuần HTML. Nhưng chỉ cần chú thích làm thế nào để trình bày nội dung.

Nhưng nếu bạn xem xét lập trình hành động nói cho máy tính biết cách trình bày nội dung thì đó là ngôn ngữ lập trình.


2
"Nhưng nếu bạn xem xét lập trình hành động nói cho máy tính biết cách trình bày nội dung thì đó là ngôn ngữ lập trình." Vào thời điểm đó, người ta cũng có thể gọi mọi thứ là lập trình bởi vì về cơ bản đó là nhân quả. xD

13

Nếu bạn định nói rằng HTML là ngôn ngữ lập trình, thì bạn cũng có thể bao gồm những thứ như tài liệu từ, vì chúng cũng dựa trên ML hoặc 'Ngôn ngữ đánh dấu'.

Vì vậy, không, HTML không phải là ngôn ngữ lập trình. Nó được gọi là "đánh dấu" vì lý do đó.

Đơn giản chỉ cần đặt - HTML định nghĩa nội dung!


2
Làm thế nào <b> này có thể in đậm </ b> so với điều này là đậm ? Nếu HTML không phải là ngôn ngữ lập trình, tốt thôi, nhưng làm việc với HTML! = Làm việc với Tài liệu Word.
dpp

2
Word là một ứng dụng. Tệp văn bản có định dạng hoặc các tệp khác mà từ tạo ra có thể được (và) được coi là ngôn ngữ cụ thể của miền. Và nếu bạn biết RTF hoặc bất kỳ đánh dấu phức tạp nào khác (đặc biệt là một số định dạng nhị phân cũ hơn, bạn nên vui lòng đưa nó vào sơ yếu lý lịch của mình. Những con thú đó trở nên khá phức tạp.)
Matthew Whited

HTML là một ngôn ngữ lập trình - đơn giản như vậy, nó vẫn rơi vào thuật ngữ ô của ngôn ngữ lập trình. Như tôi đã nói trước đây, rất thường xuyên trong Word, bạn định cấu hình thủ công đoạn hoặc tiêu đề, v.v. Trong HTML, bạn "tự động hóa" quy trình bằng cách yêu cầu / hướng dẫn trình duyệt tạo một cái gì đó thành tiêu đề hoặc đoạn văn (cùng với tất cả các hướng dẫn khác có sẵn). Lập trình có thể rất đơn giản hoặc thực sự phức tạp. Không có tham số nào được thiết lập cho mức độ phức tạp của một thứ gì đó để nó được "lập trình". Nó đơn giản cần phải là thứ gì đó làm cho một cái gì đó làm một cái gì đó ...
Cheesus Toast

10

Tôi nghĩ rằng nó chắc chắn có vị trí của nó trên một sơ yếu lý lịch. Kiến thức về HTML rất có giá trị và thực sự có rất nhiều điều cần biết, những vấn đề và tiêu chuẩn tương thích giữa các trình duyệt cần phải tuân theo.

Tôi sẽ không liệt kê HTML theo "ngôn ngữ lập trình" cùng với C # hoặc thứ gì đó, nhưng đáng chú ý là trải nghiệm của bạn.


9

Trong lớp ngôn ngữ lập trình nâng cao tôi học đại học, chúng tôi có một định nghĩa khá hay về "ngôn ngữ lập trình": ngôn ngữ lập trình là bất kỳ ngôn ngữ (chính thức) nào có khả năng diễn đạt tất cả các chức năng tính toán, mà luận án Church-Turing ngụ ý là tập hợp tất cả các hàm tính toán Turing.

Theo định nghĩa đó, không, HTML không phải là ngôn ngữ lập trình, thậm chí là ngôn ngữ khai báo. Đó là, như những người khác đã giải thích, một ngôn ngữ đánh dấu.

Nhưng những người xem xét hồ sơ của bạn rất có thể không quan tâm đến một sự phân biệt chính thức như vậy. Tôi sẽ làm theo lời khuyên tốt được đưa ra bởi những người khác và liệt kê nó dưới phần "Công nghệ".


Định nghĩa không tốt lắm vì C không hoàn thành Turing trong khi HTML5 + CSS3, vì vậy tôi chỉ nói rằng HTML không phải là ngôn ngữ lập trình 'chung chung', chỉ là một ngôn ngữ chuyên môn cao.
Serge

3
@Serge Theo nghĩa có nghĩa là C không hoàn thành Turing, nhưng HTML5 + CSS3 là gì?
Michael Ekstrand

ram có sẵn của C bị giới hạn 2 ** num_bits (size_t) tùy thuộc vào tiêu chuẩn và việc triển khai, điều này có thể khác nhau, có thể có một số sơ hở tồn tại, nhưng giả sử Turing hoàn toàn nghi ngờ. Bằng chứng về tính đầy đủ của HMTL + CSS trên stackoverflow mong đợi một số mức độ liên quan của con người, vì vậy có lẽ không thuyết phục 100%. Dù bằng cách nào, các ngôn ngữ rất khó xảy ra từ hoạt hình Powerpoint đến ký hiệu âm nhạc đều được tìm thấy Turing Complete gwern.net/Turing-complete
Serge

5
Tôi không nghĩ việc giới hạn bộ nhớ hữu hạn là một sự phản đối hữu ích khi coi C (hoặc bất kỳ ngôn ngữ lập trình nào khác) là Turing hoàn chỉnh. Bất kỳ hệ thống nào được triển khai thực sự sẽ bị giới hạn trong bộ nhớ hữu hạn, bao gồm HTML5 + CSS3 hoặc PowerPoint.
Michael Ekstrand

chúng ta nói về ngôn ngữ không phải là hệ thống được triển khai thực tế (số lượng nguyên tử / hạt trong vũ trụ quan sát được có lẽ bị hạn chế)
Serge

7

Tôi khắc phục vấn đề này bằng cách không có phần "ngôn ngữ lập trình" trong sơ yếu lý lịch của mình. Thay vào đó, tôi gắn nhãn đơn giản là "ngôn ngữ" và cuối cùng tôi dán HTML và CSS. Tôi muốn làm cho người đánh giá dễ dàng hơn để họ có thể xem liệu tôi có kiểm tra tất cả các yêu cầu của họ hay không.

Chỉ những kẻ ngốc mới coi thường người nộp đơn vì người đó liệt kê HTML theo "ngôn ngữ" thay vì một số nhãn khác, đặc biệt là vì không có tiêu chuẩn ngành. Và ai muốn làm việc cho những kẻ ngốc?


7

Không - có một định kiến ​​lớn trong CNTT đối với thiết kế web; nhưng trong trường hợp này, các lập trình viên "thực sự" đang ở trên một nền tảng khá vững chắc.

Nếu bạn đã thực hiện nhiều công việc thiết kế web, có lẽ bạn đã thực hiện một số JavaScript, vì vậy bạn có thể đặt nó xuống dưới 'ngôn ngữ lập trình'; nếu bạn cũng muốn liệt kê HTML, thì tôi đồng ý với câu trả lời gợi ý "Công nghệ".

Nhưng trừ khi bạn nhắm mục tiêu các đại lý đang cố gắng đánh dấu vào các hộp thay vì tìm cho bạn một công việc tốt, một danh sách trống những thứ bạn đã sử dụng không thực sự trông tốt như vậy. Bạn nên liệt kê các dự án bạn đã làm và chi tiết hóa các công nghệ bạn đã sử dụng trên mỗi dự án; điều đó chứng tỏ rằng bạn đã có kinh nghiệm thực sự về việc sử dụng chúng chứ không chỉ là bạn biết một số từ thông dụng.


5

Chà, L là dành cho ngôn ngữ, nhưng nó không bao hàm ngôn ngữ lập trình. Rốt cuộc, tiếng Anh hay tiếng Pháp cũng là ngôn ngữ (tự nhiên)! ;-)

Như đã nói ở trên, đặt chúng dưới một phần công ty con, Công nghệ dường như là một thuật ngữ tốt.

(Nhìn vào sơ yếu lý lịch của riêng tôi, không được cập nhật trong một thời gian) Tôi đã tạo một phần chỉ có tên là "Ngôn ngữ", vì vậy tôi không thể hiểu sai ... :-
Tôi đã đặt "(X) HTML và CSS, XML / DTD / Schema và SVG "ở cuối phần, được phân tách rõ ràng.

Trong tiếng Pháp, tôi có một phần "Langages" (lập trình và đánh dấu) và một "Langues" khác (tiếng Pháp / tiếng Anh). Trong phiên bản tiếng Anh, tôi đã đặt tiêu đề cho cả hai tại "Languages", điều mà bây giờ tôi nghĩ về nó một cách vụng về, mặc dù bối cảnh làm rõ điều này. Tôi nên tìm một công thức tốt hơn.


4

HTML không phải là ngôn ngữ lập trình.

Ngôn ngữ lập trình liên quan đến '' chức năng xử lý ', v.v. HTML chỉ liên quan đến giao diện trực quan của trang web, nơi lập trình thực tế xử lý việc xử lý. PHP chẳng hạn.

Nếu bất cứ ai thực sự biết lập trình, tôi thực sự không thể thấy mọi người có thể nhầm HTML như thế nào với ngôn ngữ lập trình thực tế.


6
Điều đó không đúng. Một ngôn ngữ lập trình chỉ đơn giản là cung cấp hướng dẫn cho một máy tính để làm một cái gì đó. HTML là ngôn ngữ dành riêng cho miền hướng dẫn máy tính bố trí cơ bản của tài liệu siêu văn bản.
Matthew Whited

3
Sau đó, một tệp txt hướng dẫn cho máy tính hiển thị văn bản nào
whackamadoodle3000

... Tất nhiên trừ khi bạn được giáo dục và hiểu ngôn ngữ tiếng Anh và khoa học máy tính ... trong trường hợp đó HTML rõ ràng là ngôn ngữ lập trình. Tôi thích nó khi mọi người sử dụng các từ như "thực tế" hoặc "thực tế" bởi vì họ thường ngồi ngay bên cạnh "Fallacy Scotsman True". Bạn đã bao giờ sử dụng một từ điển? Lần tới khi bạn làm, làm thế nào về việc bạn kiểm tra cẩn thận định nghĩa của "lập trình" và xác định vị trí của nó có PHỤ THUỘC trên từ "đang xử lý". Tại sao tôi biết HTML là ngôn ngữ lập trình? Tôi có bằng danh dự hạng nhất về khoa học máy tính và tôi hiểu tiếng Anh.
Bánh mì nướng phô mai

3

Trong các điều khoản tuyển dụng, đã ở cả hai phía của hàng rào, chắc chắn đặt HTML dưới 'ngôn ngữ lập trình', hoặc có lẽ an toàn hơn theo 'công nghệ'

Vâng, tất cả chúng ta đều biết rằng đó là Ngôn ngữ Đánh dấu chứ không phải Ngôn ngữ Lập trình. nhưng a) Các cơ quan tuyển dụng không biết và không quan tâm, và b) nhà tuyển dụng không biết và không quan tâm. Có thật không.

Và chỉ ra sự thiếu hiểu biết của họ sẽ chỉ phục vụ bạn bị bệnh. Và các kỹ thuật viên cuối cùng nhìn thấy CV của bạn sẽ biết ơn một ứng viên đã nghe nói về HTML và sẽ không lo lắng về phân loại.

Thành thật mà nói, đó không phải là một vấn đề.


1
Các kỹ thuật viên sẽ xem sơ yếu lý lịch của bạn sẽ biết ơn một ứng viên đã nghe nói về HTML? Tôi chưa tốt nghiệp đại học, nhưng tôi đã khinh miệt những người liệt kê HTML theo ngôn ngữ lập trình. Nhưng với mỗi người, tôi đoán.
Misery Index

7
Nếu bạn dự định làm việc cho bất kỳ ai khác khi bạn tốt nghiệp, Misery, đừng quên thực hành việc che giấu sự khinh miệt để bạn không thất bại trong mọi cuộc phỏng vấn do "ứng viên hành động như một kẻ ngốc" :)
Peter Recore

3
Một chút khắc nghiệt, Peter, nhưng bạn có thể đúng - một lưu ý nghiêm trọng, bạn sẽ thường xuyên phải đối mặt với những người phỏng vấn sai lầm; khéo léo không đồng ý có thể giúp bạn có được công việc, nhưng nếu bạn tỏ ra khinh thường và vượt trội, bạn sẽ bỏ lỡ - bất kể bạn có thể "đúng" như thế nào.
CJM

0

Liệt kê nó theo công nghệ hoặc một cái gì đó. Tôi sẽ bỏ qua nếu tôi là bạn vì điều này rất được mong đợi là bạn biết HTML và XML vào thời điểm này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.