PDA

View Full Version : Programmare????


Sirius88
07-04-2006, 23:35
Bene, è arrivato il fatidico giorno, ho sempre ignorato la parola programmazione, o meglio, ho sempre cercato solo di avere una vaga idea di cosa fosse, nulla di più.
Ma girando santuariamente tutti i giorni su internet, mi rendo sempre più conto che conoscere un lingueggio di programmazione, non è solo saper programmare, ma aver euna conoscenza base di un computer, di come funzionino le cose che io stesso clicco tutti i giorni...

Dopov questa breve introduzione, vi esporrò il mio quesito molto vago, vago per mancata conoscenza mia, e perchè la domanda che vi porrò, vi potrà sembrare strana.


Ho 18 anni, sono uno studente, ma nulla e dico nulla in questo mondo riesce ad affascinarmi quanto 3 cose:
La libertà di vivere, i militari, e la programmazione.

Ora che conoscenze devo avere per poter programmare???
cosa significa programmazione?
quali linguaggi di programmazione si usano a questo mondo?
es: che differenza c'è tra C-C++ oppure un html .asp net PHP ecc, cosa sono i programmi delphi e visual studio???

bene, se in poche righe saprete darmi 2 dritte su tutti questi quesiti, ve ne sarò grati, perchè probabilmente sceglierò la cosa che mi piacerà di più, per approfondirla

chi lo sa, magari un giorno diventerò un grande programmatore, o forse un gran lavacessi... ;)

ciao a tutti, e vi auguro una buona notte

PS: rispondete in tanti, e rendiamo viva la conversazione.

Sirius88
08-04-2006, 12:15
non risponde nessuno???

shinya
08-04-2006, 13:07
Ora che conoscenze devo avere per poter programmare???
cosa significa programmazione?


La seconda è una domanda che potrebbe portare lontano.
La prima invece è più semplice. La risposta è "dipende". Di solito un percorso diciamo "formale" comincia da linguaggi che ti permettano di avere a che fare con le "basi", con l'architettura di un elaboratore, come il C. O l'Assembler. Personalmente te lo sconsiglio, almeno per i primi tempi. Dovresti indirizzarti verso linguaggi più semplici, come python (che a me non piace molto, ma è semplice) o ruby (che invece a me piace). Giusto per capire cosa voglia dire programmare.
Evita cose come visual basic o powerbuilder (brrrr....) che a mio modesto parere sono quanto di più lontano ci possa essere dall'"art of programming".

Poi quando sarai pronto alla purificazione, potrai cominciare a studiare Haskell :)

Sirius88
08-04-2006, 13:19
Aspetta, ma io sono semprep utnoa capo, nessuno mi ha fatto uno schemino di cosa siano tutti i linguaggi di programmazione...

voglio dire, un php o un html, sono cose ben distinte da visual basic.net o delphi vero???

o meglio, chi sarebbe in grado di farmi uno schemino, su tutti i linguaggi di programmazione???
delle sostanzili differenze, delle possibilità maggiori tra 1 e l'altro ;)

da java a php o html, cosa cambia?
quali di questi mi da maggiori possibilità?
invece per creare un programma cosa mi serve??

sono proprio a punto zero, e visto che tutti partiamo da 1 punto zero, ho deciso di rivolgermi a voi, visto il vostro database colmo di messaggi interessanti. ;)

andbin
08-04-2006, 13:35
voglio dire, un php o un html, sono cose ben distinte da visual basic.net o delphi vero???Sì, sono cose diverse. php è un linguaggio di programmazione per il web, html è un linguaggio di marcatura delle pagine web, visual basic.net è uno dei linguaggi di programmazione per l'ambiente .NET mentre delphi è un linguaggio di programmazione sviluppato dalla Borland e basato sull'Object Pascal.

o meglio, chi sarebbe in grado di farmi uno schemino, su tutti i linguaggi di programmazione???
delle sostanzili differenze, delle possibilità maggiori tra 1 e l'altro ;)

da java a php o html, cosa cambia?
quali di questi mi da maggiori possibilità?
invece per creare un programma cosa mi serve??Cambiano gli obiettivi dei vari linguaggi. Non c'è un linguaggio migliore degli altri, ogni linguaggio ha "luci e ombre" e il fatto di adottare l'uno o l'altro dipende molto dal lavoro che si deve svolgere e da cosa si deve sviluppare.

Sirius88
08-04-2006, 13:46
Benissimo, allora, io sono un appassionato di siti web, ovvero, mi piace molto gstire siti web (webmaster) anche se per ora il lavoro è stato sempre improvvisato... ;)

quindi già incominciamo ad escludere i linguaggi di programmazione che non siano usati per creare pagine web.

Stendiamo una lista dei linguaggi web che conosco:

1:PHP
2:Html
3:ASP.NET
4:Java web

se ho detto tutto giusto, le cose dovrebbero essere così...

forse ne manca qaulcuno, o forse ce ne uno di troppo
comq, se dovessi incominciare, su cosa dovrei cimentarmi???

ES: PHP o ASP.Net?

Xalexalex
08-04-2006, 13:53
Ma PHP tutta la vita!!!!

Sirius88
08-04-2006, 14:00
Mi devo buttare sul PHP????

ma possibile che su internet non torovi delle guide decenti per imparare a programmare, e le distinzione su ub linguaggio e l'altro???

andbin
08-04-2006, 14:04
Benissimo, allora, io sono un appassionato di siti web, ovvero, mi piace molto gstire siti web (webmaster) anche se per ora il lavoro è stato sempre improvvisato... ;)

quindi già incominciamo ad escludere i linguaggi di programmazione che non siano usati per creare pagine web.

Stendiamo una lista dei linguaggi web che conosco:

1:PHP
2:Html
3:ASP.NET
4:Java web

se ho detto tutto giusto, le cose dovrebbero essere così...Tieni presente che per il web esiste una distinzione tra linguaggi "client-side" e "server-side". Per client-side si intende tutto quello che "gira" all'interno del browser mentre con server-side si intende tutto quello che "gira" sul server (che ospita il sito) per poter creare/generare (anche dinamicamente) i contenuti da inviare al browser.

Quindi alla luce di questo:

Linguaggi client-side:
- HTML
- CSS
- Javascript
- VBScript
- Java (per le applet)

Linguaggi server-side:
- CGI (in C, C++, ecc....)
- PHP
- Perl
- ASP/ASP.NET
- Java (per le servlet/JSP)
- ColdFusion

Probabilmente (anzi sicuramente) non li ho elencati tutti!

forse ne manca qaulcuno, o forse ce ne uno di troppo
comq, se dovessi incominciare, su cosa dovrei cimentarmi???

ES: PHP o ASP.Net?Io ti consiglierei PHP. È relativamente semplice come linguaggio, non hai bisogno, almeno all'inizio, di usare costosi o complicati ambienti di sviluppo (basta anche solo un semplice editor) e funziona tranquillamente su Windows o Linux.

Sirius88
08-04-2006, 14:07
Quindi tra le 2 di categorie di programmazione mi consigliate di buttarmi su server side...

e il PHP dovrebbe essere il migliore nel rapporto tra qualità e difficoltà ;)

andbin
08-04-2006, 16:13
Quindi tra le 2 di categorie di programmazione mi consigliate di buttarmi su server side...

e il PHP dovrebbe essere il migliore nel rapporto tra qualità e difficoltà ;)Diciamo questo: i linguaggi client-side li devi comunque conoscere/imparare e mi riferisco in particolare (come minimo) a HTML/CSS/Javascript. Sono queste le tecnologie che vengono "date in pasto" al browser.

Infatti per fare un sito web basterebbero anche soltanto questi 3 linguaggi che ho appena menzionato. Il sito però, per definizione, sarebbe "statico". Le pagine le scrivi in un certo modo, le pubblichi e alla fin fine, quelle sono e rimangono così (da qui l'aggettivo di statiche).

Se invece devi fare cose particolari come operare con database, gestire gli accessi da parte degli utenti, modificare dinamicamente le pagine in base ad eventi e/o situazioni particolari ... ecco che allora sei costretto ad usare un linguaggio server-side.
In questo caso il server web non è più soltanto una applicazione che fornisce un semplice file dietro richiesta del browser ma elabora/esegue degli script il cui risultato, generato in modo dinamico, è la pagina web che finisce in pasto al browser.

Sirius88
08-04-2006, 18:40
Pertanto mi dici di buttarmi sul PHP????

ma il Personal home page, è realmente difficile, o è solo una nostra illusione?
esistono siti che spieghino brevemente cosa sia, e quali siano i programmi per utilizzarlo???
dreamweawer?
frontpage?

so che è una lingua scritta solo per essere compresa solo da computer, esiste un dizionario, una legenda che mi spieghi cosa vogliano dire alcuni simboli?

ES: se io volessi scrivere "W la Ferrari"
cosa devo digitare in codice???

Ciao e Grazie ;)

Xalexalex
08-04-2006, 19:21
Pertanto mi dici di buttarmi sul PHP????
Si fidati, fallo. :O
ma il Personal home page, è realmente difficile, o è solo una nostra illusione?
esistono siti che spieghino brevemente cosa sia, e quali siano i programmi per utilizzarlo???
dreamweawer?
frontpage?

Personal Home Page :confused: ???? PHP è l'acronimo ricorsivo di PHP: Hypertext Preprocessor. Di siti ce ne sono quanti ne vuoi, uno per tutti http://freephp.html.it ma per imparare ti ci vuole un manuale. Per usarlo non hai bisogno di un programma (meglio dire editor) preciso, anche il blocco note va bene. Per provare però hai bisogno di un server web, consigliatissimo Apache (www.apache.org) e ovviamente dei file binari di PHP, che trovi presso www.php.net. Per l'installazione ti rimando alla guida che trovi nella sottosezione di guide e tutorial, cmq se dovessi riscontrare problemi durante l'installazione chiedi pure :D.

