HTML ve CSS’nin programlama dilleri olmaması neden önemlidir?


158

Burada örnek:

Web uygulamaları oluşturmakla ilgileniyorsam hangi dilleri bilmeliyim?

Evet, HTML ve CSS’nin Turing-tamamlanmadığını biliyorum. Evet, zorunlu diller değil, bildirimsel olduklarını anlıyorum. Fakat insanlar neden bu diller hakkında bir soru sordukları zaman bu bilgiçlik (ve tartışmaya açık bir şekilde) gerçeği ile başa çıkıyorlar?


32
Sadece insanlar özgeçmişlerine koyduğunda beni rahatsız ediyor. Daha da kötüsü, jQuery'yi "Language Experience:" altındaki JavaScript'in yanına koymalarıdır.
Josh K,

19
Bana çok açık geliyor: Kimin işe alınacağını veya belirli bir göreve kimin atanacağını bulmam gerekiyorsa, hangi becerilere sahip olduklarını bilmem gerekiyor. Atama bir algoritma uygulama içeriyorsa, ben sadece bir HTML / CSS arka planı olan birine vermeyeceğim. Yalnızca C arka plan yazma komut satırı programları olan birini, birden çok tarayıcıda çalışması gereken karmaşık web sayfalarını yazmaya atamayacağım. İnsanları işe alma veya yönetme konumunda olup olmadığınızı bilmiyorum, ancak bu görevlerin birbiriyle değiştirilebileceğine yemin eden birçok insanla karşılaşıyorsunuz.
Charles E. Grant,

8
Veri sadece aptal kod ve kod sadece akıllı veridir: stackoverflow.com/questions/871833/…
Christoffer Hammarström

14
İnsanlar OP'nin sorusunu daha açık bir şekilde ifade edemeyecekleri sorusunu anlamadılar: “Neden genel bir dilde yapılan bir tartışmada CSS'nin bir programlama dili olmadığını belirtme ihtiyacı duyuyor? ?" Her şeyden önce, ahh. Teşekkür ederim. Sade bir avuç aptal JavaScript hilesi bile bilen herkes bunu elde edecek. CSS ustalığı, orada bulunan ve ustalaşan bir programcı için bir şey ifade ediyor mu? Oh evet. Evet öyle. Bir sonraki Mars rover'ı programlıyor olmamız umrumda değil, bu kesin bir bağ kırıcı.
Erik,

7
XSLT, bu bağlamda düşünülmesi gereken ilginç bir durumdur ...
Dan Diplo

Yanıtlar:


300

Fark nedir, gerçekten mi?

Bir programlama dili ile bu diğer diller arasındaki gerçek ve önemli fark şudur:

HTML ve CSS sunumu açıklarken , programlama dilleri işlevi tanımlamaktadır

Bu farkın neden önemli olduğunu göstermek niyetindeyim, ancak bu konudaki gösterişsizlikler bazen yanlış.

Gerçek bir hikaye :

Bir keresinde "uygun" bir programlama dili kullanarak karmaşık bir performans yönetim sistemi geliştirmek için birkaç ay geçirdim. Çeşitli diğer sistemlerden veri toplama sürecini otomatikleştirdi, bu veriler üzerinde çeşitli manipülasyonlar yaptı ve sonuçları basit bir tabloda sundu.

Canlı olduktan sonra kıdemli bir yönetici benzer bir iş için yazılmış bir araç gördü ve alternatiflerini kullanarak yazdıklarımın yerine geçip geçemeyeceğimizi sordu. Ayrıca, bu yeni uygulamanın birkaç gün içinde yazıldığı çözümümü geliştirmek için haftalar harcadığım için çok üzüldü.

Daha ileri araştırmalar, yöneticinin tercih ettiği seçeneğin hiçbir madde içermeyen tüm sunum olduğunu ortaya koydu: çok fazla renk ve simge ve grafik vardı, ama bunların arkasında kesinlikle hiçbir mantık yoktu. Tüm verilerin elle toplanması ve manipüle edilmesi gerekiyordu. Güzel arayüze rağmen, uygulama aslında işe yaramazdı.

Söz konusu yöneticinin, yaklaşımımın gerçek iş ihtiyaçlarını karşılayan biri olduğuna ikna olduğunu söylemekten memnuniyet duyuyorum.

Sunumun önemi :

Genellikle HTML, CSS vb. Becerilerin bir şekilde "gerçek" programlama dillerindeki becerilerden daha düşük olduğu şeklinde bir ima vardır. Bu ciddi bir hata.

