DEV Community

4 Things Developers Take for Granted That Used to Be Really Hard

Brian Rinaldi on August 29, 2018

As software developers we love to complain. Spend a few hours in a development office and you’re bound to hear shouts of bad documentation, horribl...
Collapse
 
raymondcamden profile image
Raymond Camden

Instead of a software key, many old games required you to own the docs and would reference them in game as a way to ensure you hadn't stolen the game. Ie, go to page X line Y and type in the word.

Yep - don't miss that at all.

Collapse
 
blazselih profile image
Blaž Šelih

Oh yes. This brings back memories.
And sometimes docs were printed with light green ink on dark green background to make them impossible to photocopy.
This was, of course, before the wide spread of scanners and cheap color copiers.

Collapse
 
raymondcamden profile image
Raymond Camden

Although to be fair, some of the stuff you got in games in the old days were incredible, especially Infocom.

Collapse
 
remotesynth profile image
Brian Rinaldi

Omg. I forgot about that! Yes.

Collapse
 
hagailuger profile image
Hagai Luger

You've just taken me 25 years back!
Paging through the documentation to find the right word (and probably copied the documentation too...)

Collapse
 
aeiche profile image
Aaron Eiche

I remember this in Prince of Persia on a Macintosh LCII in middle School. Not having the instructions, we'd guess. Occasionally we'd get it right.

Collapse
 
bgadrian profile image
Adrian B.G.

First I needed to rollback the tape when a game loading stage failed.

I still remember helping my father installing Windows 95 from 13 floppy disks on 10 PCs at a school laboratory, and I had fun!

Now I do docker run and I can have any OS or software in a few minutes. Amazing.

Thing #5: learning resources

From books to courses, from slack to stackoverflow, we now got it easy and free.

Thing #6: Browser dev tools and HTML5 standards in all browsers

Specific to web devs, but nowdays is very easy to start with front end development. Although it is the most difficult job to master I would say.

Collapse
 
elmuerte profile image
Michiel Hendriks

Oh yes, thing #5. One of the reason for those "big boxes" of software was for the huge amount of dead tree content called: manuals. Back when the fancy new thing called "online help" was a digital manual you easily open from within the application jumping directly to the relevant section.

Collapse
 
bgadrian profile image
Adrian B.G.

Oh yes, the help manuals files ... Good ol times

Collapse
 
remotesynth profile image
Brian Rinaldi

Agree on both!

Collapse
 
merrythemes profile image
Merry Themes

Rollback the tape

That brings make some bad memories.

Collapse
 
imthedeveloper profile image
ImTheDeveloper • Edited

I literally laughed out loud at some of this..the memories. I had windows 95 on about 50+ diskettes it wouldn't install even on a 486 after getting up to number 31. I could have cried that day if I wasn't so battle hardened.

I spent a lot of time on angelfire, Geocities, homestead and begging Dev friends if I could take some space on their web servers. Countless times my site would go offline due to providers going bust and I remember spending plenty of time adding scripts to remove forced adverts and branding all the free hosting providers put on your pages

Collapse
 
ntnunk profile image
Noel

I remember getting the original "Master of Orion." It came on, if I recall correctly, 10 1.44" floppies. Me and my buddies at the time where aghast and all we could think was "What in the world would require any game to need THAT MUCH DATA?!?!?" Times have changed for sure. These days I have a glorified text editor (Eclipse) sitting on my hard drive and sucking up 68GB...

Collapse
 
guneyozsan profile image
Guney Ozsan

I remembered playing Monkey Island 2 on Amiga (no hard drive and like 10 floppies). In one scene you needed to switch disks when a character spits, and you needed to switch back the disks when the flying spit lands on your face. It was so hard to keep it going without a HD.

Collapse
 
david_j_eddy profile image
David J Eddy

Geocities was the reason I found out about CSS :D. z-index FTW!

Collapse
 
simonhaisz profile image
simonhaisz

Code reviews. Even when using version control 10+ years ago the code review would be you sitting at another devs desk as they walk you through the diffs.

Continuous Integration. Remember having to commit your changes in the morning so the noon build would get them? And because the build takes 2 hours and the first set of regression tests takes another hour you only have a few hours to fix any issues that happen before the 6pm build?
Yeah, I don't miss that.

