Live data from Hacker News

Building for the 99% Developers

future.a16z.com

241–250 of 310 posts

Re: Building for the 99% Developers

#241
post #225

Earlier quoted context omitted.

It was true then and it's true today. Certainly not in HN or at 8-person startups nobody's ever heard of, but the vast majority of developers work on boring business software in Windows.

Why is it at every tech conference you see a vast preponderance of Mac's? Are conf goers not representative?

1. They're probably not representative

2. You probably notice macs more because of their uniform branding, compared to a mish-mash of different looking other laptops.

3. Is it not enough to watch and listen to a keynote without pulling out a laptop?

Re: Building for the 99% Developers

#242
Not sure I understand what the message of the article is. Sure not everything companies with big scalability requirements do, makes sense for smaller projects. Nevertheless some principles still make sense. E.g. a mono-repo can make sense (again depends on what you want to build) and it is even easier to handle at a small scale.

Re: Building for the 99% Developers

#243
post #231

Earlier quoted context omitted.

I am curious to know how you evaluate a new development product in respect to the ROI? What characteristics should a product have to satisfy your criteria for considering it?

Example - I have JSON based RPC so that systems from other vendors can talk to mine (enterprise backends written in C++). It works like a charm and has ben doing so for years. Here comes this architecture astronaut and tells ma that I should do GraphQL and proceeds to explain me how powerful and cool it is and how everybody and his cat uses it. So on the downside I will waste a gobbles of time and money, on upside -…

Thank you for taking the time to answer. You sound like a good rational engineer. Things that work don't need unnecessary splash of coolness.

On my previous job, I had been working for 15 years on the development of a complex business system. It included desktop apps, mobile apps, webs, on-premises and clouds. Throughout the years, we have introduced many then cutting-edge technologies for new products within the system. Some technologies before they were cool. But, the fine-working-already-done products, we kept supporting with the original technology for the lifetime of the product.

The point is that many new tools and technologies bring a very limited value to the finished working products.

Now, I am a maker of the new development tools. So, I am eager to push them to the world, but wouldn't like to be perceived as an "architecture astronaut". Your opinion helps in understanding how and why engineers choose new tools and technologies.

Re: Building for the 99% Developers

#244
post #15
post #10

We way over complicate things. SQLite can be used for 95% of real world use cases. And whenever WAL2 + BEGIN CONCURRENT get merged into main, it will be able to handle 99% use cases. And don’t fool yourself into believing you’re not in that 1%.

We've been using SQLite for 100% of our data persistence needs for the last ~5-6 years now. Our largest single environment is probably getting close to 500gb total size. Hundreds of concurrent users are no problem for us, even without these enhancements (we use WAL currently). The biggest single trick I learned was to use 1 sqlite connection instance for the entire lifetime of the application. You can add orders of m…

How do you backup a 500 GiB sqlite database ?

Re: Building for the 99% Developers

#245

Earlier quoted context omitted.

To be fair, slack kinda messed up themselves. I am still astonished that they never built video calling. Like MS did use their existing sales channels to stop slack growing, but if slack at least had feature parity with Teams then it would have been a harder sell.

Slack launched video calling in 2016. You can say whatever you want about their UX or ease of use, but you can't say they never built it.

Huh? That kinda proves my point though, as I've never seen or hear anyone using it.

It just boggles the mind, but fair enough seems like a marketing failure rather than a technology one.

Re: Building for the 99% Developers

#246
post #189

Earlier quoted context omitted.

As one of the 99%. What are some of these problems exactly, that me and my extremely large toolkit of cool things I can curl from Github can't solve? Because I'm not a genius. But I'm real good at stapling together some useful crap.

Building a high availability system? The downtime (especially scheduled downtime) of many of these "99%" services is shocking compared to the cutting edge consumer services we're used to. The "hug of death" is an affectionate meme that basically describes the remarkably common scenario where a "99%" website goes down at the precise moment at where it's peaking in popularity and profitability. Or how about high perfor…

Those are usually business decisions.

Pay an extra $$$ for an outage scenario that occurs once a month, and doesn't materially impact our users? Hell no.

Spend XXX developer hours and/or $$$ on hardware to make the site 50% faster, instead of adding new features our users pay for? Hell no.

And let's be honest, for touting speed, Google's awfully slow and bloated these days.

Re: Building for the 99% Developers

#247
post #15

Earlier quoted context omitted.

We've been using SQLite for 100% of our data persistence needs for the last ~5-6 years now. Our largest single environment is probably getting close to 500gb total size. Hundreds of concurrent users are no problem for us, even without these enhancements (we use WAL currently). The biggest single trick I learned was to use 1 sqlite connection instance for the entire lifetime of the application. You can add orders of m…

How do you backup a 500 GiB sqlite database ?

Well, it's ultimately files on a disk, as well as queryable data. So probalby pretty easily.

