@jlongster
Nothing here yet.
Nothing here yet.
No blogs yet.
Great question! I'm currently obsessing over my tomato plant outside and it finally is starting to grow 7 tomatoes. I took gardening pretty seriously this year and next year plan to plant a much larger garden. I installed a drip system so it's automatically watered. I also really enjoy woodworking but don't have a place to do that, but that's about to be solved because I'm getting a workshop built behind our house. Soon I hope to be making tables and other things like that. I would love to be able to draw but I haven't ever had time to really get into that. I feel like that's something I'll do later in life. Recently I've been getting pretty interested in finance and investing too, but that's somewhat related to technology.
To be honest I haven't actually used it on a large app yet. I haven't worked on a Clojure project and I've only done small projects. However, my experience was good, the language is awesome, but when I was using it there was some pain getting it setup. I think that's better now. See this answer for it's data-first model: https://hashnode.com/ama/with-james-long-cj5x0mut902fwjpwtiqsu0ypn#cj62j1ok4008zvmwt58ddjhck On top of that, it has a really powerful form of objects and protocols, which allow you extend and existing type but the extension is only locally scoped to the current environment. Think of being about to add a toNumber function to the JS String type, but it's only available in file that have imported your extension. It's like a safe way to monkeypatch; it's awesome.
Clojure embodies my favorite programming paradigm: functional, immutable, and data-first. "data-first" means that you think a lot in terms of data, and Clojure has a lot of powerful methods for working with that data in really clear ways. You don't write a bunch of classes that have this.state. You just have state and you pass it into functions. Code that favors immutability is far more robust. I can't stress this enough. Even if need to mutate an array, if I'm doing some complex logic, I will abstract out as much as I can into immutable/pure functions that take small chunks of the array and return new data, and then only at one specific point in the code it will mutate the array with a splice. Being very explicit about where mutation happens makes things a whole lot clearer. Otherwise you don't know when the earth moves from underneath your feet. My favorite programming language right now is probably Reason because it feels like I'm learning a lot, which is fun. And robust static typing is pretty powerful. Emacs is my operating system of choice. I spend 90% of my time in it. It's so flexible, and although not very modern, has a lot of really powerful workflows.
I got lucky because I started before most of that existed. :) But really, I think create-react-app is a great place to start. It has everything set up for you that you need and you never have to worry about it. Write ES6, explore React, and go from there. After that you can try TypeScript or Flow. I'd recommend choosing whichever fits the best for your current app. Depending on the libraries you are using one of them might be more supported. But really, just get started! If you don't know where to start, just load a JS file in the browser and start with vanilla DOM APIs. You will learn a lot and then you can make choices based on that experience.
Thanks! Open source is a way to simply get feedback from others in the community, and "vet" ideas. It's motivating to know early on whether an idea is going to work or not, and people will help you think about problems earlier than you would have yourself. It also just feels good to be a part of a community. Lately I haven't been as motivated since I've been starting to focus less on specifically technical ideas and more solving problems for people. Basically building products. Right now I don't spend any time daily on open source, honestly. I probably only spent a few hours a week. I am going to start working on stuff for prettier again, and I tend to go in bursts, but even then it's probably only a few hours every couple of days. I'm glad you like the livestream! :)
It's only me, but I have a few friends that are giving me advice. I didn't really choose to work on it myself, but I haven't found anybody who is the right fit yet. It's hard to find people who have time and interest in this kind of app, and also is the right "fit". If I release this and it actually gains traction I expect to find help, either part-time contractors or something like that, depending on the funding situation.