Discussione:
Non bastonatemi (per la domanda)
(troppo vecchio per rispondere)
Eldorado
2005-09-23 16:00:08 UTC
Permalink
Capisco che fare una domanda banale in un NG di professionisti nella materia
non sia tanto facile.
Per questo motivo vi chiedo di essere benevoli con le risposte.

Mi piacerebbe creare un piccolissimo programmino partendo da zero, insomma
creare qualcosa e dire: questa l'ho fatto io.
Purtroppo NON saprei nemmeno dove cominciare, e tantomeno il software da
usare.
L'entusiasmo però è alto.

La mia domanda (banale) è questa: cosa mi serve per fare ciò che chiedo?

Grazie per le risposte.
Angelo Paolitto
2005-09-23 16:33:54 UTC
Permalink
Post by Eldorado
Mi piacerebbe creare un piccolissimo programmino partendo da zero, insomma
creare qualcosa e dire: questa l'ho fatto io.
Purtroppo NON saprei nemmeno dove cominciare, e tantomeno il software da
usare.
L'entusiasmo però è alto.
La mia domanda (banale) è questa: cosa mi serve per fare ciò che chiedo?
La risposta altrettanto banale e'

- Avere idea di cosa sia un computer;
- Avere idea di cosa sia un S.O.;
- Avere idea di cosa si vuole realizzare;
- Avere idea di cosa sia un editor (anche se spesso
e' integrato nell'ambiente di compilazione);
- Avere idea di cosa sia un linguaggio di programmazione;
- Avere idea di cosa sia un compilatore;
- Avere idea di cosa si deve fare per trasformare quanto
scritto in un certo linguaggio in un programma eseguibile
mediante il compilatore.

HTH

C:\>iao Angelo
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
mrnt
2005-09-23 21:41:07 UTC
Permalink
Post by Angelo Paolitto
La risposta altrettanto banale e'
[...]
perdonami ma questa risposta te la potevi anche risparmiare per un povero
niubbo... cos'hai, paura di creare concorrenza? -_-'
non gli hai detto nulla di utile e hai avuto un tono sgradevole (forse
sono solo io che l'ho interpretato così...)

Eldorado: gli strumenti che devi procurarti variano moltissimo in base a
quello che vuoi fare e agli obiettivi che vuoi raggiungere. In generale
per "fare un programma" devi scrivere una serie di istruzioni codificate
secondo determinate regole di sintassi, cioè secondo quello che viene
definito "linguaggio di programmazione". Le prime due cose da fare sono
impararne uno (un linguaggio di programmazione) e procurarsi un
compilatore per quel linguaggio, ovvero un programma che si occupa di
interpretare il codice che hai scritto e di tradurlo in un file che in un
modo o nell'altro possa essere eseguito sul tuo computer.

Alcuni dei linguaggi di programmazione più conosciuti:
- C, è secondo me in assoluto il massimo della potenza: ci puoi fare
qualsiasi cosa e lo puoi studiare a vari livelli a seconda di quello che
cerchi di fare
- C++ praticamente un sovrainsieme del C, anche se alcuni lo negano, che
rispetto a quest'ultimo introduce alcune moderne tecniche di
programmazione (OOP, Object Oriented Programming, o programmazione a
oggetti).
- Java linguaggio semplice e potente, nasce secondo me ponendosi come
obiettivo primario la produttività: è molto più semplice del C++, sebbene
gli somigli abbastanza, ed è cross-platform, cioè uno stesso programma
creato in Java può essere eseguito su qualsiasi sistema operativo che
abbia una Java Virtual Machine, che sia Windows, Linux, Mac (be', almeno
in teoria dovrebbe essere così, ma non sempre lo è... :P).
- C#, ovvero il "Microsoft Java" :PPP e poteva mai Microsoft accontentarsi
del fatto che ci fosse in giro una buona idea non sua? :D
il C# (il cui nome vorrebbe lasciare ad intendere una ulteriore evoluzione
del C++, ma non è vero manco penniente imho) è cross-platform (in teoria)
ed è semplice come Java; il suo utilizzo più comune lo vede abbinato al
framework .NET (di cui avrai sentito parlare).
- Basic linguaggio molto vecchio, uno dei primi della storia; non è adatto
al presente proprio per la sua età: è un linguaggio che va come dire,
"controcorrente": non è stato fatto per supportare numerose moderne
tecnologie, ed è stato forzato nel presente nelle maniere più assurde; una
sua popolare implementazione è il Visual Basic di Microsoft, ma qualunque
persona sana di mente al mondo ti sconsiglierebbe di iniziare da Visual
Basic
- Assembly be', questo non è neanche tanto un linguaggio: si tratta di una
semplice traduzione menmonica delle sequenze di bytes fisicamente eseguite
da una CPU (opcodes); ogni CPU ha il suo linguaggio assembly, il più
diffuso è quello dei processori Intel x86; ti conviene impararlo solo se
vuoi lavorare ad un livello veramente *molto* basso (system programming,
device drivers... occhio che "basso livello" non significa programmare in
maniera scrausa :D significa invece programmare appunto a livello di
sistema, a livello molto tecnico insomma), e comunque sicuramente non è
roba per iniziare (anche i migliori iniziano con altre cose). Volendo
essere precisi il massimo della potenza non è il C o il C++, è l'assembly
:) solo che ho detto diversamente perché l'assembly è cervellotico, e per
quanto uno possa essere un mostro della programmazione, l'assembly limita
fortemente la sua capacità di creare programmi complessi (anche questo
significa potenza per un linguaggio); senza contare che le cose che puoi
fare in assembly e non puoi fare in C o C++ sono veramente poche...

Poi ce ne stanno moltissimi altri che hanno gli usi più svariati: Python,
Perl, Ruby, PHP... Google ti aiuterà ;)

Se decidi di iniziare dal C o dal C++ come compilatore ti consiglio gcc,
che è gratis; se hai Windows scarica il suo porting Win32, che si chiama
MinGW; se invece hai Linux (ma ne dubito) allora il gcc ce l'hai già.
Considera tuttavia anche l'ipotesi di iniziare dal Java, che non è affatto
male; e dopo aver scelto il linguaggio e il compilatore, possibilmente
procurati anche un buon IDE. Unica nota: EVITA CON TUTTA L'ANIMA un IDE
che si chiama "Dev-C++", quando leggi "Dev-C++" sappi che lì c'è il Male!!
@_@

fine. :)

ciao
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Eldorado
2005-09-24 07:10:14 UTC
Permalink
Post by mrnt
Post by Angelo Paolitto
La risposta altrettanto banale e'
[...]
perdonami ma questa risposta te la potevi anche risparmiare per un povero
niubbo... cos'hai, paura di creare concorrenza? -_-'
non gli hai detto nulla di utile e hai avuto un tono sgradevole (forse
sono solo io che l'ho interpretato così...)
Eldorado: gli strumenti che devi procurarti variano moltissimo in base a
quello che vuoi fare e agli obiettivi che vuoi raggiungere. In generale
per "fare un programma" devi scrivere una serie di istruzioni codificate
secondo determinate regole di sintassi, cioè secondo quello che viene
definito "linguaggio di programmazione". Le prime due cose da fare sono
impararne uno (un linguaggio di programmazione) e procurarsi un
compilatore per quel linguaggio, ovvero un programma che si occupa di
interpretare il codice che hai scritto e di tradurlo in un file che in un
modo o nell'altro possa essere eseguito sul tuo computer.
- C, è secondo me in assoluto il massimo della potenza: ci puoi fare
qualsiasi cosa e lo puoi studiare a vari livelli a seconda di quello che
cerchi di fare
- C++ praticamente un sovrainsieme del C, anche se alcuni lo negano, che
rispetto a quest'ultimo introduce alcune moderne tecniche di
programmazione (OOP, Object Oriented Programming, o programmazione a
oggetti).
- Java linguaggio semplice e potente, nasce secondo me ponendosi come
obiettivo primario la produttività: è molto più semplice del C++, sebbene
gli somigli abbastanza, ed è cross-platform, cioè uno stesso programma
creato in Java può essere eseguito su qualsiasi sistema operativo che
abbia una Java Virtual Machine, che sia Windows, Linux, Mac (be', almeno
in teoria dovrebbe essere così, ma non sempre lo è... :P).
- C#, ovvero il "Microsoft Java" :PPP e poteva mai Microsoft accontentarsi
del fatto che ci fosse in giro una buona idea non sua? :D
il C# (il cui nome vorrebbe lasciare ad intendere una ulteriore evoluzione
del C++, ma non è vero manco penniente imho) è cross-platform (in teoria)
ed è semplice come Java; il suo utilizzo più comune lo vede abbinato al
framework .NET (di cui avrai sentito parlare).
- Basic linguaggio molto vecchio, uno dei primi della storia; non è adatto
al presente proprio per la sua età: è un linguaggio che va come dire,
"controcorrente": non è stato fatto per supportare numerose moderne
tecnologie, ed è stato forzato nel presente nelle maniere più assurde; una
sua popolare implementazione è il Visual Basic di Microsoft, ma qualunque
persona sana di mente al mondo ti sconsiglierebbe di iniziare da Visual
Basic
- Assembly be', questo non è neanche tanto un linguaggio: si tratta di una
semplice traduzione menmonica delle sequenze di bytes fisicamente eseguite
da una CPU (opcodes); ogni CPU ha il suo linguaggio assembly, il più
diffuso è quello dei processori Intel x86; ti conviene impararlo solo se
vuoi lavorare ad un livello veramente *molto* basso (system programming,
device drivers... occhio che "basso livello" non significa programmare in
maniera scrausa :D significa invece programmare appunto a livello di
sistema, a livello molto tecnico insomma), e comunque sicuramente non è
roba per iniziare (anche i migliori iniziano con altre cose). Volendo
essere precisi il massimo della potenza non è il C o il C++, è l'assembly
:) solo che ho detto diversamente perché l'assembly è cervellotico, e per
quanto uno possa essere un mostro della programmazione, l'assembly limita
fortemente la sua capacità di creare programmi complessi (anche questo
significa potenza per un linguaggio); senza contare che le cose che puoi
fare in assembly e non puoi fare in C o C++ sono veramente poche...
Poi ce ne stanno moltissimi altri che hanno gli usi più svariati: Python,
Perl, Ruby, PHP... Google ti aiuterà ;)
Se decidi di iniziare dal C o dal C++ come compilatore ti consiglio gcc,
che è gratis; se hai Windows scarica il suo porting Win32, che si chiama
MinGW; se invece hai Linux (ma ne dubito) allora il gcc ce l'hai già.
Considera tuttavia anche l'ipotesi di iniziare dal Java, che non è affatto
male; e dopo aver scelto il linguaggio e il compilatore, possibilmente
procurati anche un buon IDE. Unica nota: EVITA CON TUTTA L'ANIMA un IDE
che si chiama "Dev-C++", quando leggi "Dev-C++" sappi che lì c'è il Male!!
@_@
fine. :)
ciao
Sei stato ENCICLOPEDICO ed esaustivo, grazie 1000.
Pensavo esistesse qualche programma di programmazione con all'interno degli
script per fare qualcosina di prestabilito.
MultiMedia Builder ti permette di fare alcune cose, ma non certamente un
programma di come stiamo discutendo noi.
Sostanzialmente volevo *pasticciare* con qualche programma per rendermi
conto cosa volesse dire programmare.
Visto le difficoltà che ci sono penso di rinunciare.
Grazie ancora per la tua Super/Iper disponibilità.
Ciao.
NoWhereMan
2005-09-24 10:07:10 UTC
Permalink
Post by Eldorado
Sei stato ENCICLOPEDICO ed esaustivo, grazie 1000.
Pensavo esistesse qualche programma di programmazione con all'interno degli
script per fare qualcosina di prestabilito.
MultiMedia Builder ti permette di fare alcune cose, ma non certamente un
programma di come stiamo discutendo noi.
Multimedia Builder?? Io ho INIZIATO a capire un'acca di programmazione
ANCHE grazie a MMB (nonostante il linguaggio di scripting, talvolta perfino
astruso :)
Io sono il NoWhereMan che c'è bazzica il forum ;) www.mmbforums.com
Se hai già una qualche esperienza con il linguaggio di scripting di MMB c'è
un linguaggino la cui sintassi si avvicina parecchio
O'Basic: http://www.obasic.com/

Allora, tieni presente che non viene aggiornato dal 99 più o meno (e per
l'informatica, come saprai, 6 anni equivalgono ad ere geologiche :) )
Se ti piace, puoi provare wxbasic http://wxbasic.sf.net (scarica SEMPRE le
bleeding edge (beta), l'ultima release STABLE era vecchissima, l'ultima
volta che ho controllato).
Oppure wxLua (http://www.luascript.thersgb.net/)

Propendo fortemente per le sintassi basic-like. In qualche modo le trovo
gradevoli da vedere (ma mi piacciono anche le c-like, a parte C#) ;)

Infine, se ti piace MMB, prova Multimedia Studio. E' un progetto in alpha
stage che io trovo davvero molto, molto promettente. Il progetto (creato da
terzi, non da Mediachance) prende come base Multimedia Builder, ma mira a
eliminarne i difetti, come il linguaggio di scripting, e la creazione di
applicazioni con controlli win32 standard (MMB in realtà sulle finestre
"disegna" dei controlli che *assomigliano* a controlli standard, ma non lo
sono). www.burtonsoft.co.uk

NOTA: E' una versione ALPHA (prima ancora di BETA), quindi non ti aspettare
molto: tante funzioni non sono ancora state implementate, ma credo che
potrebbe diventare un valido sostituto di MMB in futuro, e meriterebbe un
po' più di visibilità (no, non lo sto programmando io, ma sono un
orgoglioso beta tester :D )

NOTA2: Se vuoi avere davvero il "controllo" delle tue applicazioni né MMB
né MMS saranno abbastanza, e, sinceramente, non ne avresti neanche molto
con Visual Basic :D.
Volendo, se vorrai, passare a un controllo "vero", potresti voler
interessarti a C/C++

ciao!!
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
Eldorado
2005-09-24 11:02:45 UTC
Permalink
Post by NoWhereMan
Post by Eldorado
Sei stato ENCICLOPEDICO ed esaustivo, grazie 1000.
Pensavo esistesse qualche programma di programmazione con all'interno degli
script per fare qualcosina di prestabilito.
MultiMedia Builder ti permette di fare alcune cose, ma non certamente un
programma di come stiamo discutendo noi.
Multimedia Builder?? Io ho INIZIATO a capire un'acca di programmazione
ANCHE grazie a MMB (nonostante il linguaggio di scripting, talvolta perfino
astruso :)
Io sono il NoWhereMan che c'è bazzica il forum ;) www.mmbforums.com
Se hai già una qualche esperienza con il linguaggio di scripting di MMB c'è
un linguaggino la cui sintassi si avvicina parecchio
O'Basic: http://www.obasic.com/
Allora, tieni presente che non viene aggiornato dal 99 più o meno (e per
l'informatica, come saprai, 6 anni equivalgono ad ere geologiche :) )
Se ti piace, puoi provare wxbasic http://wxbasic.sf.net (scarica SEMPRE le
bleeding edge (beta), l'ultima release STABLE era vecchissima, l'ultima
volta che ho controllato).
Oppure wxLua (http://www.luascript.thersgb.net/)
Propendo fortemente per le sintassi basic-like. In qualche modo le trovo
gradevoli da vedere (ma mi piacciono anche le c-like, a parte C#) ;)
Infine, se ti piace MMB, prova Multimedia Studio. E' un progetto in alpha
stage che io trovo davvero molto, molto promettente. Il progetto (creato da
terzi, non da Mediachance) prende come base Multimedia Builder, ma mira a
eliminarne i difetti, come il linguaggio di scripting, e la creazione di
applicazioni con controlli win32 standard (MMB in realtà sulle finestre
"disegna" dei controlli che *assomigliano* a controlli standard, ma non lo
sono). www.burtonsoft.co.uk
NOTA: E' una versione ALPHA (prima ancora di BETA), quindi non ti aspettare
molto: tante funzioni non sono ancora state implementate, ma credo che
potrebbe diventare un valido sostituto di MMB in futuro, e meriterebbe un
po' più di visibilità (no, non lo sto programmando io, ma sono un
orgoglioso beta tester :D )
NOTA2: Se vuoi avere davvero il "controllo" delle tue applicazioni né MMB
né MMS saranno abbastanza, e, sinceramente, non ne avresti neanche molto
con Visual Basic :D.
Volendo, se vorrai, passare a un controllo "vero", potresti voler
interessarti a C/C++
Grazie anche a te ___/\/o\/\/here/\/\an___ sei stato disponibile al
massimo.
Siete molto preparati in questo NG, complimenti a tutti.
Io non so più cosa fare.
NoWhereMan
2005-09-24 11:10:52 UTC
Permalink
Post by Eldorado
Grazie anche a te ___/\/o\/\/here/\/\an___ sei stato disponibile al
massimo.
Siete molto preparati in questo NG, complimenti a tutti.
Io non so più cosa fare.
In che senso? :D
Ti abbiamo dato un po' di alternative, vedi tu ;)
Facci sapere!
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
mrnt
2005-09-24 11:43:57 UTC
Permalink
Grazie anche a te ___//o//here//an___ sei stato disponibile al
massimo.
Siete molto preparati in questo NG, complimenti a tutti.
Io non so più cosa fare.
perché rinunciare? hai detto che l'entusiasmo era alto... magari ti sei
un'attimino confuso in mezzo a tutte le alternative che esistono... come
ti è stato detto, se ci dici cosa vuoi fare ti possiamo indirizzare verso
un linguaggio per cominciare; se invece non vuoi fare nulla di specifico
ma vuoi solo iniziare a capirci un po' di programmazione allora devi dirci
a che livello vuoi arrivare; se vuoi diventare un grande esperto ti
consiglierei di partire subito in grande (C e subito dopo C++ ;))
altrimenti se vuoi andare per gradi, partire da cose magari semplici e poi
casomai accrescere le tue conoscenze, ti consiglierei di partire dal Java
o dal .NET.
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
NoWhereMan
2005-09-24 15:32:51 UTC
Permalink
Post by mrnt
Grazie anche a te ___//o//here//an___ sei stato disponibile al
massimo.
Siete molto preparati in questo NG, complimenti a tutti.
Io non so più cosa fare.
altrimenti se vuoi andare per gradi, partire da cose magari semplici e poi
casomai accrescere le tue conoscenze, ti consiglierei di partire dal Java
o dal .NET.
no, No, *NO*, NNNNOOOOOOOooouuuuuooooOOOOO!

No, il .NET no, dai... dovrebbero vietarlo per legge, un coso che ti
costringe a installare 20 mega di roba solo per far *girare* i programmi
che scrivi. Io direi nemmeno Java. Più che altro perché la maggior parte
delle persone *non* ha la virtual machine (leggasi: in pratica un runtime)
di sun, ma quella ciofecosa della MS. In pratica, ci si trova nella stessa
situazione di .NET . E non mi dite "compila con il gcj", perché Eldorado
qui vuole *iniziare*, non è il caso impararsi quella sfilza di switch da
linea di comando... per ora ;)

Rimango della mia idea... al limite, sì, il C, con Dev-Cpp o anche
wxDev-Cpp (così può anche provare a creare delle interfacce grafice). MA!
lui vuole presumibilmente creare programmi a finestre (i soliti programmi
windows), ed è normale, chi inizia su win vuole *sempre* vedere la sua
brava finestra :)

Allora, io direi che per ora il C++ non è il caso (troppo "difficile"
creare finestre). Io continuo a votare per (al limite) Delphi. Oppure
wxBasic, che è piccolino da scaricare e ci sono tanti esempi (Eldorado,
però in quest'ultimo caso devi purtroppo - o per fortuna? ;) - dimenticarti
di creare finestre disegnando i bottoni sullo schermo. O, almeno, non così
direttamente). Oppure prova O'Basic, che ha anche la possibilità di
disegnare sulle finestre... insomma PROVA! :)

Guarda che è divertente! Non ti abbattere!
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
Eldorado
2005-09-24 17:31:55 UTC
Permalink
E non mi dite "compila con il gcj", perché Eldorado
Post by NoWhereMan
qui vuole *iniziare*, non è il caso impararsi quella sfilza di switch da
linea di comando... per ora ;)
Rimango della mia idea... al limite, sì, il C, con Dev-Cpp o anche
wxDev-Cpp (così può anche provare a creare delle interfacce grafice). MA!
lui vuole presumibilmente creare programmi a finestre (i soliti programmi
windows), ed è normale, chi inizia su win vuole *sempre* vedere la sua
brava finestra :)
Allora, io direi che per ora il C++ non è il caso (troppo "difficile"
creare finestre). Io continuo a votare per (al limite) Delphi. Oppure
wxBasic, che è piccolino da scaricare e ci sono tanti esempi (Eldorado,
però in quest'ultimo caso devi purtroppo - o per fortuna? ;) - dimenticarti
di creare finestre disegnando i bottoni sullo schermo. O, almeno, non così
direttamente). Oppure prova O'Basic, che ha anche la possibilità di
disegnare sulle finestre... insomma PROVA! :)
Guarda che è divertente! Non ti abbattere!
Hai centrato l'obiettivo. La mia soddisfazione era quella di creare delle
finestre con bottoni ecc.
Una volta ho visto un programmino demenziale al quale bisognava cliccare
sulla finestra SI o NO e per quanto si volesse cliccare sul NO questa
operazione era impossibile effettuarla perchè il cursore del mouse quando si
avvicinava al NO quest'ultimo si allontanava. Praticamente era impossibile
cliccarci sopra.
Rimaneva a disposizione solamente il SI.
Anche per creare queste stupidate serve molto?
mrnt
2005-09-24 18:21:23 UTC
Permalink
Post by Eldorado
Hai centrato l'obiettivo. La mia soddisfazione era quella di creare delle
finestre con bottoni ecc.
Una volta ho visto un programmino demenziale al quale bisognava cliccare
sulla finestra SI o NO e per quanto si volesse cliccare sul NO questa
operazione era impossibile effettuarla perchè il cursore del mouse quando si
avvicinava al NO quest'ultimo si allontanava. Praticamente era impossibile
cliccarci sopra.
Rimaneva a disposizione solamente il SI.
Anche per creare queste stupidate serve molto?
mannòoo, figurati... sapendo come fare, per creare una scemenza simile con
il più difficile dei linguaggi ci metti a dir tanto un quarto d'ora... :D
ma anzi neanche, ci metti sicuramente di meno (sapendo come fare, cioè
sapendo programmare in quel linguaggio).
io ad es. lo farei in C++ con MFC (Visual C++ 6): basterebbe creare una
applicazione Dialog-based (AppWizard rulez :D) piazzarci sti pulsanti e
gestire WM_MOUSEMOVE nella dialog: complessivamente circa 5 minuti.
altri lo farebbero in Java: sarebbe altrettanto semplice e il risultato
finale mi sa che occuperebbe anche meno spazio, però io i toolkit grafici
per Java li conosco poco e andrebbe a finire che tra una prova e l'altra
ci metterei una mezz'ora sana se non di più... :P

