So I have to rewrite my starship design app, from scratch.
What do you think about a container-driven microservice using Go?
* * *
I have the configuration files for reuse, which contains ALL of the data, and even one of the formulas, so there's a starting point.
The hot thing at work is stateless little service endpoints that talk via REST. And since that sounds fun, AND since starship design deals in a bunch of little components, that's probably how I'll do it.
* * *
So I'll open up the discussion for ALL THINGS related to starship design software.
So, what's the plan.
Have all of the state in a single page web app, and use the services for individual calculations?
How do you plan on saving the ships and works in progress?
I can't see much need for an actual back end service for this stuff, but if that floats your boat...err...starship, then yippy kay aye.
If you want to learn Go, learn Go. Language choice has no impact on your end result, particularly in this case -- it's purely a personal choice.
If I were comfortable with the browser environment and javascript, I would do it as a single page, static app. Download the app, run it in the browser, host it on github. No server maintenance, users should be able to save and load their files locally, etc.
But, I'm not, so I don't. I look at the web space and just cower in a dark corner. The complexity of the barrier to entry with all of the variety is simply daunting to me, so I stay away.
I just hang out in my little Java world.
If I were to do such an app, it would be something where you can just add elements with a few back end rules.
You have to select a hull (which kind of sets the baseline for everything). After that, start adding systems. 1 Jump drive, heck 2 jump drives, extra power plant, 3 spinal mounts, etc.
All sorts of obscenities could be created that are not RAW allowed. But the important thing is that you have a core functionality that lets you just add and change stuff.
Spreadsheets are REALLY GOOD at this, but they tend to be rigid. As long as you're in your comfortable box, it's all good. How many spreadsheet builders let you add another power plant, for example?
So, having the not-quite-a-spreadsheet ability to add items that are interrelated is fundamental.
I should be able to drag and drop a brace of 50 dTon cutters in to my ship design, with the design updating mass and cost etc. If I could "double click" on the cutter to see it's design, that's a whoo-hoo right there.
Once you have that fundamental base, then you have a wizard that lets you pick the major components: Select J-Drive, M-Drive, P-Plant, add weapons and screens, it auto computes crew and stateroom requirements. Basically, it pre-fills out the "anything goes" "not-a-spreadsheet" that you already have. Then folks can tweak it.
But I wouldn't back end service any of that personally. Seems like a lot of work for little gain.