1. 23
  1.  

  2. 26

    Author didn’t raise this point, but I’d like to push back on the narrow view that “real” software development necessitates a giant stack, such as Linux/Docker/k8s/PGSQL.

    It smacks of an overly web-centric view, and also speaks to poor architecture: why is PGSQL needed for the DB layer? You can’t sub in SQLite easily? Why do you need k8s at all to run your app? Why is your web app dependent on being in Linux? You just accept HTTP and return JSON!

    Computing is much bigger than the web, and that’s a feature.

    1. 21

      why is PGSQL needed for the DB layer? You can’t sub in SQLite easily?

      While I agree to some degree with your overall point, I’m not sure that this is a good example of “poor architecture”. SQL’s a “standard” like CSV is a “standard” – there’s a bunch of different implementations, they’re all subtly incompatible, and they all offer different features. It’s perfectly valid to architect a solution around PostgreSQL’s extensive stored function capabilities, or materialized views, or array columns, or etc. SQLite offers no real equivalent to many of Postgres’ features, and where it does they often differ in SQL syntax and behaviour.

      Insisting that you have to be able to drop in SQLite as a lightweight dev solution and save PostgreSQL for Production often means ensuring development is forced to confine itself to less efficient solutions and less deep uses of PostgreSQL’s capabilities. It’s usually a bad tradeoff, in my experience. PostgreSQL is a very powerful tool, and you can’t develop solutions that make good use of its strengths if you’re developing against something with different behaviours and capabilities.

      1. 5

        I’ve had two different versions of MySQL (not even MariaDB) burn me. I already knew that SQL is a standard (with many versions, not just one) but I was surprised at the theory actually coming true. I think a big common one is differing behavior with GROUP BYs but there are plenty of articles comparing behavior between products, if not the same product. You want to dev against your target as much as possible but also stay decoupled like you are saying.

        I had a lot more to say I’m just going to sum up as bullets because, idk, tired of fights.

        • I’m glad computing is bigger than the web. However, there’s nothing bigger than the web and the capabilities are likely to grow. Should that dictate everything? No. But we should cross pollinate ideas. Like self-update, QoL feedback loops, metrics, modern software stacks for embedded etc. A lot of “hardware software” sucks, can we reduce suffering?
        • There’s more to [thing] than [successful use]. (Kotlin+Mobile, Python+AI, Ruby+Rails, Swift+iOS, Linux+Servers). I don’t disagree but momentum, feasibility, use is success, adoption chance and bets? There can be black swan events and second order impacts, however. I think a lot of surprising results are driven by economic engines.
        • You could ask the same question about why an operating system is needed at all. An interesting talk about post-unix runtimes and Jonathan Blow has said a lot about this.

        These two talks have been making me think a lot. Something along the lines of there’s a huge gap between a CLI and a “full app” and the CLI still has a user experience.

        1. 4

          I don’t think they mean SQLite should be good enough for anyone, or any use case. I think they mean that SQLite is often good enough for a lot of things, and jumping straight to a full web stack—and a full database server—isn’t always the best move.

          1. 4

            Unless you’re using language with existing and actually-working sqlite support, using postgres will be an order of magnitude easier.

            1. 9

              What remotely mainstream language doesn’t have SQLite support? Or even more bizarre, what language doesn’t have SQLite but does have a PG client? O.o

              1. 3

                NodeJS for years. And now there’s like 4 of them, so who knows if you pick the right one.

            2. 3

              Perhaps (although the way I read it, “sub in SQLite” implies substituting it in for something already there).

              jumping straight to a full web stack—and a full database server—isn’t always the best move.

              No disagreement there – but I think when most people think about needing Postgres and whatever else to do development on an iPad, they have in mind projects that already exist that they’d like to also be able to use the iPad to work on. It’s easy and good and smart to start with a small stack and simple tools – but when you’ve got an already-in-production project to work on, you can’t really cut back its architectural needs after the fact (and right tool for the job or not, at least the internals of an iPad Pro are beefy enough to handle many of the industrial strength parts of the stack).

        2. 18

          Apple is an Experience Company. Much like Disney, what Apple sells is dreams. It sells you on an idea, on a curated experience of what computing should be in their vision.

          I completely agree with this. The way I usually word it is Apple is not selling a product, but an image or a feeling. You’re not just buying an iPad, you’re becoming an Apple User. While I dislike the lock-in effect of their ecosystem, I have to admit that the vast majority of people don’t care and they love that everything just works with the other products.

          Instead of a single convergent device, they want to build discreet separate devices with different experiences because that is what they sell. They sell experiences.

          Going along with the image they’re selling, separate devices makes more sense from a business perspective. You have an iPhone, that’s great! But do you have the Apple Watch to go along with it? Are you syncing it to your MacBook? Why sell one device if people will pay you for two?

          1. 17

            Exactly! You get it! It is sometimes quite hard to have a conversation about Apple with other computing people because some don’t perceive Apple in this way at all. They try to put it into the same box as Microsoft or other SV companies, but even though their products often contain hardware, software, and services, they are not exactly selling the same “thing”.

            I also posted this HN and the first comment is an exact reiteration of what I posted: someone claiming the iPad is a toy because it can’t run Linux. I really don’t understand this, if the iPad is not suitable, why not go with a Surface instead of simply waiting for iPad Asahi to emerge. Surface hardware is damn great and it already works today, it has worked as a convergence device for years now.

            It seems people prefer to complain on forums about the lack of suitability of an iPad and not use anything, than actually pick something that works for what they want. Surface Linux has been a thing for a long time now.

            1. 6

              upvoting, i’ve noticed this as well, i use some Apple products, but i am not an Apple User. And this is very puzzling to a lot of my “computing people” friends. They find it unfathomable that I have a macbook pro, an ipad (plain ‘ol ipad) and a oneplus phone. And that i prefer to do do most of my development on an ergonomic windows desktop with the big monitors and oodles of specs… in WSL2. yes, on the go i’m in macos, but i’m not locked into anything they have…

              granted, i may be weird, but i have 0 desire for an Apple watch, and it’s because of the reasons outlined in your comment as well as the parent. i kind of wanted some airpods but when i see even Apple Users have the same problems i have with my cheap KZs that i think sound better anyway, i just keep the KZs.

              I’m aae, and I use apple products, but i’m not an Apple User.

              1. 4

                I’m deep into the Apple ecosystem, I feel comfortable there as I’ve been an Apple user since MacOS 8. I like it. That doesn’t mean I don’t have other machines and haven’t explored other solutions throughout the years. And yeah, for some workflows there are solutions that are way better than Apple.

                For example, every time I’m on a coffee shop with my Macbook and decide to read a book for a while, I think how much better that would be on the iPad and then regret only carrying one device. When I was using the Surface Go as my main device, I’d simply remove the keyboard, turn it into portrait and read the book without giving any extra thought to it. It is a more flexible machine.

                1. 1

                  But there is a removable “magic” keyboard for iPad. So if it could do dev things, it’d be similar to the Surface. I don’t have it (I connect an Atreus over USB instead) but from photos or videos it looks even better than the one the Surface had.

                  I do Linux dev on my iPad via ssh and xrdp into my Debian machine. Works fine remotely as well. But if I need to do iPad OS dev, I have to visit my friend who has a Mac and Xcode and a dev account. (I maybe should look into getting a hackintosh in a VM or similar.) It feels so weird not being able to hack and fix the apps right in front of my face.

                  1. 1

                    Even with the new Playgrounds app?

                    1. 1

                      It’s less that I wanna make a new app from scratch (even then, I hear Playgrounds is limited) and more that you need a Mac for things like backups, sideloading, and hacking on existing apps

            2. 5

              I don’t really agree with or, I guess, understand the criticism here. I own an iPad. In fact, I’m typing this comment on it. It’s a useful little device for the things I use it for, but I can’t really imagine a world where I’d want this form factor (including the keyboard “cover” attachment) as a daily driver for writing code. It’s not even about the computing power of the iPad itself — enough people are trying to revive thin clients these days that I’m sure I probably could code on this thing via some sort of web IDE if I really desperately wanted to. I just… don’t want to. I want the bigger device with the bigger screen and full-size keyboard and nice peripherals and such for coding on.

              For me the iPad hits the sweet spot of a device I can pick up when I’m sitting on the couch and want to read or watch or play something. I’ve also written a few blog posts on it, because I compose those in a note-taking app that has an iPad version available.

              So to me it’s not that there’s some sinister plot to keep it from being a full-blown everything-to-everyone computer, or to force me to spend a bunch more money or whatever, it’s that I don’t need or want my iPad, or any device of this general form factor, to be my do-everything computing device.

              (though I grant that for a lot of people it probably does nicely do everything they need, and the full-size “general-purpose computer” probably is and always was overkill for them)

            3. 5

              I don’t think Apple wants iPad to be a “tablet” any more. They’ve advertised it as a new “PC”, introduced iPad OS branding, added mouse + keyboard, and now external displays and window management.

              macOS and iPad OS are converging. This is exactly what Apple once said they won’t do, and yet it’s happening. Big Sur unified interface design language (IMHO very poorly), and this year all new features are unified across macOS and iOS.

              In M1 macOS they’ve allowed iOS apps to run on macOS, which was really baffling at a time, because the feature was poorly implemented, and the apps were clunky on non-touchscreen Macs. However, if they’re planning to have “desktop-class” apps for iPad OS it starts to make sense. iPad OS is going to be the new API for developing apps for Mac.

              I will continue to moan about the fantastic iPad hardware being wasted on a mitten-glove OS. I don’t really need to develop on an iPad, but being able to develop the way I want (not via SSH or whole-circus-in-one-sandbox app) is my benchmark for whether it’s a fully-featured OS yet or not. Currently the biggest problem is that app-centric software model is ill-suited for CLI tools, servers, and system-wide shared libraries and services. Development often requires pieces of software to seamlessly work together, and not be isolated silos with an icon.

              1. 10

                macOS and iPad OS are converging. This is exactly what Apple once said they won’t do, and yet it’s happening.

                They didn’t want it to happen because apps that are designed for a keyboard and mouse are incredibly painful to use on a touchscreen. It’s less clear that the converse is true and they’re now in a world where most apps are developed for iOS and ported to the Mac, rather than vice versa. These aren’t as nice as native things (lack of multi-window support can be annoying) but they’re nowhere near as painful as trying to use something that assumes keyboard shortcuts are fast when all you have is a touchscreen and an on-screen keyboard.

              2. 4

                The Surface is a worse laptop than a Macbook Pro. It is also a worse tablet than an iPad, but it is a better laptop than an iPad and a better tablet than a Macbook.

                I’m glad I have this information, how does it compare to the iPad when used as a cutting board? /s

                1. 2

                  Apple is firmly in the Two Boxes camp. Instead of a single convergent device, they want to build discreet separate devices with different experiences because […]

                  Because then they can sell two boxes 💔💸

                  1. -5

                    what a fucking waste of a read.