ترمینال آزاد

چرت نویس های یک مهندس بیکار

اصل و نسب VHDL و Verilog

Verilog و VHDL هر دو زبان توصیف سخت‌افزار (HDL) صنعتی هستند که از آن‌ها به منظور نوشتن برنامه برای مدارات مجتمع الکترونیکی (IC)، ASIC و FPGA استفاده می‌شود. بسیاری از طراحان سیستم‌های دیجیتالی با این سوال روبرو می‌شوند که کدام زبان را انتخاب کنند، VHDL یا Verilog!؟

پاسخ به این سوال نه آسان هست و نه مهم! هر دوی این زبان‌ها همواره به‌طور گسترده مورد مقایسه و تقابل قرار گرفته‌اند بدون اینکه پیروز مشخصی برای این قیاس معرفی گردد. هر دوی آن‌ها معایب و محاسن مختص خود را دارند هر چند از دو منشا متفاوت می‌باشند. این دو زبان دارای سهم عمده‌ای از زبان‌های توصیف سخت‌افزاری هستند که در جهان مورد استفاده قرار می‌گیرند. دشوار است که با اطمینان بگویم کدام زبان بهتر و برتر می‌باشد با این‌حال باید خاطر نشان شد که از بین این دو، VHDL قدیمی‌تر هست. شما می‌تواند طرح قوی و تست محیطی وسیعی را با هر دو زبان، برای FPGA یا ASIC پیاده‌سازی کنید.

زبان‌های VHDL و Verilog هر دو از زبان‌های برنامه‌نویسی مختلفی سرچشمه گرفته‌اند و توسط مکاتب فکری متفاوتی پشتیبانی می‌شوند. VHDL بر پایه Pascal و Ada ساخته شده، در نتیجه ویژگی‌های هر دوی این زبان‌ها را منعکس می‌کند. اما Verilog برخلاف VHDL بر‌اساس زبان برنامه‌نویسی C شکل گرفته و نسبت به VHDL جدیدتر می‌باشد. بررسی منابع اینترنتی حاکی از این است که Verilog عمدتا توسط برنامه‌نویسان HDL با پس‌زمینه و تجربه صنعتی پشتیبانی می‌شود درحالی که VHDL اکثرا توسط محافل علمی ساپورت می‌گردد.

توسعه VHDL در سال ۱۹۸۱ و توسط وزارت دفاع (DOD) ایالات متحده به منظور مقابله با بحران چرخه زندگی سخت‌افزاری آغاز شد. VHDL مختص وزارت دفاع توسعه داده شد تا یک زبان مدل‌سازی سخت‌افزاری استوار برای مستند‌سازی طراحی سیستم‌های دیجیتالی فراهم آورد. البته این واقعا به معنای طراحی سخت‌افزار فیزیکی نیست: بلکه هدف اصلی مدل‌سازی سخت‌افزاری بود. از آنجایی که Verilog یک دارایی معنوی برای Gateway Design Automation می‌باشد، برای بهره‌مندی از آن نهایتا باید از طریق Cadence اقدام کرد. بنابراین برای حفظ قدرت رقابتی و فاصله میان این دو از هرگونه روابط استراتژیک، Verilog از هرگونه کنترل پتانسیل رقابتی دور نگه داشته می‌شود. موسسات اتوماسیون طراحی الکترونیک (EDA)، موجب نفوذ قابل توجهی گردیده، ابتکار و سرمایه‌گذاری این شرکت موجب تبدیل این زبان به یک HDL مهم گردیده است. همین موسسات EDA، نسخه‌های نیمه یونیک (semi-unique) مختص خود از این زبان را در در سطوح مختلف پیاده‌سازی و توسعه، ایجاد و اجرا کرده‌اند. دلیل عدم پذیرش Verilog توسط EDA وجود یک اصل مهم بین موسسات EDA است که می‌گوید آنها باید مالک تمام فن‌آوری‌های core خود باشند که در این مورد توسط Verilog نقض می‌گردد، و آن بدلیل تعلق مالکیت معنوی آن به Cadence بود که امکان مالکیت عمومی را از آن سلب کرده بود. علاوه‌براین فروشندگان EDA خواستار شکستن سیطره Cadence روی ابزار طراحی IC و نرم‌افزاری در بازار بودند که موجب ترقی و ترویج VHDL به عنوان یک زبان باز می‌گردید. VHDL در سال ۱۹۸۷استاندارد IEEE 1076 را کسب نمود. این زبان در سال ۱۹۹۳ آپدیت گردید که امروزه با نام IEEE standard 1076 1993 شناخته می‌شود. مانند سایز استانداردهای IEEE، زبان VHDL باید فرآیندهای بررسی ۵ ساله (یا کمتر) را طی کند تا از ارتباط مداوم آن با صنعت اطمینان یافت. اولین اصلاحیه این زبان در سپتامبر ۱۹۹۳ انجام پذیرفت.

