چگونه Factor را یاد بگیریم

مروری بر اینکه چطور از صفر با Factor شروع کنید.


منابع خوب و زیادی برای یادگیری Factor وجود دارد.

  • آموزش Factor از آندره‌آ فرتی مروری کامل و دقیق بر این زبان است که از مبانی پشته آغاز می‌شود و تا فرابرنامه‌نویسی، رایانش توزیع‌شده و توسعه‌ی وب با Furnace پیش می‌رود.

  • Factor in 2022 سخنرانی‌ای از جان بندیکتسون و داگ کولمن در سال ۲۰۲۲ است که گردشی در این زبان و این‌که امروز کار کردن با آن چه حسی دارد ارائه می‌دهد.

  • Thinking Forth نوشته‌ی لئو برودی، اثری کلاسیک درباره‌ی فلسفه‌ی طراحی و عادت‌های ذهنی پشت Forth است. Factor همان Forth نیست، اما نگرش الحاقی و پشته‌محور را از آن به ارث برده است و کتاب برودی بهترین درآمدی است به این شیوه‌ی تفکر.

  • مستندات Factor شگفت‌انگیز و گسترده است. به‌صورت آفلاین هم در دسترس است، می‌توانید مستقیماً از GUI Listener یا از خط فرمان در آن جست‌وجو کنید و همان مستندات قابل جست‌وجو به‌صورت آنلاین هم موجود است.

  • playground-factor اثر بیورن لیندکویست مخزنی پر از نکته‌ها و ترفندهای جالب است. بیورن که خودش یکی از توسعه‌دهندگان Factor است، آن را خیلی به‌ندرت به‌روزرسانی می‌کند و هنوز کامل نشده است؛ بخش زیادی از محتوایش در حال انتقال به ویکی GitHub است. با این حال، محتوایش همچنان بسیار جالب است.

  • Learn X in Y Minutes یک آموزش Factor دارد. به‌هیچ‌وجه جامع نیست، اما مرجع خوبی است و برای شروع کافی است.

  • Rosetta Code: Factor بخشی از یک سایت گلچین برنامه‌نویسی است. در میان صدها زبان دیگر، راه‌حل‌هایی برای بسیاری از مسئله‌ها به Factor دارد که می‌توانید آن‌ها را با زبان‌هایی که از قبل می‌شناسید مقایسه کنید؛ مرجع و نقطه‌ی شروعی خوب برای رسیدن به راه‌حل.

و در آخر، شاید هم کم‌اهمیت‌ترین‌ها:

  • Stack Overflow. جامعه‌ی بزرگی آنجا نیست (خب، حدود سه کاربر، از جمله بنده)، اما اگر واقعاً و به معنای واقعی کلمه گیر کرده‌اید، همان‌جا بپرسید و قطعاً کسی کمکتان می‌کند.

  • فهرست پستی. اینجا می‌توانید درباره‌ی هر موضوع مرتبط با Factor بپرسید و یکی از مشارکت‌کنندگان با مهربانی پاسخ می‌دهد.

  • Factor در IRC هم هست! بیایید به ما بپیوندید؛ خوشحال می‌شویم کمک کنیم.

  • درباره‌ی Joy، Forth و برنامه‌نویسی الحاقی / پشته‌محور به‌طور کلی یاد بگیرید و مطالعه کنید.

  • درباره‌ی Common Lisp Object System یاد بگیرید و مطالعه کنید. CLOS به‌طور گسترده پیشرفته‌ترین و نوآورانه‌ترین مدل شیء جهان به شمار می‌رود و مدل شیء Factor تا حد زیادی بر پایه‌ی آن بنا شده و از آن الهام گرفته است.

  • از بسیاری جهات، Factor یک Lisp است. یک Lisp پسوندی، point-free، تابعی و از درون به بیرون و برعکس، با ظاهری عجیب و خنده‌دار، اما بسیاری از اندیشه‌های پشت آن یکسان است. به همین دلیل، ممکن است یادگیری یک Lisp برایتان سودمند باشد؛ ترجیحاً یک Lisp-1 که در آن توابع و متغیرها فضای نام مشترکی دارند (چون در برنامه‌نویسی تابعی، توابع خودشان مقدار هستند). بنده فروتنانه Scheme را پیشنهاد می‌کنم، یا اگر چیزی مدرن‌تر و کاربردی‌تر می‌خواهید، Racket را که از Scheme مشتق شده است.

و در پایان، Factor تقریباً به‌طور کامل با خود Factor نوشته شده است. پس کد منبع را بخوانید و واژه‌هایی را که نمی‌شناسید در مستندات جست‌وجو کنید.