- Go because it's easy and simple, facilitates collaboration , and also it's fast, scalable, powerful.
- Visual Studio Code because it has one of the most sophisticated Go language support plugins.
- Vim because it's Vim
- Git because it's Git
- Docker and Docker Compose because it's quick and easy to have reproducible builds/tests with them
- Arch Linux because Docker for Mac/Win is a disaster for the human nervous system, and Arch is the coolest Linux distro so far
- Stack Overflow because of Copy-Paste Driven Development
- JavaScript and Python when a something needs to be coded for yesterday
- PhpStorm because it saves me like 300 "Ctrl+F" key strokes a minute
- cURL because terminal all the way
Golang
Got frustrated with the complexities of heavyweight build automation/continuous integration tools like Jenkins, Concourse or Buildbot so I built my own in Go . https://gogs.blitter.com/Russtopia/bacillus. Well under 1K SLOC, no JVM or containers required. Config nearly 100% in the launch script itself.
Go is a lean, powerful language that takes a lot of cognitive load off of the developer with rich data manipulation functions and easy to use HTTP/net libs and concurrency. Combined with gopherjs this old-timey embedded programmer finally found a sensible language for both front- and back-end web development.
Our CLI was originally written Node.js with npm , 2 years ago. We have now migrated to Go !
It was something we quickly hacked together at the early beginnings of Uilicious when our focus was to move fast and iterate the product quickly. We wanted to roll out the CLI ASAP, so that users with a CI/CD can hook up their tests to their front-end deployment pipeline.
However after 2 years, with NPM dependency hell pains - We decided to migrate our CLI toolchain to Go for
- Zero deployment dependencies
- Single file distribution (and backwards compatible with NPM)
Happy with how it is : article covers the decision in much deeper details
https://dev.to/uilicious/why-we-migrated-our-cli-from-nodejs-to-golang-1ol8
I installed Gogs after a few repos I planned to use on GitHub disappeared without explanation, and after Microsoft's acquisition of same, it made me think about the over-centralization of community-developed software. A self-hosted solution that enables easy point-and-click mirroring of important repositories for my projects, both in-house and 3rd-party, ensures I won't be bitten by upstream catastrophes. (So far, Microsoft's stewardship has been fine, but always be prepared). It's also a very nice way to host one's own private repos before they're ready for prime-time on github.
Gogs is written in Go and is easy to install and configure, IMHO much more so than GitLab, though it's of course less feature-rich; the only major feature I wish Gogs had is an integrated code review tool, but the web plugin hypothes.is https://stackshare.io/hypothes-is/hypothes-is is quite suitable as a code review tool. Set up a group for each code review, and just highlight lines to add comments in pull request pages of Gogs.
When I was building ATGATT as a solo founder, I was primarily concerned about the cost required to deploy the app to production, along with speed of development. Given this requirement, I landed on Go because of its minimal memory usage, allowing me to run the entire site on the cheapest possible EC2 VM (free tier!). Even with 1000 concurrent users active at the same time, I never see more than 20% memory usage or 10% CPU usage in production. Go is also an extremely simple language to work with in terms of features and syntax, while still maintaining type safety, an important characteristic when the codebase grows in size.
In our company we have think a lot about languages that we're willing to use, there we have considering Java, Python and C++ . All of there languages are old and well developed at fact but that's not ideology of araclx. We've choose a edge technologies such as Node.js , Rust , Kotlin and Go as our programming languages which is some kind of fun. Node.js is one of biggest trends of 2019, same for Go. We want to grow in our company with growth of languages we have choose, and probably when we would choose Java that would be almost impossible because larger languages move on today's market slower, and cannot have big changes.
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:
- React Native, Python, AWS stack or
- Flutter, Go ( I don't know what stack or tools to use)
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!
I haven't used it personally but http://skulpt.org/ let's you do Python on client-side. Might be good if you're using Django back-end.
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.
Hi everyone! I just joined this site today and I need a little help...
So I'm a little bit new to webapp developing and I'm trying to think of the tech stack needed for my class project. The project idea is basically a forum system and I believe the main components are the following: (1) The front end (2) The backend (3-ish) The database
For the front end I'm thinking React, not too much difficulty here. The main issues for me are thinking about the backend and the database. I really like the idea of using Go to create the backend server, but then again I have little to no experience in Golang. Is it a good idea to give it a try for an eight week long project or default to Node.js?
Regarding the database, I'm thinking of using PostgreSQL, but I'm not sure how to setup these sorts of sql servers. I also don't know how I would host golang servers.
Please send any suggestions or tips to me, thanks!
Hi Jjx003, I will recommend you to go for Node.js with Mongodb. I have been working with the both from long time. Node.js is very good for implementing things which require fast I/O system. I have developed the whole inventory system in React Node.js MongoDB and it is working very fine even after the product database has been so heavy. Apart from this, it will be easy for you to go for one language while developing the frontend and backend i.e. Javascript.
Really appreciate your advice! I'm going to use Node.js for sure. I just have a few questions regarding MongoDB:
-Do you think this service would work well for a sort of forum-based web app? Where there's going to be a lot of text and organization?
-How high is the learning curve for MongoDB?
Thanks.
Sure mongodb will be best for forum-based web app as it is going to have so many threads and mongodb queries are dead simple to traverse all the threads. About the learning curve you have asked. You have to dig deep in the beginning. It won't take long to start the app. Just start with introduction of Javascript/Json in the beginning. Afterwards, let me know if you need any help. I try my level best to help you to the point.
I second this. You can use `mongoose` to make your MongoDB experience 10 times easier!
Yeah fast at small-medium users but if you think of scalability, i wouldn't recommend using nodejs. A single threaded runtime or language does not know what scalability is.
For an 8 week project, pick what you know. If node.js is what you know, just do that. Do you know how to use docker? If you know how to use docker, you can get any SQL database running on your machine pretty quickly without having to know how to manage the database server itself. Think of it as a database as a service for your local setup.
In production, I wouldn't pick node.js as a backend language. I'm sure it can be performant, but I personally have not seen node scale well in the backend. Go is performant. They have widely adopted libraries, SQL drivers in your case. You can build slim docker containers, and also js doesn't have type safety.
I'm about to begin working on an API, for which I plan to add GraphQL connectivity for processing data. The data processed will mainly be audio files being downloaded/uploaded with some user messaging & authentication.
I don't mind the difficulty in any service since I've used C++ (for data structures & algorithms at least) and would also say I am patient and can learn fairly quickly. My main concerns would be their performance, libraries/community, and job marketability.
Why I'm stuck between these three...
Symfony: I've programmed in PHP for back-end in a previous internship and may do so again in a few months.
Node.js: It's newer than PHP, and it's JavaScript where my front-end stack will be React and (likely) React Native.
Go: It's newer than PHP, I've heard of its good performance, and it would be nice to learn a new (growing) language.
Go with Node.js. There's something really satisfying about being able to use a single language across your entire tech stack. Especially once you integrate GraphQL, which is effectively JSON.
Your second best option is Go, but the ecosystem around Node.js is quite a bit stronger. This will play a big factor when you start building functionality like file management, messaging (especially in real-time), and authentication. The libraries and documentation are just stronger for Node.
First of all, comparing Flask - a web framework with programming language and a JavaScript runtime. So I will take your question as Flask vs Go and node.js web framework available solutions. Still it depends on your product and it's objectives, is it going to be high loaded or do you prioritize rapid development. in any case, I would not recommend flask, because python is not as good in handling concurrency as go and node.js, the only case i see flask suitable, is when you already know flask and want to develop MVP product ASAP. In other cases, go and node.js is great, both are great at handling high load and thousands of concurrent users, but if we dig in, we discover that go's "bottleneck" is still wider, it is better in handling load, and rapid development with JavaScript is easier, cheaper and more real.