برنامه همزمان را با ارلانگ (و اکسیر) بنویسید

افشای: پشتیبانی شما به حفظ سایت کمک می کند! ما برای برخی از خدماتی که در این صفحه توصیه می کنیم هزینه ارجاع دریافت می کنیم.


Erlang یک زبان برنامه نویسی با هدف کلی است که برای ساخت برنامه های همزمان طراحی شده است.

در اصل برای برنامه های ارتباطی از راه دور ساخته شده است ، یک زبان بسیار مقیاس پذیر و کاربردی است که برای ارتباطات از راه دور ، برنامه های وب ، محاسبات توزیع شده ، پیام رسانی فوری ، تجارت الکترونیکی و سایر خدمات که به یک اتصال ثابت نیاز دارند و برای مدیریت همزمان ورودی از یک ایده آل است. تعداد زیادی از منابع.

ارلنگ و اکسیر

برخی از ویژگی هایی که ارلانگ را برای برنامه نویسان مدرن جذاب می کند عبارتند از:

  • هم زمان بودن ، به برنامه های ارلانگ اجازه می دهد ورودی را از چندین منبع دریافت کنند و در محیط توزیع شده عملکرد داشته باشند.

  • تحمل خطا ، اجازه می دهد سیستم ها حتی در حالی که برخی از عناصر برنامه خراب یا در معرض خطا هستند ، به کار خود ادامه دهند ، و آن را به یک زبان بسیار مفید برای محیط های همیشه روشن ، مانند یک انجمن وب یا بستر ارتباطی تبدیل می کند..

  • بارگیری کد داغ ، اجازه می دهد تا کد اصلاح شود و برنامه ها بدون نیاز به متوقف یا راه اندازی مجدد سیستم به روز شوند.

  • انتقال پیام به جای متغیرهای اشتراکی ، به فرایندها امکان می دهد تا با یک درجه بالاتر از همزمانی ارتباط برقرار کنند.

  • جمع آوری زباله ، ارائه مدیریت خودکار حافظه برای بهبود سرعت و عملکرد.

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

تاریخ

زبان ارلنگ برای اولین بار در سال 1986 توسط کارمندان اریکسون ، جو آرمسترانگ ، رابرت وردینگ و مایک ویلیامز توسعه یافت.

این زبان برای بهبود برنامه های موجود در زمینه تلفن طراحی شده است و بسیار تحت تأثیر زبان PLEX قرار گرفته است.

نسخه اول ارلانگ در Prolog پیاده سازی شد ، اما این امر برای مبادلات تلفنی بسیار کند بود. برای حل آن ، این تیم ماشین مجازی BEAM را در سال 1992 توسعه داد.

BEAM کد Erlang را با سرعت بسیار بیشتری وارد C کرد ، و به Erlang اجازه می دهد تا به سرعت از یک زبان نمونه اولیه به برنامه های واقعی منتقل شود. در سال 1995 ، Erlang به مبادله ATM ، AXD پیاده سازی شد.

در سال 1998 ، با این حال ، سیستم های رادیویی اریکسون استفاده از Erlang را در محصولات جدید ممنوع اعلام کرد ، زیرا سعی در انتقال همه محصولات به زبان های غیر اختصاصی داشت..

سیاست جدید باعث شد جو آرمسترانگ ، در میان سایر برنامه نویسان ارلانگ ، استعفا دهد و در نهایت منجر به این شد که تیم بعداً در همان سال ، ارلانگ را به دنیای منبع باز آزاد کند..

اریکسون دیگر محصولی اختصاصی نبود و در دنیای ارتباطات با مشکل مواجه شد ، بعداً موضع خود را در مورد ارلانگ معکوس کرد و آرمسترانگ را مجدداً مجدداً استخدام کرد.

Erlson اکنون به طور فعال توسط شرکتهای مخابراتی در سراسر جهان ، از جمله T-Mobile ، Whatsapp ، Ubiquiti و IDT Corp استفاده می شود. Ericsson به حفظ زبان ادامه می دهد و از آن در گره های پشتیبانی و شبکه های تلفن همراه از جمله Ericsson ، از جمله شبکه های LTE استفاده می کند..

منابع

