[ I'm answering this on the gnucash-devel list. I don't think most users are interested in this technical essay. ]
On Wednesday 25 February 2015 03:37:36 David wrote: > Thanks Jim for the warning, I had read the link above and went to this > link given in that page to start learning Scheme. > http://www.scheme.com/tspl2d/start.html#g1546 > > But that book must be for real programmers not novices like myself. I > got some of the exercises done but then ran into a brick wall when he > said to write a file and then invoke it. > A guile script is in essence a plain text file written in the guile language. So you could use any plain text editor to write one. It helps a lot if your text editor understands the guile language so it can colorize your script. This is called syntax highlighting and makes it much easier to read back what you wrote or what others have written (like the reports). Example plain text editors on linux are gedit, kwrite or kate. Instead of a basic text editor you can also go for fully fledged IDE's such as KDevelop, Anjuta or Eclipse. The latter are more similar of visual studio on Windows with all kinds of development aids. Whatever you choose, you best choose an editor that does syntax highlighting for guile/scheme. I know kate and kwrite do, and that Eclipse doesn't. As for the file system, the biggest difference between linux and Windows is that linux doesn't use drive letters. Extremely simplified (just to get you started), you could think there is only one drive in linux. To access it your file paths have to start with "/". On windows to access your main drive your paths usually start with "c:\". Directories in a path are separated by a "/", where Windows uses a "\". So where should you store your test scripts ? Simply put: wherever you like. Guile doesn't put any restrictions on this. This is of course different once you are editing a report for gnucash. As Plutocrat pointed out, these should go in the .gnucash directory. So more in general, where do you store files in linux ? Just like modern Windows versions, linux has always kept user data in dedicated directories per user. Each user of the system will have its dedicated home directory under, well, "/home/". For example if your user name is "david" then your personal home directory will be "/home/david/". In some save dialogs this is also called your "Personal Directory" or simply "Home", or "david". On Windows it would have been "c:\Users\david" Lastly: about "invoking" the script. This you have to do from the command line, alias terminal or even console. I suppose you know how to open one if you have been playing with guile examples already. So to invoke a guile script you have written, you append it to the guile command like this: guile /path/to/my/guile/script In this case guile will run your script instead of starting with a prompt asking for guile code to input. There is much more to say about this, but I hope this gets you started. > I do not know enough about Linux file system yet to come across an > instruction like that. That is why I found some other Tutorials for > Scheme for real beginners. > > I will not be tinkering with reports any time soon. I had this mental > block about the word "Script" and just could not understand how one > builds a Form and Controls with a script. > See my other mail. > A friend of mine, Chris, who taught me C and C# scolded me yesterday > about my insistence to using Visual Studio which he pointed out > "writes the code for the form and controls and their properties for > you", thus [as he warned me] you never learn how to do it yourself. > Your friend is right to some extent. That is, Visual Studio is a highly integrated development environment which facilitates writing applications on Windows. I imagine it's a very powerful tool when used as intended by Microsoft. And that's also its weak spot in this context. GnuCash is not a Windows application from the start. Which means it is built with a totally different set of components (also collectively called a framework) that is not integrated at all in Visual Studio. So Visual Studio wouldn't be very helpful in the context of gnucash. guile is only one such component. The GUI libraries we use (gtk+) are another. Visual Studio doesn't know about them and hence can't assist you in writing guile reports. I realize that the hand-holding Visual Studio does when you're making your first steps in a new world is very comforting. Unfortunately I don't know of a tool that can offer this same lever of comfort for writing gnucash reports in guile. Hopefully the details I gave in my other mail about how the options and forms work in gnucash are a nudge in the right direction. > And he also pointed out that Scheme is just another Language like C, > VB, or any other language. > As Colin already pointed out that's quite simplified. Scheme (as an example of a functional language) has a totally different programming paradigm than VB or C (which are called procedural languages). Don't ask me to explain the differences. I'm still struggling with it myself. You can read wikipedia about it if you like. To use an analogy: if you speak English, chances are it will be relatively easy to learn other western languages. It's still a lot of work, but you start from the same mindset. On the other hand trying to learn Chinese will be much more difficult because their culture is fundamentally different and the reflects in their language and its use. > So I stand properly chastised, again. Wow, your friend must be hard-core then :) Geert _______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
