Jump to content
Objectivism Online Forum

New Word Processor's Features

Rate this topic


DragonMaci

Recommended Posts

Earlier I made a post called New Word Processor. I have thought about what everyone said and have made some decesions.

I have decided to give my word processor the working name of Authorial Word. I have decided on many features and plug-ins and here they are:

FEATURES

- Support for .txt, .rtf, .sxw, .abw, zabw, .bzabw, .odt, .doc, .html, .htm, .xml, .ott, .dot, .stw, and .abt file extensions.

- Status bar (number of word and pages, time, date, zoom rate).

- Top half of left pane has a tree structure showing headings, scenes, sequences and chapters that can be laid-out under chapter headings (with parts above that) and given their own names that can optionally show-up in the printout. The ability to have alternate headings, scenes, sequences, and chapters for each "piece" of writing. These areas can be linked to from the left pane.

- The ability to distinguish turning-point scenes/sequences from simple story-lines (in bottom half of left pane). Ability to show concurrency of action (when using a convergent story-lines plot) or dependency of action (when using a Hero's Journey or Coming of Age type story-line). These areas can be linked to from the left pane.

- The ability to manipulate the tree-outline of a novel to easily move scenes, sequences or chapters around.

- Real version control for each projects. In a File Browser feature of File Menu you will be able to hover your mouse cursor over a file's name in the directory and see a good paragraph's worth of description/summary about what that file is in terms of the writing in it. The author must enter this information. The File Browser can be set to show a snippet of the manuscript as well (the snippet is chosen by the author).

- Option to switch left pane to being a right pane.

- Several tools to help create notes.

- Recent documents.

- Favourite documents.

- Tabbed window.

- Work groups.

- Print.

- Print preview.

- Undo.

- Redo.

- Repeat.

- Cut.

- Copy.

- Paste.

- Find and replace.

- Zoom.

- Insert (manual break, date, time, page number, page count, word count, subject, title, author, synopsis, special character, picture, link, table, header, footnote and frame).

- Character settings (size, colour, font, style, position, underlining, typeface, effects and spacing).

- Customisable shortcuts to combinations of character settings (up to 10 different ones).

- Line spacing.

- Paragraph settings (spacing and indents, tabs and alignment).

- Bullets and numbering.

- Page settings (paper size and background).

- Case settings (lower, upper and word).

- Spell check.

- Thesaurus.

- Dictionary.

- Gallery.

- Word, letter, character, page, number, paragraph, and section counts.

- Number of book pages estimate (several options for book and font size and type, including custom ones).

- A calculator that can input data into document.

- User accounts (uses own ones not OS ones).

- Tabbed options.

- Updates.

- Plug-ins.

- Help.

- What's This?

- About (literally).

- Version (what About features usually are).

- Support link.

- Registration link.

- Testing (link).

- Official website link.

PLUG-INS

- Encryption tool.

- Enhanced calculator (includes financial functions, monetary functions, 26 (1 for each letter) memory functions and conversion functions).

- Improved version of enhanced calculator (adds scientific features).

- Support for extra file extensions (.wpd, .wp, .sdw, .pdf, .aw, .cxw, .dbk, .isc, iscii, .coq, .wri, .pdb, and .wml).

- Random number generator.

- D20 character creation tool (d20 System and d20 Modern).

- Website development.

- C/C++ development.

Please tell me what you think of this plan and feel free to make any suggestions at all invloving plan and what you think of the name Authorial Word.

Note: Just like with Prometheus98876's OS this prrogram not due for a very long time.

Phew! This is quite possibly my largest post ever. If it isn't well, it's certainly one of my largest posts.

Edited by DragonMaci
Link to comment
Share on other sites

I'm just looking at your program from customer's point of view. Why as a customer would I want to use it over MS Word? You're writing your own software, so clearly you think you have some advantages/improvements over your competition. I'm just curious to see what those advantages are.

Link to comment
Share on other sites

I have decided to give my word processor the working name of Authorial Word. I have decided on many features and plug-ins and here they are:

<snip far too many features>

It would be a waste of our time and inappropriate for this forum for me to critique your feature list, so let me offer some general advice. (My qualification: I have been developing software for over 10 years.) Your feature list, not counting the plugins, would require at least 10 years's development for a single experienced developer. Since I don't think you want to wait that long before you have something useful, I'd like to suggest a different approach than laying out all the features you want:

Incremental development

Figure out what is the absolute bare minimum you need to develop to make something usable by you alone. (No one else will want to use it at this stage.) Now take that bare minimum and throw out the least important 75% of it. If you do this right, this will be so small it will hardly seem worthwhile. (At this point, it won't be much more than Notepad.) The goal is to make a program that you can start using as absolutely soon as possible, so you can begin "eating your own dogfood," as they call it. Then, add in a single feature at a time (namely, the one you most personally wish you had, given your use of this program to write your book), always keeping the program fully functional.

To tie this in to philosophy: most methods of software development suffer from ivory-tower rationalism, the error that proper principles (specifically, proper software organization) can be developed without any experience (specifically, any actual programming). This leads to the "waterfall model" (http://en.wikipedia.org/wiki/Waterfall_model) or "big design up front." Of course, naturally the opponents (the "extreme programmers") tend to suffer from empiricism to some degree, the notion that all design (i.e., principles) is worthless and you should code without any planning.

Your best bet is an objective method: a method that starts with observation of the facts, then moves to generalization to abstract principles and application of those principles to new situations. Applying that principle to software development leads to starting with first-level concepts, so to speak: getting a "hello world" program (http://en.wikipedia.org/wiki/Hello_world_program) to work. Observing what works and what doesn't work will lead you to further principles you can apply (such as the "principle of least surprise," abstraction, encapsulation, etc). You can then apply a principle you induced from one set of concretes (like "information hiding," http://en.wikipedia.org/wiki/Information_hiding) to new concretes, saving you from making the same errors over and over again.

Contrary to empiricism, you can develop principles that will help you plan your next project. But, contrary to rationalism, you won't be able to know what are proper principles and what are improper until they are tested in the real world, so to speak. Incremental development is the best way to ensure your success.

Link to comment
Share on other sites

I'm just looking at your program from customer's point of view. Why as a customer would I want to use it over MS Word? You're writing your own software, so clearly you think you have some advantages/improvements over your competition. I'm just curious to see what those advantages are.

Well, when it's close to release date I have every intention of saying why people would want to use it instead of other word processors, but as of the moment it is only a plan so it would be silly to do so now, since at the moment it is only assumption that I will get the features I want into the program. I do however, think from experience at using existing programs and from my experience as a writer, that the existing programs are lacking in features that are useful to an author.

There isn't really much point to looking at it from a customer's point of view yet since it isn't even any where near being coded yet. Besides there will be four versions: Diamond (NZ$5, all features), Platinum (NZ$3, almost all features), Gold (free, most of the features) and Silver (just over half of the features, for people who want a word processor with very few functions). The point is that it's affordable for anyone. Also there will be three month, fully functional trial versions of the Diamond and Silver editions, so you will get plenty of time to decide if it is for you before paying for it. Also when a version tis a whole version out of date it will become free. Also when they will half in price when a half version out of date.

Edited by DragonMaci
Link to comment
Share on other sites

It would be a waste of our time and inappropriate for this forum for me to critique your feature list, so let me offer some general advice. (My qualification: I have been developing software for over 10 years.) Your feature list, not counting the plugins, would require at least 10 years's development for a single experienced developer. Since I don't think you want to wait that long before you have something useful, I'd like to suggest a different approach than laying out all the features you want:

Evidently I feel that it isn't a waste of my time, otherwise I wouldn't of asked for it. And if the critism is done constructively and rationally, I do not think it would be inappropriate for this forum, especially since I asked for it.

Incremental development

Figure out what is the absolute bare minimum you need to develop to make something usable by you alone. (No one else will want to use it at this stage.) Now take that bare minimum and throw out the least important 75% of it. If you do this right, this will be so small it will hardly seem worthwhile. (At this point, it won't be much more than Notepad.) The goal is to make a program that you can start using as absolutely soon as possible, so you can begin "eating your own dogfood," as they call it. Then, add in a single feature at a time (namely, the one you most personally wish you had, given your use of this program to write your book), always keeping the program fully functional.

Wrong, it won't be just another Notepad if I "figure out what is the absolute bare minimum I need to develop to make something usable by me alone" because most of those features are there because as an author they are useful to me. In fact originally the word processor was only going to be for me, but then I decided to make it a public release as well. If I didn't do the features that aren't so useful to me as an author then I would be left with 75% or more left over. Don't get me wrong though, I fully intend to use incremental development, but just in a different way. And I do hope to get Prometheus98876 and maybe others to help me to some small degree.

To tie this in to philosophy: most methods of software development suffer from ivory-tower rationalism, the error that proper principles (specifically, proper software organization) can be developed without any experience (specifically, any actual programming). This leads to the "waterfall model" (http://en.wikipedia.org/wiki/Waterfall_model) or "big design up front." Of course, naturally the opponents (the "extreme programmers") tend to suffer from empiricism to some degree, the notion that all design (i.e., principles) is worthless and you should code without any planning.

I understand about the experience thing. That's why I say the program is many years away (three or more) before I even start to make it. And I know about planning before coding too.

Your best bet is an objective method: a method that starts with observation of the facts, then moves to generalization to abstract principles and application of those principles to new situations. Applying that principle to software development leads to starting with first-level concepts, so to speak: getting a "hello world" program (http://en.wikipedia.org/wiki/Hello_world_program) to work. Observing what works and what doesn't work will lead you to further principles you can apply (such as the "principle of least surprise," abstraction, encapsulation, etc). You can then apply a principle you induced from one set of concretes (like "information hiding," http://en.wikipedia.org/wiki/Information_hiding) to new concretes, saving you from making the same errors over and over again.

While I agree in principle that a programmer has to work their way up, I think that "Hello World" is an unneccasrily simple start. I am currently working my through a C tutorial from CProgramming and once done I will work my way through their C++ tutorial. Also next year I will be studying computer programming at University.

Contrary to empiricism, you can develop principles that will help you plan your next project. But, contrary to rationalism, you won't be able to know what are proper principles and what are improper until they are tested in the real world, so to speak. Incremental development is the best way to ensure your success.

I wholeheartedly agree. That's why I already intended to do incremental development. I intend to start off with a "0.1" version that has very few features, not even many of the ones that are useful to me, one that is basically a text editor with a few extra features. And from there I will work my way up to a full word processor. by slowly adding a couple of features with each version. So in other words my plan is quite similar to what you are suggesting.

Phew! Another large post by me in the same thread! How unusual...

Edited by DragonMaci
Link to comment
Share on other sites

While I'm glad to see you do plan to develop one single feature at a time, it seems as if you have misunderstood parts of my post.

Evidently I feel that it isn't a waste of my time, otherwise I wouldn't of asked for it. And if the critism is done constructively and rationally, I do not think it would be inappropriate for this forum, especially since I asked for it.

I wasn't intending to offend. I was happy to reply, otherwise I wouldn't have, either. I like talking about things like this, particularly to someone as excited as you.

I said critiquing your specific feature list would be a waste of time because 1) you won't get to most of those features for a long time if you are truly developing incrementally, so criticism would be premature, and 2) I'm not an author anyway, so my opinion on the relevance to writing a book is nearly worthless. But I do have relevant opinions on the development approach implied by that huge list, so that's what I focused on.

Furthermore, I said it would be inappropriate to this forum because it by itself is not related to the stated purpose of this forum, which is "trade [about] information about Objectivism and discussion about its applications." Thus I posted only because I could apply Objectivist principles to software development. I have been corrected and "uncorrected" about this before, so I am not sure what is and isn't allowed.

I hope that removes any hint I might have given that my intent was to argue against your project or your discussing it here.

Wrong, it won't be just another Notepad if I "figure out what is the absolute bare minimum I need to develop to make something usable by me alone" because most of those features are there because as an author they are useful to me.

You may have interpreted the "Notepad" comment as a criticism or dismissal, but it was neither. The plain truth of the matter is that you will need all of Notepad's features (basic text editing, find/replace, word wrap) before you can add any author-specific features, because writing a book is, at its lowest level, writing text. That is the reason I recommended shamelessly striving for a trivial text editor (colloquially referred to as "Notepad") as version 0.1--it wasn't because all you will ever do is "just another Notepad." To misquote Francisco: "It is against the sin of overly large expectations that I wanted to warn you."

Whether it takes you 1 day or 1 month to get a simple text editor depends on your skill level, but the fact that you have to have a small working program before you have a large working program does not. Maybe you know better, but you'd be surprised how many newcomers think they can somehow skip making a fully tested but "boring" simple program because they are so eager to get to the "fun stuff" like all the features that will set their program apart.

While I agree in principle that a programmer has to work their way up, I think that "Hello World" is an unneccasrily simple start.

Then you have not understood the principle of Hello World. It's so pervasive because everyone thinks that making a program say "Hello world" is too small to bother with, before they've written it. (It is also partly an aspect of a foregone era, in which compiling and linking C was more difficult than today's IDEs.)

The principle of it is that one should write the smallest possible thing that compiles as one's first attempt at a new language or platform. (The concrete example of actually printing a single line of "Hello world" just happens to be the smallest detectable success for C-style programs.) If you've coded in C or C++ before, you don't start with Hello World for every new project. But since apparently you haven't, you will at some point write your very first program that you expect to compile and run, and there's no need to make that more complicated than it has to be. In fact, take a look at your tutorial and tell me if they don't start out with something small and trivial so they can focus on the basic build step ("code, compile, test").

Anyhow, good luck with your project. It sounds like you've put a lot of thought into it and are eager to get started.

Link to comment
Share on other sites

Well, when it's close to release date I have every intention of saying why people would want to use it instead of other word processors, but as of the moment it is only a plan so it would be silly to do so now, since at the moment it is only assumption that I will get the features I want into the program.

Actually, the design stage would be a perfect opportunity to plan the features that would distinguish your software from somebody else's.

I do however, think from experience at using existing programs and from my experience as a writer, that the existing programs are lacking in features that are useful to an author.

Those are the features I'm asking you to point out. So far you only mentioned cost, but I'm sure you must have more than that in mind. If you are reluctant to disclose the features, because you fear somebody else (like Microsoft) may steal your idea, then never mind.

Link to comment
Share on other sites

While I'm glad to see you do plan to develop one single feature at a time, it seems as if you have misunderstood parts of my post.

I wasn't intending to offend. I was happy to reply, otherwise I wouldn't have, either. I like talking about things like this, particularly to someone as excited as you.

I said critiquing your specific feature list would be a waste of time because 1) you won't get to most of those features for a long time if you are truly developing incrementally, so criticism would be premature, and 2) I'm not an author anyway, so my opinion on the relevance to writing a book is nearly worthless. But I do have relevant opinions on the development approach implied by that huge list, so that's what I focused on.

Furthermore, I said it would be inappropriate to this forum because it by itself is not related to the stated purpose of this forum, which is "trade [about] information about Objectivism and discussion about its applications." Thus I posted only because I could apply Objectivist principles to software development. I have been corrected and "uncorrected" about this before, so I am not sure what is and isn't allowed.

I hope that removes any hint I might have given that my intent was to argue against your project or your discussing it here.

You may have interpreted the "Notepad" comment as a criticism or dismissal, but it was neither. The plain truth of the matter is that you will need all of Notepad's features (basic text editing, find/replace, word wrap) before you can add any author-specific features, because writing a book is, at its lowest level, writing text. That is the reason I recommended shamelessly striving for a trivial text editor (colloquially referred to as "Notepad") as version 0.1--it wasn't because all you will ever do is "just another Notepad." To misquote Francisco: "It is against the sin of overly large expectations that I wanted to warn you."

Whether it takes you 1 day or 1 month to get a simple text editor depends on your skill level, but the fact that you have to have a small working program before you have a large working program does not. Maybe you know better, but you'd be surprised how many newcomers think they can somehow skip making a fully tested but "boring" simple program because they are so eager to get to the "fun stuff" like all the features that will set their program apart.

Then you have not understood the principle of Hello World. It's so pervasive because everyone thinks that making a program say "Hello world" is too small to bother with, before they've written it. (It is also partly an aspect of a foregone era, in which compiling and linking C was more difficult than today's IDEs.)

The principle of it is that one should write the smallest possible thing that compiles as one's first attempt at a new language or platform. (The concrete example of actually printing a single line of "Hello world" just happens to be the smallest detectable success for C-style programs.) If you've coded in C or C++ before, you don't start with Hello World for every new project. But since apparently you haven't, you will at some point write your very first program that you expect to compile and run, and there's no need to make that more complicated than it has to be. In fact, take a look at your tutorial and tell me if they don't start out with something small and trivial so they can focus on the basic build step ("code, compile, test").

Anyhow, good luck with your project. It sounds like you've put a lot of thought into it and are eager to get started.

I also realise that you din't mean that all I will ever do is just another Notepad. It seems you may have misintrepreted me as well (and I admit that I misintrepreted several of your comments).

Sadly you are all too true about most beginners. I am however, proud to clarify that I am one of the exceptions (yes I am a newbie).

Oh, and I do understand the principle of "Hello World". The thing is that I believe that something that has several lines of display would be better. It would not really be harder to do a few lines of printf as opposed to one and the beginner wouldn't feel like they are being treated as if they are an idiot. And why not some more original equivalent? Why does almost every tutorial start off with "Hello World" or something almost exactly the same? Qt started off with "Hello Qt", not exactly original. Besides if you're aiming for small why not go smaller? "Hello" perhaps? Why not just a single letter? (No I am not being upset, just rasing my side of the argument.)

Yes the tutorial I am doing does start off simple, but at least it's slightly above "Hello World" and more original than "Hello World". Ok, it's only a few extra worlds, but still.

The main reason I say all this is because I learn better when I am challanged. If I am not challenged I don't learn as well. "Hello World" and it's equivalents just don't challange me in the slightest, especially if I'm told how to do it.

And yes, I have put a lot of thought into it (over half a years worth in fact) and no doubt will put more into it over the years. And yes I am quite eager.

Oh, and I know you meant no insult with any of your previous comments or with this one.

Edited by DragonMaci
Link to comment
Share on other sites

I am not going to enter the debate between you and Doug here, he has many good points, and it would seem you are somewhat in agreement overall.

I quite like the list of features you have mentioned, and it would be nice if eventually you could implement at least some of these. Reastically though of course, earlier versions, say earlier betas would not have all of these features, but I would be happy to test them out as a tool for working on my novel if the program proves more useful than say OpenOffice Writer, although I am not sure how likely this is, as OpenOffice will probably be more stable and might offer features that far outweigh the list you have provided here.

I have said this to you at some stage, but I am happy to help you with the coding at some level. I might not be able to give you all that much time, but I will be happy to devote some time to helping you code this. Maybe this way you can get it out a little sooner. And I am happy to do some of those plugins, especially since I should have decent little apps doing that stuff by then anyway.

Link to comment
Share on other sites

Well I presonally belive that most of the unusual features far outweigh the ones OpenOffice has (for writers at least, though probably not for other

people).

Yeah, if you can implement them in a secure and efficent manner. You might find that this is far more difficult and time consuming than you realise. Usually these sorts of things are worked on my teams of programmers, unless I am very much mistaken. And who knows what features OpenOffice might have a few years down the track, they might implement many of these features, or better ones still...after all there is more than one or two people working on OpenOffice... :D

Link to comment
Share on other sites

Actually, the design stage would be a perfect opportunity to plan the features that would distinguish your software from somebody else's.

Those are the features I'm asking you to point out. So far you only mentioned cost, but I'm sure you must have more than that in mind. If you are reluctant to disclose the features, because you fear somebody else (like Microsoft) may steal your idea, then never mind.

Firstly, I am in the planning phase not the design phase. The design phase is years off.

Secondly, I have mentioned features. That's what the first post in this thread is.

Link to comment
Share on other sites

Your feature list looks a bit disorganised; I would suggest breaking it up into trivial 'features' which every basic text editor will have (such as print/save/undo), another group of features which all basic word processers will have (spell check/fonts/line spacing etc), and then a final group which will be the features which yours will have which will distinguish it from the competition (eg MSword/emacs/KDEWord/whatever).

You dont really need to tell people that your program will allow them to print preview their documents or that it will have a help screen; these things are part of the basic functionality rather than being features.

Edited by Hal
Link to comment
Share on other sites

Nods, Hal makes good points. I would like to see a more organised list, one that does not include all the really obvious stuff like print preview etc. If you could provide me with such a list, I could start looking into a rough idea on how to program these things in the future etc, then I would be able to help you when you come to program them.

Link to comment
Share on other sites

Actually you're both wrong. There is a structure to it. It's just that you understandably can't see it since I didn't include the information that would let you now of that since I din't see any point in doing so. Heres what the structure is:

- First we have the supported formats.

- Secondly we have mention of the status bar

- Next we have 4 features that are not in any other word processor (as far as I know) and that can be accessed without using a menu (though they will be accessed from there too).

- Next is a function relating to those two (located in Options function in Tools menu).

- Then there is a mention of some notes tools (which will be unique as far as I know and be located in the Tools menu).

- Then we go into a list of features that are accessible from the menus. The features are grouped based on which menu they are in. It starts with the File menu and works its way to the Help menu

Link to comment
Share on other sites

Nods, Hal makes good points. I would like to see a more organised list, one that does not include all the really obvious stuff like print preview etc. If you could provide me with such a list, I could start looking into a rough idea on how to program these things in the future etc, then I would be able to help you when you come to program them.

The list was copied directly from a document I made for my uses. Surely you can see why I'm best of listing everything in that document? I should of edited the original post not to have them perhaps.

Oh, and if there is enough requests for me to new a post here without those features and that makes the structure a lot clearler I will post it.

Link to comment
Share on other sites

The list was copied directly from a document I made for my uses. Surely you can see why I'm best of listing everything in that document? I should of edited the original post not to have them perhaps.

Oh, and if there is enough requests for me to new a post here without those features and that makes the structure a lot clearler I will post it.

OK, thats cool... could you send me a copy of that list whenever you make updates to it? I can pick the information I want out of that other list I guess. Or better still, put it on your Forum, as I intend to do more work on that and my forum at some stage in the next week or so.

Link to comment
Share on other sites

- Next we have 4 features that are not in any other word processor (as far as I know) and that can be accessed without using a menu (though they will be accessed from there too).

That's what I wanted to see (it would be helpful to break up your list into sections, as someone pointed out before). Also, I believe it was already mentioned, but did you consider introducing your product as a template/add-in to MS Word? I'm only mentioning it, because in my engineering line of work, whenever I need to type something up, that involves a lot of involved formulas and such I'm using MathType, which allows me to nicely format any equation/matrix using all math symbols. The nice thing about it, is that although it can be used as a stand-alone, you can add it on to Word as a global template, and simply invoke the formula editing screen from the menu. The advantage of you taking that route, would be that you could focus on developing those unique features right away, because everything else would be already taken care of by Word. In that case your customers are getting the best of both worlds - a stable and familiar tool (MS Word), with the unique features that make their work easier.

Link to comment
Share on other sites

Firstly if I was ti do that I would prefer to do an plug-ins for OpenOffice instead as it doesn't have the security problems of Word. Also I don't have and can't afford Word. However, I've already said that I don't want to do it that why because I think those two are over packed with features. Considering this it would not be to my advantage to do it that way since I want a word processor that can only get that many features with plug-ins. So in other words it will have that many features only if people want that many features.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...