Assembly یک زبان برنامهنویسی سطح پایین است که یکی از کاربردهای آن برای پلتفرمهای Embedded است (از جمله پلتفرمهای اِمبدد میتوان سیستم کامپیوتری تعبیه شده در یک ماشین لباسشویی اشاره کرد به طوری که مستقیماً با سختافزار رابطه داشته و یا آن را کنترل میکند). در ذهن بسیاری، اسمبلی نوعی زبان برنامهنویسی است که دانشجویان رشتههای مرتبط با کامپیوتر آن را در کلاسهای درس خود میگذرانند و پس از آن هرگز در محیط کار از آن استفاده نخواهند کرد اما آنطور که وبسایت TOIBE نشان میدهد، این زبان جزو ۲۰ زبان محبوب از دید دولوپرها است (در ماه می ۲۰۱۷ این زبان به جایگاه هشتم محبوبترین زبانها نیز رسید).
زبان اسمبلی هم اکنون در جایگاه ۱۳ام ردهبندی محبوبترین زبانهای برنامهنویسی و بالاتر از زبانهایی مانند روبی، ویژوال بیسیک و پرل قرار گرفته است. چرا کسی باید در چنین سطحی که بیشتر از هر زبانی نزدیک به سختافزار است کدنویسی کند و خطر آسیبپذیری در برابر بسیاری از اشتباهات برنامهنویسی را به جان بخرد؟ دیدگاه TIOBE اینگونه است:
تنها توضیح منطقی چنین موضوعی این است که تعداد دستگاههای بسیار کوچکی که تنها قادر به اجرای کدهای اسمبلی هستند رو به افزایش است. این روزها حتی مسواکها و قهوهسازها هم کدهای اسمبلی را اجرا میکنند.
دلیل دیگری که TIOBE برای محبوبیت اسمبلی میآورد «افزایش کارایی» است. نکتهٔ قابلتوجه دربارهٔ زبان اسمبلی تناظر یک به یک کدهای آن با کدهای زبان ماشین برای هر معماری خاص کامپیوتری است. به عبارت دیگر، هر کامپیوتری معماری خاص خود را دارد و هر معماری کدهای ویژهی خود را. اسمبلی به صورت اختصاصی برای همان ماشین و ترجمه شدن به همان کدهای ماشین نوشته میشود. این نکته مرز میان زبان اسمبلی و دیگر زبانهای سطح بالاتر است که روی معماریهای مختلفی اجرا میشوند.
توسعهدهندگان برای نزدیک شدن به قلب ماشینهای سختافزاری راهی سادهتر از زبان اسمبلی ندارند. همین دلیل کافی است تا هر کسی برای شناخت بهتر طرز کار CPU و اجرای برنامه روی آنها به سراغ اسمبلی برود. همچنین واضح است که این زبان میتواند راهی مؤثر برای ساخت محصولاتی تازه باشد؛ به ویژه لوازم خانگی امروزی و همچنین دیوایسهای IoT که با پردازشگرهای تعبیه شده (اِمبدد) در خودشان کار میکنند.
حال نوبت به نظرات شما میرسد. آیا زبان اسمبلی به عنوان زبان مناسبی برای کسانی که تازه قدم به دنیای برنامهنویسی میگذارند هست یا یک فرد مبتدی باید از زبانهای سطح بالایی همچون پایتون، روبی، جاوا و ... شروع به یادگیری کند؟ نظرات خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.