so che è una lingua scritta solo per essere compresa solo da computer, esiste un dizionario, una legenda che mi spieghi cosa vogliano dire alcuni simboli?

ES: se io volessi scrivere "W la Ferrari"
cosa devo digitare in codice???

<?php
echo 'Preferisco la McLaren';
?>

Non ti serve una leggenda ma un manuale per imparare il linguaggio :D .

Ciauz,
Alex

Doctor P
08-04-2006, 19:29
Che gran confusione che avete fatto ho letto un po' di cavolate in generale scritte probabilmente per sentito dire. Per iniziare con la programmazione devi partire dalle basi, evita tutto ciò che riguarda la rete o le applicazioni client - server quelle ci sono IN OGNI LINGUAGGIO e sono solo un aspetto della programmazione. Per partire dalla base basta un compilatore, un manuale e un editor di testo. Linguaggi di questo tipo sono ad ex C e C++ oppure Pascal evita anche il java che è abbastanza forviante.

Niente interfacce grafiche o form niente di niente. Solo banalmente righe di comando e stop. Fatto questo e appreso le basi della programmazione puoi utilizzare tutti i linguaggi che poi sono uguali cambia giusto la grammatica (per i linguaggi ad alto livello).

A dimenticavo jscript, vbscript, xml e html NON sono linguaggi di programmazione.

Non puoi partire col PHP perché si basa su un altissimo numero di prerequisiti e di altri linguaggi.

Sirius88
08-04-2006, 19:31
ah è così faciel scrivere???

bene, se intanto qualche altro utente sarebbe così gentile da postare anche altri siti utili con guide manuali ecc, sarei più contento... ;)

PS: io comq mi ero cimentato su un editor CMS, o meglio postnuke PB-Nuke ecc...

solo che sono già precompilati...

ciao e grazie ;)

Sirius88
08-04-2006, 19:33
Non puoi partire col PHP perché si basa su un altissimo numero di prerequisiti e di altri linguaggi.


ah ecco, vedi, già questa cosa mi mancava... :(


ma vedi,sono qui perchè voi mi possiate dare delle dritte...

e dirmi come faccio ad incomincaire, visto che ho la fortuna di avere internet 24/24, non lo voglio usare solo per giocare, ma facendo qualcosa di costruttivo... ;)

Xalexalex
08-04-2006, 19:58
Non puoi partire col PHP perché si basa su un altissimo numero di prerequisiti e di altri linguaggi.

Non è vero... Anzi PHP è molto facile da imparare e dà subito risultati ottimi. Poi se uno vuole andare più a fondo male non gli fa.
E' ovvio che PHP non dà delle basi di programmazione vere e proprie... Per quelle i linguaggi di scripting non servono a molto. Se volessimo partire dalle "basi" è necessario che impari linguaggi a "basso livello" come il C o ancora meglio (o peggio??) Assembly. Tutto dipende da te. Se pensi che ti possa servire in un futuro, partire dalle basi serve, quello che viene dopo sarà solo più facile. Se lo fai solo per una passione o per vedere dei risultati "tangibili" (col C al massimo ci fai un driver per Linux.. ma manco quello mi sa...) allora linguaggi ad alto livello, o di scripting, fanno al caso tuo.

Spero di non aver usato troppi paroloni...
Ciauz,
Alex

andbin
08-04-2006, 20:05
Che gran confusione che avete fatto ho letto un po' di cavolate in generale scritte probabilmente per sentito dire. :confused: :confused:

Per iniziare con la programmazione devi partire dalle basiQuesto è vero in generale.

evita anche il java che è abbastanza forviante.Fuorviante??? E per quale motivo sarebbe "fuorviante"?? Ma stai scherzando???

Fatto questo e appreso le basi della programmazione puoi utilizzare tutti i linguaggi che poi sono uguali cambia giusto la grammatica (per i linguaggi ad alto livello).Eh???? :confused: Mica tanto! I linguaggi non sono tutti uguali. Il solo fatto che abbiano delle similitudini a livello sintattico, non significa che siano tutti uguali. Ad esempio C, C++, Java, si assomigliano discretamente come sintassi: usano le graffe per i blocchi, hanno il if, for, while, do-while, switch, praticamente "quasi" uguali. Ma sono molto diversi, come filosofia, obiettivi, utilizzo.

A dimenticavo jscript, vbscript, xml e html NON sono linguaggi di programmazione.Allora: xml e html sono linguaggi descrittivi. javascript/jscript/vbscript sono, per dirla in modo preciso, "linguaggi di scripting".
Wikipedia dice che:
In informatica, un linguaggio di programmazione è un linguaggio formale dotato di una sintassi ben definita, e generalmente descritta con strumenti quali la notazione BNF. Un linguaggio di programmazione viene utilizzato per scrivere algoritmi che realizzano programmi.
Quindi javascript/jscript/vbscript sono anche "linguaggi di programmazione".

Non puoi partire col PHP perché si basa su un altissimo numero di prerequisiti e di altri linguaggi.E chi l'ha detto????

Xalexalex
08-04-2006, 20:35
:confused: :confused:

Questo è vero in generale.

Fuorviante??? E per quale motivo sarebbe "fuorviante"?? Ma stai scherzando???

Eh???? :confused: Mica tanto! I linguaggi non sono tutti uguali. Il solo fatto che abbiano delle similitudini a livello sintattico, non significa che siano tutti uguali. Ad esempio C, C++, Java, si assomigliano discretamente come sintassi: usano le graffe per i blocchi, hanno il if, for, while, do-while, switch, praticamente "quasi" uguali. Ma sono molto diversi, come filosofia, obiettivi, utilizzo.

Allora: xml e html sono linguaggi descrittivi. javascript/jscript/vbscript sono, per dirla in modo preciso, "linguaggi di scripting".
Wikipedia dice che:
In informatica, un linguaggio di programmazione è un linguaggio formale dotato di una sintassi ben definita, e generalmente descritta con strumenti quali la notazione BNF. Un linguaggio di programmazione viene utilizzato per scrivere algoritmi che realizzano programmi.
Quindi javascript/jscript/vbscript sono anche "linguaggi di programmazione".

E chi l'ha detto????


*

Era d'obbligo...

Sirius88
10-04-2006, 08:17
In Sostanza???

link utili per PHP e Company???

ciao ;)

Doctor P
10-04-2006, 10:26
In Sostanza???

link utili per PHP e Company???

ciao ;)
IO rilancio però preciso che è un mio parere personale quindi nulla di sacrosanto. Php è un ottimo linguaggio però per usarlo bisogna

- avere nozioni di base sull'html quindi almeno i tag principali
- avere nozioni di base sull'architettura client server (che ripeto è presente in quasi tutti i linguaggi di programmazione)
- sapere un minimo come mettere su un server web per fare le prove quindi installare apache e almeno il modulo php per iniziare
- il php pesca a piene mani nella sintassi dal C e dalla shell di unix inoltre nel php si possono comunque utilizzare script di java e basic e a questo punto conoscenze di jscript e vbscript di base
- il php da solo è un gran bel linguaggio però sviluppa il massimo del potenziale se si utilizza una base dati quindi nozioni di base su un dbms e poi su come installarlo e configurarlo e sulle sintassi delle stringhe sql

Oltre tutte queste nozioni e nozioncine (alcune sicuramente semplici e di veloce apprendimento) bisogna imparare anche la vera e propria programmazione quindi c'è un surplus di informazioni enorme.

La cosa migliore è imparare a programmare da un linguaggio di partenza che sia il pascal, il c o anche il basic vanno bene per i meccanismi di base. Sconsiglio ancora una volta gli ambienti di sviluppo visuali almeno all'inizio e di java perché è un discorso un po' a parte visto che introduce dei concetti molto astratti (la classe che contiene oggetti che sono istanze di altre classi che ereditano valori e proprietà da altri oggetti .......ecc) che sono un po' complessi per chi si avvicina la prima volta alla programmazione.

Concludo con un bel manuale di C (non C for dummies per cortesia) di qualche edizione specializzata se sei di Milano a Duomo c'è la Mondadori informatica che vende solo quello, un bel compilatore e via. Meglio ancora se usi Cygwin.

Xalexalex
10-04-2006, 10:48
IO rilancio però preciso che è un mio parere personale quindi nulla di sacrosanto. Php è un ottimo linguaggio però per usarlo bisogna

- avere nozioni di base sull'html quindi almeno i tag principali
Questo è vero, ma si può fare (anche se è SBAGLIATO) con dreamweaver.

- avere nozioni di base sull'architettura client server (che ripeto è presente in quasi tutti i linguaggi di programmazione)
Questo fa parte dell'apprendistato stesso di PHP, non è da conoscere a priori, in quanto è la prima cosa che un manuale ti spiega.

- sapere un minimo come mettere su un server web per fare le prove quindi installare apache e almeno il modulo php per iniziare
C'è un ottima guida nella sezione apposita, qui sopra.

- il php pesca a piene mani nella sintassi dal C e dalla shell di unix inoltre nel php si possono comunque utilizzare script di java e basic e a questo punto conoscenze di jscript e vbscript di base
Posso anche essere d'accordo con la sintassi presa da C e bash (aggiungo anche Perl), ma jscript e vbscript con PHP non c'entrano nulla...

- il php da solo è un gran bel linguaggio però sviluppa il massimo del potenziale se si utilizza una base dati quindi nozioni di base su un dbms e poi su come installarlo e configurarlo e sulle sintassi delle stringhe sql
Questo è vero, ma si può tranquillamente iniziare anche senza, magari con i files di testo, poco professionali, ma assicuro che aprono la mente.

