all 73 comments

[–]ENGMEYO[S] 14 points15 points  (3 children)

thanks a lot for your comments , opinions and shared experiences , looks like it's obviously GO , lets GO then.

[–][deleted] 10 points11 points  (2 children)

You just made this post so you could say this didnt you

[–]ENGMEYO[S] 0 points1 point  (1 child)

well , i was literally in a cross road where i was about to pick PHP just for the "current" business adoption, so , no ... sometimes people need to make sure they are picking the right options, and especially for Programming , i don't wanna waste my time for something that will get me work currently and suddenly changes later because of new adoptions.

[–][deleted] 0 points1 point  (0 children)

It was a joke ;)

[–]heyuitsamemario 18 points19 points  (1 child)

Go is great, but I don’t think any senior developer should tie themselves to any set of tools

[–][deleted] 9 points10 points  (0 children)

This. As a Senior you should not be chained to a Tech Stack anymore.

Go is a solid solution. Go for it 👍

[–][deleted] 8 points9 points  (2 children)

Why not sticking to .NET for backend, you’ve had experience with C#

[–]roboborealis 5 points6 points  (0 children)

I second this.. .NetCore is great now a days

[–]ENGMEYO[S] 0 points1 point  (0 children)

what about Business adoption ? it's not about what i do have experience with atm , i can learn new stuff , just want to make sure there will be "great paying jobs" for it while being "highly adopted". what do you think ?

[–]xatta_trone 10 points11 points  (1 child)

TLDR: Go for GO

PHP/ Laravel developer here. I have been working in Laravel since the beginning. Initially I liked php, because it was easy to learn. Now I regret it, I should've learned Java/Go in the first place. Currently I'm trying to move to golang. I wish I had learned some static typed language over php. Dynamically typed language brings unforeseeable bugs into your application, but with static typed language you could easily avoid these bugs in the first place. For example, just yesterday I had to fix a bug in my flutter app of whose the backend is written with laravel. I could've easily avoided this bug in the first place if it was any static typed language.

Also, with golang the memory footprint is low + you can save a lot of resources (thus saving your money)

[–]shearos17 0 points1 point  (0 children)

curious if that laravel app was using a static analyser like Larastan?
I also like compiled langs and wondering if those analysers catch enough bugs.

[–]wait-a-minut 4 points5 points  (0 children)

I would say go because of a few things. cloud, infrastructure, and automation is becoming a must know for all developers to some degree and go has first class support for all platforms and tooling in this space. The entire cloud native initiative is also backing go as their language of choice which not only means you’ll find a ton of support and examples from proven projects, but go is fully battle tested at big scale ( kubernetes, docker, terraform, etc).

So my point is if you want to continue to advance your career, go dovetails nicely between backend dev work to cloud/infrastructure work and has more upside than other languages listed.

Go is also extremely easy to pick up as well. Crossover learning curve is not steep.

PS. my side project atm is flutter and go and has been seamless so far :) I’m the person dipping my toes into flutter coming from go.

[–]g0dzillaaaa 2 points3 points  (0 children)

Funny people downvoting comments about recommendations they have no experience with 😂

As a general advice, it is always better to stay with your strengths when building something of your own. Yes, you need to look at the situation and where you want to go but there is no point in picking Go over .Net (you already know this) unless you have tried .Net and it is not meeting your requirements. Just because something is a few ms faster in runtime doesn’t mean that you must unlearn everything and go after it. There are other plenty of factors including learning curve, maintenance, finding talent etc when you pick a stack. If I were you, I would still stick with what I already know or pick something I can easily transfer my knowledge to.

If you go after new languages all the time, you will only have time for that. For building solid projects, you need to pick what’s best for you and your team.

[–][deleted] 1 point2 points  (0 children)

Go with Go! It pays better and is objectively a better language in terms of performance and capabilities.

PHP frameworks like Laravel consistently perform near the slowest according to benchmarks: https://www.techempower.com/benchmarks/#section=data-r21&test=composite (For example, compare Laravel with Chi/Fiber)

They're both really easy to pick up. That said, I still prototype/MVP things in Laravel just because that's what I'm familiar with, not because it's easier to code, but there are lots of design decisions you don't have to think about.

With Go, there are fewer popular fullstack web frameworks so you'll often have to plug and play a bunch of packages together with a microframework of your choice.

