Why would you learn C++ in 2016? - <AUTHOR> http://itscompiling.eu/2016/03/10/why-learn-cpp-2016/ <comment><USER2> A big advantage of _learning_ C++ is so that you understand the concepts of ownership and lifetime, along with type abstractions and using types to enforce invariants in how your API is used.

I try to avoid using C++ for any pet projects if I can help it, but I've found that being forced to use it for about 4 years really changed how I thought about relationships between objects. My Java code c. 2005 was basically like spaghetti; if I needed to operate on an object, I'd pass in a reference somewhere and call whatever I needed, and then let the garbage collector (maybe or maybe not) clean it up. In C++ this _doesn 't work_ \- you will have an unmanageable mess of memory leaks and use-after-frees (or reference cycles if you resort to shared_ptr). So I had to learn how common program architectures (servers, compilers, distributed parallel programs) manage memory and assign ownership to certain overall scopes. This in turn has informed how I design my production Swift, Javascript, and Python code, or use Java dependency-injection frameworks like Dagger.

I still appreciate being able to write spaghetti while prototyping, but I've found that maintainable production programs seriously benefit from having clear notions of object ownership and lifetime.

<comment><USER3> I think Rust will teach you out of the box a lot more about concepts of ownership and lifetime, i know i learned a lot from Rust.

<comment><USER4> Sadly, it won't teach you what happens if you fail to consider something.

This means, long hours of tracing, debugging, leak checks etc.

The lesson is: never ever rely on compiler, framework, language or other potentially buggy tools to think for you. Even with Rust's "hard" approach, you can get complacent and hemorrhage performance and memory until there's no turning back.

Those things were written by fallible people without hard mathematical proof everywhere, after all. Rust and especially its libraries too.

Understand libraries, their implementation and design trade-offs if you're using them.

<comment><USER5> > This means, long hours of tracing, debugging, leak checks etc.

But you don't have undefined behavior to debug, and that makes debugging easier. Trying to reverse engineer from a corrupted memory dump from a production system what the compiler did to your code and relate that back to where it went wrong is something you will have to do in C++, given enough time. You don't have to do that in Rust.

</comment></comment></comment></comment><comment><USER6> The target audience for the code I write is not the compiler but my coworkers and the gals and guys who will maintain the stuff after I leave a project.

So I prefer to choose a language where I can nicely express the intent of what I code. Java is a good compromise, because it's easy to follow (even if it's quite verbose and mainly stuck in the world of nouns).

C++ is hard for that. It's an extremely complex language that got extended over the years and it takes a quite long time to master, for example compared to Java.

Yes I know, C++ is more "capable" than Java but it's not efficient in the hours-spend-per-solved-problem way of things.

Yes I know, there are you C++ whiz kids out there who are insanely fast using the language. But I experienced teams using it, and in a team C++ does not scale well. Adding more and more features to it makes it a cool language, but not one which I like to use in my day job.

And I'm not sure what I'd use it for. I use Java for the day-to-day boring "enterprise" world, twiddle around with dynamic languages for the hobby (yay to the recurrence of lisp!) and for close to the hardware stuff I'd use plain C - which is a not so bad language at all. And it's hard to beat speed-wise, writing C++ that keeps up with C is possible but not trivial.

And if I'd have to look forward I'd check out rust or go or even look at some really mindbending stuff like erlang. Parallelism can't be evaded in the modern world and using a language tailored to that is a great thing. (Yea, I'm sure there also is a C++ library implementing the actor model).

<comment><USER7> My preference is to use C++ like a C with some extra useful features, and not "go full C++" by trying to "do everything the C++ way". C++ has a lot of features and is growing but, contrary to what a lot of evangelism seems to say, you are not obliged to use all of them. Use a feature when it makes the code simpler and the effort reduced, don't try to use one and complicate things just because it's a new feature that seems interesting.

<comment><USER8> This is how I feel. Even as a Unix/"Pure C" fanboy, just having the STL is a huge time saver.

</comment></comment></comment><comment><USER9> Mostly spot on.

