|
Application context:
Currently a fairly basic .NET application that has been dead in the water for a bit due to the original author leaving the company. A few tables, a few pages, fairly simple AWS API calls. From what I can tell, not a compute intensive application. Company context:
Small, been frozen for some time due to the developer not working on the code at all, hard to hire for the codebase without spending a lot of money that they don't have. Ideally having me come in, within 4-6 months having a slightly improved version of the application up and running, but on a more common stack. I would be in charge of hiring new developers to work with me on the project right away. My background:
Been working in Python for about 5 years, the past 2 years have been very intense on Python. The past year I have been working in Go as well. We have moved some of our API's to Go due to the speed gains from the migration. I would say I am significantly more comfortable with Python, but I know the performance I can get from Go is very nice. The ask:
Which language do I migrate the backend API's to? I have been torn between the two languages. Python would be the fastest off the ground for me, since that is what I am more comfortable with, but Go might be more "future-proof"? What if we implement some more compute heavy features that may benefit from the speedup of Go? I believe the timeline is doable for both languages, with Python getting finished sooner I am sure. Is it worth taking the risk of maybe running up on the deadline with Go? Any suggestions on frontend are also welcome, currently just going with React due to my own past experience. |
Somewhat tangentially: if you're also already comfortable with javascript, you might consider using it (or typescript) on the back-end as well. I've recently been looking at remix (https://remix.run) which seems like a pretty smart approach to doing that. The idea is roughly that you build a thing that looks like a traditional server-side app, but with server-rendered react components, and the framework supports you in layering on client-side progressive enhancement. I haven't done anything serious with it, but it's piqued my interest enough that I might overcome my aversion to running javascript on the server (mostly due to healthy paranoia about the state of the npm ecosystem).