3 ms·
My theory is we need to add "software history" to computer science education programs. How many developers whose careers began after 2000 have ever hand written
by bsenftner 4y ago
My theory is we need to add "software history" to computer science education programs. How many developers whose careers began after 2000 have ever hand written or know the power of a Makefile? I've worked at research labs and major animation studios that back in the 90's the entire infrastructure was fully automated thru Makefiles, and it purred like a well fed cat. There are hundreds of thousands of forgotten perfectly fine software tools, ignored simply because our industry has absolutely no respect for it's own history or lessons painfully learned beyond pulling up disparaging stories for new marketing angles.
- ogogmad 4y agoVery interesting comment. What older software should devs know about? My problem with Make and similar tools is I don't want to learn more ad-hoc syntax to accomplish something nearly trivial. But I don't know if there's any alternative.
- bsenftner 4y agoOriginal Make was butt simple: any lines that begin without tabs are a filename followed by list of other file dependencies, files whose modified date must be older than the filename at the start of the list. Than any lines of text immediately beneath that first line starting with a tab character are the shell commands to be executed in order that brings the first file up to date against it's dependencies. That was it, that is the entire original Makefile syntax. Then software vendors started adding extensions...
- bsenftner 4y agoI guess as far as other, older software: I'd need to know your interests or field. How I write software has completely changed at least 5 times, and now I'm deep diving on my 6th (docker/k8s) to deliver the same things I was delivering back in the 80's with software development process one. Actually, add 3 more complete re-wiring of how I write code - I forgot working on game consoles: every new console is a complete start from zero how to write, debug, package and ship software, software that is not that much different than was delivered with the last platform and dev process.
- HenriTEL 4y agoAs projects grow the Makefile becomes pretty much a big bash script, but with a specific syntax that I always struggle with.
- davidpfarrell 4y agoUnrelated to this topic, I invite you take a look at my project which a tool purpose-built to be a better version of what your makefile became: Run: Task runner that helps you easily manage and invoke small scripts and wrappers https://github.com/TekWizely/run https://github.com/TekWizely/run Defining commands feels like make, but comes with a bunch of extras targeted at the needs of a task-runner. I hope you'll check it out!
- HenriTEL 4y agoThe way to define options is interesting. It's hard to see the benefits from the docs in the README tho, given that it's yet another syntax to learn. I suggest to add a complete example of common use cases like running the unit tests, building targets while setting the correct options depending on the host (linux vs windows vs macos).
- acedTrex 4y agoWhile make is very powerful it's certainly not a tool that is nice to use. Theres a reason people built up layers and layers of complexity on top of it.