This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
Pinkishu's profile picture

Fake Loading

Started by Pinkishu, 20 September 2012 - 07:58 PM
Pinkishu #1
Posted 20 September 2012 - 09:58 PM
So am I the only one who gets horribly annoyed by this?

By code thats like


term.write("Loading")
sleep(1)
term.write(".")

sleep(1)
term.write(".")

sleep(1)
term.write(".")

sleep(1)
term.write(" ok")
sleep(1)
?

It's just completely useless and a waste of everyones time imo…
I appreciate loading screens when there is something to load, but if there is not then why have them? They're not even "cool" imo :)/>/>
Luanub #2
Posted 20 September 2012 - 10:19 PM
If that's all they have done yeah its pretty pointless, why annoy the user with waiting if you don't have to.

I have a couple of real status bars that progress as a task is being performed, such as a remote terminal syncing with a server.
Cranium #3
Posted 20 September 2012 - 10:36 PM
I prefer if there is a loading screen hiding something that actually takes time. For example, transferring thousands of lines of script over rednet and saving to files. Otherwise, fake loading screens just make me want to remove the offending script.
nitrogenfingers #4
Posted 21 September 2012 - 05:21 AM
Is a fake loading screen a loading screen that loads nothing, or a loading screen in which the progress displayed doesn't represent actual progress?

In the former case, they're an outdated abomination, a relic of the past that flies in the face of modern user interface design principles. Interfaces must both be transparent and provide feedback- user interactions should be clear, the outcome should be obvious and all actions the interface is taking should be displayed to the user so they understand explicitly what the program is doing. A fake loading screen is a lie to the user and violates these principles. It's not a harmful opacity, like for example redefining the word "save" in menus to mean "delete all", but it is an unnecessary irritation.

Loading screens with predictive or undisplayed progress we often see with tasks that are difficult to quantify- the example of connecting to a network or being reliant on another process is a good example. For screens that display no progress at all, "loading screen" is the wrong word, though I can't think of a better one, as nothing is being loaded- instead a task is being performed. I have seen interfaces that attempt to roughly predict the amount of time these tasks take but this can lead to bars being stuck on 99%, waiting for progress the predictor hadn't expected- and nothing is worse than a bar stuck on 99%.

Why do fake loading screens exist? They add legitimacy to an otherwise simple or bare-bones interface to make it seem more complex or important, they add breaks between operations for cinematic effect or they are simply used without really understanding their proper usage. I'm sure there are other reasons, though I can't name them, but none I can think of is a reasonable excuse.

For good interface design, a loading screen should display exactly how much progress has been made (a progress bar or checklist of tasks), details on specifically what tasks is being performed and if possible a time estimation, such as time remaining for loading tasks or how long an unpredictable typical task usually takes. These features you'll see on most modern loading screens, for example performing file operations in Windows.
BigSHinyToys #5
Posted 21 September 2012 - 07:45 AM
I have never seen the point to those loading bars they seam pointless to me. I have only used loading bars a couple of times. on both times it was because multiple files were being read and written to . for example my AI program has a ability to reed all files in a folder this takes much time. and my File information program it needs to get size information of every item in they folder and files to give total folder size.

I can see why you would have a progress bar showing how long a program has till it closes example to take up time after the retry limit has been hit in a door program. but other than that see not real point.
Cloudy #6
Posted 21 September 2012 - 08:23 AM
I hate fake loading screens with a passion. If I see a script with one in I won't use it out of principle. It would be wasting my time for nothing.
Fatal_Exception #7
Posted 21 September 2012 - 08:31 AM
Reminds me of anecdotes of unscrupulous programmers who add "speed-up loops" to their code, ie:
for i = 1, 1000000 do SomethingUselessToWasteTime() end
On a slow day, they can remove a 0, and write in the commit log "Improved performance by factor of 10"
KaoS #8
Posted 21 September 2012 - 08:40 AM
I am a perfectionist programmer, when I make a script I want it to run perfectly, cater for every eventuality and run as fast as possible, people who slow down their script for no reason (other than to appear more experienced than they really are) disturb my peace, maybe I'm stupid but I really just can't imagine how you could do something so stupid to your code. I agree with Cloudy, if they use such codes then they clearly lack the skill to make anything worth anyone's time
Sammich Lord #9
Posted 21 September 2012 - 08:56 AM
I think just about everybody hates these. They have no point what-so-ever besides trying to make your simple program complex.
For example: If I had a downloader that downloaded about 20 files from my Github to install a whole program then I would want a loading bar since looking at a blank screen is boring. But if I make a password system that preforms the task instantly then a fake loading screen is a waste of everybody's time.

