2011-06-19

Changes in time

Is it better to keep up or stick to what's already known?

It’s the road

I started long ago - in 1988 - with ZX Spectrum BASIC and Z80 assembler. Then came Elwro 800 junior (ZX clone) with it's then-cool CP/M and Turbo Pascal. Then came Commodore C-64 and I learned 6502 assembler on it. Then I got access to first PC-s like XT/AT/286/386/486. It was so cool. New TP 6.0 and 7.0 seemed so all-powerfull back then. And 80x86 assembler? WOW! And those 256 colours! Neat! And there was a lot more on the way...

20+ years later most of this hard learned knowlegde and skills is useless. Who cares what POKE 23606, n does? Or why care about LDIR anymore? I'm happy I never learned Fortran or Forth or Cobol (last one may however still be usefull)...

I'm quite conservative and tend to stick to what I mastered. Until recently (it’s year 2011, not some dark ages!) I still used Delphi 3 (which costed me a lot when I bought it). After I first learned it something like over 10 years ago I remember myself thinking: that's the ultimate tool, now I can code anything and I'm not afraid of Windows anymore. Now I’ll create best software ever! Now I'll be famous and rich... :)

And again - now D3 is crap and even D7 is so... For example all those problems with unicode / UTF support... Nowadays people (my endusers) use XP/Vista/W7. I’m the only one I know who still uses W2K as primary OS. Delphi 3 is just so outdated... One of my old quite widely used apps (OCOP) doesn’t even run on W7... And what about mobile applications?

Maybe it's time to move on... I was so excited with object oriented programming, big hard drives, and lots of memory and CPU power that I was happy to forget about 8-bit stuff (lots of old tapes and floppies with assembler subroutines I never got the chance to put to good use).

But what to do with all that new code written for years (and often unfinished)? And all that stared projects that never came to be? The further you go the more you carry. It may become too heavy and you may get too slow. Open source may be some option. But there are some risks here.

Challenges

And there are challenges. And they are the blessings. They seem good in long term. Some new skills are required to do new things. Things that were impossible yesterday but now are not only oh-so-cool but even just a standard. For example mobile apps on Android. I always disliked Java. Why use eating resources VM to just write „Hello world!”? On ZX it would took only few bytes and run under miliseconds (CPU @ 3.5 MHz). If I now have over 1GHz CPU why wait seconds just for the environmet to initialize? It’s exaggeration, I know, but it shows my dislike. And now here I am. Willing to code for Android I finally started to learn Java (and new Android API / philosophy). And guess what? It ain’t that bad. In fact it’s pretty cool actually. And it’s much easier that I ever tought. However old (not bad) habits need to be kept in check.

Some loose list of pro and cons

Stick to old is good
- you do what you know that you know and you know you’re good at it so you keep the quality
- what you do is easy and pleasant, no suprising obstacles or setbacks, just pure zen of coding
- you make less stupid or catastrofic mistakes because you already know the thing you ougth to
- you remember there are some users / people who are also stuck in THE OLD, you don’t abandon them
- new things happen everyday but they don’t disturb you, again it’s perfect bliss

Stick to old is bad
- you loose touch with what’s going on
- you can’t do anymore (new) things that are in fact easilly possible
- you stop developing yourself professionally
- everybody (competition) is ahead of you
- you might oversleep the next big chance

Move on is good
- you stay fresh and challenge is your friend not your enemy
- you keep in touch with reallity (if there’s such thing)
- you keep your options open
- you have better chance you have/know/create what your users/clients need
- you can achieve more for less (time, effort, money)
- there’s excitement in what’s new

Move on is bad
- better is the enemy of good
- new hi-tech super-hiper stuff may be outdated tommorow, before you even master it’s use and application
- sometimes it’s better to wait and see what will unfold (eg. Symbian/PalmOS vs Android)
- new software is just old software but with new bugs
- you often start from scratch
- if you put all your data in one cloud it can one day evaporate with it and the rain will be cold

It’s all in emotions, it’s all in the habits

We all cling to once familiar (I think it’s a quote from Star Trek, but I’m not sure). This is an emotional response. Natural really. But not always helpfull. I learned Delphi the hard way, with stress, with fun, with deadlines, with try and error, with 12h coding sessions. Am I to just throw it all away? No way! Learn Java, C++ or C#? Who needs this crap. I can do all that in my favorite, the best and coolest... not so special, not so universal... Basta! How do I code for Android in Delphi? I don’t.

Some habits are good and independent of language / platform. These are worth keeping. You learn to think in certain way. You refine that thinking. It is beneficial all the time. But when you still into DOS it cannot be good.

Conclusion

I belive one has to find the right balance. As with everything in life. Some thing are holding me back and they are worth leaving behind. Some new things are promising and they seem to be the future. They are worth learning. Go forward and look forward, but remember whre you came from and draw from what you already know. Some technologies and tools become obsolete but all the gained experience is the essence. Stick to it and move on.

p.s. It’s not either or – it’s old and new.

Lone Coder

Just came to me... Maybe I should name this blog "Lone Coder" after X-Files. :)

2011-06-06

noniewicz DOT com

 http://noniewicz.com/  is my 'official' website. Yuo can find there some free software I created. And here http://jakub.noniewicz.art.pl/ are some of my video productions.

FD, FE, FF, 00, start....

I have to say I don't really like blogs. Boring stuff. Mostly boring. Same goes for things like twitter, facebook and other crap. But I feel like checking out how it feels to write sometimes about things I find important. Things that don't seem to concern anybody else around.

For example: today I almost crashed one production server with trivial grep redirected to a file. I underestimated resulting filesize and choked the filesystem on / .