News:

Simutrans Tools
Know our tools that can help you to create add-ons, install and customize Simutrans.

point and click

Started by Roads, September 13, 2012, 02:14:11 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Roads


Something has been on my mind lately and I guess here is as good a place as any to unburden myself.  A few years ago my oldest son worked in Singapore.  The official language there is English.  My son often complained about the usage of the language.  I guess this became a topic of conversation and the CEO announced one day that "words have meaning."  This led me to thinking about graphical user interfaces and its progression from Windows to the Android operating system.  You might call this progress, I call it regression and I pretty much hate it.


In earliest history, there were paintings of scenes depicting, in some cases, how people should do this or that.  This is exactly what a point and click, graphical user interface is - a means of communication where people do not have a workable language.


I readily admit these operating systems have a place in our world, after all I have both but I think we humans need not become to dependent on them - that we need to remember our most important form of communication is language - that it took thousands of years to develop and should not be discarded in favor of point and click.  I have no desire to return to the days when we pointed at a chicken and rubbed our belly.


The reason I'm posting this here is it also applies to games.  The GUI makes the games wonderful but language is still required and a graphical button can not always replace language.

Isaac Eiland-Hall

GUIs are languages - visual languages. Consider, if that doesn't make sense, that sign language is most certainly language.

GUIs have grammar, syntax... if they are designed well - **once people start speaking that language**, they work very well.

However, like any language, they are only as good as the 'writer', and only as good as the 'speaker'.

Ters

Graphical languages are actually very useful. Think of all the signs we use everywhere. I've never heard of anyone complaining about the fact that Europeans use a red circle with a number in it rather than write "The speed limit is 80", or a red triangle pointing downwards to tell drivers to yield.

One just needs to learn the language first, and for computers, mouseover texts is a long established standard for that. Some texts for that in Simutrans could perhaps be better.

Roads

#3
@Isaac

Yes.

@Ters

Yes.

Both of you are right of course but the point I was trying to make, in apparently the most feeble way, was the problem users sometimes, and quite often for me, have when GUI's replace language but don't do it very well.  Android, for example, requires considerable repetition in some cases to remember what buttons to push.  It is only logical to think that the more things you want to do, the more you have to commit to memory.  Right now there are several things I would like to do with my tablet but figuring out how to do all the stuff and then remembering how I did it, seems like quite a formidable task.  I read sometime back that Windows is trying to be more like Android.  The couple of times I did something on Windows 7, I ended up using the command line because the GUI was so clumsy if it could even be done that way.

Mouseover texts are great and yes, Simutrans could use more of them especially on things like connecting factories, which to me is currently learned by trial and error.


Modify: changed the word clunky to clumsy

Ters

Of course graphical languages have their limits. They are best suited for simple, repeatedly used messages. For that, they excel with their compactness and recognizability. Verbal languages are more flexible, but likely require more processing in the brain.

Markohs

#5
My computer science grade final work/thesis is implementing a 3D web-browser (WebGL) UI to implement a graphical functional programming language very similar to Haskell. Will have it ready in two months, I wish I can finish it already and going back to my personal hobbies. :)

The idea is implementing a programming language that even people not able to program in traditional procedural progamming languages can aproach to and be able to program. We'll see if works or not, so far it's looking good. :)

Just speaking of this, because I think it will be interesting to see if this project will be able to encapsulate complex algorithms in a graphical way, compact enough for it to be useful and get programming closer to anyone. Right now I'm with the ones that think that GUI's tend to make things harder or slower to get things done, more or less like last linux desktops, where it's even hard to get a terminal window, when unix is based on a command line, that's the essence of it.

Roads

I had to Google Haskell, had never heard of it.  I'm still not sure exactly what it is.

Hope you the best of luck with the web browser UI you are working on...not sure I understand what it is either.  Does it do anything similar to say, CoffeeCup software?  Years ago I used an early version of that to do a web site and it was great.  Years later I tried it again and hated the new improved version.  Much of it had been replaced by a graphical interface and much of the functionality was lost, IMO.

Sometimes I wonder if all this stuff, including games, tend to be simplified over time, (dumbed down), to appeal to a wider audience and finally gets to a point where it is very simple but you can't do anything with it.

Combuijs

Quote from: Markohs on September 17, 2012, 11:09:17 AM
My computer science grade final work/thesis is implementing a 3D web-browser (WebGL) UI to implement a graphical functional programming language very similar to Haskell.

...

The idea is implementing a programming language that even people not able to program in traditional procedural progamming languages can aproach to and be able to program. We'll see if works or not, so far it's looking good. :)

