Nonbooks:Come mai C++ è inadatto ai bambini

Nonbooks, prontuari e libercoli anzichenò.
Vai alla navigazione Vai alla ricerca
Chiunque sia sano di mente dovrebbe sentirsi minacciato.

C++ viene spesso propinato ai minorenni durante le scuole superiori, nella convinzione che a qualcuno possa essere utile nella vita sapere che alt+shift+è generi parentesi graffe. Ciò è però sbagliato.

Ambienti di sviluppo

La gente[1] è solita utilizzare come ambiente di sviluppo il famoso Dev-C++, e di propinarlo a sua volta ai bambini, noncurante che l'ultimo aggiornamento di quest'ultimo risalga spesso a prima della nascita degli alunni.

« The official Dev-C++ hasn't been updated since 2005 »
(cpp.com intento a sputtanarsi da solo)

Sintassi

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[2]

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

Conclusioni

C++ è inadatto ai bambini, dev'essere tenuto al di fuori della loro portata, e deve essere evitato ogni tentativo da parte loro di ingerirlo.

Voci correlate

Note

  1. ^ per gente si intendono gli insegnanti di informatica di mezza Europa
  2. ^ La smetterete di lamentarvi di C++ ora, vero?