Integer ارسال شده در 13 ساعت قبل اشتراک گذاری ارسال شده در 13 ساعت قبل به نام خداوند جان و خرد سلاممممممممممممم خدمت همه ی شما دوستان عزیز با یه تاپیک آموزنده ی دیگه در خدمتتونم میخوایم بررسی کنیم و ببینیم که چرا نباید با یه اکوسیستم مذخرف به نام نود جی اس و فریم ورک هایی که برای ما مرورگر های به ظاهر اپلیکیشن میسازن, نباید اپلیکیشن های دسکتاپ و موبایل توسعه بدیم بی مقدمه میریم سراغ مطلب اصلی 1- الکترون و آیونیک, چرا نباید ازشون استفاده کنیم؟ مورد 1: مرورگر های به ظاهر اپلیکیشن وقتی که شما اپلیکیشن هاتون رو با الکترون و آیونیک (و حتی React Native) میسازید, در اصل دارید مرورگر کروم و کلا کرومیوم رو میچپونید توی اپلیکیشنتون (وب ویو, کرومیوم) در صورتی که فریم ورک ها و زبان های برنامه نویسی Native (C/C++, C#, Ruby, Go, Java, Kotlin, Python, Erlang, Elixir و...) و خب این افتضاهه و غیر قابل قبول, چون فرض کنید: یه اپلیکیشن هلو ورلد اصلا میخواید بسازید یهو خروجی میگیرید میبینید عه 30 مگابایت فقط واسه ی هلو ورلد در صورتی که اگر با زبان ها و فریم ورک های Native که برای اینکار ساخته شدن بسازید, حجمی معادل 10-20 کیلوبایت فقط میگیره! این به خاطر این هستش که شما با الکترون و آیونیک دارید یه کرومیوم رو میکنید توی اپلیکیشنتون, نتیجه: مروگر های قلابی به ظاهر اپلیکیشن مورد 2: مصرف رم و منابع بیش از حد وقتی که شما با الکترون و آیونیک اپلیکیشن بسازید یه ظاهر خیلی خیلی قشنگی شاید داشته باشید (مثلا! قشنگ تر از اون رو با رندر گرافیکی (OpenGL, Dx, Win32) و کرنل های گرافیکی (CUDA, OpenCL, Vulkan) و بک اند گرافیکی (SDL3, SDL2 و...) و با یه فریم ورک تمیز و جمع و جور مثل Dear ImGui و سی پلاس پلاس/سی و کمی خلاقیت خودتون متونید بسازید!) ولی رم و سی پی یو کاربراتون رو فدا میکنید! مثل مایروسافت (که وی اس کد و اینارو با نود جی اس درست کرده, فقط هم برای اینکه بتونه توی وب هم ازش استفاده کنه! خیلی جالبه), نتیجه: مصرف رم فضایی, پایداری پایین تر مورد 3: تجربه ی کاربری قلابی نتیو یو آی (Native UI) دقیقا با ظاهر و رفتار سیستم عامل هماهنگه (Qt, wxWidgets, JavaFX, WinForms, Cocoa) کاربر حس میکنه که واقعا اپلیکیشن جزو سیستم عاملشه, نه یه مروگر قلابی توی آیونیک و الکترون همه چیز وب ویو هستش با کلی لگ, نتیجه: حتی تجربه ی کاربری هم قلابی مورد 4: دسترسی کامل به API های سیستم عامل با زبان های برنامه نویسی نتیو, شما میتونید کامل به سیستم عامل دسترسی داشته باشید: GPU, CPU, RAM (Memory), Hard, Drivers, Network, و... اما با الکترون, آیونیک و حتی ریکت نتیو در بعضی جاها, فقط دسترسی به API های مروگر رو دارید (اونم تازه همشون, نه فقط اونایی که نیاز دارید) نتیجه: ساخت نرم افزار های ضعیف پ.ن: حتی خود کروم هم با زبان های نتیو (سی سی پلاس پلاس گولنگ (تا جایی که یادمه)) ساخته شدن, چون الکترون و آیونیک برای ساخت نرم افزار های سنگین, و با قابلیت های پیشرفته, مناسب نیستن 2- چرا به اینجا رسیدیم؟ دلیل اینکه الان جاوااسکریپت داره برای دسکتاپ هم استفاده میشه جرقه ی اشتباهی بود که توسط جامعه زده شد: جاوااسکریپت (1995): برای ساخت و اسکریپت نویسی انیمیشن های ساده و تعامل با کاربر در مرورگر (در مرورگر!) بود نود جی اس (2009): جاوااسکریپت سمت سرور (و خارج از مروگر) -> جرقه ی اشتباه از همون شروع, چون فلسفه ی اصلی عه جاوااسکریپت رو زیر سوال برد الکترون (2013): گیت هاب اومد وسط و گفتش (خب, حالا ماهم یه خودی نشون بدیم) و الکترون رو ساخت, ه برای ساخت اپلییشن های دستاپ بود خب, حالا مشکل از کجا بود؟ جاوااسکریپت برای ساخت اپلیکیشن های دسکتاپی و موبایلی ساخته نشده بود (چه سبک, چه سنگین) نتیجه چی شد؟ اپلیکیشن های سبک (Slack, Teams و...) الان سنگین تر از فتوشاپ هستن که با سی/سی پلاس پلاس ساخته شده! این یعنی زیاده روی: زبانی که برای اسکریپت نویسی برای انیمیشن های سبک بود, الان داره سرور, دیتابیس و... رو هندل میکنه این اشتباهه مشکل اصلی کیست و چیست؟ مشکل اصلی اینه که متاسفانه جامعه و شرکت های بزرگ دارن حمایت میکنن از گیت هاب بگیر تااااا مایکروسافت و دیسکورد و بقیه چون که براشون منفعت داره جدیدا هم نگاه کرده باشید توی Visual Studio Build Tools بخش (چطوری استفاد کنیم) مایکروسافت آموزش نود جی اس (نصب و استفاده) رو گذاشته! و خب خیلی جالب بود واسم کسی که خودش یه اکوسیستم عظیم به نام .NET ریز دسشته, داره از یه ران تایم کوچیک که تنها نکته ی مثبتش استفاده از libuv (C/C++) هستش برای Event-Driven, Async و... هستش داره حمایت میکنه! خب دیگه چی؟ خب, فقط حالا که به آخر تاپیک رسیدیم بنده یه ران تایم (در اصل اسمش ران تایم هتش چون میتونه با تمام زبان های برنامه نویسی ارتباط برقرار کنه, وگرنه فریم ورک هستش) برای Stremas (Async, Await, Event Loop, Actor, Parallel (چیزی که نود جی اس نداره), Promise & Future (همون چیزی که Async,Await روش ساخته شدن), Poller, Deadlines, WebSocket, HTTP, TLS و...) ساختم به اسم OLSRT توضیحات اظافه تری نمیدم, خودتون میتونید یه نگاهی بهش بندازید: Click on me شب و روز امیدوارم بر شما خوش باشد خدانگدار یک یک شوما ها نقل قول The only things making you unhappy are your own thoughts :My Account :My Brothers لینک به دیدگاه https://forum.arsacia.ir/topic/90902-%DA%86%D8%B1%D8%A7-%D9%86%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A7%D8%B2-%D8%A7%D9%84%DA%A9%D8%AA%D8%B1%D9%88%D9%86-%D9%88-%D8%A2%DB%8C%D9%88%D9%86%DB%8C%DA%A9-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%DA%A9%D9%86%D9%85%D8%9F/ به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری...
ارسالهای توصیه شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید.
توجه: strong> مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.