- آیا هنگام مطالعه مستندات رسمی اپل (Apple Documentation) با دیدن کوهی از کلمات تخصصی، احساس سردرگمی و کلافگی میکنید؟
- آیا نگران این هستید که در جلسات فنی یا مصاحبههای شغلی، اصطلاحات برنامهنویسی iOS را به درستی به کار نبرید؟
- آیا تفاوت ظریف معنایی بین مفاهیم مشابهی مثل Struct و Class یا Weak و Unowned برای شما مبهم است؟
یادگیری یک زبان برنامهنویسی جدید، درست مثل یادگیری یک زبان خارجی است؛ شما نه تنها باید قواعد دستوری (Syntax) را یاد بگیرید، بلکه باید با فرهنگ و واژگان تخصصی آن محیط نیز آشنا شوید. در این راهنمای جامع، ما اصطلاحات برنامهنویسی iOS و زبان سوئیفت را به شکلی ساده و کاربردی کالبدشکافی میکنیم تا یک بار برای همیشه، ترس شما از متون تخصصی ریخته شود و بتوانید مانند یک توسعهدهنده حرفهای بینالمللی صحبت کنید.
| اصطلاح (Term) | معادل/مفهوم | مثال کاربردی |
|---|---|---|
| Optional | متغیری که میتواند مقدار داشته باشد یا “هیچ” (nil) باشد. |
var name: String?
|
| Closure | بلوکهای کد مستقل که میتوانند در برنامه جابجا شوند. | مشابه Lambda در زبانهای دیگر. |
| Protocol | مجموعهای از قوانین یا متدها که یک Class یا Struct باید رعایت کند. | مشابه Interface در جاوا. |
| Type Inference | توانایی سوئیفت در تشخیص خودکار نوع داده. |
let age = 25
(تشخیص Int) |
فصل اول: الفبای واژگان پایه در اکوسیستم iOS
قبل از اینکه وارد مفاهیم پیچیده شویم، باید با خشتهای اولیهی این زبان آشنا شوید. بسیاری از زبانآموزان و برنامهنویسان تازه کار، در تمایز بین کلمات کلیدی پایه دچار استرس میشوند. نگران نباشید، حتی بزرگترین توسعهدهندگان هم روزی از اینجا شروع کردهاند.
تعریف متغیرها و ثابتها (Constants & Variables)
در سوئیفت، تمایز بین چیزی که تغییر میکند و چیزی که ثابت میماند بسیار حیاتی است. این کار نه تنها به امنیت کد کمک میکند، بلکه خوانایی آن را برای سایر همتیمیهای شما بالا میبرد.
- Immutable (تغییرناپذیر): به مقادیری گفته میشود که پس از تعریف، قابل تغییر نیستند. در سوئیفت از کلمه کلیدی
letاستفاده میکنیم. - Mutable (تغییرپذیر): مقادیری که در طول اجرای برنامه تغییر میکنند. از کلمه کلیدی
varاستفاده میکنیم.
الگوی تعریف (Formula)
ساختار کلی تعریف یک موجودیت در سوئیفت به این صورت است:
[Value] = [Data Type] : [Name] [let/var]
انواع داده (Data Types)
در دنیای اصطلاحات برنامهنویسی iOS، شناخت دقیق انواع داده به شما کمک میکند تا خطاهای منطقی کمتری داشته باشید:
- String: برای رشتههای متنی.
- Int: برای اعداد صحیح.
- Double/Float: برای اعداد با اعشار.
- Bool: برای مقادیر منطقی (True/False).
فصل دوم: مفاهیم کلیدی و ساختاری در Swift
سوئیفت زبانی است که بر پایه “ایمنی” (Safety) طراحی شده است. به همین دلیل اصطلاحاتی در آن وجود دارد که شاید در زبانهای قدیمیتر مثل C++ کمتر با آنها برخورد کرده باشید.
آپشنالها (Optionals): جادوی علامت سوال
یکی از بزرگترین چالشهای زبانآموزان، درک مفهوم
nil
و
Optional
است. در زبان انگلیسی، Optional یعنی “اختیاری”. در سوئیفت هم یعنی این متغیر “اختیار دارد” که مقداری داشته باشد یا کاملاً خالی باشد.
- Unwrapping: فرآیند باز کردن یک بسته Optional برای دسترسی به مقدار داخل آن.
- Force Unwrapping: باز کردن اجباری (با علامت !). نکته: این کار خطرناک است و ممکن است باعث کرش کردن اپلیکیشن شود.
- Optional Binding: روشی ایمن برای چک کردن اینکه آیا مقداری وجود دارد یا خیر (با استفاده از
if let).
کلوژرها (Closures) و توابع
در مستندات، واژهی Closure زیاد تکرار میشود. از نظر زبانشناسی، این کلمه به معنای “بستار” است. در برنامهنویسی، یعنی تکهای از کد که محیط اطراف خود را “در بر میگیرد” و میتواند بعداً اجرا شود.
فصل سوم: شیگرایی و معماری داده
درک تفاوت بین واژگان فنی در این بخش، مرز بین یک برنامهنویس جونیور و سنیور را مشخص میکند. بیایید به بررسی دقیقتر بپردازیم.
Class در مقابل Struct
بسیاری از فارسیزبانان هر دو را “کلاس” یا “ساختار” ترجمه میکنند، اما تفاوت عملکردی آنها در اصطلاحات برنامهنویسی iOS بسیار عمیق است:
- Reference Type (نوع ارجاعی): کلاسها اینگونه هستند. اگر یک کلاس را به دو متغیر نسبت دهید، هر دو به یک جای حافظه اشاره میکنند.
- Value Type (نوع مقداری): استراکتها اینگونه هستند. با کپی کردن آنها، یک نمونه کاملاً جدید ساخته میشود.
ارثبری (Inheritance) و پروتکلها
در زبان انگلیسی تخصصی، Inheritance به معنای ارث بردن ویژگیها از والدین است. اما در سوئیفت مدرن، تاکید بیشتری روی Protocol-Oriented Programming یا برنامهنویسی پروتکلمحور وجود دارد. پروتکلها مثل یک “قرارداد” (Contract) هستند؛ هر کسی که آن را امضا کند، موظف به اجرای مفاد آن است.
| ویژگی | Class ✅ | Struct ❌ |
|---|---|---|
| ارثبری (Inheritance) | دارد | ندارد |
| سرعت پردازش | کندتر (Heap) | سریعتر (Stack) |
| ایمنی در چندنخی (Thread Safety) | کمتر | بسیار زیاد |
فصل چهارم: مدیریت حافظه (Memory Management)
یکی از کابوسهای برنامهنویسان قدیمی، نشت حافظه (Memory Leak) بود. اپل برای حل این مشکل سیستمی به نام ARC (Automatic Reference Counting) معرفی کرد. واژگان این بخش بسیار تخصصی هستند:
- Strong Reference: ارجاع قوی که مانع از حذف شیء از حافظه میشود.
- Weak Reference: ارجاع ضعیف که اجازه میدهد شیء حذف شود (برای جلوگیری از چرخه ارجاع یا Retain Cycle).
- Deinitialization: لحظهای که یک شیء از حافظه پاک میشود و متد
deinitصدا زده میشود.
فصل پنجم: تفاوتهای واژگانی در SwiftUI و UIKit
برنامهنویسی iOS در حال گذار از یک دنیای قدیمی به یک دنیای مدرن است. این یعنی شما باید با دو دسته از واژگان آشنا باشید:
1. دنیای کلاسیک (UIKit)
در این محیط، اصطلاحات بیشتر پیرامون “Imperative Programming” یا برنامهنویسی دستوری میچرخد. شما باید قدم به قدم به سیستم بگویید چه کار کند.
- View Controller: مغز متفکر هر صفحه در اپلیکیشنهای قدیمی.
- Delegate: الگویی که در آن یک شیء وظایف خود را به شیء دیگری میسپارد.
2. دنیای مدرن (SwiftUI)
در اینجا با “Declarative Programming” یا برنامهنویسی اعلامی روبرو هستیم. شما فقط “توصیف” میکنید که رابط کاربری چگونه باشد.
- State: وضعیتی که با تغییر آن، رابط کاربری خودبهخود بروزرسانی میشود.
- Modifier: متدهایی که ظاهر یا رفتار یک View را تغییر میدهند (مثلاً تغییر رنگ یا فونت).
- Property Wrapper: ابزارهایی مثل
@Stateیا@Bindingکه منطق اضافهای به متغیرها میبخشند.
فصل ششم: روانشناسی یادگیری و کاهش اضطراب زبانی
بسیاری از توسعهدهندگان ایرانی به دلیل Language Anxiety یا اضطراب زبان، از شرکت در تالارهای گفتگوی بینالمللی مثل Stack Overflow خودداری میکنند. به خاطر داشته باشید:
- اشتباه کردن بخشی از پروسه است: حتی برنامهنویسان Native هم گاهی در استفاده از اصطلاحات دقیق دچار خطا میشوند.
- سادگی بر پیچیدگی اولویت دارد: اگر کلمهی ثقیلی را بلد نیستید، از عبارات سادهتر استفاده کنید. هدف نهایی، انتقال مفهوم و اجرای کد است.
- مستندات را با صدای بلند بخوانید: این کار باعث میشود گوش شما به آهنگ کلمات فنی عادت کند و در مصاحبهها اعتماد به نفس بیشتری داشته باشید.
Common Myths & Mistakes (باورهای اشتباه و خطاهای رایج)
در مسیر یادگیری اصطلاحات برنامهنویسی iOS، مراقب این تلهها باشید:
- اشتباه: فکر کنید
nilدر سوئیفت دقیقاً همانnullدر جاوا یا سیشارپ است.
واقعیت: در سوئیفت،nilیعنی “عدم وجود مقدار”، اما در زبانهای دیگر به معنای اشارهگر به هیچجا است. تفاوت ظریف اما مهم! - اشتباه: استفاده بیش از حد از Force Unwrapping (علامت !).
واقعیت: این کار مثل رانندگی با چشم بسته است. همیشه سعی کنید از روشهای ایمن مثلif letیاguard letاستفاده کنید. - باور اشتباه: حتماً باید تمام لغات دیکشنری برنامهنویسی را حفظ باشم تا شروع کنم.
واقعیت: برنامهنویسی یک مهارت “یادگیری در حین انجام” (Learn by doing) است. کلمات در حین کد زدن در ذهن شما حک میشوند.
Common FAQ (سوالات متداول)
۱. بهترین منبع برای یادگیری اصطلاحات جدید سوئیفت چیست؟
بدون شک مستندات رسمی اپل (Swift Documentation) و وبسایتهایی مثل Swift.org بهترین منابع هستند. همچنین دنبال کردن وبلاگهای تخصصی به زبان اصلی، شما را با اصطلاحات روز (Slang فنی) آشنا میکند.
۲. تفاوت بین Function و Method در چیست؟
این یک سوال کلاسیک است! Function به صورت مستقل تعریف میشود، اما Method تابعی است که داخل یک کلاس، استراکت یا انام (Enum) تعریف شده و به آن موجودیت تعلق دارد.
۳. چرا اپل از کلمه Cocoa Touch استفاده میکند؟
این در واقع نام فریمورک اصلی برای ساخت اپلیکیشنهای iOS است. شامل ابزارهای رابط کاربری و رویدادهای لمسی (Touch) میشود. امروزه با ظهور SwiftUI، این نام کمتر در لایههای سطحی شنیده میشود اما همچنان پایه و اساس سیستم است.
نتیجهگیری
تسلط بر اصطلاحات برنامهنویسی iOS تنها به معنای حفظ کردن لیستی از کلمات نیست؛ بلکه به معنای درک عمیق فلسفهی پشت هر انتخاب در زبان سوئیفت است. وقتی متوجه شوید که چرا سوئیفت روی Optionalها تاکید دارد یا چرا Structها را به Classها ترجیح میدهد، نه تنها زبان فنی شما تقویت میشود، بلکه به برنامهنویس بهتری هم تبدیل میشوید.
فراموش نکنید که یادگیری یک مسیر مستمر است. هر بار که با واژهی جدیدی روبرو شدید، آن را یادداشت کنید، ریشهی آن را در مستندات بیابید و سعی کنید در کد خود از آن استفاده کنید. با تمرین و تکرار، این اصطلاحات از کلماتی بیگانه به بخشی از هوش حرفهای شما تبدیل خواهند شد. پس همین امروز اولین خط کد خود را با درک کامل واژگان بنویسید و از دنیای بینظیر توسعه iOS لذت ببرید!