Hikayeme göre, üst düzey yönetici tasarımın kendisi için çok önemli olduğunu hissetti , başlangıçta kendi lehine olan işlevi gözden kaçırmaya hazırdı. Şimdi, eğer bu izole edilmiş bir olay olsaydı, yöneticinin sadece saçma olduğunu söyleyebilirim. Ama değildi. Tekrar tekrar, gösterişli grafiklerden ve etkileyici widget'lardan etkilenen, ancak ham işlevsellikten ve teknik başarılarımdan etkilenmeyen kullanıcılarla tanıştım. Burada öğrenilecek birkaç ders olduğunu düşünüyorum:

  • İnsanlar yazılımı anladıkları kriterler üzerine değerlendirir. Genellikle iyi görünümlü ve çirkin arasındaki farkı anlarlar, ancak teknik nüansları nadiren takdir ederler.
  • İnsanlar görünüşe göre kandırılıyor. Bu iyi bir şey olmayabilir, ama birlikte yaşamamız gereken bir gerçektir.
  • Görünüş, insanların yazılım hakkındaki düşüncelerini etkiler. İnsanların yazılım hakkında nasıl hissettiği önemlidir. Aslında, insanlar bazen kendilerini işlevsel olarak üstün olan yazılımlara karşı kendilerini iyi hissettiren bir yazılımı tercih ediyorlar . Gerçekten de, kendilerini iyi hissettiren aletler ile teknik olarak üstün aletlerden daha verimli olabilirler. Bu ölçüde, kullanıcılarımız kandırılmaz. Aslında akıllı ve düşünceli bir seçim yapıyorlar.
  • Programcılar olarak, fonksiyona odaklandıkça sunumun rolünü sık sık ihmal ediyoruz. Bir dereceye kadar bu doğru ve uygun. Ancak, çalışmalarımızda müşterilerimiz için önemli olan başka bir boyut olduğunu kabul etmek önemlidir.

Bu yüzden sunum odaklı diller (HTML, CSS) önemlidir. Bu araçları etkili bir şekilde kullanabilenlerin katma değeri göz ardı edilmemelidir.

Gerçek programlama dillerinin önemi

OP'nin belirttiği gibi, "gerçek" programlama dilleri Turing Complete (Tamamlandı). Uygun bir üzücü inek olarak, bunu inanılmaz derecede etkileyici buluyorum. Bu, bir TC dilinde yazılmış herhangi bir program için , işlevsel olarak eşdeğer bir programın herhangi bir başka TC dilinde yazılabileceği anlamına gelir . Tabii ki, bu tüm dillerin aynı olduğunu söylemek değildir. Her birinin belirli görevler için daha az ya da çok uygun olmasını sağlayan güçlü ve zayıf yönleri vardır. Ancak, G / Ç bir yana, bu tüm programların tüm gerçek programlama dillerinde yazılabileceği anlamına gelir.

(Bu arada, önemli olan TC.

Tabii ki, aynı HTML veya CSS gibi bir biçimlendirme dili için doğru değil. Aslında, bu dillerin çözemediği tüm problem sınıfları vardır . Ben programlayabilir Nerede şey istediğim düzen motorları dahil - - gerçek bir programlama dilinde sadece TC olmayan dillerle aynı şeyleri elde etmek mümkün değildir.

Hikayemde vurguladığım gibi, HTML ve ilk tanıtımı sunum yapmak için kullanılır. İşlevsellik üretmek için gerçek programlama dilleri kullanılır.

Programcılar neden bu konuda bilgi verici?

  1. Programcılar becerilerini geliştirmek için çok fazla zaman, çaba ve para harcarlar. İnsanlar doğal olarak yatırım yaptıklarına değer verir (“kalbiniz, paranızın olduğu yerdir”).
  2. Programcılar, UI tasarımcılarının elde ettiği hızlı sonuçlarla karşılaştırıldığında, sonuç üretmek için geçen süreyi haklı gösterme gereksinimi duyarlar. Bunu yapabilmek için iki grubun gerçekte yaptıkları arasında bir ayrım yapmaları gerekir .
  3. Çünkü işverenlerin doğru insanları doğru işlere uygulaması gerekiyor. (Genellikle teknik) farkları açıklığa kavuşturmazsak, yöneticiler kolayca yanlış çağrıları yapar.
  4. Çünkü yukarıda belirtildiği gibi gerçek ve temel bir fark var.

Pedantik olmak her zaman uygun mu?

Kabul edelim ki, programcılar olarak biz doğal olarak sersemletici bir şeyiz . Bu bölge ile gider. Programcı olmayanlar ne yaptığımızı anlamadıklarında çoğumuzun yanmasına yardımcı olmaz.

Bununla birlikte (ve dürüst olmak gerekirse, bu benim doğal içgüdülerime aykırıdır), her küçük ayrımdan kaymaları halinde insanları çağırmamız gerektiğini düşünmüyorum .

Buradaki önemli şeyler bağlam ve perspektiftir .

Biyolog açısından bakıldığında domatesin meyve olduğu söylenir. Ama onları süpermarkette satın aldığımda onları sebzeler arasında aradım. Neden? Çünkü teknik ayrım bu bağlamda önemli değil . Üstelik, bu ayrım aslında onların yararları ile sonuçlanacaktı: örneğin bir meyve salatası içine domates ekleyecek kadar kafam olsaydı, örneğin.

Bilgisayar dilleri ile aynıdır. Programlama dilleri ile diğer diller arasındaki farkın gerçekten önemli olduğu zamanlar vardır . Bununla birlikte, çoğu zaman, hepsini bir araya getirdiklerinde, mükemmel bir şekilde iletişim kurabiliriz. OP ile bağlantılı soruya durumunda, gerçekten önemli değildi gerçek programlama dilleri Biz onları hangi hangi dillerde. Ayrımı işaret etmek, tartışmayı hiçbir şekilde ilerletmedi. Neyse ki, küçük bir gürültü eklemek (ve ilginç bir tartışma için teşvik edici olmak!) Dışında, OP ile bağlantılı olan serserinin bir sonucu yoktu. Ancak en kötüsü, bilgiçlik olumsuz duyguları köreltebilir ve en azından karıma göre ilişkilere zarar verebilir.
:-)

