Hacker News new | ask | show | jobs
BSc Thesis idea-messaging app, stack/tools selection help
1 points by pkrzysiek 451 days ago
Hello, I'm a third-year student about to choose my thesis topic. I was thinking about developing a messaging app, but I'm not sure if I'm fully aware of the challenges and tools that could help me create it.

At first, I planned to use C# with ASP.NET Core MVC and SignalR (since I know C# very well) for the messaging system, along with a Blazor or React frontend.

I also considered using Angular for the frontend, but I don't know TypeScript very well. However, since I'm proficient in JavaScript, I'm ready to learn it whenever necessary.

Despite these considerations, my biggest concern is the backend. My goal is to make the app fast, and I've heard that Go would be ideal for this. The problem is that I've only recently started learning Go (so I basically don’t know it), and from what I’ve heard, there aren't many robust backend frameworks available for it. People often recommend using only the standard library, which seems too cumbersome.

1 comments

The biggest thing to keep in mind when it comes is recognizing when YAGNI (you aren't gonna need it) applies.

In this case, you're building what amounts to a proof of concept or a minimum viable product. Your constraints are mainly time and reliability, ie: it has to work and it has to be delivered by a certain time, so I'd argue the biggest factor in stack selection is your familiarity with the stack in question.

Besides that though, language will have almost no effective impact on your real world performance, which will be dominated by network latency.

You can test this for yourself to confirm: Write a script which sends random strings to a backend which simply writes the string to a database. Have the script print a timestamp before and after calling the API. Likewise have the backend print timestamps before and after each db call. Start the backend up on a small cloud VM, the database on another, and run your script from a laptop on Starbucks WiFi.

I can tell you right now that the laptop to backend latency will be around 50ms, while the backend to db latency will be around 5ms. Could you reduce that 5ms by a factor of 10 with the right language and db choice? Absolutely, but it won't make a difference to the end user.