Oltre tutte queste nozioni e nozioncine (alcune sicuramente semplici e di veloce apprendimento) bisogna imparare anche la vera e propria programmazione quindi c'è un surplus di informazioni enorme.
Ma perchè??? Se il buon Sirius vuole imparare a programmare il PHP, non ha bisogno di imparare altri linguaggi. La sintassi di PHP è chiara, e non devi impararne altre prima, se vuoi cominciare a programmare questo linguaggio.

La cosa migliore è imparare a programmare da un linguaggio di partenza che sia il pascal, il c o anche il basic vanno bene per i meccanismi di base. Sconsiglio ancora una volta gli ambienti di sviluppo visuali almeno all'inizio e di java perché è un discorso un po' a parte visto che introduce dei concetti molto astratti (la classe che contiene oggetti che sono istanze di altre classi che ereditano valori e proprietà da altri oggetti .......ecc) che sono un po' complessi per chi si avvicina la prima volta alla programmazione.

Concludo con un bel manuale di C (non C for dummies per cortesia) di qualche edizione specializzata se sei di Milano a Duomo c'è la Mondadori informatica che vende solo quello, un bel compilatore e via. Meglio ancora se usi Cygwin.

Ma NO! Se vuole imparare a gestire un sito correttamente, in modo dinamico, e funzionale (ma soprattutto funzionante :D) html, php e css gli bastano.
Quando vorrà potrà aggiungere JavaScript, MySql e fronzolate varie.

Tutto quanto sopra ovviamente IMHO :sofico: .

Ciauz,
Alex

andbin
10-04-2006, 12:01
- avere nozioni di base sull'html quindi almeno i tag principaliQuesto è verissimo. Una pagina PHP è composta da parti di script in PHP e da parti (al di fuori del codice PHP) in HTML. In pratica un file .php lo si può "vedere" come un file html con all'interno, eventualmente, del codice PHP racchiuso da opportuni tag.
Quindi una conoscenza anche minima dei principali tag HTML è sicuramente necessaria, altrimenti non si riesce a "buttar fuori" in output qualcosa di utile.

- avere nozioni di base sull'architettura client server (che ripeto è presente in quasi tutti i linguaggi di programmazione)No, il client-server è un concetto, una architettura, non centra nulla direttamente con i linguaggi di programmazione. Il concetto di client-server è molto semplice: c'è un client (fatto in qualunque modo/con qualunque linguaggio) che fa delle richieste ad un server (fatto in qualunque modo/con qualunque linguaggio) che a sua volta risponde. E basta.

- sapere un minimo come mettere su un server web per fare le prove quindi installare apache e almeno il modulo php per iniziareVero, comunque non è molto complicato. Almeno su Windows (personalmente non ho mai provato su Linux :p ), installare Apache e PHP non è molto difficile e si trovano molte info in rete al riguardo.

- il php pesca a piene mani nella sintassi dal C e dalla shell di unix inoltre nel php si possono comunque utilizzare script di java e basic e a questo punto conoscenze di jscript e vbscript di baseAllora: il PHP "prende in prestito" molte cose della sintassi del "C" e alcune cose anche dal Perl. Questo non vuol dire che uno, per imparare il PHP, deve per forza conoscere C e Perl (o Unix e simili). Certo, chi conosce già questi linguaggi è sicuramente avvantaggiato nell'apprendimento del PHP. Ma come ripeto, non è indispensabile conoscere C/Perl/Shell, ecc...

Nota: java, basic, jscript e compagnia bella, NON hanno nulla a che fare con il PHP. Dire che "nel php si possono comunque utilizzare script di java" è sbagliato (è una eresia :p ). Il fatto che all'interno di un file .php ci sia del codice come ad esempio:
<script type="text/javascript">
<!--
.... ....
//-->
</script>non vuol dire che sto usando javascript in PHP!!! Questo è un pezzo di codice che viene spedito così come è al browser dove poi verrà fatto "girare" il codice javascript.

- il php da solo è un gran bel linguaggio però sviluppa il massimo del potenziale se si utilizza una base dati quindi nozioni di base su un dbms e poi su come installarlo e configurarlo e sulle sintassi delle stringhe sqlCerto, ma dipende sempre da cosa si vuole fare.

Oltre tutte queste nozioni e nozioncine (alcune sicuramente semplici e di veloce apprendimento) bisogna imparare anche la vera e propria programmazione quindi c'è un surplus di informazioni enorme.Ovvio, ma questo vale per qualunque linguaggio. È fondamentale sapere almeno le basi della programmazione: cosa è una variabile, cosa è una funzione/subroutine, ecc...

andbin
10-04-2006, 12:45
Per Doctor P

Non è per fare critiche o polemiche, ma credo che anche Alessandro::Xalexalex sarebbe d'accordo con me sul fatto che probabilmente hai le idee un po' confuse sui vari linguaggi di programmazione e sulle relazioni tra i vari linguaggi, specialmente quelli legati al mondo del web.

Non puoi dire "inoltre nel php si possono comunque utilizzare script di java e basic". Altrimenti la gente inizia a pensar male del php. :D

Xalexalex
10-04-2006, 12:49
Per Doctor P

Non è per fare critiche o polemiche, ma credo che anche Alessandro::Xalexalex sarebbe d'accordo con me sul fatto che probabilmente hai le idee un po' confuse sui vari linguaggi di programmazione e sulle relazioni tra i vari linguaggi, specialmente quelli legati al mondo del web.

Non puoi dire "inoltre nel php si possono comunque utilizzare script di java e basic". Altrimenti la gente inizia a pensar male del php. :D
Già... Qualcuno potrebbe pensare:

Posso usare PHP con VBScript
VBScript è dello Zio Bill
Per proprietà transitiva PHP è dello Zio Bill :eek: :eek: :cry: (ior potenshal auar peshion)

fek
10-04-2006, 13:14
La cosa migliore è imparare a programmare da un linguaggio di partenza che sia il pascal, il c o anche il basic vanno bene per i meccanismi di base. Sconsiglio ancora una volta gli ambienti di sviluppo visuali almeno all'inizio e di java perché è un discorso un po' a parte visto che introduce dei concetti molto astratti (la classe che contiene oggetti che sono istanze di altre classi che ereditano valori e proprietà da altri oggetti .......ecc) che sono un po' complessi per chi si avvicina la prima volta alla programmazione.

Per iniziare a programmare consiglio di evitare il C come la peste, e' un linguaggio troppo a basso livello, gia' complesso per chi ha qualche anno alle spalle, figuriamoci per un totale principiante che prima di tutto deve imparare i concetti alla base della programmazione, con un linguaggio che gli insegni i paradigmi corretti. Imparare il C significherebbe spendere tantissimo tempo su un linguaggio che insegnerebbe tutta una serie di tecniche e di paradigmi che poi andrebbe disimparato per poter progredire.

Io consiglio linguaggi ad alto livello come Java e C# se si vuole rimanere legati alla sintassi C-like per poi passare al C++ pian piano. Affiancherei ad uno di questi linguaggi, un linguaggio dinamico come Python o Ruby (o LUA) per imparare l'altra faccia della medaglia ed avere un quadro piu' completo.

Una volta acquisite le basi ad alto livello si puo' provare ad esplorare la macchina piu' a basso livello e capire i concetti sui quali i linguaggi si posano.

Tenendo ben presente che programmare significa solo una cosa: risolvere problemi.

shinya
10-04-2006, 19:12
Per iniziare a programmare consiglio di evitare il C come la peste, e' un linguaggio troppo a basso livello, gia' complesso per chi ha qualche anno alle spalle, figuriamoci per un totale principiante che prima di tutto deve imparare i concetti alla base della programmazione, con un linguaggio che gli insegni i paradigmi corretti. Imparare il C significherebbe spendere tantissimo tempo su un linguaggio che insegnerebbe tutta una serie di tecniche e di paradigmi che poi andrebbe disimparato per poter progredire.

Io consiglio linguaggi ad alto livello come Java e C# se si vuole rimanere legati alla sintassi C-like per poi passare al C++ pian piano. Affiancherei ad uno di questi linguaggi, un linguaggio dinamico come Python o Ruby (o LUA) per imparare l'altra faccia della medaglia ed avere un quadro piu' completo.

Una volta acquisite le basi ad alto livello si puo' provare ad esplorare la macchina piu' a basso livello e capire i concetti sui quali i linguaggi si posano.

Tenendo ben presente che programmare significa solo una cosa: risolvere problemi.