Logical database backups (I'd point to mysqldump/mydumper & myloader if we were talking about mysql), combined with physical snapshots & copies of the binary files.

500 GiB is a lot, but not too out there these days.

Re: Building for the 99% Developers

#249

> Too many people believe that aiming for good software quality means you need to fully adopt that new technology, whether it’s microservices, GraphQL, or distributed tracing. You’re not done until you’ve switched fully over to the ideal technology. This. We are constantly presented with new and shiny things. And then, barely a year later, there is the next ideal technology. And the next, and the next, and the next.…

> new, in itself, doesn't automagically make it better.

Indeed. It’s often the case that new is worse, and the authors and influencers pushing the new don’t know it yet, or sometimes they do but they downplay that knowing it will take time to get better, and underestimate how long. The reason old defaults to better is simply because it’s been used more, it automatically solves more problems because by the time it’s old it’s been built to solve more problems and it’s weaknesses have been fixed or patched or shimmed or worked around. Old isn’t automagically better either, of course, and things can get too old and too shimmed, but if the new thing is solving the same problems and being compared to something well tested and used by many, it’s very unlikely to be better until it starts getting old.

Maybe we should take a minute to ask: better for who? Better for customers is different than better for programmers. New is both more fun and easier to maintain. New is better for programmers. Old is better for customers, it’s more stable and changes more slowly.

There is something pretty important to be said for being an early participant in a project, programmers who are involved in building and integrating new things automatically become more productive than programmers who get hired to maintain old things. I’ve seen this first-hand in several different ways, the most stark of which was selling a company to programmers better than me, but took years to become productive because they didn’t know how everything worked and didn’t want to break anything.

There is also something to be said for replacing old with new. I’ve seen first hand teams tear down old engines because they felt crufty to build new ones, with the promise that it was going to be fast and easy and that they learned their mistakes the first time. Two completely separate companies launched into a 1 year rewrite that ended up taking 5 years, costing tens of millions, and making a good deal of the same mistakes over again before they were done. Both cases were failures to evaluate how well things were working in the old system, they were blinded to the overall success by the long list of rather minor problems.

Re: Building for the 99% Developers

#250

In the 90s-00s, when I was a younger, (even) more arrogant nerd, I looked down on Microsoft and their stupid technologies: Visual Basic, Access, Word, and more. Simple, limited tools that I only saw ugly, half-broken systems built with. Until I saw a something by Steve Ballmer (I think), explaining that their strategy was to provide tools for those "99% developers". The ones who don't read HN, the ones who don't code…

Reminds me of: > Here's my point: yes, the whole Internet runs on Unix philosophy. But businesses sure don't. The big problem comes up in my description of pipelines up above: they only parse about 99% correctly, which is fine for your idiotic comments about YouTube videos, but pretty nasty when you mangle critical business data. And when the business dudes get involved, they'd rather do anything than mangle their cr…

I get the idea, but it seems tragically misguided in some of the specifics. A lot of average developers can do REST (in the generic sense of JSON over HTTP) well. A lot of smarter-than-average people got mired in SOAP and ended up using a bunch of its features wrong and having integration nightmares with smart people in other departments or other companies who used a different subset of features wrong. The idea that SOAP's rich set of features would result in more secure, correct, and robust software compared to REST was a plausible, logical idea, but it was an idea that didn't pan out, especially for the 99% programmers who were so exhausted and behind schedule when they finally got their SOAP integration working that they couldn't bear to stop and ask themselves what further work they needed to do to reap the promised benefits.

Also, the idea that enterprise Windows business programmers were more into data integrity than the UNIX "Internet" programmers runs contrary to my experience seeing those two cultures encounter each other in the 2000s. In my experience, the former took human intervention for granted to handle unexpected or even routine-but-unusual cases, and the latter understood that their job was to build systems that could operate properly without humans constantly picking data up off the floor and dusting it off. The Windows programmers I worked with were great at creating rough-and-ready GUIs to help human employees do their jobs, honestly truly great at the "make users awesome" aspect of programming, but writing software that worked well enough to run without a human operator was just something they had never had to do. They couldn't understand why you were worried about some weird case that would mangle 0.1% of records, because in their mind that was the kind of thing that an expert user fixes up in Excel every Friday before the reports run over the weekend. A customer sends a payment after we've written off their debt? Never heard of that happening, but if it does, accounts receivable can escalate to Liz and she'll figure it out. February 29th? I think they know better than to run imports on a day like that, but to be safe, we'll remind them.

Those mushy "Internet" programmers inherited a legacy that was rooted in a requirement to be robust against nuclear war[1]. The mind boggling difference in ambition between surviving armageddon and "they know better than to run the software on February 29th, lol" made for a huge difference in culture and made me look up to the "Internet" programmers as intellectual role models while respecting the business-oriented Windows programmers as scrappy, context-sensitive, tactically oriented commandos.

[1] I'm not sure to what extent this was real, but the belief was real.

Post reply on HN