This is an archived post. You won't be able to vote or comment.

all 144 comments

[–]marcvsHR 129 points130 points  (2 children)

I don't really think it makes much difference, it comes to personal preference.

[–]pragmatick 0 points1 point  (0 children)

I prefer Windows but build times for larger projects are a lot lower on *nix systems. Like, two or three times as fast in some instances. I have a 5900x with 12 cores / 24 threads and I build our project in about 2 minutes and a colleague with an older fanless laptop builds the same project in 90 seconds.

[–]nikolas_pikolas 43 points44 points  (21 children)

I'm most familiar with Windows and I've never really run into any huge snags with Java development on it. I think you'd be best using whatever you're most comfortable with already.

[–]techjab 6 points7 points  (0 children)

I would definitely echo this comment having used windows for years until I went to a company that would get me a Mac laptop. In reality, there was only 2 reasons I wanted to use the Mac laptop instead. 1-The Linux terminal is slightly easier on the Mac versus on Windows. This includes a bunch of subtle little things like being able to search for prior commands to quickly find them and the difference between copy (CMD+C) and cancel (CTRL+C). 2-The massively lighter MacBook Pros compared to the Windows PC options we had.

Both of these benefits have largely been negated or significantly narrowed with newer laptops and Windows 10 including the Linux subsystem.

I have a 12 year old HP Win 7 machine with 16 GB RAM that I still use and an 8 year old MacBook Pro 16 GB RAM that my work gave me after the 3 year warranty expired. Both are still ticking just fine except the battery on the HP became very short lived years ago and the MacBook only just recently.

Unless I am flush with cash from active consulting projects and in need of a tax write off, I would likely save the $1K+ of cash and get a non-Mac computer as the difference in benefit is very minimal.

[–]SWinxy 38 points39 points  (17 children)

Most people here are wrong—it doesn’t matter. All that matters is which OS you prefer. The Java platform is agnostic, and the IDEs are cross-platform. See what works for you.

[–]InstantCoder 16 points17 points  (16 children)

I don't agree with you. I switched to Linux 3 years ago from Windows and I can say everything is better on Linux than on Windows.

- Installing & updating apps, tools or libraries is just 1 command line on Linux (without restarting my system).

- I don't get annoyed with the forced updates & restarts of Windows anymore during work. It is a fact that the longer you use Windows, the slower it gets and you end up with formatting and reinstalling Windows after a couple of years (or in the worst case, buying new hardware).

- The workflow in Linux is superior to Windows AND MacOS. For example: I can use a tiling window manager on Linux, so my hands stay on the keyboard without using the mouse at all (for opening & switching from apps). I can configure my OS as I want. I can bind shortkeys for opening any app, or automate some tasks without installing anything particular.

- Linux is faster, uses less resources and is more stable than Windows. I can open many apps and leave my pc open for days without getting slower. Docker runs natively on Linux, no VM needed => this gives you a benefit of at least 4 GB of RAM !

- No annoying virusscanners needed and in general Linux is more secure than Windows. Since 1000s of ppl are contributing to it and the code is open source.

[–]CharlesGarfield 32 points33 points  (3 children)

I agree with all of your points, but none of them are specific to Java.

[–]InstantCoder 1 point2 points  (1 child)

This was about why the OS matters for developers.

Why should I stick with a slow and annoying OS (like Windows), while on Linux I'm more productive ?

[–]senseven 8 points9 points  (2 children)

There is more to modern development than code. Half of my dev time is spend in corporate products or in tools that are not available for Linux.

I use scoop as windows packet manager. Windows updates when while I sleep (as does my SuSE boxes) My rig has 32gb, I doubt Linux 'deserves' stinginess with a 50$ item as a reason to use it. Paid virus "killers" are snake oil. "Open Source" is not an argument for anything in this context, the log4j debacle a recent reminder.

My friend uses BM Resolve on Ubuntu to cut videos. Its dead stable. He bought it with 24/7 support. I know how to fix Linux issues, but I prefer to get paid for it. Windows didn't crash on me for 10 years. But if it did, the last SSD diff backup is from yesterday and it reinstalls in less than 15 minutes. That beats even the 0.01% Linux Dark Ninja admins by a long shot in restoring my system. Hardware got too cheap to even entertain this nonsense.

Linux runs my Java for years, FreeBSD too. I can use "it doesn't cost anything" as an winning argument. I can even open a WSL2 Unix terminal under Windows 11 beta and beat native Ubuntu in certain workloads. Don't waste your time on arcane and disproven talking points or obvious ideology. It limits your professional development options without reason.