Pienamente d'accordo.
Ma non dimentichiamoci il folklore (http://www.muppetlabs.com/~breadbox/bf/) e l'esoterismo (http://www.haskell.org) :)
Poi per tenersi in allenamento basta andare qui (http://www.spoj.pl/) e cominciare a farsi del male con i loro problemi.

tomminno
10-04-2006, 20:01
Per iniziare a programmare consiglio di evitare il C come la peste, e' un linguaggio troppo a basso livello, gia' complesso per chi ha qualche anno alle spalle, figuriamoci per un totale principiante che prima di tutto deve imparare i concetti alla base della programmazione, con un linguaggio che gli insegni i paradigmi corretti. Imparare il C significherebbe spendere tantissimo tempo su un linguaggio che insegnerebbe tutta una serie di tecniche e di paradigmi che poi andrebbe disimparato per poter progredire.


Scusa non capisco, proprio perchè il C è di più basso livello che impari le basi della programmazione.
Perchè poi sotto la nube della programmazione ad oggeti i metodi non li scrivi come se fossero C? (chiaramente per i linguaggi C-like)


Una volta acquisite le basi ad alto livello si puo' provare ad esplorare la macchina piu' a basso livello e capire i concetti sui quali i linguaggi si posano.


Strano generalmente a scuola si comincia dalle somme e sottrazioni non da integrali e derivate.


Tenendo ben presente che programmare significa solo una cosa: risolvere problemi.

Dipende infatti da quali sono i problemi e le condizioni a contorno, prendi un micro con 20MIPS difficile che la soluzione possa essere Java o C#.

k0nt3
10-04-2006, 20:48
bentornato fek :D
voglio cercare di spiegare in maniera oggettiva la situazione a sirius88.. anche se la mia posizione non è oggettiva ovviamente.
per prima cosa devi sapere che quando apri un thread del genere la probabilità di scatenare un flame è del 100%. in secondo luogo devi anche sapere che programmare è una cosa molto generica... in sostanza si tratta di risolvere problemi come diceva fek. quello che cambia è lo strumento che usi per risolverli! è qui che succede il casino... tra programmatori si fanno guerre di religione.
sostanzialmente ci sono i web-based programmers, gli object-oriented programmers e i "fatti prima le ossa" programmers :D
cercherò di introdurti nei meandri della mente di queste categorie di persone in modo che tu possa farti un'idea (spero).

allora.. i primi sostanzialmente pensano che il futuro è il web quindi tanto vale non perdere tempo a imparare linguaggi inutili. loro solitamente consigliano php o asp per iniziare, ma non disdegnano il javascript. quello che è sicuro è che php e asp sono linguaggi molto facili.. però ci sono anche limitazioni piuttosto evidenti! prima di tutto nascono come linguaggi di scripting, poi sono fortemente legati all'architettura client-server che non è sempre l'ideale. infatti non sempre è necessaria e soprattutto all'inizio ;) .

passiamo agli object oriented programmers.. tipicamente questi programmatori si sono fatti le ossa (e le hanno anche rotte a volte) con il C e altri linguaggi da masochisti :D e quindi consigliano a tutti di NON imparare con il C e simili, ma consigliano java, C# ecc...
inoltre è statisticamente provato che quelli che fanno parte di questo gruppo hanno scoperto la programmazione a oggetti abbastanza tardi, e quindi quando l'hanno conosciuta si sono chiesti: "cosa ho programmato a fare fino ad adesso?". ci sono anche qui sia pregi che difetti nell'imparare a programmare subito a oggetti... i pregi sono senza dubbio il raggiungimento dei risultati in meno tempo e maggiore leggibilità di codice lungo (però penso che all'inizio questo sia abbastanza superfluo). i contro sono invece a mio avviso sulla vera comprensioni di quello che uno fa. in poche parole.. la programmazione a oggetti al contrario di quello che sembra non è affatto una cosa banale! altrimenti non si farebbero corsi interi dedicati a quello nelle università e non ci sarebbero libri pesanti tonnellate sull'argomento. poi di solito chi comincia con la programmazione a oggetti dopo non colma le sue lacune tornando sulla programmazione procedurale (perchè non è facile tornare all'età della pietra dopo essere stati su un'astronave). il risultato è che si rischia di chiudersi in questa cupola della programmazione a oggetti e di non capire mai a fondo la programmazione (conosco molta gente in questo stato).

passiamo all'ultima categoria. beh qui i contro sono ovvi! senza dubbio C, C++ sono linguaggi più ostici rispetto a java o C#, e senza alcun dubbio in generale fare programmi di una certa complessità richiede più tempo. inoltre sbatterai :muro: la testa contro i problemi di memoria (mentre negli altri casi questo problema era nascosto al programmatore). i pregi sono che all'inizio ci si può disinteressare dei problemi legati all'interfaccia grafica (del tutto superflua allo scopo di imparare) e che si ha la piena comprensione di tutto quello che si fa.

ora il mio consiglio :)
io sconsiglio sempre la programmazione a oggetti e i vari linguaggi di scripting.. pur sapendo che il C è da masochisti! infatti il miglior linguaggio allo scopo di imparare è IMHO pascal (facciamo sempre parte della terza categoria, ma qui il linguaggio è più pulito e facile da usare rispetto a C), ma anche C va bene... anzi è meglio se ci riesci.
però questo mio consiglio va letto in questo senso (altrimenti c'è il linciaggio).. io NON intendo dire che la programmazione procedurale è la migliore! infatti sconsiglio vivamente di fossilizzarsi su questo tipo di linguaggi, ma consiglio altrettanto vivamente di passare a un linguaggio orientato a oggetti non appena si ha la padronanza della programmazione procedurale. quello che credo (e non solo io) infatti è che la programmazione a oggetti va costruita sopra le conoscenze di programmazione procedurali. non è affatto vero che con la programmazione a oggetti ti puoi anche dimenticare tutto quello che hai imparato prima! l'importante è NON fossilizzarsi, ma questo non toglie che la programmazione procedurale è un tassello fondamentale per imparare qualsiasi cosa, a partire dagli oggetti.

e con questo ho chiuso :)

k0nt3
10-04-2006, 20:51
ah dimenticavo... Whitespace (http://compsoc.dur.ac.uk/whitespace/) è il miglior linguaggio di tutti i tempi e per tutte le esigenze :sofico: :rotfl:

Doctor P
10-04-2006, 21:18
Grande e k0nt3 e tomminno :winner: quoto tutto in pieno, mi metto con la categoria "radicali" dei linguaggi di base.

Sirius88
10-04-2006, 23:06
Per me state parlando leggermente arabo...

voi cosa ne dite???


comq domani andrò il libreria e cercherò un libro, una guida per chi si affaccia alla programmazione per la 1° volta...
meglio se trovassi però qualcosa sul PHP, visto che mi istiga parecchio... ;)

cosa mi consigliate?
ma link utili sul PHP, non ne esistono? (in Italiano ovviamente)

ciao buona notte.

PS: comq ringrazio tutti per i post che avete scritto, ritengo che mi abbiate aiutato abbastanza ad aprire gli occhi ;)

0rph3n
10-04-2006, 23:36
Per Doctor P

Non è per fare critiche o polemiche, ma credo che anche Alessandro::Xalexalex sarebbe d'accordo con me sul fatto che probabilmente hai le idee un po' confuse sui vari linguaggi di programmazione e sulle relazioni tra i vari linguaggi, specialmente quelli legati al mondo del web.

Non puoi dire "inoltre nel php si possono comunque utilizzare script di java e basic". Altrimenti la gente inizia a pensar male del php. :D
quoto e mi aggiungo alla combriccola :D

Già... Qualcuno potrebbe pensare:

Posso usare PHP con VBScript
VBScript è dello Zio Bill
Per proprietà transitiva PHP è dello Zio Bill (ior potenshal auar peshion)
:rotfl:

infine, per quanto possa valere la mia opinione, la penso esattamente allo stesso modo di fek (bentornato tralaltro)!

'iao

fek
11-04-2006, 10:33
Scusa non capisco, proprio perchè il C è di più basso livello che impari le basi della programmazione.
Perchè poi sotto la nube della programmazione ad oggeti i metodi non li scrivi come se fossero C? (chiaramente per i linguaggi C-like)


In C non impari le basi della programmazione, impari le basi di funzionamento della macchina a basso livello, impari come indirizzare direttamente la memoria, oppure le periferiche ad esempio.

Per riprendere il tuo esempio delle operazioni, imparare il C e' come dover imparare l'integrale di Riemann per poi scoprire che una sottrazione A - B non e' altro che la soluzione di un'integrale di 1 fra i limiti B e A.

Il C insegna (e costringe a) tutta una serie di paradigmi che poi vanno disimparati al momento in cui si deve imparare a programmare. Molti paradigmi OO non hanno alcun supporto dal linguaggio e si tende ad abbandonarli programmando in C in favore di paradigmi meglio supportati. E quei paradigmi sono la base della programmazione, le somme e sottrazioni, non i puntatori o la gestione esplicita delle allocazioni di memoria.

Dipende infatti da quali sono i problemi e le condizioni a contorno, prendi un micro con 20MIPS difficile che la soluzione possa essere Java o C#.

Java e' usato con grande successo per produrre giochi su cellulari. La scelta del linguaggio di programmazione nel 99.9% dei casi non deve basarsi su considerazioni di carattere prestazionale. Anche in situazioni dove le prestazioni del sistema sono critiche, e' possibile usare un linguaggio ad alto livello e, una volta individuati i colli di bottiglia e solo in quei casi, passare localmente ad un linguaggio a basso livello per raggiungere le prestazioni desiderate. Cosi' si ottengono risultati migliori sia dal punto di vista produttivo sia prestazionale, perche' le migliori ottimizzazioni sono SEMPRE a livello algoritmico e non implementativo.

Vuoi imparare le basi della programmazione: Java/C#/Ruby/Python/LUA/SmallTalk c'e' l'imbarazzo della scelta

Vuoi imparare come funziona la macchina a basso livello: C/C++

Maephisto
11-04-2006, 11:10
ma link utili sul PHP, non ne esistono? (in Italiano ovviamente)


ma perchè imparare PRIMA l'inglese no? quando ti troverai con qualcosa di complicato magari sarà necessario farsi un giro su internet e le uniche guide che troverai saranno PER FORTUNA in inglese...

te l'avranno detto in molti ma io te lo ripeto... imparato un linguaggio li conosci tutti... poi è chiaro che ognuno faccia qualcosa meglio di altri... io personalmente ti direi di cominciare da Java... in quanto:

1. c/c++ sono un po' ostici mi sa per uno che deve cominciare (certo è anche vero che se impari quelli li impari a maggior ragione tutti)
2. python / ruby sono troppo semplici (li devi vedere solo quando ormai hai forti basi da altre parti)
3. assembly (vabbè lascia perdere)
4. .net o cmq altre soluzioni proprietarie (perchè altrimenti ti focalizzi su di una sola piattaforma)

tipicamente se prendi un manuale di Java all'inizio ti viene data una rapida infarinatura di come tipicamente funzionino le cose quando si programma... a questo punto quando ti senti forte su tutti gli argomenti (puoi anche nn scendere troppo nei dettagli di java all'inizio) puoi passare all'html e ai linguaggi tipo php, i fogli di stile come i css e tutto quello che riguarda l'xml...