برخلاف VHDL، زبان Verilog سرچشمه گرفته از دنیای تجاری و صنعتی می‌باشد. Verilog به عنوان بخشی از شبیه‌ساز سیستمی توسعه یافته است، که شاید موجب گردیده به خوبی برای توصیف سیستم‌های سخت‌افزاری دیجیتال استفاده گردد. زبان Verilog در سال ۱۹۸۳ توسط gateway منتشر گردید. بعددا gateway در سال ۱۹۸۹ توسط Cadence خریداری گردید. Cadence به شرطی Verilog‌ را به رسمیت می‌شناخت که در رقابت با VHDL برابر فشار متعارفی که صنابع را مجبور به استفاده از VHDL می‌کند، بتواند نقش یک زبان بسته را برای رقابت ایفا کند. سراجام Cadence با انتشار رسمی Verilog در سال ۱۹۹۱، آن را به مالکیت عمومی درآورد. Verilog در سال ۱۹۹۵ موفق به کسب استاندارد IEEE گردید.

هر دوی این زبان‌ها مزایا و معایب منحصربه‌فرد خود را دارا می‌باشند و هیچ یک از آن‌ها کامل یا ایده‌آل نیست. در طراحی ASIC، زبان Verilog در تعریف سخت‌افزار بیشتر مناسب‌تر می‌باشد در حالی که برای مدلسازی سطح بالاتر، Verilog بدلیل عدم پکیج‌گذاری و تعاریف نوع حداقلی (records, access and enumeration) با محدودیت‌هایی مواجه است. هر کاری که با Verilog می‌توان به سرانجام رساند، با VHDL هم امکان‌پذیر می‌باشد در حالی که معکوس این قضیه صدق نمی‌کند. برنامه‌نویس HDL موظف به اتخاذ برخی سیاست‌های کاری/تجاری برای مواجهه با نیازهای طراحی می‌باشد و لازمه آن آشنایی با هر دوی این زبان‌های توصیف سخت‌افزار است.

 

این پست برگرفته از مطلب Verilog vs VHDL می‌باشد.

چی!؟ اف‌پی‌جی‌اِی!؟

داشتم تو یکی از وبلاگ‌های طراحی دیجیتال پرسه می‌زدم که یه پست جالب دیدم با عنوان “?what”. توضیح محاوره‌ای و خیلی جالبی در مورد اف‌پی‌جی‌اِی هستش برای کسی که تا حالا اسمشم نشنیده بود. به الگوی بقیه پست‌های وبلاگ نمی‌خورد این مطلبش (بقیه نوشته‌هاش تخصصی هستن) واسه همین واسم جالب اومد. گفتم ترجمه شده‌اش رو اینجا هم بذارم شاید کسی خواست قدم در این راه بندهد.

چی؟

اف‌پی‌جی‌اِی داداچ!

اف‌پی‌جی‌اِی چیه؟

یه تراشه کامپیوتری

شبیه چیزی که توی لپ‌تاپ و موبایلمه؟

تقریبا! تراشه‌های لپ‌تاپ و موبایل متمایل به کاربرد مخصوصی و خاصی هستند، در حالی که اف‌پی‌جی‌اِی می‌تونه برای هر کاری مورد استفاده قرار بگیره.

وایسا ببینم، مگه تراشه لپ‌تاپ من نمی‌تونه برای انجام هر کاری برنامه‌ریزی بشه؟

اونم تقریبا می‌تونه، تراشه معمولا برنامه‌هایی رو اجرا می‌کنه که بهش گفته شده، در حالی که اف‌پی‌جی‌اِی می‌تونه دوباره برنامه‌ریزی بشه تا بهش بگن چه کارهایی رو انجام بده.

آقا اوکی! ولی اینی که گفتی یعنی چی!؟