Programcılar arasında bilgeliğe karşı nasıl başa çıkılır

Bir vaiz arkadaşım bir keresinde başlıklı bir vaaz getirmişti:

Bu, üzerinde ölmeye değer bir tepe mi?

Hangi savaşların savaşmaya değer olduğu konusunda stratejik bir değerlendirme yapan generallere atıfta bulunuyordu: kazançlar maliyete değer mi?

  • Bu ayrımı yapmak için tartışmanın akışını kesmeye gerçekten değer mi?
  • Soyluğum kibir duygusundan mı yoksa geçmişteki bir acıdan mı kaynaklanıyor?
  • Yorumlarım benimkilerin yanı sıra başkalarının becerilerine de değer veriyor mu?

Tabii ki, ayrım yapılması gereken zamanlar vardır. Amacım, katkı yaptığımda, kolektif çabalarımıza değer katacağı.

Sonuçta, her gerçek programcının işi .


4
T-SQL veya PL / SQL hakkında konuşmuyorsanız, SQL'in Turing-tamam olduğunu düşünmedim.
SinirliFormsDesigner ile

@FrustratedWithFormsDesigner: Haklısın! Beni aldığın için teşekkürler. (Ancak, şu
an durduğum

1
Çok iyi cevaplar. Bir web geliştiricisi olarak, müşterilerin teklif edilen işlevsellikten ziyade "gösterişli" bir tasarımla çok daha fazla etkilendiği durumları tekrar tekrar gördüm. Bu, saf programcımızın içgüdülerine (bu fonksiyonelliğin kral olması gerektiği gibi) hakaret etse de, tehlikemizde göz ardı ettiklerimizdir.
Dan Diplo

4
+1: Joel Spolsky'nin işlevi ve gösterişli GUI ile ilgili problemi çözen ilginç bir blog yazısı var. Özellikle işlevsellik yerinde değilken% 100 bitmiş ve gösterişli bir GUI gösterme tehlikeleri. İyi bir okuma, okumadıysanız. joelonsoftware.com/articles/fog0000000356.html
Leo

3
"Teknik olarak üstün aletlere göre kendilerini iyi hissetme aletleriyle daha verimli olabilirler" - Doğru, doğru, doğru! Apple işlerini bu konuda inşa etti. Beni yanlış anlamayın, Mac'in de özü var, ancak bazı insanların bir Mac makinesine Linux veya Windows'un neredeyse iki katı kadar para vermesini sağlayan şey , havalı görünmesi ve kullanımı iyi hissettirmesi .
GlenPeterson

116

Bir İnşaat Mühendisi veya Makine Mühendisi'ne "Yazılım Mühendisliği" okuduğunuzu ve size "Yazılım Mühendisliği" nin gerçek bir mühendislik olmadığını söyleyecektir .

Bir F-16 pilotuna, eğlence için Cessnas'ı uçurduğunu ve gerçek bir pilot olmadığını söyleyeceğini söyle .

Bir doktora masör olduğunuzu söyleyin ve o size söyleyecektir ... peki, oraya gitmeyelim :-)

Sanırım çoğunlukla insanlar mesleği hakkında, hevesliler veya gerçekten "layık olmayan" kişiler tarafından sızma fikrinden hoşlanmıyorlar.

Şimdi, adil olmak gerekirse, HTML ve CSS'nin programlama dilleri olmadığı oldukça açık . Artık, .docx formatının bir programlama dili olduğunu ve sizin bildiğiniz tüm HTML ve CSS kesinlikle yanlış ise bir programcı olduğunu iddia etmek için programlama dilleri değildir. Ancak bence cevaptaki aracın bir kısmı yukarıda söylediklerime atfedilebilir.

Ayrıca, bağladığınız soruda, sorgulayıcı HTML ve CSS'yi bir "programlama dili" değil "dil" olarak adlandırdı. HTML bir işaretleme dilidir ve CSS de bir dildir (CSS'yi ne tür bir dil olarak adlandırırsınız bilmiyorum?), Bu yüzden onu aramak için onu çağırmanın biraz adaletsiz olduğunu düşünüyorum. " ...


7
“Ne tür bir dilin CSS olduğunu söylersin bilmiyorum?” - Bir tutam "stil açıklama dili" de yapardın.
ocodo

28
@ acidzombie24: "HTML" deki "L" ne anlama geliyor?
Dean Harding

8
Eğer sözdizimi ve anlambilim varsa, bunun dil olmadığını iddia etmek zor. HTML ve CSS, bu ölçütlere göre her iki dilde de (İngilizce, Esperanto, Klingon ve tartışmalı olarak UML). Hiçbiri olsa, "programlama" dilleri değildir.
Zach,

