DEV Community

Discussion on: Which language should I choose

Collapse
 
rhymes profile image
rhymes • Edited

Since you used the word "we" and it seems that this app needs to make money at some point I would say choose the language that at least one of you knows well, better if one the majority knows well :) Compatibly with the needs of this new project.

To get back to your questions:

So, my question is how viable is Golang for purposes like string manipulation and AI? I am leaning towards Golang because of its seamless integration in a scalable cloud infrastructure. I have heard a lot of good things about it being super fast and saving deployment costs in cloud infrastructure that charge for computation time.

You talk about saving infrastructure cost and scalability which is true in theory but would it be fine if to choose one language you had to spend hundreds if not thousands of man hours to develop tools similar to existing ones that have been battle tested in the other language?

I like both languages and I'm not saying Go is not the right choice, but I think what matters the most is the libraries and tools around them.

You want to deal with natural language processing, ML and AI. Spend a day or two checking the state of those libraries in the Go community vs those in the Python community. I honestly have no idea how good or bad ML tools are in Go.

Make a shopping list of all the tools you'd need to incorporate or write from scratch for your MVP, you can learn Go in a day, play with those tools and you'll know which is the right choice.

A couple of days spent now will save you trouble down the line, instead of going all in with one language or another without knowing what's available.

Collapse
 
xtabbas profile image
T Abbas Khan

Aha, gotcha. I probably asked this question because I want discover what Golang can offer. I can use an experts opinion on this but I guess you're right. Everyone has their own preferences and there is no silver bullet. Discovering the pitfalls my self through documentation and trial and error is a good way forward and I am currently doing that.

What I found is that Node would be the best option for me to build a quick and dirty CRUD app as I have the most experience there. Once I want to do ML I can write services in Python querying the same database. Heck if there is a lot of traffic and things are getting slower/expansive I can slowly migrate to Golang in the future.

Collapse
 
rhymes profile image
rhymes

Ok my expert opinion: if you're satisfied with external ML services build everything with Node since you know it best, otherwise build everything with Python (both the server and the business logic). With Python you have tools like Numpy, Pandas, TensorFlow, Jupyter, web frameworks, official support by big companies to deploy in the cloud and so on.

Once you have your monolithic MVP you can circle back on what to do next. You might not even need to rewrite anything. If you have to, you can pick apart the monolith one endpoint at the time.

Start simple :)