آیا زبان برنامه نویسی کربن ، جایگزین C++ خواهد شد؟

زبان برنامه نویسیدر اوایل سال 2022، یک زبان برنامه نویسی جدید به نام زبان کربن (Carbon) رونمایی شد که یک زبان برنامه نویسی سیستمی است و برای اولین بار در ۱۹ جولای توسط چندلر کاروت، مهندس نرم افزار گوگل، در کنفرانس CppNorth در کانادا معرفی گردید. در حالی که کربن در مرحله آزمایشی است، می تواند به عنوان جانشین C++ عمل کند. بنابراین هنگام ارزیابی آنچه که کربن می تواند برای توسعه دهندگان باشد، باید به مشخصات زبان فعلی و اهداف بلندمدت آن نگاه کنیم.چه چیزی کربن را متمایز می کند؟زبان های برنامه نویسی جدید امروزه به سرعت ظاهر می شوند. به عنوان مثال، Engheim گفت Scala و Clojure زبان‌هایی هستند که با این ایده ساخته شده‌اند تا بتوانند از کد جاوا موجود در زبان‌های جدید و مدرن استفاده مجدد کنند.پس از آن زبان جدیدی به نام کاتلین وارد شد. بسیاری از ایده‌های خوب Scala را انتخاب کرد، اما به گونه‌ای بسته‌بندی شد که توسعه‌دهندگان جاوا به راحتی می‌توانند آن را درک کنند. کاتلین از نظر معنایی به شبیه جاوا می باشد و می توان آن را در یک پروژه جاوا قرار داد و به راحتی کد کاتلین را از جاوا و کد جاوا را از کاتلین فراخوانی کرد. انگهایم خاطرنشان کرد که سوئیفت به دلایل مشابه با طراحی یک زبان جدید به‌طور خاص برای ترکیب شدن با Objective-C ایجاد شد.نیازی به تسلط کامل به یک زبان جدید نیست. یک پروژه به راحتی می تواند به عنوان ترکیبی از Swift و Objective-C ایجاد شود. توسعه دهندگان Object-C می توانند به راحتی کد سوئیفت را و توسعه دهندگان سوئیفت می توانند به راحتی کد Objective-C را فراخوانی کنند.این بسیار متفاوت از چیزی مانند Rust، Go، D و Nim است که همگی زبان های برنامه نویسی سیستمی هستند و در اصل می توانند جایگزین C++ شوند. مشکل این است که آنها برای داشتن یک پروژه ترکیبی طراحی نشده اند. این زبان‌ها می‌توانند با کار اضافی، از کدهای ++C موجود مجددا استفاده کنند.چرا به جای C++ از کربن استفاده کنیم؟Engheimگفت که کربن را می توان به عنوان یک پیاده سازی تمیز از C++ در نظر گرفت و به طور بالقوه به توسعه دهندگان ارشد اجازه ورود به معارضه را می دهد.C++ تبدیل به یک زبان تخصصی شده است که عمدتاً توسط توسعه دهندگان با تجربه و بسیار توانا استفاده می شود. مطمئنا، نوشتن کد C++ برای توسعه دهندگان مبتدی غیرممکن نیست. C. باید بگوییم نوشتن کد C++ با کیفیت به تجربه و مهارت زیادی نیاز دارد."Carbon درها را باز می کند تا به توسعه دهندگان کم تجربه اجازه دهد تا مشارکت های ارزشمندی در پروژه C++ موجود داشته باشند. از دیدگاه شرکت، کربن به این معنی است که زمان کمتری باید صرف آموزش شود تا توسعه دهندگان کدهای با کیفیت تولید کنند. جذابیت کلیدی برای شرکت‌ها این است که می‌توانند از پایگاه‌های کد C++ بزرگی که در طول سال‌ها سرمایه‌های کوچکی را صرف توسعه آن کرده‌اند، دوباره استفاده کنند.دلیل تمایز زبان برنامه نویسی کربنهمه مقادیر باید به یک مقدار شناخته شده مقداردهی اولیه شوند.دستورات کنترل جریان انتظار عبارات بولی را دارند. شما نمی توانید تصادفاً یک روش مجازی را مانند C++ لغو کنیدبرنامه نویسی قالب در Carbon بسیار آسان تر از C++ می شود زیرا رابط هایی دارید که به وضوح مشخص می کند که یک نوع قالب باید از چه چیزی پشتیبانی کند.مشاوره برای توسعه دهندگاندر حالی که دلایل بالقوه زیادی برای هیجان زده شدن در مورد زبان برنامه نویسی جدید وجود دارد، Carbon هنوز در مراحل اولیه خود است، به این معنی که چیزهای زیادی ناشناخته وجود دارد. به عنوان مثال، Engheim اشاره کرد که جزئیات مدیریت حافظه هنوز هش نشده است. او گفت: (مدیریت دستی حافظه یک امر مسلم است، اما البته راه‌های مختلفی وجود دارد که ما می‌توانیم به تسهیل آن کمک کنیم.)در حالی که کربن سازنده ندارد، در واقع دارای تخریب کننده است، بنابراین این یک مفهوم مهم است که توسعه دهندگان ++Cبا آن آشنا هستند و تمایل دارند که آن را دوست داشته باشند، زیرا روش خوبی برای مدیریت منابع ارائه می دهد. به عنوان مثال، یک تخریب کننده برای یک شی که یک فایل را نشان می دهد، می تواند مطمئن شود که دسته فایل بسته است.Engheimگفت، هیچ کامپایلری برای Carbon وجود ندارد و مفسر از نظر عملکرد بسیار محدود است، بنابراین او توصیه کرد قبل از شروع به زبان چند سال منتظر بمانید، به خصوص اگر توسعه‌دهنده‌ای هستید که دوست دارید خیلی ماهر باشید.چرا کربن؟C++ همچنان زبان برنامه نویسی غالب برای نرم افزارهای حیاتی عملکرد، با پایگاه های کدنویسی شده و سرمایه گذاری های عظیم و رو به رشد است. با این حال، همانطور که در بالا ذکر شد، به دلیل انباشته شدن چندین دهه بدهی فنی، در تلاش است تا نیازهای توسعه دهندگان را بهبود بخشد و برآورده کند.کربن اساساً یک رویکرد زبان جانشین است، نه تلاشی برای تکامل تدریجی C++. این برنامه حول قابلیت همکاری با C++ و همچنین پذیرش و مهاجرت در مقیاس بزرگ برای پایگاه های کد و توسعه دهندگان موجود C++ طراحی شده است. یک زبان جانشین برای C++ به موارد زیر نیاز دارد:تطبیق عملکرد C++، یک ویژگی ضروری برای توسعه دهندگان است.قابلیت همکاری دوطرفه و یکپارچه با C++، به طوری که یک کتابخانه در هر جایی از پشته C++ موجود می‌تواند زبان برنامه نویسی کربن را بدون انتقال بقیه استفاده کند.منحنی یادگیری ملایم با آشنایی معقول برای توسعه دهندگان ++C.قابلیت بیان و پشتیبانی قابل مقایسه برای طراحی و معماری نرم افزار موجود.مهاجرت مقیاس پذیر، با سطحی از ترجمه منبع به منبع برای کد اصطلاحی C++.روند تکاملی زبانهای دیگر جاوا اسکریپت → TypeScript جاوا → کاتلین· C++ → کربن