|
|
|
![]() |
|
Strumenti |
![]() |
#201 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
Quote:
c'e' la read di un file, un conteggio fatto anche qui su 3 righe, con concetti analoghi e una istruzione per stampare su schermo. A me sembrano uguali a parte la print. Ripeto, il C# non e' stato studiato per stampare su console. Ma cio' non toglie che lo si possa fare, anche se ovviamente l'astrazione ha protato alla creazione di un oggetto chiamato "Console", con dei metodi come WriteLine. Comunque anche io ho usato Mono per motivi professionali almeno una volta. Le richieste erano che il prodotto fosse in grado di compilare as-is sia sotto windows che sotto linux. Addirittura gli assembly (dll) erano portabili, nel senso che li si potevano copiare da un sistema all'altro. Anche noi potevamo figurare li'. Peccato poi che pero' su 100 installazioni che abbiamo fatto non una e' stata fatta sotto Linux. Tutta una questione commerciale che ci ha rotto le wallas per fare le cose portabili, inutile, con il risultato che la realizzazione sotto Windows non e' stata ovviamente cosi' bella come poteva esserlo.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
![]() |
![]() |
![]() |
#202 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
![]() Sono software sviluppati su Visual Studio e poi portati su Mono. Ritorna appunto l'identità Visual Studio <-> C#. |
|
![]() |
![]() |
![]() |
#203 | |||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() A parte questo, in Python è più leggibile perché: - non devi dichiarare il tipo delle variabili (è implicito); - hai meno simboli da usare per racchiudere espressioni & codice (e il terminatore è il fine riga, non il ";"); - per stampare, come hai notato, c'è già l'istruzione print, che in ogni caso ha una sintassi più semplice. Python è più vicino al concetto di pseudocodice. ![]() Comunque finché ci limitiamo a esempietti sarà difficile far trasparire in maniera marca la differenza di "espressività" e produttività dei due linguaggio. Quote:
Quote:
![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||
![]() |
![]() |
![]() |
#204 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
![]() |
![]() |
![]() |
#205 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
Quote:
Spero comunque che non si vada a preferire il Phyton al C# a causa del punto e virgola oppure del fatto che in applicazioni Console puoi scrivere Print al posto di Console.WriteLine. Finora quello che ho capito e' che lascerei il Phyon per Console Application, e non sono neppure convinto che sia una scelta cosi' vantaggiosa rispetto al C#. Il 10x non lo vedo ancora. Ma al lavoro io non devo fare console application. Non ne ho mai fatte in 10 anni. Oggi devo fare - WebService. - Applicazioni Client Server con Gui complesse, che chiacchierno con i WebService - WebService che chiacchierano con i database - Pagine Web che chiacchierano con i WebService - Installer e Updater olnline di applicazioni. - Applicazioni MultiThread - Applicazioni Server, quindi MultiProcess, non solo Multithread, che chiacchierano con la rete. - Applicazioni che abbracciano strettamente il Sistema Operativo per gestire oggetti di basso livello (l'anno scorso ho dovuto usare una named Pipe di Windows, per risolvere un problema in modo semplice). - Applicazioni che vanno a chiacchierare a basso livello con i device. Ultimo che mi e' capitato sempre l'anno scorso, interazione con un device di fingerprint e un device di retinal scan. Sono quasi sicuro di aver migliorato di parecchio la velocita' di scrittura, di aver minimizzato gli errori e di aver migliorato anche la leggibilita' e la manutenibilita', rispetto al C++. Ma non so se il Python mi puo' aiutare a migliorare ancora. Non sono neppure certo che Python possa risolvere questi problemi in modo altrettanto efficace. Un esempio che sto usando proprio ora. Usando tecnologie come AJAX.net e LINQ, sto preparando lo scheletro di un'applicazione che permettera' agli sviluppatori di creare pagine Web che interagiscono con i Database, in un ambiente 3 livelli, tutto da una singola classe di codice. Senza una riga di Javascript e senza una riga di SQL. Tutto fortemente tipizzato e controllato a Compile-time. fortemente tipizzato significa semplicemente che un oggetto nasce di un determinato tipo, e il tipo non cambiera' fino alla sua morte. Ma davvero in Python capita cosi' spesso dia vere l'esigenza di cambiare il tipo di un oggetto? Si puo' fare anche in javascript, ma ho imparato a starci lontano proprio per evitare problemi. Quali sarebbero i vantaggi di questo approccio? Poi sono anche dell'idea che un linguaggio da solo non serve a nulla. La parte piu' importante e' il contorno, le librerie. E il C# ha a disposizione un'immensa libreria standard usabile nativamente da tutti, subito pronta all'uso. Il FrameWork. Ma anche solo per un'applicazione come quella da cui e' partito questo thread, ma sei davvero sicuro che farla da zero in Python sia la cosa migliore? In C#, nell'assembly diagnostic (gia' nativamente a disposizione per tutti) posso leggere tantissime cose del sistema operativo, e non escludo che si possano trovare anche valori come temperature e frequenze. Non riesco a capire come faccia Python ad essere stato portato sotto .net, quando uno dei requisiti del .net e' proprio l'estremo strong-typing di tutti gli oggetti, la cui mancanza invece e' uno dei punti di forza del Python espressi nel documento che mi hai passato prima.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
![]() |
![]() |
![]() |
#206 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
![]() (Sono progetti interessantissimi per altro) Cesare, a parte gli scherzi, non credo di essere l'unico (eufemismo) ad aver notato che ultimamente il tuo zelotisimo pro-python sta raggiungendo livelli di guardia. Ogni tuo post e' una difesa di Python dagli attacchi immeritati oppure un consiglio di Python per le applicazioni piu' disparate. Io applico una regola: quando TUTTI mi dicono che sto esegerando e forse sto sbagliando mi fermo e ci ragiono. Magari e' vero, mi sto sbagliando (raro ma capita ![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#207 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Ti faccio vedere un intero gioco scritto in C su una riga sola? Non e' tanto meno leggibile di Python...
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#208 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
Avevo intenzione di proporre un esercizio quasi accademico.
Un simulatore di sistema solare, con pianeti definiti da coordinate e massa. Il simulatore dovrebbe preoccuparsi di calcolare le accellerazioni e di manutenere le velocita', tutto partendo dalla legge di Newton. Poi sarebbe anche bello stampare a video il risultato passo-passo della simulazione, disegnando dove i pianeti (e il sole) vanno a posizionarsi man mano che il tempo passa. Cosi' anche chi dice che non c'e' soluzione per il problema dei 3 pianeti sta zitto. Anche qui matematicamente si ha una soluzione, che non e' analitica, ma precisa a piacere. Proprio come le tanto elogiate funzioni analitiche, che tanto hanno lo stesso problema. sin(31) sara' tanto bella scritta cosi', ma per avere il valore numerico si devono fare gli sviluppi, con tanti passi quanti sono necessari per ottenere la precisione che si desidera. Esattamente come potrebbe essere la nostra simulazione... Stasera provo. Ho capito che in Python non ci sara' la parte grafica, fa lo stesso. Al C# gliela aggiungero', magari in un bel Thread separato, per non bloccare la finestra come capita a tutti i niubbi...
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
![]() |
![]() |
![]() |
#209 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#210 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Pixar e Dreamworks :|
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#211 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
![]() |
![]() |
![]() |
#212 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
![]() Vuoi che ti scriva il contorno che ti permette di lanciare due righe di C# da console? Ci metto mezz'ora, probabilmente c'e' anche in giro.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#213 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
No, nativo, per lavorare con XSI all'interno del loro Linux completamente customizzato. Giuro, non ci volevo credere, ma Mono e C# stanno mangiando tantissimo terreno a Python come linguaggio per programmare sotto Linux.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#214 | ||
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
- Meno simboli non vuol dire piu' leggibilita' quando l'indentazione ad esempio e' forzata e non ti permette di organizzare il codice in maniera piu' leggibile - print non e' necessariamente piu' leggibile di Write Quote:
![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
||
![]() |
![]() |
![]() |
#215 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Interactive C#:
http://www.dcs.bbk.ac.uk/~keith/research/sIDE/ http://lists.ximian.com/pipermail/mo...ly/013230.html Are you referring to a way to execute small C# code statements and have them executed as if they were within a simple program, on the fly? Because if so, then you can use the classes and methods within System.CodeDom, specifically within System.CodeDom.Compiler, to compile and execute code. So you can take a command such as "string.Compare("test","testing")" from a prompt, build it up into a simple class with an entry point, use an ICodeCompiler object (which one depends on which language) to compile the code, and then execute the assembly in memory, returning the result back to the prompt (without saving any of the code or binary assembly to file, truly on the fly). Cesare, davvero, basta ![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#216 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
![]() |
![]() |
![]() |
#217 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#218 | ||||||||||||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() Mai provato onestamente. Quote:
Quote:
Quote:
Quindi se scrivi prima a = 1 e subito dopo a = 'Pippo', a non ha cambiato tipo, ma soltanto "punta" a un oggetto diverso. Tutto qui. Quote:
IronPython, che è il porting di Python per .NET (e mantenuto dalla stessa MS ormai), unisce il meglio dei due mondi: libreria standard di Python + framework .NET. Quote:
Quote:
Non bisogna confondere la (forte o debole) tipizzazione con la "dinamicità" del linguaggio, che permette di eseguire il binding di un oggetto a una "variabile" in qualunque momento e più volte. Quote:
![]() Quote:
Sto rispondendo soltanto ad alcune cose per precisare alcuni concetti. Quote:
Quote:
Quote:
Ed era un progetto che una società svedese si vantava di avere realizzato in "appena" 6 mesi... ![]() Di esempi così potrei fartene parecchi, ma non ti direbbero nulla. Idem per i disastri che ti sono capitati con Python: non mi dicono nulla. Possiamo soltanto prendere atto che abbiamo avuto esperienze diverse. Io, da 3 anni e mezzo a questa parte, noto un notevole miglioramento della mia produttività personale. Opinione personalissima, sia chiaro, ma... per me è così: non posso certo nascondere quella che è la realtà che ho vissuto in tutto questo tempo, soltanto per far contento qualcuno. ![]() Quote:
Quote:
Anche per questo, ho evitato di rispondere all'altro messaggio. ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||||||||||||||
![]() |
![]() |
![]() |
#219 | ||||
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
Quote:
L'unica differenza sarebbe quindi che in C# non posso riusare lo stesso nome di variabile? Non mi sembra un cosi' grande limite. Una differenza potrebbe essere che il tipo di una variabile viene fissata in C# al momento della creazione dell'istanza dell'oggetto, cosa che invece mi sembra di aver capito che in Python puo' anche avvenire dopo vero? (Come in javascript, p.es.) Quote:
Finora il x10 rispetto al C# non l'ho proprio visto. Ma neppure x2 o x1 ad essere sinceri. C'e' un caso, un pattern, una situazione dove e' chiaramente piu' vantaggioso l'uso di Python? Se qualcuno me lo chiedesse tra C++ e C# saprei tirare fuori decine di esempi. L'altro problema e' questo. Quote:
A contratto in C# ce ne sono parecchi (e arrivano a 1000€ al giorno), mentre per Python non ne ho trovati. Vorrei sottolineare la differenza sui matches, non sui salari, che sono effettivamente molto simili. Questo solo per dire che oggi il mercato richiede di piu' il C#, e se devo proprio tirare la monetina per decidere cosa imparare, ho piu' speranze che mi possa servire per lavoro il C# piuttosto che il Python. Questo oggi, domani magari sara' invece diverso. Rendo merito anche che il Python si conosce di meno, quindi e' possibile che io riesca piu' facilmente a trovare lavoro se lo conosco bene. Non generalizzerei neppure qui. Ma se fossi proprio digiuno di entrambi io personalmente sceglierei C#. Quote:
Ma non vado a dire in giro che quindi e' 10 volte meglio di qualsiasi altro linguaggio, soprattutto di quelli che non conosco. Magari 10 volte meglio del C, e parecchie volte meglio del C++, ma non generalizzerei.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
||||
![]() |
![]() |
![]() |
#220 | ||
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Quote:
Quote:
Permettimi, come consigli ad altri di studiare meglio Python, dai un'occhiata meglio alle possibilita' offerte da .NET prima di fare certe affermazioni.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 27-03-2008 alle 14:02. |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:23.