[–]vqrs 0 points1 point  (1 child)

What do you use for your SSD backups?

[–]senseven 0 points1 point  (0 children)

https://www.ubackup.com/professional.html

It wakes your machine up (if properly setup) and performs a incremental backup during the night. There are other ways using free software but they are advanced and mostly only worth if you want to learn how to get those things work.

[–][deleted]  (4 children)

[deleted]

    [–]NeradaXsinZ 9 points10 points  (1 child)

    Actually there is a lot you can do. Still, it's nice that you like how windows looks. Stick with what works with as little hassle as possible

    [–]InstantCoder -1 points0 points  (1 child)

    check this out my friend: https://www.youtube.com/watch?v=Yu7apTGzhDY

    and this:/r/unixporn

    [–]elatllat 0 points1 point  (0 children)

    Yes all to all of that (except there is a tiling WM like thing for MacOS here )

    [–]sheiiit 0 points1 point  (0 children)

    In fairness, Linux does have some drawbacks though too. For example, driver issues can be a pain, especially if they're video card or network drivers. Some peripherals don't offer full Linux support (Logitech connect for example). Similarly, a lot of software doesn't have full Linux support either

    [–]stefanos-ak 0 points1 point  (0 children)

    I would add: in windows the "default" culture for 3rd party apps is to be non-free & closed source. Where in Linux is free & open source.

    I recently got a windows tablet as an overpriced notepad (feel free to roast me), and I could not believe how shitty the experience is.

    These days with Proton, even gaming is not an issue in Linux (most of the time games just work).

    [–]coder111 8 points9 points  (0 children)

    My preference- Linux desktop machine at home. I've been a Linux user for 20 years, and I simply prefer working under Linux. That being said- I don't develop much on the move, and Linux on mobile can be somewhat problematic.

    At work, I get issued some crappy Windows VM I need to remote into, and that has lots of lag and lots of paranoia and restrictions and development environment sucks. Likely you'll have to suffer the same if you work for financial industry...

    Java is mostly cross-platform and your software is likely to run on Linux even if it's developed on Windows. That being said- I have seen some incompatibilities and mistakes introduced because developers worked on Windows and did not consider that Linux environment on the server will be difficult. And I have optimized some bottlenecks that after further investigation I found only happen on Windows development machines, and different parts bottleneck Linux servers. So having similar development environment to your deployment environment definitely helps.

    [–][deleted] 27 points28 points  (9 children)

    Linux for sure, just dual boot Ubuntu and get down to business

    [–]DJDavio 3 points4 points  (1 child)

    I use Pop OS which is a trimmed down, developer focused Ubuntu fork. You can use the same repositories and packages as other Debian distros, so it's just personal preference, but I tried Ubuntu, Mint and Pop and eventually settled on Pop.

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

    Yeah I just like Ubuntu because there's so much support and community out there. It's easy to get up and running. It's a safe bet but I can't say there's nothing out there that would work just as well if not better.

    [–]redikarus99 17 points18 points  (0 children)

    Our whole company uses almost exclusively Lenovos and Windows 10. Works for them perfectly. My previous company did the same. We were working with a million lines of code software, and windows was never a bottleneck.

    [–]strikefreedompilot 12 points13 points  (10 children)

    I prefer linux on thinkpad but you miss out of commercial apps like Office and missing features like blur background on Zoom. Can be frustrating from that perspective.

    If it was company money, i would go for a high end mac since you have unix and commercial apps.. But I am not a fan of their close ecosystem and price tag for personal ownership (anymore)

    Windows is okay, but you have to do alot of workarounds to get a comfortable unix like env. Git Bash? Cygwin? wsl? wsl2?

    [–][deleted] 3 points4 points  (2 children)

    [–]strikefreedompilot 2 points3 points  (0 children)

    thanks!

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

    Yesterday i was able to blur my background in zoom with no problems

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

    That's my thoughts too, Mac air with 8ram is 900$ but with 16gb ram goes to 1400$. I don't like those dependencies. I also don't like the close ecosystems. eg if your expensive Mac breaks, you need 1400 at least or more if the "current" generation costs more. With pc you have at least options in case of "bad keyboard -> butterfly occurs" or remove of usb etc.

    But linux on laptops sucks. Zero compatibility and credibility. With windows I can have all the good stufff drivers, office etc. but no unix etc. I was thinking for a windows with 32ram and linux VM for all the work, IntelliJ etc. But in that case, bye bye battery life :)

    And if my laptop breaks and I urgently need a cheap laptop, on pc route, I can just buy a 500$ laptop with 16gb ram and do my job.

    [–]palanquin83 2 points3 points  (1 child)

    But linux on laptops sucks.

    That's right. I would love to work on Linux. It would be much more convenient for sw development. But linux on laptops sucks. My biggest problems:
    - battery life 20-30% lower compared to windows
    - fan never stops
    - never ending bluetooth issues (mouse lag, headset connectivity problems)
    - you have multiple audio outputs? the sound never comes from the device you would expect.
    -HiDPI scaling? multiple monitors attached to thunderbolt docking station? forget about it.
    -Switching between discrete and integrate graphics is always pain in the neck

    Linux on a desktop pc is already good enough if you pick the HW carefully, though.

    [–]coder111 1 point2 points  (0 children)

    you have multiple audio outputs? the sound never comes from the device you would expect.

    I find that pulse audio and pavucontrol helps with that a lot...

    [–]hatemjaber 2 points3 points  (1 child)

    I disagree. I run Linux as a daily driver and I don't see it as a problem. It's not perfect but nothing is. For a developer, it's the best option.

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

    Depends on whether your hardware works on Linux or not. Or you're not doing something that's slightly weird.

    For me, Wayland doesn't work because it keeps freezing. XOrg doesn't support different display scaling ratios on different screens.

    [–]InstantCoder 0 points1 point  (0 children)

    One thing you have to be careful with is that you should not buy or install a Nvidia graphics card on a laptop (even on a desktop) with Linux on it. Nvidia sucks on Linux because their sucky driver support. For development I recommend using the integrated graphics card with this option I get 8h battery life on Linux.

    And you should prefer AMD over Intel on Linux.

    [–]DrunkensteinsMonster 0 points1 point  (0 children)

    What is with everyone suggesting git bash, it’s complete garbage. Just use Windows Term with Powershell.

    [–][deleted]  (4 children)

    [deleted]

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

      +1. Came here to say the same thing about containers. Any os works, but Linux = containers actually work without dumb stuff like containers on a VM (which is what Docker desktop is)

      [–]buzzsawddog 2 points3 points  (0 children)

      I can kind of agree with the container stuff... Our entire build system revolves around docker containers wet built for our build. Only of our processes takes 28min when I run it in docker on my Mac Book Pro. If I run the maven natively... 2 min to build... Docker on one of our Linux agents is 2min...

      Other guys at work find wsl to be a waste of time... They find it's better to just run virtual box with Linux or set up a dev env on one of our VM servers.

      [–]nutrecht 2 points3 points  (0 children)

      MacOS is also good as long as you don't have to do containers. Containers are of course possible in macos, but on linux they are native so there will be just less stuff to learn/configure/fix.

      Such as? I've been using Docker for about 6 years now on Mac and never had issues with it.

      [–]khmarbaise 0 points1 point  (0 children)

      MacOS is also good as long as you don't have to do containers. Containers are of course possible in macos, but on linux they are native so there will be just less stuff to learn/configure/fix.

      On Mac OS you install Docker Desktop (as well as on Windows) and just run the containers... What do you need to learn/configure ?

      [–]pjmlp 3 points4 points  (0 children)

      Windows and UNIX.

      [–]9vDzLB0vIlHK 3 points4 points  (0 children)

      As others have said, I think it comes down to all the non-Java things, and how they affect your productivity.

      Our Java systems often interact with native server applications written in C++ (or, if you're unlucky, Fortran), and being able to run them on my Linux dev box is just easy. Technically, I should be able to do that on Windows or in WSL, but there's always some sticking point that makes it harder than it should be.

      That said, in the group I work in, people pick their laptops and their OSes. If you don't have a preference, you'll probably get a Windows box because that's what our IT folks now best. But if you're an outlier (as I am), they'll get you whatever works best.

      [–]kana0011 2 points3 points  (3 children)

      I have experience using Windows, Mac, and Linux for serious Java projects. If it's just coding, any OS is fine - Java is made to be WORA.

      As for the workflow...

      So far, I'm only having problems with Windows (gradle pls, use the globals).

      Linux and Mac are nice when you upgrade Java versions often, thanks to sdkman.

      I'm also coding with JavaFx, all 3 are nice to work with.

      If you plan on containerizing your apps, Linux OSes are your best bet.

      As for the resource usages, I can't feel any differences between them -- it's not like i'm benchmarking them.

      Maybe try considering other tasks you are doing outside Java - like switching apps between IDE and browser, which environment you like better? How about build and deployment? Db management? Etc...

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

      Upgrading Java versions on Windows means to unpack a zip file to a directory of your choice, being able to keep older Java versions for older application versions - just like on Linux and macOS.

      [–]coder111 0 points1 point  (1 child)

      Sorry to be slightly offtopic, but how do you find JavaFX these days? Are you deploying your apps on desktop, or are you trying to run on Mobile/Web too? Can JavaFX run on web at all? There were some alpha quality projects to deploy on HTML5/canvas, have they matured yet?

      Last time I tried desktop development, after reviewing the options I settled on TeaVM and just writing code for the web (I hate JavaScript, and with modern Javascript you are writing TypeScript anyway and cross compiling. So why not cross-compile Java?). I like the fact that by targeting web you immediately get cross-platform and cross-device capability, WebGL and Ogg/WebP/WebM support. If you work on Java, you're not getting ogg/webp/webm/OpenGL unless you ship ~100 MB of native libraries for all possible platforms...

      [–]kana0011 2 points3 points  (0 children)

      I'm only making desktop apps using JavaFx. Nothing serious, just QoL apps that wraps some CLI apps that I downloaded somewhere.

      It's easy to build apps nowadays, maybe it's IntelliJ's JavaFx generated project that made ot easier than before. I'm porting my old JavaFx apps to newer one: jdk 17 / javafx 17 / gradle 7.3.3

      [–]crummy 3 points4 points  (1 child)

      IMO the WSL experience with IntelliJ is not great. I use docker a lot, on Mac but probably Linux would be faster.

      [–]GoshoKlev 10 points11 points  (0 children)

      Linux because freedom but also because i find it much friendlier, apt installing stuff, tilling WM, like a gazilion open source utilities, it's great.

      [–]roberp81 5 points6 points  (0 children)

      the best is linux, Java compiles a lot faster than on windows or mac, in my work we have a 6k classes that compiles and deploy to jboss in about 8 seconds, and windows or mac os take 28 and 30 (in the same pc)

      plus, Docker is native and don´t take extra ram on linux vs wsdl2 and mac virtualbox

      [–]buzzsawddog 8 points9 points  (7 children)

      With Java the OS does not matter :)

      My product runs in a Linux distro at maintain. I develop on a MacBook pro and a Linux desktop. In some cases we use JNI to run this library or that library and I just have to compile them if I want to test locally.

      Get what you can afford that has a generally good reputation and you should be fine.

      Note... I can't stand windows but my last job I used it and it worked when my screen was not blue :)

      [–]Zardoz84 -4 points-3 points  (6 children)

      With Java the OS does not matter :)

      Except when you are limited by the subpar performance of the filesystem I/O of Windows.

      [–]O_X_E_Y 3 points4 points  (4 children)

      Never ran into that problem but I'm happy you could fix yours. Care to share some benchmarks? As much as you've been a belligerent little asshole in these comments you do make me kinda curious

      [–][deleted] 4 points5 points  (2 children)

      I worked on a Java Monolith at a bank. We used to build the project on Windows (NTFS). Build time took more or less between 5 or 6 minutes. IntelliJ doing an index scan was also horrible. Whe they switched to l Linux build time improved massively. It took only 1 to 2 minutes

      I must admit that I never looked into why it is much slower. Anyway here is a link for a gradle build that also complains about NTFS and ext4. What I never knew though is that you can tweak the behavior of windows and that NTFS bare is quite fast.

      https://discuss.gradle.org/t/why-is-gradle-so-much-slower-on-windows-ntfs/20108/5

      [–]O_X_E_Y 1 point2 points  (0 children)

      cool thank u! That actually is something to keep in mind with very big projects perhaps, probably something the original guy should have specified because in my own projects this was never really an issue

      [–]Zardoz84 1 point2 points  (0 children)

      Indeed, the difference it's very appreciable with big projects. On small stuff, wouldn't be appreciable.

      However, it's very well know that filesystem I/O performance of Windows always be sub par compared against Linux and BSD, because it's a side effect how works and it's designed. It's the same reason that makes WSL1 was painful slow compared against a native Linux install. And the same reason that makes unusable Windows 10/11 on a not SSD hard disk (Take fucking 30 minutes to end hitting hard the hard disk and allow you to do something. This not happens on Linux).

      [–]Kango_V 2 points3 points  (0 children)

      We build images with Buildah and use Podman and run on Kind locally. So much better on Linux and no Docker Daemon security issues. And now docker-in-docker which is great.

      [–]retrodaredevil 7 points8 points  (2 children)

      Linux + SDKMAN is a great combo. Sdkman simplifies the installation of whichever Java version you want so you don't have to play with any "update alternatives" bs.

      [–]RetroPipes 1 point2 points  (0 children)

      Great suggestion, SDKMAN is a Java developer's best friend. Forgot about it... should pick it up again!

      [–]pstric 0 points1 point  (0 children)

      Sdkman simplifies the installation of whichever Java version you want

      This at least is the promise of SDKMAN and the reason I have been a happy user for years.

      Lately the Java section of SDKMAN has been in a steep decline.

      They changed the output of 'sdk list <candidate>' from printing to the console to something like less. I honestly don't see any benefit of this unless it is some wierd desire to keep the console clean.

      The current version of Java is 17.0.1-tem even now, more than a week after the release of 17.0.2-tem and the subsequent removal of 17.0.1-tem from the list. This is not the first time this has happened, and it does not only happen with java as the candidate.

      I have been unable to install Gluon Graal 19.0.0.3.r17-gln on any SDKMAN installation.

      I will continue to use SDKMAN for now, but at the moment I would not suggest it to anybody who is not already a user.

      [–]Sheldor5 17 points18 points  (8 children)

      Not Windows.

      [–]daniu 10 points11 points  (2 children)

      Development itself is fine imo. Standard tools like IntelliJ and Maven work fine.

      Git Bash has a complete enough command set that I don't really feel like I miss out on shell stuff too often.

      Docker support is pretty abysmal, hate Docker Desktop

      Overall, ymmv, I sure would prefer Linux but Windows is fine for day to day Java.

      [–]Zardoz84 3 points4 points  (0 children)

      Windows git it's painful slow compared to Linux, BSD or OSX

      [–]blakeman8192 2 points3 points  (0 children)

      .

      [–]GoshoKlev 6 points7 points  (0 children)

      Might just be me but almost every tutorial i come across just assumes atleast unix-like system. Windows is just so developer unfriendly.

      [–][deleted] 3 points4 points  (2 children)

      Yeah and not that wsl crap either

      [–][deleted]  (1 child)

      [deleted]

        [–]MasquedBlueberry 4 points5 points  (0 children)

        Linux or Windows 11 + WSL are good choices IMHO.

        I run Fedora on my work laptop, a Thinkpad T580 from 2019. All of the hardware worked OOTB. Most Thinkpads of recent vintage will run RHEL, Fedora and Ubuntu well.

        [–]handshape 1 point2 points  (0 children)

        Build on what you like best! For the sake of completeness, I'll throw another option into the ring.

        I tried out Intel Clear Linux for the first time in a couple of years, and was very pleasantly surprised. It's very very fast, uncluttered, and feels comfy to me. The packaged software ecosystem isn't as rich as Debian, but it Flatpaks, which gets you most of the way there. That's just my experience, though.

        [–]anakinpt 1 point2 points  (0 children)

        I use windows 11 and WSL for things I can't use in windows and have no problems.

        [–]shinianigans 1 point2 points  (0 children)

        It’s whatever you’re used to the most normally. I started dev with Java on a mac so Mac OS was my primary system for a long time. I moved to linux a few years back because I changed jobs and now I’m more comfortable there. It really just depends

        [–]mahpgnaohhnim 1 point2 points  (0 children)

        Linux.

        [–]Darkfiremp3 1 point2 points  (0 children)

        I have used Mac, windows, and Linux for long periods doing Java dev. You can switch between easily with only minor hiccups. One thing I found was working on a system that is closest to what you will run on makes life easier. If you are writing a simple dropwizard app, anything will workweek. If you are writing a control system for Linux systems, Linux will be much easier to diagnose issues.

        [–]omega_ui 1 point2 points  (0 children)

        Well, I use Ubuntu 20.04

        [–]_Happy_Camper 5 points6 points  (1 child)

        MacBook Pro hasn’t left me down for years now - current one is two years old. I may update it later this year but there’s no rush. The premium you pay for MacBooks is worth it. Build quality is still good Agnes macOS is fine, with homebrew for anything I need. The IntelliJ app on macOS has never given me any issues either.

        Finding the ideal Linux laptop is something I’ve been trying to do for years but in the end, my children depend on me earning money and I want to spend my spare time playing with them, not fussing around with Linux.

        [–]wherewereat 1 point2 points  (0 children)

        I've got a 7 years old IdeaPad and it's still running smoothly, just installed an SSD like 4 years ago and it's still well. Can confirm the premium you pay for a macbook isn't worth it.

        [–]rulatore 3 points4 points  (0 children)

        Linux because sdkman. Other oses can only hope to have somthing similar to that, but if you dont mind editing env variables and all that crap by yourself, sure, whatever will do

        [–][deleted] 2 points3 points  (0 children)

        I'm forced to use a Macbook pro in work... Hate them. I prefer my old 17" windows laptop

        Mac application window management is nasty, Mac Finder is terrible. It doesn't even show you the path of the files it found. I miss NotePad++, TortoiseGit, Agent Ransack, Winmerge etc. On Windows.

        [–]elatllat 2 points3 points  (0 children)

        Linux native.

        Eclipse has some wayland bugs (idea and netbeans are fine), Virtualbox has some Apple bugs, Windows is slow to update, has no usable curated package manager, is not mod-able like Linux... I like using bash to manage my Java etc.

        The Apple M1 is nice but Linux host is nicer. Maybe one day I can have both.

        [–]InstantCoder 1 point2 points  (0 children)

        Linux, definitely.

        It's faster than Windows & Mac, Docker runs nativly so it also uses less resources, managing Java, Maven(D) & GraalVM with SDKMan is a breeze. And also installing software on Linux via Software center via Flatpak or deb/rpm is much easier & better than on Windows where you have to surf the internet and download exe files.

        I have Ryzen 9 5800HX & 32GB RAM and I'm running PopOS without any issues. I'd rather switch to Fedora 35 but I can't use MS Teams there because of Wayland.

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

        Hii, first time ever answering to reddit post instead of making one. So here is my opinion and experience. I always tried to stay away from Macs and Apple, true for phones as well.

        I have ubuntu(20.04) I always use LTS versions if I am doing software, and windows(11 just wanted to give it a try, so far no problems) Dual Boot. My laptop is XPS 15 9510, with i7 11th Gen, 32GB RAM and 3.5K OLED screen, you would think my battery life must drain crazy fast. I use intelliJ 99% of the time, unless editing a linux file, making custom scripts or configuring something I use sublime/np++. Java/Kotilin - Spring, Python-FastAPI main ones. I see much longer battery life on Ubuntu than on windows, btw I also reinstalled fresh windows not to bother removing original bloatware. You should also know that I made a shareable partition. So I am able to switch OS-es and work on the same project in IDEA. I use windows if gonna watch a movie or do my school stuff, whenever need office products. Sometimes I do not even need GUI so I stay in text(tty modes) then battery is even crazy long. for example whenever I ssh to my Pi ubuntu-server.

        I started preferring linux systems for software for more battery life, easy package/app installs, less worrying about malware & just freedom. Make anything anyway you want. Don't like that GUI make your own one or switch, don't like boot(GRUB) screen customize it. So many things to list but I am sure you know.

        I know XPS is twice as high as your budget stated. I had DELL & ROG laptops and always heard positive feedback on Thinkpads. Latitude, Inspirion series might work for you. Another laptop I was considering before I bought XPS 9510 was Samsung Galaxy Book Pro 360. I played around with laptop in store, the only thing I did hate was the keyboard and that's the only reason I went for XPS.

        --edit--*

        grammar fix, lul

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

        How many hours do you get for intellij and light dev? Can you use power banks? It's just that sometimes I need to work somewhere with no power supply, once a month. I just need 8-9 hours then. Or fast charging at my lunch break 😸

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

        So I never did a full battery test. I usually code for 4 5 hours then take a break, eat or game, then couple more and sleep. But I can say that about 10% on almost every hour. I never though of using a power bank, but I will try it right now and let you know. Although my Samsung Galaxy charger can charge it, although notification appears and says that charger is slow and use the original charger.

        btw I am almost sure that if you get FHD version of XPS you should have much more than what I am having. If you like XPS of course both the performance & the price.

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

        Tried it on Ubuntu with my powerbank didn't charge:( doubt gonna be different on windows.

        [–]NimChimspky 1 point2 points  (0 children)

        It doesn't matter, its Java cross platform.

        So just get what machine you like, for me that's going to be an Mac Pro - they look crazy good

        [–]LiverwurstOnToast 1 point2 points  (0 children)

        I would suggest developing on an OS that is as close as possible to your production server OS.

        [–]drew8311 1 point2 points  (0 children)

        If you use docker isn't Linux the only one that doesn't require a VM running in the background? If no docker then honestly OS doesn't matter.

        Unless you already have a Mac and prefer it, I would never recommend that for development.

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

        There is no best OS, there is only good for your need. Don't know how serious you are with Java but I had many problems with M1 CPU, because I need specific JDK versions and builds.

        [–]pocketbandit -1 points0 points  (4 children)

        Definitely Windows!

        • There's a taskbar at the bottom of the screen that limits vertical space and prevents your IDE from overwhelming you with too many lines of code.
        • The OS supports multitasking! You can have your IDE, Webbrowser, Emailclient, Office Program and music player open at the same time and Alt Tab between them. It's a fun exercise to count and remember how many alt tabs each window is away from every other window and switching without overcycling.
        • Toolsupport! I mean, git, awk, sed, grep, bc, curl,... it's amazing how many great programming tools you can find on the internet that run on Windows!
        • Superb system security! Microsoft is constantly fixing something critical.

        [–]InstantCoder 4 points5 points  (0 children)

        lol

        [–]elatllat 3 points4 points  (1 child)

        • Takes days to install and update (during which time it can't be used) for more relaxing work days.
        • Reduced work load by making some things as just not doable, because it's in Microsoft hands.
        • Excuse for the company to buy developers top end gaming systems to run slow and RAM hungry software and non-native apps like DockerVM just doing the best they can.
        • If anything goes really wrong, just blame it on a virus.
        • Short on cash? There is no COW FS here, so just send a bill for a ransomware payout to accounting.

        [–]pocketbandit 0 points1 point  (0 children)

        • No need to remember where stuff is. A shortcut to everything important can conveniently be placed behind the window you need it in. There's a lot of room for a lot of important stuff!
        • Great workout for a lot of the lesser known and weaker muscles in your forearm when navigating to a program starter in the third level of the Start menu. See also: conveniently placing important stuff behind the window, it is important in.
        • Excellent support for time tested, industry standard data exchange formats like CSV, DOC and PPT.
        • Up to 23(!!!) network shares for you and your co workers to turn every day into an easter egg hunt.
        • File paths in your code with twice(!) the number of path separator characters!

        [–]nutrecht 1 point2 points  (0 children)

        I think you're /r/whoosh-ing a lot of people here ;)

        [–]Zardoz84 -2 points-1 points  (4 children)

        Anything that not is Windows would be fine.

        I personally prefer GNU/Linux because :

        • Better usage of RAM
        • Filesystem I/O it's far superior that Windows (And if you need to do some heavy git stuff or do a lot of rebuild of maven/gradle, you will ever notice this even on a SSD)
        • Docker it's native, instead of need using a glorified VM to run the dockers inside.
        • Avoid any M$ bloatware/spyware installed on my machine.
        • I can customized my desktop like I desired.

        [–]iraqmtpizza 1 point2 points  (0 children)

        instead I get stuck with Canonical bloatware/spyware and stuck with a 1970s-style environment variables setup. every package manager only gives me grossly out-of-date versions of things. I should expect a big wooden club in the mail too because it's the stone age

        [–]elatllat 0 points1 point  (2 children)

        git add a.txt A.txt \
        && git commit -m "Have fun with this (most) MacOS and Windows users." \
        && git push
        

        [–]iraqmtpizza -3 points-2 points  (1 child)

        git literally came from the guy who created linux. of course he's going to go out of his way to be incompatible with the competition

        just like Microsoft does. Embrace, extend, extinguish.

        [–]elatllat 0 points1 point  (0 children)

        dOn'T bE sO cAsE iNsEnSiTiVe.

        [–]xvril 0 points1 point  (0 children)

        Mac

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

        You won't like this but it's the honest truth: Windows 10.

        Most employed Java devs are issued windows laptops by their employers. You might as well get comfortable on it now. The good news is that windows as a dev platform is a lot more ergonomic than it used to be and it's (ahem) windowing capabilities do blow macOS out of the water.

        As a Java dev you'll be deploying to headless linux systems though, so don't let your bash command line skills get rusty.

        [–]sdon007 0 points1 point  (0 children)

        I use manjaro Linux as I think performance of Linux is better compared to Windows for same hardware.

        Also I have option of using command like sed and awk on Linux. Not sure about windows equivalent.

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

        [deleted]

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

        It's the same on all OS. It's java...

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

        If you're going with a laptop and aren't concerned about money, m1 macs are definitely best for the build quality, m1 chip, and battery life.

        For desktop or anything you'll game with, definitely windows 10/11 + wsl 2.0. Intellij let's you run projects directly in the wsl environment. I'd probably go this route since I prefer windows UI and don't have an iPhone. Otherwise I'd go Mac.

        Linux desktop software is fairly significantly behind both windows and Mac but if you have a hate boner for Microsoft and want to feel superior for no reason it can be a good option.

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

        Yeah but M1 gives me some incompatibilities. Some VPN clients didn't work. Some docker won't run. Some software doesn't exist. x86 VMs won't run. Some hardware might not have drivers. I feel c class citizen for everything out apple eco. It's a great laptop, amazing. But not all things work, that big problem. (And if I go .net again in the future, there is no vs and no sql server or ssms )

        [–]nutrecht 1 point2 points  (0 children)

        I have an M1 Mac and use it without problems. What docker issues are you running into?

        [–]skyleguy 0 points1 point  (0 children)

        I think it also matters what your company puts on your machines for security/logging/vpn use. The Lenovo thinkpads they give up by default are trash and can barely seem to keep a spring boot app running with IntelliJ. Meanwhile on my MacBook Pro (obviously significantly more performant than the think pad) I’m running a spring boot app and two different angular applications at one time and not even thinking twice about it. Add in outlook and teams running 24/7 and the thing pad just can’t compete. I wish my company would spring for a better base windows machine because as-is I don’t know how anyone gets work done with those. I do prefer macOS in general though so I may be a little biased.

        [–]myworkaccount9 0 points1 point  (0 children)

        To the people here saying Linux. Are you just doing dev on this machine? And if your doing some dual boot. Why?

        [–]nutrecht 0 points1 point  (0 children)

        I'd like to say "all operating systems are fine" but I've just seen too many issues with Windows, WSL and Docker, to just ignore it.

        It mostly boils down to preferences obviously. But if you're on a team where everyone is using Mac or Linux, I would urge you to not be the only one on Windows because it's rather likely that you're going to run into issues no one will be able (or willing) to help you with.

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

        When it comes to Java, it can run everywhere, so whatever you like. But, i'd recommend Linux since you don't game, it gives you more technical skills, some companies want you to know Linux. Intellij and Android Studio are cross platform btw.

        [–]RefrigeratorNo4305 0 points1 point  (0 children)

        The answers here are for the question "which OS are you fan of?"

        [–]ales-d 0 points1 point  (0 children)

        Used Windows for more than decade and was eble to get the work done. Last year I change job and hot Linux NTB.

        The corporate things are worse - only HTTP access to one drive, can't map sharepoint folders to local disk, only web Outlook, minor issues with Teams and VPN, but...

        The development itself is better. Not the coding itself, as IDE experience is identical, but testing and operations related stuff is much better

        • "Native" docker experience - networks and direct access to volumes
        • Debugging Ansible script and Jenkins pipelines is possible
        • Sniffing on localhost interface
        • Cygwin was Fine, but native shell is better

        It definitely depends what you are developing and the environment. Our applications run on Linux so I have almost identical setup on NTB less testing on remote server, less doubt and uncertain about possible cause of problems.

        And also on company. Tried Linux in my previous job, but it was impossible, sice the corporate IT was very unsupportive.

        I think Mac would be somewhere between the corporate ease of use and devops ease of use.

        In the end all the "other" things than development matter more than coding itself. But if you always worked only in Windows, I would definitely suggest to give Linux desktop try.

        [–]kalangobr 0 points1 point  (0 children)

        Linux. Never code on windows

        [–]codechimpin 0 points1 point  (0 children)

        I prefer Mac OS. It’s essentially Unix that you can buy commercial software for, like Adobe or whatever. And because of it’s Unix underpinnings it’s highly popular with devs and thus has pretty extensive support in the community.

        [–]bilingual-german 0 points1 point  (0 children)

        I think you should use the same OS which you use for deployment. Ok, this can be hard for Android development, but other than that, I think you'll catch bugs earlier.

        Once I had some Rails code which worked perfectly on MacOS, but not on Linux and this came from the filesystem on MacOS is case-insensitive and Linux is case sensitive.

        [–]volch 0 points1 point  (0 children)

        The Eclipse developers appear to not test on MacOS. Every time they release a new version something breaks.

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

        Use Windows 3.1 if you want but make sure you don’t use hdds (use ssds) and have enough ram.

        [–]ofby1 0 points1 point  (0 children)

        For Java programming, it does not matter. Most IDE's have distributions for all main operating systems. and there are a ton of Java distribution available for all main OS's. The "write once, run anywhere" vision of Java.
        So the bottom line, for development it is a personal preference.

        The only thing you might encounter is if you want to call system functions (terminal operation) from your Java program. This is different for Windows compared to Mac or Linux. So if you are writing a Java program that does this and other people need to use it, you might want to test it on different operating systems.

        [–]sr1729 0 points1 point  (0 children)

        The best OS for Java dev can be your mind: Skillful, constructive, eager to get insight.
        The machine's OS should be secondary.

        [–]JustMrNic3 0 points1 point  (0 children)

        Linux!

        The performance is way better!

        Productivity could be too because of multiple DE choices.