- آیا هنگام مطالعه مستندات رسمی گوگل (Android Documentation) احساس سردرگمی میکنید؟
- آیا تماشای آموزشهای یوتیوب به زبان انگلیسی به دلیل اصطلاحات تخصصی برایتان دشوار است؟
- آیا نگران این هستید که در مصاحبههای شغلی، کلمات کلیدی دنیای کاتلین را اشتباه به کار ببرید؟
- آیا دوست دارید بدانید توسعهدهندگان حرفهای در مکالمات روزمره خود از چه واژگانی استفاده میکنند؟
یادگیری یک زبان برنامهنویسی جدید مثل کاتلین، شباهت زیادی به یادگیری یک زبان خارجی دارد. اگر واژگان پایه را بلد نباشید، حتی با داشتن منطق قوی، نمیتوانید با جامعه جهانی توسعهدهندگان ارتباط برقرار کنید. در این راهنمای جامع، ما لغات برنامهنویسی اندروید و اصطلاحات کلیدی زبان کاتلین را به شکلی ساده و کاربردی کالبدشکافی میکنیم تا یکبار برای همیشه بر این ادبیات فنی مسلط شوید.
| اصطلاح فنی (Term) | توضیح ساده | کاربرد در کاتلین |
|---|---|---|
| Variable | ظرفی برای نگهداری دادهها | استفاده از var و val |
| Null Safety | جلوگیری از خطای خالی بودن مقدار | ویژگی برجسته کاتلین |
| Function | قطعه کدی برای انجام یک کار خاص | تعریف با کلمه کلیدی fun |
| Class | نقشه ساخت یک شیء (Object) | پایه برنامهنویسی شیگرا |
بخش اول: مفاهیم پایه و ساختار زبان کاتلین
برای شروع هر پروژه اندرویدی، ابتدا باید با الفبای کاتلین آشنا شوید. کاتلین زبانی است که بر پایه اختصار و امنیت طراحی شده است. درک این کلمات به شما کمک میکند تا کدهای دیگران را راحتتر بخوانید.
1. متغیرها و ثوابت (Variables & Constants)
در دنیای لغات برنامهنویسی اندروید، اولین چیزی که با آن برخورد میکنید، نحوه ذخیرهسازی اطلاعات است. کاتلین دو مفهوم کلیدی دارد:
- Mutable (Var): به معنای “تغییرپذیر”. وقتی از
varاستفاده میکنید، یعنی مقدار آن در آینده قابل تغییر است. - Immutable (Val): به معنای “تغییرناپذیر”. وقتی از
valاستفاده میکنید، یعنی این مقدار فقط یکبار تعریف شده و دیگر تغییر نمیکند (مشابه Read-only).
2. انواع داده (Data Types)
هر دادهای در برنامهنویسی نوع خاصی دارد. شناخت نام انگلیسی این انواع برای تعریف آنها در کد ضروری است:
- String: برای رشتههای متنی (مثلاً نام کاربر).
- Int (Integer): برای اعداد صحیح.
- Boolean: برای مقادیر منطقی (درست/غلط).
- Double/Float: برای اعداد اعشاری با دقتهای متفاوت.
بخش دوم: منطق و جریان اجرای برنامه (Control Flow)
برنامهنویسی فقط ذخیره داده نیست، بلکه تصمیمگیری است. در این بخش با لغاتی آشنا میشویم که مسیر حرکت برنامه را مشخص میکنند.
توابع (Functions)
در کاتلین، توابع با کلمه کلیدی
fun
تعریف میشوند. در ادبیات تخصصی، ما با این اصطلاحات سر و کار داریم:
- Parameter: ورودیهایی که به تابع میدهیم.
- Return Type: نوع مقداری که تابع پس از اتمام کار به ما برمیگرداند.
- Argument: مقدار واقعی که هنگام صدا زدن تابع، به پارامترها اختصاص میدهیم.
ساختارهای شرطی
استفاده از عبارت
When
در کاتلین بسیار رایج است. این کلمه جایگزین هوشمندتری برای
Switch-Case
در زبانهای قدیمیتر مثل جاوا است. یادگیری نحوه بیان منطق “If-Else” به انگلیسی، به شما در درک الگوریتمها کمک شایانی میکند.
بخش سوم: امنیت و مقابله با خطاها (The Power of Null Safety)
بسیاری از زبانآموزان و برنامهنویسان تازه کار از خطای معروف
NullPointerException
وحشت دارند. کاتلین برای حل این مشکل، لغات جدیدی را وارد فرهنگ لغت توسعهدهندگان کرده است.
اصطلاحات امنیت کال (Null Safety Terms)
- Nullable: متغیری که میتواند مقدار “هیچ” یا
nullبپذیرد. در کاتلین با علامت سوال?مشخص میشود. - Non-Null: متغیری که هرگز نباید تهی باشد.
- Elvis Operator (?:): یک عملگر جالب که اگر مقداری تهی بود، یک مقدار پیشفرض را جایگزین میکند.
- Safe Call: استفاده از
?.برای اجرای کد تنها در صورتی که مقدار اصلی تهی نباشد.
نکته آموزشی: بسیاری از زبانآموزان در ابتدا با مفهوم Null دست و پنجه نرم میکنند. تصور کنید Null مانند یک جعبه خالی است. اگر سعی کنید محتویات یک جعبه خالی را بخورید، مریض میشوید! کاتلین قبل از باز کردن جعبه، به شما هشدار میدهد.
بخش چهارم: واژگان تخصصی محیط اندروید (Android Specific Vocabulary)
توسعه اندروید فراتر از زبان کاتلین است. شما باید با اجزای سیستمعامل اندروید نیز آشنا شوید. این بخش قلب اصلی لغات برنامهنویسی اندروید است.
1. اجزای اصلی اپلیکیشن (Core Components)
- Activity: یک صفحه واحد در اپلیکیشن که کاربر با آن تعامل دارد.
- Fragment: بخشی از یک Activity که میتواند دوباره در صفحات مختلف استفاده شود (ماژولار بودن).
- Intent: پیامی برای درخواست انجام یک عملیات (مثلاً باز کردن یک صفحه جدید یا دوربین).
- Service: عملیاتی که در پسزمینه (Background) بدون رابط کاربری اجرا میشود.
2. رابط کاربری (UI/UX)
| واژه | معنی فنی | مثال کاربردی |
|---|---|---|
| Layout | ساختار چیدمان صفحه | XML یا Compose Layout |
| Widget | عناصر بصری کوچک | Button, TextView, Checkbox |
| Resource (Res) | منابع غیرکدی | تصاویر، رشتههای متنی، رنگها |
| Adapter | رابط بین داده و لیست | نمایش مخاطبین در یک لیست طولانی |
بخش پنجم: مفاهیم پیشرفته و مدرن (Jetpack & Coroutines)
دنیای اندروید با سرعت زیادی در حال تغییر است. برای اینکه به عنوان یک متخصص حرفهای شناخته شوید، باید با لغات “مدرن” کاتلین آشنا باشید.
1. همزمانی با Coroutines
در برنامهنویسی اندروید، نباید کارهای سنگین (مثل دانلود فایل) را روی رشته اصلی (Main Thread) انجام داد، چون برنامه “هنگ” میکند. اصطلاحات مهم در اینجا عبارتند از:
- Suspend Function: تابعی که میتواند بدون مسدود کردن برنامه، موقتاً متوقف شود.
- Scope: محدودهای که اجرای عملیات در آن کنترل میشود.
- Dispatcher: تعیین میکند که کد روی کدام هسته یا بخش سیستم اجرا شود (مثلاً Dispatchers.IO برای دیتابیس).
2. معماری برنامه (Architecture)
توسعهدهندگان حرفهای از الگوهای خاصی پیروی میکنند. یادگیری نام این الگوها برای کار تیمی حیاتی است:
- MVVM (Model-View-ViewModel): رایجترین الگوی معماری در اندروید مدرن.
- Data Binding: متصل کردن مستقیم دادهها به عناصر رابط کاربری.
- Repository: کلاسی که وظیفه مدیریت منابع داده (دیتابیس یا اینترنت) را دارد.
تفاوت اصطلاحات در دنیای آکادمیک و بازار کار (Applied Linguistics)
جالب است بدانید که برخی کلمات در کتابهای درسی یک معنی دارند و در “کف بازار” برنامهنویسی معنی دیگری! برای مثال، کلمه Refactoring در لغت به معنای “بازسازی” است، اما در محیط کاری به معنای “بهینهسازی کد بدون تغییر در رفتار ظاهری آن” است.
همچنین در مورد لهجهها و گویشهای برنامهنویسی، تفاوتی بین US و UK وجود ندارد، اما اصطلاحات کاتلین در مقابل جاوا بسیار متفاوت است. برای مثال، چیزی که در جاوا “Static Method” نامیده میشد، در کاتلین اغلب در قالب Companion Object بیان میشود.
بخش ششم: اشتباهات رایج و باورهای غلط (Common Myths & Mistakes)
بسیاری از فارسیزبانان هنگام یادگیری لغات برنامهنویسی اندروید دچار اشتباهات لپی یا مفهومی میشوند:
- اشتباه اول: اشتباه گرفتن
ParametersباArguments. (پارامتر متغیر تعریف شده در تابع است، آرگومان مقدار واقعی است که پاس داده میشود). - اشتباه دوم: تصور اینکه کاتلین و اندروید یکی هستند. (کاتلین یک زبان است که برای سمت سرور و آیاواس هم کاربرد دارد، در حالی که اندروید یک پلتفرم است).
- اشتباه سوم: ترس از کلمه Deprecated. وقتی در مستندات میبینید کدی Deprecated شده، به این معنی نیست که کار نمیکند، بلکه یعنی روش بهتر و جدیدتری جایگزین آن شده است.
سوالات متداول (Common FAQ)
آیا برای شروع برنامهنویسی اندروید باید تمام لغات انگلیسی را بلد باشم؟
خیر، شما نیاز به دانش زبانی در سطح حرفهای ندارید. یادگیری حدود ۲۰۰ تا ۳۰۰ واژه تخصصی کلیدی برای درک اکثر مستندات و نوشتن کد کافی است.
تفاوت کاتلین با جاوا در یادگیری لغات چیست؟
کاتلین واژگانی مدرنتر و خلاصهتر دارد. مثلاً به جای نوشتن کدهای طولانی برای تعریف یک کلاس داده، از واژه Data Class استفاده میکند که بسیاری از کارها را به صورت خودکار انجام میدهد.
بهترین راه برای حفظ کردن این لغات چیست؟
بهترین راه، “کد زدن” همزمان با یادگیری است. وقتی شما یک متغیر را تعریف میکنید، در ذهن خود تکرار کنید که این یک Immutable Variable است. تکرار در محیط عملی، اضطراب یادگیری را کاهش میدهد.
چگونه مستندات رسمی گوگل را بهتر درک کنیم؟
سعی کنید ابتدا مفاهیم پایه مثل Lifecycle (چرخه حیات) و Context را به خوبی درک کنید. اکثر آموزشهای پیشرفته بر پایه این دو مفهوم بنا شدهاند.
نتیجهگیری
تسلط بر لغات برنامهنویسی اندروید و اصطلاحات کاتلین، اولین قدم برای تبدیل شدن از یک “کدنویس محلی” به یک “توسعهدهنده بینالمللی” است. یادتان باشد که هدف از یادگیری این لغات، تنها حفظ کردن کلمات نیست، بلکه درک عمیق مفاهیمی است که پشت این کلمات نهفته است.
اگر در ابتدای راه هستید و حجم لغات برایتان زیاد به نظر میرسد، اصلاً نگران نباشید. هر توسعهدهنده ارشدی که امروز میبینید، روزی با معنای
Variable
یا
Function
کلنجار میرفته است. با صبر و تمرین مداوم، این واژگان به بخشی از زبان مادری دوم شما تبدیل خواهند شد. دنیای توسعه اندروید منتظر خلاقیت شماست؛ پس با اعتماد به نفس کد بزنید!



