جستجو در تالارهای گفتگو
در حال نمایش نتایج برای برچسب های 'فناوری'.
2 نتیجه پیدا شد
-
زبانی را انتخاب کنید که پاسخگوی برنامهٔ تحت بلاکچین شما باشد! فناوری بلاکچین به سرعت در حال تبدیل شدن به یکی از مهمترین پیشرفتهای فناوری در چند دههٔ گذشته است. این سیستم، معاملات ناشناس و همتا را بین کاربران امکانپذیر میکند که اساساً بر پایهٔ انقلاب رمزنگاری است. بازار جهانی بلاکچین در حال حاضر حدود ۱.۲ میلیارد دلار تخمین زده میشود و کارشناسان پیشبینی میکنند که تا سال ۲۰۲۵ به ارزش ۵۷ میلیارد دلار برسد که در سال بیش از ۶۹ درصد رشد خواهد داشت. عمدهٔ شرکتها و سرمایهدارانِ سرمایهگذار در توسعهٔ فناوری جدید رمزنگاری، قراردادهای هوشمند دفترچههای توزیعشده برای بانکهای سنتی، توکنهای بازی و سیستمهای مدیریت زنجیره تأمین با شرکتهای مشاوره بلاکچین همکاری میکنند. توسعهدهندگان در حال حاضر از زبانهای برنامهنویسی محبوبی مانند C++ و JavaScript برای ساختن برنامههای سفارشی بلاکچین استفاده میکنند. علاوه بر این، مهندسان رمزنگاری زبانهایی مانند Simplicty و Solidity را برای این کار طراحی کردهاند. اما، آنها آیا اینها بهترین زبانهای برنامهنویسی برای فناوری بلاکچین هستند؟ بلاکچین چیست؟ بانکداری سنتی از یک بانک به عنوان رهبر و واسط استفاده میکند. جهت انتقال پول به یک دوست، یک شخص ابتدا حسابی داشته باشد و بخواهد که پول را به یک شماره حساب خاص که برای اوست انتقال دهد. بانک، حساب ارسال کننده را برای وجه بررسی میکند و آن وجه را به مقصد منتقل میکند و معامله در حساب فرستنده ثبت میشد. همچنین بانک دریافت کننده نیز همین کار را باید انجام دهد. با این حال، مشکل سیستم بانکی سنتی این است که سوابق در داخل ذخیره میشوند و در برابر هک و دستکاریهای آسیبپذیر هستند. بلاکچین با ذخیره کردن تمامی سوابق به صورت آنلاین در یک دفترچهٔ مستعار (بینام) ذخیره میکند که توسط هر کسی قابل دسترس است. بلاکچین از بلاکها استفاده میکند، یا مجموعهای از دادهها، مشابه سطرها و ستونهای صفحههای گسترده جهت ذخیره دادهها استفاده میکند. بلاکها به ترتیب متوالی به «زنجیر» اضافه میشوند. برخلاف دفترچههای سنتی، که در داخل ذخیره میشوند، هر کاربرِ بلاکچین دارای سوابق کاملی از کل بلاکچین در رایانهٔ خود است. این بدان معنی است که در صورت داشتن کد هش (رمزشدهٔ) مربوطه میتوانند به سرعت هر معاملهای را که اتفاق افتاده است را پیدا کنند. از آنجایی که این دادهها به صورت عمومی ذخیره میشوند، هرگز قابل تغییر یا حذف نیستند! در نتیجه آرامش خاطر را به کاربران فراهم میکند. زبان برنامهنویسی JavaScript (جاوااسکریپت) از آنجایی که گیتهاب به تازگی این زبان را به عنوان محبوبترین زبان برای توسعهدهندگان اعلام کرده است، به طور باورنکردنی بیش از ۹۵٪ وبسایتها به طریقی از آن استفاده میکنند. با این حال، جاوااسکریپت تنها پادشاه وب نیست؛ چرا که به عنوان یک زبان انعطافپذیر در بلاکچین استفاده میشود. یکی از دلایلی که جاوااسکریپت را برای توسعهدهندگان میبخشد نحوهٔ دستیابی به مدیریت کدها به صورت ناهمزمان (ناهمگام) است. این امر در بلاکچین بسیار مهم است، زیرا ممکن است هزاران یا حتی میلیونها معاملات در همان زمان آغاز شود! برنامهنویسی موازی یک برنامه را قادر میسازد تا چندین عمل را به صورت همزمان انجام دهد در حالی که برنامهنویسی استاندارد و همزمان نمیتوانند آن حجم را تحمل و کنترل کنند. با اجرای چندین کار به صورت همزمان، کد ناهمزمان میتواند باعث افزایش پاسخگویی و عملکرد برنامه شود. این امر باعث میشود برنامههای بلاکچین بتوانند حجم بسیار زیادی از اقدامات را بدون عملکرد کُند و نا امید سازی کاربر، آن را انجام دهند. زبان برنامهنویسی C++ (سیپلاسپلاس) سیپلاسپلاس همچنین به عنوان یکی از قدرتمندترین و محبوبترین زبانهای برنامهنویسی در دنیای فناوری شناخته میشود و در صنعت بلاکچین نیز یک قدرت غالب است. زبان شیءگرایی برای توسعه بلاکچین مناسب است، زیرا از همان اصول کپسولهسازی، انتزاع، چندریختی و مخفی کردن دادهها استفاده میکند. به عنوان مثال بلاکچین از ویرایشهای ناخواسته از دادهها جولوگیری میکند. توسعهدهندگان همچنین به دلیل قابلیت کنترل حافظه، از C++استفاده میکنند. این زبان به شما اجازه میدهد تا بلوکهای ایمن را نگه داشته و تعداد زیادی از درخواست منابع را مدیریت کنید. با اجازه دادن به هر نود (گره) شبکه میتوانید بلوکهای فردی را پذیرفته یا رد کنید. همچنین C++ به دلیل پشتیبانی و مدیریت وظایف موازی و نخی به طور گسترده در بلاکچین مورد استفاده قرار میگیرد. این زبان قادر به مدیریت هردو ویژگی موازی و غیرموازی در وظایف است، در واقع میتواند به خوبی انجام وظایف تک-نخی/تک رشتهای (single-thread) را بهبود دهد. نمونهٔ فوقالعادهای از برنامههای اساسی از بلاکچین که با C++ نوشته شده است EOS نام دارد. این نرمافزار به صورت منبعباز در سال ۲۰۱۸ توسط بلاک منتشر شد و به گونهای طراحی شده است که معاملات را سریعتر از گزینههای دیگر پردازش میکند. این نرمافزار اجازه میدهد تا در کمتر از یک ثانیه معامل را تأیید کرده و فقط در دو دقیقه آن را نهایی کنید. زبان برنامهنویسی Solidity این زبان یک نمونهٔ هوشمند است که با همکاری توسعهدهندگان Ethereum و بلاکچین توسعه یافته است. این زبان به صورت اختصاصی دامنههای بسیاری از اصول و اصطلاحات مشابه به جاوااسکریپت را برای ایجاد برنامههای با کیفیت بالا و غیر متمرکز فراهم میکند. توسعهدهندگان، این زبان را برای این ترجیح میدهد که به شما این امکان را فراهم میکند تا یک کد سطح بالا را برای شبکهٔ بلاکچینی Ethereum، دومین بلاکچین رمزنگاری محبوب، که میتواند به زبان سطح پایین و کد ماشین کامپایل شود. در حال حاضر Solidity در طیف گستردهای از سکوها (پلتفرمهای) بلاکچینی از جمله، Ethereum، Tendermint، Ethereum Classic و Counterparty موجود است. زبان برنامهنویسی Simplicity این یک زبان کاملاً جدید است که در تاریخ نوامبر ۲۰۱۷ برای قراردادهای خاص و هوشمندِ بلاکچین طراحی و منتشر شده است. این زبان برای افزایش بهرهوری و پنهانسازی اجزای منطقی سطح پایین از مهندسان است که یکی از دلایلی است که به سرعت در جامعه محبوب میشود. مانند C++، این یک زبان شیءگرایی است که برای جولوگیری از خطاها و تغییر دادهها در بلاکچین استفاده میکند. خلاصه بلاکچین اینجاست تا بماند! فناوری محبوب (Record-Keeping) چیزی است که تبادلات رمزنگاری را ممکن میسازد و بطور گسترده توسط شرکتها، افراد و خدمات مشاورهای بلاکچین، برای توسعهٔ نرمافزار مورد استفاده قرار میگیرد. توسعه دهندگان میتوانند به راحتی از زبانهای محبوب مانند C++ و JavaScript برای توسعهٔ بلاکچین استفاده کنند. از طرفی این انجمن اخیراً زبانهایی به عنوان Solidity و Simplicity را ایجاد کرده است که باعث میشود تا فرآیند توسعهٔ رمزنگاری روانتر شود.
-
- blockchain
- بلاکچین
-
(و 2 مورد دیگر)
برچسب زده شده با :
-
تحول توسط اینترنت اشیاء (IoT)، این واضح است که افزوده شدن به تعداد دستگاه های متصل به این فناوری با سرعت چشمگیری در حال افزایش است. همه جا در اطراف زندگی روزمره ما، استفاده بیشترو بیشتری را از آن ها داریم. علاوه بر این که به آن ها متصل هستیم، دستگاه های با صفحه لمسی بیشتری به رابط گرافیکی مدرن مجهز می شوند. در این میان در اطراف ما به راحتی دیده می شود که کاربران زیادی نرم افزار های خود را توسط کیوت برای این دستگاه ها می سازند. برای رسیدن به شماری از این اعداد و ارقام توسط گروه Gartner که تخمین زده است تا سال ۲۰۲۰ رشد دستگاه های متصل به این فناوری حدود ۲۰٬۷ میلیارد دستگاه خواهد بود. (حتی پیش بینی شده است که بالاتر از آن یعنی حدود ۳۰ میلیارد دستگاه) مجهز به فناوری مرتبط خواهد شد که تحت سی پلاس پلاس و کیوت توسعه پیدا می کنند. نه تنها شمار زیادی از دستگاه ها در حال رشد هستند، اما در این میان پیچیدگی و تعداد نرم افزار ها نیز در حال رشد هستند. برای مثال، امروزه خودرو ها میتوانند بیش از ۱۰۰ میلیون خط کد را در اختیار داشته باشند، انتظار می رود این روند به سه برابر در آینده به عنوان قابلیت های نرم افزاری در خودرو ها افزایش یابد. خودرو ها بخش پیچیده ای از این فرآیند محسوب می شوند، اما حتی برای ساده ترین اتصال به دستگاه ها نیاز به نرم افزار های زیادی می باشد که قادر باشند الزامات را برای اتصال به طور امن با قابلیت های مفید را با رشد چشم گیری در اختیار مصرف کنندگان قرار دهند. در اینجا بر روی یک نمودار خطی چگونگی دستگاه های در حال رشد را تخمین میزنیم: در داخل این دستگاه ها چه چیزی وجود دارد؟ چه نوع نرم افزاری دستگاه های متصل شده را مدیریت می کند؟ چه نوع مهارت هایی برای ساخت اینها نیاز است؟ اینگونه تخمین زده شده است که تا به امروز 95% از دستگاه های تعبیه شده (Embedded) اِمبد ها توسط زبان برنامه نویسی C و ++C ساخته شده اند، و اینگونه پیشبینی شده است که این فرآیند در آینده به طور قابل توجهی تغییر نخواهد یافت. سپس، از سوی دیگر با توجه به مطالعاتی که در جهان بر روی ۴.۴ میلیون توسع دهنده C++ و ۱.۹ میلیون توسعه دهنده زبان C در سال ۲۰۱۵ صورت گرفته است. یک مطالعه بر اساس نتایج سال ۲۰۰۱ توسط IDC، نشان می دهد که تعداد توسعه دهندگان زبان ++C در آن زمان حدود ۳ میلیون نفر بوده است. معنی این نتایج اینگونه است که تعداد توسعه دهندگان ++C به طور پیوسته در حال رشد است که حدود 3% در سال بوده و انتظار می روند با همین روند به جمع توسعه دهندگان در سال های آتی افزوده شود. بنابراین، یک تجسم کلی از رشد توسعه دهندگان ++C در نمودار زیر آورده شده است: بر اساس برآورده های تعداد دستگاه های تخمین زده شده، که اکثر آن ها باید توسط C و ++C انجام شده باشند، و در حال حاضر با سرعت بسیار زیادی همین روند رو به رشد می باشد و انتظار می رود این روند با سرعت بسیار بیشتری ادامه یابد. با توجه به افزایش پیچیدگی در عملکرد، تعداد نرم افزار های موجود در حال رشد است. اگرچه برخی از دستگاه های جدید از عملکرد بسیار ساده ای برخوردار خواهند بود، اما دستگاه های بسیار بیشتری با پیچیدگی های بیشتری مورد نیاز مصرف کنندگان است. در حال حاضر، این مقایسه بین دو گرایش معمای جالبی را برای ما فراهم می کند که توجه به آن جالب است: چطور میلیون ها نفر از توسعه دهندگان سیپلاسپلاس نیازمندی ها را برای ساخت و متصل کردن میلیاردها دستگاه به یکدیگر مطابقت می دهند. با قرار دادن این دو نمودار در کنار هم، می توانیم به وضوح نمودار پارادوکس را تجسم کرده و به یک (راه حل) ممکن برسیم: بنابراین چگونه بر آن افزوده می شود؟ آیا ما انتظار این را خواهیم داشت که در سال ۲۰۲۰ یک توسعه دهنده سیپلاسپلاس ۲۰ برابر بیشتر از آن چیزی را بنویسد که در ۱ دهه قبل نوشته است؟ این راه حل کارساز نخواهد بود. حتی اگر همه توسعه دهندگان ++C تمرکزشان بر روی دستگاه ها باشد! لذا هنوز توسعه دهنده ++C به اندازه کافی موجود نیست. توسعه دهندگان C++ به راحتی می توانند آموزش های حرفه ای را ببینند و سال هایی را برای دوره های خود در نظر بگیرند تا به درجه استادی برسند. بنابراین، چیزی که باید انجام شود دو چیز است: فعال کردن توسعه دهندگان C++ در این زمینه ها و همچنین آموزش برای برنامه نویسان غیر ++C برای ساخت دستگاه ها. بنابراین، برای تعبیه شدن نیاز ها باید با شرایط جدیدتری سازگار شد. تنها راه برای مقابله با رشد این است که ابزار های خوبی برای دستگاه ها در اختیار قرار گیرد. پیش بینی می شود با ابزار هایی که Qt قرار است فراهم کند رویکرد قابل قبولی برای ساخت دستگاه ها فراهم آورد. زیرا شعار کیوت این است "کد کمتر،سازندگی بیشتر، تولید و استقرار در همه جا" این شعار تابه امروز پیش بینی شده بود. کیوت دارای سابقه ی دستگاه های اِمبد، دسکتاپ و موبایل و ساخت و توسعه اپلیکیشن های کاربردی با روش بهتر و ساده تر در تمامی پلتفرم ها می باشد. این احتمال وجود دارد که حتی استفاده از قابلیت های نرم افزاری کافی نیست. همچنین لازم است برای افزایش بهره وری از برنامه نویسان خبره ++C جهت توسعه بهتر استفاده شود.با استفاده از Qt رابط های برنامه نویسی به طور گسترده و مشهوری مستند سازی شده اند. بنابراین توسعه دهندگان ++C سازنده تر و مفید تر از قبل هستند. همچنین Qt زبان اعلانی با نام QML را جهت سهولت کار در طراحی فراهم کرده است، و رشد اینکه تعداد کثیری از مردم که می خواهند فراتر از توسعه دهندگان سی پلاس پلاس در توسعه دستگاه ها قدم بگذارند ایجاب شده است. در حال حاضر میلیون ها توسعه دهنده با Qt در جهان آشنا هستند که روز به روز برای به دست گرفتن آن میکوشند. با وجود زبان QML، مشکل اینگونه حل شده است تا بدون داشتن مهارت های بسیار بالا از ++C توسعه دهندگان بتوانند در زمینه رابط کاربری تیم خود را مدیریت کنند. البته برای ساخت هسته نرم افزار های دستگاه های تعبیه شده نیاز به ++C امریست ضروری. اما چیز دیگری می تواند کمک بهتری برای توسعه در اختیار قرار دهد. استفاده از Qt که اجازه می دهد هر دو نوع توسعه دهندگان غیر ++C و متخصصین ++C عملیاتی را که می خواهند بر روی دستگاه ها توسعه دهند فراهم می کند. و این اجازه می دهد توسعه دهندگان ++C تمرکز بهتری در تمامی زمینه ها داشته باشند.