Live data from Hacker News

Reflections of an “Old” Programmer

bennorthrop.com

221–230 of 339 posts

Re: Reflections of an “Old” Programmer

#221
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…

That almost sounds exactly like the Java argument from the late 90s

clean syntax standard libraries write once, run anyone

Re: Reflections of an “Old” Programmer

#222

It is plain and simple, Kids. I'm 52 - been programming professionally since the 70's when I started writing C code and getting paid for it in 5th grade. Our "professional" is writing glue code, and how it is done and what hoops are jumped through simply do not matter: all that matters is the final shipping product, widget, or logical dodad works for the immediate marketing moment. I speak from enviable experience: g…

> "Get paid. Go home and do what you enjoy. This is all a huge joke anyway."

Would look great on your employer's (if you have any) "Our team testimonials" page :)

Re: Reflections of an “Old” Programmer

#223

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 co…

And gramma Liskov :)

Re: Reflections of an “Old” Programmer

#224
post #139

Earlier quoted context omitted.

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 am a language freak (hard to admit as who is not these days) but have to say I did not try Go yet... so yes, I must.

As a language geek myself, I've been working a lot with Elixir lately at $WORK, which has been an absolute dream. There's pioneer taxes and bug fixes we have to push upstream occasionally to some of our dependencies, but it's been extremely pleasant so far. Clean syntax, well thought out internals, 30 year old host platform designed for server programming, Lisp style macros (it really feels like a Lisp) , an "explicit over implicit" mentality, immutable everything, and a wonderful "Rails without magic" web framework to go along with it.

Re: Reflections of an “Old” Programmer

#225
post #170

Earlier quoted context omitted.

History repeats itself. I'm also "old" and when I saw the first presentation on Angular many years ago, the google engineer started by instantiating the controller from the view . So blatantly wrong, yet noone reacted. I saw the same sh*t go down with JSP, and though to myself that I couldn't be bothered with going through the same thing twice. So I left the presentation and never looked back. That decision served me…

> the google engineer started by instantiating the controller from the view Sort of playing devil's advocate here, but what did you not like about that approach? I'm guessing he should have used dependency injection? Am I missing something else?

Speaking generally (ie: not about Angular), your main app should instantiate the controller, view and model and (constructor) inject model and view into your controller.

Re: Reflections of an “Old” Programmer

#226
post #13

I'm a bit older than the author. 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; or you can tell they didn't learn from the previous solution and this new one misses the mark, but it'll be three years before anyone noti…

While I'm not old, I have been a professional developer for 17 years and feel that first downwards curve in the author's graph (and I get frustrated at the younger programmer's reinventing the wheel from time to time).

However, I never find myself confronted with things that are not genuinely new and interesting to learn and work on. A lot of these things are not new at all, but they are new to me: statistics, linear algebra, machine learning, compiler construction, PL research, model verification, graph algorithms, calculus, engineering modeling, vectorized programming, GPU programming, geometrical computation, and it just goes on and on. In each of those, you will have the fads of the day, the current hot framework, the second current hot framework, the old framework that works better. At the end of the day, I get the textbook, look up university courses on youtube, pick whatever framework shows up first in google, and spend time on the fundamentals. As a crude example, I may have to look up how to do a dot product in numpy / matlab / mathematica / c++ / R every second day, and when i learn something most of my programming is SO-driven, but I also can perfectly write a dot-product in clojure/factor/elixir/arm assembly if you asked me to, and then do a vectorized dot-product in CUDA/Neon SIMD/VHDL because I spent time on the fundamentals. The best thing that happens is when you start to see how one technique appears in so many different fields (for example SVD).

Nothing is new, but most of it is new to me.

After that I do spend a significant amount of time researching my tools (IDE, supporting apps, build systems, frameworks, compilers, programming languages), but that's the craftmanship part of it, and is kind of like doing the dishes and going to the farmer's market to have a nice kitchen to cook in and great ingredients to cook with.

Re: Reflections of an “Old” Programmer

#227

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.…

But one of the downsides of doing Linux systems programming is that it is much more niche and really restricts your options for employers as well as where to live.

>as well as where to live

Those very same companies offer remote work increasingly, as they struggle to find talent in the aforementioned field.

Re: Reflections of an “Old” Programmer

#228

Earlier quoted context omitted.

But one of the downsides of doing Linux systems programming is that it is much more niche and really restricts your options for employers as well as where to live.

Containers is an exploding field, and basically "Linux systems programming". Sure it's more niche than the web, but there are many many companies hiring, all over the world.

Maybe in 5-10 years I'll consider taking a look at containers. Currently, they are a fad not much unlike React.

Re: Reflections of an “Old” Programmer

#229
I find that this pace is a symptom of the Javascript culture of popularity. It is a hallmark achievement in the career of a Javascript developer to be the maintainer of a popular library or framework and monetize their popularity by way of training videos, talks, books, and buy-in from companies building upon their work.

It's not that frightening to me, a mid-30's developer, at this point. I find the fundamentals are more important than the fads and it's relatively easy for me at this point to separate the wheat from the chaff. Is Redux or the Elm architecture good? Yes -- it's a left-fold over a state tree; great! I want that.

Are new things coming out constantly? Yes. Some of them are incremental improvements. That's a good feature to have. It means there are a horde of passionate people constantly improving the tooling and libraries available. I wish some of my preferred languages received even a fraction of the attention that JS gets.

We live in interesting times.

Re: Reflections of an “Old” Programmer

#230
post #170

Earlier quoted context omitted.

History repeats itself. I'm also "old" and when I saw the first presentation on Angular many years ago, the google engineer started by instantiating the controller from the view . So blatantly wrong, yet noone reacted. I saw the same sh*t go down with JSP, and though to myself that I couldn't be bothered with going through the same thing twice. So I left the presentation and never looked back. That decision served me…

> the google engineer started by instantiating the controller from the view Sort of playing devil's advocate here, but what did you not like about that approach? I'm guessing he should have used dependency injection? Am I missing something else?

The controller is supposed to control the view, thats why it's called controller. The controller sends data to the view for presentation and reacts to events from the view and updates the model accordingly. This way the view becomes quite passive, it only knows how to present data and where to send events. You separate the display from the driving of the display.
Post reply on HN