Linguaggio C#

Perché pensate che non lo sia? Devo dire che più mi addentro e diventa vasto, ma piu semplice.
Considerate che adesso anche Leonardo sviluppa codice embedded per l’avionica in C# e ambiente. Net

Sicuro, nel senso detto prima, ovviamente lo e’. :wink:
Moderno non capisco cosa significhi. :confused:
Semplice da imparare … non capisco perche’ dovrebbe esserlo piu’ di altri linguaggi. :confused:

Tutto qui. Probabilmente il problema e’ solo il mio scarso comprendonio … :slight_smile:

1 Mi Piace

Ciao Emilio
Moderno penso sia riferito al fatto che è pensato per la programmazione ad oggetti.
Sicuro perchè il sistema di compilazione ed esecuzione previene gli errori.

L’unica cosa che mi lascia un po perplesso, anche se le mie informazioni sono datate, è la relativa semplicità con cui si possa decompilare un programma creato in c#.

quindi c’è sempre il rovescio della medaglia. . . .

oggi come da circa dieci anni, credo che il modo moderno per programmare sia quello a blocchi no. . . .

Ciao Sergio

Eeeeeh … in effetti temevo fosse questo il significato … :wink:

1 Mi Piace

Altro link formativo: Guida al linguaggio di programmazione C# | InfodocScuola

Forse semplice intende dire che Carbage Collector si pre occupa al posto del programmatore di gestire la memoria fisica, sgravandolo da controlli che fanno ritenere la scelta di programmare in C una fucilata alla gamba. Significa implementare codice molto più rapidamente e con la “semplicità” di gestire tutto allo stesso modo, esattamente come i blocchi di GH che sono una astrazione visibile della logica ad oggetti.
Tutto è : input, oggetto che elabora, output.

Sono in contatto con più programmatori professionisti C#, devapp, devOps, bla bla,… e mi hanno detto almeno un paio la stessa cosa:è facile, devi fare un po di esercizi poi inizi a divertirti e ci fai di tutto.

Hehe … mia era un po’ una bonaria presa in giro dei programmatori. :grinning:
Niente contro i veri programmatori, ovvio, eccetto una certa invidia … :smile:
Ma e’ comune trovare programmatori molto affezionati al loro linguaggio/text editor/IDE ecc.
Ognuno di noi ha le sue preferenze, per cui spesso si finisce in discussioni tipo … tifo sportivo. :wink:
Non per niente per queste cose e’ perfino stato coniato il termine ‘evangelista’ , anche se penso si riferisca piu’ a chi fa ‘pubblicita’’ a livello professionale o quasi…
E naturalmente tutto cio’ vale anche per molti altri ambiti, ad esempio … il CAD ? :smile: :smile: :smile:
Quanto al garbage collector direi che ormai il difficile e’ trovare un linguaggio che non ce l’abbia. :wink:
Anch’io apprezzo il C# come linguaggio, per quel poco che lo conosco. Mi ci trovo bene.
E in effetti non capisco perche’ McNeel non lo renda utilizzabile anche per gli script di Rhino
( e non solo per quelli per GH ) … mah ! :confused:

Condivido il fatto che chi studia un solo linguaggio (come un solo CAD) e lo apprende bene ci fa quello che gli serve e propugnerà per questo, ma ci sono programmatori (e anche modellatori) che hanno esperienza in più linguaggi due o tre e riescono ad essere oggettivi.
Ad esempio, l’ultimo con cui ho parlato oggi e di cui riporto le sue risposte, ha esperienza di programmazione in C++ sotto linux e in C# ovunque. Mi diceva, come tanti, che non esiste il linguaggio migliore, la risposta corretta è “dipende da cosa ci devi fare” e questo mentre confrontava i linguaggi a lui noti con il java (che non conosce se non sommariamente). Non dice che C# sia migliore, ma di fatto è più moderno e poco meno diffuso per il fatto che il Java ha una storia molto più lunga e quindi milioni di programmi sono stati realizzati con quello e serve gente che lo conosca per continuarne il supporto, ma con C# ci fai tantissime cose. Citazione a seguire:

Inviato da Lorenzo

C# é un linguaggio di programmazione safe (o thread-safe) in quanto permette di scrivere senza usare direttamente i puntatori di memoria e usa una Garbage Collector per la distruzione degli oggetti in memoria e il compilatore riesce ad identificare gli errori di runtime.https://en.m.wikipedia.org/wiki/Memory_safety

