Saya mempunyai rasa tidak puas hati untuk soalan ini. Ia mungkin kelihatan seperti soalan yang menyeronokkan untuk digali di permukaan, tetapi cara ia memasuki wacana awam jarang kelihatan dengan suci hati. Terdapat motif tersembunyi yang melibatkan penghormatan, emosi pelindung, dan keinginan untuk memecahkan atau mengekalkan status quo.
Sekiranya seseorang dapat membuktikan bahawa CSS bukan bahasa pengaturcaraan (ini adalah kawasan kelabu yang jika itu adalah matlamat anda, ia tidak akan menjadi sangat sukar untuk dilakukan) maka mereka dapat terus merasakan kemahiran pengaturcaraan "sebenar" mereka dan merasionalisasikan fakta bahawa mereka (mungkin) membayar lebih daripada satu pengertian depan di CS. Ini mengekalkan status quo.
Sebaliknya juga boleh benar. Sekiranya anda dapat membuktikan bahawa CSS adalah bahasa pengaturcaraan, mungkin anda boleh mengalihkan syarikat anda sendiri atau industri secara besar-besaran ke arah penghormatan yang sama dan membayar ke arah pemaju depan. Ini melanggar status quo.
Katakan kita semua boleh bersetuju dengan Boolean yang benar atau palsu jika CSS adalah bahasa pengaturcaraan. Apa sekarang? Jika benar, adakah membayar normal di kalangan semua pekerja web? Jika palsu, adakah pakar CSS layak mendapat potongan gaji? Jika benar, adakah semua orang mula menghormati satu sama lain dengan cara mereka tidak sekarang? Jika palsu, adakah orang CSS perlu makan tengah hari di bilik dandang? Saya mempunyai keraguan bahawa apa -apa akan berubah; Oleh itu, rasa tidak puas hati saya untuk perbincangan sama sekali.
Walau apa pun fakta, tidak mungkin kebanyakan orang akan menerima walaupun kemungkinan bahawa CSS adalah bahasa pengaturcaraan. Maksud saya, program melaksanakan , bukan? Tiada siapa yang meragui bahawa JavaScript adalah bahasa pengaturcaraan, kerana ia dilaksanakan. Anda menulis kod dan kemudian melaksanakan kod itu. Mungkin anda membuka tetingkap terminal dan menulis:
> Node My-Program.js
Pasti sebagai telur adalah telur, program itu akan dilaksanakan. Anda boleh membuat "Hello, World!" Cetak ke terminal dengan Console.log ("Hello, World!");.
CSS tidak boleh melakukannya! Um, baiklah, melainkan jika anda menulis badan :: selepas {kandungan: "Hello, dunia!"; } Dalam fail gaya.css dan buka laman web yang memuat fail CSS. Oleh itu, CSS melaksanakan, dengan cara tersendiri. Ia adalah bahasa khusus domain (DSL) dan bukannya bahasa umum (GPL). Dalam konteks penyemak imbas itu, cara CSS diberitahu untuk dijalankan (
Jika anda sedang mencari perbandingan untuk sintaks CSS untuk konsep pengaturcaraan, saya fikir anda akan dapati mereka. Apakah pemilih jika bukan jenis jika pernyataan yang menjalankan gelung ke atas perlawanan? Apakah Calc () jika bukan pelaksanaan langsung matematik? Apakah sekumpulan pertanyaan media jika bukan suis? Apakah harta tersuai jika bukan tempat untuk menyimpan negeri? Apa itu: diperiksa jika tidak boolean? Eric baru -baru ini membuat titik bahawa CSS ditaip, dan lebih awal, bahawa CSS penuh dengan fungsi.
Untuk lebih baik atau lebih teruk, mempunyai jawapan kepada sama ada CSS adalah bahasa pengaturcaraan mempengaruhi orang. Seorang profesor kolej telah membuat satu titik untuk memberitahu pelajar bahawa CSS tidak lengkap, tetapi kini mempertimbangkan semula kedudukan itu apabila mengetahui bahawa ia adalah. Walau apa pun niat di sana, saya fikir industri itu terjejas oleh profesor sains komputer yang memberitahu pelajar sains komputer tahun demi tahun.
Lara Schenck telah menggali ke sudut Turing-lengkap. Jika anda cuba menyelesaikannya, kelengkapan Turing adalah proksi yang baik. Ternyata CSS pada dasarnya adalah Turing lengkap (dengan menyelesaikan sudut automaton selular peraturan 110), tidak sepenuhnya dengan sendirinya. Ia melibatkan penggunaan pemilih yang agak rumit dan: diperiksa (kejutan, kejutan). Lara membuat titik yang bijak:
Sendiri, CSS tidak lengkap. CSS Plus HTML Plus Input Pengguna adalah Turing Complete!
Namun, katakan anda tidak membelinya. Anda mendapatkannya dan juga mengakui, baiklah, CSS pada dasarnya Turing lengkap,
tetapi ia tidak merasakan seperti CSS (atau HTML untuk perkara itu) adalah bahasa pengaturcaraan kepada anda. Ia terlalu deklaratif. Terlalu spesifik permohonan. Apa pun, saya jujur tidak menyalahkan anda. Apa yang saya harapkan ialah kesimpulan apa pun yang anda datangi, jawapannya tidak menjejaskan perkara yang benar -benar penting , seperti membayar dan menghormati.
Hormat adalah teratur, tidak kira apa yang kita datangi untuk jawapan. Saya tidak menganggap CSS bahasa pengaturcaraan, tetapi ini tidak bermakna saya fikir ia adalah remeh atau bahawa rakan sekerja saya adalah kurang berharga daripada rakan sekerja Python saya.
Bukankah itu bagus? Saya fikir terdapat perbezaan yang menarik antara bahasa markup deklaratif dan jenis bahasa lain, tetapi mereka semua adalah kod.
Oh hentikannya, anda tahu bagaimana jawapan yang bijak membuat saya memerah.
Saya ingin melihat lebih banyak komen yang kurang bernuansa, hormat, dan kurang agenda seperti itu apabila perbincangan ini berlaku.
Atas ialah kandungan terperinci Adakah CSS adalah bahasa pengaturcaraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!