چی یعنی چی!؟ اف‌پی‌جی‌اِی؟ الان واست مسئله رو میشکافم. اف‌پی‌جی‌اِی تراشه کامپیوتری قابل برنامه‌ریزی هستش. این تراشه متشکل از گیت های منطقی بولین (AND, OR, Not, XOR) هستن که تعداد بسیار زیادی از این گیت‌ها در ساختار شبکه‌ای و سیم‌کشی های منطقی بینشون، یک تراشه اف‌پی‌جی‌اِی رو تشکیل میدن. تراشه‌های مدرن می‌تونن دفعات متعددی بعد از نصب هم برنامه‌ریزی بشن در حالی که تراشه‌های قبلی رو شما یک بار می‌تونید برنامه‌ریزی کنید یا بعضا مجبور هستیم تا شکاف کوچکی به داخل تراشه باز کرده و از نور ماورا بنفش استفاده کنیم. اف‌پی‌جی‌اِی مخفف عبارت آرایه گیت‌های قابل برنامه‌ریزی میدانی (FPGA: Field Programmable Gate Array) هستش. میدانی به این دلیل که می‌توان در هر نقطه‌ای پیاده‌سازی کرد، نه لزوما آزمایشگاه‌های ویژه، قابل برنامه‌ریزی بدلیل دستوری که برای اجرا ما برای تراشه تعریف می‌کنیم، گیت بدلیل کاکرد منطق دیجیتالی و در نهایت آرایه به دلیل شکلی که بلوک‌ها قرار دارند.

عجب! یه سوال دیگه: دلیل استفاده کسی از این تراشه‌ها چیه؟

در صنایعی که دارای میزان بالایی از تغییرات یا تعداد تولیدات محدودی هستند، اف‌پی‌جی‌اِی بهترین انتخاب هستش. بنابراین در صنایع دفعای که ممکنه از وسیله‌ای فقط ۲۰ عدد ساخته شود یا در تصویربرداری پزشکی که تعداد کم و چگونگی تغییرپذیری ملاک است نیاز می‌شود تا از دستگاه‌هایی استفاده گردد که توسط اف‌پی‌جی‌اِی ساخته شده‌اند. همچنین این تراشه برای نمونه‌سازی، گزینه مناسبی هستش. پس شاید اپل از اف‌پی‌جی‌اِی برای نمونه‌سازی آیپد بعدی استفاده کنه، اما بعدا آنها یک طراحی مخصوص مدار مجتمعی برای خط تولید طراحی خواهند کرد. هزینه ASIC اولیه یک میلیون دلار یا شایدم بیشتر باشه و نمونه بعدی حدود ده سنت. اما اف‌پی‌جی‌اِی اولیه چیزی حدود هزار دلار درمیاد اما تولیدهای بعدی هم به همین قیمت تموم میشه.

اما من فقط میخوام سرگرم بشم. یه هکرم یا یکی که واسه تفریح چیز میز می‌سازه نه یه شرکت. تکلیفم چیه؟

پس تو دنبال یک چیز دیگه‌ای. یک میکروکنترلر یا پردازنده ARM یا چیزی شبیه اینها. اف‌پی‌جی‌اِی گرون‌تر از اونیه که بشه ازش به عنوان سرگرمی استفاده کرد. از اینطرف سر و کله زدن باهاش دردسر داره و کار هر کسی نیست. من سایت‌های زیادی رو دیدم که میگن “خرید یک اف‌پی‌جی‌اِی و لود کردن هسته نرم‌پزدازشی روی اون‌ها وقت تلف کردنه، بجاش تراشه اصلی مخصوص رو بخرید.” اما ممکنه شما از اف‌پی‌جی‌اِی در طراحی یک امبدد سیستم استفاده کنید یا یک کارکرد بلادرنگ. این ویدئو نشان می‌دهد چگونه در سناریوی یک ربات، منطق متوازی مستقل اف‌پی‌جی‌اِی باعث ایجاد دقت بیشتری می‌شود.

اما این یه سایت سرگرمیه، درسته؟ چرا منو نسبت به استفاده از اف‌پی‌جی‌اِی دلسرد می‌کنی؟