C# é un linguaggio di programmazione moderno in quanto permette un maggiore livello di astrazione (come le interfacce) rispetto a c/c++, permette funzionalità come la dependency injection o come la reflection, inoltre permette di scrivere programmi con meno codice rispetto al passato, inoltre é un linguaggio in continua evoluzione.

Veloce, c# oltre a permettere di sviluppare velocemente (in particolar modo in Windows) , le basi del linguaggio hanno una curva di apprendimento abbastanza bassa e l’esecuzione (almeno in ambienti Windows) rispetto al l’equivalente java/python é molto più efficiente.

Personalmente ho scelto di studiare C# perché:

  1. posso usarlo in GH e per la modellazione 3D,
  2. si può sviluppare su un vastissimo numero di processori e sistemi operativi
  3. si può fare sviluppo web
  4. ci sono librerie scientifiche
  5. ho da poco scoperto che si cercano laureati in ing. meccanica con conoscenze di C# in vari settori
  6. in ambito scientifico, i migliori sofware girano sotto Windows
  7. è possibile scriptare anche sotto office e soprattutto Excel, che in ambito lavorativo risulta spesso effciente.

Per il resto, non ho esperienza, ma per me che non devo fare il programmatore in senso stretto, lo trovo molto “spline” (flessibile). :wink:

ps

  1. dimenticavo: è possibile interfacciarlo con Matlab/Simulink.
    External Language Interfaces — Funzioni (mathworks.com)

Luca
se il linguaggio c# risponde alle tue necessità non vedo perché farne una polemica. Ma da questo a credere che il C#, linguaggio interpretato in runtime, sia pari per efficienza ad un programma compilato in c++ ed eseguito direttamente dalla CPU è pura utopia.

Nessuna intenzione di far polemica. Mi scuso se così sembra.
Il confronto di cui ho parlato era con il Java. Certo, “dipende” cosa devi fare… Meglio uno che l altro.

Allo stesso tempo, un algoritmo ben strutturato sarà sempre più veloce di un algoritmo mal condizionato in c++. :upside_down_face:

Calma, il java non è una ciofeca! Prova a fare qualche confronto numerico con il C# e poi ne riparliamo …

E chi lo sta dicendo? :grinning_face_with_smiling_eyes:

https://www.tiobe.com/tiobe-index/

E anche

Conosco molto bene il c++ (30 anni) , c# abbastanza (3 anni) , javascript, en po di altre cosette.
Se si vuole realizzare codice veloce allora e bene scegliere con cura gli algoritmi e le strutture dati, a paritá di codice il c++ offre una maggiore efficienza a discapito di maggiore tempo per realizzare un codice robusto.
Devo dire che adoro la semplicita’ e la velocita di scrittura del c# ma quando ti devi connettere ad altre librerie o sistemi che non siano net allora tutte le porte sono aperte con c e c++.
Per chi e alle prime armi di sicuro un linguaggio net offre maggiori soddisfazioni con minor sforzo.
M2c

P.s
Ho avuto modo di vedere del codice C# di un programma professionale per ingegneria. Beh che gli autori non abbiano mai programmato con un linguaggio a basso livello ( c , c++ etc) si vedeva dall’utilizzo di base dati erronei, infatti il programma di fatto e un po tartaruga ma con la potenza dei pc nessuno ci fa caso.

3 Mi Piace

Ciao Gerry, cosa intendi per utilizzo di base dati erronei?
E soprattutto come ti accorgi della differenza tra il programma mal realizzato e quello che poteva essere?

Di strutture dati ne esistono molti, quindi scegliere in base all’obiettivo da raggiungere e’ importante. Un occhio esperto nota subito una scelta poco felice dettato spesso da una necessita’ di portare a casa il risultato, i problemi vengono alla luce quando il codice inizia a richiedere manutenzione.

Gd

Per strutture dati intendi i database a cui l applicazione punta?
O proprio l’organizzazione dei dati in memoria senza database?

Il discorso e lungo ma per semplificare notavo un’ uso estensivo di liste e della ricerca
sulle stesse di un oggetto, se devi cercare continuamente un oggetto non vai ad usare una lista,
lo fai se non ti sei posto quanto ti costa in termini di efficienza in confronto ad un array (indicizzazione diretta) o una mappa, il fatto che comunque tutto e’ molto veloce per database medio-grandi e nessuno ci fa caso (utenti).
Alla fine e’ molto semplice se si conoscono gli strumenti messi a disposizione dal linguaggio e si usano in modo ponderato.

2 Mi Piace