• Re: Tiobe Index: Prolog to Become Most Popular Langugage

    From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Fri Oct 13 03:55:58 2023
    From Newsgroup: comp.lang.prolog

    How it started:
    Wirth Interview: Java and C# will break on their own weight
    Elena Trichina for the ACM on 13 March, 2018 in Zürich, Switzerland https://www.youtube.com/watch?v=DRkfqiF46MQ
    How its going:
    October Headline: C# is getting closer to Java
    TIOBE Index for October 2023
    https://www.tiobe.com/tiobe-index/
    LoL
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Fri Oct 13 04:00:59 2023
    From Newsgroup: comp.lang.prolog


    Now I have to recover from a little burn out, caused
    by making the Dogelog Player for Java version.
    But this version opens a new door, since all that was
    done was adding types to the JavaScript version, so
    every let variable declaration was replaced by type variable
    declaration and so on. But if I am lucky, and if I can
    recover and find a nice development environment,
    one could do a C# target for Dogelog Player, and even
    run Dogelog Player inside some Unity 2D/3D Game
    whatever. Doing the C# target is some annonying
    monkey work, doesn't need much brain, just translate the
    Java into C#. But one has to find the motivation and
    resources to do such monkey work. But its definitively
    on the to do list, to turn the 3 Amigos (JavaScript, Python
    and Java) into 4 Amigos (JavaScript, Python, Java and C#).
    Mild Shock schrieb am Freitag, 13. Oktober 2023 um 12:55:59 UTC+2:
    How it started:

    Wirth Interview: Java and C# will break on their own weight
    Elena Trichina for the ACM on 13 March, 2018 in Zürich, Switzerland https://www.youtube.com/watch?v=DRkfqiF46MQ

    How its going:

    October Headline: C# is getting closer to Java
    TIOBE Index for October 2023
    https://www.tiobe.com/tiobe-index/

    LoL
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Fri Oct 13 18:25:38 2023
    From Newsgroup: comp.lang.prolog


    Microsoft is so lucky right now, not only C#
    has momentum, they can also say Candy Crush
    Saga is now their own! LoL
    Microsoft’s $69 billion Activision Blizzard takeover approved https://www.youtube.com/watch?v=6HnkwC4TelM
    Mild Shock schrieb am Freitag, 13. Oktober 2023 um 13:01:01 UTC+2:
    Now I have to recover from a little burn out, caused
    by making the Dogelog Player for Java version.
    But this version opens a new door, since all that was

    done was adding types to the JavaScript version, so
    every let variable declaration was replaced by type variable
    declaration and so on. But if I am lucky, and if I can

    recover and find a nice development environment,
    one could do a C# target for Dogelog Player, and even
    run Dogelog Player inside some Unity 2D/3D Game

    whatever. Doing the C# target is some annonying
    monkey work, doesn't need much brain, just translate the
    Java into C#. But one has to find the motivation and

    resources to do such monkey work. But its definitively
    on the to do list, to turn the 3 Amigos (JavaScript, Python
    and Java) into 4 Amigos (JavaScript, Python, Java and C#).
    Mild Shock schrieb am Freitag, 13. Oktober 2023 um 12:55:59 UTC+2:
    How it started:

    Wirth Interview: Java and C# will break on their own weight
    Elena Trichina for the ACM on 13 March, 2018 in Zürich, Switzerland https://www.youtube.com/watch?v=DRkfqiF46MQ

    How its going:

    October Headline: C# is getting closer to Java
    TIOBE Index for October 2023
    https://www.tiobe.com/tiobe-index/

    LoL
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Tue Oct 17 14:24:03 2023
    From Newsgroup: comp.lang.prolog

    People are flocking to C#
    Even the Dutch Governement is using it:

    private static string GetPercentageRounds(double percentage)
    {
    if (percentage == 0)
    return "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪";
    if (percentage > 0.0 && percentage <= 0.1)
    return "🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪";
    if (percentage > 0.1 && percentage <= 0.2)
    return "🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪";
    if (percentage > 0.2 && percentage <= 0.3)
    return "🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪";
    if (percentage > 0.3 && percentage <= 0.4)
    return "🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪";
    if (percentage > 0.4 && percentage <= 0.5)
    return "🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪";
    if (percentage > 0.5 && percentage <= 0.6)
    return "🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪";
    if (percentage > 0.6 && percentage <= 0.7)
    return "🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪";
    if (percentage > 0.7 && percentage <= 0.8)
    return "🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪";
    if (percentage > 0.8 && percentage <= 0.9)
    return "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪";

    return "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵";
    }


    https://github.com/MinBZK/woo-besluit-broncode-digid-app/blob/ad2737c4a039d5ca76633b81e9d4f3f9370549e4/Source/DigiD.iOS/Services/NFCService.cs#L182

    By way of:
    https://twitter.com/JeroenFrijters/status/1615204074588180481

    LoL--- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Wed Oct 18 17:22:52 2023
    From Newsgroup: comp.lang.prolog

    Meanwhile Racket:

    #lang yaml-exp racket/base
    - define:
    - fibbi: [x]
    - if:
    - <=:
    - x
    - 1
    - x
    - +:
    - fibbi:
    - -:
    - x
    - 1
    - fibbi:
    - -:
    - x
    - 2
    - displayln:
    - fibbi: [10] https://racket.discourse.group/t/yaml-exp-write-s-expressions-in-yaml/2398

    By way of:
    https://twitter.com/samth/status/1714478992017756355

    LoL

    Mild Shock schrieb:
    People are flocking to C#
    Even the Dutch Governement is using it:

    private static string GetPercentageRounds(double percentage)
    {
    if (percentage == 0)
    return "⚪⚪⚪⚪⚪⚪⚪⚪⚪⚪";
    if (percentage > 0.0 && percentage <= 0.1)
    return "🔵⚪⚪⚪⚪⚪⚪⚪⚪⚪";
    if (percentage > 0.1 && percentage <= 0.2)
    return "🔵🔵⚪⚪⚪⚪⚪⚪⚪⚪";
    if (percentage > 0.2 && percentage <= 0.3)
    return "🔵🔵🔵⚪⚪⚪⚪⚪⚪⚪";
    if (percentage > 0.3 && percentage <= 0.4)
    return "🔵🔵🔵🔵⚪⚪⚪⚪⚪⚪";
    if (percentage > 0.4 && percentage <= 0.5)
    return "🔵🔵🔵🔵🔵⚪⚪⚪⚪⚪";
    if (percentage > 0.5 && percentage <= 0.6)
    return "🔵🔵🔵🔵🔵🔵⚪⚪⚪⚪";
    if (percentage > 0.6 && percentage <= 0.7)
    return "🔵🔵🔵🔵🔵🔵🔵⚪⚪⚪";
    if (percentage > 0.7 && percentage <= 0.8)
    return "🔵🔵🔵🔵🔵🔵🔵🔵⚪⚪";
    if (percentage > 0.8 && percentage <= 0.9)
    return "🔵🔵🔵🔵🔵🔵🔵🔵🔵⚪";

    return "🔵🔵🔵🔵🔵🔵🔵🔵🔵🔵";
    }


    https://github.com/MinBZK/woo-besluit-broncode-digid-app/blob/ad2737c4a039d5ca76633b81e9d4f3f9370549e4/Source/DigiD.iOS/Services/NFCService.cs#L182

    By way of:
    https://twitter.com/JeroenFrijters/status/1615204074588180481

    LoL


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Thu Oct 19 01:10:28 2023
    From Newsgroup: comp.lang.prolog

    Just in case this gets censored. I am already
    censored on comp.lang.python. But currently
    various programming languages just make my day,

    first C#, then racket, now python, its infinite LoL:

    symbolic link python script Windows versus Linux https://github.com/python/cpython/issues/110896#issuecomment-1769528819

    I don't have a Python discourse account, but I
    am happy that you discuss the problem elsewhere,
    might take a couple of years until the issue has been
    elaborated enough including vanity satisfaction,
    so closing this ticket right now.

    Maybe I am advocating a more straight engineering
    approach, and this shows that I am not a Pythonista.
    Could be the merrit of Python that it cherishes a
    different discussion culture, that then results in
    PEPs that don't leave an open questions at all.

    Go, go, Python, you are doing good!

    P.S.: Or translated: Was thinking there is already a
    push underway, fixing the issue, didn't expect a
    coffee party.

    Mild Shock schrieb:
    How it started:

    Wirth Interview: Java and C# will break on their own weight
    Elena Trichina for the ACM on 13 March, 2018 in Zürich, Switzerland https://www.youtube.com/watch?v=DRkfqiF46MQ

    How its going:

    October Headline: C# is getting closer to Java
    TIOBE Index for October 2023
    https://www.tiobe.com/tiobe-index/

    LoL


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Wed Oct 18 18:22:37 2023
    From Newsgroup: comp.lang.prolog

    The discrepancy between Windows and Linux can be located:
    On Windows:
    if (GetFullPathNameW(path0,
    Py_ARRAY_LENGTH(fullpath),
    fullpath,
    &ptemp)) { https://github.com/python/cpython/blob/main/Python/pathconfig.c#L452
    On Linux:
    nr = _Py_wreadlink(path0, link, Py_ARRAY_LENGTH(link)); https://github.com/python/cpython/blob/main/Python/pathconfig.c#L413 Unfortunately GetFullPathNameW() doesn’t compute a real path,
    it only computes a cannonical path. And I am afraid, I cannot suggest a replacement for GetFullPathNameW(), maybe something with GetFinalPathNameByHandleW()? But now that I have inspected
    the source code, I have also doubts about the linux solutions.
    Could it be that the linux solutions doesn’t normalize the path?
    Might give a different result from the Python os.path.realpath?
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Wed Oct 18 18:23:13 2023
    From Newsgroup: comp.lang.prolog


    Wouldn’t it be possible to write such launcher stuff in Python itself. Leading to less code and more uniform semantics? Or is there
    a chicken egg problem? Just currious.
    Mild Shock schrieb am Donnerstag, 19. Oktober 2023 um 03:22:39 UTC+2:
    The discrepancy between Windows and Linux can be located:

    On Windows:

    if (GetFullPathNameW(path0,
    Py_ARRAY_LENGTH(fullpath),
    fullpath,
    &ptemp)) {

    https://github.com/python/cpython/blob/main/Python/pathconfig.c#L452

    On Linux:

    nr = _Py_wreadlink(path0, link, Py_ARRAY_LENGTH(link));

    https://github.com/python/cpython/blob/main/Python/pathconfig.c#L413

    Unfortunately GetFullPathNameW() doesn’t compute a real path,
    it only computes a cannonical path. And I am afraid, I cannot suggest a replacement for GetFullPathNameW(), maybe something with

    GetFinalPathNameByHandleW()? But now that I have inspected
    the source code, I have also doubts about the linux solutions.
    Could it be that the linux solutions doesn’t normalize the path?

    Might give a different result from the Python os.path.realpath?
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Fri Oct 27 14:25:39 2023
    From Newsgroup: comp.lang.prolog

    Its 2023 now, and we have ChatGPT, nevertheless some software
    still behaves as if the transitor was invented 24 hours ago. Currently
    there is a kind of “inconsistency”, since in the top-level I can do:
    /* SWI-Prolog 9.1.17, Windows */
    ?- ensure_loaded('<dir>\\foo\\bar').
    true.
    But when I use the command line it doesn’t work:
    swipl.exe <dir>\\foo\\bar
    ERROR: Prolog initialisation failed:
    ERROR: file `'<dir>//foo//bar'' does not exist
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Fri Oct 27 14:28:14 2023
    From Newsgroup: comp.lang.prolog


    Also Python couldn't resolve its symlink issue yet. They
    use some fugly #ifdef hell C code that nobody understands
    anymore on first sight, even not Python core developers, not to
    mention that nobody is able to maintain it.
    As a result they have a totally messed up launcher, inconsistent
    between Linux and Windows. On the other hand for example in
    Dogelog player, since it wants to be 100% Prolog, the launcher is
    written in Prolog itself. It is written with the assumption that it
    has a full Prolog core available:
    % sys_launch
    sys_launch :-
    current_prolog_flag(argv, L),
    sys_launch(L).
    % sys_launch(+List)
    sys_launch([]) :- % no input script, launch top-level
    sys_banner,
    sys_toplevel.
    sys_launch([H|T]) :- % input script, run it and exit
    set_prolog_flag(argv, T),
    ensure_loaded(H).
    Mild Shock schrieb am Freitag, 27. Oktober 2023 um 23:25:41 UTC+2:
    Its 2023 now, and we have ChatGPT, nevertheless some software
    still behaves as if the transitor was invented 24 hours ago. Currently
    there is a kind of “inconsistency”, since in the top-level I can do:

    /* SWI-Prolog 9.1.17, Windows */
    ?- ensure_loaded('<dir>\\foo\\bar').
    true.
    But when I use the command line it doesn’t work:

    swipl.exe <dir>\\foo\\bar
    ERROR: Prolog initialisation failed:
    ERROR: file `'<dir>//foo//bar'' does not exist
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Fri Oct 27 14:30:09 2023
    From Newsgroup: comp.lang.prolog


    But having a 100% Prolog written launcher could be
    indeed tricky. There might be some chicken egg
    problems involved. The approach in Dogelog player
    is cross compilation of the launcher into the system.
    So you can have any sort of launcher, complex or simple.
    For example formerly Jekejeke Prolog has a little bit
    more complicated launcher since it has some Prolog
    option processing, and it has a hard time to detect whether
    an ansi colorable console is connected, so it switches
    to coloring when it does the top-level.
    Mild Shock schrieb am Freitag, 27. Oktober 2023 um 23:28:16 UTC+2:
    Also Python couldn't resolve its symlink issue yet. They
    use some fugly #ifdef hell C code that nobody understands
    anymore on first sight, even not Python core developers, not to
    mention that nobody is able to maintain it.

    As a result they have a totally messed up launcher, inconsistent
    between Linux and Windows. On the other hand for example in
    Dogelog player, since it wants to be 100% Prolog, the launcher is
    written in Prolog itself. It is written with the assumption that it
    has a full Prolog core available:

    % sys_launch
    sys_launch :-
    current_prolog_flag(argv, L),
    sys_launch(L).

    % sys_launch(+List)
    sys_launch([]) :- % no input script, launch top-level
    sys_banner,
    sys_toplevel.
    sys_launch([H|T]) :- % input script, run it and exit
    set_prolog_flag(argv, T),
    ensure_loaded(H).
    Mild Shock schrieb am Freitag, 27. Oktober 2023 um 23:25:41 UTC+2:
    Its 2023 now, and we have ChatGPT, nevertheless some software
    still behaves as if the transitor was invented 24 hours ago. Currently there is a kind of “inconsistency”, since in the top-level I can do:

    /* SWI-Prolog 9.1.17, Windows */
    ?- ensure_loaded('<dir>\\foo\\bar').
    true.
    But when I use the command line it doesn’t work:

    swipl.exe <dir>\\foo\\bar
    ERROR: Prolog initialisation failed:
    ERROR: file `'<dir>//foo//bar'' does not exist
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Thu Dec 21 07:47:31 2023
    From Newsgroup: comp.lang.prolog

    Dynamic programming can be so much fun. Especially with Prolog!
    The Wikipedia page mentions Dijsktras shortest path as a dynamic
    programming problem. I am not yet 100% sure, dynamic programming
    is not known to also deal with looping problems?
    Just for fun, what one finds also on the Wikipedia page about
    dynamic programming. The Wikipedia page doesn’t really give the
    below solution, but it is what it is, fibonacci with mode directed
    tabling as a dynamic programming problem:
    :- table fib(_, sum).
    fib(0, 1).
    fib(1, 1).
    fib(N, X) :- N > 1, M is N-2, fib(M, X).
    fib(N, X) :- N > 1, M is N-1, fib(M, X).
    Doesn’t loop anyway, seems to work fine:
    /* SWI-Prolog 9.1.21 */
    ?- fib(99, X).
    X = 354224848179261915075.
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Mon Dec 25 08:18:16 2023
    From Newsgroup: comp.lang.prolog

    Rule 50 draws a christmas tree for you:

    Step 0: .....S.....
    Step 1: ....O.O....
    Step 2: ...O.O.O...
    Step 4: ..O.O.O.O..
    Step 5: .O.O.O.O.O.
    Etc...

    Wishing you a peaceful and pleasant time!

    P.S.: Got some time on your hands for procrastination? Try this:

    https://adventofcode.com/2023/day/21
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Jan 5 23:59:43 2024
    From Newsgroup: comp.lang.prolog


    R.I.P. Niklaus Wirth - 01.01.2024, Age 89 https://ethz.ch/de/news-und-veranstaltungen/eth-news/news/2024/01/der-computerpionier-niklaus-wirth-ist-gestorben.html

    Mild Shock schrieb:
    How it started:

    Wirth Interview: Java and C# will break on their own weight
    Elena Trichina for the ACM on 13 March, 2018 in Zürich, Switzerland https://www.youtube.com/watch?v=DRkfqiF46MQ

    How its going:

    October Headline: C# is getting closer to Java
    TIOBE Index for October 2023
    https://www.tiobe.com/tiobe-index/

    LoL


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jan 6 07:29:42 2024
    From Newsgroup: comp.lang.prolog

    Everybody loved him. And thats a solid joke:

    "Because Europeans pronounce his name properly,
    while Americans pronounce it as "nickel's worth", he is
    called by name in Europe and called by value in America."

    Maybe even recited by himself from time to time?

    Mild Shock schrieb:

    R.I.P. Niklaus Wirth - 01.01.2024, Age 89 https://ethz.ch/de/news-und-veranstaltungen/eth-news/news/2024/01/der-computerpionier-niklaus-wirth-ist-gestorben.html


    Mild Shock schrieb:
    How it started:

    Wirth Interview: Java and C# will break on their own weight
    Elena Trichina for the ACM on 13 March, 2018 in Zürich, Switzerland
    https://www.youtube.com/watch?v=DRkfqiF46MQ

    How its going:

    October Headline: C# is getting closer to Java
    TIOBE Index for October 2023
    https://www.tiobe.com/tiobe-index/

    LoL



    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jan 6 07:45:48 2024
    From Newsgroup: comp.lang.prolog


    Ok, interesting, he would have made it into age 90 on 15. February https://dev.to/anogneva/day-when-skynet-becomes-self-aware-and-69-reasons-to-chill-out-with-colleagues-part-1-h5h

    January 1 — Brian Kernighan's Birthday
    January 10 — Donald Ervin Knuth's Birthday
    January 14 — Nathaniel Rochester's Birthday
    January 31 — Guido van Rossum's Birthday
    February 4 — Ken Thompson's Birthday
    February 15 — Niklaus Wirth's Birthday
    February 22 — Thomas E. Kurtz's Birthday
    February 24 — Steve Jobs' Birthday

    Mild Shock schrieb:
    Everybody loved him. And thats a solid joke:

    "Because Europeans pronounce his name properly,
    while Americans pronounce it as "nickel's worth", he is
    called by name in Europe and called by value in America."

    Maybe even recited by himself from time to time?

    Mild Shock schrieb:

    R.I.P. Niklaus Wirth - 01.01.2024, Age 89
    https://ethz.ch/de/news-und-veranstaltungen/eth-news/news/2024/01/der-computerpionier-niklaus-wirth-ist-gestorben.html


    Mild Shock schrieb:
    How it started:

    Wirth Interview: Java and C# will break on their own weight
    Elena Trichina for the ACM on 13 March, 2018 in Zürich, Switzerland
    https://www.youtube.com/watch?v=DRkfqiF46MQ

    How its going:

    October Headline: C# is getting closer to Java
    TIOBE Index for October 2023
    https://www.tiobe.com/tiobe-index/

    LoL




    --- Synchronet 3.20a-Linux NewsLink 1.114