ممنون از این مطلب مفید! همیشه با واژه Optional مشکل داشتم و نمیدونستم واقعاً از نظر انگلیسی چطور باید ترجمهاش کنم یا تو مکالمات عادی ازش استفاده کنم. یعنی تو انگلیسی روزمره هم میشه به جای ‘انتخابی’ از ‘Optional’ استفاده کرد؟
سلام علی جان! بله، دقیقاً همینطوره. واژه ‘Optional’ در انگلیسی روزمره به معنای ‘اختیاری’ یا ‘انتخابی’ استفاده میشود، مثل ‘Optional course’ (درس انتخابی) یا ‘Optional extras’ (امکانات اختیاری). در برنامهنویسی هم همین مفهوم را دارد: چیزی که وجودش الزامی نیست و ممکن است مقدار داشته باشد یا نداشته باشد.
مقاله عالی بود! ‘Closure’ کلمهایه که تو جاهای دیگه هم شنیدم، مثلاً ‘factory closure’. آیا معنای ریشهای ‘بسته شدن’ همیشه تو این کلمه وجود داره یا تو هر زمینهای معنای متفاوتی پیدا میکنه؟
سارای عزیز، سوال خیلی خوبی پرسیدید! بله، ‘closure’ از ریشه ‘close’ (بستن) میآید و مفهوم اصلی آن ‘پایان’ یا ‘بسته شدن’ است. در زمینههای مختلف، این مفهوم کلی حفظ میشود اما جزئیاتش تغییر میکند. مثلاً در ‘factory closure’، یعنی ‘بسته شدن کارخانه’. در برنامهنویسی هم ‘Closure’ به بلوک کدی اشاره دارد که تمام متغیرهایی که به آنها نیاز دارد را در ‘scope’ خود ‘بسته’ یا ‘در بر گرفته’ است، حتی وقتی که از محدوده اصلی خود خارج شود.
تفاوت ‘Weak’ و ‘Unowned’ خیلی وقتا گیجم میکرد. این مقاله به زبان برنامهنویسی این دو رو روشن کرد. حالا میخوام بدونم آیا این دو واژه (weak و unowned) تو انگلیسی عمومی هم تفاوتهای ظریفی دارن که اینجا به برنامهنویسی اومده؟
رضا جان، نکته ظریفی رو مطرح کردید. بله، در انگلیسی عمومی هم ‘weak’ به معنای ‘ضعیف’ و ‘unowned’ به معنای ‘بدون مالک’ یا ‘فاقد صاحب’ هستند. در برنامهنویسی Swift، این مفاهیم برای مدیریت حافظه و جلوگیری از ‘memory leak’ (نشت حافظه) استفاده میشوند. ‘Weak’ به ارجاعی اشاره دارد که ممکن است ‘nil’ شود (یعنی ضعیف است و اجازه حذف شدن آبجکت را میدهد)، در حالی که ‘Unowned’ به ارجاعی اشاره دارد که ‘همیشه’ مقدار دارد اما مالکیت را به عهده نمیگیرد (بدون مالک است). این تفاوتها ریشه در معنای عمومی کلمات دارند.
ممنون برای این توضیحات شفاف! همیشه وقتی متنهای انگلیسی تخصصی رو میخونم، نیاز دارم معنی دقیق کلمات رو بدونم. ‘Protocol’ از اون کلماتیه که معناهای مختلفی داره. اینجا به ‘مجموعهای از قوانین’ اشاره شده، معادل ‘Interface’ در جاوا. آیا این کلمه ریشه لاتین داره؟
مریم عزیز، خوشحالیم که مطلب براتون مفید بوده. بله، ‘Protocol’ ریشهای یونانی-لاتین دارد (proto به معنای ‘اول’ و kollon به معنای ‘چسباندن’) که در اصل به اولین ورق چسبانده شده به یک سند برای فهرستبندی محتویات آن اشاره داشته است. به تدریج معنای ‘مجموعه قوانین’ یا ‘روال استاندارد’ را پیدا کرده است، چه در دیپلماسی (پروتکلهای بینالمللی) و چه در علوم کامپیوتر (پروتکلهای شبکه، پروتکلهای برنامهنویسی).
‘Type Inference’ واقعا قابلیتیه که سوئیفت رو دوستداشتنی میکنه. فقط میخواستم بدونم تلفظ صحیح ‘Inference’ چی هست؟ گاهی اوقات میشنوم ‘اینفرنس’ و گاهی ‘اینفِرنس’.
امیر جان، سوال خیلی بهجایی پرسیدید! تلفظ صحیح ‘Inference’ با تاکید روی بخش اول و سوم است: /ˈɪn-fə-rəns/. یعنی استرس روی بخش اول (In) و بخش سوم (rence) کمی بیشتر است و ‘fə’ بین آنها کوتاه است. پس ‘این-فِـرِنس’ صحیحتر است تا ‘اینفرنس’.
مقاله به قدری روان و کاربردی بود که ترس من از ‘Apple Documentation’ رو ریخت! واقعاً نیاز بود که یکی این اصطلاحات رو به این خوبی کالبدشکافی کنه. کاش برای واژههای عمومیتر انگلیسی هم همینطور توضیح بدین.
فاطمه جان، هدف ما دقیقاً همین بود که این ترس از مستندات تخصصی (و در نتیجه، انگلیسی تخصصی) رو از بین ببریم. خوشحالیم که موفق شدیم! حتماً پیشنهاد شما رو برای مطالب آینده در نظر میگیریم و تلاش میکنیم واژگان عمومیتر و کاربردیتر انگلیسی رو هم به همین شکل توضیح بدیم.
جمله ‘یادگیری یک زبان برنامهنویسی جدید، درست مثل یادگیری یک زبان خارجی است’ کاملاً درسته. چقدر خوب که به جنبه واژگان تخصصی انگلیسی این زبانها اشاره کردین. همیشه حس میکردم این بخش مهجور مونده.
حسن عزیز، دقیقاً همینطور است. بسیاری از زبانآموزان و برنامهنویسان فقط روی ‘Syntax’ یا دستور زبان تمرکز میکنند و از اهمیت واژگان تخصصی غافل میشوند. در واقع، فهم عمیق یک زبان برنامهنویسی (یا هر زبان خارجی) بدون درک درست فرهنگ و واژگان آن غیرممکن است. خوشحالیم که این موضوع برای شما هم اهمیت داشته.
تشبیه ‘Closure’ به ‘Lambda’ در زبانهای دیگه خیلی خوب بود. ‘Lambda’ خودش کلمهایه که تو ریاضی و علوم کامپیوتر استفاده میشه. آیا معنای ‘لامبدا’ در انگلیسی عمومی هم کاربردی داره؟
زهرای گرامی، بله ‘Lambda’ حرف یازدهم الفبای یونانی است (Λ, λ). در انگلیسی عمومی، به خودی خود کاربرد وسیعی ندارد و بیشتر به عنوان یک اصطلاح تخصصی در ریاضیات (حساب لامبدا)، فیزیک (طول موج) و برنامهنویسی (تابع لامبدا یا تابع بینام) شناخته میشود. در تمام این موارد، به یک مفهوم اساسی یا یک شیء پایهای و مستقل اشاره دارد.
واقعا از این توضیح ‘Struct’ و ‘Class’ متشکرم. این دو همیشه برام ابهام داشتن. آیا تو انگلیسی عمومی هم میشه گفت ‘یک Struct از فلان چیز’ یا ‘یک Class از بهمان چیز’؟ یا فقط تو برنامهنویسیه؟
محمد جان، سوال جالبی پرسیدید! در انگلیسی عمومی، ‘struct’ (مخفف structure) به ندرت به این شکل استفاده میشود. ‘Structure’ به معنای ‘ساختار’ یا ‘بنا’ کاربرد زیادی دارد. اما ‘class’ هم در انگلیسی عمومی و هم در برنامهنویسی معانی گستردهای دارد. در انگلیسی عمومی به ‘طبقه’ (اجتماعی)، ‘کلاس’ (درس)، ‘رده’ یا ‘نوع’ اشاره دارد. در برنامهنویسی هم همین مفهوم ‘نوع’ یا ‘قالب’ را منتقل میکند. پس کاربرد ‘Struct’ و ‘Class’ به این شکل خاص بیشتر محدود به برنامهنویسی است.
این قسمت که گفتید ‘مثل یک توسعهدهنده حرفهای بینالمللی صحبت کنید’ خیلی به دلم نشست. دقیقاً همین هدف منه! برای بهبود لیسنینگ (Listening) اصطلاحات تخصصی، پیشنهاد خاصی دارین؟ مثلاً پادکستهای انگلیسی برنامهنویسی؟
نازیلا جان، هدف ما هم دقیقاً توانمندسازی شما برای ارتباطات بینالمللی است. برای تقویت لیسنینگ اصطلاحات تخصصی، حتماً پادکستهای انگلیسی برنامهنویسی، ویدئوهای کنفرانسهای تخصصی (مثل WWDC اپل) و حتی مصاحبههای فنی به زبان انگلیسی را پیشنهاد میکنم. با گوش دادن فعال و تلاش برای درک مفاهیم در بستر (context)، دایره واژگان و درک شنیداری شما به سرعت تقویت میشود.
مفهوم ‘nil’ برای متغیرهای ‘Optional’ خیلی کلیدیه. این واژه ‘nil’ خودش از کجا اومده و آیا مترادفهای دیگه ای در انگلیسی داره که تو برنامهنویسی هم به کار بره؟
کسری عزیز، ‘nil’ از کلمه لاتین ‘nihil’ به معنای ‘هیچ’ یا ‘صفر’ گرفته شده است. در برنامهنویسی و ریاضیات، به همین معنای ‘مقدار صفر’ یا ‘تهی’ استفاده میشود. مترادفهای مشابه در انگلیسی ممکن است ‘null’ (که در زبانهای دیگر برنامهنویسی رایج است) یا ’empty’ (خالی) باشد، هرچند هر کدام کاربردهای خاص خودشان را دارند و ‘nil’ در Swift یک مفهوم خاص برای Optionalهاست.
وقتی این مقاله رو خوندم، حس کردم دارم یه درس زبان انگلیسی می خونم نه فقط برنامهنویسی. چقدر عالیه که هر دو مهارت رو همزمان تقویت میکنه. لطفاً باز هم از این مقالات بگذارید!
پریسا جان، این بهترین تعریفی است که میتوانستیم دریافت کنیم! هدف ما دقیقاً همین بود که در کنار محتوای تخصصی، بعد آموزش زبان انگلیسی و واژگان آن را نیز پررنگ کنیم. حتماً تلاش میکنیم مطالب بیشتری با همین رویکرد ارائه دهیم.
ممنون از توضیحات ‘Syntax’. من همیشه تلفظش رو اشتباه میگفتم. ‘Syntax’ چطور با ‘Grammar’ در انگلیسی فرق میکنه؟ هر دو به قواعد زبان اشاره دارن.
مهدی جان، ‘Syntax’ (سنتکس) و ‘Grammar’ (گرامر) هر دو به قواعد زبان اشاره دارند، اما تفاوتهای ظریفی دارند. ‘Grammar’ یک مفهوم کلیتر است که شامل تمام قواعد زبان، از جمله صرف و نحو (مورفولوژی و سینتکس)، معنیشناسی (سمانتیک) و کاربرد عملی (پراگماتیک) میشود. اما ‘Syntax’ به طور خاص به ساختار و ترتیب کلمات و عبارات در جملات اشاره دارد؛ یعنی نحوه صحیح چیدمان عناصر برای تشکیل یک عبارت یا جمله معتبر. در برنامهنویسی هم به قواعد ساختاری کد گفته میشود.
واقعا از اینکه به ‘Culture’ زبان برنامهنویسی هم اشاره کردین، خوشم اومد. همین دیدگاه جامع باعث میشه آدم واقعا اون زبان رو ‘مال خود’ بدونه. این ‘culture’ رو چطور میشه تو انگلیسی توسعه داد؟
لیلای عزیز، درک ‘culture’ یک زبان، چه انسانی و چه برنامهنویسی، کلید تسلط واقعی است. برای توسعه این درک در انگلیسی، بهترین راه غرق شدن (immersion) در محیط است. تماشای فیلمها و سریالهای انگلیسی بدون زیرنویس، گوش دادن به موسیقی و پادکستهای انگلیسی، خواندن کتابها و مقالات انگلیسی (مخصوصاً بلاگهای تخصصی مرتبط با حوزه مورد علاقهتان)، و شرکت در بحثها به زبان انگلیسی، به شما کمک میکند تا نه تنها واژگان را بیاموزید، بلکه با نحوه تفکر و بیان بومیزبانان نیز آشنا شوید.
کاش برای ‘Documentation’ هم چند تا مترادف انگلیسی که تو موقعیتهای مختلف قابل استفاده باشن رو میگفتید. این کلمه خیلی تو حوزه کاری ما پرکاربرده.
سینا جان، حتماً! برای ‘Documentation’ (مستندات)، بسته به بافت، میتوانید از کلمات زیر استفاده کنید: ‘Manual’ (دفترچه راهنما، برای کاربر)، ‘Guide’ (راهنما، کلیتر)، ‘Reference’ (مرجع، برای اطلاعات فنی)، ‘Records’ (سوابق، برای اسناد بایگانی)، ‘Reports’ (گزارشها، برای یافتهها). در حوزه برنامهنویسی، ‘API documentation’ یا ‘Developer documentation’ هم بسیار رایج است.
این مقالهها چقدر خوب به آدم کمک میکنه که کلمات رو عمیقتر بفهمه. من همیشه ‘Interface’ رو فقط به معنی رابط کاربری میدونستم. اینجا فهمیدم که میتونه به معنی ‘Protocol’ هم باشه. چه کلمات انگلیسی دیگه ای تو برنامهنویسی هستن که چند تا معنی دارن؟
آیدا جان، سوال فوقالعادهای مطرح کردید! در انگلیسی و به ویژه در برنامهنویسی، کلمات با معانی متعدد (polysemous words) زیاد داریم. مثلاً ‘scope’ (هم به معنی ‘محدوده دید’ و هم ‘ابزار مشاهده)، ‘context’ (هم ‘متن’ و هم ‘زمینه’)، ‘state’ (هم ‘حالت’ و هم ‘ایالت’)، ‘bind’ (هم ‘متصل کردن’ و هم ‘الزامی کردن’). درک این تفاوتهای معنایی در بافتهای مختلف، یکی از چالشها و زیباییهای یادگیری زبان است.
بسیار مطلب عالی بود! تشبیه یادگیری زبان برنامهنویسی به زبان خارجی واقعا روشنگر بود. چقدر عالی که به اهمیت Syntax و Vocabulary همزمان اشاره شده. این مقاله رو برای دوستانم هم میفرستم.
پویای عزیز، خوشحالیم که مطلب مورد پسند شما واقع شده و توانسته راهگشا باشد. لطف شماست که آن را با دوستانتان به اشتراک میگذارید. هرچه بیشتر برنامهنویسان به جنبه زبانی کار خود توجه کنند، ارتباطات فنی بینالمللی ما قویتر خواهد شد.
ممنون بابت این راهنمای جامع! من درگیر کلمه ‘instance’ بودم که اینجا بهش اشاره نشده. آیا این کلمه هم ریشه خاصی داره و آیا مترادفهای انگلیسی رایج برای ‘instance’ وجود داره که در برنامهنویسی هم کاربرد داشته باشه؟
هستی عزیز، سوال خوبی درباره ‘instance’ پرسیدید. ‘Instance’ از ریشه لاتین ‘instantia’ به معنای ‘مثال’ یا ‘مورد خاص’ میآید. در انگلیسی عمومی، ‘for instance’ به معنای ‘برای مثال’ یا ‘به عنوان نمونه’ به کار میرود. در برنامهنویسی، ‘instance’ به یک نمونه خاص از یک ‘class’ یا ‘struct’ اشاره دارد؛ یعنی یک شیء که بر اساس آن قالب ساخته شده است. مترادفهای دقیق زیادی ندارد اما ‘object’ (شیء) در بسیاری از موارد به یک ‘instance’ اشاره دارد.
این ‘کوهی از کلمات تخصصی’ واقعا حس من بود قبل از این مقاله! الان خیلی بهتر متوجه شدم. واقعا کمک کرد که بین مفاهیم پیچیده سوئیفت و معادلهای انگلیسیشون ارتباط برقرار کنم.
مجید جان، خوشحالیم که توانستیم این ‘کوه’ را برایتان هموار کنیم. هدف این بود که نه تنها اصطلاحات Swift را توضیح دهیم، بلکه شما را در مواجهه با متون انگلیسی تخصصی هم توانمندتر سازیم. موفق باشید!