PS: una versione del programma che dici tu l'avevo vista anche io tempo fa
in Internet: era un applet Java (per l'appunto) con un bottone che
scappava di qua e di la; se lo cliccavi il sito diceva che avresti visto
Britney Spears nuda (che fantasia...); col mouse non si riusciva a
cliccarlo; alla fine ho fatto in 2 minuti un programma che simulava un
click in quel punto dello schermo e mi è apparsa un'immagine orrenda
gigantesca tratta probabilmente da un film horror... :D
era il primo piano della faccia di una ragazzina mostruosa con un ghigno
orrendo, cicatrici dappertutto, pelle di colore verde, mezza sanguinante,
denti tutti rovinati... :D lol
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Manlio Perillo
2005-09-24 19:52:06 UTC
Permalink
Post by mrnt
Post by Eldorado
Hai centrato l'obiettivo. La mia soddisfazione era quella di creare delle
finestre con bottoni ecc.
Una volta ho visto un programmino demenziale al quale bisognava cliccare
sulla finestra SI o NO e per quanto si volesse cliccare sul NO questa
operazione era impossibile effettuarla perchè il cursore del mouse quando si
avvicinava al NO quest'ultimo si allontanava. Praticamente era impossibile
cliccarci sopra.
Rimaneva a disposizione solamente il SI.
Anche per creare queste stupidate serve molto?
mannòoo, figurati... sapendo come fare, per creare una scemenza simile con
il più difficile dei linguaggi ci metti a dir tanto un quarto d'ora... :D
ma anzi neanche, ci metti sicuramente di meno (sapendo come fare, cioè
sapendo programmare in quel linguaggio).
io ad es. lo farei in C++ con MFC (Visual C++ 6): basterebbe creare una
applicazione Dialog-based (AppWizard rulez :D) piazzarci sti pulsanti e
gestire WM_MOUSEMOVE nella dialog: complessivamente circa 5 minuti.
Per fare proselitismo ecco il codice con Python e GTK :-)
Sono 56 righe, inclusi gli abbondanti commenti.


# codice adattato da uno degli esempi forniti con il tutorial di pyGTK
import gtk


class JokeExample:
# This callback method moves the button to a new position
# in the Fixed container.
def move_button(self, widget, event):
self.x = (self.x + 30) % 300
self.y = (self.y + 50) % 300
self.fixed.move(widget, self.x, self.y)

def delete_event(self, widget, event):
gtk.main_quit()
return gtk.FALSE

def __init__(self):
self.x = 50
self.y = 50

# Create a new window
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_title("Joke")

# Here we connect the "delete" event to a signal handler
window.connect("delete_event", self.delete_event)

# Sets the border width of the window.
window.set_border_width(0)

# Create a Fixed Container
self.fixed = gtk.Fixed()
window.add(self.fixed)
self.fixed.show()

# Creates a new button with the label "Press me"
button = gtk.Button("Press me")

# When the button receives the "enter_notify_event" signal, it
# will call the method move_button().
button.connect("enter_notify_event", self.move_button)

# This packs the button into the fixed containers window.
self.fixed.put(button, 50, 50)

# The final step is to display this newly created widget.
button.show()

# Display the window
window.show()


JokeExample()

# Enter the event loop
gtk.main()




Saluti Manlio Perillo
mrnt
2005-09-24 18:42:49 UTC
Permalink
Post by NoWhereMan
no, No, *NO*, NNNNOOOOOOOooouuuuuooooOOOOO!
NWM - "...ooooooOOOOOOOOOOOooooo..."
MRNT - "ma perché no?"
NWM - "...ooooooo..."
MRNT - "ma c'è un motivo specifico?"
NWM - "...oooooOOOOOoo..."
Post by NoWhereMan
No, il .NET no, dai... dovrebbero vietarlo per legge, un coso che ti
costringe a installare 20 mega di roba solo per far *girare* i programmi
che scrivi.
il framework è già installato... per le versioni vecchie di Windows c'è
Windows Update, anche se adesso Microsoft ti fa fare solo gli
aggiornamenti che vuole lei (per gli altri devono verificare la tua copia
di Windows, e vorrei capire come dovrei fare io che ho win2kpro
perfettamente regolare e l'ActiveX che ti fanno scaricare per la verifica
mi crasha sempre...)
cmq tu il .NET non lo devi giudicare in base a questi aspetti secondari
(oltrettutto tendenzialmente ininfluenti); devi piuttosto giudicarlo in
base a quella che secondo te è la sua potenza, in base a quanto ti sembra
produttivo; ricorda che in informatica non esistono religioni, l'antipatia
per qualsiasi tipo di software/tecnologia non deve mai essere l'unica
ragione per evitare quel software o quella tecnologia: dev'essere
un'antipatia motivata da ragioni ben concrete. :)
io ad es. odio Visual Basic per una caterva di motivi, ad esempio il fatto
che distorce i paradigmi della OOP, è basato su un linguaggio antiquato e
a quanto pare da' anche problemi di compatibilità; inoltre odio Dev-C++
perché l'ultima versione che ho provato (qualche mese fa) traboccava di
errori ed era incompleta... l'editor formattava le indentazioni in maniera
errata (ho anche l'impressione che confondesse tra gruppi di spazi e
tabulazioni vere) e non sono mai riuscito a fare il debug, per quanto mi
scervellassi sulle impostazioni del progetto! :(
senza contare che una volta non so perché ma non riuscivo proprio ad
applicare le impostazioni al mio progetto... come cliccavo su OK andava in
crash tutto il Dev-C++, forse perché era una versione un po' più vecchia...
Post by NoWhereMan
Io direi nemmeno Java. Più che altro perché la maggior parte
delle persone *non* ha la virtual machine (leggasi: in pratica un runtime)
di sun, ma quella ciofecosa della MS.
l'importante è che funzioni, e se non funziona (difficile) si fa un bug
report dettagliato, che è sempre apprezzato. se facesse così schifo molti
sarebbero già passati al JRE doc (d'origine controllata) della Sun :)
Post by NoWhereMan
Rimango della mia idea... al limite, sì, il C, con Dev-Cpp o anche
wxDev-Cpp (così può anche provare a creare delle interfacce grafice). MA!
lui vuole presumibilmente creare programmi a finestre (i soliti programmi
windows), ed è normale, chi inizia su win vuole *sempre* vedere la sua
brava finestra :)
in tal caso inizierei da Delphi; sarei tentato di dirgli Borland C++
Builder (dovesse scegliere tra imparare l'Object Pascal e imparare il C++
sarebbe meglio la seconda), ma ho idea che la Borland voglia spendere di
più in direzione Delphi, non so perché...
Post by NoWhereMan
Allora, io direi che per ora il C++ non è il caso (troppo "difficile"
creare finestre).
non che gli facciano male a dire il vero un po' di complicazioni iniziali:
si fa le ossa :)
ma anche qua, dipende da cosa vuole fare... se le vuole fare le ossa?
oppure vuole avere risultati immediati? e poi casomai farsi le ossa?
Post by NoWhereMan
Guarda che è divertente! Non ti abbattere!
quoto, e aggiungo che è talmente divertente che spesso ti ritroverai a
dire a te stesso di non dimenticarti della tua vita sociale :D
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
NoWhereMan
2005-09-24 22:10:30 UTC
Permalink
Post by mrnt
Post by NoWhereMan
no, No, *NO*, NNNNOOOOOOOooouuuuuooooOOOOO!
NWM - "...ooooooOOOOOOOOOOOooooo..."
MRNT - "ma perché no?"
NWM - "...ooooooo..."
MRNT - "ma c'è un motivo specifico?"
NWM - "...oooooOOOOOoo..."
LOL! hai centrato :) ("...uuuuuoooooooooooo...")
Post by mrnt
Post by NoWhereMan
No, il .NET no, dai... dovrebbero vietarlo per legge, un coso che ti
costringe a installare 20 mega di roba solo per far *girare* i programmi
che scrivi.
il framework è già installato...
Sbagliato. Io ho Win XP SP2 (aggiornato da me). Nessun .NET
Il programma del nostro amico avrebbe già un utente in meno
Post by mrnt
per le versioni vecchie di Windows c'è
Windows Update, anche se adesso Microsoft ti fa fare solo gli
aggiornamenti che vuole lei (per gli altri devono verificare la tua copia
di Windows, e vorrei capire come dovrei fare io che ho win2kpro
perfettamente regolare e l'ActiveX che ti fanno scaricare per la verifica
mi crasha sempre...)
Sbagliato anche questo. Non tutti hanno (ancora) la banda larga. E chi c'ha
voglia di scaricarsi venti meghi, così, a gratis? Voglio dire, un utente
normale non ci fa niente (a parte farci girare programmini del cavolo che
girerebbero ugualmente e forse anche meglio se fossero compilati in codice
nativo, senza ausilio di librerie aggiuntive). Si trova così, con venti
mega di spazio in meno. Che felicità. Magari per far girare un hello world.
Ma siamo impazziti??
Post by mrnt
cmq tu il .NET non lo devi giudicare in base a questi aspetti secondari
(oltrettutto tendenzialmente ininfluenti);
Mi dispiace, ma non riesco a prescinderne. Ininfluenti per chi? Secondo che
criterio? Venti meghi ti sembrano ininfluenti? ;)
Post by mrnt
devi piuttosto giudicarlo in
base a quella che secondo te è la sua potenza, in base a quanto ti sembra
produttivo; ricorda che in informatica non esistono religioni, l'antipatia
per qualsiasi tipo di software/tecnologia non deve mai essere l'unica
ragione per evitare quel software o quella tecnologia: dev'essere
un'antipatia motivata da ragioni ben concrete. :)
io ad es. odio Visual Basic per una caterva di motivi, ad esempio il fatto
che distorce i paradigmi della OOP, è basato su un linguaggio antiquato e
a quanto pare da' anche problemi di compatibilità;
Io lo odio soprattutto perché mi dà la sensazione di non avere il controllo
su ciò che fa la mia applicazione. In fondo è sempre un'interfaccia per una
libreria (che poi ne costituisce appunto il runtime, siamo daccapo ;) )
Post by mrnt
inoltre odio Dev-C++
perché l'ultima versione che ho provato (qualche mese fa) traboccava di
errori ed era incompleta... l'editor formattava le indentazioni in maniera
errata (ho anche l'impressione che confondesse tra gruppi di spazi e
tabulazioni vere) e non sono mai riuscito a fare il debug, per quanto mi
scervellassi sulle impostazioni del progetto! :(
senza contare che una volta non so perché ma non riuscivo proprio ad
applicare le impostazioni al mio progetto... come cliccavo su OK andava in
crash tutto il Dev-C++, forse perché era una versione un po' più vecchia...
Mi spiace :(
In generale, non è malaccio. E poi è aggratise.
Post by mrnt
Post by NoWhereMan
Io direi nemmeno Java. Più che altro perché la maggior parte
delle persone *non* ha la virtual machine (leggasi: in pratica un runtime)
di sun, ma quella ciofecosa della MS.
l'importante è che funzioni, e se non funziona (difficile) si fa un bug
report dettagliato, che è sempre apprezzato. se facesse così schifo molti
sarebbero già passati al JRE doc (d'origine controllata) della Sun :)
Non è per quello che non passano al JRE Sun. Semplicemente chi non passa o
non sa che esiste, che si può fare, o non sa nemmeno cosa sia Java! ;)
Post by mrnt
in tal caso inizierei da Delphi; sarei tentato di dirgli Borland C++
Builder (dovesse scegliere tra imparare l'Object Pascal e imparare il C++
sarebbe meglio la seconda), ma ho idea che la Borland voglia spendere di
più in direzione Delphi, non so perché...
Non amo molto neanche il Borland C++. Lo trovo un orrendo frankenstein tra
delphi/pascal e c++
Post by mrnt
Post by NoWhereMan
Allora, io direi che per ora il C++ non è il caso (troppo "difficile"
creare finestre).
si fa le ossa :)
ma anche qua, dipende da cosa vuole fare... se le vuole fare le ossa?
oppure vuole avere risultati immediati? e poi casomai farsi le ossa?
Io direi la seconda... secondo me quando si inizia, si è tutti così :)
Post by mrnt
Post by NoWhereMan
Guarda che è divertente! Non ti abbattere!
quoto, e aggiungo che è talmente divertente che spesso ti ritroverai a
dire a te stesso di non dimenticarti della tua vita sociale :D
eheheh, ora quoto io :D

ciao-ciao
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
NoWhereMan
2005-09-24 07:14:20 UTC
Permalink
Post by mrnt
Unica nota: EVITA CON TUTTA L'ANIMA un IDE
che si chiama "Dev-C++", quando leggi "Dev-C++" sappi che lì c'è il Male!!
@_@
Cos'hai contro il Dev-C++ ?? O.o

per Eldorado: magari, dicci che cosa vorresti effettivamente fare. In
questo modo possiamo indicarti un linguaggio che vada bene per farlo senza
dover imparare TUTTO e SUBITO. Se vuoi un consiglio vero... devi evitare i
manuali "For Dummies". Si spacciano per essere in grado di spiegare le cose
a un deficiente. Io credo invece che *trattino chi li legge* come se fosse
un deficiente.

In ogni caso, qualsiasi sia il linguaggio che sceglierai, non potrai
prescindere dalle conoscenze *base* (cos'è una variabile, che cos'è un
ciclo, un'istruzione condizionale, una funzione, ecc). Una volta che avrai
quelle, potrai poi imparare *qualsiasi* linguaggio senza problemi. E, in
questo senso, uno vale l'altro.

Pensandoci, pur non apprezzandone particolarmente la sintassi (proprio
graficamente, non mi piace /come/ devo scrivere le cose :P ), potrei
consigliarti di iniziare da Delphi (www.borland.it). La versione Personal è
gratuita ad uso personale, mi pare... comunque chiedo conferme/smentite al
gruppo, e soprattutto feedback sull'ultima edizione che non conosco

RAGAAAZZI, ma qui leggo che richiede .NET... ho capito bene??? Allora,
Eldorado, ho cambiato idea, scegline un altro. O almeno la versione
precedente :D (delphi 8)

ciao ciao
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
Angelo Paolitto
2005-09-26 08:07:56 UTC
Permalink
Post by mrnt
La risposta altrettanto banale e' > [...]
perdonami ma questa risposta te la potevi anche risparmiare per un povero
niubbo... cos'hai, paura di creare concorrenza? -_-'
Assolutamente no.
Post by mrnt
non gli hai detto nulla di utile e hai avuto un tono sgradevole (forse
sono solo io che l'ho interpretato così...)
Se il tono e' stato sgradevole me ne scuso: mai rispindere 5 minuti
prima di spegnere la macchina, si capisce "imparare a programmare"
invece che "voglio realizzare un programma, datemi le istruzioni
passo passo"

Ma mi scuserai se faccio le pulci al tuo post, hai scritto, secondo me,
parecchie inesattezze.
Post by mrnt
- C, è secondo me in assoluto il massimo della potenza: ci puoi fare
qualsiasi cosa e lo puoi studiare a vari livelli a seconda di quello che
cerchi di fare
Che il "C" sia il massimo della potenza e' anche un'affermazione
discutibile, ma sicuramente fa molto figo dire io programmo in "C".

L'assembler e' sicuramente piu' potente del "C": infatti quando si
ha bisogno di accedere direttamente all'HW, si usa l'assembler.

Ma questo e' un discorso da "chi ce l'ha piu' lungo": a meno di
non usare linguaggio giocattolo, la scelta di un linguaggio si
fa in base a criteri che non sono solo quelli "di con questo
alloco la memoria io". Spesso si propende per il VisualBasic
(che bistratti piu' sotto) per la facilita' di utilizzo.
Post by mrnt
- C++ praticamente un sovrainsieme del C, anche se alcuni lo negano, che
rispetto a quest'ultimo introduce alcune moderne tecniche di
programmazione (OOP, Object Oriented Programming, o programmazione a
oggetti).
Infatti C e C++ sono due linguaggi diversi che si comportano
in maniera diversa: a non saperlo si rischia di farsi molto male.

In "C" la seguente istruzione

char pippo1[4] = "Stringa troppo lunga";

tronca la stringa al quarto carattere e ti porti a spasso
un array di caratteri che fa danno se viene usato come una
stringa (ovvero come un array di caratteri terminato con '\0').

In C++ la stessa istruzione da errore.

Questo e' solo una delle differenze tra "C" e "C++" (quella che
mi ricordo sempre), ce ne sono altre piu' sottili.

Un elenco abbastanza esaustivo con le differenze tra
C e C++ lo si puo' trovare all'URL

http://david.tribble.com/text/cdiffs.htm

In "C" il programmatore ha meno protezioni da parte del
compilatore: il ++ dopo il "C" sta a significare "meglio
del C", non "C con aggiunte".

In compenso e' falso anche l'affermazione "rispetto a quest'ultimo
introduce alcune moderne tecniche di programmazione" facendo
riferimento all'OOP. La programmazione ad oggetti e' possibilissima
anche in "C". In C++ si ha "qualche facilitazione in piu'.

E quanto al moderno... A me risulta che il primo linguaggio
che ha utilizzato i concetti della programmazione ad oggetti
sia stato il Simula all'inizio degli anni '60.
Post by mrnt
- Java linguaggio semplice e potente, nasce secondo me ponendosi come
obiettivo primario la produttività: è molto più semplice del C++, sebbene
gli somigli abbastanza, ed è cross-platform, cioè uno stesso programma
creato in Java può essere eseguito su qualsiasi sistema operativo che
abbia una Java Virtual Machine, che sia Windows, Linux, Mac (be', almeno
in teoria dovrebbe essere così, ma non sempre lo è... :P).
Anche questa e' una affermazione che viene smentita nel momento in
cui il tuo bravo programma Java si attacca ad una DLL su Windows
o ad uno Shared Object su Unix (le DLL di Unix). I bug delle VM, sono
una cosa a parte.
Post by mrnt
- C#, ovvero il "Microsoft Java"
Il C# non ha niente a che vedere con il "Java di Microsoft".
La Microsoft ha perso una causa con Sun per aver realizzato
una Java Virtual Machine difforme da quanto concordato con Sun,
e questo non ha avuto NIETE a che fare con C#.
Post by mrnt
- Assembly be', questo non è neanche tanto un linguaggio: si tratta di una
semplice traduzione menmonica delle sequenze di bytes fisicamente eseguite
da una CPU (opcodes);
Anche questa, secondo me, e' solo una credenza piuttosto diffusa...
Gli x86 hanno almeno 16 (se non ricordo male) modi diversi di accedere
alla memoria che si traducono in 16 opcode diversi per buona parte di
questi si scrive mov.

Che poi sia uno spostamento registro memoria o registro registro,
o una mov immediata (assegnazione di un intero ad una locazione
di memoria) ci pensa il compilatore, in base agli operandi, a
scegliere l'opcode appropriato.
Post by mrnt
Se decidi di iniziare dal C o dal C++ come compilatore ti consiglio gcc,
che è gratis; se hai Windows scarica il suo porting Win32, che si chiama
MinGW;
Perche' non il compilatore della Borland o di Microsoft (che si
possono scaricare liberamente per uso non professionale) e l'IDE
ce l'hanno gia'?

C:\>iao Angelo
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
mrnt
2005-09-26 17:37:23 UTC
Permalink
Post by Angelo Paolitto
Se il tono e' stato sgradevole me ne scuso: mai rispindere 5 minuti
prima di spegnere la macchina, si capisce "imparare a programmare"
invece che "voglio realizzare un programma, datemi le istruzioni
passo passo"
perché alla prima domanda secondo te bisogna rispondere male in un NG come
questo? e alla seconda invece avresti risposto bene in un NG come questo?
Post by Angelo Paolitto
L'assembler e' sicuramente piu' potente del "C": infatti quando si
ha bisogno di accedere direttamente all'HW, si usa l'assembler.
non hai letto più in basso una precisazione nel mio post, quando ho
parlato dell'assembly.
Post by Angelo Paolitto
Ma questo e' un discorso da "chi ce l'ha piu' lungo": a meno di
non usare linguaggio giocattolo, la scelta di un linguaggio si
fa in base a criteri che non sono solo quelli "di con questo
alloco la memoria io".
se a lui serve potenza e gli interessa diventare un esperto e conoscere a
fondo il funzionamento del suo sistema allora come primo linguaggio il C
fa per lui (in C sono stati creati importanti sistemi operativi).
altrimenti (ipotesi da non scartare, e non sono ironico) può iniziare da
Java o da un altro linguaggio ad alto livello al fine di impadronirsi dei
concetti fondamentali della programmazione in qualsiasi linguaggio (array,
stringhe, interi, numeri a virgola mobile, classi, oggetti, metodi
virtuali, ecc.); si tratta solo di due approcci diversi alla
programmazione.
non propagando particolarmente il C se non per le cose in cui eccelle:
anche gli altri linguaggi hanno motivo di esistere, altrimenti non
esisterebbero.
Post by Angelo Paolitto
Spesso si propende per il VisualBasic
(che bistratti piu' sotto) per la facilita' di utilizzo.
sono in molti a bistrattarlo e ovviamente io posso solo dirti che fanno
tutti bene.
Post by Angelo Paolitto
Infatti C e C++ sono due linguaggi diversi che si comportano
in maniera diversa: a non saperlo si rischia di farsi molto male.
[...]
In C++ la stessa istruzione da errore.
come faccio a farmi molto male con quella cosa, aldilà del fatto che è
comunque sbagliata a livello concettuale e che io non l'ho mai scritta?
Post by Angelo Paolitto
Questo e' solo una delle differenze tra "C" e "C++" (quella che
mi ricordo sempre), ce ne sono altre piu' sottili.
Un elenco abbastanza esaustivo con le differenze tra
C e C++ lo si puo' trovare all'URL
http://david.tribble.com/text/cdiffs.htm
non interessano di certo a uno che inizia, ma le terrò comunque presenti.
Post by Angelo Paolitto
In compenso e' falso anche l'affermazione "rispetto a quest'ultimo
introduce alcune moderne tecniche di programmazione" facendo
riferimento all'OOP. La programmazione ad oggetti e' possibilissima
anche in "C". In C++ si ha "qualche facilitazione in piu'.
è assurdo programmare a oggetti con le struct se è questo che intendevi:
non hai le funzioni virtuali, non hai private public e protected, non hai
niente... hai solo la possibilità di ereditare (e non so se è possibile
solo con le estensioni Microsoft o anche senza)... chiamala come ti pare
ma quella per me non è programmazione a oggetti... le vtable come le fai,
a mano?
Post by Angelo Paolitto
E quanto al moderno... A me risulta che il primo linguaggio
che ha utilizzato i concetti della programmazione ad oggetti
sia stato il Simula all'inizio degli anni '60.
sul piano delle innovazioni nei linguaggi di programmazione la
programmazione a oggetti la considero abbastanza moderna (parlo di quella
"vera", non quella fatta con struct al posto di class e le vtable
realizzate con gli array...)
Post by Angelo Paolitto
Anche questa e' una affermazione che viene smentita nel momento in
cui il tuo bravo programma Java si attacca ad una DLL su Windows
o ad uno Shared Object su Unix (le DLL di Unix). I bug delle VM, sono
una cosa a parte.
il concetto di "libreria nativa" (che corrisponde a DLL in Windows e
oggetto shared in Unix) è portabile: se un programma Java usa JNI per
caricare una libreria nativa, per far funzionare il programma è necessario
che esistano due versioni della libreria: la DLL e l'oggetto ELF, e allora
il programma è portabile.
sempre meglio di tanti altri linguaggi in cui è necessario compilare due
volte anche l'eseguibile principale (oltre alla "libreria nativa")... :)
Post by Angelo Paolitto
Il C# non ha niente a che vedere con il "Java di Microsoft".
La Microsoft ha perso una causa con Sun per aver realizzato
una Java Virtual Machine difforme da quanto concordato con Sun,
e questo non ha avuto NIETE a che fare con C#.
per "Microsoft Java" intendevo dire scherzosamente un linguaggio Microsoft
per molti aspetti simile al Java.
Post by Angelo Paolitto
Anche questa, secondo me, e' solo una credenza piuttosto diffusa...
Gli x86 hanno almeno 16 (se non ricordo male)
molti di più: oltre a quelli più comuni (registro/registro,
registro/immediato, indirizzo immediato/registro, indirizzo contenuto in
registro/registro, e via dicendo) aggiungi anche tutti quelli per i
registri di debug, quelli di controllo, i registri della FPU, gli MMX...
Post by Angelo Paolitto
modi diversi di accedere
alla memoria che si traducono in 16 opcode diversi per buona parte di
questi si scrive mov.
la semplice "MOV" ha 30 possibili codifiche; lo sapevo bene ma ho detto
comunque come ho detto perché mi sembrava buona come spiegazione per un
principiante; se si interesserà di assembly scoprirà da solo che ad ogni
mnemonic spesso corrispondo diverse codifiche.
Post by Angelo Paolitto
Perche' non il compilatore della Borland o di Microsoft (che si
possono scaricare liberamente per uso non professionale) e l'IDE
ce l'hanno gia'?
chi?
se vuole può scaricare quelli, ma il gcc è meglio perché può farci
qualsiasi cosa per qualsiasi scopo... (almeno credo, non me lo sono letto
il papocchio di licenze, politica, legge e tutto quel pappone là mi
interessa poco).
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Manlio Perillo
2005-09-26 18:02:29 UTC
Permalink
Post by mrnt
Post by Angelo Paolitto
In compenso e' falso anche l'affermazione "rispetto a quest'ultimo
introduce alcune moderne tecniche di programmazione" facendo
riferimento all'OOP. La programmazione ad oggetti e' possibilissima
anche in "C". In C++ si ha "qualche facilitazione in piu'.
non hai le funzioni virtuali, non hai private public e protected, non hai
niente...
Le GTK sono un framework object oriented e sono scritte in C.
Post by mrnt
hai solo la possibilità di ereditare (e non so se è possibile
solo con le estensioni Microsoft o anche senza)... chiamala come ti pare
ma quella per me non è programmazione a oggetti... le vtable come le fai,
a mano?
Forse usando puntatori a funzione?




Saluti Manlio Perillo
mrnt
2005-09-26 18:23:38 UTC
Permalink
Post by Manlio Perillo
Le GTK sono un framework object oriented e sono scritte in C.
non le conosco, ma allora saranno object oriented solo a livello
concettuale, cioè per modo di dire...
Post by Manlio Perillo
Forse usando puntatori a funzione?
appunto a mano

a questo punto diventa questione di punti di vista: tu la chiami
programmazione a oggetti, io no; per me quello non è un metodo virtuale, è
la stessa funzione implementata diversamente in più struct (una che
eredita l'altra) accessibile tramite puntatore.


no, non è un metodo virtuale!!! :)
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Yes
2005-09-27 19:25:51 UTC
Permalink
Post by mrnt
Post by Manlio Perillo
Le GTK sono un framework object oriented e sono scritte in C.
non le conosco, ma allora saranno object oriented solo a livello
concettuale, cioè per modo di dire...
Object-Oriented E' un concetto, nessun modo di dire...che poi le maggiori
implementazioni di questo paradigma abbiano le classi ecc, è un altro
paio di maniche...ciò non toglie che l'interfaccia delle GTK è OO, pur
essendo scritte in C..lasciamo perdere che anche a me questo tipo di
approccio non piace per nulla :-)
Angelo Paolitto
2005-09-27 07:51:23 UTC
Permalink
Post by mrnt
Post by Angelo Paolitto
Se il tono e' stato sgradevole me ne scuso: mai rispindere 5 minuti
prima di spegnere la macchina, si capisce "imparare a programmare"
invece che "voglio realizzare un programma, datemi le istruzioni
passo passo"
perché alla prima domanda secondo te bisogna rispondere male in un NG come
questo? e alla seconda invece avresti risposto bene in un NG come questo?
Le risposte, in ogni caso, sono diverse.
Post by mrnt
se a lui serve potenza e gli interessa diventare un esperto e conoscere a
fondo il funzionamento del suo sistema allora come primo linguaggio il C
fa per lui (in C sono stati creati importanti sistemi operativi).
Se ha voglia di diventare un esperto programmatore, il linguaggio di
programmazione e' una delle ultime cose di cui preoccuparsi.

Se vuoi ti spiego anche il perche'.
Post by mrnt
altrimenti (ipotesi da non scartare, e non sono ironico) può iniziare da
Java o da un altro linguaggio ad alto livello al fine di impadronirsi dei
concetti fondamentali della programmazione in qualsiasi linguaggio (array,
stringhe, interi, numeri a virgola mobile, classi, oggetti, metodi
virtuali, ecc.); si tratta solo di due approcci diversi alla
programmazione.
Se uno vuole "impadronirsi dei concetti fondamentali della
programmazione" la prima cosa da fare e' conoscere la macchina su cui
si trova ad operare, la seconda e' conoscere il S.O. su cui il
programma gira... Ovvero le prime due cose che ho scritto nella mia
risposta.

Programmare NON E' scrivere righe di codice.
Post by mrnt
Post by Angelo Paolitto
Spesso si propende per il VisualBasic
(che bistratti piu' sotto) per la facilita' di utilizzo.
sono in molti a bistrattarlo e ovviamente io posso solo dirti che fanno
tutti bene.
Sara', ma spesso e volentieri ti chiedono se sai programmare in
VisualBasic.
Post by mrnt
come faccio a farmi molto male con quella cosa, aldilà del fatto che è
comunque sbagliata a livello concettuale e che io non l'ho mai scritta?
Passando dal C++ a C e "scoprendo" la meraviglia che ti ho mostrato? Io
conosco di persona il fesso a cui la cosa e' capiata.
Post by mrnt
non interessano di certo a uno che inizia, ma le terrò comunque presenti.
Allora non gli interessa nemmeno farsi la convinzione (sbagliata) che
C++ e C siano l'uno il sovrainsieme dell'altro.
Post by mrnt
non hai le funzioni virtuali, non hai private public e protected, non hai
niente... hai solo la possibilità di ereditare (e non so se è possibile
solo con le estensioni Microsoft o anche senza)... chiamala come ti pare
ma quella per me non è programmazione a oggetti...
Assurdo o meno che ti sembri, quella e' programmazione ad oggetti. E
programmando in C e' un approccio che consiglio (oltre che usare
personalmente)...

Utilizzando un qualcosa tipo

objType* objType_create(void);

e

void objType_destroy(objType*);

si evitano un sacco di casini... Ad esempio crash del programma dovuti
ad una malloc() in una DLL e la free() in un'altra e la perdita di una
settimana per capire perche' la stessa cosa sotto Linux (ad es.) non
succede.
Post by mrnt
... le vtable come le fai,
a mano?
Qualcosa in contrario?

Giusto per precisare... Io non sostengo che programmare ad oggetti in
C facendosi a manina la vtab sia una cosa furba, ma quando ti trovi a
mettere le mani su del codice da 1'500'000 di righe, cosa fai? Ti
rifuiti di lavorarci sopra perche' NON e' ad oggetti (e per me e'
anche una cazzata)...

Anche qui conosco di persona il fesso a cui la cosa e' capitata...
Post by mrnt
sul piano delle innovazioni nei linguaggi di programmazione la
programmazione a oggetti la considero abbastanza moderna (parlo di quella
"vera", non quella fatta con struct al posto di class e le vtable
realizzate con gli array...)
http://heim.ifi.uio.no/~kristen/FORSKNINGSDOK_MAPPE/F_OO_start.html

<cite>

SIMULA I (1962-65) and Simula 67 (1967) are the two first
object-oriented languages. Simula 67 introduced most of the key
concepts of object-oriented programming: both objects and classes,
subclasses (usually referred to as inheritance) and virtual
procedures, combined with safe referencing and mechanisms for bringing
into a program collections of program structures described under a
common class heading (prefixed blocks).

</cite>
Post by mrnt
il concetto di "libreria nativa" (che corrisponde a DLL in Windows e
oggetto shared in Unix) è portabile: se un programma Java usa JNI per
caricare una libreria nativa, per far funzionare il programma è necessario
che esistano due versioni della libreria: la DLL e l'oggetto ELF, e allora
il programma è portabile.
Appena trovo user32.lib sotto Linux comincero' a pensare che tu abbia
ragione (e per piacere evita di tirare in ballo wine, non e' troppo
difficile fare qualcosa che con wine non funziona nemmeno con
preghiere in aramaico stretto).
Post by mrnt
sempre meglio di tanti altri linguaggi in cui è necessario compilare due
volte anche l'eseguibile principale (oltre alla "libreria nativa")... :)
Tu hai una pessima idea di cosa significhi portabile...

printf("a = %d, a+b = %d"\n", a++, a++ + b++);

secondo te e' una istruzione portabile?
Post by mrnt
per "Microsoft Java" intendevo dire scherzosamente un linguaggio Microsoft
per molti aspetti simile al Java.
Ottimo discorso da fare a qualcuno assolutamente digiuno di tutto
quello che riguarda la programmazione.
Come programmatore assembler non valgo gran che, ma basta che ci siano
due modi di accesso alla memoria identificati dall'unico menemonico
mov, per smentire la tua affermazione che l'assembler e 1-1 con il
codice macchina (ed e' quasta la contestazione che ti ho fatto).
Post by mrnt
Post by Angelo Paolitto
Perche' non il compilatore della Borland o di Microsoft (che si
possono scaricare liberamente per uso non professionale) e l'IDE
ce l'hanno gia'?
chi?
I compilatori della Borland e della Microsoft...
Post by mrnt
se vuole può scaricare quelli, ma il gcc è meglio perché può farci
qualsiasi cosa per qualsiasi scopo...
Infatti... e fino a quando scrive

gcc -g -o pippo.exe pippo.c

non ha grossi problemi... E quando scrive gdb che cominciano i casini.
Post by mrnt
... (almeno credo, non me lo sono letto
il papocchio di licenze, politica, legge e tutto quel pappone là mi
interessa poco).
Ottimo! Dovresti farlo se sei un programmatore: consegnare un
programma di cui il committente potrebbe essere costretto a rilasciare
i sorgenti non e' una cosa buona (per il committente, ovvio).

C:\>iao Angelo

P.S. Per inciso, con gcc non sei costretto a niente. Il tuo bravo
sorgente puo' tranquillamente rimanere chiuso (questo e' valido
sicuramente se il sorgente e' tutto e' tutto tuo, potrebbe non esserlo
se usi altri strumenti rilasciati sotto GPL)... Ma io lo so perche' la
licenza l'ho letta.
Post by mrnt
Post by Angelo Paolitto
Se il tono e' stato sgradevole me ne scuso: mai rispindere 5 minuti
prima di spegnere la macchina, si capisce "imparare a programmare"
invece che "voglio realizzare un programma, datemi le istruzioni
passo passo"
perché alla prima domanda secondo te bisogna rispondere male in un NG come
questo? e alla seconda invece avresti risposto bene in un NG come questo?
Le risposte, in ogni caso, sono diverse.
Post by mrnt
se a lui serve potenza e gli interessa diventare un esperto e conoscere a
fondo il funzionamento del suo sistema allora come primo linguaggio il C
fa per lui (in C sono stati creati importanti sistemi operativi).
Se ha voglia di diventare un esperto programmatore, il linguaggio di
programmazione e' una delle ultime cose di cui preoccuparsi.

Se vuoi ti spiego anche il perche'.
Post by mrnt
altrimenti (ipotesi da non scartare, e non sono ironico) può iniziare da
Java o da un altro linguaggio ad alto livello al fine di impadronirsi dei
concetti fondamentali della programmazione in qualsiasi linguaggio (array,
stringhe, interi, numeri a virgola mobile, classi, oggetti, metodi
virtuali, ecc.); si tratta solo di due approcci diversi alla
programmazione.
Se uno vuole "impadronirsi dei concetti fondamentali della
programmazione" la prima cosa da fare e' conoscere la macchina su cui
si trova ad operare, la seconda e' conoscere il S.O. su cui il
programma gira... Ovvero le prime due cose che ho scritto nella mia
risposta.

Programmare NON E' scrivere righe di codice.
Post by mrnt
Post by Angelo Paolitto
Spesso si propende per il VisualBasic
(che bistratti piu' sotto) per la facilita' di utilizzo.
sono in molti a bistrattarlo e ovviamente io posso solo dirti che fanno
tutti bene.
Sara', ma spesso e volentieri ti chiedono se sai programmare in
VisualBasic.
Post by mrnt
come faccio a farmi molto male con quella cosa, aldilà del fatto che è
comunque sbagliata a livello concettuale e che io non l'ho mai scritta?
Passando dal C++ a C e "scoprendo" la meraviglia che ti ho mostrato? Io
conosco di persona il fesso a cui la cosa e' capiata.
Post by mrnt
non interessano di certo a uno che inizia, ma le terrò comunque presenti.
Allora non gli interessa nemmeno farsi la convinzione (sbagliata) che
C++ e C siano l'uno il sovrainsieme dell'altro.
Post by mrnt
non hai le funzioni virtuali, non hai private public e protected, non hai
niente... hai solo la possibilità di ereditare (e non so se è possibile
solo con le estensioni Microsoft o anche senza)... chiamala come ti pare
ma quella per me non è programmazione a oggetti...
Assurdo o meno che ti sembri, quella e' programmazione ad oggetti. E
programmando in C e' un approccio che consiglio (oltre che usare
personalmente)...

Utilizzando un qualcosa tipo

objType* objType_create(void);

e

void objType_destroy(objType*);

si evitano un sacco di casini... Ad esempio crash del programma dovuti
ad una malloc() in una DLL e la free() in un'altra e la perdita di una
settimana per capire perche' la stessa cosa sotto Linux (ad es.) non
succede.
Post by mrnt
... le vtable come le fai,
a mano?
Qualcosa in contrario?

Giusto per precisare... Io non sostengo che programmare ad oggetti in
C facendosi a manina la vtab sia una cosa furba, ma quando ti trovi a
mettere le mani su del codice da 1'500'000 di righe, cosa fai? Ti
rifuiti di lavorarci sopra perche' NON e' ad oggetti (e per me e'
anche una cazzata)...

Anche qui conosco di persona il fesso a cui la cosa e' capitata...
Post by mrnt
sul piano delle innovazioni nei linguaggi di programmazione la
programmazione a oggetti la considero abbastanza moderna (parlo di quella
"vera", non quella fatta con struct al posto di class e le vtable
realizzate con gli array...)
http://heim.ifi.uio.no/~kristen/FORSKNINGSDOK_MAPPE/F_OO_start.html

<cite>

SIMULA I (1962-65) and Simula 67 (1967) are the two first
object-oriented languages. Simula 67 introduced most of the key
concepts of object-oriented programming: both objects and classes,
subclasses (usually referred to as inheritance) and virtual
procedures, combined with safe referencing and mechanisms for bringing
into a program collections of program structures described under a
common class heading (prefixed blocks).

</cite>
Post by mrnt
il concetto di "libreria nativa" (che corrisponde a DLL in Windows e
oggetto shared in Unix) è portabile: se un programma Java usa JNI per
caricare una libreria nativa, per far funzionare il programma è necessario
che esistano due versioni della libreria: la DLL e l'oggetto ELF, e allora
il programma è portabile.
Appena trovo user32.lib sotto Linux comincero' a pensare che tu abbia
ragione (e per piacere evita di tirare in ballo wine, non e' troppo
difficile fare qualcosa che con wine non funziona nemmeno con
preghiere in aramaico stretto).
Post by mrnt
sempre meglio di tanti altri linguaggi in cui è necessario compilare due
volte anche l'eseguibile principale (oltre alla "libreria nativa")... :)
Tu hai una pessima idea di cosa significhi portabile...

printf("a = %d, a+b = %d"\n", a++, a++ + b++);

secondo te e' una istruzione portabile?
Post by mrnt
per "Microsoft Java" intendevo dire scherzosamente un linguaggio Microsoft
per molti aspetti simile al Java.
Ottimo discorso da fare a qualcuno assolutamente digiuno di tutto
quello che riguarda la programmazione.
Come programmatore assembler non valgo gran che, ma basta che ci siano
due modi di accesso alla memoria identificati dall'unico menemonico
mov, per smentire la tua affermazione che l'assembler e 1-1 con il
codice macchina (ed e' quasta la contestazione che ti ho fatto).
Post by mrnt
Post by Angelo Paolitto
Perche' non il compilatore della Borland o di Microsoft (che si
possono scaricare liberamente per uso non professionale) e l'IDE
ce l'hanno gia'?
chi?
I compilatori della Borland e della Microsoft...
Post by mrnt
se vuole può scaricare quelli, ma il gcc è meglio perché può farci
qualsiasi cosa per qualsiasi scopo...
Infatti... e fino a quando scrive

gcc -g -o pippo.exe pippo.c

non ha grossi problemi... E quando scrive gdb che cominciano i casini.

Di sicuro gcc NON E' MEGLIO perche' puoi farci di tutto, ma perche'
(essendo meno semplice da usare) ti costringe a leggerti i manuali.
Pratica estremamente in disuso ultimamente.
Post by mrnt
... (almeno credo, non me lo sono letto
il papocchio di licenze, politica, legge e tutto quel pappone là mi
interessa poco).
Ottimo! Dovresti farlo se sei un programmatore: consegnare un
programma di cui il committente potrebbe essere costretto a rilasciare
i sorgenti puo' non essere una cosa buona se vuoi un'altra commessa.

C:\>iao Angelo

P.S. Per inciso, con gcc non sei costretto a niente. Il tuo bravo
sorgente puo' tranquillamente rimanere chiuso (questo e' valido
sicuramente se il sorgente e' tutto e' tutto tuo, potrebbe non esserlo
se usi altri strumenti rilasciati sotto GPL)... Ma io lo so perche' la
licenza l'ho letta. Io con la programmazione ci campo.
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
mrnt
2005-09-27 12:03:23 UTC
Permalink
Post by Angelo Paolitto
Se ha voglia di diventare un esperto programmatore, il linguaggio di
programmazione e' una delle ultime cose di cui preoccuparsi.
secondo il *tuo* metodo di apprendimento si, secondo quello generalmente
usato nelle università invece no (visto che nella mia alla prima ora del
primo giorno di lezione del primo anno abbiamo fatto l'Hello World in C).
Post by Angelo Paolitto
Se vuoi ti spiego anche il perche'.
non mi interessa, seguirò il metodo della mia università, thx.
Post by Angelo Paolitto
Se uno vuole "impadronirsi dei concetti fondamentali della
programmazione" la prima cosa da fare e' conoscere la macchina su cui
si trova ad operare,
stai dicendo che è necessario conoscere l'architettura di un processore
senza sapere cos'è un puntatore o sbaglio?
Post by Angelo Paolitto
la seconda e' conoscere il S.O. su cui il
programma gira...
stai dicendo che è necessario conoscere la paginazione senza sapere cos'è
un buffer di memoria o sbaglio?
Post by Angelo Paolitto
Programmare NON E' scrivere righe di codice.
fantastico, questa la scrivo su un foglio e la appendo alla parete!!!!!!
Post by Angelo Paolitto
Sara', ma spesso e volentieri ti chiedono se sai programmare in
VisualBasic.
risponderò che non lo so fare ma posso imparare, e in ogni caso lo
sconsiglio.
Post by Angelo Paolitto
Passando dal C++ a C e "scoprendo" la meraviglia che ti ho mostrato?
si; come faccio?
Post by Angelo Paolitto
Allora non gli interessa nemmeno farsi la convinzione (sbagliata) che
C++ e C siano l'uno il sovrainsieme dell'altro.
va bene, ave o Paolitto moriturus te salutat; credevo che dire a un
principiante che l'assembly fosse una traduzione mnemonica degli opcodes
eseguiti dalla CPU e che il C++ fosse praticamente un sovrainsieme del C
andasse bene, ma mi sbagliavo; sei molto bravo, intelligente, ironico e un
tantino OT; altre discussioni sul sesso degli angeli come questa non mi
interessano grazie.
Post by Angelo Paolitto
Assurdo o meno che ti sembri, quella e' programmazione ad oggetti.
è assurda programmazione a oggetti.
Post by Angelo Paolitto
E programmando in C e' un approccio che consiglio (oltre che usare
personalmente)...
ma bravo, bravo, programma a oggetti facendo tutto a mano, lo sai che più
codice scrivi più rischi di metterci errori? e che succede se fai un
errore nella gestione di queste benedette funzioni virtuali, che forse era
meglio affidare al compilatore, strumento sofisticato e oltremodo testato
sul quale hanno lavorato decine di persone migliori di te nel settore?
Post by Angelo Paolitto
si evitano un sacco di casini...
a parte che non ho idea di quali sarebbero i casini che eviti, ma
sicuramente ne introduci molti di più.
Post by Angelo Paolitto
Ad esempio crash del programma dovuti
ad una malloc() in una DLL e la free() in un'altra
se hai avuto di questi problemi vuol dire che non sai creare design
decenti, e comunque malloc e free non si usano nella programmazione a
oggetti "vera" del C++.
Post by Angelo Paolitto
e la perdita di una
settimana per capire perche' la stessa cosa sotto Linux (ad es.) non
succede.
hai perso una settimana per capire che su Windows malloc e free non
corrispondono esattamente a HeapAlloc ed HeapFree, e che anche se
corrispondessero moduli diversi possono usare Heap diversi? complimenti...
Post by Angelo Paolitto
Qualcosa in contrario?
si, il maggiore rischio di errori.
Post by Angelo Paolitto
Giusto per precisare... Io non sostengo che programmare ad oggetti in
C facendosi a manina la vtab sia una cosa furba,
eppure lo fai; non ti evitava casini?
Post by Angelo Paolitto
ma quando ti trovi a
mettere le mani su del codice da 1'500'000 di righe, cosa fai? Ti
rifuiti di lavorarci sopra perche' NON e' ad oggetti
se ci sono costretto ci lavoro, e se è fatto in C "a oggetti" ci lavoro
smadonnando e facendo presente che i tempi di lavoro per me aumenteranno
*di molto* perché è un lavoro pessimo e mi perdo in mezzo a tante cose che
in C++ si sarebbero potute fare in due righe.
Post by Angelo Paolitto
Anche qui conosco di persona il fesso a cui la cosa e' capitata...
sei circondato da fessi o cosa?
Post by Angelo Paolitto
<cite>
SIMULA I (1962-65) and Simula 67 (1967) are the two first
object-oriented languages. Simula 67 introduced most of the key
concepts of object-oriented programming: both objects and classes,
subclasses (usually referred to as inheritance) and virtual
procedures, combined with safe referencing and mechanisms for bringing
into a program collections of program structures described under a
common class heading (prefixed blocks).
</cite>
trovami *molte* altre tecnologie introdotte più recentemente della prog. a
ogg. (che riguardino i linguaggi di programmazione però, non mi tirare
fuori cose che non c'entrano nulla; e bada che siano anche significative,
come lo è la prog. a ogg.) e ti darò ragione; altrimenti continuerò a dire
che la programmazione a oggetti è relativamente moderna e aggiungerò che
negli ultimi tempi non si sono fatti particolari progressi nel settore.
Post by Angelo Paolitto
Appena trovo user32.lib sotto Linux comincero' a pensare che tu abbia
ragione
il lib sicuramente non ce lo troveresti mai, la libreria forse...
Post by Angelo Paolitto
(e per piacere evita di tirare in ballo wine,
non l'avrei mai fatto, ma visto che me l'hai suggerito...
Post by Angelo Paolitto
non e' troppo
difficile fare qualcosa che con wine non funziona nemmeno con
preghiere in aramaico stretto).
si, non piace neanche a me Wine...
Post by Angelo Paolitto
Tu hai una pessima idea di cosa significhi portabile...
printf("a = %d, a+b = %d"n", a++, a++ + b++);
secondo te e' una istruzione portabile?
no perché non si può sapere l'ordine di valutazione dei parametri, ma non
vedo che c'entri col Java: mi sembra che tu l'abbia detto solo per far
vedere che conosci quel problema...
Post by Angelo Paolitto
Ottimo discorso da fare a qualcuno assolutamente digiuno di tutto
quello che riguarda la programmazione.
grazie.
(prego.)
Post by Angelo Paolitto
Come programmatore assembler non valgo gran che, ma basta che ci siano
due modi di accesso alla memoria identificati dall'unico menemonico
mov, per smentire la tua affermazione che l'assembler e 1-1 con il
codice macchina (ed e' quasta la contestazione che ti ho fatto).
a parte che per un principiante che probabilmente non si occuperà mai di
assembly va benissimo, comunque io non ho detto che è 1 a 1: la traduzione
da mnemonici a opcodes non è meccanica, mentre l'inverso lo è.
a proposito, si dice assembly, non assembler.
Post by Angelo Paolitto
Post by Angelo Paolitto
Perche' non il compilatore della Borland o di Microsoft (che si
possono scaricare liberamente per uso non professionale) e l'IDE
ce l'hanno gia'?
chi?
I compilatori della Borland e della Microsoft...
i compilatori della Borland e della Microsoft hanno i compilatori della
Borland e della Microsoft? o i compilatori della Borland e della Microsoft
hanno già l'IDE?
Post by Angelo Paolitto
E quando scrive gdb che cominciano i casini.
solo perché non è grafico; basta avere un IDE.
non gli ho parlato di IDE perché ancora non serve, ma se vuoi colgo
l'occasione per consigliargli CodeBlocks, l'ex MinGW Developer Studio da
quanto ho capito; sarei tentato di consigliargli Visual Studio 6, ma non è
free purtroppo :( (non che questo debba rappresentare un problema a dire
il vero, solo che lo tenga presente).
altrimenti potrebbe usare Visual Studio 2005 Express, che col C e C++
standard dovrebbe funzionare lo stesso, ma non può usare le API a meno che
non fa come me che ho sudato sette camicie per configurare il PSDK
nell'IDE (magari bastasse specificare le directories O.o').
Post by Angelo Paolitto
Ottimo! Dovresti farlo se sei un programmatore: [cut]
a tempo debito: per ora non serve (sono uno studente e non sono neanche a
metà degli studi).
Post by Angelo Paolitto
P.S. Per inciso, con gcc non sei costretto a niente. Il tuo bravo
sorgente puo' tranquillamente rimanere chiuso (questo e' valido
sicuramente se il sorgente e' tutto e' tutto tuo, potrebbe non esserlo
se usi altri strumenti rilasciati sotto GPL)... Ma io lo so perche' la
licenza l'ho letta.
io invece lo so perché uno me l'ha detto; come linea orientativa andrà più
che bene (dopo opportune conferme) almeno per adesso che non lavoro.
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
NoWhereMan
2005-09-27 14:43:10 UTC
Permalink
[megacut]

Evviva! Evviva! finalmente un flame!
:D
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
mrnt
2005-09-27 15:48:00 UTC
Permalink
Post by NoWhereMan
Evviva! Evviva! finalmente un flame!
da quanto stavi su Usenet ad aspettarne uno? :D
ogni tanto ti vedo da queste parti :PP
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
NoWhereMan
2005-09-27 16:37:09 UTC
Permalink
Post by mrnt
Post by NoWhereMan
Evviva! Evviva! finalmente un flame!
da quanto stavi su Usenet ad aspettarne uno? :D
ogni tanto ti vedo da queste parti :PP
Mica è il primo, figurati...
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
Angelo Paolitto
2005-09-27 16:44:54 UTC
Permalink
Post by NoWhereMan
[megacut]
Evviva! Evviva! finalmente un flame!
Questo un flame??? Ah... anima innocente :-)

C:\>iao Angelo
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
NoWhereMan
2005-09-27 16:47:27 UTC
Permalink
Post by Angelo Paolitto
Post by NoWhereMan
Evviva! Evviva! finalmente un flame!
Questo un flame??? Ah... anima innocente :-)
Anima innocente, a chi??? STRO**O!
:D lol!
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
mrnt
2005-09-27 18:51:55 UTC
Permalink
Post by NoWhereMan
innocente, a chi??? STRO**O!
ma LLLLLOOOOOOOOOOoooooooo...

mhwuahwuahwuahuwahuwa :DDDD
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
NoWhereMan
2005-09-27 19:11:52 UTC
Permalink
Post by mrnt
Post by NoWhereMan
innocente, a chi??? STRO**O!
ma LLLLLOOOOOOOOOOoooooooo...
mhwuahwuahwuahuwahuwa :DDDD
#in lontananza ... iniziarono a risuonare le note di "Dune Buggy"#

:P
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
Angelo Paolitto
2005-09-27 16:43:07 UTC
Permalink
Post by mrnt
secondo il *tuo* metodo di apprendimento si, secondo quello generalmente
usato nelle università invece no (visto che nella mia alla prima ora del
primo giorno di lezione del primo anno abbiamo fatto l'Hello World in C).
Perche' all'universita' insegnano a programmare? E' gia' se chi esce
sa che non bisogna restituire puntatori alle variabili locali non
static.

La programmazione si impara dopo.
Post by mrnt
Post by Angelo Paolitto
Se vuoi ti spiego anche il perche'.
non mi interessa, seguirò il metodo della mia università, thx.
Pero' sotto te lo spiego lo stesso... Almeno un paio di punti :-)
Post by mrnt
Post by Angelo Paolitto
Se uno vuole "impadronirsi dei concetti fondamentali della
programmazione" la prima cosa da fare e' conoscere la macchina su cui
si trova ad operare,
stai dicendo che è necessario conoscere l'architettura di un processore
senza sapere cos'è un puntatore o sbaglio?
Sarebbe opportuno almeno sapere perche' quando si fa una connessione
tramite socket gli interi e gli short vanno fatti passare tramite
htons() e htonl (questa e' roba che riguarda il processore e come
organizza la roba in memoria).

Direi che conoscere un minimo il processore e' indispensabile per
poter programmare decentemente.
Post by mrnt
stai dicendo che è necessario conoscere la paginazione senza sapere cos'è
un buffer di memoria o sbaglio?
No, ma sapere che razza di S.O. si sta' usando aiuta a fare programmi
che girano (per lo meno) sulle versioni successive dello stesso. E se
non girano, almeno si sa il perche'... Cosi' si puo' scrivere sulle
specifiche del programma: "Questa roba richiede Win9x perche' fa
porcherie con la memoria e verrebbe bacchettata violentemente da NT e
seguenti".
Post by mrnt
Post by Angelo Paolitto
Programmare NON E' scrivere righe di codice.
fantastico, questa la scrivo su un foglio e la appendo alla parete!!!!!!
Fallo. Poi fra qualche tempo rileggitela... Mi darai ragione.
Post by mrnt
Post by Angelo Paolitto
Passando dal C++ a C e "scoprendo" la meraviglia che ti ho mostrato?
si; come faccio?
Programmi per 2 o 3 anni in C++, senza passare prima per il "C", poi
passi a programmare in C. Copi scimmiescamente dei pezzi di codice che
hai scritto qualche tempo prima, ci metti le mani sopra e, prima o
poi, una la meraviglia che ti ho mostrato viene fuori. Se non l'hai
ancora capito, e' quello che e' successo a me e da allora ho smesso di
scrivere cose del tipo

char pippo[5] = "Ciao";
Post by mrnt
.. altre discussioni sul sesso degli angeli come questa non mi
interessano grazie.
Quello degli altri Angeli, non mi interessa. Il mio e' del tipo
giusto... Non c'e' bisogno di discutere oltre: ma se non sbaglio il NG
contiene "programmare"...
Post by mrnt
Post by Angelo Paolitto
E programmando in C e' un approccio che consiglio (oltre che usare
personalmente)...
ma bravo, bravo, programma a oggetti facendo tutto a mano,
Ho detto che mi rifaccio la vtab a mano? Ho detto che in un progetto
su cui ho messo le mani mi e' capitato anche di fare la vtab a manina,
che programmare ad oggetti e' possibile anche in "C" ed un approccio
del genere (evitando le menate tipo farsi la vtab a mano) risulta
anche conveniente. Rileggi meglio quello che ho scritto.
Post by mrnt
Post by Angelo Paolitto
Ad esempio crash del programma dovuti
ad una malloc() in una DLL e la free() in un'altra
se hai avuto di questi problemi
Se ho avuto di questi problemi e' perche' NON conoscevo a sufficienza
come si comportava il S.O.: ero un programmatore scarso. Ma io imparo
dai miei errori e oggi una fesseria del genere non la farei piu'.
Post by mrnt
vuol dire che non sai creare design
decenti, e comunque malloc e free non si usano nella programmazione a
oggetti "vera" del C++.
Il casino lo produci anche usando new e delete. :-)
Post by mrnt
hai perso una settimana per capire che su Windows malloc e free non
corrispondono esattamente a HeapAlloc ed HeapFree, e che anche se
corrispondessero moduli diversi possono usare Heap diversi? complimenti...
Eppure io ero convinto che malloc fosse solo un wrapper per le una
delle chiamate native di Windows: vedi cosa significa scrivere codice
e non conoscere bene il propio S.O.? Vedi cosa significa non avere
idea di cosa sia la portabilita' dei programmi: su Linux una cosa
del genere non mi e mai successa ed ho portato il tutto di pacca su
windows.
Post by mrnt
Post by Angelo Paolitto
Qualcosa in contrario?
si, il maggiore rischio di errori.
Cio' non toglie che sia possibile e che io del codice del genere me lo
sia trovato tra i piedi.
Post by mrnt
Post by Angelo Paolitto
Giusto per precisare... Io non sostengo che programmare ad oggetti in
C facendosi a manina la vtab sia una cosa furba,
eppure lo fai; non ti evitava casini?
Leggi meglio la prossima volta. Io non ho mai detto una cosa del genere.
Post by mrnt
Post by Angelo Paolitto
Anche qui conosco di persona il fesso a cui la cosa e' capitata...
sei circondato da fessi o cosa?
No, il fesso e' sempre lo stesso.
Post by mrnt
trovami *molte* altre tecnologie introdotte più recentemente della prog. a
ogg.
Su non arrampicarti sugli specchi... La ruota non e' moderna solo
perche' dopo non e' stato inventato niente di meglio come mezzo di
trasporto su terra.
Post by mrnt
Post by Angelo Paolitto
Appena trovo user32.lib sotto Linux comincero' a pensare che tu abbia
ragione
il lib sicuramente non ce lo troveresti mai, la libreria forse...
Certo, come no... quella di Wine, che non e' proprio uguale a quella di
Windows.
Post by mrnt
Post by Angelo Paolitto
Tu hai una pessima idea di cosa significhi portabile...
printf("a = %d, a+b = %d"n", a++, a++ + b++);
secondo te e' una istruzione portabile?
no perché non si può sapere l'ordine di valutazione dei parametri, ma non
C'entra con il fatto che tu non hai idea di cosa sia la portabilita':
per te basta che il programma compili o che si abbiano le stesse
librerie su due piattaforme diverse.

<cite>
sempre meglio di tanti altri linguaggi in cui è necessario compilare due
volte anche l'eseguibile principale (oltre alla "libreria nativa")
</cite>

Che un programma compili e' una condizione necessaria (ma non
sufficiente), che ci siano le stesse librerie potrebbe anche non
essere necessario (gli #ifdef ci sono per questo) e, se anche ci sono,
potrebbe non essere sufficiente.

Ma ovviamente per te conoscere il processore NON e' indispensabile per
saper programmare... Se vuoi, in due minuti ti scrivo un pezzo di
codice che compila su windows e linux e quello che vuoi, purche' il
sistema ospite abbia un compilatore che segua decentemente lo standard
C, anche non l'ultimissimo, che funziona una meraviglia se richiamato
da Java in Windows e fa casino se richiamato da Java in OsX.

E tutto in C standard, senza trucchi e senza inganni (non come la
fetecchia precedente).

Anzi, puoi farlo da solo... Sono sicuro che hai gia' capito come fare.
Post by mrnt
... mi sembra che tu l'abbia detto solo per far
vedere che conosci quel problema...
Dici? Allora vuol dire che ho una visione piu' chiara della tua su
cosa sia la portabilita'.
Post by mrnt
a proposito, si dice assembly, non assembler.
La gente fa un sacco di errori... Pensa che conosco gente che afferma
che il C e' un sottinsieme del C++... ;-)

C:\>iao Angelo
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
mrnt
2005-09-27 20:39:27 UTC
Permalink
Post by Angelo Paolitto
Perche' all'universita' insegnano a programmare?
no, a fare l'uncinetto.
guarda che un conto è quello che insegnano i professori e un conto è
quello che impara la maggior parte degli studenti: se molti studenti sono
fessi, non studiano e si laureano mettendoci il doppio degli anni non è
colpa mia (e oltrettutto vedi con che risultati escono...).
Post by Angelo Paolitto
E' gia' se chi esce
sa che non bisogna restituire puntatori alle variabili locali non
static.
da me quelli bravi non lo fanno e i prof dicono di non farlo (per quanto
il mio prof. di programmazione 1 fosse un vero e proprio testicolo, quindi
figurati con un prof. bravo).
uno studente che ha studiato e si è laureato bene e presto non restituisce
puntatori a variabili locali: il mio prof di laboratorio di programmazione
lo avrebbe steccato brutalmente dopo averlo preso per il c**o pesantemente
:)
restituire puntatori a variabili locali è persino errato a livello
concettuale.
Post by Angelo Paolitto
La programmazione si impara dopo.
anche, non solo.
Post by Angelo Paolitto
Sarebbe opportuno almeno sapere perche' quando si fa una connessione
tramite socket gli interi e gli short vanno fatti passare tramite
htons() e htonl (questa e' roba che riguarda il processore e come
organizza la roba in memoria).
quando si imparano i sockets in genere si è già arrivati a buon punto con
l'apprendimento del C...
Post by Angelo Paolitto
Direi che conoscere un minimo il processore e' indispensabile per
poter programmare decentemente.
giusto un paio di fesserie a livello di "il computer è composto da
periferiche di input (mouse e tastiera), periferiche di output (monitor e
stampante), unità di memorizzazione e unità di elaborazione" (roba come
questa non è neanche specifica dell'architettura su cui lavori); il resto
è ragionevole impararlo dopo (come hanno fatto da me).
Post by Angelo Paolitto
No, ma sapere che razza di S.O. si sta' usando aiuta a fare programmi
che girano (per lo meno) sulle versioni successive dello stesso. E se
non girano, almeno si sa il perche'... Cosi' si puo' scrivere sulle
specifiche del programma: "Questa roba richiede Win9x perche' fa
porcherie con la memoria e verrebbe bacchettata violentemente da NT e
seguenti".
quando uno impara il suo primo linguaggio di programmazione non è
obbligato a mettere i requisiti ai suoi programmi e spesso manco servono...
Post by Angelo Paolitto
Post by mrnt
Post by Angelo Paolitto
Programmare NON E' scrivere righe di codice.
fantastico, questa la scrivo su un foglio e la appendo alla parete!!!!!!
Fallo. Poi fra qualche tempo rileggitela... Mi darai ragione.
hai visto il film "scoprendo Forrester"? be', per citarlo, il mio concetto
di programmare non è pensare, è programmare.
Post by Angelo Paolitto
Programmi per 2 o 3 anni in C++, senza passare prima per il "C", poi
passi a programmare in C. Copi scimmiescamente dei pezzi di codice che
hai scritto qualche tempo prima, ci metti le mani sopra e, prima o
poi, una la meraviglia che ti ho mostrato viene fuori. Se non l'hai
ancora capito, e' quello che e' successo a me e da allora ho smesso di
scrivere cose del tipo
char pippo[5] = "Ciao";
intendevo dire: come faccio a farmi molto male? in questo modo non mi
faccio molto male, semplicemente scopro che il compilatore mi da' errore e
correggo l'assurdità che ho scritto... tutte ipotesi per assurdo
naturalmente perché io roba come quella non l'ho mai scritta... fin dai
primi tempi col C e col C++ ho pensato la più ovvia delle cose: "che
succede se poi in futuro devo modificare quella stringa? è noioso doversi
rimettere a contare tutti i caratteri e aggiungere 1..."
Post by Angelo Paolitto
Ho detto che mi rifaccio la vtab a mano?
dal momento che hai detto che programmavi a oggetti in C (e lo consigliavi
pure) pensavo che la tua peculiare programmazione a oggetti non escludesse
le funzioni virtuali...
Post by Angelo Paolitto
Ho detto che in un progetto
su cui ho messo le mani mi e' capitato anche di fare la vtab a manina,
ma non l'hai fatto tu suppongo: è già qualcosa.
Post by Angelo Paolitto
che programmare ad oggetti e' possibile anche in "C" ed un approccio
del genere (evitando le menate tipo farsi la vtab a mano) risulta
anche conveniente.
imho non risulta mai conveniente; le vtables non sono le uniche cose che
mancano: mancano anche le classi con più basi e public/private/protected;
se queste belle cose esistono dei motivi ci saranno.
Post by Angelo Paolitto
Se ho avuto di questi problemi e' perche' NON conoscevo a sufficienza
come si comportava il S.O.: ero un programmatore scarso.
se ho ben capito cosa insinui, posso dirti che un principiante non
deve/può/sa fare librerie esterne, ne' PE ne' ELF, perché non sono parte
dell'apprendimento del linguaggio di programmazione e che prima di
arrivare a farle passerà un bel po' perché per saperle fare bisogna
conoscere, oltre giustamente a numerose caratteristiche del sistema
operativo, un linguaggio di programmazione in primis: la programmazione
parte da quello.
Post by Angelo Paolitto
Il casino lo produci anche usando new e delete. :-)
allora rimane solo che non sai creare design decenti (anzi, non sapevi, a
quanto dici).
Post by Angelo Paolitto
Post by mrnt
hai perso una settimana per capire che su Windows malloc e free non
corrispondono esattamente a HeapAlloc ed HeapFree, e che anche se
corrispondessero moduli diversi possono usare Heap diversi?
complimenti...
Eppure io ero convinto che malloc fosse solo un wrapper per le una
anche se lo fosse stato non potevi fare queste assunzioni perché rimane il
fatto che moduli diversi possono usare heap diversi: gli heap di Windows
sono gestiti dal runtime del linguaggio in cui programmi, e siccome non
puoi conoscere il funzionamento del runtime, non puoi assumere che sia
corretto allocare in un modulo e liberare nell'altro e pretendere che
tutto funzioni; su Linux funziona per caso: si tratta di un sistema
operativo implementato in maniera tale da permetterti la simile schifezza
(poi dicono che il software Microsoft ti lecca il didietro :D) che è poco
elegante anche come design.
in altre parole, non sapevi fare una DLL, non del tutto almeno, ma questo
non c'entra con i linguaggi di programmazione che allora conoscevi; io
avrei detto che sapevi programmare ma eri niubbo; osservando del tuo
codice avrei anche potuto dire se a mio parere programmavi bene o male
(probabilmente abbastanza male viste le stringhe inizializzate dichiarate
a quel modo).
Post by Angelo Paolitto
vedi cosa significa scrivere codice
e non conoscere bene il propio S.O.?
significa aver appena iniziato a programmare (non necessariamente male) e
pretendere di voler fare software relativamente complessi.
Post by Angelo Paolitto
Vedi cosa significa non avere
idea di cosa sia la portabilita' dei programmi: su Linux una cosa
del genere non mi e mai successa ed ho portato il tutto di pacca su
windows.
non si può sapere tutto fin dall'inizio, e non si può pretendere (come tu
hai detto di fare) di sapere prima ciò che va saputo dopo (illudendoti
così di sapere anche ciò che va saputo prima e quindi di sapere tutto).
Post by Angelo Paolitto
Post by mrnt
Post by Angelo Paolitto
Qualcosa in contrario?
si, il maggiore rischio di errori.
Cio' non toglie che sia possibile e che io del codice del genere me lo
sia trovato tra i piedi.
che ti devo dire, era codice scritto male, io non lo scriverei.
Post by Angelo Paolitto
Post by mrnt
eppure lo fai; non ti evitava casini?
Leggi meglio la prossima volta. Io non ho mai detto una cosa del genere.
[QUOTE, Angelo Paolitto]
Assurdo o meno che ti sembri, quella e' programmazione ad oggetti. E
programmando in C e' un approccio che consiglio (oltre che usare
personalmente)...

Utilizzando un qualcosa tipo

objType* objType_create(void);

e

void objType_destroy(objType*);

si evitano un sacco di casini...
[/QUOTE]
qui hai inequivocabilmente detto di programmare a oggetti in C, di
consigliarlo anche, e che "ti evita casini".
Post by Angelo Paolitto
Post by mrnt
sei circondato da fessi o cosa?
No, il fesso e' sempre lo stesso.
l'unico motivo per cui eri fesso era che pretendevi, per così dire, di
scrivere la "B" senza aver nemmeno finito di imparare la "A". (oggi la
cena mi ispira metafore)
Post by Angelo Paolitto
Su non arrampicarti sugli specchi... La ruota non e' moderna solo
perche' dopo non e' stato inventato niente di meglio come mezzo di
trasporto su terra.
sono state introdotte **MOLTE** tecnologie nel settore dei trasporti da
quando è stata inventata la ruota, e anche molto significative: per forza
che definire moderna la ruota suoni male.
per quanto riguarda la programmazione a oggetti è bastato aggiungere un
"relativamente" ed ecco che la tecnologia suona subito modernissima.
allora, questi esempi? oppure devo aggiungere che non si sono fatti
particolari progressi nel settore negli ultimi decenni?
Post by Angelo Paolitto
Certo, come no... quella di Wine, che non e' proprio uguale a quella di
Windows.
abbi pazienza, Wine è un progetto di per se' complesso da realizzare ed è
realizzato pure male (non ci gira quasi niente di utile); tu non prendere
user32.dll come esempio, prendi una semplice libreria creata in C++ dal
programmatore Java, ad esempio un layer che si interpone tra Java e
OpenGL: questo è un esempio perfetto :) sorgenti portabilissimi e
eseguibile finale Java portabile, a meno di errori/differenze nella JVM.
e comunque tutti questi non sono problemi di Java: i programmi Java sono
portabili, nel tuo esempio quello che non era portabile (anzi, lo era ma
difficilmente) era user32, non il programma Java.
è arrivato... -_-'
Post by Angelo Paolitto
per te basta che il programma compili o che si abbiano le stesse
librerie su due piattaforme diverse.
tutto il resto si generalizza in errori di runtime e si risolve con
workaround e bug report; ma la printf che c'entrava scusa?
Post by Angelo Paolitto
Che un programma compili e' una condizione necessaria (ma non
sufficiente), che ci siano le stesse librerie potrebbe anche non
essere necessario (gli #ifdef ci sono per questo) e, se anche ci sono,
potrebbe non essere sufficiente.
qui però stai parlando di portabilità del sorgente, non dell'immagine
finale, e quindi comunque non c'entra col caso del Java: il Java nasce con
la portabilità come uno dei suoi obiettivi primari, è ovvio; se ci sono
incoerenze tra le JVM prodotte da Sun è solo a causa di errori, e
qualunque azienda o singolo programmatore gradisce molto i bug report,
specie se riesce a riprodurre l'errore e a correggerlo.
Post by Angelo Paolitto
Ma ovviamente per te conoscere il processore NON e' indispensabile per
saper programmare...
dipende a che livello programmi: se fai lavori che richiedono la
conoscenza dell'architettura su cui lavori e per la quale distribuisci,
allora devi conoscere la tua bella architettura; lo stesso vale per il
sistema operativo che ospita il tuo bel programma. sono anche possibili i
casi di "compromesso": è possibile che per un lavoro tu debba conoscere
l'architettura e il SO su cui lavori solo ad un certo livello di
approfondimento. per esempio: 3 anni fa io conoscevo bene le API Win32 ma
conoscevo molto poco dei processori Intel e del funzionamento di Windows
NT e in generale di un moderno kernel in modalità protetta; di conseguenza
sapevo usare la maggior parte delle API: sapevo usare user32, advapi e
gdi32, ma non sapevo usare buona parte di kernel32.
in ogni caso prima di conoscere qualsiasi cosa tra tutte queste meraviglie
ho imparato un paio di linguaggi di programmazione (a 12-13 anni) e
successivamente un altro (a 16), poi è venuto il resto (da 17 in poi).
ma perché ho l'impressione di dire tutte cose asslutamente ovvie?
Post by Angelo Paolitto
Se vuoi, in due minuti ti scrivo un pezzo di
codice che compila su windows e linux e quello che vuoi, purche' il
sistema ospite abbia un compilatore che segua decentemente lo standard
C, anche non l'ultimissimo, che funziona una meraviglia se richiamato
da Java in Windows e fa casino se richiamato da Java in OsX.
se il casino succede a causa delle librerie esterne ("native") che
chiamerai non mi interessa; se succede solo a causa della particolare JVM
di Microsoft non mi interessa lo stesso; mi interessa solo se succede per
una differenza di implementazione non documentata delle JVM Sun: in tal
caso farò un bug report e ti ringrazierò anche da parte di Sun.
Post by Angelo Paolitto
E tutto in C standard, senza trucchi e senza inganni (non come la
fetecchia precedente).
ah, allora la magagna sta nella libreria non nel programma Java, lo vedi
che non mi interessa...
Post by Angelo Paolitto
Anzi, puoi farlo da solo... Sono sicuro che hai gia' capito come fare.
come no, basta non leggersi la documentazione del caso (o essere degli
hacker geniali e/o fortunati che scoprono un bug).
Post by Angelo Paolitto
Dici? Allora vuol dire che ho una visione piu' chiara della tua su
cosa sia la portabilita'.
spiegati meglio: cos'è che non dovrei vedere?
Post by Angelo Paolitto
La gente fa un sacco di errori... Pensa che conosco gente che afferma
che il C e' un sottinsieme del C++... ;-)
se è per questo conosco addirittura dei balordi che programmano in C a
oggetti.
bando alle insinuazioni cretine, se rileggi bene quello che ho scritto
(cit.) nel mio post iniziale, vedrai che io ho detto che il C++ è
*praticamente* un sovrainsieme del C, ed è vero: il sottoinsieme comune è
vastissimo, corrisponde quasi al C ed esclude solo le tue sottigliezze
nelle quali nessuno sano di mente andrà mai a cacciarsi (i miei coetanei
per quanto niubbi e/o stupidi non li ho ancora visti scrivere char sz[5] =
"ciao"; quelli intelligenti nemmeno).
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
NoWhereMan
2005-09-28 07:50:38 UTC
Permalink
on Tue, 27 Sep 2005 22:39:27 +0200, mrnt wrote:

[megacut]

mrnt, scusa, per curiosità, a che università sei iscritto? Io mi sono
immatricolato da poco a info alla statale di Milano :D
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
mrnt
2005-09-28 11:24:27 UTC
Permalink
Post by NoWhereMan
[megacut]
mrnt, scusa, per curiosità, a che università sei iscritto? Io mi sono
immatricolato da poco a info alla statale di Milano :D
La Sapienza di Roma; tra qualche gg mi iscrivo al 2° anno
primo anno: 8 esami su 10 superati :-|
MHWUAHUWAHUWAHUWAHUWAHUWA
peccato che tutti gli amici che mi ero fatto non li vedrò più se non di
sfuggita :-|
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Matteo
2005-09-29 20:58:50 UTC
Permalink
Post by mrnt
Post by NoWhereMan
[megacut]
mrnt, scusa, per curiosità, a che università sei iscritto? Io mi sono
immatricolato da poco a info alla statale di Milano :D
La Sapienza di Roma; tra qualche gg mi iscrivo al 2° anno
primo anno: 8 esami su 10 superati :-|
MHWUAHUWAHUWAHUWAHUWAHUWA
peccato che tutti gli amici che mi ero fatto non li vedrò più se non di
sfuggita :-|
Anch'io sono a la sapienza!
Yes
2005-09-28 11:36:42 UTC
Permalink
Post by mrnt
Post by Angelo Paolitto
Perche' all'universita' insegnano a programmare?
no, a fare l'uncinetto.
guarda che un conto è quello che insegnano i professori e un conto è
quello che impara la maggior parte degli studenti: se molti studenti sono
fessi, non studiano e si laureano mettendoci il doppio degli anni non è
colpa mia (e oltrettutto vedi con che risultati escono...).
Non ho mai visto un laureato che sapesse programmare per quello che
insegnavano all'università...per la mia esperienza, nelle università ti
insegnano un ottimo *metodo* per *imparare* a programmare, ma non di certo
a programmare...cfr Donald E. Knuth, "The Art of Computer Programming" ;-)
Post by mrnt
Post by Angelo Paolitto
E' gia' se chi esce
sa che non bisogna restituire puntatori alle variabili locali non
static.
da me quelli bravi non lo fanno e i prof dicono di non farlo (per quanto
il mio prof. di programmazione 1 fosse un vero e proprio testicolo, quindi
figurati con un prof. bravo).
uno studente che ha studiato e si è laureato bene e presto non
restituisce puntatori a variabili locali: il mio prof di laboratorio di
programmazione lo avrebbe steccato brutalmente dopo averlo preso per il
c**o pesantemente
:)
restituire puntatori a variabili locali è persino errato a livello
concettuale.
Ho visto anche schifezze peggiori uscire dai corsi universitari...
Post by mrnt
Post by Angelo Paolitto
La programmazione si impara dopo.
anche, non solo.
La VERA programmazione si impara dopo, imho
Post by mrnt
Post by Angelo Paolitto
Sarebbe opportuno almeno sapere perche' quando si fa una connessione
tramite socket gli interi e gli short vanno fatti passare tramite
htons() e htonl (questa e' roba che riguarda il processore e come
organizza la roba in memoria).
quando si imparano i sockets in genere si è già arrivati a buon punto
con l'apprendimento del C...
I sockets col C c'entrano poco, sono interamente dipendenti dall'ambiente
operativo

[CUT]
Post by mrnt
Post by Angelo Paolitto
Certo, come no... quella di Wine, che non e' proprio uguale a quella di
Windows.
abbi pazienza, Wine è un progetto di per se' complesso da realizzare ed
è realizzato pure male (non ci gira quasi niente di utile); tu non
Wine è un progetto realizzato benissimo, il fatto che non ci gira "quasi
niente di utile" (IE,Office,Autocad non mi sembrano *tanto*inutili,ma è
questione di POV) non significhi che sia scritto male, provaci tu a
replicare le API di un progetto chiuso e farci girare applicazioni
complesse!
mrnt
2005-09-28 15:41:29 UTC
Permalink
Post by Yes
Non ho mai visto un laureato che sapesse programmare per quello che
insegnavano all'università...
probabilmente rientrava nel 90% dei fuori corso usciti con voti non
brillanti, è una situazione tipica; l'università italiana può fare ben di
meglio di quello che hai visto tu.
Post by Yes
per la mia esperienza, nelle università ti
insegnano un ottimo *metodo* per *imparare* a programmare, ma non di certo
a programmare...cfr Donald E. Knuth, "The Art of Computer Programming" ;-)
ma che senso ha quello che dici? uno se ne sta ad imparare un puro metodo
per 5 anni senza mai applicarlo secondo te? e comunque non è del tutto
vero che quello che ti insegnano si riduce solamente a un metodo: ci sono
numerose occasioni all'università che permettono anche ai più apatici di
imparare qualcosa di concreto.
Post by Yes
Post by mrnt
restituire puntatori a variabili locali è persino errato a livello
concettuale.
Ho visto anche schifezze peggiori uscire dai corsi universitari...
al mondo esiste di tutto, ma tu hai questa abitudine di guardare sempre al
famoso 90% :)
ogni tanto dai anche un'occhiata al rimanente 10 ;)
Post by Yes
La VERA programmazione si impara dopo, imho
e 5 anni che si impara? (solo "metodo"...)
Post by Yes
I sockets col C c'entrano poco, sono interamente dipendenti dall'ambiente
operativo
ho preso in esempio il linguaggio C perché C & socket di Berkeley è un
classico (è molto comune all'università), ma nulla toglie naturalmente che
io possa utilizzare ws2_32.dll su Windows tramite Delphi (ad esempio),
anzi mi pare che la VCL forniva pure qualche TSocket o roba simile.
ad ongi modo il discorso di fondo non cambia: prima impari un linguaggio
di programmazione (solitamente nelle università il C) e *poi* i socket; la
conoscenza dei socket a quel punto può anche implicare alcune conoscenze
basilari dell'architettura della macchina su cui si lavora, perfettamente
lecito visto che *dopo* aver appreso il linguaggio è possibile
approfondire la conoscenza della macchina su cui si lavora (una volta che
si hanno le basi necessarie).
Post by Yes
Wine è un progetto realizzato benissimo, il fatto che non ci gira "quasi
niente di utile" (IE,Office,Autocad non mi sembrano *tanto*inutili,ma è
questione di POV) non significhi che sia scritto male, provaci tu a
replicare le API di un progetto chiuso e farci girare applicazioni
complesse!
be', anche io penso che Office e Autocad siano molto utili, nel dire
quella frase ho esagerato, ma penso comunque che Wine non sia stato
realizzato in maniera proprio eccellente (e i pareri di molti "linuxisti"
su questo punto non mi smentiscono affatto... e io non sono linuxista...);
diciamo che personalmente io l'avrei realizzato più in "basso", più kernel
mode, e magari anche con architettura parzialmente microkernel: non so
come funziona Linux, ma avrei fatto un bel driver, poi un layer interposto
tra i processi Win32 e il driver, e un processo a parte, "di sistema", per
implementare la parte microkernel; il resto (la parte monolitica)
implementato in kernel mode all'interno del driver. ovviamente sono tutte
linee molto generiche... secondo me realizzato in questo modo sarebbe
stato più performante, visto che a quanto ne so Wine è implementato tutto
in user mode ed è semplicemente un layer tra Win32 e chiamate Unix
(smentendo così il significato del suo nome: "Wine Is Not an Emulator"...
a me sembra che lo sia eccome... emula chiamate Unix traducendole dalle
Win32 :| )
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Yes
2005-09-28 23:36:20 UTC
Permalink
Post by mrnt
Post by Yes
Non ho mai visto un laureato che sapesse programmare per quello che
insegnavano all'università...
probabilmente rientrava nel 90% dei fuori corso usciti con voti non
brillanti, è una situazione tipica; l'università italiana può fare ben
di meglio di quello che hai visto tu.
se si tratta del 90%, è la norma, e il tuo 10% è l'eccezione
Post by mrnt
Post by Yes
per la mia esperienza, nelle università ti insegnano un ottimo *metodo*
per *imparare* a programmare, ma non di certo a programmare...cfr Donald
E. Knuth, "The Art of Computer Programming" ;-)
ma che senso ha quello che dici? uno se ne sta ad imparare un puro metodo
per 5 anni senza mai applicarlo secondo te? e comunque non è del tutto
vero che quello che ti insegnano si riduce solamente a un metodo: ci sono
numerose occasioni all'università che permettono anche ai più apatici di
imparare qualcosa di concreto.
Non sono 5 anni di corsi che trattano di programmazione, anzi! e cmq si
applica, ma non chiamerei "programmare" quello che si fa nei corsi
universitari...
Post by mrnt
Post by Yes
Post by mrnt
restituire puntatori a variabili locali è persino errato a livello
concettuale.
Ho visto anche schifezze peggiori uscire dai corsi universitari...
al mondo esiste di tutto, ma tu hai questa abitudine di guardare sempre al
famoso 90% :)
ogni tanto dai anche un'occhiata al rimanente 10 ;)
Si, anche Lyx è uscito da un corso universitario...ma come detto su, si
tratta di un'eccezione...la norma è il 90%!
Post by mrnt
Post by Yes
La VERA programmazione si impara dopo, imho
e 5 anni che si impara? (solo "metodo"...)
In 5 anni si imparano concetti, che possono essere più o meno utili..la
programmazione non si insegna, si impara..non è un gioco di parole, ma di
certo in un corso di programmazione non impari a programmare sul serio,
impari le fondamenta (ovviamente indispensabili se non vuoi che la "casa"
crolli)
Post by mrnt
Post by Yes
Wine è un progetto realizzato benissimo, il fatto che non ci gira
"quasi niente di utile" (IE,Office,Autocad non mi sembrano
*tanto*inutili,ma è questione di POV) non significhi che sia scritto
male, provaci tu a replicare le API di un progetto chiuso e farci girare
applicazioni complesse!
be', anche io penso che Office e Autocad siano molto utili, nel dire
quella frase ho esagerato, ma penso comunque che Wine non sia stato
realizzato in maniera proprio eccellente (e i pareri di molti "linuxisti"
su questo punto non mi smentiscono affatto... e io non sono linuxista...);
diciamo che personalmente io l'avrei realizzato più in "basso", più
kernel mode, e magari anche con architettura parzialmente microkernel: non
so come funziona Linux, ma avrei fatto un bel driver, poi un layer
interposto tra i processi Win32 e il driver, e un processo a parte, "di
sistema", per implementare la parte microkernel; il resto (la parte
monolitica) implementato in kernel mode all'interno del driver. ovviamente
sono tutte linee molto generiche... secondo me realizzato in questo modo
sarebbe stato più performante, visto che a quanto ne so Wine è
implementato tutto in user mode ed è semplicemente un layer tra Win32 e
chiamate Unix (smentendo così il significato del suo nome: "Wine Is Not
an Emulator"... a me sembra che lo sia eccome... emula chiamate Unix
traducendole dalle Win32 :| )
Io sono "linuxista", come dici tu (ovviamente dipende dal senso che dai
alla parola), e non sono per nulla d'accordo: essere riusciti a far girare
un programma come autocad con wine è una specie di miracolo.
L'achitettura che descrivi tu non è praticabile, IMHO, in pratica tu
aggiungeresti a linux (inteso come kernel) un layer di compatibilità con
le API windows...ma l'approccio in kernel mode è ormai sconsigliato in
molte cose, in quanto è difficile da portare su architetture diverse (non
in questo caso, in quanto cmq WINE è solo x86), è difficile da
mantenere, con la velocità di aggiornamento che ha linux, e ovviamente
porta a gravi instabilità nel sistema in caso di bug, e non ha vantaggi
notevoli. WINE è semplicemente una riscrittura delle API di windows, in
ambiente linux. significa prendere ogni singola funzione, capire cosa fa e
replicarne ESATTAMENTE il comportamento, ovviamente il tutto senza avere
il minimo accesso al codice sorgente...il fatto di dire "semplicemente" un
layer mi sembra troppo riduttivo: le basi dell'architettura dei due
sistemi sono profondamente diverse, e riuscire ad adattare le une alle
altre è difficilissimo. Perfino MS trova difficoltà ad implementare un
layer POSIX in windows, pur avendo a disposizione una documentazione nei
minimi particolari (POSIX è standard) e molte implementazioni da cui
prendere perlomeno spunto (linux, *bsd, hurd, mach, anche solaris)...
mrnt
2005-09-29 11:07:32 UTC
Permalink
Post by Yes
se si tratta del 90%, è la norma, e il tuo 10% è l'eccezione
quello che può fare l'università italiana non è rappresentato dal 90%, ma
da quel 10 che giustamente è l'eccezione, ma non è colpa dell'università,
è colpa degli studenti: tanta gente non dovrebbe nemmeno iscriversi, e il
rimanente dovrebbe semplicemente dedicarsi di più allo studio; comunque
qui andiamo molto OT.
Post by Yes
Non sono 5 anni di corsi che trattano di programmazione, anzi!
i miei corsi di:
- Programmazione I
- Programmazione II
- Programmazione a oggetti
- Laboratorio di Programmazione
- Programmazione di rete
- Algoritmi I
- Laboratorio di sistemi operativi I
- Algoritmi II
- Database I e II
- Laboratorio di database I e II

non trattano di programmazione? (e ne ho esclusi molti...)
be', forse Database I e II no in effetti...

comunque per la cronaca quella storia dei puntatori alle variabili locali
me l'hanno detta a Programmazione I ma anche a Laboratorio di
programmazione; quest'ultimo in particolare è stato un corso imho
utilissimo (pochi l'hanno fatto purtroppo: il famoso 10%) e mi sembra
sbagliatissimo che valga solo 4 crediti.
Post by Yes
e cmq si applica, ma non chiamerei "programmare" quello che si fa nei
corsi universitari...
e come lo chiameresti?
Post by Yes
In 5 anni si imparano concetti, che possono essere più o meno utili..la
programmazione non si insegna, si impara..non è un gioco di parole, ma di
certo in un corso di programmazione non impari a programmare sul serio,
impari le fondamenta (ovviamente indispensabili se non vuoi che la "casa"
crolli)
chi ha seguito bene i corsi che ci sono stati da me di Programmazione 1,
2, Architettura 2 e Laboratorio di programmazione è perfettemante in grado
di apprendere le Win32 e iniziare a fare programmi seri e applicabili al
mondo del lavoro (da notare che mi è venuto spontaneo escludere il corso
di programmazione a oggetti :D).
Post by Yes
Io sono "linuxista", come dici tu (ovviamente dipende dal senso che dai
alla parola), e non sono per nulla d'accordo: essere riusciti a far girare
un programma come autocad con wine è una specie di miracolo.
a quanto pare qualcuno dice che si poteva fare di meglio...
Post by Yes
L'achitettura che descrivi tu non è praticabile, IMHO, in pratica tu
aggiungeresti a linux (inteso come kernel) un layer di compatibilità con
le API windows...
non ho capito che hai capito, cmq la differenza tra quello che hanno fatto
loro e quello che farei io è che una volta implementato un subsystem Win32
non lo farei lavorare sulle chiamate Unix, ma con un driver e un processo
microkernel: alla fine le chiamate Win32 verrebbero tradotte direttamente
in chiamate ai device drivers di Linux senza passare per Unix e per tutta
l'implementazione di Linux.
Post by Yes
ma l'approccio in kernel mode è ormai sconsigliato in
molte cose,
per questo consigliavo il microkernel "parziale", propio come è stato
fatto per Windows NT.
Post by Yes
in quanto è difficile da portare su architetture diverse (non
in questo caso, in quanto cmq WINE è solo x86), è difficile da
mantenere, con la velocità di aggiornamento che ha linux,
questo imho è uno dei grossi problemi della comunità opensource: non è
un'azienda. certe volte mi chiedo veramente chi glielo faccia fare a
quelli, visto che già hanno un altro lavoro (presumibilmente come
programmatori).
Post by Yes
e ovviamente
porta a gravi instabilità nel sistema in caso di bug, e non ha vantaggi
notevoli.
questo sarebbe tutto da vedere...
Post by Yes
WINE è semplicemente una riscrittura delle API di windows, in
ambiente linux. significa prendere ogni singola funzione, capire cosa fa e
replicarne ESATTAMENTE il comportamento, ovviamente il tutto senza avere
il minimo accesso al codice sorgente...
non è così difficile come vorresti far credere: le Win32 sono ben
documentate; so bene che molti aspetti sono sconosciuti (conosco numerosi
esempi, classico quello di CreateFileMapping, MapViewOfFile(Ex),
UnmapViewOfFile e CloseHandle finale), ma si risolve sempre con qualche
semplice esperimento.
Post by Yes
il fatto di dire "semplicemente" un
layer mi sembra troppo riduttivo: le basi dell'architettura dei due
sistemi sono profondamente diverse, e riuscire ad adattare le une alle
altre è difficilissimo.
non è un buon motivo per fare le cose fatte male; ma alla fine ammetto che
su progetti così grossi è difficile dare giudizi, è tanto stupido quanto
il dire che Linux è meglio di Windows o viceversa. io in genere quando do
di questi giudizi mi baso sul parere comune.
Post by Yes
Perfino MS trova difficoltà ad implementare un
layer POSIX in windows, pur avendo a disposizione una documentazione nei
minimi particolari (POSIX è standard) e molte implementazioni da cui
prendere perlomeno spunto (linux, *bsd, hurd, mach, anche solaris)...
non è che si trovasse in difficoltà, è che non valeva la pena di spendere
più di tanto in quella direzione (infatti poi l'hanno proprio eliminato
quel coso).
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Manlio Perillo
2005-09-29 13:40:59 UTC
Permalink
Post by mrnt
Post by Yes
in quanto è difficile da portare su architetture diverse (non
in questo caso, in quanto cmq WINE è solo x86), è difficile da
mantenere, con la velocità di aggiornamento che ha linux,
questo imho è uno dei grossi problemi della comunità opensource: non è
un'azienda. certe volte mi chiedo veramente chi glielo faccia fare a
quelli, visto che già hanno un altro lavoro (presumibilmente come
programmatori).
Lo stesso motivo che spinge la gente a donare il sangue e a fare
volontariato sociale.
La cosa da chiedersi e', caso mai, come mai lo Stato non dia 'vero'
sostegno a queste iniziative.




Saluti Manlio Perillo
mrnt
2005-09-29 14:13:37 UTC
Permalink
Post by Manlio Perillo
Lo stesso motivo che spinge la gente a donare il sangue e a fare
volontariato sociale.
non c'entra assolutamente niente: se non doni il sangue la gente che ne ha
bisogno muore; e lo stesso vale per certi tipi di volontariato sociale.
Post by Manlio Perillo
La cosa da chiedersi e', caso mai, come mai lo Stato non dia 'vero'
sostegno a queste iniziative.
sono superflue. visto che ci sono tanto meglio, almeno chi ci sbatte la
testa ha la soddisfazione di vedere che gente come me usa il suo lavoro e
lo apprezza, ma se non ci fossero non morirei.
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Yes
2005-09-29 21:02:02 UTC
Permalink
Post by mrnt
Post by Manlio Perillo
Lo stesso motivo che spinge la gente a donare il sangue e a fare
volontariato sociale.
non c'entra assolutamente niente: se non doni il sangue la gente che ne ha
bisogno muore; e lo stesso vale per certi tipi di volontariato sociale.
Se non doni il software, la libertà di espressione in quel senso,
muore...è equivalente, seppur a livelli diversi...pensa se non ci fosse
stato Stallman con GNU e poi Linus con Linux...non credo che potremmo
parlare di libertà e tantomeno di computer senza utilizzare come sinonimo
Microsoft...avere più scelte possibili è sempre un vantaggio!
Manlio Perillo
2005-09-29 17:17:36 UTC
Permalink
Post by Yes
Post by mrnt
Post by Manlio Perillo
Lo stesso motivo che spinge la gente a donare il sangue e a fare
volontariato sociale.
non c'entra assolutamente niente: se non doni il sangue la gente che ne ha
bisogno muore; e lo stesso vale per certi tipi di volontariato sociale.
Se non doni il software, la libertà di espressione in quel senso,
muore...è equivalente, seppur a livelli diversi...pensa se non ci fosse
stato Stallman con GNU e poi Linus con Linux...non credo che potremmo
parlare di libertà e tantomeno di computer senza utilizzare come sinonimo
Microsoft...avere più scelte possibili è sempre un vantaggio!
Vero.
Tra l'altro il capitalismo insegna che le societa' fanno solo il loro
interesse e questo solo in parte coincide con l'interesse del publico.
Sono le societa' a dire cosa serve o meno.

Se non si fosse stato il movimento open source molte cose che oggi
abbiamo non ci sarebbero.



Saluti Manlio Perillo
PierIgno
2005-09-29 13:43:22 UTC
Permalink
mrnt wrote:
.... quando sarai dottore e lavorerai ti renderai conto della triste
realtà del mondo del lavoro !:)
mrnt
2005-09-29 14:17:42 UTC
Permalink
..... quando sarai dottore e lavorerai ti renderai conto della triste
realtà del mondo del lavoro !:)
immagino: mi sbatteranno in uno studiolo da 1x1 mq a fare le paginette php
del ca##o con un negro *dietro* che mi frusta e un "aiutante" che non sa
accendere il pc e continua a dire che Linux è meglio. :(((
purtroppo temo di sapere cosa mi aspetta, ma sono curioso di sapere come
mai hai detto questa frase proprio in risposta a quel post: non capisco
che c'entri...
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
PierIgno
2005-09-29 14:30:01 UTC
Permalink
Post by mrnt
..... quando sarai dottore e lavorerai ti renderai conto della triste
realtà del mondo del lavoro !:)
immagino: mi sbatteranno in uno studiolo da 1x1 mq a fare le paginette php
del ca##o con un negro *dietro* che mi frusta e un "aiutante" che non sa
accendere il pc e continua a dire che Linux è meglio. :(((
Magari l'aiutante è più bravo di te invece ma tu non te ne rendi conto ....
Post by mrnt
purtroppo temo di sapere cosa mi aspetta, ma sono curioso di sapere come
mai hai detto questa frase proprio in risposta a quel post: non capisco
che c'entri...
mrnt
2005-09-29 18:15:16 UTC
Permalink
Magari l'aiutante è più bravo di te invece ma tu non te ne rendi conto....
io lo so accendere il pc (l'ho acceso poco fa), e sia chi dice che Linux è
meglio di Windows sia chi dice il contrario con una elevata probabilità
*non è* più "bravo" di me.
sono curioso di sapere come mai hai detto questa frase proprio in risposta
a quel post: non capisco che c'entri...
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Yes
2005-09-29 20:59:05 UTC
Permalink
Post by mrnt
Post by Yes
Non sono 5 anni di corsi che trattano di programmazione, anzi!
- Programmazione I
- Programmazione II
- Programmazione a oggetti
- Laboratorio di Programmazione
- Programmazione di rete
- Algoritmi I
- Laboratorio di sistemi operativi I
- Algoritmi II
- Database I e II
- Laboratorio di database I e II
non trattano di programmazione? (e ne ho esclusi molti...) be', forse
Database I e II no in effetti...
Si tratta di molto meno della metà di tutti gli esami...
Post by mrnt
Post by Yes
In 5 anni si imparano concetti, che possono essere più o meno utili..la
programmazione non si insegna, si impara..non è un gioco di parole, ma
di certo in un corso di programmazione non impari a programmare sul
serio, impari le fondamenta (ovviamente indispensabili se non vuoi che
la "casa" crolli)
chi ha seguito bene i corsi che ci sono stati da me di Programmazione 1,
2, Architettura 2 e Laboratorio di programmazione è perfettemante in
grado di apprendere le Win32 e iniziare a fare programmi seri e
applicabili al mondo del lavoro (da notare che mi è venuto spontaneo
escludere il corso di programmazione a oggetti :D).
E'perfettamente in grado di *apprendere*, e di *imparare* a fare programmi
seri...d'altronde la programmazione è una disciplina che richiede di
essere portati, richiede esperienza e ovviamente competenza. Al max
l'università può fornire quest'ultima, e nemmeno in modo approfondito,
ovviamente il tempo è quello che è.
Post by mrnt
Post by Yes
Io sono "linuxista", come dici tu (ovviamente dipende dal senso che dai
alla parola), e non sono per nulla d'accordo: essere riusciti a far
girare un programma come autocad con wine è una specie di miracolo.
a quanto pare qualcuno dice che si poteva fare di meglio...
Ognuno ha le proprie opinioni...
Post by mrnt
Post by Yes
L'achitettura che descrivi tu non è praticabile, IMHO, in pratica tu
aggiungeresti a linux (inteso come kernel) un layer di compatibilità
con le API windows...
non ho capito che hai capito, cmq la differenza tra quello che hanno fatto
loro e quello che farei io è che una volta implementato un subsystem
Win32 non lo farei lavorare sulle chiamate Unix, ma con un driver e un
processo microkernel: alla fine le chiamate Win32 verrebbero tradotte
direttamente in chiamate ai device drivers di Linux senza passare per Unix
e per tutta l'implementazione di Linux.
Sarebbe un incubo, e varrebbe solo per alcuni tipi di chiamata, come la
mettiamo con la gestione di task, processi, thread ecc?
Post by mrnt
Post by Yes
ma l'approccio in kernel mode è ormai sconsigliato in molte cose,
per questo consigliavo il microkernel "parziale", propio come è stato
fatto per Windows NT.
Che IMHO, è ancora peggio del microkernel puro, non ha i vantaggi di
quest'ultimo ma ne ha molti svantaggi, soprattutto in fatto di sicurezza e
di stabilità
Post by mrnt
Post by Yes
in quanto è difficile da portare su architetture diverse (non in questo
caso, in quanto cmq WINE è solo x86), è difficile da mantenere, con la
velocità di aggiornamento che ha linux,
questo imho è uno dei grossi problemi della comunità opensource: non è
un'azienda. certe volte mi chiedo veramente chi glielo faccia fare a
quelli, visto che già hanno un altro lavoro (presumibilmente come
programmatori).
Beh forse il fatto che i veri hacker (nel senso *originale* del termine)
non hanno bisogno di sollecitazioni economiche, ma programmano per il
gusto di farlo e per il gusto di fare qualcosa di buono e di superiore a
ciò che già esiste...se tu lo vedi come un problema, mi sa che stai
perdendo di vista il fatto che il 90% di internet è basato su software
open source, e se hai idea della complessità di internet, puoi capire
quanto sia stato importante l'apporto dell'OS..leggiti "the cathedral and
the bazaar" di Raymond
Post by mrnt
Post by Yes
e ovviamente
porta a gravi instabilità nel sistema in caso di bug, e non ha vantaggi
notevoli.
questo sarebbe tutto da vedere...
LAvorare in kernel-space è sempre pericoloso rispetto all'user space, non
c'è niente da vedere! inoltre tempo fa vidi dei benchmarc che mostravano
su una stessa macchina come office97 lanciato con wine fosse più veloce
di quello lanciato con win2k...certo non so quanto fossero attendibili
quei test...
Post by mrnt
Post by Yes
WINE è semplicemente una riscrittura delle API di windows, in ambiente
linux. significa prendere ogni singola funzione, capire cosa fa e
replicarne ESATTAMENTE il comportamento, ovviamente il tutto senza avere
il minimo accesso al codice sorgente...
non è così difficile come vorresti far credere: le Win32 sono ben
documentate; so bene che molti aspetti sono sconosciuti (conosco numerosi
esempi, classico quello di CreateFileMapping, MapViewOfFile(Ex),
UnmapViewOfFile e CloseHandle finale), ma si risolve sempre con qualche
semplice esperimento.
Finchè si tratta di riscrivere un programma, siamo d'accordo, ma qui si
tratta di riscrivere le API...non puoi solo emularne il comportamento
"esterno"
Post by mrnt
Post by Yes
il fatto di dire "semplicemente" un
layer mi sembra troppo riduttivo: le basi dell'architettura dei due
sistemi sono profondamente diverse, e riuscire ad adattare le une alle
altre è difficilissimo.
non è un buon motivo per fare le cose fatte male; ma alla fine ammetto
che su progetti così grossi è difficile dare giudizi, è tanto stupido
quanto il dire che Linux è meglio di Windows o viceversa. io in genere
quando do di questi giudizi mi baso sul parere comune.
Io ripeto, non credo che sia un lavoro fatto male, ma qui si tratta di
opinioni, non c'è un metro per la bontà di un software
Post by mrnt
Post by Yes
Perfino MS trova difficoltà ad implementare un layer POSIX in windows,
pur avendo a disposizione una documentazione nei minimi particolari
(POSIX è standard) e molte implementazioni da cui prendere perlomeno
spunto (linux, *bsd, hurd, mach, anche solaris)...
non è che si trovasse in difficoltà, è che non valeva la pena di
spendere più di tanto in quella direzione (infatti poi l'hanno proprio
eliminato quel coso).
Che io sappia, anche il nuovo Vista avrebbe dovuto riproporre quel layer,
e poi è stato cancellato per l'ennesima volta..
mrnt
2005-09-29 19:11:33 UTC
Permalink
Post by Yes
Si tratta di molto meno della metà di tutti gli esami...
quelli che ho detto si riferivano solo ai primi 3 anni e sono circa un
terzo del totale (i primi 3 anni ci sono circa 30 esami).
anche se non sono 5 anni di programmazione pura, se ne fa abbastanza.
Post by Yes
E'perfettamente in grado di *apprendere*, e di *imparare* a fare programmi
seri...
non è escluso che uno impari a fare programmi "seri" anche all'università:
al corso di laboratorio di programmazione abbiamo fatto un programma
serissimo, un filtro antispam (con qualche perfezionamento lo si sarebbe
potuto realmente usare lato server in qualche provider di posta
elettronica); inoltre ho conosciuto un paio di persone che hanno
esperienza in Win32, una delle due si interessava di grafica 3D con OpenGL
ad un livello molto approfondito.
Post by Yes
Sarebbe un incubo,
vero, ma esistono team che hanno realizzato interi sistemi operativi per i
moderni processori Intel x86 con modalità protetta a 32 bit; dimmi se
quello non è un incubo.
Post by Yes
e varrebbe solo per alcuni tipi di chiamata, come la
mettiamo con la gestione di task, processi, thread ecc?
per ogni processo creato nell'emulazione, l'emulatore potrebbe realmente
creare un processo partendo da un eseguibile di supporto che legge il
formato PE dell'exe Win32 da emulare, lo mappa in memoria, lo riloca,
carica i moduli PE da cui dipende, li binda, e chiama l'entry point.
Quando esso chiama una funzione API Win32 la copia di quella API provvista
dall'emulatore comunica col driver attraverso un'opportuno canale di
comunicazione (non so cosa ci sia su Linux, pipes o che altro) se non
addirittura con un task gate che chiama direttamente il processo "di
sistema" (quest'ultima non so se su Linux sia possibile ma penso di si,
sarebbe tutto da vedere e da rifletterci). Se un processo crea un thread
con CreateThread, il thread viene realmente creato nel processo Linux.
in altre parole, per rispondere direttamente alla tua domanda, si
sfrutterebbe lo scheduler di Linux.
Post by Yes
Post by mrnt
per questo consigliavo il microkernel "parziale", propio come è stato
fatto per Windows NT.
Che IMHO, è ancora peggio del microkernel puro, non ha i vantaggi di
quest'ultimo ma ne ha molti svantaggi, soprattutto in fatto di sicurezza e
di stabilità
perché mai è peggio? sfrutti la sicurezza di un microkernel dove non hai
bisogno di performance, mentre dove ne hai bisogno pazienza, ti arrangi
col monolite e controlli che non ci siano bug: test approfonditi, ecc.
l'ibrido tra microkernel e monolite ha un po' dei vantaggi del microkernel
e un po' di quelli del monolite.
Post by Yes
se tu lo vedi come un problema, [...]
non è un problema per me, anzi se posso avere software gratis tanto
meglio; al contrario, dovrebbe essere un problema per loro e per le loro
eventuali famiglie.
Post by Yes
LAvorare in kernel-space è sempre pericoloso rispetto all'user space, non
c'è niente da vedere!
lavorare in kernel mode è pericoloso ma porta molta performance quindi ci
sarebbe molto da vedere (altrimenti Windows NT sarebbe un microkernel
puro).
Post by Yes
inoltre tempo fa vidi dei benchmarc che mostravano
su una stessa macchina come office97 lanciato con wine fosse più veloce
di quello lanciato con win2k...certo non so quanto fossero attendibili
quei test...
infatti ci credo poco, e in caso considera che forse Office potrebbe
andare *ancora più veloce*...
Post by Yes
Finchè si tratta di riscrivere un programma, siamo d'accordo, ma qui si
tratta di riscrivere le API...non puoi solo emularne il comportamento
"esterno"
non è un'operazione alla portata di una sola persona, è un progetto molto
grosso e complesso, va benissimo, ma stavi ponendoti dei problemi che non
esistono: scoprire in dettaglio il comportamento di un progetto chiuso ma
ben documentato non è un problema.
Post by Yes
Io ripeto, non credo che sia un lavoro fatto male, ma qui si tratta di
opinioni, non c'è un metro per la bontà di un software
veramente c'è: Dev-C++ ad es. è molto peggio di Visual C++ :PP
però quando si parla di progetti molto vasti è impossibile giudicare.
Post by Yes
Che io sappia, anche il nuovo Vista avrebbe dovuto riproporre quel layer,
e poi è stato cancellato per l'ennesima volta..
beh, non puoi mai sapere come avvengono le decisioni all'interno di
un'azienda così grossa e complessa; inoltre sinceramente dubito che
l'azienda così grossa e complessa di cui sopra non sia in grado di
realizzare qualcosa solo per complessità concettuale...
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Yes
2005-09-30 02:21:40 UTC
Permalink
Post by mrnt
Post by Yes
Si tratta di molto meno della metà di tutti gli esami...
quelli che ho detto si riferivano solo ai primi 3 anni e sono circa un
terzo del totale (i primi 3 anni ci sono circa 30 esami). anche se non
sono 5 anni di programmazione pura, se ne fa abbastanza.
Post by Yes
E'perfettamente in grado di *apprendere*, e di *imparare* a fare
programmi seri...
non è escluso che uno impari a fare programmi "seri" anche
all'università: al corso di laboratorio di programmazione abbiamo fatto
un programma serissimo, un filtro antispam (con qualche perfezionamento lo
si sarebbe potuto realmente usare lato server in qualche provider di posta
elettronica); inoltre ho conosciuto un paio di persone che hanno
esperienza in Win32, una delle due si interessava di grafica 3D con OpenGL
ad un livello molto approfondito.
Vabbè che un paio di persone sappiano programmare nn significa che sia
stata l'univ a insegnarglielo
Post by mrnt
Post by Yes
Sarebbe un incubo,
vero, ma esistono team che hanno realizzato interi sistemi operativi per i
moderni processori Intel x86 con modalità protetta a 32 bit; dimmi se
quello non è un incubo.
Post by Yes
e varrebbe solo per alcuni tipi di chiamata, come la mettiamo con la
gestione di task, processi, thread ecc?
per ogni processo creato nell'emulazione, l'emulatore potrebbe realmente
creare un processo partendo da un eseguibile di supporto che legge il
formato PE dell'exe Win32 da emulare, lo mappa in memoria, lo riloca,
carica i moduli PE da cui dipende, li binda, e chiama l'entry point.
Quando esso chiama una funzione API Win32 la copia di quella API provvista
dall'emulatore comunica col driver attraverso un'opportuno canale di
comunicazione (non so cosa ci sia su Linux, pipes o che altro) se non
addirittura con un task gate che chiama direttamente il processo "di
sistema" (quest'ultima non so se su Linux sia possibile ma penso di si,
sarebbe tutto da vedere e da rifletterci). Se un processo crea un thread
con CreateThread, il thread viene realmente creato nel processo Linux. in
altre parole, per rispondere direttamente alla tua domanda, si
sfrutterebbe lo scheduler di Linux.
Wine non è un emulatore, è semplicemente una riscrittura delle API win32
in ambiente unix...di emulatori ce ne sono altri, sia a livello di CPU che
a livello disistema, ma wine è un'altro tipo di software
Post by mrnt
Post by Yes
Post by mrnt
per questo consigliavo il microkernel "parziale", propio come è stato
fatto per Windows NT.
Che IMHO, è ancora peggio del microkernel puro, non ha i vantaggi di
quest'ultimo ma ne ha molti svantaggi, soprattutto in fatto di sicurezza
e di stabilità
perché mai è peggio? sfrutti la sicurezza di un microkernel dove non hai
bisogno di performance, mentre dove ne hai bisogno pazienza, ti arrangi
col monolite e controlli che non ci siano bug: test approfonditi, ecc.
l'ibrido tra microkernel e monolite ha un po' dei vantaggi del microkernel
e un po' di quelli del monolite.
Vabbè su questo discutono da anni persone molto più esperte di noi e non
trovano un accordo, quindi inutile andare avanti! ;-)
Post by mrnt
Post by Yes
se tu lo vedi come un problema, [...]
non è un problema per me, anzi se posso avere software gratis tanto
meglio; al contrario, dovrebbe essere un problema per loro e per le loro
eventuali famiglie.
OpenSource non è assolutamente sinonimo di gratis, solo di apertura. Il
fatto che sia gratuito è una conseguenza, ma non è per definizione. Per
loro non è assolutamente un problema, lo fanno per piacere, non per
guadagno.
Post by mrnt
Post by Yes
LAvorare in kernel-space è sempre pericoloso rispetto all'user space,
non c'è niente da vedere!
lavorare in kernel mode è pericoloso ma porta molta performance quindi ci
sarebbe molto da vedere (altrimenti Windows NT sarebbe un microkernel
puro).
Spesso l'incremento di prestazioni è trascurabile, soprattutto se si
tratta di operazioni che prevedono I/O
Post by mrnt
Post by Yes
inoltre tempo fa vidi dei benchmarc che mostravano su una stessa
macchina come office97 lanciato con wine fosse più veloce di quello
lanciato con win2k...certo non so quanto fossero attendibili quei
test...
infatti ci credo poco, e in caso considera che forse Office potrebbe
andare *ancora più veloce*...
Non la vedo una cosa così assurda, se le api sono state implementate
meglio, è normale che girino più veloce...
Post by mrnt
Post by Yes
Finchè si tratta di riscrivere un programma, siamo d'accordo, ma qui si
tratta di riscrivere le API...non puoi solo emularne il comportamento
"esterno"
non è un'operazione alla portata di una sola persona, è un progetto
molto grosso e complesso, va benissimo, ma stavi ponendoti dei problemi
che non esistono: scoprire in dettaglio il comportamento di un progetto
chiuso ma ben documentato non è un problema.
Ci hai mai provato? hai mai provato a fare reverse engeneering su qualcosa
di non banale?
Post by mrnt
Post by Yes
Io ripeto, non credo che sia un lavoro fatto male, ma qui si tratta di
opinioni, non c'è un metro per la bontà di un software
veramente c'è: Dev-C++ ad es. è molto peggio di Visual C++ :PP però
quando si parla di progetti molto vasti è impossibile giudicare.
Ma che c'entra? dev-c++ non è visual C++, se facessero le stesse cose non
ci sarebbe modo di sapere qual'è "migliore" a livello di codice..a
livello utente il problema è diverso, ad esempio io visual c++ lo trovo
uno dei software peggiori mai scritti, ma è questione di gusto!
Post by mrnt
Post by Yes
Che io sappia, anche il nuovo Vista avrebbe dovuto riproporre quel
layer, e poi è stato cancellato per l'ennesima volta..
beh, non puoi mai sapere come avvengono le decisioni all'interno di
un'azienda così grossa e complessa; inoltre sinceramente dubito che
l'azienda così grossa e complessa di cui sopra non sia in grado di
realizzare qualcosa solo per complessità concettuale...
L'azienda così grossa e complessa non ha mai innovato, ha sempre
riciclato idee di altri, magari acquistando intere aziende per avere i
prodotti di cui aveva bisogno, questa non è una novità. Microsoft non è
onnipotente, ha troppi fronti aperti, troppi problemi interni ed esterni,
è perfettamente plausibile che abbia dei problemi!
mrnt
2005-09-30 10:35:14 UTC
Permalink
Post by Yes
Wine non è un emulatore, è semplicemente una riscrittura delle API win32
in ambiente unix...di emulatori ce ne sono altri, sia a livello di CPU che
a livello disistema, ma wine è un'altro tipo di software
l'ho chiamato emulatore perché non sapendo come altro chiamarlo quello mi
veniva; nemmeno il programma che ti ho ipotizzato è un emulatore...
Post by Yes
Spesso l'incremento di prestazioni è trascurabile, soprattutto se si
tratta di operazioni che prevedono I/O
se così fosse Windows NT sarebbe microkernel puro.
Post by Yes
Non la vedo una cosa così assurda, se le api sono state implementate
meglio, è normale che girino più veloce...
questo è un discorso stupido, come fai a dire che Wine "è implementato
meglio" dell'originale? ti sei letto tutto il codice di entrambi? soltanto
i ragazzini di 16 anni che hanno Linux dicono che il software della
comunità opensource è migliore di quello Microsoft.
e al limite i programmi potranno anche girare più veloci su Wine che su
Windows, ma a quanto pare non girano poi così bene, o non girano tutti...
e comunque non ci credo che girino più veloci.
Post by Yes
Ci hai mai provato? hai mai provato a fare reverse engeneering su qualcosa
di non banale?
il reverse engineering è molto difficile, ma qui non serve (almeno nella
maggior parte dei casi): quando parlavo di "esperimenti" intendevo aprire
un nuovo progetto in Visual C++ e fare un programma che usava quelle API
per vederne il comportamento. l'esempio della UnmapViewOfFile si sarebbe
potuto risolvere così. un altro esempio che conosco è quello della
Shell_NotifyIcon, che non si sa se duplica l'icona che gli viene passata
nella NOTIFYICONDATA; in altre parole non si sa è possibile chiamare
DestroyIcon dopo aver messo un'icona nella tray e prima di averla tolta.
semplice esperimento: fai un programma che mette un'icona nella tray, la
distrugge, e poi passi il mouse sull'icona per vedere se fugne ancora (non
l'ho fatto quindi non so quali sarebbero i risultati, ma penso che
funzionerebbe ancora).
aggiungo anche che a volte questi aspetti variano da una versione di
Windows all'altra, quindi non vale neanche la pena di sbatterci la testa
perché un'implementazione dovrebbe valere l'altra se chi ha prodotto il
software da emulare lo ha prodotto per qualsiasi versione di Windows.
Post by Yes
Ma che c'entra? dev-c++ non è visual C++, se facessero le stesse cose non
ci sarebbe modo di sapere qual'è "migliore" a livello di codice..
a me sembrano entrambi due IDE per programmare in C e C++... l'unica
differenza è il compilatore che usano...
Post by Yes
a
livello utente il problema è diverso, ad esempio io visual c++ lo trovo
uno dei software peggiori mai scritti, ma è questione di gusto!
è un gusto molto opinabile il tuo lasciatelo dire... io avrei detto
esattamente l'opposto!
Post by Yes
L'azienda così grossa e complessa non ha mai innovato,
non è vero, ha inventato COM :P
Post by Yes
ha sempre
riciclato idee di altri,
COM era idea di qualcun altro? se così fosse imho a questo punto ci
sarebbe anche su Linux e con lui anche DirectX e i numerosi videogiochi
che attualmente sono solo per Windows.
Post by Yes
magari acquistando intere aziende per avere i
prodotti di cui aveva bisogno, questa non è una novità. Microsoft non è
onnipotente, ha troppi fronti aperti, troppi problemi interni ed esterni,
è perfettamente plausibile che abbia dei problemi!
come fai a conoscerla così bene, ci lavori? quali sarebbero questi
problemi interni? e quelli esterni? di certo non saranno le megamulte che
fanno a Bill Gates a frenare lo sviluppo di software all'interno di
Microsoft: Bill Gates le paga allo stesso modo in cui prende un caffè alla
macchinetta.
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Angelo Paolitto
2005-09-28 16:33:51 UTC
Permalink
"mrnt" <***@fake.com> wrote in message news:dhcalv$c39$***@news.newsland.it


[cut megagalattico, perche' tanto ho capito
che sei uno a cui non piace sentirsi dire
che ha torto]

ma una rispostina sui fessi che programmano ad oggetti in "C", te la
fornisco comunque.
Post by mrnt
se è per questo conosco addirittura dei balordi che programmano in C a
oggetti.
In effetti tutti quelli che hanno fatto le GTK (per citare un esempio
che ti hanno gia' fatto e che tu non hai capito), tutti quelli che
hanno fatto Gimp, e (incredibile ma vero) tutti quelli che programmano
direttamente con le Api di Windows.

Gia' perche' quando scrivi

ReleaseDC(hWnd, hDC);

operi su oggetti (che sarebbero gli HANDLE che passi alla
funzione)... Ma tu questo non lo sapevi... Brutta cosa l'ignoranza (e
soprattutto la protervia).

C:\>iao Angelo
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
mrnt
2005-09-28 17:36:27 UTC
Permalink
Post by Angelo Paolitto
[cut megagalattico, perche' tanto ho capito
che sei uno a cui non piace sentirsi dire
che ha torto]
non era necessario, io arrivo volentieri ad ammettere di avere torto se ne
ho: sarà una nuova cosa che ho imparato.
Post by Angelo Paolitto
Post by mrnt
se è per questo conosco addirittura dei balordi che programmano in C a
oggetti.
In effetti tutti quelli che hanno fatto le GTK (per citare un esempio
che ti hanno gia' fatto e che tu non hai capito),
pensa che chi mi ha fatto l'esempio ha anche detto che quel tipo di
approccio non piaceva nemmeno a lui... :)
comunque ho capito bene cosa intendete tu e qualcun altro quando parli di
programmazione a oggetti in C: semplicemente io uso l'espressione
"programmazione a oggetti" solo in un contesto in cui il compilatore
fornisce reali strumenti per metterla in atto; questione di punti di vista
(e continuo a sostenere che "programmare a oggetti" con il C è assurdo,
oltre che pericoloso, svantaggioso, insensato, ecc.).
Post by Angelo Paolitto
[...]
e (incredibile ma vero) tutti quelli che programmano
direttamente con le Api di Windows.
Gia' perche' quando scrivi
ReleaseDC(hWnd, hDC);
operi su oggetti (che sarebbero gli HANDLE che passi alla
funzione)... Ma tu questo non lo sapevi... Brutta cosa l'ignoranza (e
soprattutto la protervia).
non darmi dell'ignorante, conosco Win32 come le mie tasche, consulto MSDN
alla voce "Win32 and COM Development" quasi quotidianamente, e so bene che
Win32 ha numerose caratteristiche che ricordano la programmazione a
oggetti; tuttavia a me sembra chiaro che Win32 sia come interfaccia che
come implementazione rimane ben lontano da quella che per me è la
programmazione a oggetti, faccio un esempio pratico: prendiamo un evento e
un mutex, due oggetti del kernel (in questo caso "oggetto" fa parte di una
terminologia specifica, non casuale vista l'analogia concettuale, ne
convengo, ma per me rimane solo un'analogia); entrambi gli oggetti
(rappresentati da quello che suppongo essere un hash definito "handle") si
usano con funzioni come CloseHandle e WaitForSingleObject; tuttavia per
resettarli si usano funzioni diverse: ResetEvent per l'uno e ReleaseMutex
per l'altro. al contraro di ciò che avviene, una tipica implementazione a
oggetti avrebbe provvisto uno stesso metodo virtuale per i due diversi
compiti (vedi CSyncObject::Unlock in MFC).
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
mrnt
2005-09-28 17:42:31 UTC
Permalink
Post by mrnt
(vedi CSyncObject::Unlock in MFC).
mumble O.o
detta na fesseria :D
vabbè, però rendo l'idea, no? :P
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Angelo Paolitto
2005-09-29 06:07:33 UTC
Permalink
Post by mrnt
pensa che chi mi ha fatto l'esempio ha anche detto che quel tipo di
approccio non piaceva nemmeno a lui... :)
E allora? Questo rende le GTK meno ad oggetti?
Post by mrnt
comunque ho capito bene cosa intendete tu e qualcun altro quando parli di
programmazione a oggetti in C: semplicemente io uso l'espressione
"programmazione a oggetti" solo in un contesto in cui il compilatore
fornisce reali strumenti per metterla in atto;
Quello che pensi tu non e' quello che pensa il resto del mondo.

questione di punti di vista
Post by mrnt
(e continuo a sostenere che "programmare a oggetti" con il C è assurdo,
oltre che pericoloso, svantaggioso, insensato, ecc.).
Quello che pensi tu non e' quello che pensa il resto del mondo.
Post by mrnt
non darmi dell'ignorante,
Beh... non comportarti come tale.
Post by mrnt
... conosco Win32 come le mie tasche, consulto MSDN
alla voce "Win32 and COM Development" quasi quotidianamente, e so bene che
Win32 ha numerose caratteristiche che ricordano la programmazione a
oggetti; tuttavia a me sembra chiaro che Win32 sia come interfaccia che
come implementazione rimane ben lontano da quella che per me è la
programmazione a oggetti, faccio un esempio pratico: prendiamo un evento e
un mutex, due oggetti del kernel (in questo caso "oggetto" fa parte di una
terminologia specifica, non casuale vista l'analogia concettuale, ne
convengo, ma per me rimane solo un'analogia); entrambi gli oggetti
(rappresentati da quello che suppongo essere un hash definito "handle") si
usano con funzioni come CloseHandle e WaitForSingleObject; tuttavia per
resettarli si usano funzioni diverse: ResetEvent per l'uno e ReleaseMutex
Quindi la tua preoccupazione e' che per "eliminare" un HANDLE e'
necessario usare due funzioni diverse... Ma non e' questa la parte
sostanziale della programmazione ad oggetti. La parte sostanziale e'
che ci sono degli "aggeggi" chiamati oggetti e che esistono degli
altri "aggeggi" chiamati metodi o funzioni e che si usano
esclusivamente questi utimi per operare sui primi. Il vantaggio e'
che la modifica di un oggetto non ha impatto (o ha un impatto molto
piu' limitato) sul programma (posto che i metodi vengano modificati
di conseguenza). Se questro a te sembra

"assurdo, oltre che pericoloso, svantaggioso, insensato, ecc."

A me non lo sembra, ed e' la parte che ti ho appena esposta che mi
interessa della programmazione ad oggetti... dell'ereditarieta' dei
metodi e delle funzioni virtuali se ne puo' anche fare a meno.

Sicuramente l'uso dell'OOP in C++ e in un qualsiasi linguaggio in
cui e' il compilatore a forzare certi comportamente e' piu' facile.
Ma basta entrare in un certo ordine di idee e la realizzazione del
codice viene di conseguenza (e questo non e' piu' complicato o
rognoso da mantenere del codice che viene fuori della "programmazione
normale" in C, anzi...).

C:\>iao Angelo
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
mrnt
2005-09-29 10:34:45 UTC
Permalink
Post by Angelo Paolitto
Post by mrnt
pensa che chi mi ha fatto l'esempio ha anche detto che quel tipo di
approccio non piaceva nemmeno a lui... :)
E allora? Questo rende le GTK meno ad oggetti?
no, vuol dire solo che c'è un'altra persona che la pensa com me su certe
cose (magari non su altre).
Post by Angelo Paolitto
Quello che pensi tu non e' quello che pensa il resto del mondo.
ad ogni modo il resto del mondo non è che la pensi sempre uguale, ci sono
anche persone che la pensano come me.
Post by Angelo Paolitto
Post by mrnt
non darmi dell'ignorante,
Beh... non comportarti come tale.
lo dici tu che mi ci sono comportato: io avrei potuto dire lo stesso di te.
Post by Angelo Paolitto
Post by mrnt
... conosco Win32 come le mie tasche, consulto MSDN
alla voce "Win32 and COM Development" quasi quotidianamente, e so bene che
Win32 ha numerose caratteristiche che ricordano la programmazione a
oggetti; tuttavia a me sembra chiaro che Win32 sia come interfaccia che
come implementazione rimane ben lontano da quella che per me è la
programmazione a oggetti, faccio un esempio pratico: prendiamo un evento e
un mutex, due oggetti del kernel (in questo caso "oggetto" fa parte di una
terminologia specifica, non casuale vista l'analogia concettuale, ne
convengo, ma per me rimane solo un'analogia); entrambi gli oggetti
(rappresentati da quello che suppongo essere un hash definito "handle") si
usano con funzioni come CloseHandle e WaitForSingleObject; tuttavia per
resettarli si usano funzioni diverse: ResetEvent per l'uno e ReleaseMutex
Quindi la tua preoccupazione
"preoccupazione", lol... sai che m'importa, a me Win32 va benissimo così :D
Post by Angelo Paolitto
e' che per "eliminare" un HANDLE e'
necessario usare due funzioni diverse... Ma non e' questa la parte
sostanziale della programmazione ad oggetti. La parte sostanziale e'
che ci sono degli "aggeggi" chiamati oggetti e che esistono degli
altri "aggeggi" chiamati metodi o funzioni e che si usano
esclusivamente questi utimi per operare sui primi. Il vantaggio e'
che la modifica di un oggetto non ha impatto (o ha un impatto molto
piu' limitato) sul programma (posto che i metodi vengano modificati
di conseguenza).
questo è semplicistico: è solo il tratto fondamentale della programmazione
a oggetti, la quale invece dovrebbe disporre di numerose altre
caratteristiche: polimorfismo, inheritance, visibilità dei membri, metodi
virtuali (per l'ennesima volta)...
Win32 non ha nessuna di queste cose: ai suoi HANDLE non puoi applicare ne'
polimorfismo, ne' inheritance (un po' ce la potresti vedere volendo, ma
Win32 non ne usa e non puoi comunque creare oggetti tuoi che derivano da
quelli Win32, cosa che invece si può fare benissimo quando usi frameworks
a oggetti), i membri sono tutti invisibili e le funzioni non sono virtuali.
Post by Angelo Paolitto
Se questro a te sembra
"assurdo, oltre che pericoloso, svantaggioso, insensato, ecc."
Win32 non mi sembra bla bla bla perché non è a oggetti, anche se presenta
delle caratteristiche che un po' ricordano la programmazione a oggetti.
Post by Angelo Paolitto
A me non lo sembra, ed e' la parte che ti ho appena esposta che mi
interessa della programmazione ad oggetti...
allora ti perdi il meglio ;)
Post by Angelo Paolitto
dell'ereditarieta' dei
metodi e delle funzioni virtuali se ne puo' anche fare a meno.
ma si!! a che servono!! togliamoli!!
guarda che Win32 avrebbe anche potuto essere programmato a oggetti in C++,
ma non l'hanno fatto perché Microsoft ha sempre voluto implementarlo
interamente in C, come tutto il resto del kernel di Windows 9x ed NT; mi
sembra che la scelta fosse dettata da motivi di compatibilità.
Post by Angelo Paolitto
Sicuramente l'uso dell'OOP in C++ e in un qualsiasi linguaggio in
cui e' il compilatore a forzare certi comportamente e' piu' facile.
Ma basta entrare in un certo ordine di idee e la realizzazione del
codice viene di conseguenza (e questo non e' piu' complicato o
rognoso da mantenere del codice che viene fuori della "programmazione
normale" in C, anzi...).
se pretendi di implementare una vera e propria "programmazione a oggetti"
in C lo è eccome.
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Ermes Gaiazzuppi
2005-09-29 16:54:36 UTC
Permalink
Post by mrnt
Post by Angelo Paolitto
Sicuramente l'uso dell'OOP in C++ e in un qualsiasi linguaggio in
cui e' il compilatore a forzare certi comportamente e' piu' facile.
Ma basta entrare in un certo ordine di idee e la realizzazione del
codice viene di conseguenza (e questo non e' piu' complicato o
rognoso da mantenere del codice che viene fuori della "programmazione
normale" in C, anzi...).
se pretendi di implementare una vera e propria "programmazione a oggetti"
in C lo è eccome.
A voler essere proprio precisi, credo che abbia ragione mnrt (ma ritengo
che sia una discussione sul sesso degli angeli, come si diceva sopra):

Infatti le definizioni più accreditate di OOP, parlano di 3 pilastri:
encapsulation, inheritance and polymorphism.
Se dovessi assegnare un punteggio al C per i 3 pilastri, direi che
prenderebbe un voto bassino...

Più appropriatamente le "programmazione ad oggetti in C" che credo
intenda Angelo, solitamente passa sotto il nome di paradigma ADT
(Abstract Data Type). E questa concordo che in C sia assolutamente una
buona pratica.

Tutto IMHO

Ciao
E.G.
Angelo Paolitto
2005-09-30 06:32:29 UTC
Permalink
Post by Ermes Gaiazzuppi
encapsulation, inheritance and polymorphism.
Se dovessi assegnare un punteggio al C per i 3 pilastri, direi che
prenderebbe un voto bassino...
Il "C" e' un linguaggio procedurale. Incapsulamento ereditarieta'
e polimorfismo si possono implementare tranquillamente... Non essendoci
il supporto del compilatore sono cose che si devono realizzare a manina.

Per la maggior parte non ne vale la pena e alcune sarebbe veramente
difficile, se non impossibile, implementarle (metodi virtuali).

Si prende il buono della OOp e si tralasciano le menate. Tu una cosa
del genere la chiami programmazione ADT? Amen, altri la chiamano
programmazione OOp, visto che ne e' un suo sottinsieme.

Per onesta' intellettuale, anche Stroustrup pensa che questa non sia
(vera???) programmazione OO... Ma forse lui e' un tantino di parte ;-)

C:\>iao Angelo
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Manlio Perillo
2005-09-24 15:48:36 UTC
Permalink
Post by Eldorado
Capisco che fare una domanda banale in un NG di professionisti nella materia
non sia tanto facile.
Per questo motivo vi chiedo di essere benevoli con le risposte.
Mi piacerebbe creare un piccolissimo programmino partendo da zero, insomma
creare qualcosa e dire: questa l'ho fatto io.
Purtroppo NON saprei nemmeno dove cominciare, e tantomeno il software da
usare.
L'entusiasmo però è alto.
La mia domanda (banale) è questa: cosa mi serve per fare ciò che chiedo?
Quello che chiedi non e' ben definito.
Comunque io ti consiglio due linguaggi: C e Python.
Entrambi sono ad alto livello ma sono indirizzati per due tipi di
programmatori.
Il C e' pensato per il computer, Python per il programmatore.


Per Python dai una occhiata a
http://python.it/doc/newbie.html
per dei tutorial per principianti.
E http://python.it/doc/Python-Docs/html/tut/tut.html per il tutorial
ufficiale.



Saluti Manlio Perillo
NoWhereMan
2005-09-24 15:54:32 UTC
Permalink
Post by Manlio Perillo
Per Python dai una occhiata a
http://python.it/doc/newbie.html
per dei tutorial per principianti.
E http://python.it/doc/Python-Docs/html/tut/tut.html per il tutorial
ufficiale.
Tra l'altro esiste anche un wxPython... GHI! :D
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
Manlio Perillo
2005-09-24 16:16:17 UTC
Permalink
On Sat, 24 Sep 2005 17:54:32 +0200, NoWhereMan
Post by NoWhereMan
Post by Manlio Perillo
Per Python dai una occhiata a
http://python.it/doc/newbie.html
per dei tutorial per principianti.
E http://python.it/doc/Python-Docs/html/tut/tut.html per il tutorial
ufficiale.
Tra l'altro esiste anche un wxPython... GHI! :D
Python (o almeno la distribuzione ufficiale CPython) permette molto
facilmente di interfacciarsi a codice scritto in C/C++.
Quindi per qualsiasi libreria in C e' di solito disponibile un
corrispondente per Python.

Comunque per la creazione di interfacce grafiche io consiglio le GTK.



Saluti Manlio Perillo
NoWhereMan
2005-09-24 17:09:45 UTC
Permalink
Post by Manlio Perillo
On Sat, 24 Sep 2005 17:54:32 +0200, NoWhereMan
Post by NoWhereMan
Post by Manlio Perillo
Per Python dai una occhiata a
http://python.it/doc/newbie.html
per dei tutorial per principianti.
E http://python.it/doc/Python-Docs/html/tut/tut.html per il tutorial
ufficiale.
Tra l'altro esiste anche un wxPython... GHI! :D
Python (o almeno la distribuzione ufficiale CPython) permette molto
facilmente di interfacciarsi a codice scritto in C/C++.
Quindi per qualsiasi libreria in C e' di solito disponibile un
corrispondente per Python.
Comunque per la creazione di interfacce grafiche io consiglio le GTK.
Saluti Manlio Perillo
Io le sconsiglierei, a meno di non programmare linux. MA il nostro credo
sia un utente win ;) Le gtk obbligherebbero a installare librerie
aggiuntive... e comunque i wxWidgets sono multipiattaforma (e sotto linux
appaiono come le GTK :D )
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
Manlio Perillo
2005-09-24 17:46:33 UTC
Permalink
On Sat, 24 Sep 2005 19:09:45 +0200, NoWhereMan
Post by Manlio Perillo
On Sat, 24 Sep 2005 17:54:32 +0200, NoWhereMan
Post by NoWhereMan
Post by Manlio Perillo
Per Python dai una occhiata a
http://python.it/doc/newbie.html
per dei tutorial per principianti.
E http://python.it/doc/Python-Docs/html/tut/tut.html per il tutorial
ufficiale.
Tra l'altro esiste anche un wxPython... GHI! :D
Python (o almeno la distribuzione ufficiale CPython) permette molto
facilmente di interfacciarsi a codice scritto in C/C++.
C'e' da aggiungere che e' anche disponibile JPython che genera codice
per la Java Virtual Machine ed IronPython che genera codice per la
piattaforma .NET (l'ultima versione e' disponibile su
http://www.microsoft.com/downloads/details.aspx?FamilyID=2c649e9e-cf43-41e0-9e22-6e6438924caa&DisplayLang=en#related
)
[...]
Post by Manlio Perillo
Comunque per la creazione di interfacce grafiche io consiglio le GTK.
Io le sconsiglierei, a meno di non programmare linux. MA il nostro credo
sia un utente win ;) Le gtk obbligherebbero a installare librerie
aggiuntive... e comunque i wxWidgets sono multipiattaforma (e sotto linux
appaiono come le GTK :D )
Anche le wxWidgets obbligano ad installarsi una libreria aggiuntiva...
quale e' la differenza?

Non conosco a fondo le wxWidget, ma le GTK (specialmente da Python)
sono davvero facili e flessibili da programmare. A detta di diverse
persone, sono anche progettate meglio (in particolare se si vuole
usare Twisted)



Saluti Manlio Perillo
Yes
2005-09-24 21:54:46 UTC
Permalink
Non conosco a fondo le wxWidget, ma le GTK (specialmente da Python) sono
davvero facili e flessibili da programmare. A detta di diverse persone,
sono anche progettate meglio (in particolare se si vuole usare Twisted)
Anche le wxPython sono semplici e molto flessibili, soprattutto perchè
non c'è il vincolo dei tipi e della staticità del C++..una volta che hai
capito il modello a eventi (peraltro semplicissimo), devi solo avere il
manuale in una finestra fisso e vai di corsa :-)
NoWhereMan
2005-09-24 21:59:26 UTC
Permalink
Post by Manlio Perillo
Post by NoWhereMan
Io le sconsiglierei, a meno di non programmare linux. MA il nostro credo
sia un utente win ;) Le gtk obbligherebbero a installare librerie
aggiuntive... e comunque i wxWidgets sono multipiattaforma (e sotto linux
appaiono come le GTK :D )
Anche le wxWidgets obbligano ad installarsi una libreria aggiuntiva...
quale e' la differenza?
Quello che intendevo con "librerie aggiuntive" è il dover installare per
l'utente finale file ALTRI dal semplice eseguibile e dai file di supporto
creati dal programmatore. Le gtk richiedono di distribuire anche dll
aggiuntive (che io sappia, non so se si possono compilare staticamente),
mentre le wx no.
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
Yes
2005-09-25 16:46:44 UTC
Permalink
Post by NoWhereMan
Post by Manlio Perillo
Post by NoWhereMan
Io le sconsiglierei, a meno di non programmare linux. MA il nostro credo
sia un utente win ;) Le gtk obbligherebbero a installare librerie
aggiuntive... e comunque i wxWidgets sono multipiattaforma (e sotto
linux appaiono come le GTK :D )
Anche le wxWidgets obbligano ad installarsi una libreria aggiuntiva...
quale e' la differenza?
Quello che intendevo con "librerie aggiuntive" è il dover installare per
l'utente finale file ALTRI dal semplice eseguibile e dai file di supporto
creati dal programmatore. Le gtk richiedono di distribuire anche dll
aggiuntive (che io sappia, non so se si possono compilare staticamente),
mentre le wx no.
Puoi sempre includerle nell'installer, esattamente come faresti con
wx,invece di distribuirle a parte...nemmeno con wx
puoi compilare staticamente (o meglio, è sconsigliato farlo)
NoWhereMan
2005-09-25 17:13:59 UTC
Permalink
Post by Yes
Puoi sempre includerle nell'installer, esattamente come faresti con
wx,invece di distribuirle a parte...nemmeno con wx
puoi compilare staticamente (o meglio, è sconsigliato farlo)
Ma le gtk adesso visualizzano proprio i componenti nativi win32 oppure è
ancora una specie di espediente come in java (che visualizza la skin di
sistema ma in realà non usa i componenti nativi)?
Da GIMP che ho installato sembra di sì... boh, non so :)
Comunque, io sono per la compattezza, il più possibile. Nel caso comunque,
può andare benissimo anche GTK... in ogni caso, il nostro è troppo
"giovane" per cimentarsi da zero con una qualsiasi libreria. Dovrebbe
trovare un binding già pronto con un bell'ide magari rad (eldorado,
Integrated development environment con Rapid Application Development: un
ambiente di programmazione, in pratica, come quello del visual basic, o di
MMB, disegni il bottone, doppioclicchi, scrivi il codice :) )
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
Manlio Perillo
2005-09-25 19:36:30 UTC
Permalink
On Sun, 25 Sep 2005 19:13:59 +0200, NoWhereMan
Post by NoWhereMan
Post by Yes
Puoi sempre includerle nell'installer, esattamente come faresti con
wx,invece di distribuirle a parte...nemmeno con wx
puoi compilare staticamente (o meglio, è sconsigliato farlo)
Ma le gtk adesso visualizzano proprio i componenti nativi win32 oppure è
ancora una specie di espediente come in java (che visualizza la skin di
sistema ma in realà non usa i componenti nativi)?
No. GTK non usa componenti nativi.
Pero' ha, tra i temi, qualcuno che somiglia a quelli di Windows.
Post by NoWhereMan
Da GIMP che ho installato sembra di sì... boh, non so :)
Comunque, io sono per la compattezza, il più possibile.
Vero.
Qui magari gli sviluppatori dovrebbero mettersi daccordo per creare un
runtime comune per Mingw.
In questo modo i vari applicativi che lo richiedono possono fornire
all'utente la possibilita' di scaricarlo, nel caso non sia gia'
presente sul sistema.
Post by NoWhereMan
Nel caso comunque,
può andare benissimo anche GTK... in ogni caso, il nostro è troppo
"giovane" per cimentarsi da zero con una qualsiasi libreria. Dovrebbe
trovare un binding già pronto con un bell'ide magari rad (eldorado,
Integrated development environment con Rapid Application Development: un
ambiente di programmazione, in pratica, come quello del visual basic, o di
MMB, disegni il bottone, doppioclicchi, scrivi il codice :) )
Per le GTK c'e' Glade e Gazpacho



Saluti Manlio Perillo
NoWhereMan
2005-09-26 18:18:30 UTC
Permalink
Post by Manlio Perillo
On Sun, 25 Sep 2005 19:13:59 +0200, NoWhereMan
Post by NoWhereMan
Post by Yes
Puoi sempre includerle nell'installer, esattamente come faresti con
wx,invece di distribuirle a parte...nemmeno con wx
puoi compilare staticamente (o meglio, è sconsigliato farlo)
Ma le gtk adesso visualizzano proprio i componenti nativi win32 oppure è
ancora una specie di espediente come in java (che visualizza la skin di
sistema ma in realà non usa i componenti nativi)?
No. GTK non usa componenti nativi.
Pero' ha, tra i temi, qualcuno che somiglia a quelli di Windows.
Post by NoWhereMan
Da GIMP che ho installato sembra di sì... boh, non so :)
Comunque, io sono per la compattezza, il più possibile.
Vero.
Qui magari gli sviluppatori dovrebbero mettersi daccordo per creare un
runtime comune per Mingw.
In questo modo i vari applicativi che lo richiedono possono fornire
all'utente la possibilita' di scaricarlo, nel caso non sia gia'
presente sul sistema.
Io eviterei proprio il runtime, se possibile. Anzi... qualcuno mi spiega a
che serve il vcrtXX.dll di Visual C++ ?? Preferisco un esguibile di MinGW
di poco più grosso, purché giri su qualsiasi Win...

E se è con i wxWidgets, gira pure sotto Lin.* (Tiè. :) ). E ha l'aspetto
dei componenti nativi...



*ricompilando, ovviamente ;)
--
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
PierIgno
2005-09-27 12:19:33 UTC
Permalink
Post by NoWhereMan
Post by Manlio Perillo
On Sun, 25 Sep 2005 19:13:59 +0200, NoWhereMan
Post by NoWhereMan
Post by Yes
Puoi sempre includerle nell'installer, esattamente come faresti con
wx,invece di distribuirle a parte...nemmeno con wx
puoi compilare staticamente (o meglio, è sconsigliato farlo)
Ma le gtk adesso visualizzano proprio i componenti nativi win32 oppure è
ancora una specie di espediente come in java (che visualizza la skin di
sistema ma in realà non usa i componenti nativi)?
No. GTK non usa componenti nativi.
Pero' ha, tra i temi, qualcuno che somiglia a quelli di Windows.
Post by NoWhereMan
Da GIMP che ho installato sembra di sì... boh, non so :)
Comunque, io sono per la compattezza, il più possibile.
Vero.
Qui magari gli sviluppatori dovrebbero mettersi daccordo per creare un
runtime comune per Mingw.
In questo modo i vari applicativi che lo richiedono possono fornire
all'utente la possibilita' di scaricarlo, nel caso non sia gia'
presente sul sistema.
Io eviterei proprio il runtime, se possibile. Anzi... qualcuno mi spiega a
che serve il vcrtXX.dll di Visual C++ ?? Preferisco un esguibile di MinGW
di poco più grosso, purché giri su qualsiasi Win...
E se è con i wxWidgets, gira pure sotto Lin.* (Tiè. :) ). E ha l'aspetto
dei componenti nativi...
Si puo compilare con mingw una applicazione fatta con wxWidgets in
maniera statica ? e se si .... come :)
Post by NoWhereMan
*ricompilando, ovviamente ;)
NoWhereMan
2005-09-28 07:47:54 UTC
Permalink
Post by PierIgno
Si puo compilare con mingw una applicazione fatta con wxWidgets in
maniera statica ? e se si .... come :)
Ottima domanda... si può, vedi per esempio wxBasic http://wxbasic.sf.net
Non chiedermi dettagli perché non programmo abitualmente con le wx, ma ho
intenzione di imparare (anzi, attualmente sto lavorando in php, quindi
proprio non c'entra niente. Chi ha detto phpGtk? no, non sto usando quello
:D), usando wxdev-cpp http://wxdsgn.sourceforge.net/
(compilatore: mingw ;) )

Quello che trovo bello di questo ide è che, oltre ad avere funzionalità
rad, la libreria di componenti wx è scritta in c++ proprio come il codice
che andrai a scrivere. Non è un frankenstein come il c++ builder che si
appoggia su una libreria scritta in pascal. Alla fine il risultato sarà lo
stesso, ma, puramente a livello concettuale, mi piace di più :D

byez

___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
PierIgno
2005-09-28 08:23:30 UTC
Permalink
Post by NoWhereMan
Si puo compilare con minegw una applicazione fatta con wxWidgets in
maniera statica ? e se si .... come :)
Ottima domanda... si può, vedi per esempio wxBasic http://wxbasic.sf.net
Non chiedermi dettagli perché non programmo abitualmente con le wx, ma ho
intenzione di imparare (anzi, attualmente sto lavorando in php, quindi
proprio non c'entra niente. Chi ha detto phpGtk? no, non sto usando quello
:D), usando wxdev-cpp http://wxdsgn.sourceforge.net/
(compilatore: mingw ;) )
Sono molto belle, abbastanza semplici e con mingw mi trovo davvero bene
.... poi penso che poter sviluppare applicazioni che siano "portabili"
ma che non passino dal peso di java e delle swing (che detesto) sia un
grosso plus ... ma è un parere personale. Dev-c++ però lo trovo scomodo
.... alla fine mi trovo molto meglio con VisualWx e vim per editare il
codice dove mi serve.
Post by NoWhereMan
Quello che trovo bello di questo ide è che, oltre ad avere funzionalità
rad, la libreria di componenti wx è scritta in c++ proprio come il codice
che andrai a scrivere. Non è un frankenstein come il c++ builder che si
appoggia su una libreria scritta in pascal. Alla fine il risultato sarà lo
stesso, ma, puramente a livello concettuale, mi piace di più :D
byez
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
PierIgno
2005-09-28 08:23:45 UTC
Permalink
Post by NoWhereMan
Si puo compilare con minegw una applicazione fatta con wxWidgets in
maniera statica ? e se si .... come :)
Ottima domanda... si può, vedi per esempio wxBasic http://wxbasic.sf.net
Non chiedermi dettagli perché non programmo abitualmente con le wx, ma ho
intenzione di imparare (anzi, attualmente sto lavorando in php, quindi
proprio non c'entra niente. Chi ha detto phpGtk? no, non sto usando quello
:D), usando wxdev-cpp http://wxdsgn.sourceforge.net/
(compilatore: mingw ;) )
Sono molto belle, abbastanza semplici e con mingw mi trovo davvero bene
.... poi penso che poter sviluppare applicazioni che siano "portabili"
ma che non passino dal peso di java e delle swing (che detesto) sia un
grosso plus ... ma è un parere personale. Dev-c++ però lo trovo scomodo
.... alla fine mi trovo molto meglio con VisualWx e vim per editare il
codice dove mi serve.
Post by NoWhereMan
Quello che trovo bello di questo ide è che, oltre ad avere funzionalità
rad, la libreria di componenti wx è scritta in c++ proprio come il codice
che andrai a scrivere. Non è un frankenstein come il c++ builder che si
appoggia su una libreria scritta in pascal. Alla fine il risultato sarà lo
stesso, ma, puramente a livello concettuale, mi piace di più :D
byez
___/\/o\/\/here/\/\an___
"Vagisil migliora
la tua vita intima"
http://www.vagisil.com/teencenter.shtml
Vincent Vega
2005-09-24 19:04:49 UTC
Permalink
Post by Eldorado
Capisco che fare una domanda banale in un NG di professionisti nella materia
non sia tanto facile.
Per questo motivo vi chiedo di essere benevoli con le risposte.
Mi piacerebbe creare un piccolissimo programmino partendo da zero, insomma
creare qualcosa e dire: questa l'ho fatto io.
Purtroppo NON saprei nemmeno dove cominciare, e tantomeno il software da
usare.
L'entusiasmo però è alto.
La mia domanda (banale) è questa: cosa mi serve per fare ciò che chiedo?
La prima cosa che devi fare è scegliere il linguaggio. Programmare
consiste nel spiegare al computer cosa deve fare, quindi devi saperti
spiegare. I linguaggi a questo servono.
Da quello che capisco non hai basi di informatica per cui quello che ti
serve è un linguaggio ad alto livello che non ti ponga troppi problemi.
Un tempo c'era il basic, ora francamente non so nemmeno che consigliare
per un caso come il tuo.
Forse Python? http://wiki.python.org/moin/BeginnersGuide
Luc
2005-09-29 11:33:21 UTC
Permalink
Post by Eldorado
Purtroppo NON saprei nemmeno dove cominciare
VideoBasic, Gruppo Editoriale Jackson. 20 cassette mensili per C64... ;)
--
Luc
Continua a leggere su narkive:
Loading...