From the poll at the top of the post it is obvious just about everybody hates noobs who add a fake loading screen to make a program look complex.
Pinkishu #10
Posted 21 September 2012 - 01:02 PM
I was more on about the loading screens that actually do nothing at all but sleep() than not representing acutal progress @ nitrogenfingers

I only used a loading screen once, and that was when reading in a whole NBT file and it depended on actual progress, and it could take a few seconds to read a file.
But yeah I hate these loading screens that don't do anything but trying to make a program look more complex/cool
immibis #11
Posted 22 September 2012 - 02:23 AM
Maybe it's cargo cult UI design? :)/>/>

(Assuming that lots of good software has loading screens, therefore loading screens cause software to be good)
BigSHinyToys #12
Posted 22 September 2012 - 02:42 AM
Maybe it's cargo cult UI design? :)/>/>

(Assuming that lots of good software has loading screens, therefore loading screens cause software to be good)
at first I had no clue what link you had found between island cults and Computer craft fake loading bars I think I get it now .Because good software has loading bars they Imitate them hoping there software will be looked upon as good.

witch actually sounds about right imitation programs they see as good in an attempt to be a proper programmer. Witch is contradictory to how programmers work to better the speed of operations and not use loading bars where possible.
lieudusty #13
Posted 22 September 2012 - 05:24 AM
I like loading screens when they actualy do something.
sjele #14
Posted 22 September 2012 - 09:49 PM
Often in CC code/lua you don't realy need a loading text :P/>/>
I can live with short fake loadings, but not long once
Mendax #15
Posted 23 September 2012 - 02:15 AM
My 'loading screens' (In BASH or Lua) represent actual progress, for example:

3 Tasks to complete, Please wait...
Task DownloadFile (1 of 3)
Task DownloadScripts (2 of 3)
Task DownloadPageInfo (3 of 3)
Tasks complete (3 of 3 completed successfully)

Press any key to display page
That is what 'loading screens' in Lua/BASH should be like, tell you what they do. Not just bull**** you until you think it's real. And the ^above^ would be completed in seconds. (Or about 5 ticks (Printing the 2 messages before the tasks finish takes a tick on my PC)) Yeah, forget what I was gonna say now.
Cranium #16
Posted 25 September 2012 - 03:12 AM
I like loading screens actually showing real progress. I am currently getting into using the HTTP API, so that takes time to query and download things online. So I created a simple loading screen, that shows where it is at in the download process. In all, it only takes about 4 seconds from start to finish, and the loading function has no sleep calls in it at all. So when progress moves on, it updates accordingly. That's how loading screens should work.
JJRcop #17
Posted 25 September 2012 - 07:30 AM
It's definitely annoying having the loading screens that are just there to waste time.
I saw this login screen to get into a computer in a SMP server once, I typed in the correct password, and it said "Logging in…" and stood there for 15 seconds.

Pretty annoying.
KaoS #18
Posted 25 September 2012 - 07:41 AM
well you never know what they are doing without reading their code, maybe they have an elaborate system set up. in my base when you log in it sets up the whole system not to blow you up, this takes a fraction of a second but maybe their system does something else that uses circuitry etc for something
Dragon_DLV #19
Posted 25 September 2012 - 08:22 AM
New Project:
Build threshold that will blow me up if I forget the password.
Tiin57 #20
Posted 25 September 2012 - 08:09 PM
I hate false loading screens. Debug messages are another matter.

local x = fs.open(file, "w")
x.write("crap")
x.close()
print("Config files written...")
os.loadAPI("tiinapi")
print("APIs loaded.")
^ is good.