Here's an excellent bit of halloween advice from Mike Gunderloy: go read some source code you wrote five years ago for a real scare.
This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2006/10/what-did-you-write-five-years-ago.html
5 years ago, I was just starting to learn VB.Net (didn’t know any VB at all). I have definitely seen an improvement in my code over the years.
Of course, nothing is humbling than learning that your base code for a DB access layer that I “thought” was pretty slick, is in fact a major bottle-neck. Live and learn!
Permanent dain bramage was done to the world by C and C++. Many souls could have been saved had they used some form of Pascal, but preferably the Delphi environment. Much of what we enjoy today in the .NET world and C# is due to the Borland engineers who went to M$.
The new Turbo Delphi tools look promising, and for Win32 development, there is nothing better.
Five years ago I was still a Java developer, and right now I am a .Net developer. At that time I just joined the workforce to coding in JSP, and the project dead silently. I was writing object oriented code without knowing why I should write it in OO. But after more coding, and system needs to maintain and enhance, I found OOP is something to make the system scalable.
Five years ago, I’d not heard of any language other than QBASIC. I started learning C++ in spring 2003, and am now a C/C++/Python coder. It deeply frightens me that with only three years of coding experience, I can apparently write better software than 50% of all programmers - many of those I’ve worked with have never heard of design patterns, or unit testing, or anything other than slopping a bunch of files in a .zip and calling it a release.
I offer you the wisdom of Jerry Kindall ( http://www.jerrykindall.com/who.asp ):
I was such an idiot just a few short years ago. But then, it’s been my experience so far that no matter how old I get, I was always an idiot a few years ago.
“Not that plain text is any better, but angle brackets aren’t a silver bullet, either.”
It’s not about the angle brackets you crazy man. It’s about indentation !
Hmm, it’s weird but my code from 5 years ago looks pretty darn good. I was writing C++ at the time in Borland C++ Builder. Hands down the best C++ environment, even though the class library (VCL) is written in Pascal.
Back then I had the luxury of no one breathing down my neck waiting for me to finish. I was developing an application level network protocol, so it was a bit easier for me to make an argument that code will be ready when it’s ready.
Now things are very deadline driven - which, when deadlines are too tight, leads to the code I’ll be scared to look at five years from now.
Five years ago, I was writing vbscript for asp pages. Now, I’m writing vb.net and c# for .net 1.1 and 2.0 sites. Six years ago, I wrote a BHO, and I’d never go near doing that again. Other systems programming I did back then are far far easier in .NET than they were in VB6 (such as NT Services and event logging).
5 years ago I was building a CRM system in an Access Data Project 2000. SQL Server 7 back end. The company folded. Last year it came back to life and they are a client. So I am actually working with my 5 year old VBA code. Man what a mess I was back then.
Now I spend 50% of my time in SQL 2k and 05, 25% in VB.net 2 and the rest in VBA.
5 Years ago, I was writing Java code and VB too, but almost all this code was trying to undertand software development for mobile devices, I tried some SDK’s like SuperWaba, AppFoge, J2ME, so on… finally we decide that C/C++ will be alway the best, but we still using J2ME.
5 years ago I developed VB/shell/Perl/Java tricky system. It was mostly maintenance, though VB part was totally rewritten. What excited me most of all is that the system worked. Even more, it worked as required
Few months later it was VB/ASP/Java/HTML/JS system. It worked not as good, but worked (and it is still used at some places. Wow…) Now it is Java/HTML/JS. It works much better than those two, used all over the world, but is somewhat boring
I can definitely say that I’m much better now at coding/design and even architecting. But THAT code still excites me.
That was an interesting article you linked to, about Ruby - right up until I read the comments.
Matey was simply pointing out that all of the stuff that Ruby does now, will be in .Net soon and he’s a language bigot in the next post O-o
To be fair, Ruby does a lot of things that C# doesn’t, that’s why I’m keeping my eye on it - but C# does a lot of things that Ruby doesn’t, too.
Anyway that’s not really relevant here , was just too scared to post there
Does anyone else look at Ruby/Rails and get a screaming case of the Heebie ‘Not invented here’ Jeebies ?
I love that a platform can do all my data for me, I simply pop a text box here, a column there and hey presto!!!
Sorry, I don’t trust it - it’s snake oil.
It’s even more amazing how much better your code gets when you stick with a toolset for a long time. Though you may never reach perfect enlightenment experience is additive. I credit reading code more than writing it though. The rapid technology churn we see in the Java and .Net worlds can only work against this though. The language ecosystem (OS, framework, DBMS, etc.) is a much more important issue than the glue (programming language) unless you’re just writing the 21st Century equivalent of Cobol applications.
There’s an application I did years ago that haunts me to this day. My first Asp.Net app, when I thought saving the dataset in the session would make it really fast and impress the user. It did, but now we have 4000 row datasets being saved in the session. Too much of that and the server starts to crawl then eventually die. This doesn’t impress the user.
I’ve learned a lot since then.
I’m 35. My code was as beautiful 5 years ago as it is now. But I have not changed toolset, it’s still and has always been C++ in its basic form (no obscure meta-programming stuff with templates, for example). I believe in minimalist, short, readable debuggable code, and not throwaway code (like some XP people do. )
I started with simple Pascal coding and then i started coding in Perl, C and PHP
Actually i love C.
I forgot to mention Basic on those weird green screens! But that was much before 5 years ago…
Six years ago I released a href="http://s92417348.onlinehome.us/software/dataloom/index.html"Data Loom 1.1/a, C++ on Classic Mac. I’ve subsequently released a Windows version (C#) and have on the back burner a Java version. My coding style, language, and practices have changed some since then, but I look back on that code and I’m still pretty pleased with it.
Twenty years ago, now - that would be a college project in Fortran-IV. I’ve still got the greenbar printout. I would never want to work in Fortran again, but considering what I had to work with, technologically and conceptually, I’m not ashamed of that code.
I’m another C++ Builder (and sometimes Delphi) user reading your blog. It amazes me that Borland was so far ahead of the curve back then. So much of C# and .NET comes from Borland (in the form of the people who moved from Borland to Microsoft). But I’m just glad a broader audience now has access to those ways of creating programs.
As for me, I’ve added Java and Ruby to my list in the last five years. They are amazing especially when it comes to sharing code for Windows and Mac projects.