May
2019
The World Wide Web of Answers – the Good and the Bad
I am still an active software developer! I love doing it and I can’t imagine a world or a job where I don’t have the freedom to practice that. Of course, because of the nature of my job, I have to do it after hours and weekends etc, which I don’t mind because I just love doing it. The title of this blog is related to that and not anything wider than that. There have been so many cautionary articles written on how one should not trust everything on the web and I am not going there. I just want to talk about finding answers on the web as a developer.
I just marvel at how far we have come in the last 30 or so years. In my first job at Wesleyan University, I had to learn assembly language programming for the VAX/VMS system. I had a lot of experience in higher level languages such as Fortran, PL/I. My PhD thesis was on computationally heavy systems that required a lot of distance calculations between atoms. Our group decided to speed that step up by coding that part in Assembly Language, but that was for an IBM 370. I also taught courses at Hunter College on this subject, so I was familiar with the concepts, but VAX/VMS is a very different system.
And in those days, if you get stuck, it was not easy to get answers! There were a LOT of bound manuals that you could look through, but it took forever to find the right answers. You can also call support, but they were of little help. In order for them to understand and help, they needed to spend a lot of time to look through your code etc. and they just couldn’t afford the time. In several instances, we would just give up and start over in a different direction.
Now, it is just amazing how quickly you can find the answers. I have had some really crazy errors that I think only I am getting. When I search for it, it is so fulfilling to see that I am never the only one. Someone somewhere has seen it and predominant number of cases, they have found a solution.
Most recently, I was running an open source software to help the Registrar’s office mass produce older transcripts as ready to serve PDFs. The converter would fail at random places with a memory exhausted error. It just didn’t make any sense because the documents being processed are not that large. In the old world, I would have to look through manual after manual or ask the colleagues (which more often than not took you down the wrong path). Today, I don’t even think twice. I copy and paste the relevant portions of the error on my browser and search and I can be sure that within minutes I will have several different options to try out.
Stack Overflow is just a fantastic resource for developers. Predominant number of my answers come from there and it is a highly reliable source of information.
So, whats the problem? Such easy access means that I am not investing enough time to investigate issues. When you do that you learn a lot. As I mentioned before, during the early days, lack of such easy resources resulted in you essentially dumping your code and starting over. It was frustrating, but at the end, you are happy that you learned a few new things.
And the fact that many others already have written and shared their code means you can simply copy and paste and assemble something together fast. Of course you need to know some trusted sources and what portion to copy etc, but it is an easy way out rather than sitting and thinking through the problem carefully, designing the algorithm or the software itself. When one does it this way, important information gets lost and when one goes back, they may not even know what is going on in the software.
I am also one of those who overly benefit from the generosity of others who post solutions and share code. I don’t reciprocate. One of my very first project at Wesleyan was to write the Finger program using VAX Assembler language. I was so thrilled! We shared it freely amongst the other Higher Eds on BITNET who were also VAX/VMS folks. Today, there is simply no time to contribute. Sharing comes with some serious responsibilities – you need to document well, you need to write it in a way the others can take advantage of it without a lot of customizations, and you need to commit to maintain it etc.
There is not enough time in a day to do all those good things I want to do… So, I am going to copy and past my errors for now and get a quick answer and move on 🙂
Nitte
May 17, 2019 at 6:21 am (6 years ago)True! I agree with your words. Nice!
http://nitte.edu.in/