Golang vs Next.js

Need advice about which tool to choose?Ask the StackShare community!

Golang

22K
13.6K
+ 1
3.3K
Next.js

6.2K
4.6K
+ 1
322
Add tool

Go vs Next.js: What are the differences?

Markdown is a lightweight markup language that can be used to format content on a website. It allows for easy formatting and organization of text, making it ideal for presenting information in a clear and concise manner.

Key differences between Go and Next.js

  1. Language vs Framework: Go is a programming language, while Next.js is a framework for building web applications. Go provides a set of tools and libraries for building efficient and scalable programs, while Next.js offers a structured way to build modern, server-side rendered React applications.

  2. Concurrency vs SSR: Go is known for its strong support for concurrency, allowing developers to easily write concurrent programs that can handle multiple tasks at the same time. Next.js, on the other hand, focuses on server-side rendering (SSR) and provides an efficient way to render React components on the server and send the rendered HTML to the client.

  3. Static Typing vs Dynamic Typing: Go has a strong static typing system, which means that variable types are checked at compile time. This helps catch errors early on and promotes code reliability. Next.js, being built on top of React, follows a dynamic typing system where types can be inferred at runtime, allowing for more flexibility but potentially leading to runtime errors.

  4. Deployment and Hosting: Go applications can be easily deployed using a variety of tools and platforms, including cloud providers like AWS and Google Cloud. Next.js, on the other hand, is typically deployed on Node.js hosting platforms like Heroku or Vercel, which provide easy deployment and scaling for server-side rendered React applications.

  5. Performance: Go is known for its excellent performance due to its compiled nature and efficient runtime. It is highly optimized for speed and memory usage, making it suitable for building high-performance backend services and applications. Next.js, being built on top of React and using server-side rendering, may introduce some performance overhead due to the additional server-side rendering process.

  6. Developer Community and Ecosystem: Go has a growing and active developer community, with a wide range of libraries and resources available for developers. Next.js, being a framework built on top of React, benefits from the vast React ecosystem, including a large number of third-party libraries and resources.

In Summary, Go and Next.js differ in their purpose, language vs framework, concurrency vs SSR focus, typing systems, deployment and hosting options, performance characteristics, and the size and maturity of their respective developer communities and ecosystems.

Advice on Golang and Next.js
Needs advice
on
GolangGolangPythonPython
and
React NativeReact Native

I've been juggling with an app idea and am clueless about how to build it.

A little about the app:

  • Social network type app ,
  • Users can create different directories, in those directories post images and/or text that'll be shared on a public dashboard .

Directory creation is the main point of this app. Besides there'll be rooms(groups),chatting system, search operations similar to instagram,push notifications

