LIFESTYLE

My programming history

ASSEMBLER Z80

I was wondered by amazing games on Sinclair computer (in 1990).
I ask my fellow who has that computer: "How do they do this terrific animation?". And he said: "They used an assembler programming language". "What is this?" - I asked. He show me a guide book to Z80 assembler and listing of disassembler program on the screen where each instruction was colored in your own color.
So I was impressed enough but really understood NOTHING!

Then I bought my first computer (Spectrum-compatible) in 1990 with 48Kb-memory and tape loading.
I spend a lot of time near computer studing Z80 Assembler.
In short time with disassembler I cracked almost all available programs and wrote some programs on my own.

In 1993 I wrote "SpriteMaker", with abilities to draw & edit single sprites and to build whole screens, which I used in my own games that named "CREABOX PLANET".
There were 3 part of this game (different games indeed). It were quite proffessional games on that moment (some commercial games were worse). Games had smooth grafix, funny heroes which even can SPEAK!

But almost noone knew about my programming issues and successes (only few friends). I didn't sell anything and did it just for myself education. More to say, I even wrote a book "Z80 Assembler programming secrets".
But there were only 2 exemplars were made and almost nobody read it.

Nevertheless the awareness of assembler helped me
to reveal all computer secrets and made from me a good programmer.

But on certain moment I understood that there is more efficient programming languages and I can produce good results using another programming technics.

And I became studing Pascal.

PASCAL & MODULA-2

In 1994 I started to work as a programmer in one of research institute in Ufa.
There was a pascal project (SCADA system for complex engine testing) and Modula-2 project support.

During this work I encountered with some disadvantages and weak points of Pascal. So I was not happy with some of Pascal's 'treats'. So I started to search the replacement for it. I experimented with TopSpeed Modula-2 implementation but was not satisfied fully too.

C++

In the year 1996 I became "fun" of IBM OS/2 system and explored Watcom C++. I was impressed by power & flexibility of C++. But there were a lot of "rifts" and "cavities" in C++ which can't make me happy ultimately: pointers, necessery to maintain new-delete pairs, etc.

Because I am interesting in digital signal processing I tried to write a sound editor program which I called "Soundy" (with functions of standard wave-edition software). But it was rather bulky/slowly and therefore - unprofessional due to lack of experience in some specific algorithms (such as fast wave signal image zooming). Besides the code of "Soundy" was OS/2 oriented (there were a lot of OS-depending functions calls) and not enought object-oriented.

At certain time Watcom C++ was rendered to Optima++ (later Power++). I think it was one of the best IDE for C++ and I really liked it. So, I tried to make new variant of my sound editor "Soundy" on a new level. My programming technique was improved, I used some OOP principles and refining coding.

But due to some circumstance Power++ version of my "Soundy" is currently dead (or frozen as you like).

...I will try to develope it in the Exoundy project ...

TODAY PROGRAMMING

Now I sudy Java thoroughly.
I like it object-orientation that makes it easy to do almost everything cleaner.
I think the future belongs to Java becouse it will win the competition with C++.


FUTURE PROGRAMMING

I'm going to write some audio editing software.

First of all, I plan to accomplish Signalgo library that seems to be useful in wide range audio-related applications.

Then I'll try to implement eXoundy sound editor.
I think it will have all features of standard wave editor and much more

Later I'm going to implement Drumma softsynth-drummachine.

Audio-editing software is not the only type of software I can write.
I'm interesting in writing personal information management (PIM) DoubleMe, which could help me to manage my projects and business.

Also, I will be create some Java-based components derived from Swing component set.

I'll try to make not only programs itself but program products.
Therefore I'll perform as a product manager too.