Apakah layak membaca spesifikasi bahasa? [Tutup]

18

Saya ingin tahu apakah layak membaca spesifikasi bahasa / dokumen standar (mis . Spesifikasi Bahasa Jawa ) jika Anda tidak akan menulis kompiler / juru bahasa untuk bahasa tersebut atau yang serupa? Saya mengerti bahwa membaca buku seperti itu tidak boleh menjadi paparan pertama siapa pun terhadap bahasa tersebut, tetapi itu bisa menjadi cara yang bagus untuk mempelajari detailnya yang lebih halus.

Pernahkah Anda peduli, dan haruskah orang lain?

Anto
sumber
4
Spesifikasi bahasa tidak dimaksudkan untuk dibaca dari depan ke belakang, itu hanya referensi.
Mahmoud Hossam

Jawaban:

18

Ini pada dasarnya bermuara pada satu pertanyaan yang cukup sederhana: apakah Anda ingin pengetahuan bahasa yang otoritatif, terperinci, atau apakah Anda senang mengetahui cukup baik untuk menggunakannya, menyadari bahwa mungkin ada bagian-bagian yang tidak Anda ketahui dengan baik, dan sangat mungkin lainnya bagian yang Anda tidak tahu sama sekali?

Pada dasarnya, ada beberapa orang yang tampaknya hampir terlahir sebagai "pengacara bahasa" - mereka tidak akan (tidak) beristirahat selama ada beberapa sudut atau celah dalam bahasa yang tidak mereka ketahui dan / atau mengerti. Banyak dari ini condong ke bahasa yang relatif sederhana hanya karena mempelajari bahasa yang lebih kompleks pada tingkat perincian ini seringkali hampir tidak mungkin dilakukan oleh satu orang.

Bagi sebagian besar programmer, itu akan membuang-buang waktu - mereka cukup senang dan produktif mengetahui cukup banyak bahasa untuk dapat menggunakannya (cukup) dengan baik. Selain itu, mereka tidak peduli. Bahasa adalah alat, dan selama mereka dapat menggunakan alat dengan cukup baik untuk tujuan mereka, fakta bahwa ada hal-hal lain yang tidak mereka ketahui sebagian besar tidak relevan.

Jerry Coffin
sumber
3
+1 untuk paragraf terakhir. Itulah yang harus disadari oleh kebanyakan programmer - apakah mereka ingin menjadi John Skeet (yang tahu segalanya tentang C # tetapi tidak tahu apa-apa tentang hal lain - belum melihatnya menjawab pertanyaan SQL, misalnya) atau hanya pengguna tetapi banyak teknologi lainnya yang membuat praktik lebih praktis dan hidup lebih menarik.
2
@Developer Art: Tapi Jon Skeet adalah dewa;)
Anto
1
@ sbi: Saya setuju bahwa bahasa (dan kompleksitasnya) jelas merupakan faktor utama. Ukuran standar tidak selalu berarti banyak. Sebagai contoh, bagian dari standar C ++ yang mencakup bahasa yang tepat hanya ~ 400 halaman, sedangkan spesifikasi bahasa Java ~ 500. Meskipun saya tidak benar-benar berpikir Java hampir "membersihkan" C ++ yang diklaim oleh beberapa orang, saya sulit percaya bahwa 25% lebih kompleks daripada C ++.
Jerry Coffin
3
@Developer Art - sedikit keras tentang Jon Skeet, dia punya lencana untuk semuanya (termasuk SQL!)
SHug
2
@ Dietbuddha: Saya tentu saja tidak bermaksud memaafkan ketidaktahuan, tetapi dalam keadilan, bagi kebanyakan orang itu bukan pertanyaan apakah mereka harus belajar sesuatu, daripada apa yang harus mereka habiskan untuk belajar. Yang mana yang akan menguntungkan programmer C ++ lebih banyak: mempelajari algoritma baru, atau mempelajari aturan yang tepat digunakan untuk memilih fungsi kelebihan beban untuk memanggil set parameter tertentu? Perlu diingat bahwa jika ia biasanya memiliki banyak alasan untuk peduli yang disebut, ia mungkin menyalahgunakan kelebihan muatan!
Jerry Coffin
12

Tidak pernah

Seseorang seharusnya tidak pernah membaca spesifikasi bahasa.

Ini buang-buang waktu saja.

Pemrogram hebat dapat mengetik kode acak, mengajukan pertanyaan pada Stack Overflow, dan menggunakan IDE untuk akhirnya menulis kode yang tidak sering crash.

Jangan buang waktu untuk memahami bahasa. Temukan saja IDE hebat dengan pelengkapan otomatis yang bagus. Ajukan banyak pertanyaan SO. Itu semua orang butuhkan.

S.Lott
sumber
3
Tidak pernah? Bahkan jika Anda sedang menulis juru bahasa / kompiler?
greyfade
1
Kamu berhasil! Begitulah cara kerjanya. ;)
x4u
4
@greyfade: Tidak pernah. Jangan pernah mempercayai fakta. Tetap dengan asumsi.
S.Lott
6
apa yang halus dalam hal itu?
Aditya P
2
Jujur saya tidak tahu apakah ini sarkasme atau tidak. : P
greyfade
5

Untuk Java, spesifikasi bahasa dimaksudkan untuk memberikan jawaban yang pasti untuk setiap pertanyaan tentang arti dari konstruk sumber yang diberikan. Membacanya sebagai pembelajar tidak dianjurkan - sebagai gantinya seorang guru yang baik menunjukkan kepada Anda semua perangkap dan apa artinya sebenarnya.