però senti prima il mio consiglio... impara a leggere materiale inglese (tanto non è difficile... non devi leggere Shakespeare) e a muoverti un po' su internet che cmq rappresenta una fonte inesauribile di informazioni (anche sbagliate)... e vedrai che non è impossibile imparare un po' di roba che ti potrà essere utile... fai tutto questo... ma per favore non ti iscrivere all'università di informatica SOLO per imparare a programmare....

tomminno
11-04-2006, 13:31
In C non impari le basi della programmazione, impari le basi di funzionamento della macchina a basso livello, impari come indirizzare direttamente la memoria, oppure le periferiche ad esempio.


Ma impari anche a scrivere un ciclo for senza bisogno di sapere cosa sono i metodi pubblici,privati,protetti o cosa sia l'ereditarietà, concetti acquisibili in seguito.
Io ho cominciato con il C non ho avuto troppi problemi a passare al C++ o al C#.
E non credo di sviluppare più velocemente in C# rispetto al C++.

Secondo me la programmare è imprescindibile dal conoscere il funzionamento della macchina.


Il C insegna (e costringe a) tutta una serie di paradigmi che poi vanno disimparati al momento in cui si deve imparare a programmare. Molti paradigmi OO non hanno alcun supporto dal linguaggio e si tende ad abbandonarli programmando in C in favore di paradigmi meglio supportati. E quei paradigmi sono la base della programmazione, le somme e sottrazioni, non i puntatori o la gestione esplicita delle allocazioni di memoria.


Io quando scrivo un parser di un file non lo scrivo differentemente se sono in C/C++/C# quello che cambia è tutto l'intreccio che sta sopra per arrivare ad elaborare il file.
E quando mi trovo con un oggettone in memoria che non mi serve più devo pure aspettare che un Garbage Collector lo ripulisca al posto mio, ma si tanto oggi ci sono Pc con Giga di RAM.


Java e' usato con grande successo per produrre giochi su cellulari. La scelta del linguaggio di programmazione nel 99.9% dei casi non deve basarsi su considerazioni di carattere prestazionale. Anche in situazioni dove le prestazioni del sistema sono critiche, e' possibile usare un linguaggio ad alto livello e, una volta individuati i colli di bottiglia e solo in quei casi, passare localmente ad un linguaggio a basso livello per raggiungere le prestazioni desiderate. Cosi' si ottengono risultati migliori sia dal punto di vista produttivo sia prestazionale, perche' le migliori ottimizzazioni sono SEMPRE a livello algoritmico e non implementativo.


Sarà, ma con il mio bel cellulare con Symbian mi fa piangere aspettare 5 secondi per l'apertura di una qualunque voce di menu. Forse è anche questione di implementazione.
Lavorando a stretto contatto con chi scrive firmware tutti i passaggi sono critici, quando si deve lavorare in real-time, quindi si hanno pochi nanosecondi per fare tutto, non si può attendere che un messaggio venga notificato ad un'altra classe, e magari che qualcuno lo faccia al posto mio, ci si è già persa una marea di dati.
Sarà forse che a me hanno insegnato che la printf è una funzione costosa e quindi ho il pallino dell'efficienza a tutti costi.


Vuoi imparare le basi della programmazione: Java/C#/Ruby/Python/LUA/SmallTalk c'e' l'imbarazzo della scelta

Vuoi imparare come funziona la macchina a basso livello: C/C++

Mi sembra che i programmi più onerosi e complessi vengano scritti in C/C++ (OS inclusi), segno che qualcosa in più degli altri ce lo devono avere.

k0nt3
11-04-2006, 14:01
4. .net o cmq altre soluzioni proprietarie (perchè altrimenti ti focalizzi su di una sola piattaforma)

hai mai sentito parlare di mono (http://www.mono-project.com/Main_Page) ? :cool:

per quello che mi riguarda il C non serve a capire il funzionamento della macchina a basso livello, ma a imparare a scrivere algoritmi disinteressandosi di tutto il contorno (interfaccia grafica e ambiente di programmazione) che allo scopo di imparare è totalmente inutile (ricordiamoci che programmare è innanzitutto risolvere problemi algoritmicamente e non disporre bene i bottoni in un form). questo è ancora più vero nel pascal, dove la gestione della memoria è molto più nascosta che nel C.
comunque non ho capito perchè bisognerebbe dimenticare la programmazione procedurale! in fondo anche se programmi a oggetti devi usare gli stessi costrutti della programmazione procedurale... l'importante è non fossilizzarsi su quello perchè poi passare alla programmazione a oggetti non è indolore.

PGI-Bis
11-04-2006, 14:28
Tempo reale e nanosecondi non sono necessariamente correlati. Un problema può richiedere che la soluzione sia trovata entro diecimila anni ed essere comunque una questione in tempo reale.

E' un mistero della fede come un linguaggio dichiarato indipendente dalla macchina (C, lo dice chi l'ha scritto) possa accrescere la conoscenza di chi lo usi sulla macchina. Se è indipendente significa che non presuppone la conoscenza dell'architettura che eseguirà il prodotto della compilazione.

Basta leggere un qualsiasi libro sull'architettura dei calcolatori per rendersi conto che questa o quella lingua non dicono un bel nulla sui dettagli della macchina.

Per Sirius88, se PHP ti sconfiffera fai bene a partire con quello: secondo la teoria degli atteggiamenti è più facile imparare qualcosa che sembra "bello" rispetto a qualcosa che appare meno familiare.

Xalexalex
11-04-2006, 14:55
Per Sirius88, se PHP ti sconfiffera fai bene a partire con quello: secondo la teoria degli atteggiamenti è più facile imparare qualcosa che sembra "bello" rispetto a qualcosa che appare meno familiare.
Queste sono parole serie e costruttive :O . Basta col flaming, ci ha chiesto un parere e noi glielo diamo.
Il mio parere? C++. E' a basso (non bassissimo però) livello ma ti fa conoscere strutture e costrutti (i puritani mi scusino questi due termini ma non so come definirli) che ti ritroverai anche nei linguaggi ad alto livello,e soprattutto è un linguaggio ancora utilizzabile nella pratica, quando invece con il C semplice non fai più di un driver per linux.

Detto ciò, un megasuperciauz a tutti, vado a fare merenda...
Alex

fek
11-04-2006, 14:59
Ma impari anche a scrivere un ciclo for senza bisogno di sapere cosa sono i metodi pubblici,privati,protetti o cosa sia l'ereditarietà, concetti acquisibili in seguito.
Io ho cominciato con il C non ho avuto troppi problemi a passare al C++ o al C#.
E non credo di sviluppare più velocemente in C# rispetto al C++.

Secondo me la programmare è imprescindibile dal conoscere il funzionamento della macchina.

Non hai bisogno di sapere che cos'e' un metodo pubblico o privato per imparare a scrivere un ciclo for. L'"Hello World" in Java sono poche righe ad esempio e non c'e' bisogno di alcun concetto particolare per scriverlo.

Io programmo da 15 anni in C++ ed e' il linguaggio che uso il 90% del tempo. Nonostante questo sono dalle 5 a alle 10 volte piu' produttivo in linguaggi come C# e Java, anche grazie ai tool che abbondano. E come me chiunque programmi in vari linguaggi riporta queste differenze. Sono assolutamente sicuro di poter scrivere (io, ma come me chiunque altro) quasi qualunque software in Java in un decimo del tempo che impiegheresti tu in C++.


Io quando scrivo un parser di un file non lo scrivo differentemente se sono in C/C++/C# quello che cambia è tutto l'intreccio che sta sopra per arrivare ad elaborare il file.

