サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
パリ五輪
ericnormand.me
Written by Eric Normand. Published: February 16, 2024. Updated: April 4, 2024. This is just a draft.The content you see here is just a draft and is subject to change. Table of Contents Underlined chapter titles are available to read. Just click on the title (it's a link!). Introduction Objectives Discover what you will learn in this book. Learn whether this book is for you. Understand how to use t
Written by Eric Normand. Published: October 27, 2017. Updated: May 25, 2020. Summary: Rich Hickey explained the design choices behind Clojure and made many statements about static typing along the way. I share an interesting perspective and some stories from my time as a Haskell programmer. I conclude with a design challenge for the statically typed world. Rich Hickey's Keynote at Clojure/conj 201
Written by Eric Normand. Published: August 2, 2017. Updated: August 7, 2018. Summary: We address the question directly, but then look deeper to the beliefs behind the question. A very common question I get from experienced programmers is "What does an FP language give me that I don't already have? Can't I just do FP in my language?" This is a great question and I hope I have an equally great answe
Written by Eric Normand. Published: June 5, 2017. Updated: August 15, 2019. Do you want concurrency tools to rock your cores in Clojure? By the end of this guide, you'll have the tools you need to dramatically improve the concurrency of your software. After reading this, if you can't find a way to correctly share resources and make better use of the entire capacity of the computer, you can ask me
Summary: Schema and clojure.spec aim to solve similar problems. There are significant differences, though, that might not be obvious at first. Schema came out in 2013 and I started using it right away. At the company I was working at, we had a few API endpoints and we were having the classic problem of having to write custom checkers for our data. Schema seemed to solve the problem of describing t
Summary: The SOLID principles are guidelines for writing good Object-Oriented code. It turns out that these principles are followed and embodied in Clojure. Robert C. Martin (Uncle Bob) has named five basic principles of software design called SOLID. It's an acronym that helps people remember them. I really like these kinds of mnemonics because, well, we all need help remembering things. The easie
Written by Eric Normand. Published: December 24, 2014. Updated: August 23, 2018. Want the best way to learn Clojure?Invest in yourself with my Beginner Clojure Signature Course. 8 fundamental modules240 fun lessons42 hours of video Summary: "Prefer data over functions" is a common adage in Clojure circles. It is poorly debated because it is a terse statement in generalities. A valuable perspective
Written by Eric Normand. Published: July 26, 2019. Updated: May 10, 2024. Want the best way to learn Clojure?Invest in yourself with my Beginner Clojure Signature Course. 8 fundamental modules240 fun lessons42 hours of video Summary: There are many great resources out there for learning Clojure. Some resources are paid, but fortunately, many of the best resources are absolutely free. Are you inter
Written by Eric Normand. Published: November 15, 2014. Updated: October 6, 2020. Summary: Elm is an exciting FRP language. I implemented the FRP part in Clojure using core.async. I like to read research papers. I have ever since I was in high school. I've always wanted it to be pretty easy to just translate the pseudocode for an algorithm for a paper and then have it working without any trouble. O
Written by Eric Normand. Published: August 1, 2019. Summary: Clojure has been successfully adopted by many companies. There are many resources available by people who did the hard work of introducing Clojure to their team. Do you want to get paid to write Clojure? Let's face it. Clojure is fun, productive, and more concise than many languages. And probably more concise than the one you're using at
Written by Eric Normand. Published: August 23, 2014. Updated: August 17, 2018. Summary: Clojure is an imperative language. Its operations are defined in terms of concrete actions. But those actions are often the same actions available to the programmer at runtime. This makes it easy to bootstrap. Update: أخلاق الخيميائي pointed out that I was wrong about the size of GHC. Luckily it was not salient
Written by Eric Normand. Published: July 29, 2019. Updated: June 3, 2022. Build your backend in Clojure!Master Ring and web requests with my Clojure Web Backend Signature Course. 2 web backend modules6 detailed lessons1.9 hours of video In this guide, I describe the available Clojure web framework options and give my recommendations. Recommendation summary Roll your own stack from recommended libr
Written by Eric Normand. Published: January 14, 2014. All sarcasm aside, the above diagram has a kernel of truth. The important thing to note is that the intersection between "Proponents of dynamic typing" and "People familiar with type theory" is very small. In an effort to increase the size of that intersection, I decided to familiarize myself with a little more type theory. I developed an imple
Any problem in computer science can be solved with another level of indirection. --- David Wheeler The React library from Facebook makes DOM programming functional by using a Virtual DOM. The Virtual DOM is an indirection mechanism that solves the difficult problem of DOM programming: how to deal with incremental changes to a stateful tree structure. By abstracting away the statefulness, the Virtu
4 Things Java Programmers Can Learn from Clojure without learning Clojure I was trained in Java at University. The OOP matrix was firmly implanted in my thinking. I wanted to share some things that I have learned from Clojure that were certainly possible in Java but never became fundamental to my programming practice. Clojure certainly has learned a lot from Java. It might be cool if the learning
Written by Eric Normand. Published: December 29, 2012. Updated: August 17, 2018. Summary: LESS and Sass (and similar solutions) have saved CSS for three reasons: separation, abstraction, and cascading. While I welcome them, CSS still has other problems which I believe can be solved. I propose some solutions. Introduction A lot is said about LESS and Sass, and for good reason. CSS is hell to get ri
Each week, enjoy a thoughtful essay in your inbox, focused on the following topics:software designfunctional programmingsoftware engineering practicesI believe our industry needs more rigor when talking about how to write better software. At the same time, we also need more speech from the heart. I hope you enjoy the combination of the empirical and personal. Do any of these describe you?Do any of
Written by Eric Normand. Published: January 9, 2010. Updated: June 25, 2018. Summary: Writing software alone and in a long term sustainable manner requires a lot of discipline. Upfront planning and avoidance of feature creep can turn a stressful project into a pleasure. UPDATE: I originally wrote this piece back in 2010. I was recently reminded of it and thought it would be good to revive this art
Written by Eric Normand. Published: October 21, 2008. With only a few breaks, Lisp50 went from 8 am to 9 pm Monday at OOPSLA. The main topic of discussion was the history of Lisp. It was a long day, but it ended very optimistically focusing on the future. Richard Gabriel and Guy Steele went first. I missed the first part of the talk, but it was a reenactment of a talk they gave a couple of decades
Hi! I'm Eric Normand. I teach Clojure and functional programming. I delight in making powerful, complex topics easy for you to learn. Learn Clojure With my guides and courses, you can level up your Clojure skills. Clojure Guides · Clojure Video Courses Learn Functional Programming Functional programming is an exciting paradigm that can help you tame complexity. Podcast · Grokking Simplicity (my bo
このページを最初にブックマークしてみませんか?
『Eric Normand - Functional Programming and Clojure』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く