3 ms·
I was going to recommend you look for a Haskell shop and the saw that user markus_zhang mentioned the same thing in this thread. I'm actually just starting my
by lemonwaterlime 2y ago
I was going to recommend you look for a Haskell shop and the saw that user markus_zhang mentioned the same thing in this thread.
I'm actually just starting my own company using Haskell so I can think deeply about what I want while making the product how I want.
- Tainnor 2y agoThat might be a good idea, yeah. My worry is that I haven't really ever used Haskell commercially (I used it a bunch for things like Advent of Code, etc.), so I would have to learn a lot on the job - which I'm willing to do, but companies might look for somebody who's more proficient.
- lemonwaterlime 2y agoThen I would not recommend starting a company with Haskell as the language. If you do want to eventually get a role using Haskell (which are rare), it is a good strategy to pick some commercial thing and implement it in Haskell. For instance, do a CRUD app using a postgresql app like Esqueleto/Persistent, Opaleye, etc. Or make a web app with Yesod (or even Scotty or Servant).
- karmakurtisaani 2y agoIt's always said that you should worry about customer needs before even thinking about technology. How do you see that with your company?
- lemonwaterlime 2y agoIn my case, I am already proficient in Haskell, so I do not have to learn it. Using the technology I already know means not blowing my "novelty budget". As for benefits, I get the following: - strong, static typing via the Hindley-Milner type system That means any changes to my logic and type signatures have to be addressed immediately everywhere. - type-safe, composable everything I want as many issues as possible to be caught at compile time. Ideally, I would have no runtime errors. It is possible to get close to this ideal with Haskell. - terse, expressive language Less code to read per concept expressed plus a strong type system means that maintenance and refactoring is a breeze. In fact, I can fearlessly refactor. That means once I get everything up and running, the codebase is stable even when I change things. Thus, I can actually focus more on the product and customer needs. Combining all of the above with other stable and maintainable technology choices makes the entire app architecture easy to maintain over time as well. You always have to consider the technology so you can properly architect your application and its dependencies.