Well, I hope for you it is anything but Haskell. I fail to see how programming in Haskell is easier for people than traditional programming. It is more suitable for wizz-kids, I feel.

In our company we are experimenting with a kind of programming method to specify products (especially geometry) for the building industry. The least worst method is still prodedural and we are not really satisfied with it, but until now nothing else has really worked. Any kind of functional programming is way beyond the capabilities of the users, and believe me, they are quite capable (architects, draftsmen).
Bob Marley: No woman, no cry

Programmer: No user, no bugs



Markohs

Oversimplyfying it will be a graphical tool, where you'd have, for example two "boxes" with output arrows (that are lists of numbers, for example, from a excel file), that whould connect to a box with two inputs, that has a "+" glyph on top of it, and one output that would output another list, wich whould be a list of those two list items added. When you press the "play" button, the program whould run step-to-step creating a result. All this whould be build in a drag-and-drop, and connect the slots on each other lego or puzzle style.

Plus it will be able to do much more than just adding two lists. :)

More or less that's the idea, writing formulas and algorithms in a graphical way.

Markohs

Quote from: Combuijs on September 17, 2012, 11:58:05 AM
Well, I hope for you it is anything but Haskell. I fail to see how programming in Haskell is easier for people than traditional programming. It is more suitable for wizz-kids, I feel.

I've read about experiments with people without any knowledge of programming where they were exposed to functional and imperative languages, results showed it was much easier for those people to program things in functional languages. But this a object of debate I guess.

Quote from: Combuijs on September 17, 2012, 11:58:05 AM
In our company we are experimenting with a kind of programming method to specify products (especially geometry) for the building industry. The least worst method is still prodedural and we are not really satisfied with it, but until now nothing else has really worked. Any kind of functional programming is way beyond the capabilities of the users, and believe me, they are quite capable (architects, draftsmen).

Maybe having knowledge of imperative programming already taints theis way of thinking. Once you program imperative it's hard to think functional, I've had had some problems myself learning that way of programming since I really used to think imperative.

But it might be that they just don't work. But they have their uses, and the absecen of side-effects make them specially interesting for paralel and distributed programming.

For those interested the wikipedia article.

  Anyway didn't want to de-rail the topic, this was about GUI's. :) Sorry

Combuijs

Quote from: Markohs on September 17, 2012, 12:52:23 PM
Oversimplyfying it will be a graphical tool, where you'd have, for example two "boxes" with output arrows (that are lists of numbers, for example, from a excel file), that whould connect to a box with two inputs, that has a "+" glyph on top of it, and one output that would output another list, wich whould be a list of those two list items added. When you press the "play" button, the program whould run step-to-step creating a result. All this whould be build in a drag-and-drop, and connect the slots on each other lego or puzzle style.

Plus it will be able to do much more than just adding two lists. :)

More or less that's the idea, writing formulas and algorithms in a graphical way.

Yes, that is a very nice way of doing that. We have considered that as well, it is just a lot of work and a lot of trial and error to get that right. But such a visual tool will certainly appeal to architects and drafters.

When you have finished your thesis, could I get a copy of it, if copyright issues allow? It would be a very interesting read, I think.
Bob Marley: No woman, no cry

Programmer: No user, no bugs



Markohs

#11
Quote from: Combuijs on September 17, 2012, 02:03:19 PM
When you have finished your thesis, could I get a copy of it, if copyright issues allow? It would be a very interesting read, I think.

Sure, no problem! We already made some work to be able to use external .dll libraries to be able to do the IO with other systems, the only problem is atm the "server" just works on windows. But if there is interest we'll make unix versions too. :)

EDIT: It's somewhat similar to this project, but we solved the problem in different ways. That guy focus more in hardware, I think, didn't read much of his works, but enough to see they share some points. I think he has not implemented much of what he describes, neither.

Roads

No worries about de-railing the topic.  It was just a general conversation thing anyway, nothing concrete and looks like you and Combuijs have actually gotten some benefit out of it.

Combuijs

Quote from: Markohs on September 17, 2012, 03:32:13 PM
EDIT: It's somewhat similar to this project, but we solved the problem in different ways. That guy focus more in hardware, I think, didn't read much of his works, but enough to see they share some points. I think he has not implemented much of what he describes, neither.

Yes, true, and I think he is focusing on tools for (experienced) programmers, not for (non-experienced) non-programmers.
Bob Marley: No woman, no cry

Programmer: No user, no bugs