6
@ Dean Harding - Hiper Metin İşaretleme Legos?
VirtuosiMedia

4
CSS, tarzı tanımlayan bir DSL'dir (Etki Alanına Özel Dil) (yani etki alanı görsel estetiktir)
Paul

9

Bu benim için çok önemli değil.

Ancak, kimin yaptığı için, HTML, CSS, XML, vb. Ve Gerçek Programlama Dilleri ™ arasındaki farkın, yapı malzemeleri olarak ahşap ve boya arasındaki fark gibi olduğunu farz ediyorum . Sen olamaz inşa Tahtadan yapabileceğiniz gibi boya ile şeyleri ve aynı şekilde sen olamaz programlamak Bir RPL yapabileceğiniz gibi HTML ile.

Yine de, bazı konuşmalar için böyle bir ayrım yapmanın alakasız ve bu nedenle sinsi ve sinir bozucu olabileceğini düşünüyorum.


1
XML kötü bir örnektir çünkü HTML / CSS'den daha geneldir - XSLT örneğin hem XML hem de Turing-complete'dir. Bence XML gerçekten sadece bir sözdizimi kadar bir dil değil - belirteçlerin nasıl tanımlandığını ama ne anlama geldiklerini belirler.
Tikhon Jelvis

@TikhonJelvis Sanırım temelde aynı şeyi söylüyoruz, ancak bunu yaparken de amacımı kanıtlıyorsunuz. Tüyleri XML'in (uzatılabilir İşaretleme Dili) bir "dil" mi yoksa "sözdizimi" mi olduğuna göre ayırma, yaptığım noktayla çoğunlukla alakasızdır ve bu yüzden ...
Eric King

6

Bazı web sitelerinin html / css bölümlerinde programlama bölümündeki kadar çok iş olduğu için, bu "önemli" bir ayrım olmayabilir.

Ama bir o anlama geliyor bilmiyor kimse web geliştirme yapan bir ekip yeri yoktur, çünkü önemli bir ayrım.

Bir tasarımcı HTML'nin programlama olduğuna inanıyorsa, Adobe araçlarıyla tasarım yapmaya devam etmesine ve baskı ile ilgili tasarımlar yapmasına izin verin; ama web uygulamaları hakkında söyleyebileceği hiçbir şeye inanmayın.

Eğer bir geliştirici tasarımcıların üstünde olduğunu düşünüyorsa, çünkü 'dilleri Turing-complete oldu, tasarımcıyla iyi çalışmasını beklemeyin ya da kodunun tamamlandıktan sonra' onaylanabilmesini 'beklemeyin.


@Javier: Bir "programlama dili" nin tanımı nedir?
Christoffer Hammarström

@Hristoffer Hammarström: resmi bir tanım vermeye zorlanırsa, Turing-tamamlama ile giderdim; ama gayri ben sadece bir program olduğunu söylemek yapar bazı girişine yanıt olarak, şeyleri. Genellikle, çalışma zamanı if ... thenyapısı yoksa ve daha önce bilinmeyen sayıdaki şeyleri tekrarlamanın bir yolu varsa, bunun bir programlama dili olmadığını söylemeye meyilliyim. Tabii ki, tanımı zorlaştıran bazı saçak dilleri var; fakat HTML / CSS bundan çok uzak .
Javier,

@Javier: Kanonik "Merhaba Dünya" nın giriş yapmadığını belirten bir program olduğunu söyler misiniz?
Christoffer Hammarström

@Javier: Wikipedia'daki ( en.wikipedia.org/wiki/… ) bir tartışmaya göre , Pixel Shader dillerinin erken sürümleri Turing-complete değildi ("genelleştirilmiş yineleme özelliği" yok, yani "bir şeyi daha önce tekrar etmenin bir yolu-) bilinmeyen sayıda "". Bunlar sadece programcılar tarafından popüler oyunlarda Grafik İşleme Ünitesinin programlanmasında kullanılan dillerdir. Hala programlama dili olmadığını söyler miydin?
Christoffer Hammarström

@Christoffer: Merhaba dünya, giriş gerektiriyor: yürütmesini başlatmanız gerekiyor. Pixel Shader hakkındaki gözleminiz yine de ilginç.
Robert Harvey

5

"Beyanname, zorunlu değil" derken kafanın üstüne vurdun. İşaretleme (HTML, CSS veya her neyse) bir şeyleri açıklar. Programlamanın tek amacı bir şeyler yapmaktır .

İşaretlemeyi kullanmak için gereken yetenek kümesi, programlamak için gerekli olan yetenek setinden tamamen farklıdır.

İşaretleme ile çözülen problem türleri, programlama ile çözülen problem tiplerinden tamamen farklıdır.


16
Saf fonksiyonel programlama dili, doğası gereği beyandadır. Öyleyse Linq, Python'un liste anlayışı, XAML, XSLT, SQL ve Prolog. Bunların hepsi, programlama dilleri ve / veya konseptleri iyi niyetli. İken en programlama dilleri zorunludur, bu değil belirleyici özelliği. Hiç.
Konrad Rudolph

