[Implemented] In and Out parameters

We have a strong background on this: our first language, back when we started in 2004 was Oxygene, an Object Pascal derivative based on Delphi. We’ve evolved Pascal like crazy, even our first release added dozens of new language features over what Delphi had at the time, and we’ve added loads since — see Evolution of the Oxygene Language | Oxygene | RemObjects Software.

But, with the exception of a few breaking changes we purposely made because we felt they were deign issues with the original Delphi implementation, pretty much all the changes are entirely additive. A Delphi developer can start coding in Oxygene and know the language and feel right t home immediate. They don’t have to learn a single new thing, language wise — but they are anomaly snatching the surface of what the language can do, at that state. As they have time to dig in deeper, they can learn more and more of the advanced features and sue them — if they want to. But they don’t have to.

Our goal is that the same will be true for Mercury. if you know VB.NET, you can use Mercury without learning a single new (langauge*) thing. But there’ll be more for you discover , if you want to.

The best feature enhancements IMHO, are those that you don’t realize you are using (say, a limitation you might nt ever have thought about is being removed. You can suddenly call that method that returns a Pointer, when before you couldn’t, for example), or that extend an existing feature in an intuitive but additive way (such as For Each Matching & For Each With Index.

1 Like