ممنون بابت مقاله عالی! همیشه موقع خوندن داکیومنتها با کلماتی مثل `Variable` و `Function` مشکل داشتم که کاربردشون توی برنامهنویسی با معنی عمومیشون کمی فرق میکنه. میشه لطفا بیشتر راجع به تفاوتهای ظریف معنی `Function` در انگلیسی روزمره و برنامهنویسی توضیح بدید؟
خواهش میکنم سارا جان! سوال خیلی خوبی پرسیدید. کلمه `Function` در انگلیسی معانی مختلفی دارد. در برنامهنویسی، همانطور که گفتید، به قطعه کدی اطلاق میشود که یک کار خاص را انجام میدهد. اما در انگلیسی روزمره، میتواند به معنی ‘عملکرد’ یا ‘نقش’ (The function of a manager is to lead the team) باشد، یا حتی ‘مراسم رسمی’ (a social function). نکته کلیدی اینجاست که در هر دو مورد، به یک نوع ‘کارکرد’ یا ‘عملیات’ اشاره دارد، اما در برنامهنویسی این ‘عملکرد’ توسط کد تعریف میشود. امیدوارم این توضیح به شما کمک کند!
سلام. مقاله خیلی مفید بود. من همیشه `Null Safety` رو به فارسی ‘ایمنی تهی’ ترجمه میکردم ولی فکر میکنم ‘عدم تهی بودن’ یا ‘حفاظت در برابر تهی بودن’ معنی دقیقتری باشه. خود کلمه `Null` چقدر توی انگلیسی عمومی استفاده میشه؟ آیا فقط توی برنامهنویسی کاربرد داره یا جاهای دیگه هم میشه دیدش؟
سلام امیر عزیز. نکته خوبی رو اشاره کردید. اصطلاح `Null Safety` واقعاً به ‘حفاظت از خالی بودن’ یا ‘اطمینان از عدم تهی بودن’ اشاره دارد. کلمه `Null` در انگلیسی عمومی هم استفاده میشود، اگرچه نه به اندازه برنامهنویسی. مثلاً در حقوق (null and void به معنی باطل و بیاعتبار) یا در ریاضیات (null set به معنی مجموعه تهی). ولی پرکاربردترینش همین ‘خالی’ یا ‘فاقد ارزش’ بودن است که در برنامهنویسی به مفهوم ‘چیزی نداشتن’ یک متغیر اشاره دارد. ترجمههای شما هم دقیق هستند!
از مطالب روان و سادهتون ممنونم. من همیشه با تلفظ صحیح کلمه `Kotlin` مشکل داشتم، گاهی ‘کاتلین’ میگم و گاهی ‘کوتلین’. میشه تلفظ صحیحش رو به فرم الفبای فونتیک یا مشابه اون بنویسید؟
خواهش میکنم مریم جان. این سوال رایجیه و کاملاً درک میکنم. تلفظ صحیح `Kotlin` نزدیک به /ˈkɒtlɪn/ هست که میشه گفت ‘کـاتلین’ با تاکید روی بخش اول و صدای ‘آ’ شبیه ‘کال’ در ‘کالکشن’. ‘کوتلین’ خیلی رایج نیست و بهتره از ‘کاتلین’ استفاده کنید. خوشحالم که مقاله مفید بوده!
این بخش که گفتید یادگیری زبان برنامهنویسی مثل زبان خارجه میمونه، واقعاً درسته! من خودم وقتی توی آموزشهای انگلیسی میشنوم `Class` و `Object` رو، با وجود اینکه مفهومشون رو میدونم، ولی در لحظه اول ذهنم میره به ‘کلاس درس’ یا ‘شیء فیزیکی’. چطور میشه این تداخل ذهنی رو کمتر کرد؟ آیا برای این کلمات، اصطلاحات یا کلمات جایگزین سادهتری وجود داره که به برنامهنویسی مرتبط باشه؟
رضا جان، این تداخل ذهنی کاملاً طبیعی و نشاندهنده فرایند یادگیریه! بهترین راه برای غلبه بر این موضوع، مواجهه بیشتر با این واژگان در بستر برنامهنویسی و تقویت ‘دایره لغات تخصصی’ است. برای `Class` و `Object` کمتر اصطلاحات جایگزین رایج و ساده وجود داره چون اینها مفاهیم بنیادین OOP هستند. اما با تکرار و استفاده مداوم در جملات برنامهنویسی (مثلاً: ‘I am creating an instance of this `Class` to make an `Object`’), مغز شما به تدریج ارتباط قویتری بین کلمه و مفهوم برنامهنویسی برقرار میکند. به مرور زمان، این کلمات دیگر شما را یاد کلاس درس نمیاندازند!
مقاله خیلی به درد بخور بود، مخصوصا برای کسی که مثل من تازه شروع کرده. یه سوال: آیا `Documentation` و `Docs` از نظر رسمی بودن (formality) فرق دارن؟ من دیدم بعضیها از `Docs` استفاده میکنن.
آیدا جان، سوال بسیار خوبیه! بله، کاملاً درست متوجه شدید. `Documentation` شکل رسمی و کامل کلمه است و معمولاً در نوشتارها، اسناد رسمی، و محیطهای حرفهایتر استفاده میشود. `Docs` یک شکل کوتاه و غیررسمی (informal) از `Documentation` است که بیشتر در مکالمات روزمره بین برنامهنویسان، ایمیلهای دوستانه، یا عنوان لینکها و فایلها (مثلاً ‘read the docs here’) استفاده میشود. هر دو رایج هستند، فقط باید با توجه به مخاطب و موقعیت، از گزینه مناسب استفاده کنید.
من همیشه فکر میکردم `Developer` فقط برای کسی استفاده میشه که ‘کد’ مینویسه. آیا این کلمه میتونه برای کسانی که مثلاً توی تیم UX/UI یا QA هستن هم به کار بره؟ یا اونها عنوانهای خاص خودشون رو دارن؟
پارسا جان، سوال جالبیه و پاسخ دقیقش کمی پیچیده است. به طور کلی، `Developer` در هسته اصلی به کسی گفته میشود که کد مینویسد و نرمافزار را ‘توسعه’ (develop) میدهد. اما در یک مفهوم گستردهتر و گاهی اوقات در محیطهای غیررسمی، ممکن است شامل نقشهای مرتبط با توسعه مثل DevOps Engineer یا حتی گاهی QA (اگر در تستهای کد نویسی کنند) هم بشود. اما به طور خاص، برای UX/UI، عنوانهای `Designer`، `UX Specialist`، `UI Artist` یا `Product Designer` رایجتر و دقیقتر هستند. پس برای ‘کدنویس’ از `Developer` استفاده کنید و برای بقیه بسته به نقش دقیقشان عناوین مشخصتری وجود دارد.
وای، دقیقا مشکل من بود! مخصوصا وقتی آموزشهای انگلیسی رو نگاه میکنم و از `Keywords` صحبت میشه. خود کلمه `Key` معانی زیادی داره (کلید در، مهم، اصلی). توی این جمله ‘keywords of Kotlin world’ آیا `key` اینجا به معنای ‘اصلی’ یا ‘مهم’ هست؟ و آیا مثل ‘key to success’ هست یا فرق داره؟
نگین عزیز، درست متوجه شدید. در عبارت `Keywords` (کلمات کلیدی)، کلمه `Key` دقیقاً به معنی ‘اصلی’، ‘مهم’ یا ‘محوری’ است. این استفاده شباهت زیادی به ‘key to success’ (کلید موفقیت یا عامل اصلی موفقیت) دارد، جایی که `key` نشاندهنده چیزی حیاتی و اساسی است. در واقع `Keywords` به کلماتی اشاره دارد که برای درک یک موضوع یا جستجو در آن، اهمیت بنیادی دارند. پس `key` اینجا هم نقش ‘اصلی بودن’ را ایفا میکند.
ممنون از مقاله خوبتون. من توی یک ویدئو شنیدم که به جای `Function` گاهی `Method` هم میگن. آیا این دوتا با هم فرق دارن؟ یا میشه به جای هم استفاده کرد؟
سامان عزیز، سوال بسیار دقیقی پرسیدید! در برنامهنویسی، تفاوت ظریفی بین `Function` و `Method` وجود دارد. به طور کلی، یک `Function` یک قطعه کد مستقل است که میتواند کاری را انجام دهد. اما یک `Method` یک `Function` است که به یک `Class` یا `Object` خاص تعلق دارد و روی دادههای آن `Class/Object` عمل میکند. پس هر `Method` یک `Function` است، اما هر `Function` لزوماً یک `Method` نیست. در کاتلین و زبانهای شیگرا، بیشتر با `Method`ها سر و کار دارید، اما برخی اوقات به طور کلی ‘تابع’ یا `Function` هم گفته میشود، به خصوص وقتی مفهوم شیگرایی مد نظر نباشد.
همیشه از وبلاگ شما چیزهای جدید یاد میگیرم. این مقاله هم عالی بود. من یه سوال خارج از بحث کاتلین دارم. گاهی میشنوم که به ‘برنامهنویسها’ میگن `Coders` هم. آیا `Coder` و `Developer` معنی یکسانی دارن؟ یا یکی رسمیتره و اون یکی عامیانه؟
فاطمه جان، خوشحالیم که مطالبمون براتون مفیده! سوال شما هم عالیه. کلمات `Coder` و `Developer` هر دو به کسانی که کد مینویسند اشاره دارند، اما تفاوتهای ظریفی بین آنها هست. `Coder` معمولاً به کسی گفته میشود که صرفاً کد مینویسد، یعنی تمرکزش بیشتر روی پیادهسازی و نوشتن خطوط کد است. اما `Developer` به مفهوم گستردهتری اشاره دارد؛ کسی که نه تنها کد مینویسد، بلکه در تمام مراحل ‘توسعه’ (development) نرمافزار، شامل طراحی، معماری، تست و حتی نگهداری، نقش دارد. پس `Developer` جامعتر و حرفهایتر از `Coder` است. `Coder` ممکن است کمی غیررسمیتر یا محدودتر به وظیفه کدنویسی محض باشد.
خیلی ممنون از این راهنمای جامع. دقیقا مشکل من بود! آیا کلمه `bug` که به معنی خطا در برنامهنویسیه، ریشه انگلیسی خاصی داره یا فقط یه اصطلاح فنیه؟ من یادمه تو کارتونها `bug` به معنی حشره بود.
علی عزیز، سوال بسیار خوبی مطرح کردید و مشاهدهگر دقیقی هستید! بله، کلمه `bug` به معنی ‘حشره’ در انگلیسی، ریشه اصطلاح ‘خطای نرمافزاری’ است. این اصطلاح از اوایل دوران کامپیوترها رایج شد. مشهورترین داستان مربوط به سال 1947 است که در یکی از اولین کامپیوترها، یک پروانه (نوعی حشره) در رله گیر کرده و باعث اختلال در عملکرد شده بود. اپراتورها آن را ‘debugging’ (رفع اشکال) نامیدند. پس بله، معنای ‘حشره’ در انگلیسی کاملاً به ریشه این اصطلاح برمیگردد و حالا `bug` در برنامهنویسی به هرگونه خطا یا مشکل گفته میشود.
این توضیحات واقعا کمککننده بود. من همیشه بین `val` و `var` گیج میشدم. حالا که میدونم `Variable` یعنی ظرف نگهداری داده، این دوتا رو بهتر درک میکنم. فقط یه سوال: تلفظ `var` و `val` دقیقا مثل ‘ور’ و ‘ول’ فارسی هست؟
مهسا جان، خوشحالم که مقاله کمککننده بوده! تلفظ `var` (variable) شبیه به ‘وار’ در فارسی است، با تاکید روی ‘آ’. و `val` (value) شبیه به ‘وَال’ (مثل ‘وال’ در ‘والیبال’) تلفظ میشود، با صدای ‘اَ’ کوتاهتر و نه ‘آ’ کشیده. امیدوارم این توضیح دقیقتر باشد!
سلام، این مقاله واقعاً ارزش وقت گذاشتن داشت. من یه سوال کلیتر دارم. برای اینکه بتونیم داکیومنتها رو راحتتر بخونیم و آموزشهای انگلیسی رو بهتر متوجه بشیم، به جز واژگان تخصصی، چقدر گرامر زبان انگلیسی مهمه؟ آیا گرامر خاصی برای این حوزه نیاز هست یا همون گرامر عمومی کافیه؟
سلام فرهاد عزیز. سوال شما بسیار مهم و بجاست! برای درک داکیومنتها و آموزشهای انگلیسی در حوزه برنامهنویسی، گرامر عمومی زبان انگلیسی کاملاً کافی و ضروری است. نیازی به یادگیری گرامر تخصصی خاصی برای این حوزه نیست. در واقع، بسیاری از جملات فنی در داکیومنتها ساختار نسبتاً سادهای دارند (مانند جملات خبری یا امری برای دستورالعملها). تسلط بر زمانهای حال ساده، آینده، و گذشته ساده، همچنین ساختارهای شرطی (if/else) و جملات مجهول (که در متون فنی زیاد استفاده میشود)، به شما کمک شایانی خواهد کرد. پس روی همان گرامر عمومی تمرکز کنید و دایره لغات تخصصیتان را افزایش دهید.
این مقاله یه گنج بود! من همیشه `Object` رو ‘شیء’ ترجمه میکردم ولی توضیحات شما باعث شد بهتر درکش کنم. آیا کلمه `Object` در انگلیسی غیربرنامهنویسی، همیشه به معنی ‘شیء فیزیکی’ هست یا معانی انتزاعیتر هم داره؟
پریسا جان، خوشحالیم که براتون مفید بوده! کلمه `Object` در انگلیسی غیربرنامهنویسی معانی گستردهای دارد و لزوماً فقط به ‘شیء فیزیکی’ اشاره نمیکند. میتواند به ‘هدف’ یا ‘مقصود’ (object of desire)، ‘مفعول’ در گرامر (direct/indirect object)، یا حتی به ‘موضوع’ یک بحث (object of discussion) هم اشاره داشته باشد. در برنامهنویسی، `Object` یک ‘نمونه’ (instance) از یک `Class` است که دادهها و رفتارهای خاص خود را دارد، که باز هم یک مفهوم انتزاعی از ‘شیء’ را نمایندگی میکند. پس بله، معانی انتزاعیتر زیادی هم دارد.
مطلب خیلی خوب و کاربردی بود. به خصوص برای ما که میخوایم وارد بازار کار بشیم و مصاحبه انگلیسی داریم. آیا برای `Variable` که به معنی ظرف نگهداری داده هست، اصطلاح یا کلمه رایج دیگهای هم تو محاورههای فنی انگلیسی وجود داره؟
وحید عزیز، خوشحالم که مقاله براتون مفید بوده. برای `Variable`، کلمه `field` (در چارچوب یک کلاس یا شیء) یا `property` (ویژگی) هم گاهی استفاده میشود، اما `Variable` خودش اصطلاح بسیار رایج و پایه است و همه آن را میشناسند. در واقع، `Variable` یک اصطلاح کلیتر است در حالی که `field` یا `property` معمولاً به متغیرهایی اشاره دارند که درون یک کلاس یا شیء تعریف شدهاند. پس `Variable` همچنان بهترین و گویاترین کلمه برای استفاده است.
تشکر از مقاله بینظیرتون. این توضیحات پایه، خیلی به درک بهتر مستندات گوگل کمک میکنه. من یه سوال راجع به `Syntax` دارم. تلفظ صحیح این کلمه چیه و آیا کلمه مشابهی هم داره که توی برنامهنویسی استفاده بشه؟
شیرین جان، خوشحالیم که مقاله کاربردی بوده! تلفظ صحیح `Syntax` به صورت /ˈsɪntæks/ است که تقریباً شبیه ‘سینتَکس’ با تاکید روی ‘سین’ تلفظ میشود. کلمه مشابهی که در برنامهنویسی با `Syntax` مرتبط است، `Semantics` (سمانتیکس) است. `Syntax` به ‘قواعد نگارشی’ یا ‘گرامر’ یک زبان برنامهنویسی اشاره دارد (مثلاً اینکه چطور باید کد را بنویسید تا کامپایلر آن را بفهمد). در حالی که `Semantics` به ‘معنا’ یا ‘رفتار’ آن کد اشاره دارد (یعنی آن کد بعد از اجرا شدن دقیقاً چه کاری انجام میدهد). هر دو برای فهم عمیق یک زبان برنامهنویسی مهم هستند.
خیلی ممنون بابت مقاله عالی! همیشه دلم میخواست یکی این کلمات رو با دیدگاه یادگیری زبان توضیح بده. آیا برای اصطلاح `Null Safety` که از ویژگیهای برجسته کاتلین هست، اصطلاح یا عبارت جایگزین دیگهای توی زبانهای برنامهنویسی دیگه هم استفاده میشه که همین مفهوم رو برسونه؟ مثلا `Optional` توی Swift.
مهران عزیز، خوشحالیم که دقیقاً به نیازی که داشتید پاسخ داده شده! بله، کاملاً درست اشاره کردید. مفهوم `Null Safety` با روشهای مختلفی در زبانهای برنامهنویسی دیگر پیادهسازی میشود و گاهی اوقات نامهای متفاوتی دارند. به عنوان مثال، `Optional` در Swift که به شما اجازه میدهد متغیری را تعریف کنید که ممکن است مقدار داشته باشد یا نداشته باشد (یعنی ‘null’ باشد). در C#، این قابلیت با `Nullable Reference Types` در نسخههای جدیدتر اضافه شده است. همه اینها به نوعی تلاش برای ‘حفاظت در برابر تهی بودن’ هستند، اما با ساختارها و اسامی کمی متفاوت.
مقاله بینظیر بود! من خودم دارم کاتلین یاد میگیرم و دقیقاً این مشکلات رو داشتم. خیلی خوبه که این اصطلاحات رو به این شکل ساده توضیح دادید. یه سوال: کلمه `Framework` که در توسعه اندروید زیاد میشنویم، تلفظش چطوریه و آیا معنی غیربرنامهنویسی هم داره؟
صبا جان، ممنون از لطف شما. خوشحالیم که مفید بوده! تلفظ `Framework` به صورت /ˈfreɪmwɜːrk/ است که تقریباً شبیه ‘فِرِیموِرک’ تلفظ میشود. بله، `Framework` در انگلیسی غیربرنامهنویسی هم معنی دارد. به طور کلی به یک ‘چهارچوب’ یا ‘ساختار اساسی’ اشاره میکند که مبنایی برای توسعه یا انجام کاری فراهم میکند. مثلاً ‘a legal framework’ (چهارچوب قانونی) یا ‘a conceptual framework’ (چهارچوب مفهومی). در برنامهنویسی هم دقیقاً همین معنی را دارد: یک ساختار آماده شامل کتابخانهها و قوانین که توسعهدهندگان میتوانند برنامههای خود را بر پایه آن بسازند.
از مطالب دقیق و کاربردیتون سپاسگزارم. همیشه فکر میکردم `Android Documentation` یعنی فقط یه سری کتاب و مقاله! آیا `Documentation` میتونه شامل آموزشهای ویدئویی یا حتی مثالهای کد هم باشه؟ و آیا `Documentation` همیشه ‘رسمی’ هست؟
امین عزیز، خواهش میکنم. سوال شما بسیار در مورد وسعت مفهوم `Documentation` است. بله، `Documentation` یک مفهوم گسترده است و میتواند شامل انواع مختلفی از محتوا باشد: مقالات متنی، راهنماها، API references، کد مثالها، آموزشهای ویدئویی، و حتی نمودارها و دیاگرامها. هر چیزی که به شما در درک و استفاده از یک محصول یا فناوری کمک کند، میتواند بخشی از `Documentation` باشد. در مورد ‘رسمی’ بودن، معمولاً وقتی از `official documentation` صحبت میکنیم، بله، به منابع رسمی و معتبر اشاره دارد که توسط سازنده ارائه شدهاند. اما به طور کلی، هر مجموعهای از اسناد توضیحی میتواند `documentation` نامیده شود، حتی اگر غیررسمی باشند، هرچند کمتر رایج است.