Rick's b.log - 2015/11/17 |
|
It is the 21st of November 2024 You are 18.119.248.214, pleased to meet you! |
|
mailto:
blog -at- heyrick -dot- eu
In a word: I'm not.
Well, okay, in two words. Maybe three depending on how you count the contraction.
David pointed out that his stuff was written in Twin. I have never had the "pleasure" of using Twin, but I'd imagine it would be something not unlike ARMBE, and I found ARMBE to be somewhat painful. And, as I pointed out, display devices generally sucked back then, and all this fancy-whizzy clever IDE stuff didn't exist. Ever used the DOS versions of TurboC or TurboPascal? That was cutting edge stuff.
Yes, there are some things that probably need changing in Ovation. Many variables are not "initialised", definitions of things can appear in odd places in the source, and there are even some old style C function definitions.
Nothing.
Not unless there is a feature to add or a bug to fix.
Why? It's simple. Ovation works.
All too often, a company (or individual) gets the idea that when taking on an existing project, the best thing to do is rewrite it. That is, of course, the absolute dumbest thing. You see, you may feel that Ovation's code is "messy", but David has given us three things:
I understand the "Not invented here" syndrome. It affects us all at some stage, and has trashed projects and killed some companies and kicked others. It makes sense to begin a project afresh when it is going to be something else. OvationPro is not Ovation, and while I might see some duplicated code in it, I can imagine a lot of the design is different. In this respect, it makes sense to begin again. What doesn't make sense is to make big changes to the Ovation source code simply for the sake of making them. The result? Will be Ovation. Maybe your compiler will give you a lovely good karma feeling, but those feels will evaporate quickly when you realise that big changes can change things in subtle ways. In other words, I'm going to be here farting around with some of my own code or watching Noragami . . . and you? Would you prefer DDT or DADebug? ☺
tl;dr: "The source code is messy. When are you going to fix it?". I'm not. Don't fix what ain't broken.
The source code is messy. When are you going to fix it?
I got in this evening and saw a few comments from the author of Ovation ☺ and this from Bleurgh:
When are you going to fix it?
But you know what I plan to change?
But in this specific point, Ovation, you'd take the time to revamp the application to arrive at what already exists? Why? What's the point?
Or maybe you can suffer feature creep and add lots of extra functionality to your rewrite. Well, we have that too. It's called OvationPro.
As such, things needed to be tested that much better than happens today. But things can still slip through, and the accumulation of the fixes and specific code is what I refer to as "experience". In essence, Ovation has been tried and tested since 1990. I went looking for bugs to fix (asides from the zero page issues) and I posted a request for people to tell me about their pet bugs. I have found only a few small niggles, and nobody has reported anything.
Point is - the "messy" code you have in front of you builds a working application that has, in varying incarnations, been in the wild as a released product of Beebug, Risc Developments (aka Beebug), and APDL; carrying price tags anything from freebie to a hundred quid. This code. Not some other code. David isn't Rickrolling us, he isn't going to say "ha ha, fooled ya!" and unveil the BASIC source that builds Ovation. No, it's this. All that development, all that time, all those questions asked and hurdles jumped over. They're all there in the 50 C files and 59 header files that are the megabyte and a third of code that creates the third-of-a-megabyte of executable that is Ovation.
David Pilling, 18th November 2015, 18:27 A curse... some of the source code is messy because I didn't understand what I was doing, sometimes I eventually understood. Some of it is messy because that way of doing things works. There is stuff in there which you would not write that way - as I did, set off with the simple sane way of writing the code, find it won't work on RISC OS, then do it another way. Make changes... do you understand the side effects, at one level all that messy code, what might you break. But at a worse level, how might you change the behaviour of the program. Desktop publishers expect things to work in a particular way.
I've never written pretty code, I have encountered people who can write code as nice as poetry. Is pretty code more likely to be correct.
I really liked the twin editor. A bit of an oddity becaDavid Pilling, 18th November 2015, 18:36 As I was saying, I really liked the twin editor. A bit of an oddity because it came out at the start of the Archimedes, but was not desktop based - the desktop did not multi-task at the time, so there was not much point.
I was going to do a 32 bit version, but never got around to it.
In 1988 it was the best editor by far, quite possibly the only editor - I can't think of any other.
I have loads of sins. Since 32 bit came out I've used Edit, because I couldn't be bothered sorting out why Zap didn't work (I now have it working). By mid 1988 I'd ported EMACS, and not long after other UNIX style editors vi etc. Learning any of those would have served me a lot better than being a twin expert.
I'm sure I continued using twin long after everyone, including Sophie Wilson had packed it in.
I recall a live chat on Prestel Micronet where the author promoted "their new editor".
David Pilling, 19th November 2015, 13:49 The last posting but one is a bit gloomy. I say go for it. The problems would be there with all but the best documented software.
I know nothing about the history of twin - maybe it was used to write the original Archimedes OS. Maybe for OS 1.2 or RISC OS 2.
Rick, 19th November 2015, 19:46 I wouldn't say gloomy. I don't think "modern" people really appreciate what it is like programming when you don't have multiple windows, oddles of online references, syntax highlighting, variable name completion, versioning repositories, and all of the other stuff that is just "expected" these days.
Can you tell me more about Twin? Do you have any screenshots of it in action?Rick, 20th November 2015, 08:35 Forget the lock screen, try charge=freeze! http://www.theregister.co.uk/2015/11/19/apple_frozen_ipad_confir mation/
© 2015 Rick Murray |
This web page is licenced for your personal, private, non-commercial use only. No automated processing by advertising systems is permitted. RIPA notice: No consent is given for interception of page transmission. |