Collapse
 
shawnoden profile image
Shawn Oden

Sadly, I recall too many times when "continuous integration" was just Ctrl-S, since there wasn't anything other than the live site. And QA was just reloading the website.

Collapse
 
rubberduck profile image
Christopher McClellan

Why aren’t your code reviews like that now?! Absolutely the most effective way to perform a code review, in my opinion. In fact, it’s so effective that my team does it continuously...

Collapse
 
simonhaisz profile image
simonhaisz

I believe that there are pros and cons for both types of code reviews, which I will refer to as sync and async. Depending on your situation one may work better than the other for you.

sync
Pros:

  1. Everyone is focused 100% on the review
  2. Questions can be answered immediately - "I don't know" is a valid answer
  3. No context switching during the review means efficiency That's all great, so even after we got software that supported async we kept doing sync. But then we ran into the following cons so we switched.

Cons:

  1. Requires reviewers to find time when both of them are available at the same time.
  2. It can take a while for the reviewer to process the changes so that they can even start asking questions. All the while the writer is just sitting there waiting...
  3. ...Which lead to their frustration sub-consciuosly influencing the reviewer to 'hurry up and approve' without them saying a word. During this time we had a number of bugs crop up that were the exact types of issues that code reviews are best at catching. Our RCA of this was that the nature of sync reviews put more pressure on the reviewers to approve changes quickly, meaning they were disincentivised to go "I'm not sure, I need to think about this for a bit". Now, depending on your team/culture maybe this doesn't happen to you.

What we've experienced from async
Pros:

  1. Allows people to review on their own time/pace, including remotely
  2. Not having someone waiting next to you while you review means you do not feel rushed (any more than the current schedule anyways)
  3. Documented feedback means a) things are likely to be followed up b) others can learn from the review
  4. If the reviewer needs to have a face to face discussion, they can still do that! It's not uncommon for me to add a comment "I'm confused/concerned about this approach" and then meet with them
  5. It's easier to review code not in the review using my own machine/setup rather than all to drive on their box.

Cons:

  1. Promptness of response can really lag
  2. Someone can technically click the green check mark without looking at a single line of code Depending upon the maturity of your team those may be big issues or not issues at all.
Thread Thread
 
rubberduck profile image
Christopher McClellan • Edited

I was just making a joke about pair programming man. I’ve been on teams that don’t do code reviews anymore because we pair anyway.

Thread Thread
 
simonhaisz profile image
simonhaisz

Ugh woosh right over my head...

Thread Thread
 
jrohatiner profile image
Judith

Very thorough explanation. And accurate as well. Namaste!

Collapse
 
mazz profile image
Michael • Edited

I don’t recall ever working at a place with that high a degree of build integration. Maybe one place but that was mid-to-late 2000s

Collapse
 
simonhaisz profile image
simonhaisz

That example WAS from the mid 2000s :)

Collapse
 
remotesynth profile image
Brian Rinaldi

Yes. Agree on both.

Collapse
 
theycallmenucci profile image
Steve Antonucci

Somehow I feel like intellisense (and maybe even Google? 😁) belongs on this list. Prior to that we had to buy, store, dig and sift through very large reference books in search of functions and their signatures. 😂😂

Collapse
 
bokmann profile image
David Bock

I still have a shelf in my basement filled with the ‘Inside Macintosh’ volumes. There are literally like 20 books. The legendary one was Vol. 6... I’ve seen smaller sets of encyclopedias!

Collapse
 
theycallmenucci profile image
Steve Antonucci • Edited

LOL! I have a similar problem, still have lots of old books from the 80s and 90s. I have to just force myself to accept that they're just never going to be interesting to my kids and they'll never have any meaningful historical value, despite how hard I want either of those to be true. 😂😂

Collapse
 
ferricoxide profile image
Thomas H Jones II

If you are really old, like Brian, you remember the days when software came on sets of floppy disks. You had to install the software by loading each disk in the proper order.

