Software Development for Dummies

Confronto tra le due sintassi tra C e Python

C:
#include <stdio.h>

main() {
 
    printf("Hello World!");
 
    return 0;
 
}
Python:
print("Hello World!")

Ovviamente il Python ha una sintassi più leggibile che fa gola a molti debuttanti programmatori :D
la differenza num 1, e fondamentale, tra python e C non e' la sintassi.
in realta' la sintassi non e' mai una differenza significativa, se io e te parliamo con accento milanese o npaoletano, non cambia un gran che, siamo sempre io e te

la enorme immensa differenza tra python (e altri) e C, e' la gestione della memoria (e degli indirizzamenti in generale, interrupt e tutto cio' che e' a diretto contatto con l'hw).

In C tu indirizzi direttamente la memoria del tuo device (computer o altro), e hai totalmente tutto sulle tue spalle, allocazioni, deallocazioni, ... e un banale errore puo' completament crashare l'intero sistema operativo (ora con in nuovi sistemi, paginazioni, ecc un po meno) o il device su cui funziona

in python sei totalmenne isolato da tutti gli aspetti di gestione della memoria, non puoi fare cagate se non limitate alla tiua applicazione, non ti devi occupare di allocare zone di memoria continue per gestire array dinamici, ecc ecc

in C hai il potere quindi di potere scrivere cose tipo device drivers e altre a bassiimo livello, per esempio a livello networking. ma e' un casino.
in python esattament il contrario, sei isolato dai pasticci ma non hai il potere che hai usando C.
 
Sarò controcorrente, ma io non consiglio di partire con un linguaggio di alto livello come il Python, ma partire con un linguaggio di basso livello.
Partire da C ha il suo senso (io sono partito da C alle superiori, poi Java) ma il punto è che, secondo me, se una persona dice "bah son curioso, proviamo a vedere un po' questa programmazione" così, per diletto e divertimento, secondo me partire con una cosa ostica come C può essere ciò che ti fa allontanare da questo mondo poco dopo aver iniziato.

Mia considerazione personale sia chiaro :sizi
 
chiunque voglia avvicinarsi a quesot mondo deve prima capire cosa vuole fare. ci sono molte possibilita':
- web development
- mobile development
- embedded devices
- home automation
e mille altre

non per diventare professionisti necessariament ma per avre un chiaro obiettivo di come procedere.

le tecnologie esistenti sono tantissime, non e' possibile imparare tutto soprattutot per chi comincia.
bisogna fare focus, definire una strada iniziale.

quali tecnologie poi usare e' solo una conseguenza di che obiettivi si vogliono ragigungere.

scegliere quale linguaggio studiare per esempio e' una scelta profondamente errata; i linguaggio sono in generale orientati a determinati obiettivi
 
chiunque voglia avvicinarsi a quesot mondo deve prima capire cosa vuole fare. ci sono molte possibilita':
- web development
- mobile development
- embedded devices
- home automation
e mille altre

non per diventare professionisti necessariament ma per avre un chiaro obiettivo di come procedere.

le tecnologie esistenti sono tantissime, non e' possibile imparare tutto soprattutot per chi comincia.
bisogna fare focus, definire una strada iniziale.

quali tecnologie poi usare e' solo una conseguenza di che obiettivi si vogliono ragigungere.

scegliere quale linguaggio studiare per esempio e' una scelta profondamente errata; i linguaggio sono in generale orientati a determinati obiettivi
Esatto, però per questo io ad uno che sa 0 e vuol vedere un attimo come funziona e di che cosa si tratta, consiglierei un linguaggio facile e immediato, per riuscire a capire cosa è possibile fare per esempio

Poi nella realtà, il linguaggio è solo un mezzo per raggiungere un obiettivo, bisogna scegliere quello più adatto
 

furius

Titolare
  Supporter
Bella discussione!!
Io sono un informatico mancato :ghigno

Sono ingegnere meccanico e solo mentre facevo la tesi, nell'azienda per la quale tuttora lavoro da 20 anni, mi sono accorto di avere la passione per l'informatica!!
Ciononostante ho trovato il modo di unire ciò per cui avevo studiato con ciò che ho poi scoperto di voler fare: ho sviluppato diversi software molto verticali di supporto alla progettazione meccanica, prettamente ad uso interno aziendale. Per lo più in ambiente Visual Studio .NET e con gran utilizzo di SQL.
Poi, agli albori di Android, a tempo perso ho fatto una sbandata su JAVA ed ho pure pubblicato qualche App sul Play Store. Lì sono rimasto fregato con un sevizio di "backhand as a service" che avevo scelto per salvare i dati della mia applicazione principale, visto che dopo qualche tempo quel sevizio fu acquistato da PayPal che poco dopo decise di chiudere tutto ... A quel punto dovevo rifare tutto e c'ho mollato!

Infine qualche esperienza indiretta di applicazioni web, dove ho sviluppato un configuratore di prodotto ma non scrivendo direttamente l'applicazione web ma tramite un motore di configurazione molto interessante.

That's all.
Seguo con interesse la discussione, senza però poter dare un gran contributo specialmente sulle nuove tecnologie!
 
la differenza num 1, e fondamentale, tra python e C non e' la sintassi.
in realta' la sintassi non e' mai una differenza significativa, se io e te parliamo con accento milanese o npaoletano, non cambia un gran che, siamo sempre io e te

la enorme immensa differenza tra python (e altri) e C, e' la gestione della memoria (e degli indirizzamenti in generale, interrupt e tutto cio' che e' a diretto contatto con l'hw).

In C tu indirizzi direttamente la memoria del tuo device (computer o altro), e hai totalmente tutto sulle tue spalle, allocazioni, deallocazioni, ... e un banale errore puo' completament crashare l'intero sistema operativo (ora con in nuovi sistemi, paginazioni, ecc un po meno) o il device su cui funziona

in python sei totalmenne isolato da tutti gli aspetti di gestione della memoria, non puoi fare cagate se non limitate alla tiua applicazione, non ti devi occupare di allocare zone di memoria continue per gestire array dinamici, ecc ecc

in C hai il potere quindi di potere scrivere cose tipo device drivers e altre a bassiimo livello, per esempio a livello networking. ma e' un casino.
in python esattament il contrario, sei isolato dai pasticci ma non hai il potere che hai usando C.
Giusto, me n'ero complemente dimenticato della gestione della memoria, ove il C la devi gestire manualmente mentre in Python è tutto in automatico ??

Un'altra cosa che ho saputo del C di così complicato sono i puntatori ?
 
Partire da C ha il suo senso (io sono partito da C alle superiori, poi Java) ma il punto è che, secondo me, se una persona dice "bah son curioso, proviamo a vedere un po' questa programmazione" così, per diletto e divertimento, secondo me partire con una cosa ostica come C può essere ciò che ti fa allontanare da questo mondo poco dopo aver iniziato.

Mia considerazione personale sia chiaro :sizi
Tranquillo, massimo rispetto per la tua opinione, e visto che sei più esperto di me dovrei prenderne solo atto ?

Ti racconto che ho provato ha fare un piccolo algoritmo dove posso verificare se un determinato numero è primo o non è primo.

Risultato: In C l'ho fatto abbastanza facilmente grazie alla funzione switch, mentre in Python stavo cadendo in depressione ?
 
Alto