Live data from Hacker News

Reflections of an “Old” Programmer

bennorthrop.com

171–180 of 339 posts

Re: Reflections of an “Old” Programmer

#171
post #97

Earlier quoted context omitted.

> You're not solving hard engineering problems What, in your mind, makes an engineering problem hard? I've certainly had to dig out CS algorithms and 'clever' applications thereof to reach desirable performance out of some custom widgets in front end projects. I don't know if that can considered hard – hindsight tends to make everything seem easy – but it is certainly beyond pasting in a library like you describe. I…

>What, in your mind, makes an engineering problem hard? A problem which requires a high degree of creativity, intelligence, and technical ability, likely one which hasn't been solved before. You're right; it's a bit difficult (at least for me) to define, but we know it when we see it. Sending men to the moon was a hard engineering problem; implementing the UI for gmail was not. You speak of using 'CS algorithms' in y…

You are comparing the sexiest problems of one field with the ordinary problems of another. This is just unfair comparison.

By saying that "we know it when we see it", you are acknowledging that this is a value judgment (nothing wrong with that, just don't present it as an absolute truth). Also, by your definition, sending humans to the moon is not a hard engineering problem. It has been done before; it involves pasting together some relatively well-understood components like rocket engines and guidance systems.

Re: Reflections of an “Old” Programmer

#172
Very sad that the author aspires to be Martin Fowler. Fowler is an adept populariser of other people's ideas, and he does that as marketing effort for Thought Works. AFAIK he has not originated any innovation over the last twenty years, whether it be patterns, enterprise architecture, microservices, generators, refactoring or agile. Basically he's a corporate shill trolling round the conference circuit drumming up consulting gigs for Thought Works by banging on about the latest trend. If you want to aspire to be someone in the software world how about Brad Cox, Steve Wozniak, Guido, Carmack, or Kay, Ingalls and Goldberg?

Re: Reflections of an “Old” Programmer

#173
post #10

Hm. The author works for a web/mobile development agency and uses React Native and GWT as examples of the new and the old, respectively. I hope it isn't news to anybody here that this sort of work is a race to the bottom and has such turnover precisely because it's mostly being done by junior developers. Linux systems programming arcana, for instance, doesn't disintegrate so quickly as the ten years the author cites.…

Twentysomething year old here, so you know, not like you don't have a point but: >the other reason is because it's easy/boring as hell I legitimately think front end development is not only very fun, it can have some really challenging aspects. I wouldn't think there's any programming challenge that is inherently easier because it's on web as opposed to something else. Of course I bet there are domain-specific tasks…

I can't get over the endless yak-shaving in front-end dev. Fighting with browsers that all do things slightly differently, a terrible programming language, an abused, crufty markup language and a baroque styling language on top of that is not my kind of idea of a good time. Not to even get into the node/bower/grunt/gulp/webpack/babel shitshow compile and build process that it seems to be trending towards.

Working on the backend building APIs, optimizing data flows and managing backend services is more fun, and wildly more productive, if less whizz-bang and shiny.

Speaking as a 20-something who frequently forgets he's not a forty-something...

Re: Reflections of an “Old” Programmer

#174
post #46

Please. Reduction to absurdity isn't a valid argument. Are those folks working at large scales? Are they tuning DB's for applications which have to handle hundreds of thousands or millions of transactions per second? I don't imagine you actually know what you're talking about here.

Backend dev here. I think what JSDave says is not absurd and is actually spot on. The goal of an engineer is to make something that works reliably. Most of the time using old time-proven boring already-done-before stuff is the way to go.

Re: Reflections of an “Old” Programmer

#175
post #64

Earlier quoted context omitted.

What's the last truly new thing you can think of? I'm interested because I am young (22) but have studied programming language paradigms and history and I also agree a lot of "new" stuff is old.

I work on navigation software ( http://project-osrm.org/ ). Many of the algorithms we're implementing (or at least considering) only exist in recently published papers, or sit behind unpublished APIs. There have been huge improvements in graph route-finding algorithms in the last decade, so much of it is new, interesting and it's far from run-of-the-mill implementation. I'm 38 - I spent the first many years of my car…

>> backend, specialized algorithm implementation

Sounds great - how does one go about finding that sort of work in the industry?

Re: Reflections of an “Old” Programmer

#176
I understand the analogy with the doctor but I don't think it is true at all. I don't think programming is different from most fields actually.

Perhaps concepts in programming change more rapidly than in other fields but technology ascends there too. For example I've heard dentists discuss new tech and methods they use as if it was a new web framework with different thinking.

Doctors need to learn about new methodologies all the time since science and technology discover new shit all the time and develop new methods to finding and fighting diseases for example. I think most people would be extremely disappointed if they visited a doctor that gave them medical advice that was 40-50 years old and wasn't updated with more modern medicine.

All technology is a means to an end. You don't have to learn the new tools to complete the job if you can have the same outcome and I think many times people are so afraid to become less relevant that they learn stuff they don't actually need.

If you really benefit from learning something, that's when you should learn it and use it.

Re: Reflections of an “Old” Programmer

#177

Earlier quoted context omitted.

New stuff: Machine learning that works. Rust's borrow checker. 3D SLAM that works. Voice input that works. Lots of image processing stuff. Machines with large numbers of non-shared-memory CPUs that are actually useful. Doing non-graphics things in GPUs. The webcrap world is mostly churn, not improvement. Each "framework" puts developers on a treadmill keeping up with the changes. This provides steady employment for m…

Hasn't improved websites much? I remember the days of iframes and jquery monstrosities feigning as web "applications". The idea o a web-based office suite on the web would have been laughable 20 years ago. My guess is you haven't actually built a real web application. The progress we've made in 20 years is astounding.

Have you tried to debug babelified react site with sourcemaps and whatever ...

I spent four hours just to find that the latest and greatest express don't have the simple global site protection with a password (that it had in version 3) like with .htaccess - it is just not possible anymore. There were no elegant solutions.

There may be some marginal progress while doing complex stuff, but doing the simple is harder and harder with each passing year.

Here is a simple question - is making working UI now easier than with MFC circa 1999. If the answer is no- than that progress is imaginary.

Every new thing is strongly opinionated, doesn't work and relies on magic. Debugging is nightmare and we have layers upon layers of abstractions.

Please for the love of Cthulhu - if any of you googlers, facebookers, twitterers read this - next time you start doing the next big thing let these 3 be your guiding lights - the code and flow must be easy to understand, it should be easy to debug, it should be easy to pinpoint where in the code something happens - all of the frameworks' benefits become marginal at best if I have to spend 4 hours finding the exact event chain and context and place in the framework that fires that ajax request.

/rant over

Re: Reflections of an “Old” Programmer

#178
post #55

Earlier quoted context omitted.

> Reducing anything to absurdity isn't a valid argument. You're absolutely right! That applies to frontend dev, too. Anything is easy at trivial scale. Comparing trivial frontend dev to nontrivial everything else does nothing to advance the conversation.

No, not everything is trivial at small scale. Scale is not everything in software development, it just happens to be the most common hard problem web devs will face. There's a whole world of software out there that isn't web development. Some problems are just hard , regardless of scale.

Moving the goalposts. A comment above you have presented "tuning DB's for applications which have to handle hundreds of thousands or millions of transactions per second" as your example of a hard problem. Everything that is hard about it comes from scale.

Re: Reflections of an “Old” Programmer

#179
As a CS-Student i can not imagine going into a profession that you can just learn in some university and then just work in it. For me this seems rather absurd, that you can stop learning. You just have to manage that there is always something new to learn and something you know going obsolete. Thats the way life works, at least in the view of an CS-Student.

Re: Reflections of an “Old” Programmer

#180
post #139

Earlier quoted context omitted.

> Every time I feel like I'm "out of touch" with the hip new thing, I take a weekend to look into it. I tend to discover that the core principles are the same, this time someone has added another C to MVC; or the put their spin on an API for doing X; But that is only for the 'abstractions' they implement; the details are another thing. I feel the only thing that really changed is that now big companies with PR / mark…

What about Go? I like go a lot because I feel like they did hit the mark and they did learn from their predecessors. Strong standard library. Clean syntax. Easily compiles to every major platform and architecture (all you need to do is set an environment variable). Everything statically compiled (as a software distributor, this is super nice!). Phenomenal testing framework. It's not all that innovative, it's just ver…

I tried it and was immediately put off by the monumentally dumb approach to package management (or rather: its non-existence), lack of generics and approach to exception handling.

IMHO If go were invented by anybody other than Google it wouldn't have enjoyed anywhere near the success that it did.

I'm usually extra suspicious of "hot" open source technologies with a marketing budget and/or tech behemoth behind them. It's not that they can't be fundamental steps ahead it's that the marketing can end up causing undeserved popularity.

Post reply on HN