@KonradRudolph - Tamamen işlevsel programlama dillerinin herhangi bir şekilde bildirimsel olduğunu düşünüyorsanız, onları çok iyi anlamamalısınız.
Jonathan Cast,

@jcast Bir şeyi yanlış anlamam tamamen mümkün. Fakat o zaman bu konuda uzmanlar da görünmektedir; Genel bir referans için, Vikipedi (yalnızca) işlevsel programlama dillerini bildirimsel olarak sınıflandırır. Spesifik bir örnek olarak, saf bildirim dilleri üzerinde çalışmak için doktora derecesine sahip olan Paul Bone da bu tanımı izler. Tanımda hangi nedenle suçlandığını bilmek isterim.
Konrad Rudolph

5

Bazı insanlar için önemlidir, çünkü ne yüzeyde roket bilimi vardır, ne de aslında umursadığınız 5 ila düzinelerce farklı ortamda farklı şekilde uygulandıkları için onları çevreleyen çok sayıda arcana vardır. Bu tür bir öngörülemezlik ve zanaata gösterilen dikkat, belirli riskler yüzünden dehşete düşmüş, hatta bir dereceye kadar güvence altına almak zorunda olduklarından daha fazlasını öğrenerek daha da çok şey öğrenerek, çok daha fazla dehşete düşüren belirli bir teknoloji uzmanını korkutuyor.

Biri bana hangi dilleri bildiğimi sorsa ve CSS'yi oraya attım ve "ama bu GERÇEK bir dil değil" dedilerse, IE 5, IEs 6-8 ve IE9 + 'da bir div'i dikey olarak nasıl merkezleyeceklerini sordular. Daha sonra yuvarlatılmış köşelere, alfa saydamlık sorunlarına, şu an gerçekten alakasız olmaya başlayan ve muhtemelen muhtemelen bilen söz konusu uber kodlayıcı için düzinelerce daha fazla konu olan tüm bu saçma tabloların ardındaki GERÇEK suçlusuna geçebiliriz. Dil ve 10 yıl önce üniversiteye girmeye zorlandığı sınıflar nedeniyle, işlevsel olarak okur yazar olduğu bir iki tanesini iddia ediyor.

Kesinlikle 'dil'. Onlara 'programlama dilleri' demem. Bu dilde 'kodlamada' yazma sürecini tanımlarken kendimi rahat hissederim.

Ancak endişelendiğim kadarıyla, CSS konusunda uzmanlaşmayı başarabilen herkes chutzpa'ya ve mükemmel bir programcı olmak için çalışma ahlakına sahip, zaten nesne yönelimli düşünme konusunda bir geçmişe sahip ve hiç şüphesiz onun ne olduğunu düşünmeyi öğrendi. Şimdi yazdığı çalışmaları geleceğe yönelik 25 projeyi etkileyebilir.


2
+1. Kaç kere "programcı" duyduğumu bilmiyorum, HTML / CSS'yi basit ve gerçek programlama olarak göstermiyor. Sonra, madde imli listelerinin neden Firefox’ta düzgün bir şekilde sıralandığını anlayamadıkları zaman, ellerini yukarı atıyorlar ve tüm Web’in modern yazılım için uygun olmadığını açıklıyorlar :(
Graham

3

HTML ve CSS programlama dilleri değildir. AŞ bunu.

Ancak: JavaScript bir programlama dilidir. Makine tarayıcı. PHP bir programlama dilidir. Makine sunucuda sanal bir makinedir.

Dolayısıyla, yalnızca HTML ve CSS kullanıyorsanız, herhangi bir programlama yapmıyorsunuz (bazı mühendislik işleri yapıyor olsanız da).

Ancak, JavaScript, PHP veya başka bir betik dili kullanıyorsanız. Programlama yapıyorsun.

REAL programlama dilleri gelince. Bir makinede çalışıyorsanız (gerçek veya sanal). Makinenize bir şeyler yapmasını söylemek için KENDİ algoritmalarınızı kullanıyorsunuz. O zaman bir REAL programlama dili kullanıyorsunuz.


6
Bu yüzden HTML, CSS ve SQL ile başa çıkabileceğimizi tahmin ediyorum çünkü sonuçta gerçek programlama dilleri değiller . Aslında IDE'leri de kullanabiliriz, çünkü tuzuna değer herhangi bir programcı bir komut satırı editörü ile yapabilir.
Robert Harvey

4
Bu cevabı kişisel olarak reddetmedim (sanırım -6 yeterli!) Ama tahminlerin sebebi bunun aslında soruyu cevaplamamasıydı. Soru "HTML ve CSS programlama dilleri mi?" Değil, soru "neden önemli?"
Dean Harding,

6
@Robert Bu tamamen aldatıcı. “X değersizdir” Ricardo'nun “X bir Y olmadığı” argümanına uymaz.
Matthew,

4
@Lennart Regebro @Robert Harvey: @ Mathew Read'in pozisyonu, buradaki konuşmanın nubbin'idir - bir üstünlük duygusunu bir sahtekârlık inkarıyla eşitliyorsunuz. HTML / CSS son derece zordur, benim için yapabilecek insanları işe alıyorum, çünkü yeterince iyi bir yerde olmadığım için, becerilerim yok. Teknik bir tasarım becerisidir, programlama değildir .
öğleden