با توجه به نیاز باورنکردنی به برنامه نویسی همزمان ، با گسترش فناوری های وب و موبایل همه زمانها ، ارلانگ به محبوبیت خود ادامه می دهد و بسیاری از توسعه دهندگان جدی در حال ساخت سوئیچ هستند..

در نتیجه ، منابع آنلاین و رایگان زیادی برای کمک به شما در شروع کار و ارائه کمک در این راه وجود دارد.

  • Erlang.org: سایت رسمی ارلانگ ، این صفحه شامل بارگیری نرم افزار ، اسناد و راهنماهای کاربر ، پیوند به منابع آنلاین و انجمن ها ، و اطلاعات مربوط به اخبار اخیر و رویدادهای آینده ارلانگ.

  • ارلانگ مرکزی: این سایت جامعه محور همه چیز را برای شروع کار و ساخت دانش Erlang خود نیاز دارد. این میزبان آموزش ، فیلم ، ویکی ، صفحه کار و یک انجمن جامعه است.

  • به طور عمده Erlang: پادکست معمولی اختصاص داده شده به همه چیز Erlang. آنها در مورد مفاهیم اساسی برنامه نویسی ، مصاحبه با مبتکران اصلی صحبت می کنند و به برنامه نویسان جدید و با تجربه ارلانگ مشاوره می دهند.

  • Erlang Factory: این کنفرانس فنی سالانه توسعه دهندگان ارلانگ را از سراسر جهان گرد هم می آورد تا در مورد نوآوری ها و تئوری های جدید بحث کنند و یک سری دوره های آموزشی فشرده 3 روزه اختیاری را ارائه می دهند.

کتابها

ارلانگ با اکثر زبانها کاملاً متفاوت است و حتی برنامه نویسان باتجربه نیز ممکن است بخواهند یک راهنمای مفید را برای ردیابی برخی از موارد خارق العاده خود در دسترس داشته باشند. آیا سالهاست که برنامه نویسی می کنید یا خود را به سمت طراحی برنامه بزرگ بعدی موبایل سوق می دهید ، عنوان Erlang در آنجا برای شما وجود دارد:

  • برنامه نویسی Erlang: نرم افزار برای یک جهان همزمان توسط جو آرمسترانگ: توسط یکی از نویسندگان اصلی ارلانگ نوشته شده است ، این راهنمای نهایی زبان و استفاده از آن در محیط های هم زمان مانند برنامه های ابری ، بازی های چند کاربره و مبتنی بر جامعه است. وب سایت این کتاب برای افرادی که تجربه کمی در برنامه نویسی کاربردی یا موازی دارند ، طراحی شده است و این مفاهیم را از طریق آموزش ها و مثال های دنیای واقعی آموزش می دهد..

  • ساخت برنامه های وب با Erlang توسط Zachary Kessin: طراحی شده برای توسعه دهندگان وب با تجربه با دانش اولیه Erlang ، این کتاب برنامه نویسان را از طریق یک سری پروژه های ساده برنامه نویسی وب سرویس می کند ، آنها را برای ساختن برنامه های وب شخصی خود آماده می کند و آنها را آنلاین می کند..

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

  • معرفی ارلانگ: شروع به کار در برنامه نویسی عملکردی توسط Simon St Laurent: این کتاب زمان زیادی را برای نصب و پوسته ارلانگ اختصاص می دهد ، و این اطمینان را می دهد که برنامه نویسان جدید (یا کسانی که تازه به ارلانگ هستند) از رابط خط فرمان آن کاملاً راحت باشند و سپس حرکت کنند تجزیه زبان به مفاهیم بسیار اساسی و نشان دادن آنها از طریق ایجاد برنامه های ساده.

  • طراحی برای مقیاس پذیری با Erlang / OTP توسط سزارینی و وینوسکی: این کتاب برای برنامه نویسان با تجربه ارلانگ در نظر گرفته شده است تا درک خود را گسترش دهند و از Platform Open Telecom (OTP) برای طراحی و ساخت سیستم های درجه تجاری استفاده کنند که هم پیچیده و هم مقیاس پذیر هستند..

Beyong Erland: Elixir

اکسیر یک زبان نسبتاً جدید است ، اما سابقه طولانی دارد. و همه چیز با ارلنگ آغاز شد.

