I am the one paying for my MacBook Pro, because my company is a self-funded business. I run my entire business on this machine and I love it. I always buy the fastest CPU possible, although I don't max out the RAM and SSD.
Amusingly enough, I talked to someone recently about compilation speeds and that person asked my why I don't compile my software (Clojure and ClojureScript) on "powerful cloud servers". Well, according to Geekbench, which always correlates very well with my compilation speeds, there are very few CPUs out there that can beat my M3 Max, and those aren't easily rentable as bare-metal cloud servers. Any virtual server will be slower.
So please, don't repeat the "MacBooks are for spoiled people who don't have to pay for them" trope. There are people for whom this is simply the best machine for the job at hand.
Incidentally, I checked my financials: a 16" MBP with M3 and 64GB RAM, amortized over 18 months (very short!) comes out to around $150/month. That is not expensive at all for your main development machine that you run your business on!
Which, incidentally, is probably about 10x less than you would spend compiling your software on "powerful cloud servers". :-)
I mean Hetzner has a reputation for renting bare metal servers at the cheapest price in the market. Try AX102 which has very close performance to a M3 Max (CPU only): https://www.hetzner.com/dedicated-rootserver/matrix-ax/
While the OP's solution has a lot of advantages like being able to own the device and including GPU, but at least we do have cloud servers with comparable costs available.
Worth noting: the monthly cost is close to my 18-month amortized cost.
I think engineers using software should not be seen as an endorsement. They seem to have an incredible tolerance for bad UI.
They may be locked in, which just forces things. Not an endorsement.
However, they may also be really productive with whatever it is. This could be an endorsement.
In CAD, as an example, there are often very productive interaction models that seem obtuse, or just bad to people learning the tools first time.
Often improving on first time ramp ups to competence nearly always impacts the pro user too.
Where it plays out this way, I have always thought the UI was good in that the pros can work at peak efficiency. It is hard to beat them.
Fact is the task complexity footprint is just large enough to make "good", as in simple, intuitive interfaces not possible.
People hate software that they're forced to use. Professionals are better at tolerating crapware, because there's usually sunk cost fallacy involved.
Well actually, I use FreeBSD as my daily driver (on a used ThinkPad I bought for 300 euros), and I love it. :D
</painfully earnest nerd>
okay, now you're going to tell me that FreeBSD is in the "software nobody uses" category isn't it?
Disguising it as an "observation" is even more ridiculous.
Nah, I'm good. Believe what you want to believe my friend.
Irelevant.
Firstly, it's a tool, not a social media platform designed to sell ads and farm clicks, it needs to be utilitarian and that's it, like a power drill or a pickup truck, not look pretty since they're not targeting consumers but solving a niche set of engineering problems.
Secondly, the engineers are not the ones paying for that software so their individual tolerance is irelevant since their company pays for the tools and for their tolerance to those tools, being part of the job description and the pay.
Unless you run your own business , you're not gonna turn down lucrative employment because on site they provide BOSCH tools and GM trucks while you personally prefer the UX of Makita and Toyota. If those tools' UX slows down the process and makes the project take longer it's not my problem, my job is to clock in at 9 and clock out at 5, that's it, it's the company's problem to provide the best possible tools for the job, if they can.
> I think engineers using software should not be seen as an endorsement.
Where can I find one of those jobs?
But since you asked, Google is famous for low workloads. Or Microsoft. Or any other old and large slow moving company with lots of money, like IBM, Intel, SAP, ASML, Airbus, DHL, Siemens, manufacturing, aerospace, big pharma, transportation, etc. No bootstrapped "agile" start-ups and scale-ups, or failing companies that need to compete in a race to the bottom.
Depends mostly on where you live though.
> where non-Apple monitors and other 3rd party hardware just stops working after minor updates and then starts working again after another update, without any official statement from Apple that there was a problem and a fix?
At least my WiFi doesn't turn off indefinitely during sleep until I power cycle whole laptop because of a shitty driver.
The only problem is that Apple is even worse at communicating issues than Microsoft is.
[1] https://www.bleepingcomputer.com/news/microsoft/microsoft-wa...
[2] https://www.bleepingcomputer.com/news/microsoft/microsoft-fi...
[3] https://www.bleepingcomputer.com/news/microsoft/microsoft-sa...
[4] https://www.forbes.com/sites/gordonkelly/2019/06/12/microsof...
[5] https://www.theregister.com/2022/08/22/windows_10_update_kil...
With Apple, it's usually just crickets... nothing in the release notes, no official statements, nothing. It's just trial and error for the users to see if a particular update fixed the issue.
I.e the same functionality exists with no draw backs and money was no object.
And they chose Windows? Seriously why?
I don't know what to say except resign to the fact that the world is fundamentally unfair, and you won't ever get to run the A/B experiment that you want. So yes, Windows it is !
Not that the degree means much, I learnt 90% of what I know on the job. It certainly helped get my foot in through the university brand, and alumni network.
You can call yourself anything you want Doctor, Lawyer, Engineer. I have the freedom to think my own thoughts too.
There was brief sidestep from late 1980s to early 2010s (~2012) where the term "software engineer" came into vogue and completely ran orthogonal to "proficiency in calculus". I mean, literally 99% of software engineers never learned calculus!
But it's nice to see that ever since ~2015 or so (and perhaps even going forward) proficiency in calculus is rising to the fore. We call those "software engineers" "ML Engineers" nowadays, ehh fine by me. And all those "computers" are not people anymore -- looks like carefully arranged sand (silicon) in metal took over.
I wonder if it's just a matter of time before the carefully-arranged-sand-in-metal form factor will take over the "engineer" role too. One of those Tesla/Figure robots becomes "proficient at calculus" and "proficient at calculations" better than "people".
Reference: [1]: I took the terms "engineer" and "computer" literally out of the movie "Hidden Figures" https://en.wikipedia.org/wiki/Hidden_Figures#Plot
It looks like ever since humankind learned calculus there was an enormous benefit to applying it in the engineering of rockets, aeroplanes, bridges, houses, and eventually "the careful arrangement of sand (silicon)". Literally every one of those jobs required learning calculus at school and applying calculus at work.
Might be just my Eastern Europe background where it was all just "Math" and both equations (that's Algebra I guess) and simpler functions/analysis (Calculus?) are taught in elementary school around age 14 or 15.
Maybe I'm missing/forgetting something - I think I used Calculus more during electrical engineering than for computer/software engineering.
I don’t mean to disregard other branches of math — of course they’re useful — but calculus stands out in specific _applicability_ to engineering.
Literally every single branch of engineering. All o then. Petrochemical engineering to Biotech. They all use calculus as a fundamental block of study.
Discovering new drugs using Pk/Pd modeling is driven by modeling then drug<->pathogen repo as cycles using Lotka models.
Im not saying engineers dont need to learn stats or arithmetic. IMO those are more fundamental to _all_ fields, janitors or physicians or any field really. But calculus is fundamental to engineering alone.
Perhaps, a begrudging exception I can make is its applications in Finance.
But every other field where people build rockets, cars, airplanes, drugs, or ai robots, you’d need proficiency in calculus just as much as you’d need proficiency in writing or proficiency in arithmetic.
>I think I used Calculus more during electrical engineering than for computer/software engineering.
I think that was OPs point - most engineering disciplines teach it.
It was not really necessary through all of the app developers eras. In fact, it’s so much so the case that many software engineers graduating from 2000-2015 or so work as software engineers without a degree in BS. Rather, they could drop the physics & calculus grind and opt for a BA in computer science. They then went on to become proficient software engineers in the industry.
It’s only after the recent advances of AI around 2012/2015 did a proficiency in calculus become crucial to software engineering again.
I mean, there’s a whole rabbit hole of knowledge on the reason why ML frameworks deal with calculating vector-Jacobian or Jacobian-vector products. Appreciating that and their relation to gradient is necessary to design & debug frameworks like PyTorch or MLX.
Sure, I will concede that a sans-calculus training (BA in Computer Science) can still be sufficiently useful to working as an ML engineer in data analytics, api/services/framework design, infrastructure, systems engineering, and perhaps even inference engineering. But I bet all those people will need to be proficient in calculus the more they have to deal with debugging models.
My strong “opinion” here comes from an observation that while calculus may have been a required subject of study in awarding engineering degrees, the reality is, people didn’t really study it. They just brushed through a couple of pages and wrote a few tests/exams.
In America there’s plethora of expert software engineers who opt for a bachelors degree in computer science that is a BA not a BS.
I think that’s complete totally reasonable thing to do if you don’t want to grind out the physics and calculus courses. They are super hard after all. And let’s face it, all of the _useful to humanity_ work in software doesn’t require expertise in physics or calculus, at least until now.
With AI going forward it’s hard to say. If more of the jobs shift over to model building then yes perhaps a back to basics approach of calculus proficiency could be required.
I've come to appreciate the fact that domain knowledge has a more dominant role in solving a problem than technical/programming knowledge. I often wonder how s/w could align with other engineering practices in terms of approach design in a standardized way so we can just churn out code w/o an excessive reliance on quality assurance. I'm really hoping visual programming is going to be the savior here. It might allow SMEs and Domain experts to utilize a visual interface to implement their ideas.
Its interesting how python dominated C/C++ in the case of the NumPy community. One would have assumed C/C++ to be a more a natural fit for performance oriented code. But the domain knowledge overpowered technical knowledge and eventually people started asking funny questions like
https://stackoverflow.com/questions/41365723/why-is-my-pytho...
I guess I just enjoy things more when I can count them.
Calculus was important during the world wars because it means we could throw shells to the enemy army better, and that was an important issue during that period.
Nowadays, calculus is just a stepping stone to more relevant mathematics.
Todays ML frameworks grapple with the problem of “jacobian-vector products” & “vector-jacobian product” as a consequence of understanding the interplay between gradients & derivative; and the application of the “chain rule”. All of those 3 concepts are fundamentally understood by being proficient in calculus.
While I’m being the hype-man for calculus I don’t mean to say proficiency in linear algebra or statistics is in any “less necessary” or “less useful” or “less challenging” or “less..” in any way.
I’m merely stating that, historically, calculus has been the unique branch of study for engineering. Statistics has always found value in many fields — business, finance, government policy etc.
Sure Linear algebra is one of those unique fields too — I kinda like to think of it as “algebra” in general and perhaps its utility has flowed in tandem with calculus. Idk. I haven’t thought super hard about it.
Both are math, and both are still incredibly important. Rockets haven't gone out of style.
There's little things too, like some people using gaming peripherals (multi-button MMO mice and left hand controllers, etc.) for editing, which might not be compatible with OSX.
And also, if you're mucking around with two 32 inch 4k monitors and a 16 inch Wacom it might start to feel a little ridiculous trying to save space with a Mac Pro.
Once it works, Linux is more reliable than Windows. And virtual desktops have always worked better on Linux than on Windows. So I disagree with you on that front.
* In my case, this means I had to get an Anker HDMI adapter, instead of any random brand.
Maybe as long as you don't need working fractional scaling with different DPI monitors, which is nothing fancy now.
I am not an artist and also dislike multiple monitors, though I will employ two of them on occasion.
My reasons are:
If the window and application management doesn't suck, one display is all one needs.
With cheap multiple displays and touch devices came an ongoing enshitification of app and window management. (And usually dumber focus rules)
Having to turn my head x times a day sucks.
My MBP has been running without any restart for over a month.
IETF RFCs soon number over 10K; Java, win32, the Linux kernel syscall API are famous for backward compatibility
not to mention the absurd success of standard libraries of Python, Rust, PHP and certain "standard" projects like Django, React, and ExpressJS
> (how many libraries do you need for arrays and vectors and guis and buttons and text boxes and binary trees and sorting, yada yada?)
considering the design space is enormous and the tradeoffs are not trivial ... it's good to have libraries that fundamentally solve the similar thing but in different context-dependent ways
arguably we are using too many libraries and not enough problem-specific in-situ DSLs (see the result of Alan Kay's research the STEPS project at VPRI - https://news.ycombinator.com/item?id=32966987 )
Many if not most computational problems are fundamentally about data and data transformation under constraints - Throughput, Memory, Latency, etc, etc. And for the situations where the tradeoffs are non-trivial, solving this problem is purely about domain knowledge regarding the nature of the data (video codec data, real-time sensor data, financial data, etc) not about programming expertise.
The various ways to high level architect the overall design in terms of client/server, P2P, distributed vs local, threading model, are, IME are not what I would call crazy complicated. There are standard ways of implementing various variations of the overall design which sadly because of a overall roll-your-own mindset, most devs are reluctant to adopt someone elses design. Part of that is that we don't have a framework of knowledge that allows us to build a library for these designs in our head where we can just pick one thats right for our usecase.
I don't agree with your characterization of the design space as 'enourmous'. I'd say most programmers just need to know a handful of design types because they're not working on high performance, low latency, multi-million endpoint scalable projects where as you say things can get non-trivial.
I'll give a shot at an analogy (I'm hoping the nitpickers are out to lunch). The design space for door knob is enormous because of the various hand shapes, disability constraints, door sizes, applications, security implications, etc. And yet we've standardize d on a few door knob types for most homes which you can go out and buy and install yourself. The special case bank vaults and prisons and other domains solve it their own way.
I am not meaning software is engineering or not.
It is a fact, in terms of cost, that software and bridge building are, most of the time very different activities with very different goals and cost-benefit ratios.
All those things count when taking decisions about the level of standardization.
About standards... there are lots also and widely used, from networking to protocols, data transfer formats... with well-known strengths and limitations.
It feels to me that you're bitter or had more than one bad experience. Perhaps you keep working with, or come across, bad Engineers as your generalising is inaccurate.
When I started doing this "Internet stuff" we were called "webmasters", and job would actually include what today we call: - DevOps - Server/Linux sysadmin - DB admin - Full stack (backend and frontend) engineer
And I might have forgot some things.
I worked for one of the UKs leading architecture / construction firms writing software and also am an amature mechanic.
You'd be amazed at how many gasket types, nuts, bolts, fasteners, unfasters, glues, concretes, bonding agents and so on ... all invented for edge preferences and most of which could be used interchangably.
Also standards? Hah. They're an absolute shitshow in any engineering effort.
I mean ... even just units of measure. C'mon.
Windows requires a VM, like WSL, for a lot of people, and Linux lacks commercial support. macOS strikes a good balance in the middle that makes it a pretty compelling choice.
Sure, Wine exists, but it’s not something I’d want to rely on for a business when there are alternatives like macOS which will offer native support.
Apple fanboys like to talk about how cool and long lasting a MacBook Air is but a 500 bucks Chromebook will do just as well while allowing pretty much 90% of the use cases. Sure, the top end power is much lower but at the same time considering the base RAM/storage combo Apple gives it is not that relevant. If you starting loading it up, that puts the pricing in an entirely different category and in my opinion the MacBook Air becomes seriously irrelevant when compared to serious computing devices in the same price range...
A Chromebook "does the job" but it's closer to a thin client than a workstation. A lot of the job is done remotely and you may not want that.
If the only thing you care about are battery life (only if you plan to use it lightly on the go, because even the high-end Apple Silicon sucks decent amount of power at full tilt) and privacy I guess they are decent enough.
This is my argument: the base models are at the same time overkill and too limited considering the price and the high-end models are way too expensive for what they bring to the table.
Apple has a big relevancy problem because of how they put a stupid pricing ladder on everything, but that is just my opinion, I guess. As long as they keep making a shit ton of cash it doesn't matter, I suppose. But if the relevant people stop buying Macs because they make no sense, it will become apparent why it matters sooner or later...
And if we are talking about expensive high-end hardware, mini-LED is worse than OLED found in those machines anyway so it's not like if that would be a strong argument.
no, i’m a big fan of OLED, but for a laptop, especially a non gaming one, the extra brightness and lack of burn in concern makes it better.
Sure, the MacBook Air is better built and will do some things better but those things are not extremely relevant for someone who would be satisfied by an entry level MacBook Air, because while an MBA has some very nice attributes, in the end everything is limited by its RAM/storage (and to a lesser degree, ports).
For a concrete example, in my country the cheaper MacBook Air you can get is the old M1 design at 1k€, then there is the M2 refresh at 1.2k€ and M3 variant at 1.3k€.
But you can get an Asus Chromebook Plus for 600€ that has either the same amount of RAM and storage or more RAM (16Gb) or more storage (512Gb) depending on the variant you end up with. The display is worse (100 nits less bright and worse resolution) but slightly bigger (14") and that may matter more to many people. It has an older Intel i5 (you can find some AMD options for better efficiency) but it hardly matters for the vast majority of people who just want a laptop to do the basics (basically the target of a MacBook Air). Its battery life would be a bit worse than an MBA but not in a way that can be relevant for the vast majority of customers. One major advantage it has over an MBA is better ports selection, with an HDMI port, a USB A port and an SD card reader on top of the 2 Thunderbolt/USB C ports the MBA has, allowing a dongle free life without having to buy anything else, providing much better utility. That can be way more relevant for many peoples than a better build quality (that I would argue do not even bring better longevity, since with Apple you are hostage of the software support anyway).
You see I am not against MacBooks; in fact, I would advise purchasing a MacBook Pro for some specific use case.
But the reality is that the entry level Apple hardware is rather compromised for its price, and if someone would be satisfied by that choice, I'm arguing that there is another choice (worse on paper, better in some ways) but at half the price (40% off minimum).
If you start loading up a MacBook Air, you end up in MacBook Pro price territory and it doesn't make a lot of sense to not add the 100-200 more to get the much better machine.
I know from experience that entry level Apple hardware is a terrible deal, both because I made the mistake myself or I had to help/fix the issues for other people that made those choices. I have a cousin who remind me every time how much he fucking hates his entry level iMac (an old one with a compromised Fusion Drive and minimum RAM) even though it was rather expensive compared to most computers. My answer is always the same: you spent a lot, but not enough, because with Apple you do not deserve a good experience if you don't go above and beyond in your spending.
In my opinion it is way more disingenuous to advocate for entry-level Apple hardware to people who would be very much satisfied with products costing half as much. The value is just not there, Apple went way too far in the luxury territory in locking down everything and creating a pricing ladder that is engineered to confuse and upsell customers to extract as much money as possible.
For someone who really needs a computer to do more intense work, provided they can work around the tradeoffs of Apple Silicon/macOS and they are willing to spend a large amount of cash, Apple has some great hardware for sure. For everyone else the value is extremely questionnable, especially since they are going full steam ahead into services subscription and the software can be lacking in some ways that will require purchasing even more stuff, the total cost of ownership doesn't make sense anymore. For example, their iPhone SE is absolutely terrible, at 500€ you pay for 6 years old technology with small screen compared to the footprint, terrible battery life, etc. A 500€ mid-range Android is so much better in so many ways that it is just stupid at this point...
As for OLED, I don't think burn-in is a significant concern anymore, and if it is I would argue that you are using it too much like a desktop. In my country you could buy 2 decent OLED laptops for the price of an entry-level MacBook Pro anyway so it doesn't matter as much (and replacing displays of hardware manufacturers other than Apple is much easier and cheaper, so there is that). I think the MacBook Pros are very good for some niche applications, but at viable minimum 2.23k€ price (16Gb RAM/512GB storage) there are a lot of good options so it really requires a careful analysis of actual use case. If you do things related to 3D or engineering it is probably not worth it...
And AFAIK, Google dictates 10+h of battery life with mixed web browsing for all Chromebooks.
I could see a front end dev needing Photoshop for some things, if they don’t have a design team to give them assets.
There are also security software the company says laptops must have which isn’t available for Linux. They only buy and deploy this stuff with Windows and macOS in mind.
A couple weeks ago on HN I saw someone looking for a program to make a demo of their app (I think). The comments were filled with people recommending an app on macOS that was apparently far and away the best option, and many were disappointed by the lack of availability elsewhere. I find there are a lot of situations like this, where I might be able to get the job done on another OS, but the software I actually want to use is on macOS. Obviously this one is a matter of taste to some degree.
It’s not as big an issue as it was 20 years ago, but it’s still an issue for in many environments.
So this can be done. I don't expect the IT support to help me with any Linux issues.
My excuse for using Linux? It makes me more effective at developing software.
I would love to buy Apple hardware, but not from Apple. I mean: M2 13 inch notebook with access to swap/extend memory and storage, regular US keyboard layout and proper desktop Linux (Debian, Alpine, Mint, PopOS!, Fedora Cinamon) or windows. MacOS and the Apple eco system just gets in your way when you're just trying to maintain a multi-platform C++/Java/Rust code base.
WSL is also nice for Bash scripting, but it's not necessary.
It is a check box in the "Add Features" panel. There is nothing to install or setup. Certainly not for linting, unless, again, you're using a Linux tool chain.
But if you are, just check the box. No setup beyond VS Code, bashrc, vimrc, and your tool chain. Same as you would do on Mac.
If anything, all the Mac specific quirks make setting up the Linux tool chains much harder. At least on WSL the entire directory structure matches Linux out of the box. The tool chains just work.
While some of the documentation is in its infancy, the workflow and versatility of cross platform development on Windows, I think, is unmatched.
Feel free to correct me and share successfull cases with wsl1 and containers
Being wrong is no big deal. Being unable to be right is often a very big deal.
Stay classy, Hacker News
I know engineers from a FANG that picked MacBook pros in spite of the specs and only because of the bling/price tag. Them they spent their whole time using it as a remote terminal for Linux servers, and they still complained about the thing being extremely short on RAM and HD.
One of them even tried to convince their managers to give the vision pro a try, even though there was zero use cases for it.
Granted, they drive multiple monitors well with a single USB-C plug, at least with specific combinations of monitors and hubs.
It's high time that the "Apple sells high end gear" shtick is put to rest. Even their macOS treadmill is becoming tiring.
Yes, there are 2k+ laptops from Dell/Lenovo that match and exceed a similarly priced MacBook in pure power, but usually lack battery life and/or build quality.
in case Apple would come up with the idea to take an ipad as external compute unit that would be amazing... just double your ram, compute and screen with it in such a lightweight form factor... should be possible if they want
Also the nice thing for headphones within apple is, that the airpods automatically switch to where the attention is... meaning e.g., in case I watch something on the laptop and pick up an iphone call (no matter if via phone or any app) the airpod automatically switches
I owned a MacBook Pro with the dreaded butterfly keyboard. It was shit.
How many USB ports do the new MacBook air have? The old ones had two. And shipped with 8GB of RAM? These are shit-tier specs.
The 2020 MacBook pros had a nice thing: USB-C charging, and you could charge the from either side. Current models went back to MagSafe, only on one side. The number of USB ports is still very low.
But the are shiny. I guess that counts as quality.
I agree, the butterfly keyboard was shitty but I absolutely love the keyboard on the 2020 rev. It's still not as great as my mechanical desktop keyboard, but for a laptop keyboard it's serious chef's kiss. Also, I have yet to find a trackpad that is anywhere as good as the Macbook. Precision trackpads are still way way worse.
Finally, the thing that always beings me back to MBPs (vs Surfacebooks or Razers) is battery life. I typically get a good 10+ hours on my MBP. Battery life on my old Razer Blade and Surfacebooks were absolutely comically horrible.
However there are two awesome things about my work MBP I would really want from my ThinkPad:
Magsafe charger - too many close calls!
And the track pad.
I can't work properly without an external mouse on my ThinkPad. But on the MBP everything just has the right size, location, proportions and handling on the track pad. I had a mouse for the MBP too but I stopped using it!
Yea, the butterfly was utter shit. And they fucked up the touchbar by not just putting it on TOP of the existing F-keys.
But the rest of the laptop was still well machined :D
I can't do that on Windows without either wrestling with PowerShell or WSL2
Obviously doesn’t apply to all engineers.
I do networking stuff and macOS is on par with Windows - I can't live on it without running into bugs or very questionable behavior for longer than a week. Same as Windows.
> I do networking stuff
Me too, but probably very different stuff. I’m doing p2p stuff over tcp and am affected mostly by sock options, buffer sizes, tcp options etc.
I like apple hardware, but their OS is fucking atrocious. In the year 2024 it still doesn't have a native volume mixer, or any kind of sensible window management shortcuts. Half the things on it have to be fixed with paid software. Complete joke of an OS, if it were up to me I'd stick a linux distro on top of the hardware and be happy
I think they don't because they have an incentive to not do so: they get a cut on all the software you have to purchase on the App Store to make up for it. It might not look like a lot, but if a large portions of Mac users need to buy a 5-10 bucks app to fix the windows management problems, it becomes serious money at 15-30% cut on millions of purchases...
And this is precisely the problem with Apple today. They are not honest enough to fix or improve the stuff they sell at a very high price, both because they sell it anyway and because they put in place many incentives for themselves to not do so.
There is the running meme of the iPad calculator but macOS could also use some care on the calculator/grapher not having received serious attention in decades. At the price they sell their stuff that would seem like a given, but considering they'll make money on the apps you buy to improve that situation, they'll never do so.
After using Apple App Stores for so many years, I wish I didn't, the convenience really isn't worth the cost down the road...
It's great having a chip that is so much different than what our production infrastructure uses.
The same is true of the ipad which is just a miraculous piece of hardware constrained by an impotent operating system.
The vast majority of the software engineers in big companies (that employ a lot more people than big tech and startups combined) who use Java and C# also have predominately Windows laptops (as their employers can manage Windows laptops a lot easier, have agreements with vendors like Dell to buy them with a discount, have software like AV that doesn't support MacOS, etc.).
On top of that MacBooks don't have the best screens and are not the best built. Many Windows laptops have OLED screens or 4K IPS screens. There are premium Windows laptops made out of magnesium and carbon fiber.
Every company I've worked for during the last 12 years gives out MacBook Pros. And I've been developing using Scala / Java for the last 20 years.
Employers manage Macs just fine, this isn't 1999. There have been studies showing that Macs have lower IT maintenance costs compared to Windows.
I admit that I haven't dealt with Windows devices in a long time, maybe there are some good ones available now, but I find your statements to be beyond belief. Apple Silicon Macs have blown the doors off the competition, out performing all but top-end Intel laptops, while using a fraction of the power (and I never even hear the fans come on).
I use Debian + FreeBSD on my personal PCs though.
I've set up my OS exactly as I want it. (I use arch btw ;-))
For dev (at least backend and devops), macOS is not that great.
Not all teams run tons of containers on personal computers. All our servers are running on AWS. I rarely ssh into anything.
I like the fact that OS X is based on UNIX, and not some half-assed bullshit bolted onto Windows. I still have bad memories of trying to use Cygwin 15 years ago. Apparently WSL is an improvement, but I don't care.
Mac runs all the software I need, and it has real UNIX shells.
Still, I just don't think it's that burdensome to get containers running on MacOS, it's just annoying that it happens to work worse than on Windows or Linux. Ignoring the hardware, the only real advantage to MacOS development is when you're targeting Apple products with what you're developing.
I am happy to not support Apple's ecosystem and use a minimally worse laptop from a different brand.
My 15 year old Sony laptop can do better.
Even if Microsoft on Mac is an unmitigated dumpster fire, this is ridiculous.
I avoid using it whenever possible. If people email me, it’d better not be urgent.
(In fact I DO have a spare 13 year old laptop hanging around that still gets used for web browsing, mail and stuff. It is not slow.)
It's fascinating to me how people are still attached to the hardware upgrade cycle as an idea that matters, and yet for a huge chunk of people and scenarios, basically an SSD, 8gb of RAM and an Intel i5 from a decade ago could have been the end of computing history with no real loss to productivity.
I honestly look at people who use Apple or Windows with a bit of pity, because those ecosystems would just give me more stuff to worry about.
The M1 air was only released in November 2020. With a bit of slop in the numbers, its very possible the parent poster bought an intel mac just before the M1 launched.
Still doesn't take a minute to launch Outlook, but I understand your pain.
I keep hoping it will die, because it would be replaced with an M-series MBP and they are way, way, WAY faster than even the best Intel MBP.
It is Microsoft. I could rant all day about the dumpster fire that is the "NEW Microsoft Teams (Work or School)"
It's like the perfect shining example of how MS doesn't give a flaming fuck about their end users.
And while my particular problems might be partially because I am on MacOS, I observe Windows-using colleagues have just as many problems joining meetings (either total refusal, no audio, or sharing issues). So I think using Teams as a measure of any computer is probably not warranted.
I actually rejected a job offer when heard I will be given a macbook pro.
Apple, been the most closed company these days, should be avoided as much as you can, not to mention its macos is useless for linux developers like me, anything else is better.
its keyboard is dumb to me(that stupid command/ctrl key difference), can not even mouse-select and paste is enough for me to avoid Macos at all costs.
Probably best for you both.
For what it's worth, I've had a good success rate at politely asking to be given an equivalent laptop I can put linux on, or provide my own device. I've never had to outright reject an offer due to being required to use a Mac. At worst I get "you'll be responsible for making our dev environment work on your setup".
Only one time did I interview with a place where I asked if I'd be given a choice what hardware/OS I could use. The response was "We use Windows". My response was, "no we do not. Either I will not be using Windows with you, or I will not be using Windows NOT with you". I didn't get an offer. I was cool with it.
Now the performance of Mx Macs convinced me to switch, and I'll die on the hill of Android for life
Literally best keyboard shortcuts out of all major OSes. I don't know what weird crab hands you need to have to comfortably use shortcuts on Windows/Linux. CMD maps PERFECTLY on my thumb.
Pretty much everything going wrong with provisioning involves going extra weird on hw (usually for cheap supplier) and/or pushing weird third party "security" crapware.
I don't even know what you mean by mouse-select and paste.
Presumably they mean linux-style text select & paste, which is done by selecting text and then clicking the middle mouse button to paste it (no explicit "copy" command).
macOS doesn't have built-in support for this, but there are some third-party scripts/apps to enable it.
For example: https://github.com/lodestone/macpaste
Then there's Docker. Running amd64 containers on Apple silicon is slow for obvious reasons. Running arm64 containers is fast, but the actual environment you will be deploying to is almost certainly amd64, so if you're using that locally for dev & test purposes, you can get some surprises in prod. Windows, of course, will happily run amd64 natively.
Very quickly remedied by installing the GNU versions of those commands, ie: "brew install coreutils findutils" (etc)
Then you'll have exactly the same command line switches as on Linux.
that’s up to your team of course, but graviton is generally cheaper than x86 instances nowadays and afaik the same is true on google and the other clouds.
For most devs, doing crud stuff or writing high-level scripting languages, this isn't really a problem. For some devs, working on time-sensitive problems or with strict baseline performance requirements, this is important. For devs developing device drivers, emulation can only get you so far.
No, I said you won’t always be deploying on amd64. Because arm64 is now the cheapest option and generally faster than the sandy bridge vcpu unit that amd64 instances are indexed against (and really, constrained to, intentionally, by AWS).
I never said anything about graviton not being arm64.
It looks like Apple's silicon and software is really good for those doing audio/video. Why people like it for dev is mostly a mystery to me. Though I know a few people who don't really like it but are just intimidated by Linux or just can't handle the small UX differences.
The UX differences are absolutely massive. Even after daily-driving that thinkpad for months, Gnome always felt kinda not quite finished. Maybe KDE is better, but it didn't have Wayland support when I was setting that machine up, which made it a non-starter.
The real killer though is battery life. I can work literally all day unplugged on the mbp and finish up with 40-50% remaining. When i'm traveling these days, i don't even bring a power cable with me during the day. The thinkpad, despite my best efforts with powertop, the most aggressive frequency scaling i could get, and a bunch of other little tricks, lasts 2 hours.
There are niceties about Linux too. Package management is better and the docker experience is _way_ better. Overall though, i'd take the apple silicon macbook 10 times out of 10.
My first gen ThinkPad Nano X1 would be an excellent laptop, if it weren’t for the terrible battery life even in power save mode (which as an aside, slows it down a lot) and its need to spin up a fan to do something as trivial as driving a rather pedestrian 2560x1440 60hz display.
It feels almost like priorities are totally upside down for x86 laptop manufacturers. I totally understand and appreciate that there are performance oriented laptops that aren’t supposed to be good with battery life, but there’s no good reason for there being so few ultraportable and midrange x86 laptops that have good battery life and won’t fry your lap or sound like a jet taking off when pushed a little. It’s an endless sea of mediocrity.
This echoes my experiences for anything that needs power management. Not just that the battery life is worse, but that it degrades quickly. In two years it’s barely usable. I’ve seen this with non-Apple phones and laptops. iPhone otoh is so good these days you don’t need to upgrade until EOL of ~6 years (and even if you need it battery is not more expensive than any other proprietary battery). My last MacBook from 2011 failed a couple of years ago only because of a Radeon GPU inside with a known hw error.
> There are niceties about Linux too.
Yes! If you haven’t tried in years, the Linux desktop experience is awesome (at least close enough) for me – a dev who CAN configure stuff if I need to but find it excruciatingly menial if it isn't related to my core work. It’s really an improvement from a decade ago.
I think the culprit is more likely the power hungry intel CPU in your yoga?
Going on a slight tangent; I've tried but do not like the mac keyboards, they feel very shallow to me, hence why I'm still using my old T480s. The newer thinkpad laptop keyboards all seem to be going that way though (going thinner), much to my dismay. Perhaps a P14s is my next purchase, despite it's bulk.
Anybody with a framework 13 want to comment on their keyboard?
I used a Mac for awhile back in 2015 but it never really stood out to me UX-wise, even compared to Gnome. All I really need to do is open a few windows and then switch between them. In i3 or Sway, opening and switching between windows is very fast and I never have to drag stuff around.
Examples?
My builds are faster, laptop stays cooler, and battery lasts longer. I love it.
If I was building desktop apps I assume it would be a less pleasant experience like you mention.
Modern language tooling (Go, Rust et al) allows one to build and test on any architecture, and the native macOS virtualization (https://developer.apple.com/documentation/virtualization) provides remarkably better performance compared to Docker (which is a better explanation for its fading from daily use).
Your "trend" may, in fact, not actually reflect the reality of how cloud development works at scale.
And I don't know a single macOS developer that "lean(s) on the team member who is on Linux" to leverage tools that are already present on their local machine. My own development environments are IDENTICAL across all three major platforms.
If you deploy on docker (or Kubernetes) on Linux in production, then ideally you should be using docker on your local system as well. Which, for Windows or MacOS users, requires a Linux VM as well.
I know you mean well, though.
There is no Docker on macOS without a hypervisor layer - period - and a VM, though there are multiple possible container runtimes not named Docker that are suitable for devops-y local development deployments (which will always, of course, be constrained in comparison to the scale of lab / staging / production environments). Some of these can better leverage the Rosetta 2 translation layer that Apple provides, than others.
Specifically what confused me in your comment was that you were saying Docker on Mac was superseded by their new native virtualization, which just doesn't make sense to me, for the reasons I was bringing up. I still don't understand what you were trying to say; replacing docker with podman or containerd or something else still doesn't have anything to do with virtualization or Rosetta, or at least I don't see the connection.
I should also say that I don't think anyone really means specifically docker when they talk about it, they probably mean containerization + image repos in general.
There’s quirks to either OS.
Eg when on Gnome it drives me mad that it won’t focus a recently launched apps.
On macOS it annoys me that I have install a 3rd party util to move windows around.
Meh, you just adapt after a while.
So even if all developers of your team are using Linux, unless you want to waste money by ignoring arm64 instances on cloud computing, you'll have to setup cross compilation.
Asahi Linux is shockingly great on Apple Silicon hardware, though.