Bagaimana programmer mempelajari bahasa yang baru dicipta?


Jawapan 1:

Apabila bahasa baru dilepaskan, ia dikeluarkan sebagai dokumen teks - sesuatu seperti

Dokumen: Piawaian: R5RS

. Jadi, dengan definisi terdapat dokumentasi dari permulaan; itulah bahasa yang sebenarnya

adalah

.

Jika anda mendapati spesifikasi yang agak membosankan, dan sudah ada pelaksanaan bahasa itu, anda selalu boleh membaca kod pelaksanaannya - Saya telah belajar banyak perkara tentang Python yang tidak ada dalam buku atau tutorial hanya dengan melayari yang

Cermin CPython GitHub

.

Dan jika ada perpustakaan standard yang disertakan, atau pelaksanaan spesifik menerapkan bahasa itu sendiri, anda sudah siap - baca saja perpustakaan biasa, ini akan memberi anda semua contoh yang anda perlukan, terus dari orang yang sepatutnya sangat memahami bahasa tersebut.

Apabila anda selesai dengan perkara itu, dan telah menulis beberapa program, anda teruskan dan menerbitkan buku gaya tutorial, untuk orang yang malas yang tidak boleh diganggu untuk membaca spesifikasi atau sumbernya :)


Jawapan 2:

Bagi banyak pengaturcara, ia tidak membezakan jika bahasa itu baru dicipta atau telah lama wujud.

Sumber utama ialah spesifikasi bahasa jika terdapat satu (hampir selalu terdapat sekurangnya spesifikasi separa dan tidak formal yang dibebaskan bersama atau sebelum penerapan bahasa itu sendiri).

Dua lagi sumber yang paling penting adalah eksperimen (iaitu, sebenarnya menggunakan bahasa itu) dan, akhirnya, kod sumber pelaksanaan (yang mungkin pengkompil atau penafsir).

Hakikat bahawa tidak ada "guru" tidak masalah sama sekali. Kebanyakan pengaturcara yang saya tahu, terutamanya yang baik, tidak pernah belajar pengaturcaraan daripada guru, tutorial atau kursus. Ada yang belajar satu atau dua bahasa di sekolah (yang berasal dari seorang guru) tetapi ketika mereka melakukannya, mereka sudah tahu cara memprogram dan sudah mengetahui dua atau tiga bahasa pengaturcaraan. Selain itu, kebanyakan bahasa yang mereka pelajari sendiri.

Sendiri saya belajar pemasangan 6502/6510, Asas, dan kebanyakan Pascal sendiri. Kemudian, di sekolah saya diajar Pascal dan Fortran IV dan saya belajar perhimpunan Z80 dan sedikit Lisp sendiri. Saya terus belajar Clipper, C, Smalltalk, lebih Lisp dan asas-asas Prolog sendiri semasa bekerja (bukan sebagai pengaturcara). Kemudian saya mula bekerja sebagai seorang pengaturcara (dalam C) dan akhirnya belajar (oleh saya sendiri) SQL, C ++, 8086 dan 80286 assembler serta beberapa asas bahasa lain (Modula, Oberon, RPG, COBOL dan mungkin lebih saya lupakan momen). Kemudian saya mula bekerja sebagai programmer C ++ dan sementara itu saya belajar 80386/80486 perhimpunan dan asas-asas APL dan Ada. Akhirnya saya berhenti bekerja sebagai seorang pengaturcara, tetapi masih berminat untuk belajar. Saya akhirnya belajar Objektif C dan Ruby dan asas-asas Java, JavaScript, Scheme, Forth, Python, C #. Lebih baru-baru ini saya menangani Haskell, Raket dan melihat asas-asas Swift, Go, Julia, Clojure, Rust dan beberapa yang lain saya lupa. Pada masa ini saya memberikan yang baik (dan semoga akhir) melihat Common Lisp ketika masih bermain dengan Swift, Haskell dan Racket. Saya mengesyaki saya juga akan mula bermain dengan Emacs-Lisp.

Itulah banyak bahasa. Dan satu-satunya yang saya mempunyai guru adalah Fortran IV dan Pascal, dengan Pascal sebenarnya yang saya sudah tahu sebahagiannya sebelum diajar. Tidak pernah mengikuti tutorial. Saya kebanyakannya melihat ciri-ciri bahasa, kertas kerja (ini kebanyakannya untuk Haskell, Lisp, Skim, raket) dan, dalam beberapa kes, buku tentang bahasa (berlaku untuk C ++, Smalltalk dan penyusun 80386) atau buku tentang aspek tertentu bahasa (berlaku untuk Lisp).


Jawapan 3:

Biasanya bahasa yang baru dicipta datang dengan sedikit dokumentasi, yang dihasilkan oleh orang atau orang yang mencipta bahasa baru ini. Pengaturcara boleh menggunakan dokumentasi itu untuk mempelajari bahasa baru itu. Jika bahasa baru masih kurang dokumentasi pada masa ia dibebaskan, anda kebanyakannya sendiri. Oleh kerana ia baru, kemungkinan terdapat banyak tutorial dalam talian mengenai bahasa ini. Yang membiarkan anda untuk mengetahui cara menggunakan bahasa itu. Tuntutan terbaik anda dalam kes itu adalah mungkin pergi ke dalamnya dan cuba dan mengetahui perkara dengan dokumentasi kecil ada. Cuba kodkan beberapa perkara dengan bahasa baru, anda akan mula mengambil barang untuk menggunakannya. Pengaturcara cenderung mempunyai pengalaman dengan beberapa bahasa. Seringkali kali bahasa-bahasa baru cawangan keluar dari bahasa lain, yang bererti mereka biasanya mempunyai persamaan dengan bahasa-bahasa lain yang menjadikannya sedikit lebih mudah untuk dipelajari oleh programmer pengalaman. Dan jika anda pernah memutuskan untuk mempelajari bahasa pengaturcaraan yang baru dan terjebak, saya pasti anda boleh mencari cara untuk menghubungi pembangun atau pemaju bahasa ini yang mungkin lebih senang untuk membantu anda.


Jawapan 4:

Secara umum, bahasa baru dicipta oleh seseorang, yang mempunyai niat yang diingini - dan lebih kerap daripada tidak bermotivasi tinggi untuk menulis mengenai niat dan teori bahasa, serta mendokumenkan sintaks dan semantiknya. Itulah di mana anda bermula.

UPDATE: Ruby adalah contoh yang bagus. Ia datang dari mana-mana, dan lepaskan. Anda mungkin melihat sebahagian daripada slaid dan dokumentasi awal untuk beberapa sejarah.


Jawapan 5:

Dari sudut pandangan yang praktikal, saya tidak berminat untuk mempelajari bahasa baru melainkan jika terdapat peluang untuk berjaya dan mendapat berikut yang baik. Oleh itu, mana-mana bahasa yang akan menarik minat saya adalah masyarakat komuniti pembangunan yang berkaitan dengan minatnya untuk mempromosikannya. Cara mereka mempromosikan satu hari ini adalah untuk membuat laman web dengan dokumentasi, tutorial, contoh, dan jurubahasa atau pengkomputer yang boleh dimuat turun. Di sinilah saya mulakan. Untuk bahasa yang sangat berjaya, terdapat juga laman web tambahan yang bertujuan untuk membantu anda mempelajari bahasa tersebut. Untuk 3 bahasa terakhir yang saya pelajari, saya tidak pernah peduli untuk membeli buku. Pada masa kini, pertanyaan saya yang lebih baik adalah lebih bermanfaat. Jawapan terbaik biasanya datang dari stackoverflow.