Live data from Hacker News

Choose Boring Technology (2015)

boringtechnology.club

311–320 of 374 posts

Re: Choose Boring Technology (2015)

#311

Earlier quoted context omitted.

I often wonder why investors love paying 5 figure aws bills; even worse, why they consider lower bills or not using 'the cloud' a sign of cto incompetence. Even if the company can run on $500 hosting instead. Must be because it is easy to do DD on: AWS, check, TS (JS is now a reason to not pass VC dd I heard from friends) check , React check, microservices, check, etc.

Not using the cloud has many hidden risks. You need multiple physical locations for reliability, those now need to be staffed. If you instead use cheaper 3rd party hosting companies, you may have hurdles to growth and future migration cost since those companies do not have many of the certifications required. From an investor POV, paying a little extra now is often worth it to reduce risk and remove barriers to explo…

You are right but that does not really explain why you would spend so much money, masking incompetence usually. Like not having database indexes because 'the cloud scales' which I see all the time. And it does scale, running up bills for rds or dynamo to extreme amounts. And investor dd sees this as a positive, like 'spending as much as possible' somehow means things are going into the right direction. It can be, however, I think spending it like this is a weird trend.

I can see the upside for many things, but you can do that efficiently, not costing 5 figures.

Re: Choose Boring Technology (2015)

#312

Earlier quoted context omitted.

I have yet to see this in an enterprise setting, maybe my standard for "average python dev" is too high.

I have yet to see a maintainable Java project of any reasonably large size, anywhere. Java programs are larger than those in other mainstream languages, just by dint of the verbosity of the language (and research backs this up; studies showing errors per LOC are consistent regardless of the language). Ergo...

In which case, golang should result in even less maintainable code since it is more verbose than Java.

That being said, modern Java is quite terse (var, streams, default interfaces, and now records and pattern matching, etc.).

Re: Choose Boring Technology (2015)

#313
post #11

Earlier quoted context omitted.

> The last line of defense against a rogue engineering team is managers who have studied this stuff. If your engineering team is the one pushing in that direction I'd reckon the company was in a bad spot to begin with to have hired that team because it strongly indicates that the management layer (head of tech/CTO) has no technical clue. Hire strong Lead Developers with a proven track record of delivering value to co…

And what about the front end? What's the best, most boring choice there? I was on a project for a bit using React and although it felt like an obvious way to write things, I can't help but feel you can't create something that will last for a decade with it.

I recently started learning Elm. Elm is statically typed functional language which compiles to JavaScript.

The most compelling feature is the guarantee of no runtime exception. It language is pretty stable with glacial release cycle. It also has a ui library called elm-ui which allows to develop ui components without css.

There are lot of posts criticizing Elm of slow release cycle and that the community does not take feedback properly. But atleast for my use-case it does not matter.

I like that the language is very opinionated and just works.

Few plusses for Elm: - Static language - Informative compilation language - Awesome tooling. You just nees to install Elm compiler. No npm required. - < 1s compilation - The Elm Arcitecture(TEA) for ui event handling - Beginner friendly community

Re: Choose Boring Technology (2015)

#314

Earlier quoted context omitted.

> When you have a dataset that is shared and aggregate information is needed not so much and you are likely better of considering a SQL database of some sort. There are best practices for this. Simply create a microservice per table, and then create a microservice that acts as a client to the other services and aggregates or joins the data from those services. No, I'm not kidding. This is literally what people do and…

Is this a joke or people seriously do this?

It's industry best practice -- not a joke. What's more, the recommendation is to have a separate database per service -- one table, one service, one database.

Fuethermore, when a join is desired, the best practice is to implement not just a service that joins the data but maintains it in a table/materialized view of its own, along with a message server such as Kafka. The services responsible for the tables to be joined (customers and orders, for instance) put events on this message bus which the joining service subscribes to in order to know when to update its view. See: https://microservices.io/patterns/data/cqrs.html

And don't get me started on how you do transactions that touch multiple tables in this setup: https://microservices.io/patterns/data/saga.html

I have seen these deployed and advocated as the modern way to write business applications in the wild.

Re: Choose Boring Technology (2015)

#315

Earlier quoted context omitted.

