خط بين الف زبان و كتابخانه اصلي آن از زباني به زبان ديگر متفاوت است. آموزش برنامه نويسي كودكان و نوجوانان در برخي موارد، طراحان زبان ممكن است كتابخانه را به عنوان يك موجوديت مجزا از زبان در نظر بگيرند. با اين حال، كتابخانه اصلي يك زبان اغلب به عنوان بخشي از زبان توسط كاربران آن در نظر گرفته مي شود، و برخي از مشخصات زبان حتي ايجاب مي كند كه اين كتابخانه در همه پياده سازي ها در دسترس باشد. در واقع، برخي از زبانها طوري طراحي شدهاند كه حتي نميتوان معاني ساختارهاي نحوي خاص را بدون آموزش برنامه نويسي كودكان و نوجوانان مراجعه به كتابخانه اصلي توصيف كرد. به عنوان مثال، در جاوا، يك string literal به عنوان نمونه اي از كلاس java.lang.String تعريف مي شود. به طور مشابه، در Smalltalk، يك عبارت تابع ناشناس (يك "بلوك") نمونه اي از كلاس BlockContext كتابخانه را مي سازد. برعكس، Scheme شامل چندين زيرمجموعه منسجم است كه براي ساخت بقيه زبان به عنوان ماكروهاي كتابخانه كافي است، و بنابراين طراحان زبان حتي به خود زحمت نميدهند بگويند كدام بخش از زبان بايد به عنوان ساختار زبان پيادهسازي شود و كدام بخش بايد به عنوان بخش اجرا شود. از يك كتابخانه
طراحي و پياده سازي
زبانهاي برنامهنويسي ويژگيهايي را با زبانهاي طبيعي به اشتراك ميگذارند كه مربوط به هدفشان بهعنوان وسيلهاي براي ارتباط است، شكل نحوي جدا از معنايي آن، و نشان دادن خانوادههاي زباني زبانهاي مرتبط كه يكي آموزش برنامه نويسي كودكان و نوجوانان از ديگري منشعب شدهاند.[50][51] اما بهعنوان سازههاي مصنوعي، از جهات اساسي با زبانهايي كه از طريق استفاده تكامل يافتهاند نيز متفاوت هستند. يك تفاوت قابل توجه در اين است كه يك زبان برنامه نويسي را مي توان به طور كامل توصيف و مطالعه كرد زيرا داراي تعريف دقيق و متناهي است.[52] در مقابل، زبان هاي طبيعي معاني در حال تغييري دارند كه توسط كاربرانشان در جوامع مختلف داده مي شود. در حالي كه زبان هاي ساخته شده نيز زبان هاي مصنوعي هستند كه از ابتدا با هدف خاصي طراحي شده اند، اما فاقد تعريف معنايي ايرانيان سايبر دقيق آموزش برنامه نويسي كودكان و نوجوانان و كاملي هستند كه يك زبان برنامه نويسي دارد.
بسياري از زبان هاي برنامه نويسي از ابتدا طراحي شده اند، براي رفع نيازهاي جديد تغيير يافته اند و با زبان هاي ديگر تركيب شده اند. بسياري از آنها در نهايت از كار افتاده اند. اگرچه تلاشهايي براي طراحي يك زبان برنامهنويسي «جهاني» صورت گرفته است كه تمام اهداف را برآورده ميكند، اما همه آنها بهعنوان اين نقش به طور كلي پذيرفته نشدهاند.[53] نياز به زبان هاي برنامه نويسي متنوع از تنوع زمينه هايي كه در آن زبان ها استفاده مي شود ناشي مي شود:
برنامه ها از اسكريپت هاي كوچك نوشته شده توسط افراد سرگرم كننده گرفته تا سيستم هاي بزرگ نوشته شده توسط صدها برنامه نويس متغير است.
برنامه نويسان داراي تخصص هستند، از مبتدياني كه بيش از هر چيز به سادگي نياز دارند تا كارشناساني كه ممكن است با پيچيدگي قابل توجهي راحت باشند.
برنامه ها بايد سرعت، اندازه و سادگي را در سيستم هاي مختلف از ميكروكنترلرها تا ابررايانه ها متعادل كنند.
برنامه ها ممكن است يك بار نوشته شوند و براي نسل ها آموزش برنامه نويسي كودكان و نوجوانان تغيير نكنند، يا ممكن است به طور مداوم دستخوش تغييرات شوند.
برنامه نويسان ممكن است به سادگي در سليقه خود متفاوت باشند: آنها ممكن است به بحث در مورد مشكلات و بيان آنها به يك زبان خاص عادت داشته باشند.
يكي از روندهاي رايج در توسعه زبان هاي برنامه نويسي، افزودن توانايي بيشتر براي حل مسائل با استفاده از سطح بالاتري از انتزاع بوده است. اولين زبان هاي برنامه نويسي بسيار نزديك به سخت افزار زيرين رايانه گره خورده بودند. با توسعه زبانهاي برنامهنويسي جديد، ويژگيهايي اضافه شدهاند كه به برنامهنويسان اجازه ميدهد ايدههايي را بيان كنند كه از ترجمه ساده به دستورالعملهاي سختافزاري زيربنايي فاصله دارند. از آنجايي كه برنامه نويسان كمتر به پيچيدگي كامپيوتر وابسته هستند، برنامه هاي آنها آموزش برنامه نويسي مي توانند محاسبات آموزش برنامه نويسي كودكان و نوجوانان بيشتري را با تلاش كمتر برنامه نويس انجام دهند. اين به آنها امكان ميدهد عملكردهاي بيشتري را در واحد زمان بنويسند.[54]