I have two options:

  1. React Native, Python, AWS stack or
  2. Flutter, Go ( I don't know what stack or tools to use)
See more
Replies (6)
George Krachtopoulos
Recommends
on
PythonPython

Currently, I have decided to use Python and JavaScript (especially React and Node.js) for any of my projects. Well, I have used Python with Django for a lot of things, and I would certainly recommend Django to anyone, due to its high secure authentication and authorization inbuilt system, a ready to use admin platform, template tags, and many more. Well, I guess that you would like to use Python to create the backend of your application, an API, and React Native for the frontend. Python and JavaScript (React) are on the trend these days and have a huge community, so there are many resources, tutorials, great documentation. I have not really heard anyone using Flutter and Go for applications these days, so I would not recommend it to you, it would make your life much more difficult.

Hope that helps, and good luck with your project!

See more
Tony Chong
Principal & Founder at Airwave Tech · | 6 upvotes · 344.2K views
Recommends
on
FlutterFlutter

I'm typically agnostic when it comes to picking languages. Whatever gets the job done, but, in this case, to figure out what's involved with what you want to do, it's going to be much more than just picking programming languages for your client and backend interfaces.

So, I'm recommending you use Flutter+Firebase as a way to figure out what you need to get done. It supports both iOS and Android out of the box, introduces you to a bunch of components you will need to think about in the future (whether you stick with Firebase or not), and the key here, is that there are tons of articles, youtube videos, and other courses you can take to pick it up pretty quickly. You could even clone an Instagram knockoff from github. Guess what else, it's all free. You might not need to worry as much about the backend since there are client libraries for Flutter/Dart for Firebase.

Some might have different opinions, and like I said, I'm usually agnostic, but in this case, you have a lot to consider. Where are you going to store the data? Are people going to need to login? Will there but customized settings the will save even if I close the app? Yeah, that's just a few questions.

Those are just a few. Lots to consider, so if you want to get something in your hand as soon as possible, try a search for flutter + firebase + chat + Instagram or something like that and have a look.

See more
Recommends
on
React NativeReact Native

If this is for learning about how to design the system, then pick the tools are you are confortable with.

Often times, I get stuck picking the tools (and trying to learn about them) vs actually trying to design the system itself.

If you are familiar with React (check out Expo) and Django then I would recommend going with that.

For deploying your backend, I would go with a provider like https://zeit.co/ that automates a whole bunch of deployment steps with their cli tools that you might have to do with AWS.

See more
Emmanuel Kayode
Software Engineer at Teamapt Ltd · | 3 upvotes · 341K views
Recommends
on
GolangGolang

The above listed tools will do the job, you just need to figure out your architecture(e.g models). How they will all connect. Then you can use a tool you are comfortable with to implement them.

See more
Charles Nelson
Recommends
on
PythonPython

What you need to take a look at is Apache OpenMeetings. It already does what you want, it is open source and well documented and only requires that you design the UI and plumbing required to serve you application.

See more
Adam Ha
Recommends
on
React NativeReact Native

Let's select right tool you feel you are good at. And selecting tools are used by large community to solve your stuck if encounter

See more
Needs advice
on
GolangGolangJavaScriptJavaScript
and
PythonPython

We are converting AWS Lambdas from Java due to excessive cold start times. Usage: These lambdas handle XML and JSON payloads, they use s3, API Gateway, RDS, DynamoDB, and external API's. Most of our developers are only experienced in java. These three languages (Go, Node.js, and Python) were discussed, but no consensus has been reached yet.

See more
Replies (5)
Jordan Gregory
Cloud Operations Manager at Plainsight AI · | 4 upvotes · 392.6K views
Recommends
on
GolangGolang

I've worked with all three of these languages and also with Java developers converting to these languages and far and away Go is the easier one to convert to. With the improved cold-start times and the ease of conversion for a Java developer, it is a no-brainer for me.

The hardest part of the conversion though is going to be the lack of traditional Classes so you have to be mindful of that, but Go Structs and interfaces tend to make up for what is lost there.

Full Disclosure: I'm a 95% Go convert (from Python) at this point in time.

See more
Ahmet Yildirim
Software Engineering Consultant at UXCraft Sweden AB · | 3 upvotes · 392.6K views
Recommends
on
GolangGolang

Although I am primarily a Javascript developer myself, I used Go to build AWS lambda in a similar scenario to yours. AWS libraries felt better integrated on the Go side, I believe due to the language itself (e.g. how JSON objects are handled in go). Besides that performance of Go is much superior. But on the cons side; community is far smaller around Go, compared to Javascript. That is easy notice if you look at repos of community-maintained libraries for Go. That can feel a bit unreliable.

See more
Jason Scheirer
Senior Software Engineer at EasyPost · | 2 upvotes · 392.2K views
Recommends
on
GolangGolang

Go would provide the easiest transition for Java programmers -- its IDE/tooling is second to none (just install Goland) and the deploy/distribution story is extremely clean and lends itself to work well in lambda: single, static binaries with quick startup. No need to set up a full environment or package dependencies on your lambda AMIs, just copy a file.

See more
Russel Werner
Lead Engineer at StackShare · | 1 upvotes · 392.1K views
Recommends
on
JavaScriptJavaScript
at

If you want to prioritise language familiarity, JavaScript is more like Java than the other choices; and it can be optimised to run very fast. However if you need really fast cold-start times, you can't beat Go since it's compiled. There are other things to consider, such as the massive amount of community packages and help/documentation in the JavaScript ecosystem. Go is newer but seems to be quite popular if you need something that runs fast in a single binary.

See more
Paul Whittemore
Developer and Owner at Appurist Software · | 1 upvotes · 392.2K views
Recommends
on
GolangGolang

I was initially going to suggest JavaScript due to the smaller size needs of AWS Lambdas code and the larger range of libraries and community available (and to avoid Python for this). But I have to agree with the recommendations and rationale of @ayildirim above and I think you should choose any reasonable language that is low-overhead, fast startup, and best supported by AWS Lambda, and that is probably Go. I don't think you are likely to go wrong with that, while you can potentially with the others.

So I'd agree, on the strength of AWS Lambda support and the solid performance of Go, it seems like your best choice here for Lambdas (and I'm going to need to consider that myself going forward... pardon the pun).

