3 ms·
I love doing side projects in other languages / frameworks, mainly ones with very different philosophies. It gets me thinking in a different way, and I bring th
by schwartzworld 4y ago
I love doing side projects in other languages / frameworks, mainly ones with very different philosophies. It gets me thinking in a different way, and I bring that new mode of thought back to my work.
I mainly work in React with TypeScript, and most of the devs I know rely heavily on plain objects and arrays, writing a lot of glue code to squeeze these square pegs into all the different shapes holes they need. There is a lot of opportunity to model your state and data flows using whatever programming technique I'm interested in, along with the added challenge of implementing those in a way that other devs will be able to understand. Trying to straddle this line has absolutely made me a better developer.
Some examples:
- Forth emphasizes using small, reusable "words" which you then build on top of each other to essentially create a DSL for describing your app / data.
- Rust has a great type system which improved my understanding of TypeScript. It also has really sexy monadic data types like Either and Result that you can implement in TS/JS.
- Elm is a pure functional language that compiles to HTML CSS and JS. Any amount of time spent with Elm will make a better React dev.
- Lua is close to JS but lacks a lot of the niceties. If you want classes or arrays or anything like that, you pretty much have to implement them yourself.
None of my side projects are world changing, but the effect they have had on my day-to-day code is significant. Programming teaches you new modes of thought, and the more you are aware of what goes on in these other parallel worlds, the more fun it becomes to try and tackle problems that are hard in your language / framework, but easier in others.
I also spend a lot of time listening to technical podcasts. I always recommend that JS / TS devs listen to the LambdaCast, which hasn't produced an episode in 3 years, but is still a very valuable resource. I also like the ArrayCast (array programming language nerds talking about array programming).