اف‌پی‌جی‌اِی ها حقیقتا گزینه مناسبی برای هر کاربردی نیستند. آن‌ها کمی شبیه چاقوهای همه‌کاره سوئیسی هستند! پس شما می‌تویند هر کاری که با میکروکنترلر یا میکروپروسسور یا پردازنده سیگنال دیجیتال انجام می‌دید با اف‌پی‌جی‌اِی هم انجام بدین ولی چرا از یک چاقوی همه‌کاره سوئیسی واسه بریدن کره صبحانه استفاده کنیم وقتی یک کشو پر از انواع کارد صبحونه داریم که کار باهاشون راحت‌ترم هستش!؟ اما وقتی شما واسه پیک‌نیک میرین بیرون و همراهتون دلستر لیمو و کیک خونگی می‌برین نیاز به نوشابه بازکن و کارد آشپزخونه دارید (در یک اف‌پی‌جی‌اِی شما می‌دونید که برای مانیتورینگ یک سنسور، ایجاد ارتباط منطقی بین دو چیز و کنترل یک موتور به چه سخت‌افزار مخصوصی نیاز دارید) یا می‌تونید با یک چاقوی همه‌کاره سوئیسی کارتون رو راه بیندازید حتی اگه همیشه به درد بخور نباشد نسبتا راه مناسب‌تری هستش.

من یک طراح هستم و برنامه‌نویسی می‌کنم برای اینکه زندگی رو آسون‌ترش کنم و زبانی رو انتخاب می‌کنم که خیلی سریع باشه. رفتن سراغ برنامه‌نویسی اف‌پی‌جی‌اِی برای من چطوریاست؟ به کارم میاد یا نه؟

برای طراحی سخت‌افزار فاکتورای پیچیده زیادی هستش که باید باهاشون سر و کله بزنید. ابزارهای اینکار به خوبی ابزارهای طراحی نرم‌افزار نیستن. احتمالا شما برای تمامی مراحل طراحی نیاز به ابزار‌های مخصوص پولی خواهید داشت. در حالی که زبان‌های توصیف سخت‌افزاری (HDL: Hardware Description Language) به خاطر توابع آسانش خوانایی راحتی دارد، بخش دشوار ماجرا مربوط می‌شود به ماهیت متوازی طراحی سخت‌افزار. در نهایت، درباره اینکه اف‌پی‌جی‌آِی چه کاری می‌کند باید بگم جاهایی که موانعی برای حل و فصل انواع مسایل وجود داره، اف‌پی‌جی‌اِی به راحتی می‌تازه و همچنین برای کارهای دشواری مثل دیویژن، اعداد نقطه متغیر، اعداد بزرگ مراحال منطقی موجود در تناوب کلاک راه‌حل مناسبی هستش.

خب، قطعا این توضیحات مارو کمتر به عمق ماجرا برد، حتی اگه برم ویکیپدیا یا هر جای دیگه باز توضیحات سطحی هستن. من اگه بخوام عمقی اف‌پی‌جی‌اِی رو یاد بگیرم باید چیکار کنم؟

مثلا تو این سایت می‌تونید در مورد کاربرد اف‌پی‌جی‌اِی در بینایی ماشین بحث کنید. اینجا در مورد همین مسائلی که اینجا توضیح داده شد بحث میشه منتهی مفهومی‌تر و با توضیحات مفصل‌تر با تمرکز بر استفاده از اف‌پی‌جی‌اِی.

افرادی که نه تنها باینری, بلکه هیچ چیز نمی فهمند

داشتم تو توییتر وقت می گذروندم که این عکس رو دیدم. نوشته ای که یه زمانی معروف بود و افراد به اصطلاح گیک ترجمه اونو تو وبلاگ ها و امضاهاشون می نوشتند.

تصویر رو که دیدم یاد امضای پروفایل فروم یکی از این افراد به ظاهر گیک افتادم که متن بالا رو اینطوری ترجمه کرده بود:

مردم به ده دسته تقسیم می شوند:

یک دسته آنهایی که باینری می دانند.

و نه دسته ای که باینری نمی دانند!

 

در مورد دسته اول کاری ندارم ولی فردی که این امضا رو داشت خودش قطعا جزو ۹ دسته ای بود که نوشته! یعنی اصلا معنی و هدف متن رو متوجه نشده بود و شاید هم می خواست به این طریق منظور رو برسونه که اصلا چیزی از باینری نمی دونه و خودش شکسته نفسی کرده و اعلام می کنه.

ولی اینکه قصد اصلی متن چیه باید اینطوری توضیح بدم:

ترجمه مستقیم متن اینطوری:

مردم به ۱۰ دسته تقسیم می شوند:

آنهایی که باینری می دانند

و آنهایی که باینری نمی دانند

ولی این که شد دو دسته! پس هشت دسته بعدی چی شد؟ موضوع همینه! اونایی که باینری بلدن فهمیدن چی شد ولی اونایی که باینری بلد نیستن گیج شدن. در واقع اون ۱۰ که تو متن اصلی نوشته بود عدد ده نیست و دو هستش! اون ۱۰ به زبان باینری هستش. در باینری رقم ها از سمت راست شمرده میشن و هر رقم ارزش منحصربفردی داره. ارزش هر رقم از رابطه دو به توان n بدست می آید که n از عدد صفر شروع میشه و به ترتیب میره بالا. یعنی ارزش رقم اول از سمت راست ۱, رقم دوم ۲, رقم سوم ۴, رقم چهارم ۸ و الی آخر.