See more
Needs advice
on
GolangGolangNode.jsNode.js
and
ScalaScala

Finding the best server-side tool for building a personal information organizer that focuses on performance, simplicity, and scalability.

performance and scalability get a prototype going fast by keeping codebase simple find hosting that is affordable and scales well (Java/Scala-based ones might not be affordable)

See more
Replies (1)
David Annez
VP Product at loveholidays · | 5 upvotes · 292.8K views
Recommends
on
Node.jsNode.js
at

I've picked Node.js here but honestly it's a toss up between that and Go around this. It really depends on your background and skillset around "get something going fast" for one of these languages. Based on not knowing that I've suggested Node because it can be easier to prototype quickly and built right is performant enough. The scaffolding provided around Node.js services (Koa, Restify, NestJS) means you can get up and running pretty easily. It's important to note that the tooling surrounding this is good also, such as tracing, metrics et al (important when you're building production ready services).

You'll get more scalability and perf from go, but balancing them out I would say that you'll get pretty far with a well built Node.JS service (our entire site with over 1.5k requests/m scales easily and holds it's own with 4 pods in production.

Without knowing the scale you are building for and the systems you are using around it it's hard to say for certain this is the right route.

See more
Decisions about Golang and Next.js
Lucas Litton
Founder & CEO at Macombey · | 13 upvotes · 544.1K views

Next.js is probably the most enjoyable React framework our team could have picked. The development is an extremely smooth process, the file structure is beautiful and organized, and the speed is no joke. Our work with Next.js comes out much faster than if it was built on pure React or frameworks alike. We were previously developing all of our projects in Meteor before making the switch. We left Meteor due to the slow compiler and website speed. We deploy all of our Next.js projects on Vercel.

See more
William Artero
Senior Platform Engineer at ABN AMRO · | 6 upvotes · 369.6K views

Telegram Messenger has frameworks for most known languages, which makes easier for anyone to integrate with them. I started with Golang and soon found that those frameworks are not up to date, not to mention my experience testing on Golang is also mixed due to how their testing tool works. The natural runner-up was JS, which I'm ditching in favor of TS to make a strongly typed code, proper tests and documentation for broader usage. TypeScript allows fast prototyping and can prevent problems during code phase, given that your IDE of choice has support for a language server, and build phase. Pairing it with lint tools also allows honing code before it even hits the repositories.

See more
awesomebanana2018

1. Type safety and inferred types

Go is type safe by default, which allows you to right more reliable code and have better developer tooling, plus with the := operator, you can initialize a variable without having to define its type because it automatically gets its type from the initial value.

2. Performance

There isn't much to be said here, but on most counts go beats both Python and Node.js on performance.

3. Documentation

I'm not talking about the Go language itself, although it does have good docs. I'm talking about Go's auto generated documentation tool, which allows people to document their packages easily and works amazingly with Go's type system.

4. Compiles to binary

If you are making a local program for somebody and they don't want to download the Go compiler, you can make Go into a native binary.

5. Built for the web

Go has built in Http libraries to rival Express.js and has a HTML/Text templating system.

6. Great Concurrency

Go utilizes Goroutines to help developers utilize multiple threads easily.

Conclusion

Go is an excellent choice for any system code, especially http networking and web backends.

See more
Erik Ralston
Chief Architect at LiveTiles · | 14 upvotes · 551.1K views

C# and .Net were obvious choices for us at LiveTiles given our investment in the Microsoft ecosystem. It enabled us to harness of the .Net framework to build ASP.Net MVC, WebAPI, and Serverless applications very easily. Coupled with the high productivity of Visual Studio, it's the native tongue of Microsoft technology.

See more

Hey guys,

My backend set up is Prisma / GraphQL-Yoga at the moment, and I love it. It's so intuitive to learn and is really neat on the frontend too, however, there were a few gotchas when I was learning! Especially around understanding how it all pieces together (the stack). There isn't a great deal of information out there on exactly how to put into production my set up, which is a backend set up on a Digital Ocean droplet with Prisma/GraphQL Yoga in a Docker Container using Next & Apollo Client on the frontend somewhere else. It's such a niche subject, so I bet only a few hundred people have got a website with this stack in production. Anyway, I wrote a blog post to help those who might need help understanding it. Here it is, hope it helps!

See more
Brent Maxwell

Node.js has been growing in popularity, and the ability to access the global pool of Javascript developers is great. There is a decreased amount of effort for people to work across the frontend and backend, and the language itself is easy and works well for many common use cases.

Go was the other serious candidate, but it just hasn't been implemented in as many Production systems yet, and the best Go engineers I've known have been hackers, whereas we're building a robust analytics platform that requires more caution. Type safety is easily added with TypeScript, and NPM is awesomely handy.

See more
Chose
GolangGolang
over
JavaJava

When developing a new blockchain, we as a team chose Go lang over Java and other candidates, due to Go being (a) natively suited to concurrency - there are primitives in the language itself (goroutines, channels) that really help with reasoning about concurrency (b) super fast - build time, running, testing are all much faster that Java, this gives a far superior developer experience (c) shorter and stricter than Java - code is much shorter (less verbose), and there is usually one good way to do things, and even the code formatter that is bundled with Go is very opinionated - over a short time this makes reading other people's code far smoother than having to deal with different styles.

You should be aware that Go presently (v1.13) lacks Generics.

See more
Roman Glushko
Machine Learning, Software Engineering and Life · | 3 upvotes · 341.7K views

I chose Golang as a language to write Tango because it's super easy to get started with. I also considered Rust, but learning curve of it is much higher than in Golang. I felt like I would need to spend an endless amount of time to even get the hello world app working in Rust. While easy to learn, Golang still shows good performance, multithreading out of the box and fun to implement.

I also could choose PHP and create a phar-based tool, but I was not sure that it would be a good choice as I want to scale to be able to process Gbs of access log data

See more
Ítalo Vietro
VP Platform Engineering at UrbanSportsClub · | 7 upvotes · 225.6K views

We decided to use python to write our ETLs and import them into metabase via a lambda. Before python we tried using Go, but overall go was way more verbose than Python when writing the ETLs. Go also had some issues managing memory when using the S3 upload manager library. This was a deal breaker for us that made us switch to Python.

In the end the solution was much cleaner and maintainable.

See more

This language, even in early dev stages is to put it simply, fantastic! It is small, fast, and types a lot like go. It feels complete even though coming out less than a year ago in first early stages. I love it, it works anywhere and everywhere plus making binaries and GUI applications is just super easy!

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Golang
Pros of Next.js
  • 548
    High-performance
  • 395
    Simple, minimal syntax
  • 363
    Fun to write
  • 301
    Easy concurrency support via goroutines
  • 273
    Fast compilation times
  • 193
    Goroutines
  • 180
    Statically linked binaries that are simple to deploy
  • 150
    Simple compile build/run procedures
  • 136
    Backed by google
  • 136
    Great community
  • 53
    Garbage collection built-in
  • 45
    Built-in Testing
  • 44
    Excellent tools - gofmt, godoc etc
  • 39
    Elegant and concise like Python, fast like C
  • 37
    Awesome to Develop
  • 26
    Used for Docker
  • 25
    Flexible interface system
  • 24
    Deploy as executable
  • 24
    Great concurrency pattern
  • 20
    Open-source Integration
  • 18
    Easy to read
  • 17
    Fun to write and so many feature out of the box
  • 16
    Go is God
  • 14
    Easy to deploy
  • 14
    Powerful and simple
  • 14
    Its Simple and Heavy duty
  • 13
    Best language for concurrency
  • 13
    Concurrency
  • 11
    Rich standard library
  • 11
    Safe GOTOs
  • 10
    Clean code, high performance
  • 10
    Easy setup
  • 9
    High performance
  • 9
    Simplicity, Concurrency, Performance
  • 8
    Hassle free deployment
  • 8
    Single binary avoids library dependency issues
  • 7
    Gofmt
  • 7
    Cross compiling
  • 7
    Simple, powerful, and great performance
  • 7
    Used by Giants of the industry
  • 6
    Garbage Collection
  • 5
    Very sophisticated syntax
  • 5
    Excellent tooling
  • 5
    WYSIWYG
  • 4
    Keep it simple and stupid
  • 4
    Widely used
  • 4
    Kubernetes written on Go
  • 2
    No generics
  • 1
    Operator goto
  • 1
    Looks not fancy, but promoting pragmatic idioms
  • 49
    Automatic server rendering and code splitting
  • 43
    Built with React
  • 33
    Easy setup
  • 26
    TypeScript
  • 24
    Universal JavaScript
  • 22
    Zero setup
  • 21
    Static site generator
  • 12
    Simple deployment
  • 12
    Just JavaScript
  • 12
    Incremental static regeneration
  • 10
    Filesystem as an API
  • 10
    Frictionless development
  • 9
    Everything is a function
  • 9
    Well Documented
  • 8
    Has many examples and integrations
  • 8
    Testing
  • 7
    Isomorphic React applications
  • 4
    File based routing + hooks built in
  • 2
    Deployment
  • 1
    SEO

Sign up to add or upvote prosMake informed product decisions

Cons of Golang
Cons of Next.js
  • 42
    You waste time in plumbing code catching errors
  • 25
    Verbose
  • 23
    Packages and their path dependencies are braindead
  • 16
    Google's documentations aren't beginer friendly
  • 15
    Dependency management when working on multiple projects
  • 10
    Automatic garbage collection overheads
  • 8
    Uncommon syntax
  • 7
    Type system is lacking (no generics, etc)
  • 5
    Collection framework is lacking (list, set, map)
  • 3
    Best programming language
  • 1
    A failed experiment to combine c and python
  • 9
    Structure is weak compared to Angular(2+)

Sign up to add or upvote consMake informed product decisions

What is Golang?

Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.

What is Next.js?

Next.js is a minimalistic framework for server-rendered React applications.

Need advice about which tool to choose?Ask the StackShare community!

Jobs that mention Golang and Next.js as a desired skillset
What companies use Golang?
What companies use Next.js?
See which teams inside your own company are using Golang or Next.js.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Golang?
What tools integrate with Next.js?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Dec 8 2020 at 5:50PM

DigitalOcean

GitHubMySQLPostgreSQL+11
2
2355
Nov 20 2019 at 3:38AM

OneSignal

PostgreSQLRedisRuby+8
9
4639
Oct 3 2019 at 7:13PM

Ably Realtime

JavaScriptPythonNode.js+8
5
3822
Jun 26 2018 at 3:26AM

Twilio SendGrid

GitHubDockerKafka+10
11
9945
What are some alternatives to Golang and Next.js?
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
Rust
Rust is a systems programming language that combines strong compile-time correctness guarantees with fast performance. It improves upon the ideas of other systems languages like C++ by providing guaranteed memory safety (no crashes, no data races) and complete control over the lifecycle of memory.
Java
Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!
Node.js
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
JavaScript
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
See all alternatives