Thread: Rapid Euphoria programming language, version 3.1.1: 32-bit to 64-bit

  1. #31
    Registered User shian's Avatar
    Join Date
    Oct 2019
    Location
    Israel
    Posts
    23
    The good news is that Rapid Euphoria programming language is exactly the opposite of its source code.
    i.e. as much as the source code is coded as a long list of instructions - the result is probably the most simple, elegant and compact programming language.

    It's easy to represent 100 lines of BASIC, Python, Jscript (not to mention C) code in just 1 line of Rapid Euphoria. Because a single Rapid Euphoria sequence can include any complex data type which may exist in those languages all together.

    Another good news is that Rapid Euphoria is written by a perfectionist, Robert Craig, and the code is proven to be reliable and stable throughout the years.

    About malicious attacks:
    It is the same problem of environmental pollution - we create much more garbage then we can recycle, so the garbage is here to stay.
    i.e. we create much more hardware and software then we can protect, so the malicious attacks are here to stay.

    The most protected institutes in the world are hacked every day. Government and military institutes.

    And IoT and G5 are the insurance policy for malicious attacks to get out of control for good.

    So why bother?

    Unix had a backdoor all those years that it was considered "safe". That backdoor was placed by request.

    Any CPU in the last two or more decades includes non-documented circuits. The malicious activity is already hardwired in your CPU.

    People fooling themselves with anti-virus software and daily updates, while their hardware and their operating systems are already include backdoors by request.

    Do not forget that any advanced civil technology is a military technology, that was developed by the military for the military. That includes the Internet and any transmitter/receiver in the market. Just do 1 + 1.

    Smartphone is enough vulnerable for elementary school kids to hack. It is the most vulnerable piece of hardware and software on planet Earth. Yet people are bother to protect their PC. (They have no idea whatsoever, what IoT will bring: no more private life).

    What I like about Rapid Euphoria is not the speed, it is the beauty and the simplicity of its power.

  2. #32
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    27,181
    Quote Originally Posted by shian
    It's easy to represent 100 lines of BASIC, Python, Jscript (not to mention C) code in just 1 line of Rapid Euphoria. Because a single Rapid Euphoria sequence can include any complex data type which may exist in those languages all together.
    Could you show an example of a 100 line Python program that can be written with a single line of Rapid Euphoria code?
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  3. #33
    Registered User Sir Galahad's Avatar
    Join Date
    Nov 2016
    Location
    The Round Table
    Posts
    67
    Quote Originally Posted by shian View Post
    The good news is that Rapid Euphoria programming language is exactly the opposite of its source code.
    i.e. as much as the source code is coded as a long list of instructions - the result is probably the most simple, elegant and compact programming language.
    [...]
    What I like about Rapid Euphoria is not the speed, it is the beauty and the simplicity of its power.
    The syntax is definitely that of a well thought out higher level language. I'll give it that. But porting is still a serious issue. Already I get many compile errors from gcc. Maybe my environment variables just need some tweaking, I don't know, but not very encouraging.

    Quote Originally Posted by shian View Post
    Another good news is that Rapid Euphoria is written by a perfectionist, Robert Craig, and the code is proven to be reliable and stable throughout the years.
    Still an imperfect human and therefore also apt to make mistakes from time to time.

    Quote Originally Posted by shian View Post
    About malicious attacks:
    It is the same problem of environmental pollution - we create much more garbage then we can recycle, so the garbage is here to stay.
    i.e. we create much more hardware and software then we can protect, so the malicious attacks are here to stay.

    The most protected institutes in the world are hacked every day. Government and military institutes.

    And IoT and G5 are the insurance policy for malicious attacks to get out of control for good.

    So why bother?

    Unix had a backdoor all those years that it was considered "safe". That backdoor was placed by request.

    Any CPU in the last two or more decades includes non-documented circuits. The malicious activity is already hardwired in your CPU.

    People fooling themselves with anti-virus software and daily updates, while their hardware and their operating systems are already include backdoors by request.

    Do not forget that any advanced civil technology is a military technology, that was developed by the military for the military. That includes the Internet and any transmitter/receiver in the market. Just do 1 + 1.

    Smartphone is enough vulnerable for elementary school kids to hack. It is the most vulnerable piece of hardware and software on planet Earth. Yet people are bother to protect their PC. (They have no idea whatsoever, what IoT will bring: no more private life).
    Insecurities have indeed existed since the beginning. It's true. But that doesn't mean we shouldn't work towards a more manageable situation. Because most bugs ARE human error and in fact correctable in a mathematically verifiable sense. So there is hope.

  4. #34
    Registered User shian's Avatar
    Join Date
    Oct 2019
    Location
    Israel
    Posts
    23
    Quote Originally Posted by laserlight View Post
    Could you show an example of a 100 line Python program that can be written with a single line of Rapid Euphoria code?
    Just imagine a very simple QBASIC statement (very similar to C struct):

    Code:
    TYPE usertype
     name AS STRING * 20          ' first line
     number AS DOUBLE
     elementname AS typename      
     [elementname AS typename]
    .
    .
    .                             ' 100 line
    END TYPE
    In Rapid Euphoria you use a singe sequence for the above 100 + 2 lines,
    (the actual type of an element is handled in Rapid Euphoria in a much safer way):

    Code:
    s = {name, number, elementname, elementname, ...}

    But it can get even better, since Euphoria handles dynamic sequences very efficiently:

    Code:
    s = repeat(0, 100)  -- prepare a place for 100 elements of any type
                          -- [1], [2], [3], ... [100]    
                          -- an element could be {{key, data}, {k, d}, ...}
                          -- or anything.
    Or even much better:

    Code:
    s = {}     -- now do whatever you need to do with it at run time! 
                  -- It can hold unlimited different data types arbitrarily, 
                 -- also as deeply nested sub-sequences.

    I can give many more examples, but it gets ridiculous.
    Last edited by shian; 2 Weeks Ago at 03:02 AM. Reason: Adding a Quote.

  5. #35
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    27,181
    Quote Originally Posted by shian
    Just imagine a very simple QBASIC statement (very similar to C struct):
    I'm afraid that I'm not familiar with QBASIC, which is why I asked for a Python example since you mentioned Python specifically.

    Quote Originally Posted by shian
    In Rapid Euphoria you use a singe sequence for the above 100 + 2 lines,
    The same can be done in Python though: a single list of items of varying types.

    No, I'm not going to argue that Python is better than Rapid Euphoria. I'm just more cautious in my evaluation of programming languages, and I was curious as to whether your claim with respect to Python was accurate or exaggerated, and from what I see it is the latter, but that doesn't mean that Rapid Euphoria doesn't have advantages over Python, or that Python isn't presently better than Rapid Euphoria in other ways (you yourself have cited an example: the lack of libraries for Rapid Euphoria).

    My analysis of your situation remains: if you won't learn C yourself, and you have no community of Rapid Euphoria developers to fall back on, then you just have to wait for a C programmer to come along who loves Rapid Euphoria enough to work on it.

    I am rather surprised though that Robert Craig never did implement Rapid Euphoria in Rapid Euphoria: if that had been done, maybe you could modify the code yourself for your goals.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  6. #36
    Registered User shian's Avatar
    Join Date
    Oct 2019
    Location
    Israel
    Posts
    23
    Quote Originally Posted by Sir Galahad View Post
    The syntax is definitely that of a well thought out higher level language. I'll give it that. But porting is still a serious issue. Already I get many compile errors from gcc. Maybe my environment variables just need some tweaking, I don't know, but not very encouraging.
    [ ... ]
    Still an imperfect human and therefore also apt to make mistakes from time to time.
    [ ... ]
    Insecurities have indeed existed since the beginning. It's true. But that doesn't mean we shouldn't work towards a more manageable situation. Because most bugs ARE human error and in fact correctable in a mathematically verifiable sense. So there is hope.

    • [not very encouraging] You should compile with gcc version less then 6.0. I've used gcc 4.8.4 with -Wall -Wpedantic without a single error or warning. I also commented out a C macro for Assembly PUSH/ADD which is needed to be recalculated for 64-bit CPU. (this macro adds a single feature to the language: calling a C shared library or machine code).
    • [imperfect human] I guess that Jesus already mentioned it 2000 years ago. I cannot see your point.
    • [So there is hope.] Actually not. Learn about it, starting with IoT and G5 technology (do not stop when it gets creepy - unfortunately that's when it gets real). And by the way, anyone can "fish" your paypal or google password using a "formal" email with a "formal link" to renew your password for your own safety. Millions will fall into this trap.

  7. #37
    Registered User shian's Avatar
    Join Date
    Oct 2019
    Location
    Israel
    Posts
    23
    Quote Originally Posted by laserlight View Post
    I'm afraid that I'm not familiar with QBASIC, which is why I asked for a Python example since you mentioned Python specifically.
    [ ... ]
    The same can be done in Python though: a single list of items of varying types.
    [ ... ]
    No, I'm not going to argue that Python is better than Rapid Euphoria. I'm just more cautious in my evaluation of programming languages, and I was curious as to whether your claim with respect to Python was accurate or exaggerated, and from what I see it is the latter, but that doesn't mean that Rapid Euphoria doesn't have advantages over Python, or that Python isn't presently better than Rapid Euphoria in other ways (you yourself have cited an example: the lack of libraries for Rapid Euphoria).

    My analysis of your situation remains: if you won't learn C yourself, and you have no community of Rapid Euphoria developers to fall back on, then you just have to wait for a C programmer to come along who loves Rapid Euphoria enough to work on it.

    I am rather surprised though that Robert Craig never did implement Rapid Euphoria in Rapid Euphoria: if that had been done, maybe you could modify the code yourself for your goals.

    • [not familiar with QBASIC] QBASIC TYPE is a high level equivalent to C struct. (Without bit-level and pointer features).
    • I did not use Python since I dislike it and I almost forgot it. Yet, Python is way weaker then Rapid Euphoria when dealing with data types. Python is clumsy and not safe in this sense.
    • Since Rapid Euphoria never become a commercial product, the lack of libraries is obvious. Yet libraries can be added to Rapid Euphoria using Euphoria or C, without any modification to the core.
    • I do not think that I am exaggerating at all. I've used Microsoft's products, including OOP, and Rapid Euphoria, and I have a good reason for my claims. Most of the code that is dealing with data types in any other language is absent and not needed in Rapid Euphoria. And dealing with data types is the main madness (yea, madness) of almost any language. Python has a very poor way to deal with data types from my perspective, it's one good reason not to use it. As far as I remember Python.
    • The interpreter of Rapid Euphoria is written in C and in Rapid Euphoria. So I actually already compiled a 64-bit version of the interpreter, exu64. Yet, it is not as fast as the C interpreter, and speed is something that I like about Rapid Euphoria, it allows me to do things that I could not do in Python, PHP, Ruby or BASIC, because these interpreters are much slower then Rapid Euphoria.
    • If nobody want to help with this matter, I can still create a 32-bit product with Rapid Euphoria. Before 32-bit will be abandoned - I'll probably be dead. The future of the PC world and the Internet is on a crossroads anyway. And once the big corporations will become the exclusive landlords of the Internet, and it's going in this direction, you can expect the PC world to become a political entity. At this point, whatever we do will be meaningless. You don't have to believe me, time will tell.

  8. #38
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    27,181
    Quote Originally Posted by shian
    I do not think that I am exaggerating at all.
    That is with respect to the specific claim that "It's easy to represent 100 lines of (...) Python, (...) code in just 1 line of Rapid Euphoria". According to the example that you gave, it isn't. For Rapid Euphoria advocacy, it might be better to stick to claims that you can prove, otherwise it will look like you're exaggerating everything about Rapid Euphoria, even when you aren't.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  9. #39
    Registered User shian's Avatar
    Join Date
    Oct 2019
    Location
    Israel
    Posts
    23
    Quote Originally Posted by laserlight View Post
    That is with respect to the specific claim that "It's easy to represent 100 lines of (...) Python, (...) code in just 1 line of Rapid Euphoria". According to the example that you gave, it isn't. For Rapid Euphoria advocacy, it might be better to stick to claims that you can prove, otherwise it will look like you're exaggerating everything about Rapid Euphoria, even when you aren't.
    I am sorry, I did these comparisons with Python and other languages a long time ago, then I just forgot about it. One "bad" thing about me is that I never keep unit testing or tests in general, so I have to keep reinventing the wheel whenever someone asks a similar question (and I am tired of it).

    Yet, at the time, I found Python really clumsy compare to Rapid Euphoria. Also in its core (byte-string, 2-byte string, 4-byte string, and all that mess which I already forgot about. Rapid Euphoria does not have any string type at all).

    It does not bother me that one may say that I am exaggerating, since normally it is not someone that ever code in Rapid Euphoria, therefore it is one's assumption as well.

    Yet I could show some functions from Lib2 (which I am writing for Rapid Euphoria), a one-line functions that can easily manipulate any kind of complex data, with predictable results. And let others compare it to their favourite language.

    For example a function that shift-left bits of a 32-bit integer or double, which could manipulate the most complex data structure that you could imagine, as well as a single value, and return only signed values in exactly the same structure:

    Code:
    global function shl_bits(object x, integer n) 
        return or_bits(and_bits(x, M_LOW[n + 1]) * M_SHL[33 - n], #0) 
    end function
    Out of topic, if I am not wrong, as someone who lives in Singapore your English is incredible. Just wondering.

  10. #40
    Registered User shian's Avatar
    Join Date
    Oct 2019
    Location
    Israel
    Posts
    23
    Quote Originally Posted by shian View Post
    ...
    For example a function that shift-left bits of a 32-bit integer or double, which could manipulate the most complex data structure that you could imagine, as well as a single value, and return only signed values in exactly the same structure:

    Code:
    global function shl_bits(object x, integer n) 
        return or_bits(and_bits(x, M_LOW[n + 1]) * M_SHL[33 - n], #0) 
    end function
    "C++ Witch" - I've seen your website, sorry for "bashing" Python. I see that you're an expert for Python.
    And by the way, you look more like an angel then a witch... personal opinion.

    Anyway, just consider the example above, I'm not sure which language could accomplish this so easily or at all, for instance:

    Code:
    include machine2.e
    
    object x, r, key, value
    
    
    x = #FFCC0033 -- (hexadecimal)
    r = shl_bits(x, 16)
    -- r is #330000 -- (hexadecimal)
    
    
    x = "https://www.rapideuphoria311.com/"
    r = shl_bits(x, 21)
    -- r is {218103808,243269632,243269632,234881024,241172480,121634816,98566144,98566144,249561088,249561088,249561088,96468992,239075328,203423744,234881024,220200960,209715200,211812352,245366784,234881024,218103808,232783872,239075328,220200960,203423744,106954752,102760448,102760448,96468992,207618048,232783872,228589568,98566144}
    
    
    key = {11.4, -134, "Dust in the Wind"}
    value = sqrt(abs(key))
    x = {{key, value}, {"shian", {1, 3.5}}, {-3405.5, "Euphoria", 3.1}}
    r = shl_bits(x, 4) -- shift-left x elements 4 bits
    -- r is {{{176,-2144,{1088,1872,1840,1856,512,1680,1760,512,1856,1664,1616,512,1392,1680,1760,1600}},{48,176,{128,160,160,160,80,160,160,80,160,160,160,80,144,160,160,160}}},{{1840,1664,1680,1552,1760},{16,48}},{-54480,{1104,1872,1792,1664,1776,1824,1680,1552},48}}
    
    
    x = {1.4, arctan("C++ Board"), {"C++ Angel", 100}}
    x = xor_bits(append(repeat(x, 2), {30, 3e+6, {1, {2.2, {-3.3}}}}), #3F01CE3B)
    r = shl_bits(x, 16)
    -- r is {{-835059712,{-835059712,-835059712,-835059712,-835059712,-835059712,-835059712,-835059712,-835059712,-835059712},{{-830996480,-837812224,-837812224,-837091328,-830865408,-833290240,-832831488,-832700416,-833159168},-832634880}},{-835059712,{-835059712,-835059712,-835059712,-835059712,-835059712,-835059712,-835059712,-835059712,-835059712},{{-830996480,-837812224,-837812224,-837091328,-830865408,-833290240,-832831488,-832700416,-833159168},-832634880}},{-836435968,150667264,{-835059712,{-835125248,{835059712}}}}}
    
    
    -- And you could go on with *any* delusional data structure you can imagine.
    That's why I've said that Rapid Euphoria could replace 100 lines of Python; as complex as the data type is, Python will probably need more lines of code to deal with it, while in Rapid Euphoria the word "complex" does not exist.
    If I'm still exaggerating, please be kind and let me know.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Importance of english language in programming language
    By Lea Pi in forum General Discussions
    Replies: 10
    Last Post: 04-17-2015, 07:43 AM
  2. rapid histogramming
    By stabu in forum C Programming
    Replies: 6
    Last Post: 08-22-2008, 11:18 AM
  3. What's the Difference Between a Programming Language and a Scripting Language?
    By Krak in forum A Brief History of Cprogramming.com
    Replies: 23
    Last Post: 07-15-2005, 04:46 PM
  4. MS Windows Welsh Language Version Available
    By hk_mp5kpdw in forum A Brief History of Cprogramming.com
    Replies: 10
    Last Post: 12-03-2004, 04:59 PM
  5. ahhh help....rapid keypress detection
    By technoXavage in forum Game Programming
    Replies: 1
    Last Post: 12-18-2003, 01:00 PM

Tags for this Thread