Author Topic: Changing build options, should force a rebuild  (Read 29997 times)

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: Changing build options, should force a rebuild
« Reply #30 on: July 19, 2006, 09:55:26 am »
EDIT: I just think the featured should be allowed if someone makes implements it.  It just seemed Thomas thought it shouldn't be included at all.
It just seemed that Thomas would remove that other annoying messagebox too, along with a dozen others. :)
But the world is not a perfect place, we have to live with compromises, we can't have everything the way we want it.
While for me, there are far too many dialog boxes that annoy the hell out of me (things like "the file was created successfully" or "do you really want to rebuild?" make me say "yeah, what else, that's just what I asked for!"), I do see that a novice user might need one or the other of them (maybe).

It is because of this why I wrote both AnnoyingDialog and InfoWindow, to stop the IDE from hampering your work while still being able to display some chatter that is either unobstrusively placed int the bottom right corner or can be turned off. The problem with turning off messages is that you have to do it over again for every new installation (or profile), which quickly gets almost as annoying as the original thing...

Think of the typical installer app (the kind of installer that 100,000 programs use) as a negative example of what I am talking about:
You start the installer and it tells you "this will install program xxx, click OK to continue". As if you did not know, what did you start the installer for? Then, you are shown a license that no sane person can understand and you are asked if you accept that license (which you really cannot because it is 20 pages in fine print, and 18 of these pages are unintellegible to anyone not having a degree in law). If you don't accept the license, you are asked whether you really want to quit the installer. Why "really"? That's not what you said. You never said you wanted to quit.
If you accept the license, it asks you 3 or 4 things, one thing per page, as if you were unable to memorise more than 15 words at a time. If you click on "Cancel" it gives out a massive warning that this will terminate the installer (as if this was a major catastrophe). And finally, as the very last thing, it opens the Readme which you do not want to read.

If the user is not an outright retard (which you should assume for a programmer!), then I think the program should not treat him that way.


I generally think that not everything must be configurable, not everything must be automatic, a program does not need to tell you everything over and over again, and not every additional feature is a good feature. Many choices are bad choices. Most automatisms are bad (the more "smart", the worse).

And while my attitude towards new features is generally cautious (to avoid saying "negative"), history has proven me right a few times. Many feature requests (particularly the ones from two specific users) that were implemented against my objection in the past have caused quite a few problems that were not foreseen and have cost many weeks of development time (and user time).

People complain that RC3 is delayed and delayed, we are being compared to "Duke Nukem Forever", and we're being told that features should not be added to a RC, but at the same time, new features are asked for every day.

I am not saying that I know everything or that I am unfailable as the Pope does.
However, I am positive about two things: more message boxes with yet more choices do not make the application better, and neither does making one more thing that you might not want automatic.
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline kidmosey

  • Multiple posting newcomer
  • *
  • Posts: 95
    • MUSITU International
Re: Changing build options, should force a rebuild
« Reply #31 on: July 19, 2006, 11:12:10 am »
...
However, I am positive about two things: more message boxes with yet more choices do not make the application better, and neither does making one more thing that you might not want automatic.

And 34 different ways to open/create a new file does not make an IDE easier to use, especially for novices. :D

And I can't help but applaud you for everything you've said.  But, then, I'm the type who despises people who create web pages with frontpage when I made my entire site with notepad.  I'm all for new developers, but depending on software to hold your hand is a horrible way to learn and will only lead to lazy/poor results.
3 years until google knows more than god.

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: Changing build options, should force a rebuild
« Reply #32 on: July 19, 2006, 11:59:12 am »
Lol, I forgot to mention the MS office assistant in my rant. Clippy, Minky, Professor, whatever they're called...  :lol: :lol: :lol:
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

mdelfede

  • Guest
Re: Changing build options, should force a rebuild
« Reply #33 on: July 19, 2006, 01:09:37 pm »
Lol, I forgot to mention the MS office assistant .........