If you're really old (or started playing with computers as a kid), you remember some software (games, mostly) coming printed in magazines and having to transcribe it to your pre-PC (Trash-80, Apple ][, Commodore, etc) and then save it out to casette if you didn't want to have to type it all back in again. And you still clearly remember having to cue the tape up to just before the screaching so that when you ran the load command, it would actually be able to read data before the load-command timed out. :p

Or, perhaps, like many of us, you didn’t even use version control.

I still remember the pure joy, in 1989, when a college friend pointed me at the most wonderful tool I'd encountered up to that point, rcs. And, in the non-UNIX wastelands of 8.3, you weren't couldn't even engage in:

file1
file1.bak
file1.bak.2
...

In today’s age, it’s hard to remember that just 10–20 years ago the majority of code developers used were closed source.

Though, before the advent of SysV- and then Windows-based systems, things were amazingly open. I still remember the shock of when they upgraded our Sun lab from SunOS 4 to Solaris and, suddenly, cc was something you needed to request access to (because they suddenly needed to buy compilers).

P.s. I'm old, apparently (and starting my computer journey at age 7 has made that journey even longer than just the span of my career).

Collapse
 
simonhaisz profile image
simonhaisz

Setting up environments.

Today we have VMs which are quick and easy to spin up and then put software on. Or even better, containers that already have the software you need and cannot be changed!

I remember having to use ghost software to re-image machines every morning to make sure that my environment was clean before installing last night's build. And those machines would be physically in my cubical, with a KVM switch to control them! Spinning up a VM and rdp/ssh into it? Way better.

Collapse
 
remotesynth profile image
Brian Rinaldi • Edited

OMG yes! I remember the days when not only was every dev's local environment was different, but dev was different from QA was different from prod. Made for some eventful deploys!

Collapse
 
simonhaisz profile image
simonhaisz

Exactly!

"Works on my machine" hasn't been fully killed off, particularly for client apps. But for a lot of cases it is as dead as the dodo.

Collapse
 
ntnunk profile image
Noel

It's depressing how much of that I remember first-hand (roughly all of it). And OMG, hardware dongles. I completely forgot, or maybe suppressed the memory of, hardware dongles.

Great article and a serious blast of nostalgia along with my coffee this morning. Thanks for sharing!

Collapse
 
desolosubhumus profile image
Desolo Sub Humus 🌎🌍

I remember pulling out a book and having to use it to help with writing the Fortran software to make the Hangman game, then save it to cassette. The old Classic99 games* were a huge upgrade from that, and floppy disks were something I wouldn't have until sometime later on.

The worst? Wanting to play music with the cassette player and hearing the software you wrote play.

*mainbyte.com/ti99/howto/classic99....

I feel really old, now.

Collapse
 
desolosubhumus profile image
Desolo Sub Humus 🌎🌍

Bad me, replying to myself ...

I just saw Google Tone in the Chrome Web Store. It's like the old cliche 'everything old is new again'.

I mentioned how saving software on a cassette tape ended up saving data that a tape player translated into sound above. Theoretically, with the right equipment and software, you'd be able to translate the sound back into the original code. I'm guessing Google Tone works on that principle, but plays URLs instead of Fortran, like my old cassette tapes did.

Sorry all, I couldn't help myself and had to share that.

Collapse
 
govcoder profile image
Eric Wilson

Debugging! Cross browser compliance is a breeze compared to figuring out what was causing a Windows 95 desktop application to break on that 1 user's machine. What was that dll every software company on the planet wanted their own version of ctl3d.dll or something?

Also, stability 20 years ago everything randomly went down all the time and seemed to have very little redundancy. Desktops crashed often (blue screens), network connections dropped frequently, if someone knew your IP Address it was trivial to crash your workstation (ping of death, etc...).

Collapse
 
theoutlander profile image
Nick Karnik

I installed Win 3.0 probably over a hundred times! I think it was ~13 diskettes. I did that for a ton of family and friends too! Most of my life was spent fixing corrupt machines and reinstalling everything.

Followed by Windows 3.1, Windows 3.11, Windows for Workgroups, Windows 95 (which was 21 disks I think).

Collapse
 
spidergears profile image
Deepak Singh

Thanks Brian for giving us perspective from back then. Now we have come a far way from back then, documentations are just a google search away, OSS just a github search, an awesome shared knowledge-base is at stack-overflow, to name a few. This is awesome time.