> May I ask how you consider these to be compatible? It was a calculated risk. Since the company I was working for, at the time, was never going to use Swift, my "bread and butter" was at no risk, whatsoever. We were a C++ shop. I just started working with it on nights and weekends. Being a C++ shop, however, we were quite familiar with Lattner and LLVM, so we were aware of his propensity for WIN. That gave me some c…

I appreciate these posts quite a bit. Can you give another example of “playing the long game”?

Here’s something I wrote up about a project that is into its second decade, and just picking up steam. It actually matured just in time for the COVID lockdowns. The best thing I ever did for it was walk away: https://littlegreenviper.com/miscellany/bmlt/

Re: Choose Boring Technology (2015)

#316

Earlier quoted context omitted.

I'm doing technical interviews. There is such a shortage of people that know the basics of programming, that selecting for such l33t skills is out of the question. The hiring process right now is not about selecting the best, it's about selecting those that pass some low bar.

What do you classify as the basics of programming. for loops and if statements?

My current employers hire +- 1/100 applicants. The vast majority fall off before even getting to a coding test. Of the last 20, most are not fluent with conditional logic and iteration, or cannot use a dictionary in an algorithm. In the most recent interview, an "experienced" React developer could not set properties on a JS object.

Re: Choose Boring Technology (2015)

#317

Earlier quoted context omitted.

You absolutely can. React is the gold standard right now. It's already been king for 6 years and it's not going anywhere. The hype for angular died down. The hype for vue has started to die down. This little bit of hype svelte has at the moment will die down. React does have a ton of problems but they all come from the next level of dependencies down. Shit like Gatsby and Nextjs won't pass the test of time. Neither w…

I've been using React since 2014 or so. I can't speak for Angular or Vue, but I'm 100% sold on Svelte. It cuts out all of the crap that React and Redux introduced (lifecycles, hooks, boilerplate, etc.) and boils it all down to fundamentals. You can read the entire docs in a day and fully understand how everything fits together. I dare say it, but Svelte's docs are a breath of fresh air. It's rare that I read document…

I use a browser extension for checking out the tech stack of web apps.

I haven't done it so much lately but a couple years ago whenever I would check an app with nice UX it was React, and if it was terrible UX it was Angular or something else.

Also interested to see where Svelte will go. For my latest project I just didn't choose it because of lack of libraries.

Re: Choose Boring Technology (2015)

#318
post #316

Earlier quoted context omitted.

What do you classify as the basics of programming. for loops and if statements?

My current employers hire +- 1/100 applicants. The vast majority fall off before even getting to a coding test. Of the last 20, most are not fluent with conditional logic and iteration, or cannot use a dictionary in an algorithm. In the most recent interview, an "experienced" React developer could not set properties on a JS object.

When an interview process produces the output 'doesn't know how to do basic things' on a "vast majority" of experienced people who've been doing said things daily for years, the most obvious conclusion is that the interview process is flawed.

Re: Choose Boring Technology (2015)

#319

Earlier quoted context omitted.

I have yet to see this in an enterprise setting, maybe my standard for "average python dev" is too high.

I have yet to see a maintainable Java project of any reasonably large size, anywhere. Java programs are larger than those in other mainstream languages, just by dint of the verbosity of the language (and research backs this up; studies showing errors per LOC are consistent regardless of the language). Ergo...

There is definitely a certain writing style among Java developers that is overly abstract, but there are plenty of examples of properly written code bases as well.

Also, Java’s “verbosity” is pretty much only a constant factor, and not even necessarily in terms of LOC, but width. What research also show is the benefits of static typing. Also, I am fairly sure there is some survivorship bias working in the background, where an ugly java version of a complex domain survived because the language’s great observability sort of kicking it into a working spaghetti code state, while other projects died a premature death.

Re: Choose Boring Technology (2015)

#320
post #86
post #31

Earlier quoted context omitted.

Typically though, FAANGs still solve their problems with boring technologies.

They are big enough to follow all paths concurrently. The F is famously doing their own PHP and while the G was tickling "shiny receptors" all over the world with Go (which ironically could be seen as an example in boring technology enlightenment, considering how it is basically a modern take on 1980ies language features), they were also doing so much plain old java that the parts of the internal tooling they did for…

Your last point is just flat out false — even if sarcastic.

Just to correct the misinformation, Java has been steadily improving since the Oracle years whether you like or hate oracle — the JVM is an absolute workhorse and new exciting features are underway.

Post reply on HN