Dil şartnamesini okumaya değer mi? [kapalı]


18

Dil veya benzer bir şey için bir derleyici / yorumlayıcı yazmayacaksanız, dil özelliklerini / standart belgeleri (örneğin Java Dil Belirtimi ) okumaya değer olup olmadığını merak ediyorum ? Böyle bir kitap okumanın kimsenin dile ilk maruz kalması olmaması gerektiğini anlıyorum, ancak kitabın daha ince ayrıntılarını öğrenmek için harika bir yol olabilir.

Hiç rahatsız oldun mu ve diğerleri mi?


4
Bir dil spesifikasyonu kapaktan kapağa okunmak anlamına gelmez, sadece bir referanstır.
Mahmoud Hossam

Yanıtlar:


18

Temel olarak oldukça basit bir soruya geliyor: dilin yetkili, ayrıntılı bilgisini mi istiyorsun yoksa kullanmak için yeterince iyi bilmek, muhtemelen iyi bilmediğin parçalar olduğunu ve muhtemelen diğerlerini anlamaktan memnun musun? hiç bilmediğiniz parçalar?

Temel olarak, neredeyse "dil avukatları" olarak doğmuş gibi görünen bazı insanlar var - bilmedikleri dilde birkaç köşe veya çatlak olsa bile dinlenmeyecekler (yapamayacaklar) ve / veya anlayın. Bunların birçoğu nispeten basit dillere yönelmektedir, çünkü bu ayrıntı düzeyinde daha karmaşık dilleri öğrenmek herhangi bir kişi için genellikle imkansızdır.

Çoğu programcı için bu tamamen zaman kaybı olacaktır - dili (makul) iyi kullanabilmek için yeterince dil bilmek oldukça mutlu ve üretkendir. Bunun ötesinde, sadece umursamıyorlar. Dil bir araçtır ve aracı amaçları için yeterince iyi kullanabildikleri sürece, bilmedikleri başka şeylerin olması büyük ölçüde önemsizdir.


3
Son paragraf için +1. Çoğu programcının fark etmesi gereken şey budur - John Skeet (C # ile ilgili her şeyi bilen, ancak başka bir şey hakkında hiçbir şey bilmeyen - SQL sorularını yanıtladığını görmediler) mi yoksa sadece bir kullanıcı mı, ancak diğer birçok teknoloji mi? bu da uygulamayı daha pratik ve hayatı daha ilginç kılıyor.

2
@Developer Sanat: Ama Jon Skeet tanrıdır;)
Anto

1
@sbi: Dilin (ve karmaşıklığının) açıkça önemli bir faktör olduğunu kabul ediyorum. Standart boyut mutlaka çok fazla bir şey ifade etmez. Örneğin, C ++ standardının uygun dili kapsayan kısmı sadece ~ 400 sayfa uzunluğunda, Java dili özelliği ~ 500'dür. Gerçekten Java bazı iddia neredeyse "temizlenmiş" C ++ olduğunu düşünmese de, neredeyse C + +% 25 daha karmaşık olduğuna inanıyorum.
Jerry Coffin

3
Sanat @Developer - Jon Skeet hakkında sert biraz, o şey için rozetleri var (SQL dahil!)
Shug

2
@dietbuddha: Kesinlikle cehaleti mazur görmek ortalama değil, ama adalet içinde çoğu insan için daha az bir soru olsun onlar daha bir şey, öğrenmelidir neyi onların zaman öğrenme harcamak gerekir. Hangisi bir C ++ programcısına daha fazla fayda sağlayacaktır: yeni bir algoritma öğrenmek veya belirli bir parametre seti için hangi aşırı yüklenmiş işlevi çağırmak için kullanılan kuralları öğrenmek? Normalde bakımı gereken çok fazla nedeni varsa, muhtemelen aşırı yüklemeyi kötüye kullandığını unutmayın!
Jerry Coffin

12

Asla

Bir gerektiğini asla bir dil özelliklerini okuyun.

Tamamen zaman kaybı.

Harika programcılar rastgele kod yazabilir, Stack Overflow ile ilgili sorular sorabilir ve sonunda çok sık çökmeyen kodu yazmak için IDE'yi kullanabilir.

Dili anlamak için zaman kaybetmeyin. Sadece iyi otomatik tamamlama ile harika bir IDE bulun. Birçok SO sorusu sorun. Herkesin ihtiyacı olan her şey.


3
Asla? Tercüman / derleyici yazsanız bile değil mi?
greyfade

1
Başardın! İşte böyle çalışır. ;)
x4u

4
@greyfade: Asla. Asla gerçeklere güvenme. Varsayımlara sadık kalın.
S.Lott

6
ince olan nedir?
Aditya P

2
Dürüst olmak gerekirse bunun alaycı olup olmadığını söyleyemedim. : P
greyfade

5