3
"Programlama" kelimesini bu kadar geniş yapmak, neredeyse anlamsız hale getirmektir. Anlam bundan daha dardır ve sizin farklı bir fikriniz olabilir, ancak dilin çoğunluğun onu ifade etmek için kullandığı anlamına gelir.
Matthew

3

Programlama dili biraz yanlış bir terimdir, çünkü uygulayıcılar ve uzman kişiler tarafından da kullanılan ortak bir terimdir. Uygulayıcıların meslekten olmayan kişilerin genellikle sahip olmadığı bu terimin farklı bir anlamı vardır. Normalde onların tanımı, hemen anlamadığım komik bir kelime / sözdizimine sahip olması ve programcıların bunu kullanmasıdır, o zaman bir programlama dili olmalıdır. Tamamen belirsiz değil, ama yanlış olduğuna katılıyorum.

Beyanname, emir kipi ve turing tamamlandı gibi sözler, çok özel anlamları olan daha kesin terimlerdir. HTML / CSS'nin neden bir programlama dili olmadığı gibi bir soru sorduğunuzda, bir programlama dilinin gerçekte ne olduğunun daha kesin bir tanımını istiyorsunuz. Bilinçli değiliz, ancak sorunuza cevap vermeye çalışıyoruz. Onları google bile olsa ne anlama geldiğini anlamak zor olsa da kullanmak için en iyi şartlar mı? Bağlı olmak. Kısa veya uzun cevapları istediniz mi. :-)

Programlama dillerinin tipik olarak programlayıcılar tarafından tam olarak tamamlandığı düşünülmektedir, ancak bu ne anlama geliyor? Dilin davranışı veya nasıl yapılacağını tanımlayabileceği anlamına gelir. Resmen mantık diyoruz. HTML / CSS, sağ üst köşede bir düğme olduğunu veya 4 sütun 5 satırlık bir tablo olduğunu, ilk iki satırın sarı olduğunu ve alt satırın yeşil metni olduğunu ve tablodaki her hücrenin 5 piksele sahip olduğunu açıklayabilir. içeriği etrafında boş alan.

HTML / CSS'nin yapamadığı şey, düğmeyi tıklattığınızda olanların davranışını veya mantığını ifade etmektir. Bu düğmeyi tıklattığımda değerleri bu tablodan çıkarıp bunları ekleyip, bu değeri tablonun altındaki yeni bir satıra yazamıyorum diyemem. Davranışı betimleme kabaca, aşırı bilgiçlik olmadan Turning-complete'a eşdeğerdir.

Daha doğrusu Turing-complete, dili kendi içinde uygulayabileceğiniz anlamına gelir. Bu, bir javascript dizisini alan bir javascript programını yazabileceğim ve onu çalıştırabileceği (ve eval () işlevini kullanmayacağı) anlamına gelir. Aslında, herhangi bir Turing dilinde yazılmış bir programı alabilecek ve onu değerlendirebilecek bir javascript programı yazabilirim. Turing'in eksiksiz olmasının anlamı budur. Tamamlanan tüm diller hangi programların ifade edilebileceği ile aynıdır. Eğer düşünürseniz oldukça şaşırtıcı vahiy.


Turing-complete , dilin bir Turing makinesini taklit etmek için kullanılabileceği anlamına gelir (veya herhangi bir Turing-hesaplanabilir işlevi hesaplayabilir).
mipadi

3
@pipadi - Çok doğru ve kesin bir tanım size vereceğim, ancak bunun gibi sorular soran birisi "Peki, WTF bir Turing makinesidir? WTF, Turing ile hesaplanabilir bir işlevdir?" Turing Complete'i anlamıyorlarsa, Turing Machine'i veya Turing-hesaplanabilir fonksiyonunu da anlayacaklar mı? Sözlükteki retorik kelimeyi aramak gibi ve "retorik ile ilgili, retorik ile ilgili" diyor. Bu tanım size retorikliğin gerçekte ne anlama geldiğini anlatmaz ve sizi anlamadığınız başka bir kelimeye işaret eder.
chubbsondubs

1

İşte benim iki kuruş. HTML ve CSS açıkça programlama dilleri değildir. Bu nedenle, "Programming Languages" altındaki birisinin özgeçmişinde HTML veya CSS gördüğümde, bu bana ne hakkında konuştuğunu bilmediğini söylüyor.

Bunun dışında, hayır, gerçekten önemli değil.

Bu arada, programcılar genellikle bilgiçlik yapma eğilimindedir. Bu sadece işle geliyor.


4
Yani, aklınızda, başka biri için bir tane işaretleme dilimi olan alanını boşa harcamak istemediklerinden, sadece bu konuda yaklaşık birisinin bulunabileceği bir yer yok mu? Bana göre bu, yararlı olanın ötesinde bir şey değil.
Jon Hopkins

1
+1 'programlama' altında HTML / CSS ile bir CV gördüğümde, daha fazla okumam. ya farkı bilmiyor (bu yüzden benim için faydası yok) ya da farkı bilmediğimi umuyor (yani onunla çalışmak istemiyorum)
Javier