Male. Se implementi lo stesso algoritmo allo stesso modo nei vari linguaggi vuol dire che non stai usando lo strumento per i tool che mette a disposizione, e questo spiega anche il perche' non noti differenza di produttivita'. Un parser in C e in C++ (senza mettere di mezzo Java o C#) si scrive in maniera sostanzialmente differente, perche' il secondo mette a disposizione facility che migliorano notevolmente la produttivita' e la correttezza del codice che si scrive. Non usare queste caratteristiche e' un limite personale, non e' un limite del linguaggio.


E quando mi trovo con un oggettone in memoria che non mi serve più devo pure aspettare che un Garbage Collector lo ripulisca al posto mio, ma si tanto oggi ci sono Pc con Giga di RAM.

Non necessariamente, sia in Java sia C# puoi avere quasi il totale controllo sul garbage collector, qualora questo fosse necessario. Il garbage collector per definizione mantiene in memoria solo il working set dell'applicazione.
E' vero il contrario invece, vista la difficolta' dei modelli espliciti di acquisizione e rilascio delle risorse in C/C++ diventa molto banale introdurre memory leak che saturano la memoria "tanto ci sono PC con Giga di RAM" che li mascherano.

I problemi di modelli di gestione della memoria basati su garbage collector sono altri e non sono di carattere prestazionale (riguardano la finalizzazione deterministica delle risorse che in alcune situazioni e' necessaria).


Sarà, ma con il mio bel cellulare con Symbian mi fa piangere aspettare 5 secondi per l'apertura di una qualunque voce di menu. Forse è anche questione di implementazione.

Il software di sistema dei Symbian e' programmato nativo in C/C++.

Lavorando a stretto contatto con chi scrive firmware tutti i passaggi sono critici, quando si deve lavorare in real-time, quindi si hanno pochi nanosecondi per fare tutto, non si può attendere che un messaggio venga notificato ad un'altra classe, e magari che qualcuno lo faccia al posto mio, ci si è già persa una marea di dati.

Stai parlando di programmazione di sistema che e' una fetta limitatissima delle applicazioni possibile, una fetta, per altro, che necessita di strumenti particolari che vanno al di la' delle scelte del linguaggio.
Real-time, inoltre, non vuol dire "andare piu' veloce possibile", ma vuol dire rispettare vincoli temporali nell'esecuzione dei task.


Sarà forse che a me hanno insegnato che la printf è una funzione costosa e quindi ho il pallino dell'efficienza a tutti costi.

Ti hanno insegnato male. "Early optimisation is the root of all evil".

La risorsa piu' scarsa non e' ne' la memoria ne' il tempo macchina, ma sempre il tempo e il cervello di chi programma. E' quello che bisogna ottimizzare. Cercare di ottimizzare la printf e' un errore grossolano da principianti, se la printf, a seguito di un'analisi prestazionale, si rivela un collo di bottiglia, la prima cosa che va fatta e' osservare attentamente l'algoritmo che le sta attorno, non cercare di ottimizzare la printf in se'. Perche' le ottimizzazioni migliori sono sempre di carattere algoritmico e queste si trovano sempre quando si ha un linguaggio piu' espressivo e semplice da usare rispetto all'obsoleto C.


Mi sembra che i programmi più onerosi e complessi vengano scritti in C/C++ (OS inclusi), segno che qualcosa in più degli altri ce lo devono avere.

Non necessariamente, dipende dall'applicazione. Il software piu' complesso si scrive solitamente in linguaggi ad alto livello, proprio perche' offrono un'astrazione piu' alta e maggiore produttivita', quindi e' piu' semplice controllare e gestire la complessita'. Se invece parli di SO, qui il discorso si fa differente e i problemi di linguaggi come Java e C# non e' di carattere prestazionale (anzi), ma riguarda il discorso sulla finalizzazione deterministica delle risorse che in un SO e' essenziale.

71104
11-04-2006, 15:02
ah dimenticavo... Whitespace (http://compsoc.dur.ac.uk/whitespace/) è il miglior linguaggio di tutti i tempi e per tutte le esigenze :sofico: :rotfl: forse volevi dire Brainfuck... :O :rotfl:

71104
11-04-2006, 15:04
forse volevi dire Brainfuck... :O :rotfl: mi correggo: ho visto cos'è questo Whitespace e mi sono ricreduto; WHITESPACE È IL MIGLIOR LINGUAGGIO DI TUTTI I TEMPI!!! :rotfl: :sbonk: :rotfl: :sbonk: :rotfl: :sbonk:
quando ho visto il programma di esempio (pagina completamente bianca :D) sono quasi caduto dalla sedia... :sbonk:

Xalexalex
11-04-2006, 15:15
Pensa... Un prof che deve insegnarlo ti da un listato...
"E ora copiatelo ragazzi..." :ciapet:

k0nt3
11-04-2006, 15:26
mi correggo: ho visto cos'è questo Whitespace e mi sono ricreduto; WHITESPACE È IL MIGLIOR LINGUAGGIO DI TUTTI I TEMPI!!! :rotfl: :sbonk: :rotfl: :sbonk: :rotfl: :sbonk:
quando ho visto il programma di esempio (pagina completamente bianca :D) sono quasi caduto dalla sedia... :sbonk:
whitespace rulez :)

tomminno
11-04-2006, 21:14
Non hai bisogno di sapere che cos'e' un metodo pubblico o privato per imparare a scrivere un ciclo for. L'"Hello World" in Java sono poche righe ad esempio e non c'e' bisogno di alcun concetto particolare per scriverlo.


Già solo l'istruzione fondamentale per il programma:
printf("Hello Word");
System.out.println("Hello Word");

in Java dovrai almeno aver letto il significato dell'operatore ".", la classe System, lo standard output. A voler capire quello che si scrive, con la sintassi Java ci sono più cose da studiare.
Mica dico di passare anni a programmare in C, ma conoscendo il C si può partire dalla metà di una qualunque guida Java, quindi dalla parte dedicata alla programmazione ad oggetti, che si può studiare una volta per tutte, tanto poi l'utilizzo delle librerie di un linguaggio bisogna ristudiarle ogni volta; Java, C#, C++ ognuno ha le sue.


Io programmo da 15 anni in C++ ed e' il linguaggio che uso il 90% del tempo. Nonostante questo sono dalle 5 a alle 10 volte piu' produttivo in linguaggi come C# e Java, anche grazie ai tool che abbondano. E come me chiunque programmi in vari linguaggi riporta queste differenze. Sono assolutamente sicuro di poter scrivere (io, ma come me chiunque altro) quasi qualunque software in Java in un decimo del tempo che impiegheresti tu in C++.


Anche un programma che fa il play di un file audio 24/192? Io ci ho rinunciato, in C++ potevo trovare tutto (librerie e pure multipiattaforma) in Java non si andava oltre il 16/48 (o 24/48 adesso non ricordo è passato molto tempo), in C# l'audio non saprei nemmeno dove trovarlo. Non parliamo poi di realizzare un encoder/decoder audio o video.
Nell'ambito multimediale non trovo molti altri linguaggi supportati come il C++.
Inoltre un programma audio lavora con dati che vanno dal byte al double, quindi via di generics o di template e i template ci sono da più tempo :D


Male. Se implementi lo stesso algoritmo allo stesso modo nei vari linguaggi vuol dire che non stai usando lo strumento per i tool che mette a disposizione, e questo spiega anche il perche' non noti differenza di produttivita'. Un parser in C e in C++ (senza mettere di mezzo Java o C#) si scrive in maniera sostanzialmente differente, perche' il secondo mette a disposizione facility che migliorano notevolmente la produttivita' e la correttezza del codice che si scrive. Non usare queste caratteristiche e' un limite personale, non e' un limite del linguaggio.


Se devo parserizzare un file wave o mp3 o mpeg il parser per me è identico e non vedo come possa essere scritto differentemente.
Lettura di tot bytes e tokenizzazione dei singoli campi.
Non trovo funzioni particolari fornite dal linguaggio che mi rendano più veloce da scrivere questa operazione.


Non necessariamente, sia in Java sia C# puoi avere quasi il totale controllo sul garbage collector, qualora questo fosse necessario. Il garbage collector per definizione mantiene in memoria solo il working set dell'applicazione.
E' vero il contrario invece, vista la difficolta' dei modelli espliciti di acquisizione e rilascio delle risorse in C/C++ diventa molto banale introdurre memory leak che saturano la memoria "tanto ci sono PC con Giga di RAM" che li mascherano.

I problemi di modelli di gestione della memoria basati su garbage collector sono altri e non sono di carattere prestazionale (riguardano la finalizzazione deterministica delle risorse che in alcune situazioni e' necessaria).


I memory leak sono un problema, ma il software che trovo in giro scritto in linguaggi differenti dal C++ tendono ad occupare più memoria per fare sostanzialmente le stesse cose.


Il software di sistema dei Symbian e' programmato nativo in C/C++.


Infatti se già l'OS è peso all'inverosimile per il micro su cui deve girare (perchè forse realizzato avendo in mente un comune PC?), mettici pure la JVM e siamo a posto.


Stai parlando di programmazione di sistema che e' una fetta limitatissima delle applicazioni possibile, una fetta, per altro, che necessita di strumenti particolari che vanno al di la' delle scelte del linguaggio.


Mica poi tanto piccola: palmari, cellulari e DSP non sono poi così pochi in circolazione.
Per non parlare dei sistemi fail-safe, dove il C, con restrizioni, ha soppiantato l'ADA, ma a quanto pare anche una versione molto ristretta del C++ si sta facendo largo in questo settore.


Real-time, inoltre, non vuol dire "andare piu' veloce possibile", ma vuol dire rispettare vincoli temporali nell'esecuzione dei task.


Se devi stare dietro ad un flusso dati e al contempo elaborarlo, devi fare tutto il prima possibile proprio per rispettare i vincoli temporali.
Quando hai una fibra ottica che ti porta 512 canali 24/96 e li devi effettare in real-time, di tempo nei hai veramente poco.
Oppure se devi realizzare un filtraggio IIR con risposta arbitraria impostata dall'utente e modificabile in ogni momento (a quanto pare presto potrò assitere ad un gioiello di elaborazione simile).


Ti hanno insegnato male. "Early optimisation is the root of all evil".

La risorsa piu' scarsa non e' ne' la memoria ne' il tempo macchina, ma sempre il tempo e il cervello di chi programma. E' quello che bisogna ottimizzare. Cercare di ottimizzare la printf e' un errore grossolano da principianti, se la printf, a seguito di un'analisi prestazionale, si rivela un collo di bottiglia, la prima cosa che va fatta e' osservare attentamente l'algoritmo che le sta attorno, non cercare di ottimizzare la printf in se'. Perche' le ottimizzazioni migliori sono sempre di carattere algoritmico e queste si trovano sempre quando si ha un linguaggio piu' espressivo e semplice da usare rispetto all'obsoleto C.


In realtà il significato di quel discorso era "non usate la printf perchè rallentate l'esecuzione del programma ed è del tutto inutile ai fini dell'esecuzione", scrivere i risultati su un file rendeva il programma effettivamente più veloce, oltre a farti imparare ad usare la fopen e le funzioni di scrittura su file.


Non necessariamente, dipende dall'applicazione. Il software piu' complesso si scrive solitamente in linguaggi ad alto livello, proprio perche' offrono un'astrazione piu' alta e maggiore produttivita', quindi e' piu' semplice controllare e gestire la complessita'. Se invece parli di SO, qui il discorso si fa differente e i problemi di linguaggi come Java e C# non e' di carattere prestazionale (anzi), ma riguarda il discorso sulla finalizzazione deterministica delle risorse che in un SO e' essenziale.

Io ho un'esperienza differente, software di simulazione, reti neurali, grafica 3D per quanto ne so è tutto software che viene scritto prevalentemente in C++ e sono tutti abbastanza critici dal lato prestazioni.

fek
12-04-2006, 09:48
Già solo l'istruzione fondamentale per il programma:
printf("Hello Word");
System.out.println("Hello Word");

in Java dovrai almeno aver letto il significato dell'operatore ".", la classe System, lo standard output. A voler capire quello che si scrive, con la sintassi Java ci sono più cose da studiare.
Mica dico di passare anni a programmare in C, ma conoscendo il C si può partire dalla metà di una qualunque guida Java, quindi dalla parte dedicata alla programmazione ad oggetti, che si può studiare una volta per tutte, tanto poi l'utilizzo delle librerie di un linguaggio bisogna ristudiarle ogni volta; Java, C#, C++ ognuno ha le sue.

Secondo il tuo ragionamento per capire esattamente quello che succede nella printf, dovrei spiegare come sono memorizzate le stringhe, il fatto che la stringa sia convertita ad un char* e passata alla printf, quindi devo spiegare che cosa sia un puntatore, dov'e' quel blocco di memoria, magari come allocarne uno io etc etc. Volendo andare nei particolari non se ne esce piu'.

Ma i particolari non servono, perche' proprio il concetto alla base della programmazione e' "astrarre", e Java fornisce un'astrazione piu' efficacie e ad alto livello di C/C++, infatti basta dire che quella rigua di codice usa il sistema (System), in uscita (out), per stampare una stringa (println). Non serve sapere altro per comprendere quella riga di codice. Astrazione.



Anche un programma che fa il play di un file audio 24/192? Io ci ho rinunciato, in C++ potevo trovare tutto (librerie e pure multipiattaforma) in Java non si andava oltre il 16/48 (o 24/48 adesso non ricordo è passato molto tempo), in C# l'audio non saprei nemmeno dove trovarlo. Non parliamo poi di realizzare un encoder/decoder audio o video.
Nell'ambito multimediale non trovo molti altri linguaggi supportati come il C++.
Inoltre un programma audio lavora con dati che vanno dal byte al double, quindi via di generics o di template e i template ci sono da più tempo :D

Commetti sempre lo stesso errore. Il fatto che tu non sappia come fare qualcosa non significa che questa cosa sia impossibile. Di solito e' vero il contrario. Si', anche un programma che fa il play di un file audio 24/192, nessun problema. Lo scrivo in Java/C# in un decimo del tempo, funzionera', se non rispettasse i vincoli prestazionali, lancerei un profiler, individuerei gli hotspot, poi cercherei una soluzione algoritmica per eliminare l'hotspot; se non la trovo, passerei ad una soluzione implementativa e valuterei la possibilita' di scrivere alcune piccole parti che occupano piu' tempo macchina in un linguaggio differente valutando la perdita di produttivita' che ne consegue.

Questo e' il procedimento, affermare invece "scrivo tutto il codice in C perche' e' piu' veloce" e' un ragionamento da principianti e sostanzialmente errato.


Se devo parserizzare un file wave o mp3 o mpeg il parser per me è identico e non vedo come possa essere scritto differentemente.

Lettura di tot bytes e tokenizzazione dei singoli campi.
Non trovo funzioni particolari fornite dal linguaggio che mi rendano più veloce da scrivere questa operazione.


Il fatto che tu non veda come possa essere scritto differentemente, non significa, di nuovo, che non possa essere scritto differentemente. Non c'e' un singolo algoritmo che non possa essere implementato in alcune decine di modi differenti usando cio' che mette a disposizione il linguaggio per renderlo piu' leggibile e manutenibile. Avro' scritto decine di parser e non ricordo un'implementazione uguale all'altra, di solito variano a seconda della mia esperienza.



I memory leak sono un problema, ma il software che trovo in giro scritto in linguaggi differenti dal C++ tendono ad occupare più memoria per fare sostanzialmente le stesse cose.

E' vero l'esatto contrario: proprio per le proprieta' del garbage collector, questo tende a limitare l'occupazione della memoria al solo working set, cosa molto complessa da raggiungere con un modello di gestione esplicita della memoria.


Se devi stare dietro ad un flusso dati e al contempo elaborarlo, devi fare tutto il prima possibile proprio per rispettare i vincoli temporali.
Quando hai una fibra ottica che ti porta 512 canali 24/96 e li devi effettare in real-time, di tempo nei hai veramente poco.
Oppure se devi realizzare un filtraggio IIR con risposta arbitraria impostata dall'utente e modificabile in ogni momento (a quanto pare presto potrò assitere ad un gioiello di elaborazione simile).


Vedi sopra il discorso sugli hotspot.



In realtà il significato di quel discorso era "non usate la printf perchè rallentate l'esecuzione del programma ed è del tutto inutile ai fini dell'esecuzione", scrivere i risultati su un file rendeva il programma effettivamente più veloce, oltre a farti imparare ad usare la fopen e le funzioni di scrittura su file.

Ovvero una soluzione algoritmica. Il problema non e' la printf, il problema e' l'algoritmo. Una volta individuato l'hotspot, e' bastato cambiare l'algoritmo, non e' stato necessario scrivere la printf in assembly. "Early optimisation is the root of all evil".


Io ho un'esperienza differente, software di simulazione, reti neurali, grafica 3D per quanto ne so è tutto software che viene scritto prevalentemente in C++ e sono tutti abbastanza critici dal lato prestazioni.

Io ho un po' di esperienza nella grafica 3D :)
E la tendenza oggi e' scrivere sempre meno in C/C++ e sempre piu' in linguaggi ad alto livello come LUA/Python. Gia' sono usciti alcuni giochi con parti notevoli implementate in Python, perche' garantisce maggiore produttivita' ed un miglior controllo della complessita' (i giochi e i motori 3D diventano sempre piu' complessi). Si tende a limitare il piu' possibile il codice C++ solo nei punti in cui e' effettivamente necessario e solo quando si sa che e' necessario. Al recente GDC a San Jose molte lecture vertevano proprio su questo argomento, come limitare il codice C++. Ho presentato a Milano di recente una sessione in cui ho mostrato come sia possibile scrivere un motore 3D in C# interfacciandosi con il codice nativo che gestisce le Direct3D a basso livello (per questioni che riguardano sempre la finalizzazione deterministica delle risorse).

Il discorso qui e' che il linguaggio e' uno strumento e va usato lo strumento giusto per il compito giusto: scrivere tutto in C/C++ e' sbagliato e anti produttivo per scrivere piu' del 90% del codice, questi linguaggi vanno usati (e bisogna pagarne il peso) solo dove effettivamente necessari.

andbin
12-04-2006, 10:06
Secondo il tuo ragionamento per capire esattamente quello che succede nella printf, [...]

Ma i particolari non servono, perche' proprio il concetto alla base della programmazione e' "astrarre", [...]

Commetti sempre lo stesso errore. Il fatto che tu non sappia come fare qualcosa non significa che questa cosa sia impossibile. Di solito e' vero il contrario. [...]

Questo e' il procedimento, affermare invece "scrivo tutto il codice in C perche' e' piu' veloce" e' un ragionamento da principianti e sostanzialmente errato.

Il fatto che tu non veda come possa essere scritto differentemente, non significa, di nuovo, che non possa essere scritto differentemente. [...]

E' vero l'esatto contrario: proprio per le proprieta' del garbage collector, questo tende a limitare l'occupazione della memoria al solo working set, cosa molto complessa da raggiungere con un modello di gestione esplicita della memoria.

Vedi sopra il discorso sugli hotspot.

Ovvero una soluzione algoritmica. Il problema non e' la printf, il problema e' l'algoritmo. Una volta individuato l'hotspot, e' bastato cambiare l'algoritmo, non e' stato necessario scrivere la printf in assembly. "Early optimisation is the root of all evil".

Io ho un po' di esperienza nella grafica 3D :)
E la tendenza oggi e' scrivere sempre meno in C/C++ e sempre piu' in linguaggi ad alto livello come LUA/Python. [...]

Il discorso qui e' che il linguaggio e' uno strumento e va usato lo strumento giusto per il compito giusto: scrivere tutto in C/C++ e' sbagliato e anti produttivo per scrivere piu' del 90% del codice, questi linguaggi vanno usati (e bisogna pagarne il peso) solo dove effettivamente necessari.Quoto, grande fek! :cool:

tomminno
12-04-2006, 16:37
Secondo il tuo ragionamento per capire esattamente quello che succede nella printf, dovrei spiegare come sono memorizzate le stringhe, il fatto che la stringa sia convertita ad un char* e passata alla printf, quindi devo spiegare che cosa sia un puntatore, dov'e' quel blocco di memoria, magari come allocarne uno io etc etc. Volendo andare nei particolari non se ne esce piu'.

Ma i particolari non servono, perche' proprio il concetto alla base della programmazione e' "astrarre", e Java fornisce un'astrazione piu' efficacie e ad alto livello di C/C++, infatti basta dire che quella rigua di codice usa il sistema (System), in uscita (out), per stampare una stringa (println). Non serve sapere altro per comprendere quella riga di codice. Astrazione.


Infatti i dettagli non servono nemmeno in C: per la printf basta sapere che stampa sullo standard output (come lo fa non è importate), la sintassi Java comporta già l'utilizzo delle classi.


Commetti sempre lo stesso errore. Il fatto che tu non sappia come fare qualcosa non significa che questa cosa sia impossibile. Di solito e' vero il contrario. Si', anche un programma che fa il play di un file audio 24/192, nessun problema. Lo scrivo in Java/C# in un decimo del tempo, funzionera', se non rispettasse i vincoli prestazionali, lancerei un profiler, individuerei gli hotspot, poi cercherei una soluzione algoritmica per eliminare l'hotspot; se non la trovo, passerei ad una soluzione implementativa e valuterei la possibilita' di scrivere alcune piccole parti che occupano piu' tempo macchina in un linguaggio differente valutando la perdita di produttivita' che ne consegue.


Infatti mica ho detto che è impossibile farlo con altri linguaggi, ho detto che in C++ è più veloce (realizzarlo). Quando mi ci sono cimentato io con Java (1.4.2) l'audio non era molto sviluppato. Credo che sarebbe più difficile e oneroso in termini di sviluppo andare oltre gli strumenti messi a disposizione dal JDK, che non prendere la prima libreria C++ che compare da una banale ricerca con google.


Questo e' il procedimento, affermare invece "scrivo tutto il codice in C perche' e' piu' veloce" e' un ragionamento da principianti e sostanzialmente errato.


Dipende, nel mio caso era effettivamente più veloce (sia da sviluppare sia dal lato prestazioni), dovevo anche fare FFT da 1-10Msps, ritengo difficile trovare qualcosa più veloce e ottimizzato di FFTW per Java o C#.


Il fatto che tu non veda come possa essere scritto differentemente, non significa, di nuovo, che non possa essere scritto differentemente. Non c'e' un singolo algoritmo che non possa essere implementato in alcune decine di modi differenti usando cio' che mette a disposizione il linguaggio per renderlo piu' leggibile e manutenibile. Avro' scritto decine di parser e non ricordo un'implementazione uguale all'altra, di solito variano a seconda della mia esperienza.


I metodi messi a disposizione per l'accesso ai file binari non mi sembrano poi essere così differenti nei vari linguaggi, per me quello che cambia è appunto l'organizzazione delle classi poi quando vai a leggere il file bene o male lo fai allo stesso modo.


E' vero l'esatto contrario: proprio per le proprieta' del garbage collector, questo tende a limitare l'occupazione della memoria al solo working set, cosa molto complessa da raggiungere con un modello di gestione esplicita della memoria.


Il primo esempio banale che mi viene in mente: eMule 13MB, Azureus 5+60MB. Ce ne passano di memory leak prima di arrivare a colmare il divario.
Poi sarà che non sono ancora molto esperto di C#, ma si fa in un attimo a scrivere programmi che occupano partono da 15MB di memoria e che usandoli aumentano la memoria occupata senza mai rialsciarla (mi capita anche con Paint.NET a forza di aprire e chiudere file da 25MB, in qualche ora si passa a oltre 50MB). Sicuramente sarà colpa mia, ma almeno in C++ riesco generalmente ad evitare che l'occupazione di memoria lieviti in modo evidente con l'uso.



Ovvero una soluzione algoritmica. Il problema non e' la printf, il problema e' l'algoritmo. Una volta individuato l'hotspot, e' bastato cambiare l'algoritmo, non e' stato necessario scrivere la printf in assembly. "Early optimisation is the root of all evil".


L'algoritmo non è stato assolutamente modificato è stata semplicemente dirottata l'uscita invece che a video su un file. L'algoritmo è ad un livello più astratto rispetto al linguaggio con cui viene implementato.
Mai nessuno (credo) si sognerebbe di riscrivere la printf in assembly.


Il discorso qui e' che il linguaggio e' uno strumento e va usato lo strumento giusto per il compito giusto: scrivere tutto in C/C++ e' sbagliato e anti produttivo per scrivere piu' del 90% del codice, questi linguaggi vanno usati (e bisogna pagarne il peso) solo dove effettivamente necessari.

Fino a questo momento per me lo strumento giusto per tutto quello che ho fatto è stato C/C++ (a parte gli esami all'università e software web), il tempo per imparare altri linguaggi è sinceramente poco, mi sarebbe sempre piaciuto approfondire il Java, ma alla fine ne sono sempre mancati i presupposti, trovavo praticamente già tutto quello che cercavo, in C++.

k0nt3
12-04-2006, 19:44
tomminno.. ti assicuro che programmare in java ad esempio con eclipse è tutt'altra cosa rispetto a C++ e qualsiasi altro IDE.. il problema però è ben diverso. stiamo discutendo su quale linguaggio usare per imparare a programmare, quindi eclipse se ne va a quel paese come anche tutti i discorsi sulla produttività. un linguaggio didattico deve avere tutt'altre caratteristiche IMHO

fek
12-04-2006, 20:10
Infatti i dettagli non servono nemmeno in C: per la printf basta sapere che stampa sullo standard output (come lo fa non è importate), la sintassi Java comporta già l'utilizzo delle classi.


E basta sapere che quella riga stampa sullo standard output di sistema.


Infatti mica ho detto che è impossibile farlo con altri linguaggi, ho detto che in C++ è più veloce (realizzarlo). Quando mi ci sono cimentato io con Java (1.4.2) l'audio non era molto sviluppato. Credo che sarebbe più difficile e oneroso in termini di sviluppo andare oltre gli strumenti messi a disposizione dal JDK, che non prendere la prima libreria C++ che compare da una banale ricerca con google.

Dipende, nel mio caso era effettivamente più veloce (sia da sviluppare sia dal lato prestazioni), dovevo anche fare FFT da 1-10Msps, ritengo difficile trovare qualcosa più veloce e ottimizzato di FFTW per Java o C#.


In entrambi i casi, ti serve una libreria specializzata nativa per fare FFT o gestire il sonoro? Lo sai che, ad esempio, in C# puoi wrappare facilmente una qualunque libreria nativa via C++/CLI e renderla consumabile in letteralmente cinque minuti da qualunque linguaggio .NET? Da li' in poi si puo' programmare in un linguaggio piu' produttivo. Per Java la cosa e' quasi analoga, un filo piu' complessa, via JNI.

Il fatto di voler usare una libreria nativa non costringe a programmare in C++.



Il primo esempio banale che mi viene in mente: eMule 13MB, Azureus 5+60MB. Ce ne passano di memory leak prima di arrivare a colmare il divario.
Poi sarà che non sono ancora molto esperto di C#, ma si fa in un attimo a scrivere programmi che occupano partono da 15MB di memoria e che usandoli aumentano la memoria occupata senza mai rialsciarla (mi capita anche con Paint.NET a forza di aprire e chiudere file da 25MB, in qualche ora si passa a oltre 50MB). Sicuramente sarà colpa mia, ma almeno in C++ riesco generalmente ad evitare che l'occupazione di memoria lieviti in modo evidente con l'uso.

Ma che discorso e'? Firefox e' scritto nativo e occupa 300mb sul mio portatile. Allora tutto il software nativo e' bloated? Non credo. La realta' e' che un garbage collector garantisce solo il working set in memoria, e poi puo' essere usato male come qualunque altro strumento.


L'algoritmo non è stato assolutamente modificato è stata semplicemente dirottata l'uscita invece che a video su un file. L'algoritmo è ad un livello più astratto rispetto al linguaggio con cui viene implementato.
Mai nessuno (credo) si sognerebbe di riscrivere la printf in assembly.

Come ormai sono solo piu' pochi che si sognano di scrivere un software complesso in C. Cambiare l'uscita da video a file significa proprio cambiare l'algoritmo.


Fino a questo momento per me lo strumento giusto per tutto quello che ho fatto è stato C/C++ (a parte gli esami all'università e software web), il tempo per imparare altri linguaggi è sinceramente poco, mi sarebbe sempre piaciuto approfondire il Java, ma alla fine ne sono sempre mancati i presupposti, trovavo praticamente già tutto quello che cercavo, in C++.

Male. Allarga i tuoi orizzonti. Non puoi affermare che il C/C++ e' lo strumento giusto per tutto quello che hai fatto se non conosci altri strumenti. Immagino che non ti sara' mai capitato di lavorare su una code base in C++ di alcuni milioni di righe di codice in cui cercare un memory leak o un double delete. Di fronte a certe esperienze, e' difficile affermare che C/C++ e' il modo migliore per scrivere software complesso.

Trovo davvero strano e antidiluviano che nel 2006 si debbano usare ancora strumenti cosi' grezzi e primordiali, quando sono disponibili strumenti altamente piu' produttivi.

PGI-Bis
13-04-2006, 14:22
:D Lungi da me l'interrompere questo dotto accapigliarsi sull'aria fritta, vorrei solo segnalare a Sirius88, ammesso che dopo lo sfoggio d'unghie precedenti abbia ancora qualche sentimento verso la programmazione, un sito su PHP:

http://www.latoserver.it/php/pi-acca-pi.php3

Dai e dai m'hai fatto venir voglia di impararlo (te possino... :D), così ho frugato in rete e mi pare che in quelle pagine si diano indicazioni coerenti per un principiante (categoria a cui appartengo).

:D Chiusa parentesi, LorSignori possono continuare a smozzicarsi :D

71104
13-04-2006, 16:11
:D Lungi da me l'interrompere questo dotto accapigliarsi sull'aria fritta, [...] permettimi di precisare che non si tratta di aria fritta ma questioni importanti sulle quali fek ha indubbiamente ragione: si tratta di metodo di lavoro e di scelte degli strumenti più adatti, e se tu ritieni che sia aria fritta allora probabilmente nel tuo lavoro sceglierai sempre gli strumenti errati e la tua produttività si abbasserà molto. insomma cerca solo di non presentarti ad un colloquio di lavoro da uno che frequenta questo forum. ;)

PGI-Bis
13-04-2006, 16:38
La prossima volta metto due faccine :D in più. Era un boutade scherzosa, non intendevo contestare gli atti di fede di alcuno dei partecipanti :).