Java için dil belirtimi, belirli bir kaynak yapının anlamı hakkında herhangi bir soruya kesin bir cevap vermeyi amaçlamaktadır. Bunu bir öğrenci olarak okumak tavsiye edilmez - bunun yerine iyi bir öğretmen size tüm tuzakları ve aslında ne anlama geldiğini gösterir.

Deneyimli bir geliştirici için Java Puzzlers, karanlık köşe vakaları hakkındaki anlayışınızı eğitmek için gerçekten iyidir.


2

Genel cevap: Evet buna değer.

Taşınabilir kod yazmak istiyorsanız, zorunludur.

Bazı diller için sadece kaçınılmazdır, örneğin Ada veya perl.

Ayrıca, yalnızca kod yazmakla kalmaz, aynı zamanda başkalarından da kod okursanız, sonunda spesifikasyona başvurmanız gerekir.


2

Belki de sadece benim, ama bu soru anlamsız. Kullandığınız araçları anlamak bir profesyonelin ayırt edici özelliğidir. Anlama ne kadar derin olursa, aracı kullanma yeteneğiniz o kadar iyi olur. Benim için bir amatör veya profesyonel olmak arasında bir seçim.

Ne zaman yeni bir dil öğrenirsem aradığım ilk şey teknik özelliktir.

ANSI C, C ++, Java, Scheme, Python ve Javascript teknik özelliklerini okudum. C, C ++ ve Java ayrıntılarının çoğunu unuttum, çünkü bu dilleri sık kullanmıyorum. Teknik özellikleri okuduktan sonra daha iyi bir programcıydım çünkü dili daha iyi nasıl kullanacağımı biliyordum.


1

Genel olarak arada sırada karşılaştığınız bazı zor anları anlamak faydalı olabilir.

Ama cidden, eğer bir dile hakim olmak, ayrıntılı özelliklerini öğrenmenizi gerektiriyorsa, belki de dil talihsiz bir dildir. Yaygın söylemeye benzer şekilde, uygulamanız için bir belgeye ihtiyacınız varsa, kötü bir şekilde tasarlanmıştır.


Bu yüzden ECMA-262'nin bir kopyasını elimde tutuyorum.
greyfade

1

Ne zaman koştuğunuzda yararlı buluyorum, ama düz bir okuma olarak tutmakta zorlanıyorum. Ancak bir şey anlamadıktan sonra kullandığımda bilgimi her zaman daha da geliştirdi.


1

Bu dilde sert bir programcıysanız ve her ince nüansı ondan sıkabilmeniz gerekiyorsa, evet. Bu durumda zaman yatırımınızın net getirileri vardır .

Aksi takdirde hayır. Eğer bilgiyi kullanmayacaksanız, kesinlikle size bağlı kalmayacaktır. Dil özellikleri, okunması hayal edilebilecek en donuk şeyle ilgilidir.


1

Normalde çok fazla stok koymuyorum. Basit gerçek şu ki, Standart size kontrol akışı olarak istisnaları kullanmamanızı söylemeyecektir. Size Singletons kullanmamanızı söylemez. Size sürdürülebilir bir sınıf arayüzünün nasıl tasarlanacağını söylemez. Nedenini bilmediğinizde uygulamanızın neden çöktüğünü size söylemez. Dünyanın en iyi tanımlanmış programına sahip olabilirsiniz ve yine de korkunç olacaktır.

Kanımca, basit gerçek şu ki, programlama zorluğunun büyük çoğunluğu, dilin istediğinizi yapmasını sağlamak değil, doğru şeyin ne olduğunu bilmek. Temel dil özelliklerini bildiğiniz sürece, önemli olan bunları nasıl kullanacağınız olacaktır.


1

Kesinlikle okumaya değer. C ++ ve Java ve Python gibi bazı diller, dil spesifikasyonunu okuyarak bu diller ve sahip oldukları tüm süslü sözdizimi / anlamsal hileler hakkında çok şey öğreneceğiniz kadar karmaşıktır.

Kısa ve kompakt olduğu için üniversiteye giden otobüs yolculuğundaki Scheme R5RS dil spesifikasyonunu okurdum ve tüm sözdizimini ve mevcut tüm temel fonksiyonları öğrendim.


0

Doc.python.org'un "dil başvurusu" etiketli bölümü son derece kullanışlıdır. "Veri modeli" bölümü özellikle böyle.


0

Bu dilde programlama işinizse ve işinizi ciddiye almak istiyorsanız, özellikle çok kolay ve hızlı bir şekilde okunması ve Java dili belirtimi gibi kavranması durumunda dil belirtimini okumalısınız recently. jeneriklerle basitlik.

Ancak, henüz bilmediğiniz yeni bir dili öğrenmeyi ve sonunda öğrenmeyi planlıyorsanız, zamanınızı boşa harcamadan önce bu dilin özelliklerini okumak çok içgörülü olabilir. Eminim daha fazla C ++ geliştiricisi, kullanmaya başlamadan önce C ++ Açıklamalı Referans Kılavuzunu okuyup anlamaya çalışsaydı, birçok kişi ondan korkar.

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.