به تصویر زیر توجه کنید تا بهتر متوجه بشید:

670px-Convert-from-Binary-to-Decimal-Step-4-Version-2

ردیف اول ارزش رقم رو همونطوری که گفتم نشون میده. خط پایینش عدد باینری هستش. عدد باینری شامل دو عدد ۱ یا ۰ میشه و از این دو عدد خارج نیست. اگر زیر ارزش رقم, ۱ نوشته بود یعنی ارزش اون رقم احتساب بشه و اگر ۰ نوشته بود یعنی ارزش بالای عدد محاسبه نشه. تو تصویر بالا با اصولی که گفتم عدد ۱۲۸ بدست می آید:

۱+۲+۰+۸+۱۶+۰+۰+۱۲۸=۱۵۵

حالا برگردیم به متنی که در موردش صحبت می کردیم. اونجا نوشته مردم ۱۰ دسته هستند. در واقع این ۱۰ ما عدد باینریه. رقم اول صفر هستش و ارزش رقمیش ۱ که اینجا باز صفر حساب میشه چون زیرش ۰ درج شده و رقم دوم یک هستش با ارزش دو که دو احتساب میشه. یعنی این ۱۰ ما عدد ۲ هستش.

مردم به دو دسته تقسیم می شوند:

دسته اول اونایی که باینری بلدند

و دسته دوم اونایی که باینتری بلد نیستند

اونی که باینری بلده وقتی متن رو بخونه جمله بالا رو ازش درک می کنه و اون کسی هم که باینری بلد نیست متن اول رو فقط کپی می کنه.

ولی نکته جالب نوشته اینه که علاوه بر معنی اصلی اون معنی که اشتباها از اون استنباط میشه هم جالبه. در واقع اینطوری می رسونه که از هر ده نفر یه نفر می دونه باینری چیه و این متن چی میگه.

چگونه در مورد ترجمه مقاله ای تصمیم بگیریم؟

امروز می خواستم مقاله ای رو که جادی تو توییتر لینکشو گذاشته بود رو ترجمه کنم؛ چون به نظرم مقاله خوب و جالبی می اومد و از همه مهم تر در مورد سرویس IFTTT بود که من خیلی ازش استفاده می کنم و یه جورایی دوسش دارم.

مقاله در مورد زیرساخت داده در IFTTT و نحوه مدیریت و سازماندهی داده ها بود که خود مدرس داده و ماشین IFTTT اونو نوشته بود. مقاله بسیار مناسبیه برای اونایی که به داده و بیگ دیتا و آنالیز داده علاقه دارند و میخوان در موردش بیشتر یاد بگیرن. شروع کردم پاراگراف به پاراگراف ترجمه کردن که دیدم به تعداد بسیار زیادی از لغت “Data” استفاده شده که بدلیل تخصصی بودن مقاله و اختصاص تمام و کمالش به مبحث داده بود. ما همگی تا چند وقت اخیر تو فارسی هم “data” رو همون “دیتا” می گفتیم و به تازگی مد شده که از اصلاح “داده” برای “data” استفاده می کنیم. دیدم اگه من data رو همون دیتا بنویسم در واقع یک سوم مقاله رو اصلا ترجمه نکردم, پس گفتم برای احترام به کسی که ترجمه رو می خونه و همچنین رواج لغات خودی تو حوزه IT بهتره که “data” رو “داده” ترجمه کنم. این مشکل حل شد ولی جلوتر که رفتم به لغاتی برخوردم که یا معادل فارسی نداشتن و یا اگه معادل فارسی داشتن و من اونارو به کار می بردم, خواننده با استناد به اون لغات مفهوم متن رو متوجه نمی شد و چاره ای نداشت جز رجوع به متن اصلی مقاله. در ادامه به لغاتی برخوردم که اگه نمی خواستم خود لغت رو بنویسم باید بجای اون لغت انگلیسی, من چندین جمله توضیح فقط برای وصف یک کلمه می نوشتم! در واقع وسط بحث, از موضوع اصلی خارج می شدم و یک مورد فرعی رو تشریح می کردم. و لغاتی هم بودند که اسم خاص یا نام سرویسی بودن و به هیچ عنوان ترجمه ای نداشتم و باید بدون دخل و تصرف در متن وارد می شدن. مثل MySQL, AWS RDS و …

