atomic
episode-code-samples
Our great sponsors
atomic | episode-code-samples | |
---|---|---|
12 | 7 | |
32 | 926 | |
- | 1.2% | |
7.0 | 7.2 | |
about 1 month ago | 3 days ago | |
JavaScript | Swift | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
atomic
-
Should all Clojure functions be polymorphic by default?
I wanted ClojureScript, without transpilation, in the browser so badly I implemented much of it in plain JS. But JS still lacks first-class protocols (although there is a T39 proposal for them) so I have to implement protocols first. And I can tell you from having implemented much of Clojure myself in plain JS that it's protocols all the way down. 80% of my library are types and their protocols.
-
Do you do full-on FP in JavaScript? Want it?
I've watched a lot of talks, but it was Rich Hickey's which most captivated me and, ultimately, inspired big change in how I coded. After discovering Clojure I was so desiring FP (i.e. ClojureScript) in the browser without a build step and hoard of dependencies that I wrote my own library.
-
FP and JavaScript/TypeScript
I fell in love with Clojure and ported most of the tools to plain ol' JavaScript. I stole reactives and FRP from Elm. I write a functional core then wrap it with an imperative shell. It's been my mainstay for 10 years now.
-
What do functional programmers like functional programming?
What I did was looked past the languages at the ideas and saw they could be applied everywhere, including JavaScript. Take a look at my example programs (via prior link) and you can see Clojure applied to the JavaScript/browser realm.
-
Writing Javascript without a build system
I have found that the amount of code needed to support any page/app need not be massive. I have implemented modern board games with 250-300KB of js and the core lib I use on all my projects maxes out around 250KB, unminified. The lib itself is built on the premise of build avoidance.
-
Do you guys work with other languages?
I do JavaScript most of the time, but I was so inspired that I ported the Clojure mindset into the web development world so I could use it even in the absence of Clojure. I know there's ClojureScript, but I wanted the goodness without transpilation.
-
On Not Drinking the FP Kool-Aid
So I don't even do Clojure per se. I do Clojure in JavaScript without ClojureScript.
-
side effects in fp: to accept or not to accept
I use functional core, imperative shell. It would have you write a core which is a pure simulation. Write everything in the core using immutable data and pure functions. I elaborate on that here, along with examples.
- GitHub - mlanza/atomic: Write Clojuresque functional core, imperative shell programs in JavaScript.
- Clojuresque functional core, imperative shell programs in JavaScript
episode-code-samples
- SwiftUI app architecture - any recommended online resources?
-
Combine and functional programming
One resource I'd recommend is Point-Free - they'll teach you functional programming from the beginning.
-
What is a piece of code (or Framework, extension, etc.) that you add in every new project?
At a minimum, Composable Architecture, and now Dependencies from Point-Free.
-
On Not Drinking the FP Kool-Aid
I come from the iOS world and one of the most valuable resources I have found for understanding FP in Swift is https://www.pointfree.co These guys go over the theoretical concepts and then not only ask, "what's the point?" but they then go on to build out more complicated examples or even complete apps and publish useful libraries on GitHub.
-
A New Chapter
So it's time for a change. I'm going to build my own ideas full-time and find a way to make it work. I've put a lot of thought into it and I'm confident this is the right decision for me. As for what I'll be working on, I wanna build things for the Android community. If you know me, you know that I'm an Android developer and technologist at heart. I’ve gotten some amazing opportunities to speak at conferences and share the things I’ve learned over the years. I’m inspired by people like Josh W. Comeau, and the folks at Point-Free. These are people who master their craft, build beautiful software, and teach about their methodologies and underserved topics in their respective domains. That’s what I want. I want to master my craft, build beautiful Android experiences, and share it with you all. If you don’t wanna miss out, make sure to follow me on Youtube, Twitter, and Mastodon.
-
Any good resources for advanced topics?
https://www.pointfree.co - not exactly about patterns and best practices, but this was the best content I’ve found after reaching the same “CRUD app tutorials are not enough anymore“ phase.
- On using Dependency Injection with MVVM
What are some alternatives?
vscode-haskell - VS Code extension for Haskell, powered by haskell-language-server
Setting - Compose beautiful preference panels.
electric - a reactive Clojure dialect for web development that uses a compiler to infer the frontend/backend boundary
swift-dependencies - A dependency management library inspired by SwiftUI's "environment."
squint - Light-weight ClojureScript dialect
MVVM.Demo.SwiftUI
proposal-command-syntax - Proposal: Command Syntax for JavaScript
AboutKit - Add an about screen to your app in just a few lines of code.
euphoria - The Euphoria programming language (https://openeuphoria.org/)
MVVM.Demo - This is a demo application used to educate and interview iOS Engineers.
learn-you-a-haskell - “Learn You a Haskell for Great Good!” by Miran Lipovača
todo - Atomic TodoMVC