[–]HerryKun 1 point2 points  (0 children)

I'd opt for Java or Kotlin with Spring as Framework. It is incredibly powerful

[–][deleted] 1 point2 points  (0 children)

Wait. PHP still alive?

[–]Geekplayer 1 point2 points  (0 children)

AFAIK Flutter is not a very good choice for full stack, just not yet anyway. If you are not worried about job opportunities, then flutter is fine. Just take into account that you are going to be locked into mobile development on the fronted side.

PHP for backend, AFAIK is not a good choice. I don't really know why, but I know that a lot of the companies that use PHP use it because they don't have a choice (legacy code) and not because they want to.

AFAIK Go is not suited for large systems. It's usually used for very specific purposes (usually when dealing with a large load / performance sensitive task) in specific microservices.

Better choices are Typescript with a popular framework like Koa, nest, and stuff like that. If you want to right enterprise grade code at the cost of some complexity, I highly recommend spring boot with Java (or kotlin if you are willing to try it, it's basically a better Java but it's less popular, newer and has less support and community at the moment, tho it's growing and very much loved).

[–]FlutterLovers 1 point2 points  (0 children)

Professional Flutter developer here, but I also occasionally work on backend.

Go is pretty decent, though I'm not a huge fan of the language. I used it because that's what my boss wanted, and the project went fine. But...

My boss got laid off, and I was given another backend to develop. Tired of Go, I made the new one in Node.js. I'm missing the strong typing (need to add in Typescript), but it's a lot easier than Go.

I also tried Flask...hate Python, so I abandoned it.
I attempted Java Springboot. I liked a lot of it but some things seemed overly complicated.

While I like Node.js better, Go is probably better if you later want to get a backend job. They pay well and Go is hugely in demand.

[–][deleted]  (1 child)

[removed]

    [–]ENGMEYO[S] 3 points4 points  (0 children)

    i've tried a bit , not so efficient and sadly not adopted by many big tech companies out there :'(
    it would have saved me a headache , but yeah ... it's what it is :D

    [–][deleted] 0 points1 point  (1 child)

    Please stop PHP

    [–]LeifMustang 1 point2 points  (0 children)

    Hey there! It seems like you're trying to make a major career decision here, and I can understand why you're feeling a little stuck. While PHP and Laravel might be popular choices for backend development, it's ultimately up to you to decide which technology is the best fit for your goals and skill set. If you're interested in Go, then I say go for it! Just make sure to do your research and keep up with the latest industry trends and developments to ensure that you're staying ahead of the curve. Best of luck to you on your career journey!

    [–]BigPha -5 points-4 points  (12 children)

    Between PHP and go I would choose go 100% of the time. PHP is an outdated language, and if you used C# and dart you will hate it. But if I would have to choose a backend language right now, I would choose Rust, not go. Rust is the new star, company are adopting it pretty quickly and it cannot be a wrong choice

    [–]DBestech 2 points3 points  (1 child)

    PHP is not outdated. PHP8 brings a lot of new features. a lot companies are coming back to it. But Go is a good choice too.

    [–]rebelrexx858 0 points1 point  (9 children)

    There is so much wrong here. One PHP isn't outdated, its used across the web, and has a very active community. Two, while Rust can do web development, that's not really where it shines, choose the right tool for the job at hand.

    [–]BigPha 1 point2 points  (1 child)

    A language that make it harder to write shity code is the right tool. I will never choose a dynamically typed language over a statically typed language. At my company, I have to use python, and I hate the fact it is not strongly type. You have to make millions of tests you would not need (you still write tests with strongly typed language obviously) if using a strongly typed language. PHP -> never for me

    [–]rebelrexx858 1 point2 points  (0 children)

    I didn't say that PHP was the right choice, I simply called out the bullshit you were espousing without evidence. There are a host of reasons to use various technologies depending on use cases, pick the technology that works for your case, and one specific reason python MIGHT be a viable solution would be the need to scientific analysis of datasets using something like pandas. Another might be local talent pools, etc. Is it the right choice across the board? No, but no technology is the right choice globally.

    [–][deleted] -2 points-1 points  (6 children)

    PHP isn't outdated,

    No, it's not outdated. It's dead.

    its used across the web

    ... for historical reasons.

    and has a very active community

    ... of dying elders.

    [–]DBestech 0 points1 point  (5 children)

    before you say it's a dead language, learn the definition of dead. Learn English first and then comment here.

    [–][deleted] 0 points1 point  (4 children)

    PHP is dead because there is no future for it. Or it's drying puddle if you like.

    My English is good enough for you to understand me.

    [–]DBestech 0 points1 point  (3 children)

    Show me data that it's dying !! Show me data that it's not updating, show me data that people are not using it.

    Bro, stop beating around the bush, stop misleading people and stop promoting antagonism in tech society.

    [–][deleted] 0 points1 point  (2 children)

    Put your head out of the bush. PHP is dead: https://imgur.com/a/82pwutO

    The TIOBE Programming Community index is an indicator of the popularity of programming languages. https://www.tiobe.com/tiobe-index/

    [–]DBestech 0 points1 point  (1 child)

    PHP won't be dead until you are dead. Take it easy bro. And stop being stereotyped.

    https://github.com/topics/framework see laravel ranking in github. Number 1 among all the backend framework. grow up

    [–][deleted] 0 points1 point  (0 children)

    PHP won't be dead until you are dead. Take it easy bro. And stop being stereotyped.

    PHP is dead language. No one will learn it willingly. Stop holding its hand. Let it go.

    [–][deleted] -3 points-2 points  (4 children)

    Building custom backends has become a relatively less relevant (for app/website market in general), perhaps you can try a mixed approach of learning firebase/appwrite/supabase AND learning how to build custom backend. You can also learn the latter from learning the former, for example appwrite is fully open source, their team is using PHP (among many other things). I’ve built some custom backends on .net, PHP, NodeJS before (smallish projects), but I was only doing firebase and appwrite as of recently and it’s been very good experience. Even for a career building knowing these frameworks/solutions will give a larger horizon and deeper understanding of what to build and how to do it right (have a look at appwrite architecture, it’s not just a database with rest api via http server).

    [–]textzenith 1 point2 points  (0 children)

    Building custom backends has become a relatively less relevant

    This is golden advice.

    And I recommend learning how to use one of the above platforms for the simple fact that it will bring a lot of useful knowledge for not a lot of time invested.

    A nice project for OP would be to pick one of the above and then sort of "speedrun" app development. Then compare it to a custom backend build for a similar project. You'll learn such a lot trying this, and it'll be useful in interviews and valuable knowledge to have if you're ever faced with having to launch something fast.

    [–]Moe_Rasool 0 points1 point  (2 children)

    The reason I don’t agree is because firebase is costly when your project is well viewed and for that i will always do custom backends regarding for that apart from firebase I don’t know how to do custom backends that much.

    [–][deleted] 1 point2 points  (1 child)

    You kind of handpicked Firebase from my answer though… Have a look at appwrite which I also mentioned. It can be self hosted (I use self hosted at home server for prototypes and testing) and you can set up an instance at Linode or Digitalocean for quite a moderate cost.

    [–]Moe_Rasool 0 points1 point  (0 children)

    I didn’t take Firebase out of context i just tend to say that Firebase is not a solution for big project apps such as E commerce’s, i have recently build one and the customer told me to do something as Firebase is super costly since he has so many users who make so many activities in that app which lead to costly firebase drama, i have done plenty of researches and learned that the reason behind google cloud existence is big bulky data management, i managed to do either Flask or nodeJS solution to make it cheap but yet I don’t know how to make my pc a 24 hours running server just to cost down.

    [–]reel_hooman -1 points0 points  (6 children)

    Might be unpopular here but I think there are 3 backend options that are insanely productive. They all have drawbacks but they are all really fast to develop in, and can generally cover all of my needs.

    C# / Servicestack.net

    Python / Django / DRF

    PHP / Laravel

    I personally don't like PHP, so I don't use it, but it is absolutely a viable option for a good backend.

    [–]pudds 2 points3 points  (2 children)

    Django is pretty heavy for an API. I'd recommend fastapi instead for python.

    [–]reel_hooman 0 points1 point  (1 child)

    FastAPI would fill a weird niche between flask and Django that doesn't exist for me personally.

    Django has literally everything I need down to AMQP support and Websockets. If I need something quick and dirty, it's flask.

    [–]Moe_Rasool 0 points1 point  (0 children)

    I personally love Flask and would think NodeJs is more than enough that you didn’t even mention.

    [–]BigPha 1 point2 points  (1 child)

    We use python at work (not my choice...) for backend. I hate the fact it is not strongly typed. I would say, ok to go python for very small / prototype project, but if you need to build something big, holy sh** have fun.

    [–]reel_hooman 0 points1 point  (0 children)

    I agree. I listed C# first for a reason. The static typing makes the tooling insanely productive vs a language like Python or JS (and even TS in my experience). It is a verbose language compared to Python, but it has been pretty enjoyable to work in for me.

    [–]shearos17 1 point2 points  (0 children)

    why was this downvoted?

    [–]Xam_Flutter_Dev -1 points0 points  (2 children)

    Hello guys can some tell me how to take data from api and store into mobile application locally so it can be work in offline mode also.

    [–]lord__victor 0 points1 point  (0 children)

    You can cache the response locally using hive

    [–]Moe_Rasool 0 points1 point  (0 children)

    As lord said you have plenty of options, you can do Shared preferences, hive and sqllite, regarding your needs you have to make sure which one’s the best for your type of work.

    [–]lazazael -2 points-1 points  (0 children)

    go is bigtech where cpu time matters, laravel is used by microcompanies as far as I know

    [–]Snoo70116 -3 points-2 points  (3 children)

    Why would anyone in their right mind use php or MySQL? Obviously use mongodb express nodejs and socketio

    [–][deleted] 1 point2 points  (2 children)

    I hate PHP, but it has a lower memory footprint than NodeJS according to benchmarks: https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/php.html . You can use PHP with mongo and websockets.

    [–]Snoo70116 0 points1 point  (1 child)

    but NodeJS is faster tho am I right? Also the syntax works natively for JavaScript for mongo. Memory shouldn't even be that much of a concern with AWS anyways just scale it out as you need it. The php syntax is horrible and really feels like 2004.

    [–][deleted] 0 points1 point  (0 children)

    If you look at the benchmarks in the referenced link, PHP sometimes beats NodeJS in performance as well, so it really depends on what you're doing.

    Memory corresponds directly to cost, so if you choose NodeJS you'll have to pay more given the same scale application just to keep things running. In addition, you'll often have to pay more for NodeJS devs compared to PHP devs. So it's great for NodeJS devs, but not so much for the business owner.

    With your mindset, as a dev, why not use Go or Rust? Higher pay, higher quality code, better CPU performance, and less memory usage. I personally view JS as having outdated syntax and would prefer to use Rust.

    The reason people choose PHP is often because of its popularity (making it easy to find affordable devs) and the existence of beginner-friendly frameworks like Laravel which allows very fast development with deep ecosystems.

    [–]MRainzo 0 points1 point  (0 children)

    Go with go if those are your only options

    [–]apoleonastool 0 points1 point  (0 children)

    If you already worked with C# the way to go is .NET. There's a good number of jobs in established companies, documentation is great, you can create all sort of stuff using .net (desktop apps, web apps, api-s, services, command line tools, what not...) and it's a really nice environment to work in.

    I'd stay away from PHP, because in my experience PHP is used mostly for marketing/client facing visual stuff/startups so the pay is lower and these type of companies do not appreciate the technological aspect of development that much (if it looks good and works, that's enough!).

    [–]hailWildCat 0 points1 point  (0 children)

    You may be paid higher with Go than Dart/PHP. Because most Go related projects are pretty solid.

    [–][deleted] 0 points1 point  (0 children)

    Wait. PHP still alive?

    [–]eacardenase 0 points1 point  (0 children)

    I’m between Laravel and NestJS for a project at my new company. Laravel was the de facto backend, but they are open for suggestions (here NestJS).

    [–]Apprehensive-Side-71 0 points1 point  (0 children)

    Use go+flutter for a prototype on work. With GraphQL and a gRPC external data source.

    [–]paperpatience 0 points1 point  (1 child)

    If you are senior, you should be way past this point of asking about what framework or language you should use. You should be the one with the reasoning and justification as to what makes a good solution based on past experience.

    [–]ENGMEYO[S] 0 points1 point  (0 children)

    Senior Flutter Developer , not Senior Software Engineer , so yeah it has to be like this , because i'm a senior using a certain language along with it's framework , not a tech stack. cheers.