I don't see anything anachronistic about local radio. You're stuck in the car and want to listen to something, so just flip on the radio. It works. No need to stream, pre-download the songs you want, pay for subscriptions, use up your bandwidth, etc. Nation wide radio conglomerates aren't that interesting, I want to listen to the local news not some clearchannel all-justin-all-day crap. My local stations have local news and regional news and local traffic reports and local advertisements and local sports. Almost everyone on the freeways trying to get to work are listening to the radio. It's not dying off.
Podcasts are just time shifting for NPR, similar to VCR, and not sucking up much revenue. The problem comes because some podcosts (all?) are self funded rather than being funded from NPR. So some people will fund the radio station which doesn't fund the podcost costs, and others will fund the podcast which doesn't fund the content. They just need to add a "support your local station" announcement at the front, which would replace the "listen to my friend's podcast too" announcements that are already there. NPR isn't centralized, shows are produced from many places in the country and broadcast elsewhere. The only thing many stations have in common are the news casts at the top of the hour, there are places where the local NPR station is also the local classical or jazz station.
I listen to podcasts later. News however doens't work with a podcast. I don't want to listen to news from a week or a month ago.
The radio won't die anytime soon because people are still stuck in their cars when commuting and need something to listen to. It's also free to listen to from home, no need to subscribe to a streaming radio service that's more expensive than an optional yearly pledge. Technological upheavals all over the place but the radio is basically the same as it always was and holding steady. A few children of hipsters use exclusive streaming but who cares.
People reinvent software for the same reason that they reinvent the wheel. A truck tire doesn't fit on a kid's bike. The mountain bike tire is too heavy for competitive cycling. New materials are available to make stronger tires while being lightweight. Technology evolves, we shouldn't be stuck using code written in 1970 in places it wasnt' designed to go. I work on embedded systems, some of them very small. Glibc will not work on those systems very easily as it is a bloated and overly generic mess. So new libraries are written that are more appropriate. Lots of new libraries. Lots of new RTOSs. Lots of new everything. Linux is essentially a reinvention of the wheel. Competition is good.
It would save me a lot of time if there were libraries I could trust that fit the requirements I need.
Software is dumbed down, today it's all about connecting libraries into frameworks than any actual engineering or programming skills. Of course the back end exists, but the marketing of software seems totally focused on the dumbed down part of it. There's also a lot of people who think "I've got a great idea, here's a mockup UI and if you implement it for me then I'll be rich", as if the actual making-it-work part is not that important.
But what if the male project lead has a child and takes paternity leave? Or the wife moves across country and the male workers decides to follow? Your thinking is stuck in the 50s if you think only women have to deal with children and only men make family decisions.
And yet women have to be above average to get hired, whereas the idiot male coworkers are everywhere. There is more equality when you're a genius, but when you're looking at the average so-so workers then it's skewed much more male. I think it's because when you're undecided about whether or not to hire someone that hidden biases will come to the surface.
Having a family should make no difference between men and women. Both can and should be taking family leave, spending time home when a child is sick, and so forth. Maybe the older generations don't understand this but I definitely see younger male workers opting for the paternity time off and splitting time with their spouses. It's incredibly male dominated where I am now and yet male employees with children are juggling their work time around family.
CS has been dumbed down, maybe women are too smart for it now? It's really hard to get enthusiastic about an academic discipline that is being driven by corporate hiring desires.
The hiring manager isn't thinking about those factors, the salary is being left to HR to decide. The hiring manager is just thinking whether or not to hire, and probably has a list of 2 male citizens, 1 female citizen, and 8 H1-B applicants. The hiring manager is also the one who does the performance revues and decides where to dole out the raises. Upper management is only peripherally involved in all of this so their policy of being inclusive doesn't trickle down very well and HR is only trying to catch egregious violations of law and policy.
I find that a lot of people who do and who push others to negotiate tend to be very pushy in all areas of life. They're the ones who say "anyone can save $5000 or more when buying a car, only morons don't know how to negotiate" and the like. Everything is a competition to them. It's very distasteful to me to negotiate unless I absolutely have to. I'd much rather walk off the auto dealer's lot than actually talk to the salesperson.
(for security I should mention that we vetted all of this and the changes and fixes to the original commercial library, we weren't just cocky people thinking we knew better than the experts)
I've implemented some of all those categories. Security because there's rarely a security library that does just what you want, or because the library you do have is too slow or too large (seriously there are some very poorly written SHA algorithms in professional libraries). Datetime because the system had a bad library that we had to replace and I would not just steal code from GPL and break their license, BSD was a guideline to start but had it's own issues because of historical system issues. And fundamental libraries because we needed much much smaller versions of things like memmove, strtoul, and the like that were optimized for severe space requirements. Sometimes you have a requirement of "make it boot in less than half a second" and then you find you can achieve that by optimizing the libraries. Sometimes a lot of commercial stuff comes with really bad libraries; there are network stacks or operating systems that decide to stick in their own basic C libraries for some stuff that are of very dubious quality.
People don't have to do this, but they should at least know how if they ever need to and should be able to recognize when it is needed. Like when your JavaScript library to pad out strings vanishes overnight.
Unless the functionality doesn't work or does not meet your requirements. It's called programming. If the only thing you've ever done is call libraries but are unable to write code similar to what a library routine does, then that's not really programming.
Remember, actual human beings with less than divine powers wrote those libraries! I may be a good rule of thumb or guideline for novice programmers to not reinvent the wheel but it should not be an absolute taboo for all programmers of all skill levels and all projects. If there is no wheel that you can find or afford for your project then by necessity you must create one; it's not even reinventing the wheel but instead reimplementing to match the requirements.
Bignum math libraries may be a good example as mentioned earlier. You may not be able to find one that is affordable and not burdened with some open source license that your legal team feels is safe to use (you can not just copy GPL code willy nilly and stick into your proprietary product). They often come with cryptographic libraries but may be too large for your actual system or have runtime requirements that are unacceptible (need 1KB stack or more). It is reasonably common to find optimized variants of such libraries making use of inline assembler for key routines. You will also find a handful of such libraries and need to be able to decide which one is appropriate (ie, read the source code, run tests, do measurements). Libraries are very often overly general purpose and bloated with unnecessary features.
Wait, I implemented a new libc when I started a project, because the existing one was too large. Not entirely from scratch though, there was a lot of copying of our earlier code followed by a lot of slash and burn. Seriously, newlib was too big and had incompatible design choices. Not that we use a lot of libc, but you do need a small handful of basic functions.
Most of them won't break overnight though. JavaScript doesn't store its routines locally on your computer so every single time one of these library routines are used it is redirected the site that implements that routine. Whereas with Python using the package manager copies the code to your machine. If the library code later vanishes you can still reimplement it before hordes of web users start complaining that the world is ending. It would cause problems if someone goes and downloads your utility and follows the instrudtions to "install these packages first" but that's a minor problem compared to every user of the code suddenly finding that it has stopped working.
Modern programming religion says "thought shalt not write original code anymore". The JavaScript people take this seriously and their coding skills have atrophied to the point that they don't even know how write the code to pad strings.
People reinvent the wheel all the time. You'd have to or else we'd still be using stone wheels. Even a bigmath library gets reinvented, I've seen many versions. That's because one size does not fit all and some of those libraries or their RAM usage will literally not fit on some machines.
I don't see anything anachronistic about local radio. You're stuck in the car and want to listen to something, so just flip on the radio. It works. No need to stream, pre-download the songs you want, pay for subscriptions, use up your bandwidth, etc. Nation wide radio conglomerates aren't that interesting, I want to listen to the local news not some clearchannel all-justin-all-day crap. My local stations have local news and regional news and local traffic reports and local advertisements and local sports. Almost everyone on the freeways trying to get to work are listening to the radio. It's not dying off.
Podcasts are just time shifting for NPR, similar to VCR, and not sucking up much revenue. The problem comes because some podcosts (all?) are self funded rather than being funded from NPR. So some people will fund the radio station which doesn't fund the podcost costs, and others will fund the podcast which doesn't fund the content. They just need to add a "support your local station" announcement at the front, which would replace the "listen to my friend's podcast too" announcements that are already there. NPR isn't centralized, shows are produced from many places in the country and broadcast elsewhere. The only thing many stations have in common are the news casts at the top of the hour, there are places where the local NPR station is also the local classical or jazz station.
I listen to podcasts later. News however doens't work with a podcast. I don't want to listen to news from a week or a month ago.
The radio won't die anytime soon because people are still stuck in their cars when commuting and need something to listen to. It's also free to listen to from home, no need to subscribe to a streaming radio service that's more expensive than an optional yearly pledge. Technological upheavals all over the place but the radio is basically the same as it always was and holding steady. A few children of hipsters use exclusive streaming but who cares.
People reinvent software for the same reason that they reinvent the wheel. A truck tire doesn't fit on a kid's bike. The mountain bike tire is too heavy for competitive cycling. New materials are available to make stronger tires while being lightweight. Technology evolves, we shouldn't be stuck using code written in 1970 in places it wasnt' designed to go. I work on embedded systems, some of them very small. Glibc will not work on those systems very easily as it is a bloated and overly generic mess. So new libraries are written that are more appropriate. Lots of new libraries. Lots of new RTOSs. Lots of new everything. Linux is essentially a reinvention of the wheel. Competition is good.
It would save me a lot of time if there were libraries I could trust that fit the requirements I need.
I know someone who read Finnegan's wake. When he comes out of the coma I'll ask him how it was.
I have heard that said, honest. Not often of course.
And immediately would have failed the Turing test. Going into a racial tirade though and people may think it's real enough to vote it into office.
"Can you push buttons? If so, then you could be a coder too!"
Everybody must stop this everybody must... stuff?
Software is dumbed down, today it's all about connecting libraries into frameworks than any actual engineering or programming skills. Of course the back end exists, but the marketing of software seems totally focused on the dumbed down part of it. There's also a lot of people who think "I've got a great idea, here's a mockup UI and if you implement it for me then I'll be rich", as if the actual making-it-work part is not that important.
Paternity leave is a thing now too, even in the US.
But what if the male project lead has a child and takes paternity leave? Or the wife moves across country and the male workers decides to follow? Your thinking is stuck in the 50s if you think only women have to deal with children and only men make family decisions.
And yet women have to be above average to get hired, whereas the idiot male coworkers are everywhere. There is more equality when you're a genius, but when you're looking at the average so-so workers then it's skewed much more male. I think it's because when you're undecided about whether or not to hire someone that hidden biases will come to the surface.
Having a family should make no difference between men and women. Both can and should be taking family leave, spending time home when a child is sick, and so forth. Maybe the older generations don't understand this but I definitely see younger male workers opting for the paternity time off and splitting time with their spouses. It's incredibly male dominated where I am now and yet male employees with children are juggling their work time around family.
And yet when I was a student, graduate and undergraduate, we had maybe 1/3 female CS students and sometimes more.
CS has been dumbed down, maybe women are too smart for it now? It's really hard to get enthusiastic about an academic discipline that is being driven by corporate hiring desires.
The hiring manager isn't thinking about those factors, the salary is being left to HR to decide. The hiring manager is just thinking whether or not to hire, and probably has a list of 2 male citizens, 1 female citizen, and 8 H1-B applicants. The hiring manager is also the one who does the performance revues and decides where to dole out the raises. Upper management is only peripherally involved in all of this so their policy of being inclusive doesn't trickle down very well and HR is only trying to catch egregious violations of law and policy.
I find that a lot of people who do and who push others to negotiate tend to be very pushy in all areas of life. They're the ones who say "anyone can save $5000 or more when buying a car, only morons don't know how to negotiate" and the like. Everything is a competition to them. It's very distasteful to me to negotiate unless I absolutely have to. I'd much rather walk off the auto dealer's lot than actually talk to the salesperson.
Because Reagan pushed his voodoo economic, and Reagan is a deity, this makes trickle down economics a matter of doctrine.
(for security I should mention that we vetted all of this and the changes and fixes to the original commercial library, we weren't just cocky people thinking we knew better than the experts)
I've implemented some of all those categories. Security because there's rarely a security library that does just what you want, or because the library you do have is too slow or too large (seriously there are some very poorly written SHA algorithms in professional libraries). Datetime because the system had a bad library that we had to replace and I would not just steal code from GPL and break their license, BSD was a guideline to start but had it's own issues because of historical system issues. And fundamental libraries because we needed much much smaller versions of things like memmove, strtoul, and the like that were optimized for severe space requirements. Sometimes you have a requirement of "make it boot in less than half a second" and then you find you can achieve that by optimizing the libraries. Sometimes a lot of commercial stuff comes with really bad libraries; there are network stacks or operating systems that decide to stick in their own basic C libraries for some stuff that are of very dubious quality.
People don't have to do this, but they should at least know how if they ever need to and should be able to recognize when it is needed. Like when your JavaScript library to pad out strings vanishes overnight.
Unless the functionality doesn't work or does not meet your requirements. It's called programming. If the only thing you've ever done is call libraries but are unable to write code similar to what a library routine does, then that's not really programming.
Remember, actual human beings with less than divine powers wrote those libraries! I may be a good rule of thumb or guideline for novice programmers to not reinvent the wheel but it should not be an absolute taboo for all programmers of all skill levels and all projects. If there is no wheel that you can find or afford for your project then by necessity you must create one; it's not even reinventing the wheel but instead reimplementing to match the requirements.
Bignum math libraries may be a good example as mentioned earlier. You may not be able to find one that is affordable and not burdened with some open source license that your legal team feels is safe to use (you can not just copy GPL code willy nilly and stick into your proprietary product). They often come with cryptographic libraries but may be too large for your actual system or have runtime requirements that are unacceptible (need 1KB stack or more). It is reasonably common to find optimized variants of such libraries making use of inline assembler for key routines. You will also find a handful of such libraries and need to be able to decide which one is appropriate (ie, read the source code, run tests, do measurements). Libraries are very often overly general purpose and bloated with unnecessary features.
Wait, I implemented a new libc when I started a project, because the existing one was too large. Not entirely from scratch though, there was a lot of copying of our earlier code followed by a lot of slash and burn. Seriously, newlib was too big and had incompatible design choices. Not that we use a lot of libc, but you do need a small handful of basic functions.
Most of them won't break overnight though. JavaScript doesn't store its routines locally on your computer so every single time one of these library routines are used it is redirected the site that implements that routine. Whereas with Python using the package manager copies the code to your machine. If the library code later vanishes you can still reimplement it before hordes of web users start complaining that the world is ending. It would cause problems if someone goes and downloads your utility and follows the instrudtions to "install these packages first" but that's a minor problem compared to every user of the code suddenly finding that it has stopped working.
Modern programming religion says "thought shalt not write original code anymore". The JavaScript people take this seriously and their coding skills have atrophied to the point that they don't even know how write the code to pad strings.
People reinvent the wheel all the time. You'd have to or else we'd still be using stone wheels. Even a bigmath library gets reinvented, I've seen many versions. That's because one size does not fit all and some of those libraries or their RAM usage will literally not fit on some machines.