- عنوان: Grokking Simplicity / Taming complex software with functional thinking
- نویسنده: Eric Normand
- حوزه: معماری نرم افزار
- سال انتشار: 2021
- تعداد صفحه: 593
- زبان اصلی: انگلیسی
- نوع فایل: pdf
- حجم فایل: 13.0 مگابایت
من برای اولین بار در سال 2000 زمانی که در یک کلاس هوش مصنوعی در دانشگاهم شرکت کردم، با برنامه نویسی تابعی (FP) در قالب Common Lisp آشنا شدم. در ابتدا، Lisp در مقایسه با زبانهای شی گرا که من به آنها عادت داشتم، بیگانه و خارجی به نظر میرسید. اما در پایان ترم، من تکالیف زیادی را در Lisp ساخته بودم و احساس راحتی کردم. من طعم FP را چشیده بودم، حتی اگر تازه شروع به درک آن کرده بودم. با گذشت سالها، استفاده من از برنامه نویسی کاربردی عمیق تر شد. من Lisp خودم را نوشتم. من در لیسپ کتاب می خوانم. انجام تکالیفم را از کلاس های دیگر در آن شروع کردم. و از آنجا با Haskell و در نهایت Clojure در سال 2008 معرفی شدم. در Clojure من موز خود را پیدا کردم. این بنا بر اساس سنت 50 ساله Lisp، اما بر روی یک پلت فرم مدرن و کاربردی ساخته شده است. و جامعه از طریق ایدههایی در مورد محاسبات، ماهیت دادهها و مهندسی عملی سیستمهای نرمافزاری بزرگ متحول میشد. این محل جولانگاه فلسفه، علوم کامپیوتر و مهندسی بود. و خوردمش من در مورد Clojure وبلاگ نوشتم و در نهایت یک شرکت برای آموزش Clojure ایجاد کردم. در همین حال، آگاهی هاسکل نیز در حال افزایش بود. چند سالی در هاسکل به صورت حرفه ای کار کردم. هاسکل شباهت های زیادی با Clojure داشت، اما تفاوت های زیادی نیز وجود داشت. چگونه میتوانیم برنامهنویسی تابعی را تعریف کنیم که هم Clojure و هم Haskell را شامل شود؟ این سوال منجر به بذر این کتاب شد. اولین بذر، ایده اقدامات، محاسبات و داده ها به عنوان وجه تمایز اولیه پارادایم برنامه نویسی تابعی بود. اگر از هر برنامه نویس کاربردی بپرسید، آنها موافقت خواهند کرد که این تمایز برای تمرین FP ضروری است، اگرچه تعداد کمی موافق هستند که جنبه تعیین کننده این پارادایم است. که شبیه ناهماهنگی شناختی بود. مردم تمایل دارند به روشی که به آنها آموزش داده شده است آموزش دهند. من فرصتی را در آن ناهماهنگی شناختی دیدم تا به مردم کمک کنم FP را به روشی جدید یاد بگیرند.
I was first introduced to functional programming (FP) in the form of Common Lisp back in 2000 when I took an Artificial Intelligence class at my university. At first, Lisp appeared spare and foreign compared to the object-oriented languages I was used to. But by the end of the semester, I had built many assignments in Lisp, and it started to feel comfortable. I had gotten a taste of FP, even if I had only just begun to understand it. Over the years, my use of functional programming deepened. I wrote my own Lisp. I read books on Lisp. I started doing my assignments from other classes in it. And from there, I was introduced to Haskell and eventually Clojure in 2008. In Clojure I found my muse. It was built on the 50-year tradition of Lisp, but on a modern and practical platform. And the community was churning through ideas about computation, the nature of data, and the practical engineering of large software systems. It was a hotbed of philosophy, computer science, and engineering. And I ate it up. I blogged about Clojure and eventually built a company to teach Clojure. Meanwhile, awareness of Haskell was also on the rise. I worked in Haskell professionally for a few years. Haskell had a lot in common with Clojure, but there were also a lot of differences. How could we define functional programming to include both Clojure and Haskell? That question led to the seed of this book. That first seed was the idea of actions, calculations, and data as the primary distinction of the functional programming paradigm. If you ask any functional programmer, they will agree this distinction is essential to the practice of FP, though few would agree it is the defining aspect of the paradigm. That looked like cognitive dissonance. People tend to teach the way they were taught. I saw an opportunity in that cognitive dissonance to help people learn FP in a new way.
این کتاب را میتوانید بصورت رایگان از لینک زیر دانلود نمایید.
Download: Grokking Simplicity / Taming complex software with functional thinking
نظرات کاربران