At the same time I see a lot of people have become complacent with abundance of these resources, which a cause of concern.

I was a student when CDs and Floppies were still in circulation, we would get programmes and games on CDs and use floppies for data needs. I was confused when I saw a thumb-drive for first time, how can it be so small and still have a huge data capacity compared the 3 1/2 " floppy.

Collapse
 
moopet profile image
Ben Sinclair

We got bored of printer-port dongles at university and user a manual printer switch.
I remember cracking a game I bought because it was missing the manual and the copy protection was of the kind where you had to enter word such-and-such from page n of the manual.

These efforts were easier than going the "legit" route. Copy protection back in those days was arduous.

Collapse
 
superdiana profile image
Super Diana

OMG this is amazing! lol. I did use both 5 1/4 and 3 1/2 disks! - i think the first game i installed on my own was california games or maybe prince of persia... lol i was precocious!. Totally loved being part of the generation that saw new things like internet and mobile phones. I can definitely say back then nobody imagined we would get this far.

Collapse
 
ozzyaaron profile image
Aaron Todd

The first things that often come to mind is

  1. Having a screen & keyboard to work with.
  2. Being able to look at your screen for a while without getting a headache.

I started shortly after screen & KB became the norm so we still had a class or two demonstrating older technologies. I feel that it is easier to translate, explain and get your ideas working with currently input/output.

On screen technology when I started I think we had 12" CRTs and I definitely remember 14" LCDs with ghosting and so on at the beginning. Even with ghosting though you almost instantly were able to code for 8 hours straight without eye strain. There was no way to do this with a CRT - even the very best and most expensive Sony ones :)

Collapse
 
david_j_eddy profile image
David J Eddy

@Brain Great article! That Doom part made me feel 13 again. IT is amazing how much the day to day life of the average web/app developer has changed in 20 years. It is hard to think of any other industry that has been as transformative and transformed as much. What a time to be alive :D.

Collapse
 
elmuerte profile image
Michiel Hendriks

I'm with you on the first two points. I have installed MS Office 6 from what it seemed an endless series op floppies. Or the horrible commercial software, which even with a student license, was a pain to install.
And I have messed around with the likes of Geocities, Xoom, Lycos, etc. for my websites in the late 90s.

But for #3 and #4 you should look further than 20 years ago. 19 years ago I was using easily available open source software and messing around with CVS. My SourceForge account (and my freshmeat account) is from 2001-09-06 (almost 17.5 years old). That's when I started on my own open source projects which were easily by SF.net with a CVS repo and place for a website.
Even before that I have used free and open source Delphi components which were distributed via people who did set up proper websites.
CVS has been around for 28 years, not easily available on MS Windows though. But TortoiseCVS (2000) dramatically changed this.
Access to internet made access to open source easily available. And SF.net made version control easily available.

An other point I've seen people make in the comments here: Continuous Integration. Back in 2006 I set up a CruiseControl (created in 2001) instance to build a project multiple people were working on. The "only" thing needed for that was a computer which was up and running. Initially we used a simple desktop for this. I don't think it is much easier these days. Getting your CI working correctly can still take quite some time.

One thing that was really lacking 20 years ago was dependency management (and public repos). Apache Maven was only released in 2004. (Note sure if there was an earlier tool for any other platform.) Before that you simply had your dependencies in your version control, and "regularly" checked the websites and mailing lists for new releases.

Collapse
 
elmuerte profile image
Michiel Hendriks

Another thing: system crashes due to bad code. These days your application just crashes, or you kill it. You fix the code and try again. In DOS, and also the earlier MS Windows versions there was a fair chance you might need to reboot your whole system because you managed to lock it up.

Collapse
 
camainc profile image
Charles Cherry • Edited

You should mention what coding was like before Google and StackOverflow, i.e., crack open a book. Also the cost of said computer books...

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

Storing your stuff online I remember that there was a time where everyone carries a hard drive with them and you literally have to run games or documents from these drives. It was way before dropbox or google drive was even invented.

Collapse
 
stillpixel profile image
Ron Rattie • Edited

