Python is overrated

“Python is overrated”.

Well, this statement may well be a bit hasty, and maybe it is. The problem is that after having used some languages I have seen that some characteristics of Python that if on one hand can be seen as amazing (coinciseness of the code), on the other hand I think they can become a double edged-sword.

In fact, behind the simplicity of Python syntax, there is always the concrete risk of doing something in a superficial way. While some languages as Java (imho C and C++ too) implement a precise idea of programming, Python gives too much freedom to the programmer.

This freedom, in the proper hands, may result in well written and coincise code, but in the wrong hands it may become a disaster.

The last is, obviously, the real problem about Python.

Python is very often recommended as first language to learn, but it is not able to offer a tangible frame within which the programmer can act. This often becomes an illusion of simplicity of the language and, finally, a less robust code (if not wrong).

While Python lives with this problem, languages as C++ or Java force the programmer to organize much better their code introducing concepts such as declarations and, in the case of C/C++, pointers.

This fact is very important for a newbie programmer.

As if that were not enough,  C and C++ allow newbie programmers to see how a data structure (e.g. linked list) is really made, something that doesn’t happen in Python, a language where someone can literally improvise something without knowing exaclty how things work.

Can simplicity be seen as a Python trait? Well, only if you really know what programming means, something that doesn’t happen when you’re a newbie.

Writing a one line hello world is not as useful as learning to declare a main function on C.

Un generatore di tornei in Python3

Ciao a tutti, in questo post vi presento un progetto che mi ha tenuto occupato un bel po’ di tempo, ovvero un generatore di tornei scritto in Python3.

Questo programma consente la generazione automatica di un torneo in tre forme:

  • eliminazione diretta;
  • gironi + eliminazione diretta;
  • campionato.

Il numero di squadre che è possibile inserire è praticamente illimitato, però ci sono delle limitazioni riguardanti l’eliminazione diretta perché è necessario che il numero di partecipanti sia potenza di due (cosa abbastanza ovvia).

Il programma funziona discretamente anche se a mio parere può essere migliorato. Qui sotto vi lascio il sorgente, se volete collaborare tramite Github cliccate qui.

 

Un clone di Frogger in Python3

In questo post vi presento una versione di Frogger creata da me con l’utilizzo di Python3 e Pygame.

Il codice è commentato, come è facile intuire mi piacerebbe migliorare alcune cose come l’aspetto estetico (utilizzando degli sprite) e la generazione dei livelli (non proprio perfetta).

Resta il fatto che si tratta di un sorgente utile da studiare per chi vuole imparare Pygame e Python, sebbene non perfetto.

Per scaricare il codice e i file utilizzati consiglio di utilizzare Github.

Valori random da una lista in Python3

Alcuni giorni fa ho avuto necessità, mentre programmavo in Python3, di un modo per scegliere in modo casuale un valore tra quelli presenti in una lista. Dopo essere partito alla ricerca di chissà quali soluzioni, alla fine ho scoperto che questa è di una semplicità disarmante.

Semplice, no?