Untuk pengembang yang berpengalaman, Java Puzzlers benar-benar bagus untuk melatih pemahaman Anda tentang kasus-kasus sudut gelap.


sumber
2

Jawaban umum adalah: Ya, itu layak.

Jika Anda ingin menulis kode portabel, itu wajib.

Untuk beberapa bahasa, itu hanya tidak dapat dihindari, misalnya, Ada atau perl.

Selain itu, jika Anda tidak hanya menulis kode tetapi juga membaca kode dari orang lain, Anda akhirnya harus merujuk pada spesifikasinya.

mouviciel
sumber
2

Mungkin hanya saya, tetapi pertanyaan ini tidak masuk akal. Memahami alat yang Anda gunakan adalah ciri khas seorang profesional. Semakin dalam pemahaman, semakin baik kemampuan Anda untuk menggunakan alat ini. Bagi saya itu adalah pilihan antara menjadi dilettante atau profesional.

Setiap kali saya belajar bahasa baru, hal pertama yang saya cari adalah spek.

Saya telah membaca spesifikasi untuk ANSI C, C ++, Java, Skema, Python dan Javascript. Saya lupa sebagian besar detail C, C ++, dan Java hanya karena saya tidak sering menggunakan bahasa itu. Setelah membaca spesifikasi saya adalah programmer yang lebih baik karena saya tahu cara menggunakan bahasa lebih baik.

dietbuddha
sumber
1

Secara umum dapat berguna untuk memahami saat-saat sulit tertentu yang Anda temui sekarang dan kemudian.

Tapi serius, jika menguasai bahasa mengharuskan Anda membiasakan diri dengan spesifikasi rinci, maka mungkin bahasa itu adalah bahasa yang tidak menguntungkan. Demikian pula dengan pepatah umum, jika Anda memerlukan dokumentasi untuk aplikasi Anda, maka itu dirancang dengan buruk.


sumber
Inilah mengapa saya menyimpan salinan ECMA-262.
greyfade
1

Saya merasa berguna ketika Anda mengalami apa saat ini, tetapi saya merasa sulit untuk mempertahankan sebagai bacaan lurus. Namun ketika saya telah menggunakan setelah saya tidak mengerti sesuatu itu selalu memajukan pengetahuan saya banyak.

memutarkan lagi
sumber
1

Jika Anda seorang programmer hard core dalam bahasa itu, dan Anda harus bisa memeras setiap nuansa halus darinya, ya. Ada pengembalian yang jelas atas investasi waktu Anda dalam kasus itu .

Kalau tidak, tidak. Jika Anda tidak akan menggunakan pengetahuan, itu pasti tidak akan bertahan dengan Anda. Spesifikasi bahasa adalah tentang hal yang paling membosankan yang bisa dibaca.

Satanicpuppy
sumber
1

Saya biasanya tidak menaruh banyak stok dalam Standar. Fakta sederhananya adalah bahwa Standar tidak akan memberi tahu Anda untuk tidak menggunakan pengecualian sebagai aliran kontrol. Itu tidak akan memberi tahu Anda untuk tidak menggunakan lajang. Ini tidak akan memberi tahu Anda bagaimana mendesain antarmuka kelas yang bisa dipelihara. Itu tidak akan memberi tahu Anda mengapa aplikasi Anda mogok saat Anda tidak tahu mengapa. Anda dapat memiliki program yang paling jelas di dunia dan itu masih akan mengerikan.

Menurut pendapat saya, fakta sederhananya adalah bahwa sebagian besar tantangan pemrograman tidak dalam membuat bahasa melakukan apa yang Anda inginkan, tetapi mengetahui apa yang benar. Selama Anda tahu fitur-fitur bahasa dasarnya, maka itu akan menjadi cara menggunakannya yang diperhitungkan.

DeadMG
sumber
1

Ini pasti layak dibaca. Beberapa bahasa seperti C ++ dan Java dan Python cukup kompleks sehingga dengan membaca spec bahasa Anda akan belajar banyak tentang bahasa-bahasa itu dan semua trik sintaksis / semantik yang mereka miliki.

Saya biasa membaca spesifikasi bahasa Skema R5RS pada perjalanan bus ke perguruan tinggi karena pendek dan padat dan saya mempelajari semua sintaks dan semua fungsi dasar yang tersedia.

Rudolf Olah
sumber
0

Bagian dari doc.python.org berlabel "referensi bahasa" sangat berguna. Bab "model data" khususnya demikian.

pengguna16764
sumber
0

Saya pikir jika pemrograman dalam bahasa ini adalah pekerjaan Anda dan Anda ingin mengambil pekerjaan Anda dengan serius, Anda harus membaca spesifikasi bahasa, terutama ketika itu relatif mudah dan cepat untuk membaca dan memahami seperti spesifikasi bahasa Jawa meskipun telah recentlykehilangan banyak itu kesederhanaan dengan obat generik.

Tetapi juga jika Anda berencana untuk belajar dan pada akhirnya menguasai bahasa baru yang belum Anda ketahui, akan sangat bermanfaat untuk membaca spesifikasi bahasa tersebut sebelum Anda membuang waktu dengannya. Saya yakin jika lebih banyak pengembang C ++ akan membaca dan mencoba memahami Manual Referensi Beranotasi C ++ sebelum mereka mulai menggunakannya banyak yang akan lari ketakutan darinya.

x4u
sumber