دیدم اینجوری پیش بره مقاله ای که ترجمه کردم شده نصف فارسی, نصف انگلیسی و با یسری توضیحات فرعی تو متن که خواننده با خوندن این ترجمه چیزی از اصل مطلب متوجه نمی شه. همون جا تصمیم گرفتم که پیش نویسی رو که تو وردپرس تا اون لحظه آماده کرده بودم رو به کلی پاک کنم. به این فکر کردم که چرا ترجمه خوبی نشد. مشکل از من بود یا مقاله!؟

در حقیقت هر مقاله ای ارزش ترجمه رو نداره. نه به این دلیل که مقاله ارزشمندی نباشه بلکه بنا به دلایلی که ذکر می کنم ترجمه بعضی مقالات کار بیهوده ای هستش.

برای مثال مقاله ای دارید که لغاتی که درش بکار رفته اگر ترجمه تحت اللفضی بکنید معنی بسیار دورتر از آنچه نویسنده مقاله قصد داشته, بدست می دهد. پس متن ترجمه شده معنی و مفهوم خودشو از دست میده. برای مثال شما عبارت “Recipe Worker” را چه ترجمه می کنید!؟ “کارگر دستور”!؟ “عمله دستورالعملی”!؟ مطمئن باشید اگر خواننده چنین عباراتی را در متن ببیند به احتمال زیاد شما را متهم به استفاده از گوگل ترنسلیت و کپی/پیست می کند. اگر هم بخواهید مفهوم کلمه را در حین ترجمه توضیح دهید و تعداد چنین عباراتی هم زیاد باشد متن حاصل مدام از مفهوم اصلی خود خارج شده و به تعریف و تفهیم عبارات جنبی می پردازد که موجب گسستگی اصل مطلب می شود.

یا با متنی سر و کار داریم که لغات بکار رفته در متن بدون تغییر وارد زبان مقصد شده اند و یا هنوز معادلی برای آنها در زبان مقصد انتخاب و رایج نشده است. شما در واقع ترجمه ای انجام نمی دهید و همان لغت را دوباره و این بار به خط فارسی می نویسید. وقتی در متنی با لغات بسیاری از این دست مواجه باشیم, متن ترجمه شده تفاوت چندانی با متن اصلی ندارد. در واقع شما اصلی ترین بخش متن را که باید ترجمه می شد را نتوانستید برگردان به فارسی کنید. با این شرایط پس بهتر است که خواننده به جای مطالعه ترجمه نصف و نیمه به سراغ متن اصلی رفته و فقط لغات اندکی در متن اصلی که معنی آن ها را شاید نداند برای خود ترجمه کند.

در مواردی هم واقعا متن بسیار ساده هستش و برای فهم مقاله, سواد زبان انگلیسی یک فرد دارای دیپلم کافی هستش و بقیه لغات هم کلمات رایج حوزه IT می باشند که کاربران روزانه در کامپیوتر, موبایل و اینترنت با آن ها مواجه شده اند و هر چند معنی آن را ندادند ولی با مفهوم آن کاملا آشنا شده اند و با مطالعه این چنین مقاله ای مستقیما به مفهوم آن پی می برند.

متنی که من می خواستم ترجمه کنم درواقع شامل تمامی موارد بالا بود من نمی توانستم عباراتی مانند IFTTT یا AWS Redshift را به فارسی ترجمه کنم و اگر بخواهم هر کدام را در داخل متن توضیح دهم حجم متن چندین برابر شده و بخش جنبی ترجمه از بخش اصلی آن بیشتر می شود. همچنین مقاله ای که قصد ترجمه اش را داشتم دارای گرامر ساده ای هستش با جمله هایی کوتاه و اصلا نیازی به ترجمه نداشت و کاربران اینترنت و ابزار روزانه با کلماتی مشابه آن ها مواجه می شوند.

پس قبل از ترجمه باید به این اندیشید که آیا واقعا ترجمه مقاله انتخابی ممکن و نیاز است!؟ شاید ترجمه ای انجام دهید که از نظر معنی و مفهوم از متن اصلی فاصله طولانی داشته باشد و یا پر باشد از لغات و اصطلاحات ترجمه نشده در حالی که متن اصلی برای خواننده به سادگی قابل درک و فهم باشد و اصلا نیازی به ترجمه نبود.