I found this thread when I began looking for somewhere to chat about my struggles with the language. I'd normally ask yet another question in the help section, but this feeling I have now is more general. I just began with v2. I am only just trying to work through my first conversion of a script and reading the help files, following the error messages and trying to figure out what's going on.
I was immediately pleased to see the simplified syntax in regards to getting rid of the legacy mode, and I was lucky in having already scripted mostly in expression mode. But I have always struggled with OOP, and tried to avoid as much of that complexity as possible. Functions come less naturally to me than subroutines, and I've always preferred variables to be global by default. So I'm finding things to dislike, too, in the version change.
While I accept the response from
@gregster that you can still use v1, it does now feel like that's a dead end at least in future, so I had hoped to switch rather than be forced to later.
I feel the urge to start another search for new languages. I was reminded by
@skrommel's post of Gui4Cli, which worked up to Windows XP and I've mourned its loss ever since. It was just the simplest language, yet fairly powerful in creating working UI-based programs. Consider the code examples here:
http://gui4cli.com/html/manual/ProgramStructure.htm for instance. No curly braces, hardly a parenthesis or comma, sections delimited by blank lines, and property statements following an object's definition (mostly visible controls).
And Gosubs. You know, I was converting my menu statements, which used to include the label of a subroutine to call when that item is selected, and suddenly, instead of a label, I'm lost in all the technicalities of function objects, what they need to return and how many parameters they should have sent! No doubt there's a way to dump them if they're not needed (they're not required to return anything, but apparently I can't have it return 0 or null), but this is the problem, having to find out the workaround to reduce a complex-and-powerful command back to a simpler version. Why can't the interpreter assume a simple command but check for additional complexity in case it's there?
My search may be fruitless - they usually are. Maybe I'll just give up coding altogether. Or maybe I'll get through this latest setback. I'm into a fairly major project, and it's hard to imagine porting it to something else now. It does feel like a really difficult language to learn, though, and the comprehensive, excellently crafted help files require fairly in-depth knowledge of programming jargon already. On the other hand, there's no denying the help on hand here, or the hard work of the developers.