|
|
|
![]() |
|
Strumenti |
![]() |
#181 | ||||||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() Quando comincerò a farlo, siete autorizzati a chiamare la neuro. ![]() Che non ho mai considerato un pessimo linguaggio mi pare. A me piacciono i linguaggi managed, solo che fra questi prediligo quelli più semplici e produttivi. ![]() Quote:
![]() Quote:
![]() Quote:
Se, una volta maturato come programmatore, dovesse sentire l'esigenza di scendere così a basso livello, nessuno gli impedisce di imparare altri dettagli e altri linguaggi. Ma al momento, come dici, è a totale digiuno e non sappiamo nemmeno se si fermerà al classico "Hello, world!"... Quote:
![]() Quote:
![]() Quote:
![]() Quote:
![]() Comunque se puoi scrivere un driver con un qualunque linguaggio .NET, sulla carta puoi benissimo farlo anche con IronPython. Poi bisogna vedere se e quanto sarebbe conveniente farlo, ma qui fermo per mancanza di esempi e/o documentazione in materia.
__________________
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 |
||||||||
![]() |
![]() |
![]() |
#182 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
Quote:
Non ho trovato ancora un esempio in cui Python possa essere preso a modello per risolvere un problema piu' velocemente o piu' "elegantemente" del C#. Mi aiuti a trovare qualcosa?
__________________
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. |
|
![]() |
![]() |
![]() |
#183 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Non riguarda proprio C#, ma intanto puoi provare a leggere questo http://www.mindviewinc.com/downloads...LovePython.zip documento di Bruce Eckel.
Per quanto riguarda la "misura" della produttività, bisognerebbe fare delle prove. Io sono disponibile, eventualmente non si riescano a trovare in giro. ![]()
__________________
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 |
![]() |
![]() |
![]() |
#184 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
Certo che paragonare un linguaggio nuovo con uno vecchio di 30 anni (il C fra poco spegne 30 candeline) non mi sembra proprio equo.
E ho anche tanto l'impressione che il sig.Eckel il C# non l'abbia mai neppure aperto. (Annoiato perche' il C# ha tolto tutte le cose interessanti del C? E quali sarebbero le cose piu' interessanti del C, quelle che il C# ha tolto e il Phyton ha invece tenuto?) Penso che il documento che mi hai passato non sia il campo giusto d'indagine. Il messaggio che mi ha passato e' che il Phyton e' un linguaggio adatto a chi non sa fare le cose e vuole farle velocemente. Non e' pero' lo scopo degli addetti ai lavori. Un addetto ai lavori che "Si dimentica come fare per leggere un file" nel linguaggio di programmazione che usa per scopo professionale, mi sa che ha sbagliato mestiere. Il C# comunque e' byte[] eccoli = File.ReadAllBytes("Pippo.dat"); // se vuoi tutti i byte del file string pippo = File.ReadAllText("Pippo.txt"); // se vuoi che ti venga invece restituita una stringa, supposto il file come file di testo. Senza aprire, chiudere, dichiarare o fare alcunche'. Se non se lo ricorda gli consiglio prima un corso di inglese, e poi di informatica. Davvero, questo x10 nei confronti del C# non lo vedo proprio.
__________________
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. Ultima modifica di gugoXX : 27-03-2008 alle 08:22. |
![]() |
![]() |
![]() |
#185 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quella presentazione è del 2001.
![]() Gli esempi che hai fatto, ma in Python: eccoli = open('Pippo.dat').read() pippo = open('Pippo.Txt').readline() Basta scriverli così come sono, e... funziona tutto. ![]() Mi faresti vedere il sorgente completo in C# per eseguire quanto hai scritto prima? ![]() Comunque sono esempietti. Vogliamo prendere qualcosa un po' complesso della banale lettura di qualche dato? Mettiamoci almeno qualche operazione di filtraggio / manipolazione, no? ![]()
__________________
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 |
![]() |
![]() |
![]() |
#186 | |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
Quote:
Codice:
using System; using System.Collections.Generic; using System.Text; using System.IO; namespace Stampofile { class Program { static void Main(string[] args) { string pippo = File.ReadAllText("Pippo.txt"); Console.WriteLine(pippo); } } } Il resto e' stato scritto da lui, appena dopo aver creato un nuovo Programma di tipo "Console Application" Per intenderci, il C# non e' stato studiato per fare Console Application, ovvero programmi su linea di comando. Il contorno sarebbe stato quasi tutto "bypasato" se il C# sapesse fare solo quello e se quindi molte di quelle cose fossero implicite. Vogliamo provare a fare la stessa cosa scrivendo in una bella Finestra o applicazione grafica il contenuto del testo, in un controllo a piacere, tipo una TextBox? Anche senza alcuna interazione utente. Parte, legge pippo.txt e mette tutto il testo su una zona a piacere di una finestra. Per condire il tutto, vogliamo poi invece provare a stampare magari, invece del testo, il numero delle 'a' che sono presenti nel testo letto? (Giusto per accogliere la tua proposta di cucinare i dati). Meglio se gli esempi li cerchi tu, io sono piu' bravo a risolvere gli esercizi piuttosto che inventarli. E comunque per me non e' che "vince" chi scrive meno righe. Non mi interessa. Secondo me vince chi scrive la cosa che si legge meglio oppure che usa un modo che difficilmente puo' portare ad errori di programmazione (peggio ancora errori che si beccano a RunTime come nel javascript)
__________________
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. |
|
![]() |
![]() |
![]() |
#187 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Una delle critiche che muovo a Python è proprio questa: permette di mescolare paradigmi diversi di programmazione, questa cosa cosa creerà problemi a chiunque debba iniziare a programmare con Python. Agli stessi livelli di chi inizia con C++. |
|
![]() |
![]() |
![]() |
#188 | |||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() Quote:
Quote:
print 'Nel testo letto ci sono %s caratteri a' % len([Ch for Ch in pippo if Ch == 'a']) ![]() Comunque se definisco io i problemi da risolvere poi sarei tacciato d'esser di parte. Che lo faccia qualcun altro, che è meglio. ![]() Quote:
![]() Quote:
Il poter esprimere dei concetti attraverso dei "paradigmi" è una semplice conseguenza logica delle PROPRIETA' che questi oggetti di Python mettono a disposizione. ![]() Il concetto mi pare decisamente diverso, non trovi? ![]() E problemi, comunque, non ne comporta. Non vedo perché dovrebbe comportarne. Se hai qualche esempio, fallo pure... ![]()
__________________
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 Ultima modifica di cdimauro : 27-03-2008 alle 09:00. |
|||||
![]() |
![]() |
![]() |
#189 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
C# e tutti i linguaggi .Net di MS sono fra i pochi che si possono identificare con l'ide. Chi programmerà in C# su Windows avrà sicuramente Visual Studio o Visual Studio Express.
Della serie: buttiamo a mare tutta quanto detto sulla leggibilità e sulla manutenibilità del codice. |
![]() |
![]() |
![]() |
#190 | ||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
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 |
||
![]() |
![]() |
![]() |
#191 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non a te o a chi è padrone di altri linguaggi, ma a chi inizia Python come primo linguaggio: ho lodato per anni Java perché ti forzava ad esplicitare il paradigma di programmazione ad oggetti anche per un Hello World. Quindi rimango coerente con il mio pensiero: visto Python permette di mescolare programmazione procedurale e programmazione ad oggetti allora non è un bene per chi inizia, mi sembra che sia un ragionamento lineare, no ?
|
![]() |
![]() |
![]() |
#192 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Davvero c'è qualcuno che usa a livello produttivo C# su piattaforme diverse da Windows ? Se c'è qualcuno lo fa solo per la comodità di non doversi imparare un altro linguaggio.
|
![]() |
![]() |
![]() |
#193 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#194 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Riccardo, mi riquoto:
Python è un linguaggio a oggetti "puro", dove con ciò intendo che qualunque cosa è un oggetto.In soldoni: con Python lavori sempre e soltanto con OGGETTI, che ti mettono a disposizione delle PROPRIETA'. In Java quando scrivi int a = 1; a NON è un oggetto. Mentre in Python a = 1 a contiene un oggetto. I paradigmi di programmazione vengono fuori esclusivamente da come il programmatore utilizza gli strumenti / costrutti sintattici / oggetti (nel caso di Python, in particolare) che il linguaggio mette a disposizione.
__________________
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 |
![]() |
![]() |
![]() |
#195 | ||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() E non esiste soltanto perché qualcuno ha deciso di imparare un altro linguaggio. Quote:
Sei abituato a un approccio procedurale e/o a oggetti, non a uno funzionale / matematico, per cui un qualunque (perché Python non è certo il solo; tutt'altro) linguaggio permette di "operare" con insiemi di dati con costrutti come quello che ho usato ti sarà sempre poco leggibile. Un matematico o una persona con una certa estrazione non la penserà certamente come te. ![]()
__________________
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 |
||
![]() |
![]() |
![]() |
#196 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
Comunque questa e' una soluzione "normale" in C#
che ritengo leggibile e di facile scrittura per quasi tutti. Codice:
string pippo = File.ReadAllText("Pippo.txt"); int t = 0; foreach (char ch in pippo) if (ch == 'a') t++; Console.WriteLine("Ecco i caratteri 'a': "+t); Restano comunque leggibili, e per chi le sa maneggiare sono anche molto potenti. Codice:
string pippo = File.ReadAllText("Pippo.txt"); int res=pippo.Where(u => u == 'a').Count(); Console.WriteLine("Ecco qui di nuovo i caratteri 'a': "+ res); Prese pippo, estrai tutti i caratteri di pippo. Un carattere u e' da estrarre se e solo se u e' uguale ad 'a'. (E fino a li' abbiamo ancora una stringa). Poi estrai invece il conteggio. Il conteggio restituisce un intero. Ovviamente si puo' mettere anche qui tutto sulla stessa riga se vuoi, ma a me non piace proprio per nulla. Quale e' il vantaggio di farlo? Scrivo piu' in fretta? Io questa la boccio, e se mi permetti boccio anche la tua che non ha avuto voglia di scrivere almeno 2 righe. Codice:
Console.WriteLine("Ecco qui di nuovo i caratteri 'a': "+ File.ReadAllText("Pippo.txt").Where(u => u == 'a').Count() ); 1 riga = 1 concetto Se una riga stampa, non la faccio contare. Se una riga conta, non la faccio leggere da file.
__________________
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. |
![]() |
![]() |
![]() |
#197 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
|
[quote=cdimauro;21740061]In Java quando scrivi
int a = 1; a NON è un oggetto. [/code] in C' si'. Anche a e' un oggetto.
__________________
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. |
![]() |
![]() |
![]() |
#198 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Codice:
pippo = open('Pippo.txt').read() t = 0 for ch in pippo: if ch == 'a': t += 1 print "Ecco i caratteri 'a': ", t ![]()
__________________
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 |
![]() |
![]() |
![]() |
#199 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Certo, mi riferivo proprio a Mono. Chi è tanto masochista da usare Mono su linux a livello produttivo ? Ultima modifica di cionci : 27-03-2008 alle 09:27. |
|
![]() |
![]() |
![]() |
#200 | ||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
![]() In Python hai la possibilità, combinando gli oggetti che ti mette a disposizione, di simulare diversi paradigmi di programmazione. 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 |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:57.