[Pas2js] A pascal version of the C ternary operator ( ? : )
silvioprog
silvioprog at gmail.com
Tue Dec 25 22:25:57 CET 2018
On Tue, Dec 25, 2018 at 3:15 PM Sven Barth via Pas2js <
pas2js at lists.freepascal.org> wrote:
> Am 25.12.2018 um 18:22 schrieb silvioprog:
>
> On Tue, Dec 25, 2018, 12:39 Sven Barth via Pas2js <
> pas2js at lists.freepascal.org wrote:
>
>> Am 24.12.2018 um 22:24 schrieb silvioprog:
>>
>> On Mon, Dec 24, 2018 at 3:43 PM Sven Barth via Pas2js <
>> pas2js at lists.freepascal.org> wrote:
>>
>>> Am 22.12.2018 um 23:11 schrieb silvioprog:
>>>
>>> On Sat, Dec 22, 2018 at 10:32 AM warleyalex via Pas2js <
>>> pas2js at lists.freepascal.org> wrote:
>>>
>>>> if then else alternative feature ( ? : )
>>>>
>>>> Amazing to see new fetures introduced to pas2js. I must say that I do
>>>> really
>>>> like this syntax.
>>>>
>>>> ------- // pascal version // ------
>>>> var
>>>> msg: String;
>>>> begin
>>>> msg := "There are " + IntToStr(n) + " user" + if (n>1) then "s" else
>>>> "";
>>>> end;
>>>> ----------------------------------------
>>>>
>>>
>>> It sounds very good and will be useful.
>>>
>>> For the first time in history a language will make ternary operators
>>> readable. :-)
>>>
>>> That statement is incorrect as Oxygen already provides an if-expression
>>> like that.
>>>
>>> Regards,
>>> Sven
>>>
>>
>> Some link for the mere mortals? :-)
>>
>> Here:
>> https://www.elementscompiler.com/elements/oxygene/language.aspx#grabbag
>> Search for ""if", "case" and "for" loop expressions".
>>
>> Regards,
>> Sven
>>
>
> O took a look at it, very interesting features, specially the "for"
> possibilities. Also, I saw something like async/await, I didn't know that a
> language similar to Pascal provide such features. Thanks for sharing!
>
> Oxygene added some features that I wouldn't necessarily mind to add to FPC
> some time in the future. Though it would definitely be cherry picking...
>
> Regards,
> Sven
>
Interesting. IMHO it is important to provide new features improving the
language. The Embarcadero company has done an incredible work in the
language/RTL, offering new features (custom attributes, type helpers,
better RTTI support, parallel programming library etc.) preventing the tool
from becoming obsolete. The same for the Lazarus/FPC team, the Pas2JS tool
introduced the Pascal language practically to a new age. A simple example
that I believe to be the reality of many other programmers: months ago, our
company was inclined to use TypeScript, but, after pas2js & TMS, we don't
need TypeScript for a while, and maybe we will not need it anymore.
However, I have an opinion maybe the most don't agree with me: I think a
new language feature could only be developed when other relevant RTL
features "in progress" would become stable or at least beta. For example,
the RTTI.Invoke() is a very useful Delphi's RTL feature massively used
around ten years for the ones (e.g: TMS, DevArt, Synopse ...) who develop
libraries/frameworks for Pascal, but I'm one of those who has proposed to
help to finish this feature, working about two months to contribute by
sending a patch supporting it on Linux64, however, I couldn't get any
feedback regarding it (e.g: issues #34743 / #34496; topic "[PATCH]
Low-level invoke implementation for Linux x86_64"). This is very, very,
very discouraging, because one of the the ideas of being open source is
anyone can contribute to make the project better, avoiding to let it only
to a single person overloading him, but we don't know which priorities are
most relevant to the project because we don't get answers. :-/ (Maybe it's
because we are in times of parties, holidays, or maybe the patch is
complex, or a very bad patch, well, I don't know). So unfortunately I don't
feel any excitement for new language features, and I can't believe that
only just one person will implement in life the lot of remaining Delphi's
improvements/features, because it would take years.
Sorry for sending so large text, but one thing ended up pulling the other.
:-|
--
Silvio Clécio
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/pas2js/attachments/20181225/c583d86d/attachment.html>
More information about the Pas2js
mailing list