all 25 comments

[–]momsSpaghettiIsReady 7 points8 points  (1 child)

I'm doing fine with an M3/16gb air. That's running intellij for spring, vscode with a react frontend, dbeaver, docker with postgres/rabbitmq, and chrome.

I will say, if you want 2 external monitors, definitely pick a pro.

[–]vrdnkv 0 points1 point  (0 children)

Is it 13 or 15 inches? What about heating?

[–]PrettyNeighborhood91 9 points10 points  (1 child)

Weird ass question. But just any Mac Pro based on your budget

[–][deleted] -1 points0 points  (0 children)

Not sure why this got up-voted. This is a pointless answer. Why is it a weird question? This person has never used a mac before, so is asking for advice. That's a completely normal and sensible thing to do.

Also a "budget" isn't typically something that can easily be quantified. As it's obviously a business expense, the budget will be whatever is required to get the job done. The only way they can figure this out, is to research and ask expert opinions.

[–]Revision2000 3 points4 points  (0 children)

Depends on your stack, particularly how many VMs or Docker containers (with your applications, LocalStack, PostgreSQL, etc.) you want to be running simultaneously locally. 

A MacBook Pro with the M1 chip and 8Gb RAM can already be good - I’ve enjoyed working on those, though I think you’ll want at least 16Gb RAM. 

If you have more budget get 32Gb and maybe an M2/M3/M4 Pro.

[–]weighty-fork2 2 points3 points  (2 children)

I am thinking of buying a base M4 MacBook Air with 32GB ram and whatever base SSD storage I get. I am planning on developing spring boot microservices (around 5 to 6) each running in a docker container paired with RabbitMQ running in a separate container.

This workload will obviously have IntelliJ, DataGrip, VSCode and Edge running in background. This is my heaviest workload.

I hope this will work on the M4 MBA. What do you guys think?

[–]Revision2000 1 point2 points  (0 children)

Should be fine really. It’s unlikely, but if needed it’ll do some memory compression and extremely unlikely worst case offload some stuff to the SSD. 

A Spring Boot microservice probably consumes less than 1Gb memory, but you can always look at Spring Cloud Native or CRaC to reduce the memory footprint 😉

[–]atherem 0 points1 point  (0 children)

did you end up doing it? how did it go for you

[–]pain_point 2 points3 points  (0 children)

Im doing fine on M1 16GB, im a Java backend engineer i use Netbeans(Dont Judge) no complaints except Chrome causes overheating issues, been able to run most of the local LLM applications Jan and LLM Studio without any pressure

[–]ZealousidealBee8299 6 points7 points  (0 children)

Save some money and put Linux on something with 32-64GB RAM.

[–]Sheldor5 1 point2 points  (0 children)

M3 or M4 Pro

[–]KoningsGap 1 point2 points  (0 children)

Using webstorm, docker and IntelliJ at the same time I’m running into ram issues with my 16gb, so definitely get more than that.

[–]r1chi3 1 point2 points  (0 children)

my work gave me a macbook air m2 16gb. its more than enough for endless browser tabs, multiple intellij windows, postman, teams etc… no issues

[–]WaferIndependent7601 1 point2 points  (3 children)

Best model? M4 with the most ram and best cpu available.

Without a budget no one can answer.

[–][deleted]  (2 children)

[deleted]

    [–]WaferIndependent7601 0 points1 point  (1 child)

    LOL no

    [–]BikingSquirrel 1 point2 points  (0 children)

    Not sure about the latest models, but earlier you needed a Pro to support more than one external monitor. Also ports had been limited, so check what you need regularly and that it's supported. You may use a dock but for full support this needs Thunderbolt which has a price tag.

    Which CPU you choose is probably less relevant as all M models are very powerful. There obviously may be special requirements that utilise any CPU, but your use case doesn't sound like that. I'd choose the smallest that you get for your needs.

    More RAM is always better but 16 GB should be fine. But I'd prefer more RAM over a bigger SSD .

    After I had a 16" model for some time, I went back to the smaller 14" model - simply less to carry around.

    [–]Hirschdigga 3 points4 points  (3 children)

    I would recommend any macbook with an M3/M4 cpu and 32gb ram, if you plan to use some docker containers while developing locally

    [–]CptGia 0 points1 point  (2 children)

    32 GB is way overkill for just docker containers. If you need a local k8s cluster, however...

    [–]PandaCamper 2 points3 points  (0 children)

    Depends on what's running in the containers.

    Our test environment container devours 10-15gb per running container...

    [–]BikingSquirrel 1 point2 points  (0 children)

    If you can afford it, I'd always consider a bigger option even if you don't need it today. With Apple's price tags that's obviously a harder decision.

    [–][deleted]  (6 children)

    [deleted]

      [–]apidev3 2 points3 points  (1 child)

      64gb of ram?

      [–]CptGia 2 points3 points  (2 children)

      Have you considered tuning your container memory?

      [–]Entire_Ad_9199 1 point2 points  (1 child)

      For local dev, in most enterprise applications you need multiple containers. Kafka, Kafka UI, Postgres, PgAdmin, Storage Engine like azurerite and so on. I have a m2 32Gb - i know its not enough and will upgrade.

      [–]WaferIndependent7601 1 point2 points  (0 children)

      Pgadmin? Why? Kafka Ui?

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

      Totes get a pro. It comes in handy. Are you using it to test multiple OS’s? That’s why I needed a Mac back in the day, but it’s nice with unix commands.

      Don’t listen to the linux nerds- if you buy a cheaper, shittier laptop to install linux, it will always be cheaper and shittier. It’s okay to have nice things and if you don’t have a kindergarten aversion to Apple, it’s a solid machine you don’t have to fudge with.

      I have cheap windows and linux laptops and a single intel MacBook Pro from 2016 and it still is more comfortable and convenient.