در طول نگارش این مقاله هیچ چارچوب جاوا اسکریپتی ایجاد نشد.
مطلب زیر از مقاله «این آینده است» از Circle CI الهام گرفته شده است. می توانید اصل را اینجا بخوانید . این قطعه فقط یک نظر است و مانند هر فریمورک جاوا اسکریپتی، نباید آن را خیلی جدی گرفت.
سلام، من این پروژه وب جدید را دریافت کردم، اما راستش را بخواهید چند سال است که وب زیادی را کدنویسی نکرده ام و شنیده ام که چشم انداز کمی تغییر کرده است. شما به روزترین توسعه دهنده وب در اینجا هستید، درست است؟
-اصطلاح واقعی مهندس فرانت اند است، اما بله، من فرد مناسبی هستم. من در سال 2016 وب کار می کنم. تجسم، پخش کننده های موسیقی، هواپیماهای بدون سرنشین پرنده که فوتبال بازی می کنند. من به تازگی از JsConf و ReactConf برگشتم، بنابراین جدیدترین فناوریها را برای ایجاد برنامههای وب میدانم.
باحال من باید صفحه ای ایجاد کنم که آخرین فعالیت های کاربران را نمایش دهد، بنابراین فقط باید داده ها را از نقطه پایانی REST دریافت کنم و در نوعی جدول قابل فیلتر نمایش دهم و اگر چیزی در سرور تغییر کرد آن را به روز کنم. به این فکر می کردم که شاید از jQuery برای واکشی و نمایش داده ها استفاده کنم؟
-اوه خدای من نه، هیچ کس دیگر از jQuery استفاده نمی کند. باید سعی کنید React را یاد بگیرید، سال 2016 است.
اوه، باشه. واکنش چیست؟
-این یک کتابخانه فوق العاده جالب است که توسط برخی از افراد در فیس بوک ساخته شده است، واقعاً کنترل و عملکرد را برای برنامه شما به ارمغان می آورد و به شما امکان می دهد تا هر گونه تغییر نما را به راحتی مدیریت کنید.
به نظر شسته و رفته آیا می توانم از React برای نمایش داده ها از سرور استفاده کنم؟
-بله، اما ابتدا باید React و React DOM را به عنوان یک کتابخانه در صفحه وب خود اضافه کنید.
صبر کنید، چرا دو کتابخانه؟
-پس یکی کتابخانه واقعی و دیگری برای دستکاری DOM است که اکنون می توانید آن را در JSX توضیح دهید.
JSX JSX چیست؟
-JSX فقط یک پسوند نحوی جاوا اسکریپت است که تقریباً شبیه XML است. این روش دیگری برای توصیف DOM است، آن را به عنوان یک HTML بهتر در نظر بگیرید.
HTML چه مشکلی دارد؟
-سال 2016 است. دیگر هیچ کس به طور مستقیم HTML را کد نمی کند.
درسته به هر حال، اگر این دو کتابخانه را اضافه کنم، می توانم از React استفاده کنم؟
-نه کاملا شما باید Babel را اضافه کنید و سپس می توانید از React استفاده کنید.
یک کتابخانه دیگر؟ بابل چیست؟
-Oh, Babel ترانسپایلری است که به شما امکان می دهد نسخه های خاصی از جاوا اسکریپت را هدف قرار دهید، در حالی که در هر نسخه از جاوا اسکریپت کد می نویسید. برای استفاده از ReactJS مجبور نیستید Babel را اضافه کنید، اما اگر این کار را نکنید، در استفاده از ES5 گیر کرده اید، و بگذارید واقعی باشیم، سال 2016 است، شما باید مانند بقیه بچه های باحال در ES2016+ کدنویسی کنید.
ES5؟ ES2016+؟ اینجا دارم گم میشم ES5 و ES2016+ چیست؟
-ES5 مخفف ECMAScript 5 است. این نسخه ای است که بیشتر افراد را مورد هدف قرار داده است زیرا امروزه توسط اکثر مرورگرها پیاده سازی شده است.
ECMAScript؟
-بله، میدانید، استاندارد اسکریپتنویسی جاوا اسکریپت در سال 1999 پس از انتشار اولیه آن در سال 1995، در آن زمان زمانی که جاوا اسکریپت Livescript نامگذاری شد و فقط در Netscape Navigator اجرا میشد، مبتنی بود. در آن زمان بسیار نامرتب بود، اما خوشبختانه اکنون همه چیز بسیار واضح است و ما، مانند، 7 نسخه از این پیاده سازی را داریم.
7 نسخه. برای واقعی. و ES5 و ES2016+ هستند؟
- ویرایش پنجم و هفتم به ترتیب.
صبر کن ششم چی شد؟
-منظورت ES6 هست؟ بله، منظورم این است که هر نسخه یک سوپرست از نسخه قبلی است، بنابراین اگر از ES2016+ استفاده می کنید، از تمام ویژگی های نسخه های قبلی استفاده می کنید.
درسته و چرا از ES2016+ نسبت به ES6 استفاده کنیم؟
-خب، شما می توانید از ES6 استفاده کنید، اما برای استفاده از ویژگی های جالب مانند async و await، باید از ES2016+ استفاده کنید. در غیر این صورت شما با ژنراتورهای ES6 با کوروتینها گیر کردهاید تا تماسهای ناهمزمان برای جریان کنترل مناسب را مسدود کنید.
من نمی دانم چه چیزی گفتی و همه این نام ها گیج کننده هستند. ببینید، من فقط یک سری داده را از یک سرور بارگیری می کنم، قبلاً می توانستم فقط jQuery را از CDN اضافه کنم و فقط داده ها را با تماس های AJAX دریافت کنم، چرا نمی توانم این کار را انجام دهم؟
-سال 2016 است، هیچ کس دیگر از jQuery استفاده نمی کند، در نهایت به یک دسته کد اسپاگتی ختم می شود. همه این را می دانند.
درسته بنابراین جایگزین من بارگذاری سه کتابخانه برای واکشی داده ها و نمایش یک جدول HTML است.
-خب، شما آن سه کتابخانه را اضافه می کنید اما آنها را با یک مدیر ماژول جمع می کنید تا فقط یک فایل بارگذاری شود.
می بینم. و مدیر ماژول چیست؟
-تعریف به محیط بستگی دارد، اما در وب معمولاً هر چیزی است که از ماژول های AMD یا CommonJS پشتیبانی می کند.
Riiight. و AMD و CommonJS هستند…؟
-تعاریف روش هایی برای توصیف نحوه تعامل چندین کتابخانه و کلاس جاوا اسکریپت وجود دارد. می دانید، صادرات و نیاز؟ شما می توانید چندین فایل جاوا اسکریپت را بنویسید که AMD یا CommonJS API را تعریف می کند و می توانید از چیزی مانند Browserify برای جمع کردن آنها استفاده کنید.
خوب، منطقی است... فکر می کنم. Browserify چیست؟
-این ابزاری است که به شما امکان می دهد وابستگی های توصیف شده CommonJS را به فایل هایی که می توانند در مرورگر اجرا شوند، دسته بندی کنید. به این دلیل ایجاد شد که بیشتر افراد آن وابستگی ها را در رجیستری npm منتشر می کنند.
رجیستری npm؟
-این یک مخزن عمومی بسیار بزرگ است که در آن افراد باهوش کد و وابستگی ها را به عنوان ماژول قرار می دهند.
مانند CDN؟
-نه واقعا این بیشتر شبیه یک پایگاه داده متمرکز است که در آن هر کسی می تواند کتابخانه ها را منتشر و دانلود کند، بنابراین می توانید از آنها به صورت محلی برای توسعه استفاده کنید و سپس در صورت تمایل آنها را در CDN آپلود کنید.
اوه، مثل بوئر!
-بله، اما الان سال 2016 است، دیگر کسی از Bower استفاده نمی کند.
اوه، می بینم... پس باید کتابخانه ها را از npm دانلود کنم؟
-بله بنابراین، برای مثال، اگر میخواهید از React استفاده کنید، ماژول React را دانلود کرده و آن را در کد خود وارد کنید. تقریباً برای هر کتابخانه محبوب جاوا اسکریپت می توانید این کار را انجام دهید.
اوه، مثل انگولار!
-Angular است 2015. اما بله. Angular در کنار VueJS یا RxJS و دیگر کتابخانههای جذاب ۲۰۱۶ وجود خواهد داشت. می خواهید در مورد آنها یاد بگیرید؟
بیایید به React بمانیم، من در حال حاضر چیزهای زیادی یاد میگیرم. بنابراین، اگر من نیاز به استفاده از React داشته باشم، آن را از این npm واکشی می کنم و سپس از این چیز Browserify استفاده می کنم؟
-بله
این بسیار پیچیده به نظر می رسد که فقط یک دسته از وابستگی ها را بدست آوریم و آنها را به هم گره بزنیم.
به همین دلیل است که از یک Task Manager مانند Grunt یا Gulp یا Broccoli برای خودکار کردن اجرای Browserify استفاده می کنید. هک، شما حتی می توانید از Mimosa استفاده کنید.
غرغر؟ گلپ؟ بروکلی؟ میموزا؟ الان در موردش حرف میزنیم؟
-مدیران وظیفه اما آنها دیگر باحال نیستند. ما از آنها در سال 2015 استفاده کردیم، سپس از Makefiles استفاده کردیم، اما اکنون همه چیز را با Webpack می بندیم.
فایل های ساخته شده؟ من فکر می کردم که بیشتر در پروژه های C یا C ++ استفاده می شود.
-آره، اما ظاهراً در وب ما دوست داریم همه چیز را پیچیده کنیم و سپس به اصول اولیه بازگردیم. ما هر سال یا بیشتر این کار را انجام می دهیم، فقط منتظر بمانید، قرار است یک یا دو سال دیگر مونتاژ را در وب انجام دهیم.
آه شما به چیزی به نام Webpack اشاره کردید؟
-این یک مدیر ماژول دیگر برای مرورگر است و در عین حال به نوعی اجرای وظیفه نیز می باشد. این مانند یک نسخه بهتر از Browserify است.
اوه، باشه چرا بهتر است؟
-خب، شاید بهتر نباشد، فقط در مورد اینکه وابستگیهای شما چگونه باید گره بخورد، نظر بیشتری دارد. Webpack به شما امکان می دهد از مدیران ماژول های مختلف و نه تنها از CommonJS استفاده کنید، به عنوان مثال، ماژول های بومی پشتیبانی شده ES6.
من در کل این چیز CommonJS/ES6 بسیار گیج شده ام.
-همه هستند، اما شما دیگر نباید به SystemJS اهمیت دهید.
عیسی مسیح، اسم دیگر-js. خوب، و این SystemJS چیست؟
-خب، برخلاف Browserify و Webpack 1.x، SystemJS یک لودر ماژول پویا است که به شما امکان می دهد به جای اینکه آنها را در یک فایل بزرگ قرار دهید، چندین ماژول را در چندین فایل گره بزنید.
صبر کنید، اما من فکر کردم که میخواهیم کتابخانههایمان را در یک فایل بزرگ بسازیم و آن را بارگذاری کنیم!
-بله، اما از آنجایی که HTTP/2 در حال آمدن است، چندین درخواست HTTP در واقع بهتر است.
صبر کنید، پس نمی توانیم فقط سه کتابخانه اصلی را برای React اضافه کنیم؟
-نه واقعا منظورم این است که میتوانید آنها را بهعنوان اسکریپتهای خارجی از یک CDN اضافه کنید، اما همچنان باید Babel را اضافه کنید.
آه و این بد است درست است؟
-بله، شما کل هسته بابل را شامل میشوید و برای تولید کارآمد نخواهد بود. هنگام تولید، باید یک سری از کارهای اولیه را انجام دهید تا پروژه خود را آماده کنید که مراسم احضار شیطان را شبیه دستور تخم مرغ آب پز می کند. شما باید دارایی ها را کوچک کنید، آنها را زشت کنید، css های درون خطی در بالای صفحه، اسکریپت ها را به تعویق بیندازید، و همچنین
گرفتم، گرفتم. بنابراین اگر کتابخانهها را مستقیماً در CDN قرار ندهید، چگونه این کار را انجام میدهید؟
-من آن را از Typescript با استفاده از Webpack + SystemJS + Babel ترانسپایل می کنم.
تایپ اسکریپت؟ فکر کردم ما داریم با جاوا اسکریپت کدنویسی می کنیم!
-Typescript جاوا اسکریپت است، یا به عبارت بهتر، ابر مجموعه ای از جاوا اسکریپت، به طور خاص جاوا اسکریپت در نسخه ES6. آیا می دانید نسخه ششم که قبلاً در مورد آن صحبت کردیم؟
من فکر می کردم ES2016+ قبلاً یک سوپر مجموعه ES6 بود! چرا ما اکنون به این چیزی به نام Typescript نیاز داریم؟
-اوه، زیرا به ما امکان می دهد از جاوا اسکریپت به عنوان یک زبان تایپ شده استفاده کنیم و خطاهای زمان اجرا را کاهش دهیم. در سال 2016 است، شما باید چند نوع به کد جاوا اسکریپت خود اضافه کنید.
و Typescript بدیهی است که این کار را انجام می دهد.
-Flow نیز، اگرچه فقط تایپ را بررسی می کند در حالی که Typescript یک ابر مجموعه جاوا اسکریپت است که باید کامپایل شود.
آه… و جریان است؟
-این یک جستجوگر نوع ثابت است که توسط برخی از بچه ها در فیس بوک ساخته شده است. آنها آن را در OCaml کدگذاری کردند، زیرا برنامه نویسی کاربردی عالی است.
OCaml؟ برنامه نویسی کاربردی؟
-این همان چیزی است که بچه های باحال این روزها از آن استفاده می کنند، مرد، می دانید، 2016؟ برنامه نویسی کاربردی؟ توابع سفارش بالا؟ کاری کردن؟ توابع خالص؟
من نمی دانم چه چیزی گفتی
-هیچ کس در ابتدا این کار را نمی کند. ببینید، فقط باید بدانید که برنامه نویسی کاربردی بهتر از OOP است و این چیزی است که ما باید در سال 2016 از آن استفاده کنیم.
صبر کنید، من OOP را در کالج یاد گرفتم، فکر کردم خوب است؟
جاوا قبل از خرید توسط اوراکل همینطور بود. منظورم این است که OOP در آن زمان خوب بود، و هنوز هم کاربردهای خود را دارد، اما اکنون همه متوجه شدهاند که تغییر حالتها معادل لگد زدن به نوزادان است، بنابراین اکنون همه به سمت اشیاء تغییرناپذیر و برنامهنویسی کاربردی میروند. بچههای Haskell سالها بود که آن را صدا میزدند - و من را با بچههای Elm شروع نکنید- اما خوشبختانه در وب اکنون کتابخانههایی مانند Ramda داریم که به ما اجازه میدهد از برنامهنویسی کاربردی در جاوا اسکریپت ساده استفاده کنیم.
آیا فقط به خاطر آن اسامی را حذف می کنید؟ رامندا چیه؟
-نه رامدا. مثل لامبدا. می دانی، آن کتابخانه دیوید چمبرز؟
دیوید کی؟
-دیوید چمبرز پسر باحال یک بازی کودتا بازی می کند. یکی از مشارکت کنندگان رامدا. اگر در مورد یادگیری برنامه نویسی تابعی جدی هستید، باید Erik Meijer را نیز بررسی کنید.
و اریک مایجر…؟
پسر برنامه نویسی عملکردی نیز. پسر عالی او یک دسته ارائه دارد که در آن هنگام استفاده از این پیراهن رنگی عجیب، Agile را سطل زباله می کند. همچنین باید برخی از موارد Tj، Jash Kenas، Sindre Sorhus، Paul Irish، Addy Osmani- را بررسی کنید.
باشه من قصد دارم شما را آنجا متوقف کنم. همه اینها خوب و خوب است، اما من فکر میکنم همه چیز برای واکشی دادهها و نمایش آنها بسیار پیچیده و غیر ضروری است. من تقریباً مطمئن هستم که برای ایجاد جدولی با داده های پویا نیازی به شناخت این افراد یا یادگیری همه آن چیزها ندارم. بیایید به React برگردیم. چگونه می توانم با React داده ها را از سرور واکشی کنم؟
-خب، شما در واقع داده ها را با React دریافت نمی کنید، فقط داده ها را با React نمایش می دهید.
اوه لعنت به من بنابراین از چه چیزی برای واکشی داده ها استفاده می کنید؟
-از Fetch برای واکشی داده ها از سرور استفاده می کنید.
متاسفم؟ از Fetch برای واکشی داده ها استفاده می کنید؟ هرکسی که آن چیزها را نام می برد به یک اصطلاحنامه نیاز دارد.
-میدونم درسته؟ واکشی آن نام پیاده سازی بومی برای انجام XMLHttpRequests در برابر سرور است.
اوه، پس AJAX.
-AJAX فقط استفاده از XMLHttpRequests است. اما مطمئنا Fetch به شما این امکان را می دهد که AJAX را بر اساس وعده ها انجام دهید، که پس از آن می توانید برای جلوگیری از جهنم تماس مجدد حل کنید.
جهنم برگشت به تماس؟
-آره هر بار که یک درخواست ناهمزمان را علیه سرور انجام میدهید، باید منتظر پاسخ آن باشید، که سپس شما را وادار میکند تا یک تابع را در یک تابع اضافه کنید که به آن هرم برگشت تماس از جهنم میگویند.
اوه، باشه و این وعده آن را حل می کند؟
-راستی. با دستکاری تماس های خود از طریق وعده ها، می توانید کدهایی را برای درک آسان تر بنویسید، آنها را مسخره و آزمایش کنید، همچنین درخواست های همزمان را به طور همزمان انجام دهید و منتظر بمانید تا همه آنها بارگذاری شوند.
و این را می توان با Fetch انجام داد؟
-بله، اما فقط در صورتی که کاربر شما از یک مرورگر همیشه سبز استفاده کند، در غیر این صورت باید یک Fetch polyfill اضافه کنید یا از Request، Bluebird یا Axios استفاده کنید.
برای رضای خدا چند کتابخانه باید بشناسم؟ چند نفر از آنها هستند؟
-این جاوا اسکریپت است. باید هزاران کتابخانه وجود داشته باشد که همه یک کار را انجام دهند. ما کتابخانه ها را می شناسیم، در واقع بهترین کتابخانه ها را داریم. کتابخانههای ما بسیار بزرگ هستند و گاهی اوقات عکسهای گای فیری را در آنها قرار میدهیم.
گفتی گای فیری؟ بیایید این را تمام کنیم. این کتابخانه های Bluebird، Request، Axios چه می کنند؟
-آنها کتابخانه هایی برای اجرای XMLHttpRequests هستند که وعده ها را برمی گردانند.
آیا روش AJAX جی کوئری نیز شروع به بازگشت وعده ها نکرد؟
-ما در سال 2016 دیگر از کلمه "J" استفاده نمی کنیم. فقط از Fetch استفاده کنید و وقتی در مرورگر نیست آن را چند پر کنید یا به جای آن از Bluebird، Request یا Axios استفاده کنید. سپس وعده را با انتظار در یک تابع همگام و بوم مدیریت کنید، جریان کنترل مناسبی دارید.
این سومین باری است که به انتظار اشاره می کنید اما من نمی دانم چیست.
-Await به شما امکان می دهد یک تماس ناهمزمان را مسدود کنید، به شما امکان می دهد کنترل بهتری بر زمان واکشی داده ها داشته باشید و به طور کلی خوانایی کد را افزایش دهید. عالی است، فقط باید مطمئن شوید که مرحله 3 از پیش تعیین شده را در Babel اضافه کرده اید، یا از syntax-async-functions and transform-async-to-generator استفاده کنید.
این دیوانه کننده است.
-نه، دیوانه کننده این واقعیت است که شما باید کد تایپ اسکریپت را از قبل کامپایل کنید و سپس آن را با Babel ترجمه کنید تا از انتظار استفاده کنید.
چی؟ در Typescript گنجانده نشده است؟
-در نسخه بعدی انجام می شود، اما از نسخه 1.7 فقط ES6 را هدف قرار می دهد، بنابراین اگر می خواهید از await در مرورگر استفاده کنید، ابتدا باید کد تایپ اسکریپ خود را با هدف ES6 کامپایل کنید و سپس Babel را برای هدف قرار دادن ES5 کامپایل کنید.
در این مرحله نمی دانم چه بگویم.
-ببین، آسونه. همه چیز را در Typescript کد کنید. همه ماژول هایی که از Fetch استفاده می کنند آنها را برای هدف قرار دادن ES6 کامپایل می کنند، آنها را با Babel در یک مرحله از پیش تنظیم مرحله 3 ترانسپایل می کنند و آنها را با SystemJS بارگذاری می کنند. اگر Fetch ندارید، آن را پلی پر کنید، یا از Bluebird، Request یا Axios استفاده کنید و تمام وعده های خود را با انتظار انجام دهید.
ما تعاریف بسیار متفاوتی از آسان داریم. بنابراین، با آن مراسم من در نهایت داده ها را واکشی کردم و اکنون می توانم آن را با React نمایش دهم درست است؟
-آیا برنامه شما هر گونه تغییر حالت را مدیریت می کند؟
اره، من اینطور فکر نمی کنم. فقط باید داده ها را نمایش دهم.
-اوه خدا رو شکر در غیر این صورت باید Flux و پیاده سازی هایی مانند Flummox، Alt، Fluxible را برای شما توضیح می دادم. اگرچه صادقانه بگوییم باید از Redux استفاده کنید.
من فقط بر فراز آن نام ها پرواز خواهم کرد. باز هم، من فقط باید داده ها را نمایش دهم.
-اوه، اگر فقط دادهها را نمایش میدهید، برای شروع به React نیاز ندارید. شما با یک موتور قالب خوب بودید.
شوخی میکنی؟ به نظر شما این خنده دار است؟ رفتار شما با عزیزانتان اینگونه است؟
-فقط داشتم توضیح میدادم که از چی میتونی استفاده کنی.
توقف کنید. فقط بس کن
-منظورم این است که حتی اگر فقط از موتور قالب استفاده میکند، اگر جای شما بودم، باز هم از یک ترکیب Typescript + SystemJS + Babel استفاده میکردم.
من باید داده ها را در یک صفحه نمایش دهم، نه اینکه مرگ و میر اصلی Sub Zero را MK انجام دهم. فقط بگو از چه موتور قالبی استفاده کنم و از آنجا می گیرم.
-خیلی زیاد است، شما با کدام یک آشنا هستید؟
اوه، اسمش یادم نمیاد خیلی وقت پیش بود.
-jTemplates؟ jQote؟ خالص؟
اره، زنگ نمیزنه یکی دیگه؟
-شفافیت؟ JSRender؟ MarkupJS؟ ناک اوت جی اس؟ آن یکی دو طرفه صحافی داشت.
یکی دیگه؟
-PlatesJS؟ jQuery-tmpl؟ دسته دسته؟ برخی افراد هنوز از آن استفاده می کنند.
شاید. آیا مشابه آن آخری وجود دارد؟
-سبیل، زیر خط؟ فکر میکنم الان حتی لوداش هم یکی را صادقانه بگویم، اما آنها به نوعی مربوط به سال 2014 هستند.
اره شاید جدیدتر بود
-یشم؟ DustJS؟
خیر
-دات جی اس؟ EJS؟
خیر
-نانجک؟ ECT
خیر
-ماه، به هر حال هیچ کس دستور Coffeescript را دوست ندارد. جید؟
نه، قبلا گفتی جید.
-منظورم پاگ بود. منظورم جید بود منظورم این است که جید اکنون پاگ است.
آه نه. یادم نمی آید. شما از کدام یک استفاده می کنید؟
-احتمالا فقط رشته های قالب بومی ES6.
بگذار حدس بزنم و این به ES6 نیاز دارد.
-صحیح
که بسته به مرورگری که استفاده می کنم به Babel نیاز دارد.
-صحیح
اگر بخواهم بدون افزودن کل کتابخانه اصلی آن را اضافه کنم، باید آن را به عنوان یک ماژول از npm بارگیری کنم.
-صحیح
که به Browserify یا Wepback یا به احتمال زیاد چیز دیگری به نام SystemJS نیاز دارد.
-صحیح
که، مگر اینکه Webpack باشد، در حالت ایده آل باید توسط یک task runner مدیریت شود.
-صحیح
اما، از آنجایی که باید از برنامه نویسی کاربردی و زبان های تایپ شده استفاده کنم، ابتدا باید تایپ اسکریپت را از قبل کامپایل کنم یا این چیز Flow را اضافه کنم.
-صحیح
و اگر بخواهم از await استفاده کنم آن را به بابل بفرست.
-صحیح
بنابراین من میتوانم از Fetch، وعدهها و کنترل جریان و تمام آن جادو استفاده کنم.
-فقط فراموش نکنید که Fetch را polyfill کنید اگر پشتیبانی نمی شود، سافاری هنوز نمی تواند آن را مدیریت کند.
میدونی چیه من فکر می کنم کار ما در اینجا تمام شده است. در واقع، فکر می کنم کارم تمام شده است. من کارم با وب تمام شده است، در کل با جاوا اسکریپت تمام شده است.
-خیلی خوب است، چند سال دیگر همه ما در Elm یا WebAssembly برنامه نویسی می کنیم.
من فقط می خواهم به عقب برگردم. من فقط نمی توانم این تعداد زیادی تغییرات و نسخه ها و نسخه ها و کامپایلرها و ترانسپایلرها را تحمل کنم. انجمن جاوا اسکریپت دیوانه است اگر فکر کند هر کسی می تواند با این موضوع همراه شود.
-میشنوم پس باید انجمن پایتون را امتحان کنید.
چرا؟
-تا به حال نام پایتون 3 را شنیده اید؟
به روز رسانی: با تشکر از اشاره به اشتباهات تایپی و اشتباهات، من مقاله را همانطور که ذکر شد به روز می کنم. بحث در HackerNews و Reddit .