That said I can seriously see Rust giving C++ a run for it's money in about 2-3 years. All these things you have to learn the hard way(ownership, move semantics, dangling pointers) are dealt with up-front in Rust. They really aren't bolted on as an afterthought but a core part of the language(std::move I'm looking at you!).

<comment><USER10> I've been looking Rust with good eyes and I want to be using it in my future projects in College. But how easy would it be for developers to "give up" OOP for a more safe and up-front language like Rust?

I mean this as a serious question, cause I see C++ being used instead of C thanks to its multi-paradigm capability and I don't know how Rust could fight that for now.

<comment><USER11> Rust is currently lacking plenty of "quality of life" features which even C++ has (eg, default parameters). Not to mention a good IDE. I do think it's the first serious contender to eventually replace C++, but it's really not there yet.

It's definitely worth trying and learning. I would've ditched C++98 in a heartbeat to move to Rust, but C++ is a pretty exciting and productive place to be ever since C++11.

<comment><USER12> I haven't needed an IDE in Rust. The auto-generated documentation is usually good enough for all my needs. However, C++ is pretty awful without an IDE, because you can easily end up with deep object hierarchies, usually with two files per object.

It's also nice to just tab to your terminal and do `cargo run` and get your code compiled out of the box. Writing a decent makefile (or whatever else you plan to do) for C++ is comparatively quite a hassle.

</comment></comment></comment></comment><comment><USER13> Almost everything is a crud app. Game developers are notoriously abused in compensation and work hours.

I do think c++ provides an interesting area to program into but the part where you do it to avoid places with business requirements would only speak to programmers who don't yet realize that the business perspective of your code is where your career growth and potential come from (not from learning more and more advanced coding technique).

<comment><USER14> > programmers who don't yet realize that the business perspective of your code > is where your career growth and potential come from (not from learning more > and more advanced coding technique).

Yes and no. I think programmers get the biggest lift, career-wise, from being able to put themselves in the shoes of a stakeholder while coding and being able to talk intelligently about what they produce to non-technical people. But that's just the price of admission to work in an environment where you don't get treated like shit usually.

Beyond that, if you want to work on problems that you really enjoy then finding a technical specialization that gets you excited to go to work is a must. Then find a job where your knowledge in that area translates to business value. If that sounds hard, spend some more time socializing with other people in your industry. Consulting or working on OSS projects helped me a ton in this area.

That's the arc my career has taken at least, and I'm still early in it.

</comment></comment><comment><USER15> "Video game developer is considered to be one of the most rewarding jobs in a software industry."

I would not agree with that. Unless you insert 'mistakenly' into that sentence or replace 'rewarding' with 'underpaid and overworked'.

<comment><USER16> I've been lucky in my career in games and have worked for some great people. Now I'm my own boss and try to treat my employees fairly. It makes me sad to hear about mistreatment in games.

I think working in games can absolutely be incredibly rewarding if you love the medium and delighting players. On huge teams individual effort can be hard to connect to player enjoyment but I've found it super fun to work on and lead smaller teams where everyone can directly impact players and get concrete immediate feedback on how your work is affecting player experience.

Unlike many other areas of software development most game features immediately impact how players perceive your game. I love the immediacy of that connection.

<comment><USER17> I would love to do game development / programming. The horror stories about long hours, low pay, lots of crunch all have driven me away from it so far. Gamasutra[0] did a nice article about how crunch makes games less likely to succeed (among other things); I hope this kind of stuff changes the mindset of the industry.

[0][http://www.gamasutra.com/blogs/PaulTozour/20150120/234443/Th...](http://www.gamasutra.com/blogs/PaulTozour/20150120/234443/The_Game_Outcomes_Project_Part_4_Crunch_Makes_Games_Worse.php)

</comment></comment></comment><comment><USER3> I agree 100% with second point. I enjoy writing c++11/14 and it's not my primary language. 10 years ago i would say no to c++ but today it's like writing in different language.

Qt is another huge argument why i use C++, there is no alternative (or i don't know any other cross-platform framework as good and mature as Qt is).

<comment><USER18> How about Qt bindings to other languages? Last I checked for Python (like 4 years) ago, the biggest problem I had was with licence (GPL). But yeah, compared to Python, using C++ also gives me system threads which might come handy every now and then for CPU intensive stuff.

<comment><USER19> The problem with the Python Qt bindings, in my experience, is that PyQt is not... pythonic. I like Pythonic things, like Flask, over less-Pythonic alternatives, like Django. At least in principal. And yes, I know Django has gotten better about it over the years. I need to try a new project in it at some point, especially considering Flask's atrophy.

But PyQt is not so much a binding layer as just Qt in Python, literally. It has to be some kind of semantic offense though, since I have no problem writing Qt C++ to begin with. It is just the language and style of the API itself favors C++ because thats what it is made for.

QML and Python, on the other hand? Lovely. If it didn't depend on all of PyQt to just start up a QML program and signaling into / out of it, I'd be all over that idea.

Which is probably where I am super interested on the Rust front. qmlrs showed a lot of promise last year, and while the project seems to be suffering from a lack of contributions as of late, someone will eventually pick up the reigns - I do not think any other GUI framework is even close to appropriate for Rust to begin with anyway.

</comment></comment></comment><comment><USER20> I tend to think that the C++ standards committee went off into template la-la land a few years back. Everything has to involve templates, "metaprogramming", and excessive gyrations within the type system. If you want to compute at compile time, C++ templates are a terrible way to do it.

The fundamental problem with C++ is that it has hiding ("abstraction") without safety. No other major language does that. In C, there's no memory safety but everything is explicit in source. In memory-safe languages, there's memory safety even if there's lots of abstraction.

Rust has a brilliant idea in the borrow checker, but the type system is kind of weird, the attempt to bolt on functional programming is marginal, and error handling involves hacks such as "try!()". But with enough use, those aren't so bad. Maybe. Personally I would have preferred Python-type "with" clauses and exception handling to RAII. If anything goes wrong in a destructor, Rust cannot help you.

<comment><USER21> > If you want to compute at compile time

I assume you're not up to speed on all the constexpr work.

<comment><USER20> I didn't realize that as of C++14, you can now execute loops at compile time. Does that work in many compilers?

<comment><USER22> Wouldn't any fully standards compliant compiler for c++14 support that feature?

</comment></comment></comment></comment><comment><USER23> When Moore's Law ends (imminently), performance and performance/watt will be harder and harder to come by.

In the long term, there may be a reversal in the trend towards "easy" languages.

<comment><USER24> There already is a "reversal", to some extent, in that statically typed languages are making a comeback.

However, the performance of dynamically typed languages has also improved a ton. It's not unrealistic to think that you could write simple JS code and get about 50% of the performance of an equivalent C function, possibly more.

<comment><USER25> you are already there for some admittedly contrived situations.

Things like simple loops that work on typed arrays in javascript can really give C/C++ a run for their money right now.

</comment></comment></comment><comment><USER26> I don't know why anyone would think C++ is dead. If you need top-notch performance, there's often no reasonable alternative.

<comment><USER27> stupid question: why do people prefer C++ over C? is _C_ considered dead?

<comment><USER28> I miss generics and RAII when I have to use C.

<comment><USER29> RAII is nice—I hope GCC's __attribute__((cleanup)) gets included in C2x.

Templates though... are nice, I guess, but the cost in compile time, ABI, code size, and ease of debugging is a lot to swallow.

Besides, with the preprocessor and M4 you can get many of the benefits of templates, albeit with most of the downsides (and a few more to boot).

<comment><USER30> well, santaclaus wrote 'generics', not 'templates'. So presumably that means containers like std::vector, or std::unordered_map. Those are pretty easy to deal with.

</comment></comment></comment></comment></comment><comment><USER31> I'm in the middle of C++ For Engineers and Scientists, learning about STL and vectors. Though I'm an EE and learning it for software defined radio, specifically GNU Radio.

Seems like all the really high performance stuff is in C++, C, or Fortran.

Recently learning Python, and knowing some basic C for microcontrollers, I can see how OOP is really handy, thus C++.

</comment><comment><USER32> I'm surprised to find no mention of embedded development. C++ seems to have a foothold there.

<comment><USER33> You're right, but I just couldn't realistically enumerate all the places where C++ is used. There will always be something missing.

</comment></comment><comment><USER34> I haven't used C++ in about... 12 years. I'll admit ignorance about the updates that have occurred in recently, so I've got a general question: How is the compatibility between different versions? Specifically, would a C++ 11 compiler be able to compile legacy code written for C++ 03?

<comment><USER4> Yes in 99.9% of cases. The main trouble could come from the angle of accidental move (rvalue cast) somewhere invoking a broken/wrong move constructor or assignment.

Of course, crusty old code can be buggy yet originally working - e.g. relying on implementation defined or undefined behavior. (or even bugs in compiler or standard library implementation)

</comment></comment><comment><USER35> The worst thing in modern C++ is metaprogramming. It's powerful technique, but the syntax is awful _, programs are unreadable & unmaintainable. Moreover, compilers don't help with debugging such code, diagnostics messages rarely tell anything useful. Not to mention frequent ICEs, at least in MSVC. :)

_ As a programmer who already knew functional programming and have some experience in SML and Ocaml, I found C++-functional-programming really annoying.

</comment><comment><USER36> If you're going to write a compiler, please, for the love of Bjarne Stroustrup, don't write it in C++. There are so many better modern languages for writing a compiler: OCaml, Haskell, Rust, and Terra to name a few. You really want features like algebraic data types and a sane package manager in your language of choice. In my mind, the only use case for C++ is interfacing with existing C++ libraries/codebases. All other tasks can be better relegated to superior languages.

<comment><USER37> Golang's compiler was originally written in C++, so people are actively avoiding your advice.

<comment><USER38> no, it wasn't. the go compilers initially came from Plan 9, which hasn't seen any C++ code ever :)

<comment><USER37> "Came from Plan 9". What does that mean?

<comment><USER39> Plan 9 was a research OS that was sort of intended to be a "next generation" Unix. The Golang project is led by at least one person who worked on the Plan 9 OS, and overall it seems to be heavily inspired by Plan 9's design.

[https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs](https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs)

<comment><USER37> Yes, I know that. But I don't understand the implication that Go came magically from Plan 9. I recall reading Kernighan stating that the first Go compiler was written in C++ before bootstrapping.

<comment><USER39> Sorry, I misunderstood your comment. I think the original poster was referring to the Plan 9 team's strong preference for C over C++. Plan 9 was written with a modified version of C, and the developers seemed to be very interested in evolving the C language. As far as I can tell, they never used C++.

> In the presentation before the awarding of the Japan Prize today, you were > quoted on the distinction between research and development. [The former, > Thompson stated, was directionless, whereas development had a specific goal > in mind.] So in that context, is Go experimental? > Yes. When the three of > us [Thompson, Rob Pike, and Robert Griesemer] got started, it was pure > research. The three of us got together and decided that we hated C++. > [laughter] [1]

It looks like you were half-right about the early Go compiler being partly written in C++: There were two compilers, and "gccgo" had a C++ front-end, while their homemade compiler "gc" was written entirely in C. [2]

[1] [http://www.drdobbs.com/open-source/interview-with-ken- thomps...](http://www.drdobbs.com/open-source/interview-with-ken- thompson/229502480)

[2] [https://golang.org/doc/faq#What_compiler_technology_is_used_...](https://golang.org/doc/faq#What_compiler_technology_is_used_to_build_the_compilers)

</comment></comment></comment></comment></comment></comment></comment><comment><USER30> I think C++ was dead from like 2005 to 2011, then it started respawning (to deliberately borrow a term from fps-shooters ;-).

</comment><comment><USER40> Can't read on ios due to social media buttons overlapping the text.

<comment><USER41> Get yourself some content blockerz, yo.

<comment><USER41> Oops… they're showing up on mine too with the blockers

<comment><USER41> Haha, you guys really hated these two comments.

</comment></comment></comment></comment><comment><USER42> You learn pretty much any skill because it's in demand and people will pay you to do it. Of course there are some things you'd rather do or not do independent of money, but it's a good place to start.

A better question would really be "What factors would lead me to believe C++ is right tool for a particular task?" Which, I think requires a bit more depth than you'll find in this article.

<comment><USER33> As the author of the article, I can only say that I agree with you but I just wanted to write a little bit longer version of "Hey, look, C++ is alive and there are still interesting jobs involving using it!". Your question is something absolutely different, and yes, it should be given much more in-depth thinking.

</comment></comment><comment><USER43> I entirely agree with this -- in a lot of ways C++ is truly awful (though it's getting much better); but! It's the only practical solution for a lot of interesting work. I think when people are doing something hard they always reach for the pragmatic solution rather than the principled one, and C++ is nothing if not pragmatic.

</comment><comment><USER44> I think with C/C++ you learn how the machine really works (you could argue that Assembler would be better but C/C++ hits a sweet spot for me) . A lot of of people who have grown up with GC languages don't seem to be aware that under the hood there is still some C code that allocates and releases memory. There is no magic.

</comment><comment><USER45> > The appearance of GPGPUs along with parallel computation frameworks such as > CUDA and OpenCL created demand for C++ programmers with this kind of > expertise.

This is a bit ironic because using accelerated APIs means the host language could be anything and it would still be 99% as fast.

<comment><USER17> Maybe many of the problems they work with are also CPU bound? C++ programmers also tend to be somewhat more familiar with how memory is transferred to graphics cards, but anyone could potentially learn in any language. AoS or SoA?

</comment></comment><comment><USER46> I'd consider learning it to work on a critical FOSS projects already done in C++, make money with it, or write language analysis/transformation tools to make C++ apps safer automatically. Little reason to use it in a new project without legacy C++ code.

<comment><USER47> Any insight into why Genode went with C++? That, plus swearing to never program in it again after doing so for a decade, rather curb my enthusiasm towards it.

<comment><USER46> Jesus... No I didn't know. So, add that to the list of reasons I might grudgingly learn C++.

</comment></comment></comment><comment><USER48> As someone who hasn't programmed much C++ in the last 10 years, what's a good book to get caught up with all the new stuff?

<comment><USER49> I like both "A Tour of C++" by Stroustrup and "Effective Modern C++" by Scott Meyers. Though, the latter is a bit dense if you are unfamiliar with c++.

</comment></comment><comment><USER50> What are some good resources for learning C++ with an eye to these modern practices?

<comment><USER51> Try Kate Gregory's Pluralsight courses.

</comment></comment><comment><USER52> D is a better language than C++.

<comment><USER41> Pff, E is better than D any day of the week. Trust me; I'm a programmer.

</comment></comment><comment><USER52> I will take a look at C++ when they get rid of header files.

<comment><USER53> I actually kind of like header files. I find that they can nicely separate external interfaces from internal interfaces. They also can summarize an interface nicely.

They are not without problems. Complete template definitions, default circular includes. Not supporting partial classes. Ect.

<comment><USER54> Compared to modules I don't think header files have even a single redeeming quality. They are a historical artifact.

</comment></comment></comment><comment><USER55> _insert citizen kane slow clap gif here_</comment>


OpenLara – Web-based classic Tomb Raider engine remake - <AUTHOR> http://xproger.info/projects/OpenLara/ <comment><USER2> In case anyone is curious, this appears to be an Emscripten-compiled C++ project. The remake and engine itself isn't necessarily 'web-based'.

<comment><USER3> ...and for this it is really small, really nice! The asm.js blob is just a 180 KByte download, including the WebGL and WebAudio wrapper (and it looks like an ogg-vorbis and/or mp3 software decoder is also included, although I don't know which one is used in the emscripten build).

<comment><USER2> Appears to be ogg if not Emscripten based on the sndName in game::init() [https://github.com/XProger/OpenLara/blob/master/src/game.h](https://github.com/XProger/OpenLara/blob/master/src/game.h)

Yeah Emscripten and projects like this are pretty impressive

Edit: I apparently can't read

</comment></comment></comment><comment><USER4> Wow, the demo is just published with a level from the original game with the original assets… If OpenMW did a directly playable web version with the original world, Bethesda would not like that :D

<comment><USER5> Yeah, they're going to be hearing from Square Enix's lawyers.

</comment></comment><comment><USER6> Super impressive!

I played a good chunk of the demo level and only noticed a few glitches (e.g. bear getting stuck in the wall, some non-optimal camera movement - but maybe that matches the original?).

One error that I hit a good way through the level (in the room with the disconnected stairs and pool in the middle) is a JS stack overflow:

exceeded,RangeError: Maximum call stack size exceeded at Bi ([http://xproger.info/projects/OpenLara/OpenLara.js:5:113674](http://xproger.info/projects/OpenLara/OpenLara.js:5:113674)) at Bi ([http://xproger.info/projects/OpenLara/OpenLara.js:5:118632](http://xproger.info/projects/OpenLara/OpenLara.js:5:118632)) at Bi ([http://xproger.info/projects/OpenLara/OpenLara.js:5:118632](http://xproger.info/projects/OpenLara/OpenLara.js:5:118632)) at Bi ([http://xproger.info/projects/OpenLara/OpenLara.js:5:118632](http://xproger.info/projects/OpenLara/OpenLara.js:5:118632)) at Bi ([http://xproger.info/projects/OpenLara/OpenLara.js:5:118632](http://xproger.info/projects/OpenLara/OpenLara.js:5:118632)) at Bi ([http://xproger.info/projects/OpenLara/OpenLara.js:5:118632](http://xproger.info/projects/OpenLara/OpenLara.js:5:118632)) at Bi ([http://xproger.info/projects/OpenLara/OpenLara.js:5:118632](http://xproger.info/projects/OpenLara/OpenLara.js:5:118632)) at Bi ([http://xproger.info/projects/OpenLara/OpenLara.js:5:118632](http://xproger.info/projects/OpenLara/OpenLara.js:5:118632)) at Bi ([http://xproger.info/projects/OpenLara/OpenLara.js:5:118632](http://xproger.info/projects/OpenLara/OpenLara.js:5:118632)) at Bi ([http://xproger.info/projects/OpenLara/OpenLara.js:5:118632](http://xproger.info/projects/OpenLara/OpenLara.js:5:118632))

</comment><comment><USER7> Must add the roll button! That was key during battles for me back on the playstation.

<comment><USER8> Shooting while moving forward is a bit cumbersome as well.

</comment></comment><comment><USER9> Instantly had me hooked again. The game does not move on after the city of vilcabamba, though :-/

<comment><USER10> They usually sell it for 1.5€ or so in Steam! At first I was afraid of advancing because I remembered the wolves x)

<comment><USER11> GOG sells a pack of the first 3 for $2.49, DRM-free.

</comment></comment></comment><comment><USER12> WebGL noob question - why is this silky smooth on Safari on my MacbookPro but Mine 3D [0] (and to be fair basically any other Web GL) is noticably low fps?

I understand Chrome has better support, and I'm in the habit of launching Chrome to check out Web GL stuff. But I absent mindedly followed this link on Safari and was pleasantly surprised.

[0] [http://egraether.com/mine3d/](http://egraether.com/mine3d/)

<comment><USER13> Because this is asm.js

It is a sub-set of javascript that you can roughly think of as javascript- bytecode and this can be heavily optimised in the browser compared to full javascript.

[http://asmjs.org/faq.html](http://asmjs.org/faq.html)

</comment></comment><comment><USER14> Bats just followed me under water... Also I am unable to shoot them as long as they are attacking me. Is it a OpenLara bug or feature from the original game?

<comment><USER15> Bug.

This is an incredible achievement though and just the sort of thing I love to see here on a Sunday!

</comment></comment><comment><USER16> Wow, I played this game when I was a kid. Can't believe it's just running inside the browser. Great job.

</comment><comment><USER17> Ho my...Tomb Raider is my favorite game since I played Tomb Raider 2. I've got extremely excited about this project! Nice 60FPS, nice movements (although the controls are completely different from the TR1-5 games)!

I'll try to help this guys somehow.

</comment><comment><USER18> Oh man this is positively insane! The original Tomb Raider games are probably my all time favorite video games. I recently revisited Tomb Raider for PlayStation in an emulator on my laptop. I find it a bit mind-blowing that OpenLara in the browser seems to be performing better than the native PSX emulator did.

I think perhaps the ctrl-action button is more sensitive here than it was in the original PC version? In order to get out of the water hole I had to swim into the corner basically. It was a long while since I played the original on PC though so who knows.

Mad respect.

<comment><USER19> Wow. I remember playing the original almost 20 years ago on a PC that really didn't support it at a terrible framerate. The fact that I can play it now in a browser window on a netbook without it breaking a sweat is astonishing.

</comment></comment><comment><USER20> This work pretty well on my phone. Like the touch controls almost make it convenient to play without a gamepad.

They just need to fix the issue of the browser highjacking touch inputs and add fullscreen support.

<comment><USER21> Same here can't believe we reached a point where the phone can play these..

<comment><USER22> In a browser, no less.

</comment></comment></comment><comment><USER23> Very nicely done. Congrats.

Always thought the TR games were pretty awful, personally. Those were the days when they were still trying to get 3rd person 'right'. But the implementation here is solid.

<comment><USER24> They were great games hampered by some pretty abysmal controls, dual analogue wasn't exactly commonplace at the time (hell, the dual analogue controller was released the year after TR1 came out) so there was only so much you could do with just a d-pad. The controls got noticeably more tolerable as the series went on but even then it was the same tank controls full of animation lock-in (sidestepping being the main one).

</comment></comment><comment><USER25> Rock solid 60fps, works out of the box on Chrome. I am impressed.

EDIT: To swim forward under water, press space!

EDIT2: Somehow, there's a bug with climbing out of the water, making her climb up on the edge, then places her like half a meter forward and she plays the climb animation again (clipping into the ground), then places her half a meter forward, etc, until she is stuck in the wall.

<comment><USER26> Why don't you make an issue?

[https://github.com/XProger/OpenLara/issues](https://github.com/XProger/OpenLara/issues)

</comment></comment><comment><USER27> Very good. Looks like it's using OpenTomb?

<comment><USER18> It says that it's inspired by OpenTomb. From a cursory glance it does not seem to me that it's using OpenTomb.

</comment></comment><comment><USER28> Nice! But if you're keeping the original PC controls, why swap alt/space? It's severely messing with my muscle memory.

Edit: Also a wolf followed me underwater and ran around normally. And I seem to have unlimited underwater time. Is there a tracker for how complete the project is/a roadmap? Either way, awesome stuff!

<comment><USER29> Space to jump seems quite normal to me, but what didn't was that A/D turned instead of side-stepped. I remember playing Tomb Raider when it came out, but I don't remember it doing that. I actually find it nearly impossible to move around with those controls, and I had the same problem with web ports of Wolfenstein.

This port doesn't have configurable controls, but with Wolfenstein you can't even configure it to do strafe without a modifier key.

It seems like at some point all these 1st/3rd person games switched to strafing by default, and using the mouse to look/turn/aim. Anyone know when that happened? What game first allowed that configuration and what first used it by default?

<comment><USER30> It was popular in competitive Quake play, was included as an option in Quake II and the original Half-Life was the first game to ship with the standard WASD + mouse scheme that every game uses today.

Here's a more in-depth article on the history of WASD: [http://www.pcgamer.com/how-wasd-became-the-standard-pc- contr...](http://www.pcgamer.com/how-wasd-became-the-standard-pc-control- scheme/)

</comment></comment></comment><comment><USER31> Hmm... doesn't work on Chrome.

Uncaught TypeError: Cannot read property 'getSupportedExtensions' of undefined

<comment><USER32> Worked in chrome on my phone

</comment></comment><comment><USER33> Barely runnable on Firefox on Raspberry Pi but it's already incredible.

<comment><USER34> Runs great on an iPhone 6+.

<comment><USER35> I love the fact that we're even considering running stuff like this on such hardware _inside a web browser_.

</comment></comment></comment><comment><USER36> Plays smooth like a totally native game on my old android!!

</comment><comment><USER37> Man this is really sweet. Takes me back all those years.

</comment><comment><USER38> What's with the orbiting cam? That's a really big no-no, especially since it's colliding with the environment.

Cool effort, overall.

<comment><USER39> it's part of the original game.

<comment><USER38> Wow, I don't remember that.</comment></comment></comment>


Ask HN: What will be a solution for Corona? - <AUTHOR> Hello,
I'm afraid there won't be a real solution for Covid-19 (Corona) we will and need to live with many dead people.
Solutions, which aren't solutions:
* Quarantine until good medication, treatment is found (nothing on the horizon)
* Quarantine until a vaccine is found (minimum 2 years, probably more)
* Quarantine, lockdown, open up, quarantine, lockdown etc. etc. until 60 to 70 percent of the population is infected. Which would take, you guess what? Take around 2 to 3 years... Also, the population won't take it... soon or later they will just ignore it.
Conclusion: We need to live with 5 to 10 percent dead people around the globe and there is no way around it. (not in developed world probably, but refugee camps, India etc will have around 20 percent dead people...)
Or I´m just a pessimist? <comment><USER2> I understand these 3 solutions belong to European strategy: "Mitigation".

Asia is performing another strategy: "Suppression" tracing every one single positive case in their countries. In a few months they will be able to walk by the street knowing there is no even one single positive case out of quarantine in the whole country to be afraid of. This way they can wait two years or more to a global solution and minimal interference in their daily lives.

</comment><comment><USER3> Vaccine and staying at home until the spread slows down to less than 0.5%</comment>


Earth faces "biological annihilation" in sixth mass extinction, scientists warn - <AUTHOR> http://www.cbsnews.com/news/sixth-mass-extinction-biological-annihilation/ <comment><AUTHOR> Study paper: [http://m.pnas.org/content/early/2017/07/05/1704949114.full](http://m.pnas.org/content/early/2017/07/05/1704949114.full)</comment>


MotionCAPTCHA - <AUTHOR> https://github.com/josscrowcroft/MotionCAPTCHA

<comment><AUTHOR> <http://cl.ly/2h2K2B3M2p0H2i1z2O2c> <http://cl.ly/3z28333n3w230e2S1U0Z> <http://cl.ly/2T232H1r2M3g2w0g1G0N> <http://cl.ly/140F2R1U291J3v2m1y0Z>

</comment><comment><USER2> $('#mc-form').attr('action', $('#mc-action').val()); $('#mc-form').submit();

Submits the form on the demo bypassing the "captcha".</comment>


Why iPhone apps are so cheap. - <AUTHOR> http://www.streamingcolour.com/blog/2009/07/13/my-iphones-not-cheap-but-my-apps-are/

<comment><USER2> Simply: Apps are so cheap because the bar for entry is low. People can't successfully charge $10 for something a reasonably talented high school student could make (and consider a runaway success if it brought in a couple hundred dollars). And I don't think that's a bad thing.

And the popular 'app vs subway token' kinds of comparisons are ultimately unfair.

You don't pay $2 to ride the subway. You pay $2 to _get somewhere_ ; because the destination is worth it and you know you'll get there.

If you had no idea where the subway stopped and whether it would get anywhere close to where you were going, let alone in a timely manner, how eager would you be to step through the turnstile for $2?

Similarly, if you didn't know anyone who had successfully gotten where they were going via the subway, or if the last few times you rode the subway you had terrible experiences, how eager would you be to step through the turnstile for $2?

</comment><comment><USER3> You know, it's funny. People frequently accuse credit cards of enabling you to spend money freely because you don't see physical cash changing hands, so you don't think about it. Yet here we have a case where if you could actually hand two dollar bills to someone, you might be _more_ likely to do so, whereas when the transaction is entirely virtual you hesitate.

I can't speak for everybody, but I can see where _my_ reluctance to buy XBox games online comes from. (I don't have an iPhone but it would be the same way for me there.) My brain circuits for game buying were initialized when I was a kid, when $10 dollars was a lot, not because of inflation but because it was all the discretionary income I had for several months. (Think 10 or 12 here.) I've gotten over this, because I have noticed the irrationality of dropping $20 for a movie in the store on a whim on some item but choking on a $5 game that will last ten times longer, but it took me a while. Now, while I don't think of myself as rich and actually don't *want" to think of myself as rich lest I become too loose with the money, the truth is that the occasional $10 or $20 purchase isn't going to meaningfully change my financial position. It has taken my brain a bit to notice that. It doesn't help that I've spent several years of my adult life where $20 did matter.

Brains are funny things.

<comment><USER4> I find that marginal costs/benefits for low-priced items are best contemplated multiplicatively, not additively. A $4-5 pint at the bar? Only a couple bucks of markup, but replaceable with 3-5 bottles of beer at home. Out to lunch for $6? that's 2 or 3 home-cooked dinners. 80-cent vending machine candy bar? only 30 cents more, but that's 60% more expensive than walking to the student store. The _habit_ of thinking this way stretches pocket money multiplicatively.

<comment><USER5> I would think on any given night that most people without alcohol problems would prefer 1 pint of beer at a pub to 5 bottles at home. Same for a lunch out with friends vs 2-3 dinners home alone.

Your theory is obviously sound, but many times the "more expensive" (on a dollar per unit basis) item is even more valuable (on a hedon* per dollar basis)

* - hedon: made up unit of enjoyment

<comment><USER4> Only because alcohol problems were mentioned: I drink one beer at a time (ok, sometimes two), so "5 bottles at home" is "5 nights at home that include a bottle of beer".

</comment></comment></comment></comment><comment><AUTHOR> In 1985 I shoved quarters into a Gallaga machine, one after the other, without a second thought. Now, even though apps offer unlimited play, like the author, I'm hesitant to pay $1.99 for one.

<comment><USER6> what if you paid a quarter to buy it and then every time you lost, you had to pay another quarter with the new in-app purchases, just like an arcade game? if you beat the game on one quarter, you'll own it and not have to pay any more. if not, eventually you'll "put in" 8 quarters and own the game.

<comment><USER7> Funny idea. That might actually work with the new 3.0 APIs.

</comment></comment></comment><comment><USER8> People are just terrible at reasoning about money. People don't know where the money they spend goes, people don't know where they waste money on, and so on.

( My biggest vice is wasting time picking the best "value for money" product, while I would be much better off if I work a few more hours, and then buy the best reviewed product in the most expensive class. )

Most people are absurdly irrational when it comes to money. Luckily, people are predictably irrational. So the sane solution is to avoid the whole iPhone marketplace.

A great product can still fail when people realize they should be willing to pay for it, and yet can't bring themselves to pull the trigger. Some markets just are like that.

</comment><comment><USER9> Because the AppStore does not consistently deliver good apps. Some are great and a steal at that price, some crash your phone, some are so bad that you feel cheated _even though you only spent $2 and 5 minutes on it_.

If there was a decent chance your $2 bought a rotten tomato thrown in your face, you'd be hesitant to pay as well.

</comment><comment> meat-eater My theory on why apps are priced too low is that it's because of the expectations set by the prices of the initial apps on the store. The first apps on the app store were priced really low and this set the trend that continues today. A lot of the initial developers can afford to price them really low because a good number of those apps were novelty apps that took very little time to develop.

So now even developers who do take the time to develop polished apps will still need to take into account the expectations of users for their app's pricing.

</comment><comment><USER10> To the original author: you might want to consider your marketing. I've never heard of your app, and it's the exact kind of game I like.

I'm not impressed by your site, either, because it does practically nothing to sell me.

Your giant header graphic says nothing at all about the game.

The actual name of the product is hard to read and in a poor location (not to mention, unremarkable).

The headline "Streaming Color Studios Presents" is useless, because I neither know who you are, nor do I care.

The screenshot is cuteish, but not compelling enough on its own. The app honestly looks too busy, and busy in a chaotic way, not in an awesome multilayered way like Stone Loops of Jurassica.

"Now on the App Store!" may be impressive to you, but it's not to anyone else.

Your call to action is practically hidden because it's light grey on a light grey cloud, and the smallest thing there. The whole banner isn't clickable, which is, if you ask me, insane.

On your main page, on my 30" monitor, WHAT Dapple is isn't even above the fold. And I keep my browser size about 85% of the vertical height of my Cinema Display.

And on and on. I could go on forever. And I regularly pay more than $1.99 for my iPhone kicks.

Your article's overall premise is pretty silly, given that the very existence of the iPhone proves that cost is only a differentiator in a market full of mediocrity.

Your game is admittedly "another color matcher."

Its design doesn't jump out.

Your site does little to sell it.

I haven't heard of it by any other means (and all my friends, like me, are deeply into puzzle/matching games).

Maybe _that's_ why you can't sell your game. It's easy to blame price, but feh. Price is a symptom in your case. I see you wrote how you had a temporary spike after you dropped your price. That doesn't mean that price is the main reason your app isn't selling, just that at a lower price, those other problems are slightly compensated for.

It seems like your only source of sales, to me, is people browsing the App Store itself. Well, that's just not going to cut it, for anyone except a few statistical outliers.

Yes, it takes a lot of exposure or a lot of prepping to convince to buy something over 99 cents, that's true.

But if you do that exposure and prepping, and be a Purple Cow, you can easily charge more.

Do yourself a favor and spend less time writing articles about iPhone app prices, and study the art of making sales.

<comment><USER11> Your critique of his marketing is spot-on, but I think his analysis of _why_ the prices are so low and why people will only pay that much is still valid. His problem is mainly marketing, but the pricing issues affect every app.

<comment><USER12> I don't think he addressed THE main issue from what I can see: utility. I pay $2 for a single bus ride because it has high utility to me (going somewhere is important), and similarly I have paid $5+ for iPhone apps that I thought I would use regularly and would provide a good benefit to my life.

His game, like most iPhone games, provides low utility. It would at best be a 2-minute distraction while I wait for the bus. In other words, it provides a minimal utility that I can live without. This drastically lowers what I'm willing to pay.

<comment><USER10> The best iPhone games give you more enjoyment time than a movie, and so I don't mind paying $5.

There are lots of people out there with 'loose wallets' - you just have to reach the right ones and convince them.

<comment><USER12> If a game offered the immersive, cinematic experience that a movie does, then yeah, I'll easily pay $10 for it. The Mass Effect game for example is awfully tempting.

But as it is that is not what most iPhone games are. Most iPhone games are time wasters so you're not interminably bored at the metro station - that to me is not a high-utility use case.

<comment><USER10> The amazing nature of humanity, and business, dictates that most people are not you.

You must be shocked daily at what other people choose to spend their money on.

I make a living off this very fact, because nobody else in my field has the balls to presume that people would spend money on their stuff. (And I can shout about it all I want on HN and know that nobody will ever _use_ my "secrets," because they'll never believe it.)</comment></comment></comment></comment></comment></comment>


How popular media portrays the employability of older software developers - <AUTHOR> https://arxiv.org/abs/2004.05847 <comment><USER2> I've worked with two types of older engineers:

1) Ones who keep up their skills

2) Ones who don't

The former are a treasure trove of knowledge and skills, and provide substantially more value than anyone junior ever could. Going through so many computing eras gives a higher-level way of thinking about abstraction, or understanding computer architectures. They've hand-tweaked assembly, C, Java, and when they're now doing JavaScript or Python, they understand all the layers of metal underneath. They've gone through flow charts, structured, functional, object oriented, and all the variants there-of. They've written high-speed algorithms to draw lines with pixels, to ray trace, and are now coding GPGPUs.

The latter are liabilities, bringing in 1980-era best-practices. They're working on some legacy BASIC or COBAL system from the seventies, and surprised they can't find a new job when that's upgraded and they're downsized.

I've rarely seen #1 and #2 mix. They're very different crowds, and in very different types of companies.

My own experience is that I need to devote about 20% of my time to keep up, if I'm doing it on an ongoing basis, or about 1-3 months every 2-5 years if I do occasional deep dives. Basically, I dive headlong into whatever is the newest, trendiest stack, and get a product out using that, deeply learning all the deep things behind it too. That's what works for me. YMMV.

<comment><USER3> _> My own experience is that I need to devote about 20% of my time to keep up, if I'm doing it on an ongoing basis, or about 1-3 months every 2-5 years _

And that's the problem with software engineering vs other white collar careers. For example, my accountant friend is expected to be trained by their employer in the latest accounting practices and law frameworks and does't devote 1-3 months per year of their personal time on open source accounting projects to learn the latest legal framework for fun, that would be crazy for him. Same for my friends in architecture, dentistry and law. Their employers pay them to learn and gather the expertise needed for their future in the firm.

Whereas, as a software engineer, very few companies(at least in Germany from my experience) will invest into their existing workforce to train them on the job for the future language/framework they will plan to use and instead seek to let them go once their expertise is no longer valuable and hire someone already experienced in the needed stack then repeat the cycle several years/decades down the road.

That's why here you're expected to transition to management as a career progression, as IC roles are not really valued at old age unless you've dedicated your free time to coding and I don't know about you guys, but I'd prefer to spend my free time with my kids and exercising outdoors instead of coding to make myself employable in the latest stack.

<comment><USER4> As a physician, I attend conferences, subscribe to online references, question banks, various journals, take ongoing CME, repeat licensing exams, and spend the equivalent of one workday a week reading those new materials, and try to spend a couple hours refreshing myself on materials outside of my specialty. This amounts to an extra un-reimbursed workday a week, and several thousand dollars a year.

When I worked in a place that offered CME/conference reimbursement, it covered about 1-2K a year, depending on budgeting issues. In my current place, and for all independent or small practice physicians, that comes out of your own pocket.

This does not have any career benefit whatsoever; it's done so as to be worthy of our patients' trust.

I wouldn't mind if it was at least partially reimbursed though. It's an enormous chunk of change, and not for my benefit.

<comment><USER5> > This does not have any career benefit whatsoever; it's done so as to be > worthy of our patients' trust.

Keeping abreast of changes in the field and state of the art offer no benefits and is done solely for patients' trust?

<comment><USER6> Goodhart's Law

May be what OP is referring to.

I have seen it in teaching. Teachers need xx hours of training per year. Training often satisfies that requirement but provides no significant benefits in terms of pedagogical improvement or content knowledge.

Teachers that want to improve do so by other means. The training keeps us in compliance.

<comment><USER7> I've known more than a few high school teachers who ended up with Masters or PhD degrees kind of by default via continuing education courses. That would seem to go against your "teachers that want to improve do so by other means" idea, unless I'm confused about the nature of continuing education requirements for teachers.

<comment><USER6> My assertion is that continuing education credits, or advanced degrees are far from a guarantee of improving a teacher's practice. Continuing education suffers from "box checking." There are a number of reasons for this.

It is in no way a knock on teachers. They are caught up in a bad system and are responding to systemic incentives.

If we apply an always/sometimes/never framework to my assertion, we can find examples where teachers advanced their practice via continuing education. So the teachers you know certainly could have advanced degrees, some even very helpful in improving their practice.

My experience in K-12 as well as studying the history of education reform in America since Sputnik was launched inform this assertion. It has been a recurring theme for 60 years.

<comment><USER6> Credentialism - I saw this word used today elsewhere and it sums up what I am trying to say

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> My perspective, as an older developer (I'm 54):

\- I love coding, and I still code every day. I have no desire to move into other roles (such as management).

\- As for job security, I think it is harder to find a job as a manager than as a developer, simply because there are many more positions for developers than for managers

\- Family-wise, it is much easier at my age, because my children are getting into their twenties now. Much more free time for me (including for work if I want), compared to when they were younger and need lots more attention (and being picked up from daycare)

\- As for learning - that's one of the attractions of being a developer. There are always new things to take in, it never gets boring

\- On the other hand, even if some things in programming are fleeting (the currently popular frameworks etc), there is a core of fundamental knowledge that you gain over the course of your career that will always apply.

<comment><USER9> Question regarding your last 2 points: how do you reconcile the fact that "there is always something to learn" with "I'm basically just learning a library/framework that does the exact same thing but with different names in the API"?

I'm being a little hyperbolic here, but after a few decades in the industry it's kind of baffling how few novel ideas are in these new frameworks. There is even a trend to go back to server side HTML and SOAP-like APIs. The tech industry sometimes just looks like the fashion industry. But maybe I'm just too cynical :)

<comment><USER10> "SOAP-like APIs"

Do you mean things like Swagger?

[NB There have been few things I've hated more than SOAP]

<comment><USER9> No, as far as I understand Swagger it's just a tool to document your API. I'm more thinking about some ways GraphQL is used/implemented.

</comment></comment></comment></comment><comment><USER11> I'm a former tech recruiter for startups and now a resume writer and career consultant, and I've written for software engineers from 18 through their late 60's.

\- Older software engineers (40+) won't be discriminated against if they are doing cool stuff and are doing different stuff than they were doing a few years back. I've written this a thousand times before, but we often confuse ageism for stagnation. If you've had the same job for 15 years working on the same system and using the same languages, you aren't a victim of ageism as much as you are being discriminated against because they don't think you'll be able to learn new tricks.

\- On resumes, don't advertise your age if you're a bit older. We don't need to list that internship, first job out of school, or graduation dates from college. List 15-20 years of your career and leave the rest off. It isn't a biography.

<comment><USER12> > Older software engineers (40+) won't be discriminated against if they are > doing cool stuff and are doing different stuff than they were doing a few > years back.

But I don't do cool stuff. What I do is to keep a ~$25 million per year money printing system from falling over while the youngsters are in year 7 of the 18 month project to replace it with super cool tech. Making money is so overrated these days.

<comment><USER13> You'd be surprised how little corporate bureaucracy values the act of "keeping the lights on" for an existing and stable revenue stream. Obviously, keeping the money hose going is good for the business, but it only gets recognized in the case of failure. To put it simply, it doesn't create new value, which is what corporate culture in the US is all about.

<comment><USER14> ^this is a really underrated statement.

Coming from "sysadmin"/tech/keeper of the lights on: there is no win at the bottom line. Keeping the lights on _always_ costs money, they always wish it could cost less (except when inter-company bragging about having the new hot tool), and when you're doing your best possible job they will forget you exist. If something happens on your watch they can just as easily assume you have not been working at all.

One thing I've distilled from all this: _Always_ keep at least some focus on how much your work costs vs how much value it's providing.

</comment></comment></comment></comment><comment><USER15> I'm 35, so kind of in the middle. Frankly speaking,I'd hate to work in a company where an average age is 20 as much as where an average age is 60. Sometimes I see job ads with things like ' youthful colleagues',which is crazy. I want to work in an environment,where I can talk to someone in their early 20s and gain from their perspective and understanding and also to someone who's been round the block a few times and can tell off the bat that the shit I came up with minutes ago is neither smart nor useful because X,Y,Z. Putting all this aside, one thing to consider is that there are there are tons of companies out there that do have reasonably easy operational model,which,once streamlined, doesn't require senior people,or only very few. And those companies are very happy to keep thr status quo by only employing from certain demographics.

<comment><USER16> In my country there is an industry in setting up your software company to simulate university life to attract the newly educated developers.

You'll get cheap, extremely motivated employees, who spend almost all their time at your company thanks to boardgame/role play/pizza nights and you get them to keep up-to-date on techs by having them do weekly tech-workshops and presentations.

They produce a lot of cheap code, sometimes the quality is decent, other tones it isn't, and their most talented developers tend to leave for "adult" jobs after a few years, but overall it has been a very successful strategy.

<comment><USER17> Is your country America?

<comment><USER18> It sounds like America, except for the hiring for cheap bit... American companies pay a lot more on avg for their devs than other countries.

<comment><USER19> But younger engineers can be had more cheaply than experienced engineers. There is also a culture of having to prove yourself which often leads to junior engineers taking positions with companies that are toxic and which dramatically underpay them in order to get some years of experience. I think in our pandemic world, there is also a problem where people who may want to change jobs, due to poor working conditions, will stay put in fear of losing their pay check. These things and more, I'm sure, all compound against all of us, but I think can be felt more strongly at the lower end of the experience range.

</comment></comment></comment></comment></comment><comment><USER20> Not quite 50. Still coding, still enjoying it.

As I've gotten older my time has gone from '20% think about it - 80% code it', to '80% think about it - 20% code it'.

I currently work with a surprisingly well balanced spectrum of developers at my current employer. The median age is in the early 30s, with probably a third of us 40 and older out of 150 developers.

I'd say with some confidence, that the older developers in my company complete as many "tasks" but write less code when doing it, with a lower defect rate.

<comment><USER21> That 80/20 split (for younger me) is what taught me enough that I can now think it all out ahead of time. When I just started around 20 years ago, it was all new, it was all confusing, and all the answers were hidden behind obscurity, gatekeeping, and strange social norms (no StackOverflow back then). So I had to learn by brute force, smashing my face into every project for somewhere around 100 hours a week.

Now I have some knowledge and perspective, even the ability to pick out the fads and novelties from time to time. I can try new things on small projects and I can go with tried and true for the big things and I tend to understand which projects are better for which approach. I can visualize the data, the models, the inputs and outputs, and think through the logic from beginning to end, all within about 30-50 hours per week. That took lots of late nights and a ton of trial and error.

There's a good place for the less experienced and more experienced on any well balanced team, to be certain.

</comment></comment><comment><USER22> I'm in my late 30's and almost all of my good friends with a CS/BIT degree has cycled into management. The interesting thing I'm noticing now is that they all have ideas for projects but zero capacity to build anything because they've lost their building muscles. They also seem reluctant to really want to learn anything else which is antithetical to software engineering where a new framework is out every day.

<comment><USER23> Does either camp have second thoughts about how their careers have progressed? You've highlighted one or two downsides for those who've gone down (or should I say 'up') the management route. Would you trade places with any of those friends? Would either of them trade places with you? Do you have an 'exit' plan out of software engineering or do you plan to stick with it to the very end? I appreciate some of these are personal questions and you may not want to discuss it but these are the perspectives that interest me.

<comment><USER24> In 2008, I was 35 and had let my career, skills and salary stagnate. I had been a company for almost a decade mostly writing a combination of C, C++, Perl, and VB6 programs for backend processes. I finally woke up, did a career reset and pivoted toward "enterprise development".

Fast forward to 2016, I was married, with a step son who was a freshman, tired of working on yet another software as a service CRUD app at my 3rd job since 2008 as an IC, and jumped on an opportunity to be a dev lead at a medium size non software company.

I thought the next step was to either stay a hands on dev lead/ "architect" and just muddle along for the next 20 years, go into management, or go the r/cscareerquestions route and "learn leetCode and work for a FAANG" and move to the west coast.

Neither sounded appealing. Then management decided to "move to the cloud". I didn't know anything about AWS at the time and saw how much the "consultants" were making and that opened my eyes. If these old school netops folks could pass one certification, click around in the console and make. $200K+ a year, imagine what I could do if I knew AWS from the infrastructure and dev ops side _and_ I knew how to develop and architect using all of the AWS fiddly bits.

It took three years and teo job changes in between, but I _really_ like consulting. It's the perfect combination of development, high level architecture, customer engagement and you never know what you will be doing in three months - or in what language.

<comment><USER25> Thanks for sharing! Could you expand more on those 3 years in making that transition? Do you work at a consulting company or did you start your own?

<comment><USER24> The company I worked for as a dev lead was acquired by private equity and by the time I had any knowledge about AWS the infrastructure gatekeepers and consultants took over.

I started looking for a job and got lucky that another company was trying to build an in house development department led by a new CTO. They had outsourced all of the development before.

The new CTO was very forward looking and wanted to make the company "cloud native" and improve the processes. He only had a high level understanding of AWS as did I. He took a chance on me and I became both the de facto "cloud architect" and the person he called when he wanted a customer facing project done from the ground up without having to deal with the slow moving "scrum process".

I was quite happy at the company and would have stayed a couple of years probably even knowing I could make more money somewhere else and then Covid hit along with an across the board pay cut.

I was _still_ not really looking, a 10% pay cut at a time when we couldn't travel or really go out was an inconvenience but not earth shattering.

Then a recruiter contacted me for a software development position at Amazon. I wasn't willing to relocate or do the leetCode monkey dance but we talked a little and then she forwarded my information to a recruiter on the AWS side.

I saw the interview process was basically a high level technical interview to determine whether I knew the basics of AWS (I did) and all about the Leadership Principles. I knew I could answer the "tell me about a time when..." questions with the best of them _and_ the interview process was going to be fully remote.

To keep a long story from getting longer - I work at Amazon as an AWS Consultant from the comfort of my own home in the suburbs in a low cost of living area.

<comment><USER25> That's awesome, congrats! Thank you for sharing those details. Sounds like something I'd like to do some day.

</comment></comment></comment></comment></comment></comment><comment><USER26> I've come to the conclusion that tech is one of the least meritocratic industries in our economy. As a result of this, many older workers who "didn't make it" are deeply frustrated by the increasing gap between their ever improving skills and their ever decreasing remuneration. This frustration with the system is also what makes them undesirable to hire. They don't believe in the meritocratic fiction so if you hire them, they may cause cultural problems and dissonance inside the company (and they may come across as apathetic).

To make matters worse, those who succeeded have an incentive to strongly believe that the tech industry is a perfect meritocracy, so they feel like something must be wrong with these older people and this is why they still have to work as developers and didn't progress in their careers.

The affront which reality may pose to their egos, causes employers to hire inexperienced, starry-eyed developers on huge salaries who create chaos and busy-work for themselves whilst yielding diminishing returns and barely getting things done. But the monopolistic, winner-takes-it-all, easy money situation of this industry allows employers in many sub-sectors to make these terrible decisions whilst continuing to thrive and this allows them to maintain and even reinforce their false ideologies about youth and productivity in a vicious cycle of increasing mediocrity.

</comment><comment><USER27> My exp.

Older programmers need basically no hand-holding/guardrails. That alone can make them much more valuable from a management perspective. Here is the project get it done and its done.

Younger programmers sure they might work 16 hr days and weekends. However if I'm having to check that hey are not running wild in left field for 2 hrs everyday its a huge time hit to productivity and just increases the more of them there are. I don't know that I'd want to work someplace that thinks butt in seat is a measure of productivity.

To me a job that seems to be appealing to the younger crowd just means the job will be a miserable no life balance grind. There are plenty of jobs out there that just value nothing ever breaking that I'd rather work at then some flavor of the week startup.

<comment><USER28> "Here is the project get it done and its done."

"...just value nothing every breaking..."

This is a huge deal and changes so much about how you work and communicate.

Having a no-nonsense view of stability and delivery of the product changes everything.

\- use stable tools, don't chase the shiny

\- clearly documented architecture and deployment

\- frank communication about everything at all times

\- less ego, more product focus

</comment></comment><comment><USER29> I'm working in an outsourcing company on a project which makes use of all kinds of engineers, not the homogeneous programmers working on the same stack in the same language, but actually a lot of diverse tasks - some work on analog hardware, some on digital hardware, some people specialize in controllers A, others in B, some specialists in video, some "regular" application programmers, and the list goes on. And most of engineers are in two offices - one Ukraine, another in Israel.

So this very long preface was about age of our employees - despite working on the exact same problems office in Ukraine almost never hires "older" engineers of any specialization. By "older" I mean probably 50+, maybe even 45+. From the same general space where I'm sitting the oldest I know for sure is 40 years old and he is not a recent hire, so he was hired when he just passed 30 years.

In the Israel on the other hand there are a lot of "older" engineers by share, and they are getting hired being "older", hired because of their experience in all kinds of domains we are working on.

Just wanted to share how this problem looks like in two different countries.

</comment><comment><USER30> So, number of software developers doubles roughly about every 5 years. So if you have been in the field for 5 years, half of the developers will be younger than you, if you were in the field for 10 years, 3/4 will be younger than you. You can do the rest of the math.

I've been working as a developer for 40+ years, so most other developers are younger than me. Although, on my current team there are two people older than me.

</comment><comment><USER31> The article concludes with this:

      Against  this background,  we  argue  that  preserving  employability  cannot  and  should  not  solely be the burden of the developers themselves. Companies should take their share of responsibility, encourage practices  that  welcome  developers  of  any  age  and  curb  those  negatively  affecting  older  developers.

Ok I don't disagree. But how is such a conclusion justified by googling a "age software developer" and seeing what pops up? Paper seems pretty thin.

<comment><USER32> Also it is not a refereed paper, why then write it in a format like this? Make it clear when you publish opinion or position pieces, people.

</comment></comment><comment><USER33> I'm older.

I'm no slouch.

I can prove it, with a huge portfolio of stuff I was working on fifteen minutes ago.

I stopped looking for work some time ago.

Let's just say that I have the skillset and chops that many startups would kill for, but I don't have a...how do they say it, these days...gosh darn it...I just can't keep up with the stuff they say...oh yeah.."cultural fit." Yeah, that's it.

</comment><comment><USER34> I have to say a lot of technology "change" is fads. The New Thing takes over before anybody seriously vets the new idea. Once something looks like "legacy- ware", everyone gets scared of being obsolete and abandons it for the new kidware on the block.

Experiments are nice, but making everyone in IT be a guinea pig is not productive. Rapid change for the sake of change alone will probably "benefit" younger workers on average. Fashion driven IT is probably not good for organizations in general, not for just older workers, because they are paying to throw out software and start over too often; but it seems nobody can stop this Sisyphusian dance.

</comment><comment><USER35> As an older developer (55), two things:

1) I forget things. If some new piece of information comes in, after a few days, my younger colleagues remember everything, and I don't.

2) I want to sleep after lunch. It's impossible to fight.

</comment><comment><USER36> This thesis makes a heavy case for plastic surgery to appear younger to keep a tech job - Has anyone reading this ever even considered plastic surgery to get a competitive advantage against ageism?

<comment><USER37> Simply dying your hair, and staying fit will go a long way in making someone look much younger than they are.

<comment><USER38> My wife in her late 30s stopped dying her hair since the pandemic started and she's got a lot of gray hair, especially compared to me who i have none. She remembers having it since she was 18 but kept on dying it afterwards. I find her looking great with gray hair. I have to add that she is in a great shape and that compensates for the gray hair.

<comment><USER37> I'm glad to hear that, but it doesn't really have any context to this article where older developers are being subjected to ageism in the work place.

<comment><USER38> If women are okay with gray hair so should men be. I don't think hiding the gray hair does any good, the reasons for not hiring older people from what I understand the preference for younger culture because they don't have experience and are gullible and also the pay is lower. Dying one's hair ain't gonna solve those requirements by the hiring companies. And in addition, some people start graying as early as their 20s and never bother to dye it.

<comment><USER37> We're talking about physical perception, that's why people go out of their way to get plastic surgery, braces, wear makeup, etc, to impress other people. You can say how things should be, and what the ideal world should be. But the fact remains, physical appearance helps immensely, whether that person is qualified or not. Why do people put on a suit for a silly interview? Why can't I just come in with flip flops and shorts? Yeh the world sucks, you play the game in a way that gives yourself the best chance to win.

</comment></comment></comment></comment></comment></comment><comment><USER39> 57 year old software dev here. It does definitely get tougher to find and keep work as you get into your 50s. What I've found is that it's a lot easier to get a job at a company that's run by people my age or older. I've been at a few startups over the last several years where the CEOs or managers were around 60. The interviews are a lot easier - kind of like interviews were back in the 80s & 90s probably because those are the types of interviews they remember as well. Being of a similar age they also tend to figure that if you made it this far you're probably going to be a good worker. I've had way more autonomy in those situations than I've had at other companies where I had 30-something-year-old managers. Maybe I'm falling into some reverse-ageism here, but in my experience I'd rather work for someone closer to my own age or even older. Problem is that there are getting to be fewer and fewer of these options as people tend to retire in their 60s.

</comment><comment><USER40> Also I think that a big problem is our health care system. I may be wrong on this, but I imagine it costs a company more money to employ an older person who may actually use their health insurance or have health problems.

Removing the burden of health care from companies would maybe solve a bunch of these problems and allow companies to risk hiring older people.

<comment><USER41> I believe it would be completely illegal (in the US) to not hire someone because you perceived them as a health expense risk.

<comment><USER42> That's probably accurate, but if 20 people apply for a position and one gets hired, is it not accurate that nobody is scrutinizing some list of 19 reasons why 19 people didn't get the position?

These kinds of things seem like there is no way to enforce them.

I don't even know if that's a thing, health insurance being more expensive for companies with older employees or whatever, but just in general. "You can't fail to hire such and such type of person because it's illegal," doesn't seem to actually have much practical ability to influence a hiring process if it wants strongly enough to not be influenced.

I haven't done any research on this and could be completely off base. Just have the same thought when I see this mentioned in general and started typing this time.

</comment></comment></comment><comment><USER43> It's easier to lead younger developers as they're raw and don't have experience to call out their management chain. That's something older developers do as they've seen it all before and know how they latest trend ends. Management generally hates that.

<comment><USER44> On the flip side, more experienced developers (nevermind age) might have used that experience to become set in their ways. Younger developers might be more moldable

</comment></comment><comment><USER45> What will you do for income when you're too old to get a job in IT?

<comment><USER43> By then it's already too late. You should have an exit strategy when bringing the money in in the early years. Most folk in their twenties don't realize they're forty before they know it.

<comment><USER46> agree. max your 401k and buy Index fund if you can. plan your retirement early or save up your money and moved to developing country like Thailand, Taiwan or any safer developing countries with low cost of living and just enjoy your life.

my plan is retired at around 50s in Asia and just travel around Asia and do some freelance works.

<comment><USER47> I would hate to move halfway around the world for retirement if I had kids.

<comment><USER46> by the time that i'm in my 50s. i hope my kids are out of the house. its not for everyone.

</comment></comment></comment></comment></comment><comment><USER48> So, how does this square with all those ads asking for 5+ years of industry experience in their very specific stack?

<comment><USER49> 5 years of X just says that the job market can sustain some number of requests for candidates that don't require as much ramp-up time once hired. It doesn't mean the candidates will be old, in fact looking for highly specialized tech stacks rather than experience in the business domain of the product is a sign of someone looking to hire young.

</comment></comment><comment><USER50> I've worked with two types of engineers:

1) Those who believe in age stereotypes 2) Those who don't

There isn't some cliff you fall off of and become, "too old." That is one of the central lies of ageism. You're suddenly too old to be cool, you're too old to learn new things, you're too old to start something new, you're too old, too old, too old.

So get it in now, while you're young! Work hard, put your head down because once you're over that cliff it's done! You'll be too old to be a programmer anymore! You'll be stuck in your ways, a crufty old fossil, someone who only shows up and doesn't learn anything new.

I'm getting older. I'm picking up skateboarding. In recent years I've learned how to formally verify systems using model checkers and theorem provers. I've picked up on category theory and abstract algebra. I started streaming my side project to learn how to implement a database from scratch in Haskell.

You'd think that I should either go into management or find another career. This is a young person's game! You have to keep up with all the new technology! Old people can't keep up!

The lambda calculus turned 84 this year. Binary trees have not changed much. There was a paper released eight years ago that showed us how to implement co- ordination free operations on B+-Trees. Hooray.

The real innovation still happens in small steps at the periphery.

Ageism makes us believe that our best years are short and fleeting. That all of our work will be behind us for the majority of our lives. To talk about expertise as a deficiency and experience as useless.

Your best years may yet be ahead of you.

</comment><comment><USER51> I think some older devs would rather leave the corporate world because they can do better work and be happier on their own projects or freelancing.

</comment><comment><USER52> One thing that older engineers often have that younger don't is family commitments. I am in my 40's with all the things that come along with that, wife, kids, expectation of personal time, etc. With Covid hitting, my productivity has plunged. I have young kids at home that I have to tutor, my wife is working from home as well so constantly getting distracted by her work calls. Kids stress both of us out, dogs barking etc. Its almost impossible to get any deep work done. I work with a bunch of either younger people without families or people my age that are childless. They have not been affected at all. Employers very often want someone that will live to work for the company, many of the middle aged engineers cannot / will not do that.

</comment><comment><USER53> Just remember everyone... a majority of the people who respond to surveys like these are people who are unemployed right or have a gripe with how their life is. very rarely do you get the person who is doing good and happy responding to surveys.

<comment><USER54> On the flip side, I've seen really good developers be passed up due to the classic code-word: "too expensive"

<comment><USER55> But quite often that is valid. Any job can only pay as much as the job is worth.

If a more experienced developer who demands a higher salary is taking on work which can be carried out by a less experienced and therefore cheaper developer, it's to be expected that they wouldn't pay for the more expensive developer.

Just because someone is a world class michelin star chef, you're still only going to pay them mcdonalds wages for flipping burgers

<comment><USER54> Right, but if you give someone the bracket, they say they're fine with it, they interview well and then HR says "it's too expensive" and you're billing yourself as a youthful fancy startup... then reading between the lines is a skill.

</comment></comment></comment></comment><comment><USER56> While it's certainly not the case everywhere, the truth is that a lot of software development needs out there aren't terribly challenging to get to a "good enough" state from a business value perspective. This is exacerbated by the hyper-specialization of shallow roles where companies are basically looking for technologists. Once upon a time people used to hire software developers expecting them to figure out how to solve problems across almost all software layers and to take their time doing it. Now many positions are for churning out work with a specific library or framework in a specific language. It doesn't take a long time for there to be diminishing returns in terms of the worth of each extra year of experience when someone's role is to work as a "React developer" or something like that especially if someone else is responsible for making the designs and another person for setting up the backend or if the bulk of the software can effectively be outsourced by leaning on open source tech.

Factors like flexibility in work hour expectations and compensation favor younger developers who tend to have fewer responsibilities outside of work but have enough specialized skills to get the grunt work done and are able to put in the hours to make up for their lack of experience. Generally younger developers are not as well suited for making lots of bigger architectural decisions since they don't have the experience to really grasp longterm consequences of different approaches, but in terms of numbers, you need fewer people making those decisions than those doing the grunt work and young people with just a few years of experience often seem to do the grunt work about as well as anyone.

This wouldn't be such a big problem for older software developers if there wasn't a pay expectation gap or if they were as likely to be flexible about hours. Rightly or wrongly, however, people expect higher compensation for their experience, even if much of that experience isn't actually producing that much more business value given the sort of work that they are actually stuck doing. The world definitely has a place for the John Carmacks, but it's really not that large a percentage of jobs where they can make the most of the value they have to offer.

</comment><comment><USER57> I do wonder if there's some conflation of age and institutionalisation; as someone in mid 30s who knows plenty of people in the industry a decade or so older, I'm just not seeing the "life ends at 40" thing that many commenters seem to imply.

However, someone who's worked for 20 years at the same place (especially if it's a place where things are done A Certain Way, and anything else is heresy) may well have trouble moving job. And such people will of necessity be older. I suspect that a lot of the perceived problems for older people moving jobs are really more about institutionalised people moving jobs.

</comment><comment><USER58> Also an older dev (56) and I agree with other's comments that learning the myriad FE frameworks feels like chasing my tail.

I've carved out a role where I work primarily on the back-end of my company's platform, about 50% coding, about 25% mentoring/coaching, and the rest is working with our product managers and business users to develop new functionality.

I feel valued and feel like I'm making an important contribution to the company.

But I am concerned that one of these days I'll no longer have the cognitive muscle to do all of this.

<comment><USER59> Young 30s here and I already feel like I don't have the muscle for it.

</comment></comment><comment><USER60> As an 18 year old, I've learned so much in the past few years about developing good software it's mind-boggling. I can't imagine what 10, 15, 20 years of experience would look like.

<comment><USER61> The returns diminish over time.

What you learn over those years is incredibly helpful, as it takes a lot of breadth/depth and time. But the rate at which you learn things goes down. Similar to learning a foreign language. At first you are learning new words everyday. At some point, you know all the common words, so learning new words is impossible at the same rate as before.

</comment></comment><comment><USER62> I'm 43, with 20 years of solid experience in most major languages out there, from backend to frontend.

I guess the virus is partly to blame, but I'm having a REALLY hard time finding work right now; and I'm applying all over Europe with a focus on Amsterdam & Copenhagen, remote or otherwise.

<comment><USER63> I suggest switching to consultancy/freelance work. The interview process nowadays in Europe is just a time waster.

Before switching to consultancy, I've wasted almost half a year applying to various jobs. Multiple rounds of interviews, coding challenges, specialized resumes and everything in between. Average response time from recruiters was 2 days to 1 week.

Took me less than two weeks to get my first client as an independent contractor on a highly competitive freelance platform.

Also, don't hesitate to sign up with recruitment agencies. I was quite pleased with the quality of forwarded jobs from recruitment agencies.

<comment><USER64> Name of that highly competitive freelance platform?

<comment><USER63> I was referring to Upwork, but if you've got the will to go through an intensive interview process take a look at TopTal as well.

<comment><USER64> I do Upwork since 2008. And toptal is a BS actually

</comment></comment></comment></comment></comment><comment><USER65> Real world IT services seem to be dominated by middle aged persons. Accenture, Dell EMC, HPE, RedHat, etc. Particularly integration roles in gov, health, banks. It takes decades to build contacts. And most folks seem to know each other from way back and have similar war stories ;)

</comment><comment><USER66> The cognitive dissonance of the tech industry is that many companies do in fact value their longtime employees, but they won't hire any new employees of the same age.

You can be old in tech, as long as you were hired when you were young.

<comment><USER66> The main problem that "older" workers have is just getting in the door.

Once they get in the door, they can often prove themselves, but they just aren't given the same chances as younger workers.

</comment></comment><comment><USER67> My father is 58.

He works as an independent ERP Consultant.

Last week, he enrolled for a 6 month boot camp on web technologies with an elite engineering school near his home.

He's my inspiration to keep learning to remain relevant in Industry 4.0

</comment><comment><USER68> They list documents stating 30 year old developers as old ... are you kidding me? At 30, developers are just starting to understand the job (like all of the non-coding skills).

</comment><comment><USER69> Question - why is it that experience / age / wisdom is an asset in other professional trades [1], but it is seen s as a liability in tech?

I have a couple of theoretical answers.

One, perception of tech workers being semi-skilled labor (like low level clerical work) lending it to being managed with "cost center" economics. Middle managers from baby boomer and gen x grew up with idea that tech can easily be "off-shored." The perception is that tech work is a necessary cost, not a strategic element of pretty much all businesses. However, the next generation of middle managers that grew up not knowing what life was like with out the internet will recognize how important tech is to the business and will shift the corporate attitude towards tech work.[2]

Two (this one will be a lot more upsetting), tech workers were introverted and passive, which makes them easier to take advantage of by middle managers who are not afraid to bully them around.[3] So when tech workers get laid off after age 40, rather than fight and adapt, they blame ageism and go quietly into the night. However, the next generation of tech workers seems to be a lot more assertive in their comp and career expectations. I know I am.

Three, a combination of the above.

Fourth, none of the above and I am full of $hit. In which case, I am interested in others' thoughts.

[1] Law, medicine, finance, accounting, etc

[2] A quick story on how corporate culture can change between generations. When IBM was first trying to sell their PCs to businesses, none of them were buying. So they hired a consulting company to figure out why. The consultants came back and said to IBM that the problem with their PCs not selling was an actuarial problem, not with their strategy - the younger people at those companies were excited about new tech, but the decision makers (many of whom were much older) did not see the value of new tech. Consultants told IBM to wait until the decision makers retired. The rest is history.

[3] I have seen this play out, where tech workers are too intimidated to push back against poor business decisions, like over-optimistic delivery deadlines.

<comment><USER46> >Question - why is it that experience / age / wisdom is an asset in other professional trades [1], but it is seen s as a liability in tech?

Silicon Valley (software) Culture.

tech (software) company want cheap labors and believed youth can overcome any difficulties. its deep rooted in Silicon Valley culture. From 19 yrs old Bill Gates, Steve Jobs, Mark Zuckerberg, Evan Spiegel...etc.

While on the hardware side, most of engineers/founders are much older because hardware is more unforgiving than software.

</comment></comment><comment><USER70> The "paper" seems to be of low quality for arxiv, not even has two column layout.

<comment><USER71> ... and the methodology seems poor too. I had a sideline in magazine journalism for a while... I'd be interested in the correlation between article bias (pro / anti) versus age of writer (or target readership)

</comment></comment><comment><USER72> It's a shame that this paper uses a URL shortening service intermediary for its links. Eventually, those links will become useless at discretion of that service and you can't even use them in the WaybackMachine either when that happens. Not only because those URLs are unremarkable on their own (I doubt the bitly links are present elsewhere on the web so the WaybackMachine would be triggered into archiving them), but also because I doubt the WaybackMachine would scan PDFs for links.

I leave record of the URL redirections here:

[https://bit.ly/2RKJW6S](https://bit.ly/2RKJW6S)

-> [https://www.theguardian.com/technology/2019/jul/22/google-pa...](https://www.theguardian.com/technology/2019/jul/22/google-pays-11m-to-jobseekers-who-alleged-age-discrimination)

[https://bit.ly/2RIit5L](https://bit.ly/2RIit5L)

-> [https://www.psychologytoday.com/us/blog/boomers-30/201710/yo...](https://www.psychologytoday.com/us/blog/boomers-30/201710/young-people-are-just-smarter)

[https://bit.ly/2yfZGYN](https://bit.ly/2yfZGYN)

-> [https://www.quora.com/Is-30-years-old-too-old-to-learn-compu...](https://www.quora.com/Is-30-years-old-too-old-to-learn-computer-programming)

[https://bit.ly/2K7tolx](https://bit.ly/2K7tolx)

-> [https://www.un.org/en/sections/issues-depth/ageing/](https://www.un.org/en/sections/issues-depth/ageing/)

[https://bit.ly/2z19eXW](https://bit.ly/2z19eXW)

-> [https://empirical-software.engineering/assets/data/google-se...](https://empirical-software.engineering/assets/data/google-search-results_us-en_2019-08-02_annotated.csv)

[https://bit.ly/2XEuWez](https://bit.ly/2XEuWez)

-> [https://github.com/sbaltes/api-retriever](https://github.com/sbaltes/api-retriever)

[https://bit.ly/3agASwY](https://bit.ly/3agASwY)

-> [https://www1.eeoc.gov/laws/types/age.cfm](https://www1.eeoc.gov/laws/types/age.cfm)

-> [https://www.eeoc.gov/laws/types/age.cfm](https://www.eeoc.gov/laws/types/age.cfm)

-> [http://www.eeoc.gov/age-discrimination](http://www.eeoc.gov/age-discrimination)

-> [https://www.eeoc.gov/age-discrimination](https://www.eeoc.gov/age-discrimination)

[https://bit.ly/2Bcuc7y](https://bit.ly/2Bcuc7y)

-> [https://www.zhihu.com/question/55618811](https://www.zhihu.com/question/55618811)

<comment><USER73> Thank you for posting these. Some other links of potential interest:

[https://www.wired.com/story/surviving-as-an-old-in-the- tech-...](https://www.wired.com/story/surviving-as-an-old-in-the-tech-world/)

[https://www.linkedin.com/pulse/google-leaders-greyglers- navi...](https://www.linkedin.com/pulse/google-leaders-greyglers-navigating- our-way-bigger-better-tracy-wilk/)

[https://www.amazon.com/Wisdom-Work-Making-Modern- Elder/dp/05...](https://www.amazon.com/Wisdom-Work-Making-Modern- Elder/dp/0525572902)

These are from [https://about.gitlab.com/company/culture/inclusion/tmrg- gitl...](https://about.gitlab.com/company/culture/inclusion/tmrg-gitlab- generational-understanding/)</comment></comment>


The Juliar Language - <AUTHOR> https://github.com/JuliarLang/Juliar <comment><USER2> Functional language where everything is a string? That's called m4!</comment>