Settings

Theme

Ask HN: What’s your current hot take in software engineering?

20 points by jreed91 4 years ago · 36 comments


mikewarot 4 years ago

1> Because no current OS is based on capabilities, no current OS can be trusted to secure an application. This void is being filled with containers and virtualization as a stopgap. Eventually, capability based operating systems could fix this, and become a trillion dollar market.

2> There should only be one logical task per line of code. The right density is that of basic or pascal. Clever use of compound assignments, macros, etc. cost more than their worth in the long run. It makes code harder to read, and easier to misunderstand, even when you're writing it.

3> Moore's law gave us a nice boost in hardware, but the ride is coming to an end. If your software doesn't distribute across cores, you're going to be stuck in the slow lane compared to that which does.

4> Accounts with usernames and passwords are going away. Capability tokens that can be revoked and renewed are going to be the next big thing. Think Flickr's guest pass to look at an otherwise private photo album, for example.

  • 0x445442 4 years ago

    Agree with point 2. But 2&3 are somewhat orthogonal.

    • mikewarot 4 years ago

      Well, the written density of source code has to match the impedance of the programmers that deal with it, not the computer, which deals with binary executable just fine.

      It seems to me the more clever you are, the harder it is to understand and debug code. Breaking things down into logical steps, but not too far, works best for me, and I suspect, but can't prove, the general case as well.

tedmiston 4 years ago

The frontend "stack" has become unnecessarily complicated in the last ~5 years.

  • schwartzworld 4 years ago

    What an unusual take to see on HN.

    I love my modern frontend tools: frameworks that put state first and let me work with lots of data instead of endlessly fiddling with the dom, linters and code formatters that eliminate the need to think about whitespace and optional parens, build tools that let me target old browsers without writing additional code, intellisense that tells me what types of arguments a function accepts.

    I still build a lot of things in vanilla JS, but ease of getting going is a tradeoff, because eventually I miss having prettier and typescript.

  • labarilem 4 years ago

    Sometimes I've had the impression that new FE frameworks (or libraries) arise to solve the complexity problem to then become a big complexity problem themselves.

    • tedmiston 4 years ago

      Want to use modern syntax? Easy! just:

      - switch to a new language

      - add a new framework

      - use a build tool / bundler and polyfills since all of those modern features aren't actually supported across your user's browsers / versions

      - use web components... sorta, but not directly

      - use a modern front-end shadow DOM-y framework with a dependency tree so deep that it could never be audited

      - while you're here, take all of your CSS and abstract it to a meta language using template strings and jam it inside your JS / TS component files directly

      - i know we are using all of this cool modern stuff, but... jQuery and Bootstrap still exist, so fallback if you feel like having fun and why not just add them to the mix too

      - web app? no, no, no, this is a micro-frontend

      - oh yeah, btw your SEO is going to suck with all of that client-side rendering in the single-page app, but not to worry, server-side rendering to the rescue

      - so amazing how the future just works!™

      [On a more serious note, I do actually appreciate some of the sane and simple modern frontend tools (we need more of those!) But going through all of this crap feels like overkill for an average run-of-the-mill CRUD web app. Just my 2¢.]

    • krasicki 4 years ago

      The Trouble with Tribbles

  • Graffur 4 years ago

    Only if you make it. If you use React without trying to maintain state it's quite simple.

marcofiset 4 years ago

There's way too much bloat in modern web dev.

Not everything benefits from being a SPA (quite the contrary).

josephcsible 4 years ago

The benefits of Kubernetes aren't worth its immense complexity in most organizations. If you want to put things in containers, just use Docker Swarm.

  • labarilem 4 years ago

    Sometimes even single host + docker-compose solves the problem.

  • tedmiston 4 years ago

    I work in DevOps and would argue this view is very reasonable and commonplace enough now that I wouldn't even consider it a hot take (and I also think it's correct). [Besides perhaps the Docker Swarm recommendation part specifically vs a managed service.]

labarilem 4 years ago

Some backend frameworks (of various languages) have way too much abstraction and configuration. This usually means coding a small non-standard feature takes lots of time. But coding only standard (e.g. CRUD) features is fairly quick if you don't have a big framework too.

Also, lots of developers never know what happens below that stuff. Don't get me started on how many people I've seen despairing over "configuration debugging".

Some really big projects can be exceptions to this line of thought. But most teams don't work on those really big projects.

yen223 4 years ago

There's not enough data in the practice of software engineering. A lot of software engineering "best practices" aren't backed by any kind of evidence.

simantel 4 years ago

Most single-page apps shouldn't be single-page apps. Start with server-rendered HTML and forms. Maybe sprinkle in some jQuery or Alpine or HTMX if you really need to.

  • Graffur 4 years ago

    That is how websites used to be made. jQuery's imperative nature means it can get complex pretty fast. It also doesn't really have a recommended way to structure code. Bringing new devs into an existing large jQuery project is pretty tough.

  • krasicki 4 years ago

    Svelte

genmud 4 years ago

I don't trust any software involved in safety critical applications that can be updated after manufacture.

To clarify, I find that engineers rely too heavily to let their users find bugs in the field and most engineers tend to think "oh, I'm sure it isn't a big deal, and if it is we can just update the firmware/software".

tedmiston 4 years ago

Start with a monolith, not microservices.

tmaly 4 years ago

Many of the problems frameworks are trying to solve were solved many years ago. People just like shinny new toys.

moneywoes 4 years ago

Offshoring is a real threat to software development and salaries are going to drop in numbers reminiscent of 2001

buzz_worthy 4 years ago

My current hot take is that RedwoodJS has solved most issues with web app development. It's so good to use.

alexmingoia 4 years ago

Software can be shipped on time. Professionals meet deadlines. Deadlines are beneficial for creative work.

zaphar 4 years ago

Most places build their software using incredibly subpar tooling. This will not change anytime soon.

  • marcofiset 4 years ago

    I'm curious as to what do you consider being subpar tooling, or on-par tooling for that matter.

tored 4 years ago

Software & software development will suck this year too, exactly like last year.

recursivedoubts 4 years ago

hypermedia is a better architecture for most web applications being built today

type0 4 years ago

There are no real Full stack developers

  • marcofiset 4 years ago

    It depends on your definition of full stack.

    What do you make of solo-preneurs, who handle every single thing in their business including the technical/coding side?

asfarley 4 years ago

Most important software is done already.

Parkeradam916 4 years ago

Computer science

krasicki 4 years ago

Watch your back.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection