Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-03-2008, 13:57   #61
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da guyver Guarda i messaggi
allora se un programmatore ha i cosiddetti OO
può usare il goto per velocizzare il codice...?
Più che il codice velocizza la rotazione dei cosidetti OO ai suoi colleghi...
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 14:20   #62
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
hai deciso di scatenare le ire di cdimauro per caso?
Le mie ire? Come dicevo, sono SECOLI che non uso il goto in un'applicazione scritta con un linguaggio ad alto livello.

Volete usare i goto? E chi se ne frega: cazzi vostri e di chi poi dovrà leggere e manutere il codice.

Insomma, "beati" gli sviluppatori che lavorano a Linux...
__________________
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 14:35   #63
guyver
Bannato
 
L'Avatar di guyver
 
Iscritto dal: May 2001
Città: Versilia
Messaggi: 1503
se era riferito a me...
io non uso il goto nn programmo proprio nulla, purtroppo, era semplice curiosità

ciao

Ultima modifica di guyver : 13-03-2008 alle 14:44.
guyver è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 14:37   #64
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
No, il mio era un discorso generale, volto a chi lo usa. Tu non lo usi, e quindi non ci rientri.
__________________
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
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 17:48   #65
arara
Senior Member
 
L'Avatar di arara
 
Iscritto dal: Aug 2007
Messaggi: 1270
Quote:
Originariamente inviato da kernel::panic Guarda i messaggi
Lo stesso kernel di linux ne fa uso (http://kerneltrap.org/node/553/2131); probabilmente anche quello di win ma, essendo closed, non ci è dato saperlo
Su Linux vengono usati circa 40000 goto in tutto, su un sorgente con più di 6 milioni di LOC non sono cosi tanti.
Scorrendo velocemente la lista sono quasi tutti:
goto err
goto fail
goto out
che portano a eseguire qualche riga di codice alla fine della funzione. Vengono evidentemente usati per gestire il cleanup. Non avendo eccezioni o clausole with non ci sono molte alternative, a meno di preferire 12 livelli di indentazione.
Inoltre la maggior parte del codice è costituito da driver, in un ambito cosi a basso livello non è certo l'uso di qualche goto che riduce la leggibilità.

Finche si trovano in un kernel e nei driver la cosa non mi stupisce più di tanto, ma in .Net un po si, soprattutto se Mono a quanto pare riesce a farne a meno.
arara è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 18:08   #66
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci Guarda i messaggi
Fai vedere un goto a fek e ti ritrovi a mangiare per dieci mesi con la cannuccia
Non c'e' pericolo, fra una scusa e l'altra non scrive una riga di codice in Diamonds da mesi; le sue ditine sono al sicuro

L'utima volta che ho usato un goto, vediamo, ah si', avevo otto anni. A nove ho smesso
fek è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 18:11   #67
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104 Guarda i messaggi
evidentemente è più di vent'anni che programmi solo in piattaforme managed (fammi indovinare, Python? ). a me quando programmo in C++ (per farti contento non ho detto "C o C++", ho detto direttamente "C++" ) i goto risparmiano molte linee di codice che altrimenti andrebbe ripetuto più volte; trattandosi perlopiù di codice di cleanup i goto non li uso per niente negli ambienti managed, dove il 99,99% del cleanup viene fatto grazie al garbage collector.
Se impari a usare i distruttori e/o le eccezioni risparmi ancora piu' righe di codice. Mai scritto un goto in vita mia in C++.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 18:12   #68
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104 Guarda i messaggi
due valide soluzioni al problema sono:
1) invertire tutti gli if che controllano i fallimenti in modo tale da innestarli tutti quanti e rendere uniche le linee di cleanup; ma 12 livelli di indentazione francamente non mi garbano
2) una dozzina di labels in cui distribuire le varie linee di codice di cleanup; non posso farci niente, è l'unica
3) Usare ObjectGuard e mettere il codice di cleanup nel distruttore. Go learn C++.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 18:24   #69
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104 Guarda i messaggi
questa soluzione contiene del codice ridondante: le condizioni di fallimento vengono controllate due volte (durante il proseguimento dell'algoritmo e durante il cleanup). io le duplicazioni di codice le odio sia quando programmo in maniera "bella" e pulita in un ambiente OO e managed sia quando faccio porcate con Win32
Ooops:

Codice:
try
{
            ScopedFileWrapper file(fopen("c:\\pippo.txt","w+"));
            ScopedMutexWrapper mutex(CreateMutex(.....));
            auto_ptr<int> buffer(new int[1234]);
		
	........
} // tutti i distruttori sono inovcati qui in ordine inverso automaticamente anche in presenza di eccezioni
catch(const exception &ex)
{
	CLog::Put() << "E' successo un bel casino: " << ex.what() << endl;
}
E passa la paura del goto...

PS. In C++ NON si usa la notazione ungherese

PS2. Linus, go learn C++, n00b.

edit: non avevo letto il post di marco.r

Ultima modifica di fek : 13-03-2008 alle 18:28.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 18:40   #70
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da fek Guarda i messaggi
3) Usare ObjectGuard e mettere il codice di cleanup nel distruttore. Go learn C++.
Che è ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 18:44   #71
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci Guarda i messaggi
Che è ?
Altro nome per gli ScopedObject. Sono oggetti che prendono una risorsa e la liberano quando si esce dallo scope.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 19:15   #72
kernel::panic
Registered User
 
Iscritto dal: Feb 2008
Messaggi: 77
Oggi cercando alcune cose su internet di C# mi sono imbattuto nel blog di un tizio che diceva di usare (e incitava a farlo!) il goto per uscire dai cicli annidati!!

PS: Visto che nel C# per usare i puntatori bisogna dichiarare il blocco di codice unsafe {...}, dovrebbero obbligare a fare lo stesso per usare il goto.
kernel::panic è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 19:25   #73
kernel::panic
Registered User
 
Iscritto dal: Feb 2008
Messaggi: 77
Quote:
Originariamente inviato da arara Guarda i messaggi
Su Linux vengono usati circa 40000 goto in tutto, su un sorgente con più di 6 milioni di LOC non sono cosi tanti.
Bhe, facendo la divisione si ottiene una media di 1 goto su 150 LOC... parecchio direi ... contando che molte LOC sono graffe o istruzioni messe su più righe (forse ci sono più goto che while{} o do{} while).

Cmq visto che il kernel linux gira bene, basta chiudere un'occhio
kernel::panic è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 19:40   #74
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7260
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Le mie ire? Come dicevo, sono SECOLI che non uso il goto in un'applicazione scritta con un linguaggio ad alto livello.

Volete usare i goto? E chi se ne frega: cazzi vostri e di chi poi dovrà leggere e manutere il codice.

Insomma, "beati" gli sviluppatori che lavorano a Linux...
nono.. io sono contro i GOTO più che altro direi beati gli sviluppatori che lavorano al framework .NET
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 20:03   #75
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
in ogni caso secondo me il framework .NET è un pochino offuscato da qualche software.. oppure la mente di chi l'ha scritto è offuscata
o magari semplicemente si tratta di ottimizzazioni create in automatico a partire dal sorgente originale
imho è sicuramente così.
Anche in java, utilizzando diversi decompilatori, in certi casi si ottiene nel codice una label e delle GOTO che ovviamente in java non hanno senso.
Quindi è un artefatto derivante dalla non perfetta decompilazione del bytecode piuttosto che un'incapacità dei programmatori che hanno scritto .Net
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 21:37   #76
-Slash
Senior Member
 
L'Avatar di -Slash
 
Iscritto dal: Mar 2006
Messaggi: 2516
Quote:
Originariamente inviato da arara Guarda i messaggi
Su Linux vengono usati circa 40000 goto in tutto, su un sorgente con più di 6 milioni di LOC non sono cosi tanti.
Scorrendo velocemente la lista sono quasi tutti:
goto err
goto fail
goto out
che portano a eseguire qualche riga di codice alla fine della funzione. Vengono evidentemente usati per gestire il cleanup. Non avendo eccezioni o clausole with non ci sono molte alternative, a meno di preferire 12 livelli di indentazione.
Inoltre la maggior parte del codice è costituito da driver, in un ambito cosi a basso livello non è certo l'uso di qualche goto che riduce la leggibilità.

Finche si trovano in un kernel e nei driver la cosa non mi stupisce più di tanto, ma in .Net un po si, soprattutto se Mono a quanto pare riesce a farne a meno.
quoto tutto...

per quanto riguarda microsoft beh, se lo usano come ho letto anche per uscire dai cicli for direi che è allucinante
-Slash è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 22:01   #77
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da -Slash Guarda i messaggi
quoto tutto...

per quanto riguarda microsoft beh, se lo usano come ho letto anche per uscire dai cicli for direi che è allucinante

Quote:
Originariamente inviato da TigerShark
Anche in java, utilizzando diversi decompilatori, in certi casi si ottiene nel codice una label e delle GOTO che ovviamente in java non hanno senso.
Quindi è un artefatto derivante dalla non perfetta decompilazione del bytecode piuttosto che un'incapacità dei programmatori che hanno scritto .Net
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 22:20   #78
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da fek Guarda i messaggi
Se impari a usare i distruttori e/o le eccezioni risparmi ancora piu' righe di codice.
delle eccezioni si è già discusso: se la CreateFile o la SuspendThread o quello che ti pare mi ritornano codici di errore questi per forza di cose vanno esaminati con un if, anche se poi questo if lo uso per lanciare l'eccezione in caso di errore.

per quanto riguarda l'uso dei distruttori: non so come giustificarlo alle mie teorie di ingegneria del software (tipo caso di dissonanza cognitiva ), ma creare una classe apposta per ogni tipo di risorsa che alloco mi sembra costituire una perdita di tempo molto maggiore rispetto al design basato sui goto o anche semplicemente sul codice di cleanup ridondante. per quanto riguarda la leggibilità dite quello che vi pare ma i miei programmi sono piccoli, e nel mio piccolo tutti sti problemi di leggibilità non li vedo...
anche perché ormai il mio codice Win32 è divenuto molto stereotipato e quindi lo capisco perfettamente.

insomma non credo che ne valga la pena, anche se non ho provato e anche se in teoria ne vale sempre la pena; tipico caso di dissonanza cognitiva
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 22:27   #79
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da fek Guarda i messaggi
Ooops:

Codice:
try
{
            ScopedFileWrapper file(fopen("c:\\pippo.txt","w+"));
            ScopedMutexWrapper mutex(CreateMutex(.....));
            auto_ptr<int> buffer(new int[1234]);
		
	........
} // tutti i distruttori sono inovcati qui in ordine inverso automaticamente anche in presenza di eccezioni
catch(const exception &ex)
{
	CLog::Put() << "E' successo un bel casino: " << ex.what() << endl;
}
E passa la paura del goto...
la fai facile, ma le classi ScopedFileWrapper e ScopedMutexWrapper chi le scrive?
se stai per dire che me le scrive MFC/ATL, o wxWidgets, o qualche altro framework, mi va benissimo: infatti in quei casi i goto non li uso


Quote:
PS. In C++ NON si usa la notazione ungherese
a volte la uso per allinearmi alle nomenclature usate da Microsoft, ma mi sfugge dov'è che l'ho usata in questo topic
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2008, 02:51   #80
DioBrando
Senior Member
 
Iscritto dal: Jan 2003
Città: Milano - Udine
Messaggi: 9418
Quote:
Originariamente inviato da 71104 Guarda i messaggi
io vorrei solo dire di evitare di prendere per oro colato le puttanate che diceva Dijkstra
per carità, un grande matematico e il suo famoso algoritmo è di importanza cruciale, ma l'ingegneria del software evidentemente è un'altra cosa
Dijkstra ha "solo" enucleato in un contesto di IngSW ancora embrionale quello che Bohm e Jacopini avevano dimostrato matematicamente 2 anni prima e cioè che qualsiasi algoritmo può essere modellato ed implementato semplicemente con le 3 strutture fondamentali di ciclo selezione e sequenza, rendendo di fatto inutile l'utilizzo del GoTo.


Ultima modifica di DioBrando : 14-03-2008 alle 03:05.
DioBrando è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Cronos: The New Dawn diventa più ...
Riot Games alza lasticella dell'anti-che...
Netflix dice addio a 111 titoli original...
Samsung prepara un foldable più l...
Nintendo Switch 2: in arrivo cartucce pi...
Evento storico: la prima squadra di robo...
Fallito il lancio del razzo spaziale nip...
Truffa RAM: moduli DDR4 spacciati per DD...
Bureau 1440 mostra un'immagine di un sat...
Revocati i premi a Clair Obscur: Expedit...
Robotaxi Tracker, un 19enne ha scoperto ...
Il razzo spaziale riutilizzabile cinese ...
Apple Watch SE 3 in offerta su Amazon: i...
Eldegarde: l'action RPG firmato dagli ex...
Bici elettrica da città in offerta: F.ll...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:55.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v