تاریخچه Exlixer

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

به عنوان مثال ، Pinterest ، 14000 اعلان در ثانیه را ارائه می دهد. فیس بوک باید پیام های تازه ای را از کاربران فعال 1.6 میلیارد (با B!) دریافت کند. این نوع همزمانی و در دسترس بودن بالا دقیقاً همان چیزی است که ارلانگ برای آن طراحی شده است.

و بنابراین ، این زبان قدیمی ارتباط از راه دور به طور ناگهانی دوباره مرسوم ، مد روز و محبوب شده است. به جز در شکل جدید.

معلوم است که ارلنگ خواندن و نوشتن واقعا سخت است. این تعجب آور نیست ، زیرا دهه ها قبل ایجاد شده است. این قبل از این بود که “جالب برای استفاده” مورد توجه مهمی در طراحی زبان بود.

ارلانگ برای نسل برنامه نویسان رشد یافته در Ruby و JavaScript مناسب نیست. علاوه بر قابلیت استفاده ، Erlang تمام ویژگی هایی را که ممکن است برای برنامه های وب مدرن مورد نیاز باشد ندارد.

بنابراین ، در سال 2012 ، خوزه والیم اکسیر را خلق کرد. کد Elixir به bytecode Erlang کامپایل می شود و در زمان اجرا ارلانگ اجرا می شود. شما حتی می توانید کدهای ارلانگ را مستقیماً در Elixir وارد کنید (تا حدودی به طور مشابه با نحوه شامل JavaScript در CafeScript).

Valim بخشی از تیم توسعه Ruby on Rails بود ، و حتی نویسنده کتابی درباره توسعه ریل ها بود. تیم Ruby on Rails تجربه توسعه دهنده را بسیار جدی می گیرد و این نگرانی در طراحی الیکسیر تأثیر گذاشت.

نحو بسیار شبیه به روبی است و بسیار بیشتر از ارلانگ قابل خواندن است. علاوه بر نحو ساده تر ، اکسیر قابلیت های ارلانگ را دربرگیرنده (از جمله چیزهای دیگر) برنامه برنامه ریزی ، پلی مورفیسم و ​​مستندات درون خطی گسترش می دهد..

معرفی مختصر در برنامه نویسی کاربردی

اکسیر ، مانند ارلنگ ، یک زبان برنامه نویسی کاربردی است. این تفاوت با بسیاری از زبانهای دیگر که تقریباً همه ضروری و معمولاً دارای شیء هستند متفاوت است.

اکثر زبانهای برنامه نویسی نوعی از اصطلاحات رمزگذاری کد دارند که “عملکرد” ​​نام دارد. یا در بعضی از زبانهای شی گرا به آنها “روش” گفته می شود ، اما همه می دانند که یک روش فقط “عملکردی” است که به یک شی وصل می شود.

اما آیا یک تابع واقعاً تابعی است?

در توسعه نرم افزار ، ما عادت کرده ایم که کارهایی را انجام دهیم. ما این موارد را عوارض جانبی می نامیم.

اما در ریاضیات ، عملکردها عوارض جانبی ندارند. شما دایره ای را با عملکردی که می توانید تمام نقاط یک دایره را ترسیم کنید و همچنین شماره دوره برای Intro را به هندسه فرضی تغییر می دهید ، تعیین نمی کنید..

در ریاضی ، یک کارکرد تعیین کننده است. با توجه به هر ورودی x خاص ، همیشه خروجی دقیق y را برمی گرداند و کار دیگری انجام نمی دهد.

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

متغیر ممکن است به معنای یک چیز در حال حاضر ، و چیزی دیگر از ده دقیقه از زمان دیگر باشد. و این بدان معنی است که یک تماس خاص با عملکرد x ممکن است دو مقادیر مختلف y را در دو زمان مختلف بازگرداند.

آیا آن مشکلی دارد؟ که بستگی دارد. هیچکدام از محبوب ترین زبانهای توسعه کاملاً کاربردی نیستند ، بنابراین ساختن انواع و اقسام چیزها (یا تقریباً در مورد همه چیز) به روشنی امکان پذیر است با استفاده از زبانهایی که به عوارض جانبی و حالت جهانی اعتماد دارند..

