Incremental – کتابخانهای برای محاسبات تدریجی
Incremental یک کتابخانه OCaml توسعهیافته توسط Jane Street است که محاسبات تدریجی کارآمد را ممکن میسازد. این کتابخانه به برنامهها اجازه میدهد تا نتایج محاسبات را به صورت خودکار هنگام تغییر دادههای ورودی بهروز کنند. این پروژه با ۱۰۵ امتیاز در Hacker News توجه زیادی جلب کرده است.
Jane Street، شرکت معروف فینتک و یکی از بزرگترین مشارکتکنندگان در اکوسیستم OCaml، کتابخانه Incremental خود را به صورت متنباز منتشر کرده است. این کتابخانه برای مدیریت گرافهای محاسباتی پیچیده طراحی شده است، جایی که نتایج باید به طور کارآمد هنگام تغییر دادههای پایه بهروز شوند.
هسته اصلی Incremental بر مفهوم گراف محاسباتی استوار است، که در آن گرهها نمایانگر مقادیر و یالها نمایانگر وابستگیها هستند. هنگامی که یک مقدار ورودی تغییر میکند، کتابخانه این تغییر را از طریق گراف منتشر میکند و تنها گرههایی را که واقعاً تحت تأثیر قرار گرفتهاند دوباره محاسبه میکند. این رویکرد میتواند بهبودهای چشمگیری در عملکرد نسبت به محاسبه مجدد کامل ایجاد کند.
این کتابخانه به ویژه برای سناریوهایی مانند محاسبات مالی، رابطهای کاربری و خطوط لوله پخش داده مناسب است، جایی که دادهها مکرراً بهروز میشوند اما هر بهروزرسانی تنها بخشهایی از درخت محاسباتی را تحت تأثیر قرار میدهد. Jane Street خود از Incremental در محیط تولید برای سیستمهای معاملات آنی استفاده میکند.
در Hacker News، این پروژه ۱۰۵ امتیاز کسب کرده و ۱۷ نظر ایجاد کرده است. توسعهدهندگان این کتابخانه را با سایر کتابخانههای برنامهنویسی واکنشی مانند RxJS و MobX مقایسه میکنند. آنچه Incremental را متمایز میکند، تایپبندی استاتیک قوی از طریق OCaml و تضمینهای عملکردی آن است که آن را برای محیطهای برنامهنویسی مالی و سیستمی پرخطر مناسب میسازد.