Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

I think i will also continu to work more with Delphi and FreePascal

8 views
Skip to first unread message

Sky89

unread,
May 19, 2018, 2:09:33 PM5/19/18
to
Hello...


I think i will also continu to work more with Delphi and FreePascal and
Lazarus, all of them use a "modern" Object Pascal that is much more
powerful than pascal.

Delphi for example works on the following platforms:

Windows
Linux
macOS
iOS
Android


You have to look at the new Delphi here, it is very powerful:

https://www.embarcadero.com/products/delphi


Lazarus and FreePascal are very interesting to use, you have to look
at Lazarus here to notice it:

https://www.lazarus-ide.org/


What i love in Delphi and FreePascal and Lazarus is that
Delphi and FreePascal like ADA come with range checking and Run-time
checks that catch conversion from negative signed to unsigned , and
catch out-of-bounds indices of dynamic and static arrays and catch
arithmetic overflow etc. and you can also dynamically catch this
exception of ERangeError etc. and that's good for reliability.

But C++ and C don't have range checking etc. so that's not good in C++
and C and that's not good for reliability and it is not good for
safety-critical systems.


This is why i will also to continu to work more with Delphi and
FreePascal and Lazarus, and my Delphi projects can be used with C++Builder.

Look for example at my last invention , here is my last invention for
Delphi and FreePascal:

Scalable reference counting with efficient support for weak references

https://sites.google.com/site/aminer68/scalable-reference-counting-with-efficient-support-for-weak-references

You can find my other "inventions"(that are my scalable algorithms etc.)
and my other projects here:

https://sites.google.com/site/aminer68/

Also you can improve strict-type safety(and thus reliability) in Delphi
and FreePascal with variants like this:

--

program test;

uses VARIANTS,SYSUTILS;

var f:double;
a:integer;



FUNCTION ASSIGN(a,B:VARIANT):VARIANT;

begin

IF VARTYPE(A)=VARTYPE(B) THEN
BEGIN
A:=B;
RESULT:=A;
END
ELSE RAISE EXCEPTION.CREATE('ASSIGNEMENT NOT OK');


end;

begin

a:=2;

f:=a;

A:=ASSIGN(F,A);


end.
--


Here is the Vartype function:

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Variants_VarType.html




Thank you,
Amine Moulay Ramdane.





0 new messages