با این حال ، در یک سیستم بسیار پراکنده و همیشه روشن ، این می تواند یک مشکل باشد. اگر سیستمی روی چند ده کامپیوتر (یا چند هزار) کامپیوتر فیزیکی پخش شده باشد ، چگونه می توانید تغییراتی را در وضعیت جهانی به همه آنها ارائه دهید؟?

اگر سیستمی پایین بیاید ، چگونه وضعیت جهانی را سریعاً بازیابی می کنید؟ اگر یک فراخوانی تابع ممکن است مقادیر مختلفی را در زمانهای مختلف بازگرداند ، چگونه می توانید مطمئن باشید که آزمایشی که امروز اجرا می کنید هنوز فردا می گذرد?

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

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

برنامه نویسی کاربردی یکی از مهمترین روندهای فعلی در توسعه برنامه های وب است.

منابع برنامه نویسی کاربردی

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

  • مقالات

    • مقاله برنامه نویسی کاربردی در ویکی پدیا: مروری کلی درباره موضوع.

    • از برنامه نویسی کاربردی نترسید: توضیحی نسبتاً آسان برای برنامه نویسی کاربردی ، که برای توسعه دهندگان JavaScript نوشته شده است.

    • یک معرفی عملی برای برنامه نویسی کاربردی

    • مبانی برنامه نویسی کاربردی: آنچه در مورد آن است?

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

  • فیلم های

    • برنامه نویسی کاربردی؛ چی؟ چرا؟ چه زمانی?

    • برنامه نویسی کاربردی از اصول اول

    • شادی برنامه نویسی کاربردی

    • لیست پخش: برنامه نویسی کاربردی – مفاهیم اساسی توضیح داده شده.

  • کتابها

    • ساختار داده های کاملاً کاربردی

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

    • معرفی برنامه نویسی عملکردی از طریق حساب Lambda

    • تفکر عملکردی: پارادایم بیش از نحو

    • کارکردن

    • ریاضیات گسسته و برنامه نویسی کاربردی.

منابع اکسیر

برای کمک به شما در تسلط بر اکسیر ، منابع زیادی وجود دارد.

منابع آنلاین

اولین مکانی که می توانید به صورت آنلاین به Elixir مراجعه کنید ، سایت رسمی زبان Elixir است.

آموزشها
  • راهنمای شروع رسمی

  • 30 روز الیکسیر

  • مدرسه الیکسیر: درسهایی درباره زبان برنامه نویسی اکسیر.

  • راهنمای ویدیو اکسیر

  • udtudes برای اکسیر

  • ورق تقلب اکسیر.

ابزارها
  • ققنوس: یک چارچوب توسعه وب برای اکسیر. و این کتاب عالی را در مورد ققنوس با همکاری نویسنده ققنوس و خالق الیکسیر از دست ندهید.

  • عالی اکسیر: لیست جامعه دار پروژه های عالی برای اکسیر.

جامعه و یادگیری مداوم
  • انجمن اکسیر

  • الیکسیر سابردیت

  • چشمه اکسیر

  • هفتگی اکسیر هضم

  • اکسیر رادار.

کتابهای اکسیر

  • برنامه نویسی اکسیر: کاربردی |> همزمان |> پراگماتیک |> سرگرم کننده

  • Metaprogramming Elixir: کد کمتری بنویسید ، بیشتر انجام دهید (و از آن لذت ببرید!)

  • اکسیر در عمل

  • معرفی اکسیر: شروع برنامه نویسی کاربردی

  • یادگیری اکسیر

  • کتاب آشپزی اکسیر.

آیا باید اکسیر یاد بگیرم?

اگر شما علاقه مند به کار بر روی برنامه های کاربردی وب ، به ویژه برنامه هایی هستید که به تعداد زیادی از کاربران همزمان خدمت می کنند ، Elixir مطمئناً ارزش آن را دارد که بدانید.

نتیجه

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

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

اما شاید بهتر باشد روی اکسیر توجه کنیم. این بستگی به دقیقاً کارهایی دارد که می خواهید انجام دهید. صرف نظر از این ، آنها هر دو زبان عالی هستند.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map