Follow

I wrote a blog post about the differences between JavaScript and iOS developers, from a hippy-dippy "we're all the same, but also different, let's learn from each other" angle. I hope you like it.

ashfurrow.com/blog/learning-fr

@ashfurrow "Apple's tools for common development workflows are exceptionally well-polished"
(laughs in xcodebuild)

@ashfurrow " Take the new Xcode extensions API: it's very limited."
Oh at least there's an official Xcode extension API now. For years, you had to reverse-engineer Xcode and swizzle some methods.

@ashfurrow "Remember Xcode's awesome project templates? No such thing exists on JavaScript. At all. There is literally no defined starting place 😱"

But, but, but, create-react-app?

@bugaevc yeah, but you can’t anymore without unsigning the Xcode app :/

@bugaevc haha, why are you using xcodebuild instead of Xcode? 🤔

@ashfurrow CI, for one thing, but I'm not even talking about the xcodebuild CLI, I'm talking about the whole Xcode build system, the obscure unmanageable thing with a weird undocumented config format (.xcproj)

Compare this to buildsystems used on other platforms like Meson, Gradle and NPM/Webpack.

@bugaevc it's totally bonkers. JS projects don't even _have_ a project file, they just have the source files and config files for specific tools. Xcode project files are backwards compatible to Xcode 3.2 for crying out loud.

@ashfurrow
I would say package.json/webpack/gulp or whatever files are the project files like gradle is for java
@bugaevc

@wakingrufus @bugaevc Yes, but every file in an Xcode project has _at least_ two lines in the project file. It doesn't match the directory structure at all, introducing a whole unnecessary layer of abstraction :(

@ashfurrow @bugaevc
Yeah. Sometimes I wonder if people who love to hate on gradle, etc have ever used these cruder tools.

@wakingrufus @ashfurrow I have a love/hate relationship with Gradle. It's great when it works, but it can be a pain to set up (there can never be enough docs), and it's dog slow for :android: projects.

But then I remind myself that iOS folks have *this* to deal with...

@bugaevc I agree completely, I was being facetious. Apple's response would probably be "just use Xcode." And as for CI, well... Apple cares less about CI than it does about unit testing :\

@ashfurrow OK, but I had to view source rather than put up with your fauxcratic dialogue chat.

Which is one advantage of JS dev, it's like old-timey BASIC where I can hit Break and screw with the code. But that's also terrible.

Lack of dev tools ecosystem outside of Apple, and disagreement with this Swift marketing language, is why I quit (very profitably) sharecropping for them.

@ashfurrow @mdhughes Just wanted to echo this, except I was mobile at the time so I gave up. Got tired of pinch zooming and scrolling for each line. I'll read it on desktop later, though. :)

@tewha @mdhughes FINE I'll add a link to the JSON source code on GitHub :D

@ashfurrow @mdhughes One thing I find funny is the "slow" complaint. But I'm doing Lambda/Gateway work, so I guess it makes sense that my POV would be different. I find doing anything at all in Javascript infuriating in terms of development speed, and not because of Javascript.

@tewha @ashfurrow Right, I mostly work in Electron, I change code, ⌘S, ⌘Tab to the app, ⌘R, and it's loaded. I could even make it watch for file changes and reload itself.

@ashfurrow I love the header on your that post! It looks like a screenshot from Rise to Ruins

@edwardloveall thanks! It’s based on Conway’s Game of Life, and I use a script to download them from a generative art twitter account: github.com/ashfurrow/blog/blob

Sign in to participate in the conversation
Mastodon for Tech Folks

This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either! We adhere to an adapted version of the TootCat Code of Conduct and follow the Toot Café list of blocked instances. Ash is the admin and is supported by Fuzzface, Brian!, and Daniel Glus as moderators. Hosting costs are largely covered by our generous supporters on Patreon – thanks for all the help!