<div dir="auto"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">On Tue, Dec 25, 2018 at 3:15 PM Sven Barth via Pas2js <<a href="mailto:pas2js@lists.freepascal.org" target="_blank" rel="noreferrer">pas2js@lists.freepascal.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF">
    <div class="m_-7063870721285104018gmail-m_-8675704204095973610moz-cite-prefix">Am 25.12.2018 um 18:22 schrieb
      silvioprog:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="auto">
        <div>
          <div class="gmail_quote">
            <div dir="ltr">On Tue, Dec 25, 2018, 12:39 Sven Barth via
              Pas2js <<a href="mailto:pas2js@lists.freepascal.org" target="_blank" rel="noreferrer">pas2js@lists.freepascal.org</a>
              wrote:<br>
            </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
              <div bgcolor="#FFFFFF">
                <div class="m_-7063870721285104018gmail-m_-8675704204095973610m_-2921839648098130849moz-cite-prefix">Am
                  24.12.2018 um 22:24 schrieb silvioprog:<br>
                </div>
                <blockquote type="cite">
                  <div dir="ltr">
                    <div dir="ltr">
                      <div dir="ltr">On Mon, Dec 24, 2018 at 3:43 PM
                        Sven Barth via Pas2js <<a href="mailto:pas2js@lists.freepascal.org" rel="noreferrer noreferrer" target="_blank">pas2js@lists.freepascal.org</a>>
                        wrote:<br>
                      </div>
                      <div class="gmail_quote">
                        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                          <div bgcolor="#FFFFFF">
                            <div class="m_-7063870721285104018gmail-m_-8675704204095973610m_-2921839648098130849m_8383390704682588519gmail-m_-7692999085196120308moz-cite-prefix">Am
                              22.12.2018 um 23:11 schrieb silvioprog:<br>
                            </div>
                            <blockquote type="cite">
                              <div dir="ltr">
                                <div dir="ltr">
                                  <div dir="ltr">On Sat, Dec 22, 2018 at
                                    10:32 AM warleyalex via Pas2js <<a href="mailto:pas2js@lists.freepascal.org" rel="noreferrer noreferrer" target="_blank">pas2js@lists.freepascal.org</a>>
                                    wrote:<br>
                                  </div>
                                  <div class="gmail_quote">
                                    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">if
                                      then else alternative feature ( ?
                                      : )<br>
                                      <br>
                                      Amazing to see new fetures
                                      introduced to pas2js. I must say
                                      that I do really<br>
                                      like this syntax.<br>
                                      <br>
                                      ------- // pascal version //
                                      ------<br>
                                      var<br>
                                        msg: String;<br>
                                      begin<br>
                                        msg := "There are " +
                                      IntToStr(n) + " user" + if
                                      (n>1) then "s" else "";<br>
                                      end;<br>
----------------------------------------<br>
                                    </blockquote>
                                    <div><br>
                                    </div>
                                    <div>It sounds very good and will be
                                      useful.</div>
                                    <div><br>
                                    </div>
                                    <div>For the first time in history a
                                      language will make ternary
                                      operators readable. :-)<br>
                                    </div>
                                    <br>
                                  </div>
                                </div>
                              </div>
                            </blockquote>
                            That statement is incorrect as Oxygen
                            already provides an if-expression like that.<br>
                            <br>
                            Regards,<br>
                            Sven</div>
                        </blockquote>
                      </div>
                      <div><br>
                      </div>
                      <div>Some link for the mere mortals? :-)</div>
                      <br>
                    </div>
                  </div>
                </blockquote>
                Here: <a class="m_-7063870721285104018gmail-m_-8675704204095973610m_-2921839648098130849moz-txt-link-freetext" href="https://www.elementscompiler.com/elements/oxygene/language.aspx#grabbag" rel="noreferrer noreferrer" target="_blank">https://www.elementscompiler.com/elements/oxygene/language.aspx#grabbag</a><br>
                Search for ""if", "case" and "for" loop expressions".<br>
                <br>
                Regards,<br>
                Sven</div>
            </blockquote>
          </div>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">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!</div>
      </div>
    </blockquote>
    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...<br>
    <br>
    Regards,<br>
    Sven</div></blockquote></div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>Sorry for sending so large text, but one thing ended up pulling the other. :-|</div><div><br></div>--<br><div dir="ltr" class="m_-7063870721285104018gmail_signature"><div dir="ltr"><div>Silvio Clécio</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>