Alok, maybe I have not been in on the right projects the last 30 years.  But I am mostly concerned in getting code to work efficiently. "Refactoring, parallelize computation, mutable data structures to synchronize?" You are talking over my head, and I think over the heads of most programmers in the trenches. I don't have time to try to understand what you are trying to say, I have real work to do. If you want to have a real impact, say things that really can help me.

Maybe you really have something valuable here, I don't know. But the way present, is a major put-off. As always, it is not what you say, but how you say it.

The definition of Declarative Programming I found is:

In computer science, declarative programming is a programming paradigm—a style of building the structure and elements of computer programs—that expresses the logic of a computation without describing its control flow.

Maybe my ignorance is showing here, but this seems like so much "pie in the sky", and I cannot relate it in a meaningful way to anything. Sorry folks, I guess this is just above my pay-grade.

Evgeny, I know about passing a variable number of parameters (variable, not unlimited).

However, this is a post for NewBies and what you are talking about is advanced.

What does the star with the number mean in the lower left hand corner of each post?

On the whole a nice job. Three points however.

Be careful in saying the .CLS, .MAC code can be deleted. If they ever wish to change their code they will need the classes and possibly the .MAC code.

There continues to be a lot of confusion around writing .INT code as a main source. The VA does it all the time. The dangers of this should be pointed out.

The differences between .MAC (Macro) Routines and Macros should be explained.

Alexey Maslov wrote:

"If so, how do you answer the curious Newbie's question: why should I use Caché at all, as a few SQL implementations are available for free nowadays?"

I did not say SQL, I said "Caché SQL", with everything that implies.

 

All that has come before is great stuff, and extremely interesting. However, the Newbie can ignore it all, by using Caché SQL. Let Caché define the necessary Globals by using Classes/Methods and let Caché SQL retrieve your data. This is by far the better and more efficient way and is much more maintainable. 

I went through a section of one of the courses.

It sure is an improvement over some of the previous courses in years past.

I can see a lot of work has gone into the courses and I commend those who did the work.

However, without an audio component, the courses quickly become tedious.

InterSystems is a world wide organization and leader in many respects, their online courses should reflect that.

Just my 2 cents. Don't kill the messenger.

The new introduction is exactly what I had in mind, thank you.