Beurrrk !
First time I used office it took me 1 hour to get rid of assistant !
Without speaking about automatic bullets (one morning to disable them), spell check (I disabled it and it continues to put capital letters everywhere, in particular on 'i', even if in Italian the 'i' doesn't mean 'first person singular'....

I agree, too much 'automatics' doesn't make a better program.
I used for some time Borland tools, and they'll do it good, not too much, not missing too much. Of course, it was easier for them, supporting only one compiler...

Of course it would be possible to parse the compiler options for each compiler, to detect when a rebuild is needed, but it would be a huge job, working with many compilers. Even doing it, on future compiler version there would be many options not parsed by the program, which would lead to bad behaviours.
Of course, having a person that could spend all time on it would be great  :mrgreen:

One nice thing that could indeed be added with no much effort would be a new option with 'message verbosity', let's say
'expert', 'normal', 'beginner' and 'dummy like a hun', on wich the messageboxes would depend.
So, if you don't want to be bothered at all you can choose 'expert' mode, if you want a messagebox that remembers you that you must eat twice a day you select 'dummy like a hun' 8).

Ciao

Max

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9723
Re: Changing build options, should force a rebuild
« Reply #34 on: July 19, 2006, 01:55:07 pm »
One nice thing that could indeed be added with no much effort would be a new option with 'message verbosity', let's say
'expert', 'normal', 'beginner' and 'dummy like a hun', on wich the messageboxes would depend.
Hehe... I thought the same. Because I for myself have disabled all TipOfTheDay and AnnoyingDialogs after they appeared the first time. For me a global setting "Expert mode" that does not even offer me such things the first time would have been great!

In fact I am developing a modelling software that follows this concept: There are 3 user levels: Expert, "Default" and Beginner. Depending on what level you set the modelling tool adjusts parameters automatically to a "good" default value. This is accepted and used intensively by the users that use "my" modelling tool.
« Last Edit: July 19, 2006, 01:56:48 pm by MortenMacFly »
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline iw2nhl

  • Multiple posting newcomer
  • *
  • Posts: 116
  • BASIC, C, C++, Qt, bash
Re: Changing build options, should force a rebuild
« Reply #35 on: July 21, 2006, 12:51:14 am »
I agree with some ideas of thomas, but only some ;-)!
While for me, there are far too many dialog boxes that annoy the hell out of me (things like "the file was created successfully" or "do you really want to rebuild?" make me say "yeah, what else, that's just what I asked for!"), I do see that a novice user might need one or the other of them (maybe).
Yes, there are too many dialog boxes and the worst one is about clean/rebuild: for both of them it remebers you that that operation will require a lot of time if the application is big.
Is this message really needed? This is what I think is well known by any developer: building requires time.
While other dialogs may be useful: if I ask to create something, I want to know if it was created or not because of errors. Generally, if no message is shown, you do not know if it is because everything was right or because of a bug in the system or a silent error.

Think of the typical installer app (the kind of installer that 100,000 programs use) as a negative example of what I am talking about:
Yes, I partially agree: that way of installing is not very good, but always better than a compile required by a lot of applications for Linux (worst than this, when the application requires libraries to be compiled too).

People complain that RC3 is delayed and delayed, we are being compared to "Duke Nukem Forever", and we're being told that features should not be added to a RC, but at the same time, new features are asked for every day.
About the version I have an idea: why just don't skip the 1.0 version and release something like a 1.5 version?
I say this because we are NOT working on an RC (release candidate): it has changed in GUI, menus, frameworks, plugins and much core code. It has nothing to do with the old 1.0 version.
New code means new version.
You cannot still call the new release: 1.0 version. Give it a new name, please!
« Last Edit: July 21, 2006, 12:53:25 am by iw2nhl »

mdelfede

  • Guest
Re: Changing build options, should force a rebuild
« Reply #36 on: July 21, 2006, 11:39:43 pm »
Reading the topic about compiler framework redesign, made with xml files, one for each compiler, I was thinking that it should be possible to put 1 field in xml file for each compiler version telling which options should force a rebuild when changed.
Then, another file should be generated on each build, saving (maybe also in xml...) the options used on last build.
On next build that file could be scanned, compared with 'force build on change' flags in compiler framework xml file and a forced rebuild could be done automatically.
Of course, the rebuild could be done on 'per file basis' when only local options changed, or 'per target basis' when a global option changed.
It would also be possible to put 3 kind of options :
1 - rebuild not needed (for example, for warning levels, ecc...)
2 - rebuild suggested (for example, change in optimizations), which could lead to a box asking for it
3 - rebuild mandatory, which could lead to an automatic forced rebuild.

Having that in xml compiler files, it could be easy mantained and extended with new future compilers and options.

Ciao

Max