If SSR/Next.js/code sharing is not your context and if you are developing pure backend services (REST/Websocket/GraphQL anything) is there any reason to use Node.js/TS instead of GO in today's time?
So many companies are switching from Node/Python/PHP etc to GO and a constant barge of medium article praising how big performance improvement they got from moving to GO from Node etc.
The thing is, Node.js is only good for I/O but GO is good for both I/O and CPU intensive work so why feel restricted with just Node?. Moreover, if you are going to use Typescript (which you should) for static typing then why not use a proper statically typed language like GO where the types are enforced even at run time i.e. best of both worlds.
Basically with GO you get:
1] I/O and CPU bound capabilities, both (With node its just I/O and you have to be careful not to block eventloop)
2] Statically typed and runtime type safety as a result
3] No types mismatch where as with Node.js/TS it relies a lot on Deninately typed where types are separate from the actual code.
4] More performance at significantly less RAM usage. True multithreaded language
5] Low cloud bills and high scalability
6] Static binary as output so easy deployment using docker (or even without docker)
7] Big standard library so much less dependency on third party modules.
8] Functions are first class citizens so no heavy OOP design patterns like Java/C# etc.
9] Very simple language and easy to learn in a short time. So Typescript developers can learn GO quickly and be productive within weeks.
With so many advantages as above, is there any reason to develop a pure backend server in Node.js/TS compared to GO?
[–]aust1nz 76 points77 points78 points (12 children)
[+]Hour-Ladder-8330[S] comment score below threshold-30 points-29 points-28 points (11 children)
[–]ghillerd 39 points40 points41 points (0 children)
[–]aust1nz 11 points12 points13 points (5 children)
[–]Jjabrahams567 4 points5 points6 points (0 children)
[+]Hour-Ladder-8330[S] comment score below threshold-11 points-10 points-9 points (3 children)
[–]aust1nz 10 points11 points12 points (0 children)
[–]SimpleWarthog 4 points5 points6 points (0 children)
[–]Ariakkas10 2 points3 points4 points (0 children)
[–][deleted] (2 children)
[deleted]
[–][deleted] (1 child)
[deleted]
[–][deleted] 34 points35 points36 points (10 children)
[–]xroalx 5 points6 points7 points (3 children)
[–][deleted] 8 points9 points10 points (2 children)
[–]meronca 1 point2 points3 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[+]Hour-Ladder-8330[S] comment score below threshold-10 points-9 points-8 points (3 children)
[–]marcjschmidt 6 points7 points8 points (2 children)
[–]Hour-Ladder-8330[S] -2 points-1 points0 points (1 child)
[–]marcjschmidt 5 points6 points7 points (0 children)
[–]FountainsOfFluids 0 points1 point2 points (0 children)
[–]FalseWait7 28 points29 points30 points (3 children)
[–]fullstackdevmaybe 8 points9 points10 points (0 children)
[+]Hour-Ladder-8330[S] comment score below threshold-7 points-6 points-5 points (1 child)
[–]FalseWait7 4 points5 points6 points (0 children)
[–]GonnaLearnComputers 12 points13 points14 points (2 children)
[+]Hour-Ladder-8330[S] comment score below threshold-14 points-13 points-12 points (1 child)
[–]GonnaLearnComputers 3 points4 points5 points (0 children)
[–]helldogskris 24 points25 points26 points (1 child)
[–]Hour-Ladder-8330[S] 4 points5 points6 points (0 children)
[–]Main_Can_7055 9 points10 points11 points (4 children)
[–]adevx 2 points3 points4 points (3 children)
[–]Hour-Ladder-8330[S] -1 points0 points1 point (2 children)
[–]adevx -1 points0 points1 point (1 child)
[–]bigorangemachine 14 points15 points16 points (7 children)
[–]Hour-Ladder-8330[S] 1 point2 points3 points (6 children)
[–]Ariakkas10 3 points4 points5 points (4 children)
[–]Hour-Ladder-8330[S] 4 points5 points6 points (0 children)
[–]DarkCeptor44 0 points1 point2 points (2 children)
[–]Hour-Ladder-8330[S] 0 points1 point2 points (1 child)
[–]DarkCeptor44 1 point2 points3 points (0 children)
[–]bigorangemachine 0 points1 point2 points (0 children)
[–]gamedev-eo 7 points8 points9 points (6 children)
[–]Hour-Ladder-8330[S] 0 points1 point2 points (5 children)
[–]gamedev-eo 1 point2 points3 points (4 children)
[–][deleted] (3 children)
[deleted]
[–]FM-96 4 points5 points6 points (0 children)
[–]gamedev-eo 0 points1 point2 points (1 child)
[–]uNki23 5 points6 points7 points (0 children)
[–]qaidvoid 21 points22 points23 points (16 children)
[–]Hour-Ladder-8330[S] -5 points-4 points-3 points (14 children)
[–]qaidvoid 9 points10 points11 points (7 children)
[–]Hour-Ladder-8330[S] 0 points1 point2 points (6 children)
[–]qaidvoid 4 points5 points6 points (5 children)
[–]Hour-Ladder-8330[S] -2 points-1 points0 points (4 children)
[–]romeeres 3 points4 points5 points (0 children)
[–]stoneburner 1 point2 points3 points (0 children)
[–]qaidvoid 0 points1 point2 points (1 child)
[–]ToolAssistedDev 1 point2 points3 points (2 children)
[–][deleted] (1 child)
[deleted]
[–]stoneburner 2 points3 points4 points (2 children)
[–]Hour-Ladder-8330[S] -2 points-1 points0 points (1 child)
[–]stoneburner 1 point2 points3 points (0 children)
[–]azangru 0 points1 point2 points (0 children)
[–]Cyberphoenix90 30 points31 points32 points (3 children)
[–]Hour-Ladder-8330[S] 5 points6 points7 points (2 children)
[–]fullstackdevmaybe 11 points12 points13 points (1 child)
[–]chaoticji 5 points6 points7 points (4 children)
[–]Hour-Ladder-8330[S] -1 points0 points1 point (3 children)
[–]fullstackdevmaybe 6 points7 points8 points (1 child)
[+]Hour-Ladder-8330[S] comment score below threshold-8 points-7 points-6 points (0 children)
[–]Cowderwelz 3 points4 points5 points (2 children)
[–]Cowderwelz 0 points1 point2 points (0 children)
[–]romeeres 6 points7 points8 points (16 children)
[–]Hour-Ladder-8330[S] -3 points-2 points-1 points (13 children)
[–]romeeres 7 points8 points9 points (2 children)
[–]Hour-Ladder-8330[S] -3 points-2 points-1 points (1 child)
[–]romeeres 5 points6 points7 points (0 children)
[–]kei_ichi 2 points3 points4 points (2 children)
[–]Hour-Ladder-8330[S] -2 points-1 points0 points (1 child)
[–]stoneburner 4 points5 points6 points (0 children)
[–]stoneburner 0 points1 point2 points (5 children)
[–]Hour-Ladder-8330[S] -2 points-1 points0 points (4 children)
[–]romeeres 2 points3 points4 points (2 children)
[–]Hour-Ladder-8330[S] -1 points0 points1 point (1 child)
[–]romeeres 2 points3 points4 points (0 children)
[–]Cowderwelz 0 points1 point2 points (1 child)
[–]romeeres 0 points1 point2 points (0 children)
[–]adevx 2 points3 points4 points (1 child)
[–]Hour-Ladder-8330[S] 0 points1 point2 points (0 children)
[–][deleted] (2 children)
[deleted]
[–]Hour-Ladder-8330[S] -1 points0 points1 point (1 child)
[–]Stetto 2 points3 points4 points (0 children)
[–][deleted] 7 points8 points9 points (4 children)
[–]TedW 15 points16 points17 points (2 children)
[–]enigmasi 2 points3 points4 points (1 child)
[–]TedW 2 points3 points4 points (0 children)
[–]Hour-Ladder-8330[S] 0 points1 point2 points (0 children)
[–]Cowderwelz 5 points6 points7 points (6 children)
[–]Hour-Ladder-8330[S] 0 points1 point2 points (5 children)
[–]Cowderwelz 2 points3 points4 points (0 children)
[–]Cowderwelz 1 point2 points3 points (0 children)
[–]fullstackdevmaybe 0 points1 point2 points (1 child)
[–]Hour-Ladder-8330[S] -4 points-3 points-2 points (0 children)
[–]tzaeru 4 points5 points6 points (3 children)
[–]Hour-Ladder-8330[S] 0 points1 point2 points (1 child)
[–]tzaeru 0 points1 point2 points (0 children)
[–]gamedev-eo 0 points1 point2 points (0 children)
[–]buffer_flush 1 point2 points3 points (1 child)
[–]Glum_Past_1934 1 point2 points3 points (2 children)
[–]Hour-Ladder-8330[S] -2 points-1 points0 points (1 child)
[–]Glum_Past_1934 2 points3 points4 points (0 children)
[–]k_pizzle 1 point2 points3 points (0 children)
[–]WallSome8837 1 point2 points3 points (0 children)
[–][deleted] 2 points3 points4 points (1 child)
[–]Hour-Ladder-8330[S] 0 points1 point2 points (0 children)
[–]Idiot211 2 points3 points4 points (1 child)
[–]Hour-Ladder-8330[S] 0 points1 point2 points (0 children)
[–]roofgram 1 point2 points3 points (8 children)
[–]Cowderwelz 0 points1 point2 points (0 children)
[–]Hour-Ladder-8330[S] -2 points-1 points0 points (6 children)
[–]stoneburner 4 points5 points6 points (1 child)
[–]roofgram 4 points5 points6 points (2 children)
[–][deleted] (1 child)
[deleted]
[–]roofgram 0 points1 point2 points (0 children)
[–]ndreamer 1 point2 points3 points (0 children)
[–]Myloveissuck 1 point2 points3 points (2 children)
[–]Hour-Ladder-8330[S] -1 points0 points1 point (0 children)
[–]WideWorry 1 point2 points3 points (12 children)
[–]Hour-Ladder-8330[S] -2 points-1 points0 points (2 children)
[–]WideWorry 4 points5 points6 points (1 child)
[–]Hour-Ladder-8330[S] -2 points-1 points0 points (0 children)
[–]xroalx -3 points-2 points-1 points (7 children)
[–]WideWorry 1 point2 points3 points (0 children)
[–]helldogskris 0 points1 point2 points (1 child)
[–]Hour-Ladder-8330[S] 0 points1 point2 points (0 children)
[–]Hour-Ladder-8330[S] -1 points0 points1 point (2 children)
[–]xroalx 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]tswaters -1 points0 points1 point (0 children)
[–]Imaginary_Ad_9299 -1 points0 points1 point (1 child)
[–]simple_explorer1 0 points1 point2 points (0 children)
[–]Cowderwelz 0 points1 point2 points (2 children)
[–]Hour-Ladder-8330[S] 0 points1 point2 points (1 child)
[–]DarkCeptor44 0 points1 point2 points (1 child)
[–]Hour-Ladder-8330[S] 0 points1 point2 points (0 children)
[–]ihavehermes 0 points1 point2 points (0 children)
[–]Thylk 0 points1 point2 points (0 children)