r/italy Sep 12 '18

/r/italy Caffè Italia * 12/09/2018

Buongiorno cavaliere, il solito?

15 Upvotes

767 comments sorted by

View all comments

4

u/[deleted] Sep 12 '18

Mattinata a base di Python (poco) e bestemmie (molte).

E il pomeriggio non sembra promettere bene.

19

u/HolyJesusOnAToast Trentino Alto Adige Sep 12 '18

Se bestemmi con Python, non vorrei essere la Madonna quando prendi in mano C.

1

u/obscurewinter Venetian Team Sep 12 '18

I loled

1

u/[deleted] Sep 12 '18

Spero di non doverlo mai imparare.

2

u/srandtimenull Sep 12 '18

Tsk, il C è molto semplice. Sì, è un linguaggio a contatto con la macchina, a differenza del Python, ma le insidie non sono nel linguaggio in sè. Più che altro è che potendo fare letteralmente tutto, puoi anche fare un sacco di cagate.

Prova col C++11/14/17. È il mio linguaggio preferito, ma porco Didone se è un casino.

1

u/MeccAnon Puglia Sep 12 '18

Mi hai fatto venire voglia di andare a riprendermi il Ritchie e studiarmelo.

1

u/SteelRazor47 Emilia Romagna Sep 12 '18

ma le insidie non sono nel liguaggio in sè

  1. Array che decadono a puntatori appena li sfiori
  2. I const lo sono solo di nome, per gli array devi usare le fottutissime macro
  3. Macro ovunque

E queste solo le prime 3 che mi vengono in mente, mai piu toccherò un programma in C. C++17 ftw!

1

u/srandtimenull Sep 12 '18

Tutto questo c'è anche in C++ eh.

Sì, lo puoi evitare. Ma c'è.

Il C++ ha i template e la deduzione dei tipi che sono tutto tranne che immediati. O le lambda, che se uno non sa cosa sono sembrano follia.

Cos'è davvero un template? E le virtual table? Overload degli operatori realizzabili in venticinque modi diversi.

Diamond inheritance ne abbiamo?

Quanto tutto quello che ho detto influisce sulle performance in un applicazione real time?

Il C++ è un casino, ha tutti i pericoli del C e ne aggiunge nuovi. Dall'altra parte, è potentissimo, che è il motivo per cui mi piace.

1

u/SteelRazor47 Emilia Romagna Sep 12 '18

Si ok, però in C non hai altra scelta. C++ ha come requisito di mantenere compatibilità sia con le versioni precedenti che con C quindi per forza ce li ha anche lui quei problemi, ma non sei costretto a fare in quel modo. Se ti metti a studiare C++ studi C++, non C + extra.

1

u/srandtimenull Sep 12 '18

Tanto ha comunque tante altre rogne.

La diamond inheritance e la vtable sono rogne infinite se non stai attentissimo. Nel primo caso fai casini allucinanti, nel secondo uccidi le performance.

E meno male che ci sono gli smart pointer che sono una salvezza. Se memoria e performance non sono necessari...ho dovuto programmare in C++ su DSP. Un delirio.

Se ti metti a studiare C++ studi C++, non C + extra.

Ovviamente. La prima discriminante quando vedo un curriculum è leggere "Linguaggi conosciuti: C/C++". Che significa che non conosce nessuno dei due, evidentemente.

La seconda e far fare un fizz buzz. Grasse risate.