2
@Jon Hopkins: Ayrıntılara dikkat, bir programcıda gerekli bir kalitedir. HTML'yi programlama dillerinin altına koymak yaklaşık değildir, özensizdir. Bir programcı olarak bir işe başvuruyorsanız, bu çok kötü bir ilk izlenim bırakıyor.
Dima

1
@Dima: kesinlikle. kayıt dışılığın iyi olduğu, bazen yazılı olsa bile, ticaretin çok temel kavramlarındaki yanlışlık kabul edilemez.
Javier

1
Bu gülünç. Özgeçmişler ve röportajlar şu anda endüstrimizin en sorunlu kısımlarından biridir. Farkı bilen birinin hala "Programlama Dilleri" altında "HTML" yi koyduğunu bilemezsiniz, çünkü bazı İK drone'ları "işaretleme / tasarım / etc" altında farketmeyeceklerdir ve özgeçmişlerini başlatacaklardır. En azından onları çağırmalı veya getirmelisin. Yüzünüze "HTML'de programladıklarını" söylerlerse, bu gerçekten kırmızı bir bayrak. Fakat yine de, şimdi HTML 5'te neler başarabileceğinizi düşünün! Gerçekten böyle bir gerginlik mi?
Graham,

0

Önemli değil. Ve aynı zamanda bir tanım meselesi. Bir programlama dili nedir? Bazıları Turing-tamamlanmış olması gerektiği anlamına geliyor. Diğerlerinin de HTML'yi programlama dili yapan başka tanımları vardır. (Örneğinize, programlama dilleri bile değil, açıkça belli oldukları diller bile değillerdi).

Tavsiyem: Bu tür anlamsız ve birçok anlamda yanlış iddiaları bile gösteren insanları görmezden gelmeye çalışın. Bu sadece dilbilgisi nazi-isminin bir varyasyonu. HTML'yi bir programlama dili olarak adlandırmak, anlamlı bir şekilde yanlış değildir.


7
-1 HTML bir programlama dili olmadığı için anlamlıdır , böyle bir şeyin temel unsurlarına sahip değildir - sadece bir sayfadaki düzeni açıklar, aynı şekilde teknik çizimdeki bir kitap da bir programlama dilidir.
Orbling

1
@Orbling: Bunun ne anlama geldiğinin en yaygın tanımlarına göre, alana özgü bildirimsel programlama dilleridir. Örneğin bakınız: en.wikipedia.org/wiki/… Yani, üzgünüm, başarısızsınız. Mükemmel yaygın ve mantıklı tanımlarına göre, onlar olan programlama dilleri. Ve tamamen farklı, ama aynı derecede mantıklı ve ortak tanımlara göre, programlama dilleri değildir. Her iki görüş de doğrudur. Ancak başkalarının kafaları hakkındaki görüşlerini bozan, güvensizdir ve HTML'den daha üstün hissetmeleri gerekir.
Lennart Regebro

8
"Program" kelimesinin genel olarak üzerinde anlaşmaya varılan tanımlanmış bir anlamı vardır. HTML ile bir program yapamazsınız, bu nedenle HTML ile bir şey yapmak "programlama" değildir. Farklı bir şekilde tartışan herkes, iddialarında kullandıkları kelimelerin anlamlarının keyfi olarak değiştirilebileceğini iddia ediyor ve bu durumda sözlerini keyfi bir şekilde hiçbir şey ifade etmeyecek şekilde atayacağım.
Matthew

4
@Orbling: "HTML adamlarıyla çalışıyorum" mu yeni "arkadaşlarımdan biri {buraya azınlık grubu ekle}" mi?
Anon.

