3 ms·
A good chunk of that is unique to the swift part of xcode. Do the same things in an Objective-C codebase and you'll be surprised about how snappy and non-buggy
by novok 6y ago
A good chunk of that is unique to the swift part of xcode. Do the same things in an Objective-C codebase and you'll be surprised about how snappy and non-buggy everything is.
I maintain today you could've gotten %80-%90 of the benefits of swift with a syntax refresh and add a few new cheap to compile features to Objective-C itself, like stronger nullbables and the ADT enums.
I think the 'good enough software' stuff will stop happening when physical limits start limiting improvements in compute, because the only way to have a competitive advantage then is through better software.
I hope that day is far away although, because it means that something like 8k consumer VR is something that will never happen, where the software is written properly to take proper advantage of the hardware.
- josephg 6y agoRight; probably because most of the obj-c compiler toolchain was implemented when computers were slower. I was beating on xcode in my comment because it deserves it, but this problem isn't confined to xcode and swift. Compiling rust is also extremely slow. The new reddit feels like a slideshow (and despite launching years ago, how have the reddit team still not fixed the performance problems??) We're having this conversation in the context of notion. Starting up Notion on my laptop feels like wading through honey. I really want to love notion, but every time I open it and try to do anything I find my motivation tricking away. Notion isn't even doing anything impressive with all that compute - its just slow. The sales pitch I make in my head for notion is that its a place to organize all my notes and workflows, but like Jira, living in notion means accepting that I work at the speed notion does, and that feels antithetical to the feeling of productivity I have in snappier, lighter tools like Bear and iA writer. But Notion and XCode aren't really the problem. The problem is cultural. It seems to be the worst in the web ecosystem, though its not confined there. My favorite example of all is this issue in web3.js[1]. I can't help but play Benny Hill music in my head while I scroll through this 3 year old, apparently unsolvable issue thread. When the new M1 macs came out lots of people were complaining that there's no 32 gig variant. Holy cow that is so many bytes. The Atari 2600 had 128 bytes of ram. The NES ran super mario bros in 2kb. Its completely ridiculous to me that our software can even fill 16gb doing everyday computing. Is there a ceiling? Will there ever be a ceiling, or should we expect a document editor in 2030 to sit on 256gb of ram, just because thats how much ram modern javascript frameworks use by then? [1] https://github.com/ethereum/web3.js/issues/1178#issuecomment-745694012 https://github.com/ethereum/web3.js/issues/1178#issuecomment...
- novok 6y agoIt's an economic tradeoff. Engineers are expensive and businesses choose what is most productive for them to what customers respond to. Also performance work is not fun and more work than new features. Performance bugs are harder to detect and quantify than normal crash bugs and such because they are statistical ranges, not binary on off states. Performance is taken into account when it matters for the product, you'll notice this in games where they do a lot of perf improvement work. Also swift & rust are slow due to their design as a language. They provide very strong guarantees and make a lot of thing static. It's very similar to the reasons why C++ is slow to compile. Also notion is like 10 engineers last time I checked, and they've decided to go towards speed of dev & features more than nicer, but slower to develop tools.
- systemvoltage 6y agoThe economic stuff fails to account for slow death of their product as customers don’t even know how things have gotten slower over the years. Then all of a sudden a snappy competitor product appears and they jump the ship en masse. The business people are still clueless and continue to double down on more features their customers don’t want. While the competitor is gaining market share.
- josephg 6y ago> Performance is taken into account when it matters for the product, you'll notice this in games where they do a lot of perf improvement work. I think most development shops chronically underestimate how much application performance matters for sales. Most people will never file bug reports when software is slow. They just "won't like that program for some reason". (Or worse, misattribute the reason they don't like your product.) Slowness is invisible to the developers because they're almost always using computers which are much faster than the computers their customers are using. And unless you actually take the time to record performance statistics, you won't have any idea this is the case. Game developers know this. People measure the FPS they get on their gaming computers. But as far as I can tell, the reason isn't an essential quality of video games. The difference is culture. There's a culture in video game development of measuring performance. People have the tools and terminology to talk about it. In comparison, what are notion's performance numbers like? Does notion run at 60fps for the average user? How many ms of typing latency does it usually encounter? Does the team even know? > Also swift & rust are slow due to their design as a language. They provide very strong guarantees and make a lot of thing static. It's very similar to the reasons why C++ is slow to compile. Roll to disbelieve. Swift and rust are simpler languages than C++, and yet compile much more slowly. The reason C++ seems to compile slowly isn't templates. Its because of the way C++ header files need to be parsed over and over again, and thats not a problem rust and swift share. (Rob Pike has some great rants about this if anyone's interested.) A well written, from-scratch Swift compiler should be able to get compilation speeds closer to Go. At least, for debug builds. I suspect if swift and rust were invented 20 years ago, we would still have been able to write compilers that ran at tolerable speeds on the computers of the day. And if thats the case, the reason for slow compilation speed is something other than language design. > Also notion is like 10 engineers last time I checked, and they've decided to go towards speed of dev & features more than nicer, but slower to develop tools. Notion can make that choice if they want. But until they fix performance, I won't / can't use their product. > Also performance work is not fun Speak for yourself - I love performance work. Its so measurable and the feeling of taking something sluggish and making it scream is delightful.