I used to walk around my Battalion in Fort Hood with a parallel zip-drive and two zip disks. One had Windows 95 and the other had all of our software. I setup everything off of that when I was configuring a new** computer. We also had a point to point RF connection for one motor pool that couldn't be wired directly... think pringles can wifi point to point for you youngsters.

Our big network file server was a Pentium Pro with 256MB of ram.

** New was a relative term and referred to hand me downs we transferred from a NASA warehouse in Houston to our Battalion property books.

Collapse
 
rubberduck profile image
Christopher McClellan

In 2003 Linux was good for running a headless server and, maybe a desktop workstation w/out a GUI, but forget trying to get it running on a laptop. WiFi? Lulz. Y u no have hardline noobz? Hope that’s not an NVidia accelerator in there!

I seriously think people have forgotten just how bad *nix distro s were back then.

Collapse
 
jfrankcarr profile image
Frank Carr

On getting software, particularly development software, its amazingly about even. Sure, I had to shuffle through a lot of floppies to install early versions of VC++ or VB. But, today, I find myself waiting, and waiting, for NPM or NuGet packages/updates to download every time I load a solution.

Has it really improved? I'm not sure. I'm now using command line tools a lot again, something I thought I had left behind after Windows 95.

I agree source control is a lot better now.

Open source is great now but there were some good free or low cost tools back in the olden days. You just needed to know where to get them.

Collapse
 
sudiukil profile image
Quentin Sonrel

TL;DR: Tech evolved.

Also on the news: Water is wet!

😁

Just kidding! Even though I'm too young to say "I lived that" I still witnessed some of these changes... and that's kinda scary to see not only how much things have changed but also how quick!

Even since I got interested in computing (about 10 years ago) I can see that a lot has changed and that we know take for granted a lot of things... the way web dev exploded is a good example (even though not as shocking as yours!).

Makes me wonder what things will be like in the same amount of time in the future.

Collapse
 
rubberduck profile image
Christopher McClellan

License dongles are, unfortunately, still a very real thing in 2018. Still common in embedded software development.

microchip.com/DevelopmentTools/Pro...

TI apparently only recently ended the practice for their compiler.

(Those are PS/2 ports btw. #GetOffMyLawn)

Collapse
 
shawnoden profile image
Shawn Oden

So raise your hand if you know what a handshake sounds like.

Collapse
 
justinjstark profile image
Justin J Stark

BCCKKKKKWW-KSSHSHSHSHSHSHSH-DUH-DAH-DUH-DUH-DUH-KSHSHSHSHSHSHSHSHHS

Collapse
 
elmuerte profile image
Michiel Hendriks • Edited

### CARRIER LOST

Mom! I'm on the internet, don't pick up the phone.

As a matter of fact. Getting on the internet used to be a big deal. I actually planned my internet activities before I got online.

Collapse
 
marcinsdance profile image
Marcin Dancewicz

How about changing CSS without browser's console?

Collapse
 
imthedeveloper profile image
ImTheDeveloper

Wow you are 100% right haha I actually fumbled through some old disks to check and I have win95 and office 97 mixed together.

FWIW, neither installed.

Collapse
 
theoutlander profile image
Nick Karnik

You should follow up with the following;

  1. Antivirus

  2. MP3's

  3. P2P file sharing

  4. BBS's

Collapse
 
charles66982918 profile image
charles hollins

I remember in the dim dark ages of computing, some of the Wintel platforms had object code libraries, you could not see the source. You didn't know what shit you were incorporating into your platform.

Collapse
 
reg__ profile image
Adam Sawicki

Very good read. Greetings to all old developers ;)

 
elmuerte profile image
Michiel Hendriks

Not exactly beauties by modern standards

Yes there are. Look how clean and organized things are.

Collapse
 
omawhite profile image
Omar White

As a new professional this was very interesting to read, there is a lot I take for granted with development.

Collapse
 
mazz profile image
Michael

Quark dongle: ADB, Apple Desktop Bus

Collapse
 
kirilloid profile image
Kirill Sukhomlin • Edited

I remember 10 years ago we used no version control system even though svn was here. AND at the same time I had no troubles finding a RichText editor for the web. I even had to CHOOSE!