2
@Lennart Regebro, bir programlama dilinin her standart tanımı (Wikipeida'da bile) bir programlama dilinin bir algoritma tanımlayabildiğini söylüyor. Bir algoritmayı HTML ve CSS'de nasıl tanımlayabilirsiniz?
Charles E. Grant,

0

Bence bu aşağıya iniyor - HTML ve CSS, biraz anlayışlı olmayı gerektirecek kadar karmaşık olsa da, üretilen raporların formatı için en uygun olan sunum dilleri. Bu nedenle, yalnızca bunları yapabilen insanlar kodlayıcı sayılmaz. Bazı kodlayıcıların ortalama kelime işlemcisinin HTML'den ziyade stil metnine daha fazla komut sözdizimi aldığını hatırlamak için yeterince uzun süredir hesaplandığını unutmayın.

Bazılarının 'gerçek' dil olarak adlandırdığı şey, verileri bir şekilde bir rapor oluşturmak üzere işleyen dildir. Ya da oyun yazmak için kullanılabilecek bir şey. HTML ve CSS'yi içeride ve dışarıda bilmek değerli bir beceridir, ancak ön uçta JS ve arka uçta Java, PHP, Perl, Ruby, Python, C / C ++ veya C # bilgisi ile birleştirilir.

Buna karşılık, herhangi bir web ön uç teknolojisine sahip olmayan bu 'gerçek' dillerden yalnızca birini tanıyan biri, kodlayıcı olarak kendi esnekliğini çok kısıtlıyor.


Tamamen bilgisayar tarafından yürütülen ve yürütülen bir dili öneririm. C kodunda hata ayıkladım ve CSS stillerinde hata ayıkladım. İkincisinin eskisinden daha uzun (daha uzun olmasa da) daha uzun süre alabileceğini kesin olarak söyleyebilirim (bazı kişilerin ne kadar korkunç bir şeye bağlı olarak, çalışmayı denediğiniz özelliklerin belirsiz olduğu gibi bir işaretçi ile yaptıklarını ve * & ^ % $ @ tarayıcıda yanlış görünüyor). Yalnızca HTML çok fazla bir şey ifade etmiyor, ancak CSS'nin tam ifadesiyle birleştiğinde çok ilginç olabilir.
Danny Staple,

2
CSS ile uğraşmaktan ve bunun çocuk oyuncağı olacağını düşünen devlerin işaretlemesinden daha kötü bir şey yoktur.
Erik,

0

Mantıksal "sol beyin" veya yaratıcı "sağ beyin" güvercin deliği / basmakalıp, birçok insanın yetenek setlerini doğru bir şekilde tanımlar. Tecrübelerime göre, "HTML / CSS bir programlama dilidir", HTML / CSS'de iyi olan kişilerin diğer programlama görevlerinde de iyi olup olmadıklarına ilişkin daha fazla şey.

Son 13 yılda birlikte çalıştığım web tasarımcılarının çoğu, web geliştirme yapıyorum, çalışan HTML ve CSS oluşturabiliyordum, ancak daha zorlu programlama zorluklarıyla başa çıkamıyorum (en basit kesimden daha fazlası) yapıştırılmış JavaScript). Hot-shot programcılarının ve veritabanı tasarımcılarının çoğu, genel olarak HTML / CSS veya sunum ile iyi bir iş yapmak için görsel sunumla ilgilenmiyor. Çoğu aslında denemeyi reddediyor.

HTML ve CSS bazı programlama becerileri gerektirir : deneme, problem çözme, dikkatli test etme, kalıtım anlayışı ... Ama en azından eşit sayıda tasarım becerisi gerektirir: renklere duyarlılık, çizgi, aralık, denge - çoğu aynı İyi bir fotoğraf yapan görsel kompozisyon becerilerinin çeşitleri.

HTML / CSS bir düzen veya sunum dili olduğundan, veri akış diyagramının sonundadır. Akış yönünde başka hiçbir kod yoktur. Birinin iyi bir API, hizmet veya veritabanı şeması tasarlayabilmesi için ihtiyaç duyduğu daha geniş tasarım becerileri HTML ve CSS'de kullanılmaz. Genel olarak HTML veya CSS ile ilgili herhangi bir şeyi modülerleştirmeye gerek yoktur veya varsa, bunu yapmak grafik tasarımcısına bağlı değildir. Herhangi bir işlevselliğin HTML / CSS ile yapılması nadirdir . Açılır menüler muhtemelen en yaygın istisna olmakla birlikte, kod tasarlama yerine web'den bir tarifi kesip yapıştırarak yapılabilir.

Alışılmadık bir durumdur, ancak bir programcının bazı görsel tasarım veya düzen becerilerine sahip olması veya bir tasarımcının bazı programlama becerilerine sahip olması imkansız değildir. Bu insanlar bir web ekibinde özellikle değerlidir çünkü çoğumuzun sahip olduğu bir boşluğu kapatmaya yardımcı olurlar. Ancak, genellikle klişelere maruz kalırlar, HTML / CSS yapabilmenin "gerçek bir programcı" ya da tam tersi için imkansız olması. Ancak bu yetenek kombinasyonu aynı programcının iyi bir denizci, ressam, aşçı olması ya da boş zamanlarında uyguladıkları başka bir beceriye sahip olmasından daha fazla imkansız değildir.

Diğer insanların söylediği gibi, bu ayrım çoğu zaman işe alınırken odaklanır. Geçiş yetenekleri olan insanlar nadir olduğundan, iş ilanlarının çoğu bir beceri setini veya diğerini hedeflemelidir. Bir programcı HTML / CSS'yi "Programlama Dilleri" altında listeliyorsa, genel programlama görevlerini yerine getiremediklerini veya belki de programlama tanımlarının çok dar olduğunu belirten bir kırmızı bayrak yükseltir. Belki yapabilirler, sadece bir soru ortaya çıkarır. Bir tasarımcı HTML / CSS'yi listeliyorsa, kesinlikle istenen görsel efekti oluşturma sanatsal yeteneğine sahip olduklarını görmek için portföylerine bakmak istersiniz.

HTML / CSS, art arda gerçek programlama dilleri olarak algılanamaz, çünkü temsil ettikleri yarımküre bölmesini geçemeyen insanları ezmekten daha güvenli ve sosyal olarak daha kabul edilebilirdir. Tabii ki, bazı insanlar bu inhibisyona sahip olmayabilir. Aslında sık sık, "[Buraya departman omurga işlevselliği ekle] mi yazdı? Sadece HTML yaptığını mı düşündüm?" Diyen bir yöneticiyle çalıştım.

Harika soru!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.