Nonbooks:Come mai C++ è inadatto ai bambini

Nonbooks, manuali e libri di testo da oggi con il 100% in meno di carta!
Versione del 22 set 2021 alle 10:24 di FLAK-ZOSO (rosica | curriculum) (Creata pagina con "{{S}} == Confronti == C++ è noto per essere di sintassi molto semplice ed elementare. Ma provando a paragonarlo con altri linguaggi... === Programma esempio === Dato che qui...")
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

Confronti

C++ è noto per essere di sintassi molto semplice ed elementare. Ma provando a paragonarlo con altri linguaggi...

Programma esempio

Dato che qui l'analfabetismo dilaga, si farà un semplicissimo Hello World. Dato che dilagano anche le ambizioni di figa, si utilizzerà un testo particolare:

"Tua sorella me la lecca"

Modus operandi

Per convertire i vari linguaggi, dato che dilaga anche la povertà, verrà utilizzata la finestra "codifica" di Flowgorithm.

C++

#include <iostream>
#include <sstream>
#include <string>
#include <cstdlib>
#include <cmath>

using namespace std;

// Headers
string toString (double);
int toInt (string);
double toDouble (string);

int main() {
    cout << "Tua sorella me la lecca" << endl;
    return 0;
}

// The following implements type conversion functions.
string toString (double value) { //int also
    stringstream temp;
    temp << value;
    return temp.str();
}

int toInt (string text) {
    return atoi(text.c_str());
}

double toDouble (string text) {
    return atof(text.c_str());
}

Va bene, forse le funzioni di conversione standard potrebbero essere cancellate, anche se rendono il tutto molto più figo. Questo il risultato finale:

#include <iostream>
using namespace std; //Considerata dalla community "a very bad practice", ma noi ce ne fottiamo

int main() {
    cout << "Tua sorella me la lecca" << endl;
    return 0;
}

Python

print("Tua sorella me la lecca")

Oddio! Ma così è troppo facile! Proviamo qualcos'altro...

Fortran

program main
    implicit none
    print *, "Tua sorella me la lecca"

contains

    ! The following are useful functions. They could also be placed in a module for easy access.
    function realToStr(value) result(text)
        real, intent(in) :: value
        character(:), allocatable :: text
        character(100) :: buffer
        
        write(buffer, *), value
        text = trim(adjustl(buffer))
    end function realToStr

    function intToStr(value) result(text)
        integer, intent(in) :: value
        character(:), allocatable :: text
        character(100) :: buffer
        
        write(buffer, *), value
        text = trim(adjustl(buffer))
    end function intToStr

    function strToInt(text) result(value)
        character(len=*),intent(in) :: text
        integer :: value
        
        read(text,*) value
    end function strToInt

    function strToReal(text) result(value)
        character(len=*),intent(in) :: text
        real :: value
        
        read(text,*) value
    end function strToReal
end program main

La smetterete di lamentarvi di C++ ora, vero?