PDA

View Full Version : Il linguaggio più richiesto nel mondo del lavoro...


W0lf
02-01-2004, 19:00
Ciao ragazzi, secondo voi, secondo le vostre esperienze, secondo il vostro lavoro ecc...

nel mondo del lavoro oggi come oggi, quale è il liguaggio di programmazione più richiesto?

se uno conosce BENE il Basic (ormai vecchio) e un altro che conosce BENE il C, naturalmene nel lavoro, verrà assunto con più facilità il programmatore C....

quindi tra tutti i linguaggi + conosciuti (C, Cobol, Pascal, ASM, ASP, PHP, JAVA, VB ecc...)

quale sarà il più richiesto?

E poi un altra azzardatissima domanda, gli stipendi medi dei programmatori: quale programmatore, di quale linguaggio, secondo voi guadagna meglio?

Ciao

cionci
02-01-2004, 19:09
Non è facile rispondere alle tue domande...
Sono molti i fattori che entrano in gioco....

Ora come ora, IMHO, i linguaggi che tirano di più nel mondo del lavoro sono: VB, Java, PHP e ASP...

Solitamente i programmatori pagati di più sono quelli che si trovano di meno (e molto spesso proprio perchè c'è meno richiesta): asm, AS/400, chi conosce bene il C e il kernel di Linux, Cobol, Fortran...

W0lf
02-01-2004, 19:13
Originariamente inviato da cionci
Non è facile rispondere alle tue domande...
Sono molti i fattori che entrano in gioco....

Ora come ora, IMHO, i linguaggi che tirano di più nel mondo del lavoro sono: VB, Java, PHP e ASP...

Solitamente i programmatori pagati di più sono quelli che si trovano di meno (e molto spesso proprio perchè c'è meno richiesta): asm, AS/400, chi conosce bene il C e il kernel di Linux, Cobol, Fortran...


cobol, C, ecc... non sono rientrati tra i linguaggi che secondo te tirano nel mondo.... vuol dire che c'è poca richiesta di questi programmatori e quindi meno possibilità di trovare lavoro?

AS/400 cosa sarebbe (scusa l'ignoranza)

ceAlex80
02-01-2004, 20:29
;)
E' il server della IBM.

Ritornarndo al discorso del linguaggio che più tira..io ci metterei il Java ed il J2EE in particolare.
Se uno conosce l'ambiente BEA, ma anche il WebSphere secondo me, non avrà problemi a trovare lavoro!..
Ma data la crisi che c'è solo lavorando in proprio potrai farti un pò di soldi!...
:ciao:

ball12
02-01-2004, 22:41
Il C secondo me....

infatti se ci fai caso, dove ti insegnano a programmare (es università) ti insegnano il C!

Frank1962
02-01-2004, 23:00
Originariamente inviato da ball12
infatti se ci fai caso, dove ti insegnano a programmare (es università) ti insegnano il C!
....a dire la verità molte università italiane insegnano anche il java :rolleyes:

ball12
02-01-2004, 23:33
Bè, io non frequento ancora l'università, ma mi pare, pe rle mie conscienze, prevalga il C, ma molto probabilmente hai ragione tu
Ciao

cionci
02-01-2004, 23:38
Dipende...ultimamante si tendeva ad insegnare per primo il C++... Ora, con i nuovi ordinamenti la tendenza è quella di insegnare prima Java...poi ovviamente C e C++ li fanno lo stesso...
Anche se questo non è indicativo... E' stato scelto Java solamente perchè per un principiante è abbastanza più facile ;)

recoil
02-01-2004, 23:56
Originariamente inviato da Frank1962
....a dire la verità molte università italiane insegnano anche il java :rolleyes:

non capisco perché metti quella faccina.
anche io preferirei che si partisse dalla programmazione strutturata ma se decidono di iniziare con la OOP non vedo cosa potrebbero insegnare se non Java

ball12
03-01-2004, 08:30
Bè allora se devono insegnare OOP, conviene non fare esempi specifici con i linguaggi, visto che ormai tutti sono OO

ev8
03-01-2004, 10:55
Originariamente inviato da W0lf
Ciao ragazzi, secondo voi, secondo le vostre esperienze, secondo il vostro lavoro ecc...

nel mondo del lavoro oggi come oggi, quale è il liguaggio di programmazione più richiesto?

Bhe, attualmente mi sembrano più richiesti XSLT, ASP.NET, JSP, ecc... più che i veri linguaggi di programmazione :rolleyes:

se uno conosce BENE il Basic (ormai vecchio) e un altro che conosce BENE il C, naturalmene nel lavoro, verrà assunto con più facilità il programmatore C....

quindi tra tutti i linguaggi + conosciuti (C, Cobol, Pascal, ASM, ASP, PHP, JAVA, VB ecc...)

quale sarà il più richiesto?

In futuro Java/J#/C#... ma anche il buon vecchio c++ non è da sottovalutare

E poi un altra azzardatissima domanda, gli stipendi medi dei programmatori: quale programmatore, di quale linguaggio, secondo voi guadagna meglio?

Lo stipendio medio in genere non dipende affatto da quale linguaggio usi, ma da come usi

Ciao

ev8
03-01-2004, 11:03
Originariamente inviato da ball12
Bè allora se devono insegnare OOP, conviene non fare esempi specifici con i linguaggi, visto che ormai tutti sono OO
Insegnare a programmare senza un linguaggio di riferimento è cosa ardua... :)

ball12
03-01-2004, 11:07
Ma con OO ti interessa il metodo...

W0lf
03-01-2004, 11:28
Allora, rifacciamo la domanda.... (cambiandola un pò ;) )

Saranno + richiesti (e lo stipendio sarà maggiore) programmatori per il WEB (php, asp, ecc...) o programmatori di applicazioni software (ritorniamo ai linguaggi di prima: C, VB, ecc...)?

Ciao

cionci
03-01-2004, 11:35
Sicuramente applicazioni Web...php, asp, asp.net, jsp, Java Servlet...

W0lf
03-01-2004, 12:03
Ok.... sapete se all'uni fanno questi tipi di linguaggi? (INFORMATICA)

io so che fanno C, java, e poi cosa altro?

specialmente, c'è qualcuno che va all'uni di milano?

luciom2
03-01-2004, 14:34
ad informatica nn si puo' nn fare java!
quindi java al 100% lo troverai in tutte le uni di informatica,invece per quanto riguarda il c puo variare da uni ad uni!
cmq se nn si fa il c sicuramente si fara' il c++!

recoil
03-01-2004, 14:46
Originariamente inviato da W0lf
Ok.... sapete se all'uni fanno questi tipi di linguaggi? (INFORMATICA)

io so che fanno C, java, e poi cosa altro?

specialmente, c'è qualcuno che va all'uni di milano?

io sono della statale di Milano.

da noi si impara Java al primo anno per il corso di programmazione e C al secondo nel corso di algoritmi. nel corso di basi di dati vengono spiegati brevemente asp e php, poi c'è il progetto da fare con uno dei due linguaggi quindi si è "obbligati" a impararne uno

W0lf
03-01-2004, 14:48
mhmhmh che tipo di progetti? (ma statale == bicocca?)

ma per caso in qualche uni si impara l'ASM?

recoil
03-01-2004, 14:56
Originariamente inviato da W0lf
mhmhmh che tipo di progetti? (ma statale == bicocca?)

ma per caso in qualche uni si impara l'ASM?

statale != bicocca

assembly lo si vede al primo anno ma non è quello dell'architettura x86 bensì del mitico MIPS :)


per quanto riguarda i progetti quelli di Java sono molto generici (magari ti chiedono di fare un semplice parser di stringhe o di gestire i file in qualche modo), quelli di C riguardano in genere l'impiego di qualche tipo di grafo mentre quelli di basi di dati riguardano applicazioni tipiche come e-commerce, gestione del personale ecc.

lasciami dire una cosa: ben vengano i progetti!!

W0lf
03-01-2004, 14:59
Originariamente inviato da recoil
statale != bicocca

assembly lo si vede al primo anno ma non è quello dell'architettura x86 bensì del mitico MIPS :)


per quanto riguarda i progetti quelli di Java sono molto generici (magari ti chiedono di fare un semplice parser di stringhe o di gestire i file in qualche modo), quelli di C riguardano in genere l'impiego di qualche tipo di grafo mentre quelli di basi di dati riguardano applicazioni tipiche come e-commerce, gestione del personale ecc.

lasciami dire una cosa: ben vengano i progetti!!

per e-comerce cosa fate? asp mysql per caso? (database)
in c, che tipo di progetti (impiego di grafi è generico)

ma anche se statale !=bicocca, sono uni simili o sbaglio (mi riferisco ai linguaggi, ai progetti ecc...)

recoil
03-01-2004, 15:12
per i progetti di basi di dati php + mysql è sicuramente il binomio più utilizzato.

ho parlato di grafi per i progetti in c perché di solito si tratta di problemi in cui devi percorrere un cammino tra due entità che potrebbero essere parole, città, edifici... si tratta di progetti in cui devi far vedere che sai utilizzare delle strutture dati complesse (ovvero: se ufi liste lineari/array ti danno 18).

non conosco il corso di laurea in informatica presso bibocca ma in linea di massima il programma penso sia simile

ceAlex80
03-01-2004, 15:13
:D
Se uno ha voglia di imparare lo impara anche da solo...
Certo se ti piace programmare non scegli lettere classiche! (..non me ne vogliano gli studenti di quella facoltà, per carità!..)
Voglio dire che la vita ti proporrà sempre nuove sfide che nessuna uni o poli (io vengo da quest'ultimo) avevano messo a programma!
Il Java e le relative tecnologie (anche se è lo stesso Java ad essere una tecnologia e non un semplice linguaggio..) sono abbastanza recenti, per non parlare del .NET introdotto per eliminare il Java..
Poi se posso consigliarti..non c'è maestra migliore della pratica in informatica..se non fai non impari nulla!!!
;)

W0lf
03-01-2004, 15:27
Originariamente inviato da recoil
per i progetti di basi di dati php + mysql è sicuramente il binomio più utilizzato.

ho parlato di grafi per i progetti in c perché di solito si tratta di problemi in cui devi percorrere un cammino tra due entità che potrebbero essere parole, città, edifici... si tratta di progetti in cui devi far vedere che sai utilizzare delle strutture dati complesse (ovvero: se ufi liste lineari/array ti danno 18).

non conosco il corso di laurea in informatica presso bibocca ma in linea di massima il programma penso sia simile

capisco, mi spiegheresti meglio i problemi dei grafi?

ti spiego, io studio c per conto mio e sono solo alle funzioni (ho fatto oggi un gioco d'azzardo "dei dadi craps", con funzioni srand(time(NULL)) con le varie scommesse ecc... quindi alle strutture dati semplici e complesse non sono arrivato, anche se le semplici le utilizzo a scuola con il pascal...

ciao

recoil
03-01-2004, 16:05
Originariamente inviato da W0lf
capisco, mi spiegheresti meglio i problemi dei grafi?

ti faccio un esempio di progetto che ti danno:
"inserire delle parole in una struttura dati a propria scelta in modo che sia possibile eliminare tutte quelle che hanno in comune un dato prefisso (quindi le prime x lettere) e potendo elencare tutte quelle che iniziano con una determinata lettera nel minor tempo possibile".

se metti tutto in una semplice lista il programma può funzionare, ma in modo inefficente. quindi devi usare una struttura diversa ad esempio una serie di alberi la cui radice è una lettera dell'alfabeto.

cmq siamo un po' fuori tema

=>TaroKSoft<=
04-01-2004, 03:17
Mia mamma lavora in sap r/3 e si guadagna bene..... e il mercato tira molto in quella direzione...

W0lf
04-01-2004, 09:11
Originariamente inviato da =>TaroKSoft<=
Mia mamma lavora in sap r/3 e si guadagna bene..... e il mercato tira molto in quella direzione...
Scusa... sarebbe?

GianL
04-01-2004, 12:12
SAP R/3 è un software ERP (enterprise resource planning): ossia uno di quei sw che si occupano della gestione della contabilità generale di un'azienda e non solo: contabilità direzionale, logistica, gestione del personale, gestione ordini, CRM...

SAP è utilizzato soprattutto dalle grosse multinazionali europee.
E' sviluppato in un linguaggio proprietario chiamato ABAP col quale è scritto anche il kernel del sw stesso (a parte alcune parti in C).
Quindi gli addetti ai lavori dicono che tutto in SAP è "debuggabile" e modificabile (previa autorizzazione di SAP ag, SAP è made in Germany).

ABAP assomiglia al COBOL ed ha un IDE (ridicola) proprietaria incorporata nel sw stesso:
come in ogni ERP si tratta di lavorare con basi di dati esterne a SAP (in genere c'è installato Oracle) dove sono custodite tutte le informazioni dell'impresa: quindi ABAP ha una libreria di istruzioni in un SQL proprietario che permette al programmatore ABAP di scrivere codice senza curarsi del dialetto SQL del DBMS effettivamente installato: ABAP quindi si configura come un layer fra programmatore e base di dati.

Che un programmatore ABAP guadagni bene sinceramente è la prima volta che lo sento: forse un project manager di alto livello...
chi guadagna bene sono sicuramente i "consulenti funzionali SAP" coloro cioè che analizzano l'organizzazione di un'impresa e sanno suggerrire migliorie da implementare a livello di strutture informatiche e/o strutture organizzative: figure che non hanno niente a che fare, IMHO, col mondo informatico in quanto più simili a consulenti aziendali in senso stretto: in genere sono laureati in economia.

luciom2
04-01-2004, 12:16
nel mondo del lavoro sono piu richiesti gli ingegneri informatici o gli informatici(laureati)???


e quali hanno piu possibilita' di un guadagno maggiore?

Prometeo98
04-01-2004, 13:39
Da come ho letto in questo 3d pare come se chi è laureato in economia, e lavora in questo campo, guadagna molto di + di chi è laureato in Ing. Informtica, e lavora nel suo campo! Il tutto pur essendo molto più difficile laurearsi come Ing. che come Economista!:mad:

Cosa ne dite? Avete qualche esperianza personale, o qualcuno che conoscete vive questa situazione poco conveniente?

Dite anche se mi sbaglio, perchè può darsi anche che ci siano Ing. Informatici che guadagano una barca!:confused:

Prometeo98
04-01-2004, 14:31
Originariamente inviato da GianL
Che un programmatore ABAP guadagni bene sinceramente è la prima volta che lo sento: forse un project manager di alto livello...
chi guadagna bene sono sicuramente i "consulenti funzionali SAP" coloro cioè che analizzano l'organizzazione di un'impresa e sanno suggerrire migliorie da implementare a livello di strutture informatiche e/o strutture organizzative: figure che non hanno niente a che fare, IMHO, col mondo informatico in quanto più simili a consulenti aziendali in senso stretto: in genere sono laureati in economia.

Per il messaggio sopra mi riferivo a questo passo del mess quotato!:muro:

P. S.: Cosa significa "IMHO"?

W0lf
04-01-2004, 15:25
In My Humble Opinion

a mio modesto parere

ev8
04-01-2004, 17:31
Originariamente inviato da Prometeo98
Da come ho letto in questo 3d pare come se chi è laureato in economia, e lavora in questo campo, guadagna molto di + di chi è laureato in Ing. Informtica, e lavora nel suo campo! Il tutto pur essendo molto più difficile laurearsi come Ing. che come Economista!:mad:

Cosa ne dite? Avete qualche esperianza personale, o qualcuno che conoscete vive questa situazione poco conveniente?

Dite anche se mi sbaglio, perchè può darsi anche che ci siano Ing. Informatici che guadagano una barca!:confused:
Quanto guadagni dipende anche da quanto ti sai vendere ( specialmente se lavori in proprio :D ) ; generalmente un informatico ( soprattutto se non è ingegnere ) ha poca voglia di vendersi, al contrario, un economista appassionato di informatica ne ha molta voglia ed è portato per questo => gli economisti di questo campo diventano dei buoni consulenti e degli scarsi programmatori => il cliente ( dummy ) accoglie a braccia aperte l'economista :D

Aleazzu
05-01-2004, 13:27
Allora.....
Per la mia esperienza posso dirvi che il C serve ben a poco nel mondo del lavoro...anche se conoscerlo non fa di certo male!!!
Chiedersi se sarà più ricercato un programmatore lato WEB o lato Server è (sempre secondo me) completamente assurdo...
Non so che tipo di idea avete di un'applicazione web-based, ma se uscite dalle cose semplici vi accorgerete che un'applicazione web ha comunque un minimo di controllo lato server..quindi servono di sicuro tutti e 2 i profili.
Il consiglio è quindi di imparare a lavorare su entrambi i fronti.
Lato Web l'ambeinte di sviluppo più diffuso è quello formato da Apache (non sarebbe male saper metterci le mani), PHP e MySql...
Stanno prendeno molto piede le Jsp soprattutto perchè integrate col Java e quindi con la programmazione OO.
C'è comunque da tenere conto che il PHP 5 porterà molte novità, tra cui appunto la programmazione OO..quindi a mio avviso continuerà a farla da padrone soprattutto per la sua semplicità.
Per quello che invece riguarda la programmazione lato server direi che a farla da padrona è sicuramente il Java..non sarebbe male sapere un pò di PERL...
Per quello che riguarda invece lo sviluppo di applicazioni windows direi che VB e Delphi sono sicuramente i migliori linguaggi in circolazione....il Vb è sicuramente più diffuso e più considerato..il Delphi non gode di molta popolarità (a mio avviso a torto).

Per quanto riguarda lo stipendio dipende (sempre secondo me) ci sono molte variabili in gioco..
L'azienda in cui lavori, la tua esperienza, le tue capacità....non puoi avere uno standard...

Ciao!

Avevo tralasciato il discorso universitario....

Per come la vedo io nel campo informatico la Laurea serve e non serve...conte molto di più avere esperienza, cosa che all'Università non acquisisci.
A Pisa come linguaggi erano questi:
laboratorio 1/2 -> Pascal
lab 3/4 -> C
Reti e Linguaggi di programmazione -> Java

Adesso il Pascal è sostituito dal Java, anche nel laboratorio 3.
Rimane solo nel 4 il C perchè è programmazione di sistema.
Comq linguaggi orientati al Web non so cosa facciano adesso...io ho fatto un solo esame di laboratorio id basi di dati e osavamo il linguaggio di programmazione di Oracle (molto Pascal like)

cionci
05-01-2004, 14:40
Originariamente inviato da Aleazzu
Per la mia esperienza posso dirvi che il C serve ben a poco nel mondo del lavoro...
Dipende da quello che si fa... Ci sono ambiti in cui è indispensabile !!!

CoreDump
05-01-2004, 15:06
Originariamente inviato da cionci
Dipende da quello che si fa... Ci sono ambiti in cui è indispensabile !!!

Ti quoto :O , da me nel campo telecomunicazioni in ambiente unix/solaris
qualche mese fà l'azienda presso quale lavoro ha cercato per quasi
un mese un'altro programmatore in c che andasse bene, sono venute
almeno 10 persone pseudo esperte alla fine lo hanno trovato ma
non voglio neanche sapere a che prezzo :mc: :D

W0lf
05-01-2004, 15:18
Originariamente inviato da CoreDump
Ti quoto :O , da me nel campo telecomunicazioni in ambiente unix/solaris
qualche mese fà l'azienda presso quale lavoro ha cercato per quasi
un mese un'altro programmatore in c che andasse bene, sono venute
almeno 10 persone pseudo esperte alla fine lo hanno trovato ma
non voglio neanche sapere a che prezzo :mc: :D

lol.. perchè? ;)

CoreDump
05-01-2004, 15:28
Originariamente inviato da W0lf
lol.. perchè? ;)

[Fantozzi mode ON]
Giravano voci che l'italia vinceva 10 a 0 e aveva segnato anche
zoff in tuffo :D :D :D
[Fantozzi mode OFF]

Voci di colleghi, dato che la persona in questione effettivamente
è in gamba e l'azienda aveva la necessità di chiudere dei progetti
in fretta non si è badato molto allo stipendio ( c'e' da dire che il
tizio in questione è un esterno cioè consulente quindi sul prezzo
ha fatto un po' come gli pare :eek: ).

IMHO io penso che il c++ si un passo se non obbligato molto utile
anche per integrare le conoscenze nell'ambito della programmazione OO :O

saluti ;)

Prometeo98
05-01-2004, 15:39
Originariamente inviato da CoreDump
programmazione OO


Cosa significa Prog. OO?:confused:

CoreDump
05-01-2004, 15:42
Originariamente inviato da Prometeo98
Cosa significa Prog. OO?:confused:

Object Oriented :p

Aleazzu
05-01-2004, 16:29
Infatti io ho detto per le mie esperienze...
Quello che dici sul nuovo tipo che ha approffittato di una situazione per far lievitare lo stipendio è proprio quello che intendevo io prima...

-TopGun-
12-01-2010, 20:11
Ciao ragazzi, secondo voi, secondo le vostre esperienze, secondo il vostro lavoro ecc...

nel mondo del lavoro oggi come oggi, quale è il liguaggio di programmazione più richiesto?

se uno conosce BENE il Basic (ormai vecchio) e un altro che conosce BENE il C, naturalmene nel lavoro, verrà assunto con più facilità il programmatore C....

quindi tra tutti i linguaggi + conosciuti (C, Cobol, Pascal, ASM, ASP, PHP, JAVA, VB ecc...)

quale sarà il più richiesto?

E poi un altra azzardatissima domanda, gli stipendi medi dei programmatori: quale programmatore, di quale linguaggio, secondo voi guadagna meglio?

Ciao

uppo questa vecchia discussione quotando la domanda iniziale.

qual'è il linguaggio di programmazione più richiesto?

CercoAiutoo
12-01-2010, 21:18
uppo questa vecchia discussione quotando la domanda iniziale.

qual'è il linguaggio di programmazione più richiesto?

C, Java e PHP :stordita:

-TopGun-
12-01-2010, 21:22
C, Java e PHP :stordita:

tu lavori nel settore?

fdfdfdddd
12-01-2010, 21:26
Java e i linguaggi legati a .Net (C# e VB .Net), poi PHP ... questo almeno in "zona" Roma.

-TopGun-
12-01-2010, 21:40
Io non sono del "ramo".
ma sono un tipo molto curiosi.
mi ero messo in testa di studiare un linguaggio di programmazione.

su consiglio di un amico mi sono messo a smanettare con la piattaforma .net ma gli strumenti che MS mette a disposizione per imparare, mi hanno dato diversi problemi.
la versione free di visual studio (visual web developer express 2008) mi si è piantata praticamente ai primi passi del tuttorial di html.it :muro:

quando l'ambiente di sviluppo nn gira e tu cerchi info e guide per capire quale sia il problema ed il problema persiste....
non è un bell'inizio :D

Php, seguendo il pardigma LAMP (LinuxApacheMyqlPhp) è possibile apprenderlo avendo a disposizione tutti gli strumenti.

voi dite che tira anche...




grazie 1000 per le risposte.

CercoAiutoo
13-01-2010, 00:17
tu lavori nel settore?

Non sono settorizzato :stordita:

Ti conviene imparare il linguaggio che più ti piace e sopratutto che ti serve.
Visto che stai iniziando adesso ti consiglio di iniziare con python ( molto bello e semplice ).

PGI-Bis
13-01-2010, 00:17
Riguardo a Java una nota che penso valga la pena di fare: quello che interessa in ambito lavorativo è Java EE. Le differenze tra dire Java e dire Java EE sono talmente tante che non basterebbe un forum per elencarle. In generale se è una cosa divertente da fare allora NON E' Java EE (a meno che uno la mattina non sorseggi il caffè con una mano nella bistecchiera)

cdimauro
13-01-2010, 07:00
uppo questa vecchia discussione quotando la domanda iniziale.

qual'è il linguaggio di programmazione più richiesto?
C# come richieste di lavoro. Java come linguaggio più usato.
Io non sono del "ramo".
ma sono un tipo molto curiosi.
mi ero messo in testa di studiare un linguaggio di programmazione.

su consiglio di un amico mi sono messo a smanettare con la piattaforma .net ma gli strumenti che MS mette a disposizione per imparare, mi hanno dato diversi problemi.
la versione free di visual studio (visual web developer express 2008) mi si è piantata praticamente ai primi passi del tuttorial di html.it :muro:

quando l'ambiente di sviluppo nn gira e tu cerchi info e guide per capire quale sia il problema ed il problema persiste....
non è un bell'inizio :D

Php, seguendo il pardigma LAMP (LinuxApacheMyqlPhp) è possibile apprenderlo avendo a disposizione tutti gli strumenti.

voi dite che tira anche...

grazie 1000 per le risposte.
Tira anche molto Python, che è di gran lunga più semplice e versatile di PHP.
Non sono settorizzato :stordita:

Ti conviene imparare il linguaggio che più ti piace e sopratutto che ti serve.
Visto che stai iniziando adesso ti consiglio di iniziare con python ( molto bello e semplice ).
Perfettamente d'accordo.
Riguardo a Java una nota che penso valga la pena di fare: quello che interessa in ambito lavorativo è Java EE. Le differenze tra dire Java e dire Java EE sono talmente tante che non basterebbe un forum per elencarle. In generale se è una cosa divertente da fare allora NON E' Java EE (a meno che uno la mattina non sorseggi il caffè con una mano nella bistecchiera)
Lapidario, come tu solito. :D

ybla82
13-01-2010, 08:15
In generale non è che esista un linguaggio dominante sugli altri.
Ovviamente dipende dal tipo di progetto, dalle risorse a disposizione etc...

In generale c'è da dire comunuqe che tutte le varie alternative di java hanno una buona fetta di mercato.

Al secondo posto c'è l'ambiente .NET ( quindi ASP.NET, C#, VB.NET ).

Il resto viene di conseguenza in maniera minore.

Discorso a parte meritano C/C++ che sono linguaggi indispensabili per determinati contesti e in cui difficilmente si trova qualcosa di meglio ( Automazione industriale docet ), e ABAP, linguaggio completamente dedicato a SAP (leader di mercato nel settore) per cui non esistono alternative.

Come stipendi il punto di partenza è tra i 1100 e i 1300 euro mensili netti.
Bisogna essere poi bravi a giocarsela in fase di colloquio.

L'esperienza aiuta a salire, ma detto onestamente, aiuta molto di più cambiare azienda ogni 2/3 anni: questo è l'unico metodo per far salire lo stipendio velocemente.

Diventati analisti qualcosa in più in media si guadagna, ma non c'è una differenza abissale.

fdfdfdddd
13-01-2010, 08:24
L'esperienza aiuta a salire, ma detto onestamente, aiuta molto di più cambiare azienda ogni 2/3 anni: questo è l'unico metodo per far salire lo stipendio velocemente.

Ahimé triste verità.

Aggiungo, è importante anche il posto in cui si lavora ... la stragrande maggioranza del lavoro oggi si trova a Milano o Roma e tra le due (ed io mi sono pentito amaramente della scelta che feci anni fa) è a mio parere da preferire la prima.

-TopGun-
13-01-2010, 09:26
Non sono settorizzato :stordita:

Ti conviene imparare il linguaggio che più ti piace e sopratutto che ti serve.
Visto che stai iniziando adesso ti consiglio di iniziare con python ( molto bello e semplice ).

bhe, partendo adesso, non posso sapere quale sia il linguaggio che più mi piace.

sull'utilità, io sono un tipo molto curioso mi piace imparare cose nuove anche fuori dalle mie competenze e dal mio percorso di studi.

il consiglio che chiedevo serviva proprio ad indirizzarmi in tal senso.

da quello che ho capito phyton per semplicità e versatilità isieme a php, poi ci sono i linguaggi usati in ambito di automazione industriale che tirano tanto solo in quel settore.

quindi per ora Python.

@cdimauro, la tua firma è eloquente :D


di nuovo molte grazie a tutti per i vostri interventi.

khelidan1980
13-01-2010, 10:08
Riguardo a Java una nota che penso valga la pena di fare: quello che interessa in ambito lavorativo è Java EE. Le differenze tra dire Java e dire Java EE sono talmente tante che non basterebbe un forum per elencarle. In generale se è una cosa divertente da fare allora NON E' Java EE (a meno che uno la mattina non sorseggi il caffè con una mano nella bistecchiera)

basterebbe iniziare ad usare JEE 1.5 che magari sarebbe anche più divertente al posto di stare a bestemmiare con ejb 1.1 ancora grandemete usati purtroppo

shinya
13-01-2010, 10:14
basterebbe iniziare ad usare JEE 1.5 che magari sarebbe anche più divertente... [cut]
Divertentissimo. Ogni volta che mi devo mettere a lavorare con websphere ho la morte nel cuore, e dopo un pò comincio a parlare con la lingua di Cthulhu.

banryu79
13-01-2010, 10:24
Divertentissimo. Ogni volta che mi devo mettere a lavorare con websphere ho la morte nel cuore, e dopo un pò comincio a parlare con la lingua di Cthulhu.
Potrebbe aiutare: dicono che in realtà sia rimasto sepolto in R'lyeh perchè alle prese con lo sviluppo di una qualche applicazione entrerprise per la IBM... :D

khelidan1980
13-01-2010, 15:00
Divertentissimo. Ogni volta che mi devo mettere a lavorare con websphere ho la morte nel cuore, e dopo un pò comincio a parlare con la lingua di Cthulhu.

anche a me piacerebbe lavorare con jboss, jee 5 java 6 etc etc...oppure con ruby on rails...però poi ti ritrovi in banche (grosse banche) che usano ancora java 1.3 websphere 4...diciamo va un po a culo


EDIT: java 1.3 avevo scritto 1.4 ma sia mai, troppo avanzata la cosa

Victor1105
14-01-2010, 00:16
raga ma partendo quasi da zero ( avendo però tanta passione curiosità e voglia di imprarare ) per un linguaggio tipo java , c oppure php ci sono possibilità di diventare buoni programmatori seguendo un buon corso?

poi un'altra cosa, forse se tutto va bene cn il visto dovrei trasferirmi negli states, se imparassi uno o piu linguaggi java , c ecc.. troverei lavoro li? o in america richiedono in prevalenza altri linguaggi??

grazie in anticipo..

cdimauro
14-01-2010, 07:43
Per imparare ti consiglio Python. Dopo che ti sei fatto le ossa puoi passare a qualunque linguaggio.

In america vale lo stesso di quanto già detto: C# è molto richiesto a livello di offerte di lavoro, ma Java è ancora molto presente.

Per Python c'è Google che cerca programmatori. :)

-TopGun-
14-01-2010, 08:24
Quindi Python per farsi le ossa.

Poi, è vero che i Php developer sono molto ricercati anche in europa?

cdimauro
14-01-2010, 08:37
Sì, perché PHP al momento è più diffuso di Python e può contare su più librerie e progetti.

Ma è uno schifo di linguaggio, te l'assicuro. Di peggio c'è solo PERL.

Galdor
14-01-2010, 08:38
Io mi son laureato l'anno scorso in informatica alla Bicocca di Milano e lavoro da un annetto abbondante, in tutti i posti dove ho lavorato e sto lavorando mi han chiesto principalmente VB6 (che non avevo mai visto, ma ci son voluti 2 giorni per capire come funziona) e programmazione server-side, uno in PHP e un'altro in Python, solamente in un posto mi han chiesto il C per cose un pò più a basso livello.

In Bicocca nel corso di programmazione del primo anno si faceva Java, c'era un corso opzionale al secondo anno su C++ e un'altro sempre a scelta al terzo su XML, XSL, JSP, ... altri corsi che si incentrassero su linguaggi specifici non ne ricordo, un pò linguaggi di programmazione che spiegavano LISP e Prolog ma giusto per mostrare un modo diverso di programmare; ora so che hanno rivoluzionato tutti i corsi quindi probabilmente sarà tutto diverso :)
In pratica se vuoi imparare a scrivere codice l'uni serve a poco, devi darti da fare tu perchè nelle aule non te lo insegneranno (a parte le basi ovviamente).

Per i soldi è tutto relativo, dipende molto da come ti sai vendere ma cmq in generale un programmatore non è strapagato anzi, ora vanno di moda ste agenzie di consulenza che assumono n programmatori a 1100€ al mese e li sparano in giro in altre aziende, loro per il tuo lavoro si prendono anche 300€ al giorno mentre se ti va bene tu ne vedi un quarto...se vuoi fare i soldi devi metterti in proprio e trovarti dei clienti; dove lavoravo prima prendevano solamente consulenti con partita iva a progetto (una decina) e ricordo che 2/3 di questi prendevano quasi 400€ al giorno (e infatti venivano chiamati tipo 2 giorni alla settimana)

-TopGun-
14-01-2010, 09:04
Sì, perché PHP al momento è più diffuso di Python e può contare su più librerie e progetti.

Ma è uno schifo di linguaggio, te l'assicuro. Di peggio c'è solo PERL.

che intendi per schifo di linguaggio?
tra l'altro è il linguaggio usato per costruire FB.
come per python tutte le risorse sono libere e gratuite a quanto leggo.
(un punto a favore di chi vuole imparare da solo).

Galdor
14-01-2010, 09:14
Ho sentito diversa gente parlare allo stesso modo di Python (anzi a dir la verità ho sentito molta più gente parlar male di Python piuttosto che di PHP o PERL)

A mio parere il maggior difetto del php è che qualsiasi ragazzino in una settimana ti mette sù un accrocchio semi-funzionante e quando tu vai a vendere la tua super-applicazione che fa la stessa cosa ti viene pagata la metà perchè: "con 10€ il mio falegname la faceva uguale" ... perchè principalmente il cliente (dumb come si diceva prima) guarda solo la superficie e magari il ragazzino ci ha messo 2 gif animate che rendono il tutto più bello :)

cdimauro
14-01-2010, 09:43
che intendi per schifo di linguaggio?
Intendo questo (http://wiki.theory.org/YourLanguageSucks). :D
tra l'altro è il linguaggio usato per costruire FB.
Questo non depone a suo favore :D (e FB soffre spesso di lentezza, a quanto dicono i miei amici che lo usano).
come per python tutte le risorse sono libere e gratuite a quanto leggo.
(un punto a favore di chi vuole imparare da solo).
Indubbiamente.
Ho sentito diversa gente parlare allo stesso modo di Python (anzi a dir la verità ho sentito molta più gente parlar male di Python piuttosto che di PHP o PERL)
Sarebbe interessante leggere cosa ne dicono.
A mio parere il maggior difetto del php è che qualsiasi ragazzino in una settimana ti mette sù un accrocchio semi-funzionante e quando tu vai a vendere la tua super-applicazione che fa la stessa cosa ti viene pagata la metà perchè: "con 10€ il mio falegname la faceva uguale" ... perchè principalmente il cliente (dumb come si diceva prima) guarda solo la superficie e magari il ragazzino ci ha messo 2 gif animate che rendono il tutto più bello :)
E poi si ritrovano con una roba ingestibile...

-TopGun-
14-01-2010, 09:59
@ Cdimauro

Facebook è lento per latri motivi, non è un problema di codice.
spesso è usato come chat.
tu pensa a tutti i bimbi minkia che usano i commenti come sms.
i server che forse sono un pò gestiti al risparmio, andranno in contro ad un numero troppo elevato di richieste.

tutto lì.

sulle ragioni tecniche non mi soffermo essendo venuto a chiedere info sul linguaggio.

poi tu mi sembri lievemente Python oriented...hai le tue ottime ragioni per sostenerlo.

in cosa si può impiegare?

cdimauro
14-01-2010, 10:05
Di tutto (http://www.panda3d.org/).

Comunque è scontato che sia a favore di Python (vedi il mio avatar e la mia firma), ma l'importante è che i giudizi e i consigli che esprimo non siano campati per aria o frutto di scelte non tecniche. ;)

P.S. La chat di FB è fatta in Erlang. E meno male! :D

anonimizzato
14-01-2010, 10:19
Per la mia piccola esperienza.

Web: PHP / Java / ASP.NET
In generale: Java / C++ / C# / .NET / PHP

Come già detto più volte comunque dipende molto dal settore.

Nonostante sia un linguaggio con diversi anni sulle spalle Java è ancora il più richiesto in ogni settore, sia per applicativi client sia lato server.

Putroppo invece noto che Ruby e Python non sono ancora molto ricercati.
Avendo studiato Ruby non mi dispiacerebbe che il mercato in Italia, per questo linguaggio, sia un pò più ricettivo.

anonimizzato
14-01-2010, 10:32
A mio parere il maggior difetto del php è che qualsiasi ragazzino in una settimana ti mette sù un accrocchio semi-funzionante e quando tu vai a vendere la tua super-applicazione che fa la stessa cosa ti viene pagata la metà perchè: "con 10€ il mio falegname la faceva uguale" ... perchè principalmente il cliente (dumb come si diceva prima) guarda solo la superficie e magari il ragazzino ci ha messo 2 gif animate che rendono il tutto più bello :)

Scusami ma solo SEMPRE LE SOLITE frasi fatte da segaioli del codice.

Un'applicazione può essere fatta bene o fatta male con qualsiasi linguaggio.
Posso creare un software ottimo con PHP e farne uno da schifo con Python, e viceversa ovviamente.
Tutto sta nello scegliere il linguaggio più adatto allo scopo e soprattutto saperlo usare bene.
- no spaghetti code
- meno code forking possibile
- utilizzo di best practices
- no duplicazione del codice
- utilizzo oculato di design patterns.
ecc.

E' sicuramente più facile che il "ragazzino" che voglia fare siti web si avvicini prima a PHP piuttosto che ad altro linguaggio, non fosse altro per la semplicità, l'immediatezza nella produttività e la pressochè sconfinata dote di materiale, supporto, strumenti ecc. Oltre a non dover partire subito con OOP.

Affermazioni del tipo: "lascia stare quel linguaggio fa schifo, usa questo che è il più figo di tutti" lasciale a chi pratica l'onanismo selvaggio mentre riguarda il listato di codice ben indentato che ha appena creato.

fero86
14-01-2010, 10:34
Ho sentito diversa gente parlare allo stesso modo di Python (anzi a dir la verità ho sentito molta più gente parlar male di Python piuttosto che di PHP o PERL) sará stato un caso, io posso dire proprio l'opposto.


A mio parere il maggior difetto del php è che qualsiasi ragazzino in una settimana ti mette sù un accrocchio semi-funzionante e quando tu vai a vendere la tua super-applicazione che fa la stessa cosa ti viene pagata la metà perchè: "con 10€ il mio falegname la faceva uguale" ... perchè principalmente il cliente (dumb come si diceva prima) guarda solo la superficie e magari il ragazzino ci ha messo 2 gif animate che rendono il tutto più bello :) e allora che vuol dire, che PHP avrebbe dovuto essere meno produttivo? a quel punto sarebbe venuto fuori veramente un altro brainfuck :asd:
non é un modo molto intelligente di ragionare, sbaragliare la concorrenza fatta di kiddies degradando un aspetto qualitativo del linguaggio.


Questo non depone a suo favore :D (e FB soffre spesso di lentezza, a quanto dicono i miei amici che lo usano). é chiaramente una lentezza di rete: gli stessi contenuti a volte arrivano subito e a volte non arrivano mai.


E poi si ritrovano con una roba ingestibile... infatti poi bisogna vedere quanto ci mette il falegname a distanza di due mesi ad aggiungere la funzionalitá di cui il cliente ignorante ha assolutamente bisogno; poi, quando il cliente ignorante si sará reso conto che il falegname l'ha abbandonato ignorando tutte le sue chiamate e i suoi tentativi di comunicazione, bisogna vedere quanto ci mette a trovare un programmatore serio; infine bisogna vedere quanto chiederá il programmatore serio, perché si sa, nessuno vuole lavorare sul codice scritto (pessimamente) da qualcun altro.

quando i clienti ignoranti ti liquidano in due secondi con perle di saggezza come quella é sufficiente assecondarli e poi sedersi sulla riva del fiume in attesa che passi il loro cadavere :)

anonimizzato
14-01-2010, 10:36
A mio parere il maggior difetto del php è che qualsiasi ragazzino in una settimana ti mette sù un accrocchio semi-funzionante

Il maggior difetto delle automobili è che poi certa gente le usa per investire altra gente.

http://www.steamfantasy.it/blog/wp-content/uploads/2009/11/Blank-Facepalm.gif

-TopGun-
14-01-2010, 10:53
Scusami ma solo SEMPRE LE SOLITE frasi fatte da segaioli del codice.

Un'applicazione può essere fatta bene o fatta male con qualsiasi linguaggio.
Posso creare un software ottimo con PHP e farne uno da schifo con Python, e viceversa ovviamente.
Tutto sta nello scegliere il linguaggio più adatto allo scopo e soprattutto saperlo usare bene.
- no spaghetti code
- meno code forking possibile
- utilizzo di best practices
- no duplicazione del codice
- utilizzo oculato di design patterns.
ecc.

E' sicuramente più facile che il "ragazzino" che voglia fare siti web si avvicini prima a PHP piuttosto che ad altro linguaggio, non fosse altro per la semplicità, l'immediatezza nella produttività e la pressochè sconfinata dote di materiale, supporto, strumenti ecc. Oltre a non dover partire subito con OOP.

Affermazioni del tipo: "lascia stare quel linguaggio fa schifo, usa questo che è il più figo di tutti" lasciale a chi pratica l'onanismo selvaggio mentre riguarda il listato di codice ben indentato che ha appena creato.

interessante.

per OOP intendi:
http://it.wikipedia.org/wiki/Programmazione_orientata_agli_oggetti

@cdimauro sei stato molto chiaro :)

Galdor
14-01-2010, 10:54
Scusami ma solo SEMPRE LE SOLITE frasi fatte da segaioli del codice.

Un'applicazione può essere fatta bene o fatta male con qualsiasi linguaggio.
Posso creare un software ottimo con PHP e farne uno da schifo con Python, e viceversa ovviamente.
Tutto sta nello scegliere il linguaggio più adatto allo scopo e soprattutto saperlo usare bene.
- no spaghetti code
- meno code forking possibile
- utilizzo di best practices
- no duplicazione del codice
- utilizzo oculato di design patterns.
ecc.

E' sicuramente più facile che il "ragazzino" che voglia fare siti web si avvicini prima a PHP piuttosto che ad altro linguaggio, non fosse altro per la semplicità, l'immediatezza nella produttività e la pressochè sconfinata dote di materiale, supporto, strumenti ecc. Oltre a non dover partire subito con OOP.

Affermazioni del tipo: "lascia stare quel linguaggio fa schifo, usa questo che è il più figo di tutti" lasciale a chi pratica l'onanismo selvaggio mentre riguarda il listato di codice ben indentato che ha appena creato.

Va che abbiam detto la stessa cosa...intendevo dire che con PHP è moooolto facile creare qualcosa che funzioni ma che sia osceno a livello di codice, o come struttura del db che sta sotto, come ha fatto notare fero86 poi il problema serio è rimetterci le mani per aggiungere qualcosa, che è esattamente quello per cui son stato assunto, ed è stato un lavoraccio.

anonimizzato
14-01-2010, 10:59
Va che abbiam detto la stessa cosa...intendevo dire che con PHP è moooolto facile creare qualcosa che funzioni ma che sia osceno a livello di codice, o come struttura del db che sta sotto, come ha fatto notare fero86 poi il problema serio è rimetterci le mani per aggiungere qualcosa, che è esattamente quello per cui son stato assunto, ed è stato un lavoraccio.

Ok, abbiamo chiarito e siamo d'accordo.

Putroppo anch'io mi sono spesso trovato a dover mette mano a del codice da incubo e non fatto da ragazzini ahimè!!!

Già un maggior uso (e soprattutto corretto) di un qualche valido e serio framework MVC (Zend, Symfony ...) potrebbe aiutare notevolmente a scrivere codice di qualità, in modo che lo sviluppatore acquisisca una forma mentis più professionale, ed eviterebbe che terzi che devono mettervi mano non sappiano nemmeno da dove partire.

Galdor
14-01-2010, 11:03
e allora che vuol dire, che PHP avrebbe dovuto essere meno produttivo? a quel punto sarebbe venuto fuori veramente un altro brainfuck :asd:
non é un modo molto intelligente di ragionare, sbaragliare la concorrenza fatta di kiddies degradando un aspetto qualitativo del linguaggio.


Hai perfettamente ragione, si poteva però far qualcosa di più per, non dico forzare ma quasi, l'utilizzo delle best-practices...sono il primo ad odiare i brainfuck in tutti i campi ma quando il tuo lavoro di mesi viene valutato come un accrocchio fatto in una settimana...
CMq l'avete presa troppo seriamente, non intendevo certo dire che php doveva essere meno produttivo e più difficile da usare

Galdor
14-01-2010, 11:09
Intendo questo (http://wiki.theory.org/YourLanguageSucks). :D

Questa non la conoscevo ed è fantastica, ora me la metto tra i preferiti:)

-TopGun-
14-01-2010, 11:13
Questa non la conoscevo ed è fantastica, ora me la metto tra i preferiti:)

mi piace ripescare vecchi thread, anche per questo. si scoprono molte cose interessanti.

scusate l' OT

-TopGun-
21-01-2010, 14:57
Sì, perché PHP al momento è più diffuso di Python e può contare su più librerie e progetti.

Ma è uno schifo di linguaggio, te l'assicuro. Di peggio c'è solo PERL.

vengo a ravviare questo thread e condividere le cose che ho scoperto.
Il python è sicuramente il meglio che esiste per avvicinarsi alla programmazione da zero.

In soldoni,
Php e MySql su piattaforma quindi Unix\Linux, associata ad un linguaggio di scripting tipo bash...vi porta anche a trovare un lavoro da junior programmer.

stipendio, 27k per partire.


Spero il risultato delle mie ricerche possa essere utile.

Hal2001
20-02-2010, 17:20
Spero il risultato delle mie ricerche possa essere utile.

Lo è stato :)

Unrue
20-02-2010, 19:38
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Non pensavo che C fosse così in alto .. :stordita: Questo indice pare sia abbastanza affidabile

-TopGun-
20-02-2010, 19:47
Lo è stato :)

grande! tienici aggiornati :)

-TopGun-
20-02-2010, 19:56
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Non pensavo che C fosse così in alto .. :stordita: Questo indice pare sia abbastanza affidabile

non so se l'indice sia affidabile, comunque quando intraprendi lo studio di un linguaggio devi anche considerare

1) la reperibilità del materiale didattico
2) la facilità di apprendimento
3) l'applicazione pratica sia per fini "hobbystici" sia nel mondo del lavoro (impari una cosa perché non imparare una cosa anche utile?)

fero86
20-02-2010, 20:34
non so se l'indice sia affidabile, comunque quando intraprendi lo studio di un linguaggio devi anche considerare

1) la reperibilità del materiale didattico
2) la facilità di apprendimento
3) l'applicazione pratica sia per fini "hobbystici" sia nel mondo del lavoro (impari una cosa perché non imparare una cosa anche utile?) i punti 1, 2 e 3 peró vanno pesati perché credo che il C vinca sui primi due.

fero86
20-02-2010, 20:37
qualcuno sa spiegarmi come mai il C++ non se lo fila piu nessuno??
http://www.tiobe.com/index.php/paperinfo/tpci/C__.html

:|


non capisco perché venga usato meno del C visto che é piu potente

cdimauro
20-02-2010, 20:44
i punti 1, 2 e 3 peró vanno pesati perché credo che il C vinca sui primi due.
Sul 2 non credo proprio. Un conto è imparare la sintassi (che comunque è abbastanza contorta), e tutt'altra cosa imparare a programmare in C. :D
qualcuno sa spiegarmi come mai il C++ non se lo fila piu nessuno??
http://www.tiobe.com/index.php/paperinfo/tpci/C__.html

:|


non capisco perché venga usato meno del C visto che é piu potente
Perché è un linguaggio molto più complesso e difficile da digerire.

Unrue
20-02-2010, 21:08
qualcuno sa spiegarmi come mai il C++ non se lo fila piu nessuno??
http://www.tiobe.com/index.php/paperinfo/tpci/C__.html

:|


non capisco perché venga usato meno del C visto che é piu potente

Beh è quarto, non è malaccio. Secondo me il C è così in alto (alla faccia dei detrattori :D :D ) grazie alla enorme diffusione dei dispositivi embedded e relativi microcontrollori.

WarDuck
20-02-2010, 21:32
qualcuno sa spiegarmi come mai il C++ non se lo fila piu nessuno??
http://www.tiobe.com/index.php/paperinfo/tpci/C__.html

:|


non capisco perché venga usato meno del C visto che é piu potente

Io preferisco di gran lunga il C al C++...

Se devo programmare con un paradigma Object Oriented, tantovale buttarmi su Java.

fero86
20-02-2010, 21:57
Io preferisco di gran lunga il C al C++...

Se devo programmare con un paradigma Object Oriented, tantovale buttarmi su Java. ma se devi programmare in C in genere hai la possibilitá di scegliere tra C e C++, e il secondo é molto meglio del primo perché ti fa scrivere meno codice in quanto offre costrutti piu sofisticati che ti fanno fare di piu con poche righe di codice. secondo me la gente non si rende conto di questo.

fero86
20-02-2010, 22:00
tra l'altro adesso é uscita da poco la release candidate di Visual Studio 2010 che viene col nuovo compilatore C++ della Microsoft che supporta l'ultima revisione, il C++0x, che permette di fare programmazione funzionale *___*
io vado in visibilio per queste cose, si nota? :mc:

PS: e il g++ arranca :asd:

fero86
20-02-2010, 22:03
Se devo programmare con un paradigma Object Oriented, tantovale buttarmi su Java. a parte che Java ormai mi da la netta sensazione di fare una brutta fine, quindi semmai in un discorso del genere io direi C#.

PGI-Bis
20-02-2010, 22:45
in un discorso del genere io direi C#.

Suvvia per le oscenità aspettiamo almeno la mezzanotte.

:D

gugoXX
20-02-2010, 22:50
Suvvia per le oscenità aspettiamo almeno la mezzanotte.

:D

Ride bene chi ride ultimo.

PGI-Bis
20-02-2010, 22:53
Non gufare. Oracle ci vuole bene, Oracle è cosa buona e giusta... (a forza di ripeterlo uno dovrebbe finire per crederci, no?)

gugoXX
20-02-2010, 22:55
Non gufare. Oracle ci vuole bene, Oracle è cosa buona e giusta... (a forza di ripeterlo uno dovrebbe finire per crederci, no?)

:)
Comunque, scherzi a parte, mi spiace che tu conosca solo meta' del cielo.

PGI-Bis
20-02-2010, 23:42
Al momento sono preso da Scala.

Certo, è gestito da una comunità secondo cui (cito testualmente):

def boo[A, B, C](f: A => B, g: B => C): A => C

non richiede documentazione perchè è ovvio cosa faccia (immagino oltre a girare le palle).

Ed è anche vero che l'implementazione migliore usa il JRE, che è attualmente gestito da un'azienda che sta all'informatica come una mignotta all'anatomia.

Ma nonostante tutto, il linguaggio ha una sua piacevolezza estetica.

Ammetto tuttavia che l'esistenza di .NET offre una certa sensazione di "sicurezza". Quando Oracle farà quella cazzata che ha in mente di fare, quella totalmente contraria allo spirito di Sun che nessuno ancora conosce ma che tutti si aspettano, si potrà sempre passare a C# su .NET.

WarDuck
20-02-2010, 23:50
ma se devi programmare in C in genere hai la possibilitá di scegliere tra C e C++, e il secondo é molto meglio del primo perché ti fa scrivere meno codice in quanto offre costrutti piu sofisticati che ti fanno fare di piu con poche righe di codice. secondo me la gente non si rende conto di questo.

Come sempre dipende da quello che devi fare.

a parte che Java ormai mi da la netta sensazione di fare una brutta fine, quindi semmai in un discorso del genere io direi C#.

Mah non mi sembra...

C# IMHO è una spanna sopra per numero di costrutti che si possono usare, oltre a vario zucchero sintattico che non fa mai male...

Mi piacerebbe che in Java implementassero l'inferenza dei tipi in fase di compilazione (è prevista per java 7?) e cose come l'overload degli operatori (credo sia decisamente comodo in alcuni casi poter fare overloading dell'operatore di accesso []).

tra l'altro adesso é uscita da poco la release candidate di Visual Studio 2010 che viene col nuovo compilatore C++ della Microsoft che supporta l'ultima revisione, il C++0x, che permette di fare programmazione funzionale *___*
io vado in visibilio per queste cose, si nota? :mc:

PS: e il g++ arranca :asd:

Era ora, mi stavo giusto chiedendo quanto ancora avrebbero aspettato :D.

khelidan1980
21-02-2010, 10:19
:)
Comunque, scherzi a parte, mi spiace che tu conosca solo meta' del cielo.

mah mi sa che in italia l'altra metà del cielo diventa 1/4, la situazione di java sul mercato italiano non penso cambierà di molto considerando la staticità delle aziende nostrane,io lavoro per una grossa banca italiana( forse la più grossa mi dicono ) e ora stanno passando da cobol a java, usare java 1.4 è già un lusso,e così è per tutto il panorama bancario, poi in altri campi non so, ma quì mi sa che java avrà vita lunga, molto lunga

fero86
21-02-2010, 11:47
Come sempre dipende da quello che devi fare. no, é sempre cosi: non é che se devi fare una cosa diversa il numero di costrutti del C++ diminuisce, sempre quelli sono.

fero86
21-02-2010, 11:48
Era ora, mi stavo giusto chiedendo quanto ancora avrebbero aspettato :D. molto meno degli altri :Prrr:

carter100
21-02-2010, 12:16
Ammetto tuttavia che l'esistenza di .NET offre una certa sensazione di "sicurezza". Quando Oracle farà quella cazzata che ha in mente di fare, quella totalmente contraria allo spirito di Sun che nessuno ancora conosce ma che tutti si aspettano, si potrà sempre passare a C# su .NET.

Mi vergogno a chiederlo, ma non so a che ti riferisci...:stordita:
A che ti riferisci? :asd:

WarDuck
21-02-2010, 12:23
no, é sempre cosi: non é che se devi fare una cosa diversa il numero di costrutti del C++ diminuisce, sempre quelli sono.

I vantaggi non derivano tanto dal linguaggio in se, quanto appunto dal paradigma OO che facilita molto un certo tipo di programmazione.

E' anche vero che ci sono casi in cui ti piacerebbe adottare un tipo di programmazione multi-paradigma, che è quello che di fatto C++ offre, e da questo punto di vista è sicuramente il linguaggio ideale in quei casi in cui ti serve efficienza nel codice ed entrambi i paradigmi.

Tuttavia se devo programmare OO forse è il caso di pensare a linguaggi più evoluti tipo Java o C#.

E' chiaro che il tuo compromesso è una certa perdita di efficienza (del codice, non del programmatore tuttavia). Per questo dico che dipende da cosa devi fare.

Sicuramente l'introduzione del C++0x offre spunti interessanti per rimettere mano su C++, sono un po' arrugginito a forza di scrivere codice in Java.

Appena ho un po' di tempo inoltre mi piacerebbe dare un'occhiata a Go, il linguaggio di programmazione di Google.

WarDuck
21-02-2010, 12:24
Mi vergogno a chiederlo, ma non so a che ti riferisci...:stordita:
A che ti riferisci? :asd:

In pratica sta dicendo che Microsoft offre più sicurezza di Oracle :D

carter100
21-02-2010, 13:24
In pratica sta dicendo che Microsoft offre più sicurezza di Oracle :D

Ah ok, grazie :D

marco.r
21-02-2010, 15:52
Io preferisco di gran lunga il C al C++...

Se devo programmare con un paradigma Object Oriented, tantovale buttarmi su Java.

In molti ambiti Java però è da escludere (così come altri linguaggi come il C#) per cui l'alternativa resta tra il C e il C++ (o cose più di nicchia come il Forth...).
Il problema piuttosto è che in alcuni casi (e.g. dispositivi embedded) la versione del compilatore è un vecchio gcc e per il C++ questo pesa negativamente.


In ogni caso stai approcciando il problema alla rovescia. Non è che "devi" programmare con un linguaggio OO e quindi scegli quello che devi scegliere... ma devi risolvere un certo problema e in base ai vincoli scegli il linguaggio che puoi usare... se poi è uno OO tanto meglio, ma quello viene dopo.

fero86
21-02-2010, 17:07
Mi vergogno a chiederlo, ma non so a che ti riferisci...:stordita:
A che ti riferisci? :asd: a C#, un linguaggio di programmazione della piattaforma .NET prodotto da Microsoft. é un linguaggio molto potente e all'avanguardia, anche grazie alla piattaforma .NET. se vuoi dargli un'occhiata scarica Microsoft Visual C# 2008 Express, é gratuito (volendo c'é anche la release candidate della 2010).



I vantaggi non derivano tanto dal linguaggio in se, quanto appunto dal paradigma OO che facilita molto un certo tipo di programmazione. non necessariamente: é stato mostrato che la programmazione orientata agli oggetti di per se' non produce vantaggi significativi in termini di produttivitá rispetto alla programmazione procedurale.

io non stavo affatto parlando di programmazione orientata agli oggetti, stavo parlando solo di C++, che tra l'altro fornisce una sua peculiare interpretazione della programmazione orientata agli oggetti. il C++ permette di essere piu produttivi del C perché offre costrutti piu potenti che permettono di scrivere programmi piu significativi a paritá di numero di linee di codice.



Tuttavia se devo programmare OO forse è il caso di pensare a linguaggi più evoluti tipo Java o C#. come ti ha spiegato marco.r, uno non é che "deve programmare OO"; uno deve risolvere un problema molto pratico che non ha nulla a che vedere con la programmazione orientata agli oggetti, e per farlo ha a disposizione un determinato insieme di strumenti tra cui forse anche linguaggi orientati agli oggetti.



E' chiaro che il tuo compromesso è una certa perdita di efficienza premettiamo che le questioni di performance non sono legate ai linguaggi di per se', che sono solo specifiche di sintassi, semantica e spesso librerie predefinite.

detto questo esistono alcuni linguaggi che favoriscono la performance e per i quali esistono implementazioni intrinsecamente piu performanti; per esempio la specifica del linguaggio Java impone la semantica del bound checking sugli array e questo causa necessariamente una perdita di performance che invece non caratterizza linguaggi non gestiti come C e C++.

ció posto le performances finali dei programmi risultanti dalla compilazione di questi linguaggi sono in generale una questione piu complessa di come la fai tu e le tue affermazioni non sono valide nel caso generale. nel caso generale un programma Java puó essere molto piu performante di un programma scritto in C++, ad esempio perché rimanda la deallocazione della memoria dinamica a momenti di maggiore disponibilitá di risorse di calcolo.



Appena ho un po' di tempo inoltre mi piacerebbe dare un'occhiata a Go, il linguaggio di programmazione di Google. e a me?



In pratica sta dicendo che Microsoft offre più sicurezza di Oracle :D non proprio visto che il post di PGI-Bis aveva senso mentre questa frase non ne ha.

WarDuck
21-02-2010, 18:17
[..]
non necessariamente: é stato mostrato che la programmazione orientata agli oggetti di per se' non produce vantaggi significativi in termini di produttivitá rispetto alla programmazione procedurale.


Ho forti dubbi su questo.


io non stavo affatto parlando di programmazione orientata agli oggetti, stavo parlando solo di C++, che tra l'altro fornisce una sua peculiare interpretazione della programmazione orientata agli oggetti. il C++ permette di essere piu produttivi del C perché offre costrutti piu potenti che permettono di scrivere programmi piu significativi a paritá di numero di linee di codice.


Tutte le cose che potrebbero veramente facilitarmi la vita in C potrebbero essere implementate usando paradigmi object oriented, che di fatto rappresenta una delle caratteristiche fondamentali che fanno la differenza tra C e C++ (insieme ai template forse).


come ti ha spiegato marco.r, uno non é che "deve programmare OO"; uno deve risolvere un problema molto pratico che non ha nulla a che vedere con la programmazione orientata agli oggetti, e per farlo ha a disposizione un determinato insieme di strumenti tra cui forse anche linguaggi orientati agli oggetti.


Non ho mai detto il contrario.

Ho detto che preferisco C come linguaggio rispetto a C++.

Perché è più semplice, più "elementare" forse nei costrutti che offre (nonostante il suo essere di più basso livello).

E visto che di fatto una delle caratteristiche più rilevanti di C++ è il supportare la programmazione ad oggetti, ho fatto presente che in questo contesto esistono linguaggi più evoluti.


premettiamo che le questioni di performance non sono legate ai linguaggi di per se', che sono solo specifiche di sintassi, semantica e spesso librerie predefinite.


Anche qui non ho mai detto il contrario, pensavo fosse ovvio che mi riferissi alle implementazioni.


detto questo esistono alcuni linguaggi che favoriscono la performance e per i quali esistono implementazioni intrinsecamente piu performanti; per esempio la specifica del linguaggio Java impone la semantica del bound checking sugli array e questo causa necessariamente una perdita di performance che invece non caratterizza linguaggi non gestiti come C e C++.

ció posto le performances finali dei programmi risultanti dalla compilazione di questi linguaggi sono in generale una questione piu complessa di come la fai tu e le tue affermazioni non sono valide nel caso generale. nel caso generale un programma Java puó essere molto piu performante di un programma scritto in C++, ad esempio perché rimanda la deallocazione della memoria dinamica a momenti di maggiore disponibilitá di risorse di calcolo.


E' ovvio che se dovessimo stare qui a snocciolare per filo e per segno tutti i vari aspetti prestazionali, a partire dal processo di compilazione fino all'esecuzione a runtime non la finiremmo più.

Tuttavia ogni qualvolta mi sono trovato davanti ad un programma Java, magari con relativa GUI, mi ha sempre dato l'impressione di non essere granché reattivo (quantomeno sotto Windows).

Magari mi ha detto sfiga...


e a me?


:ciapet:


non proprio visto che il post di PGI-Bis aveva senso mentre questa frase non ne ha.

Rileggi bene il suo post allora :) .

fero86
21-02-2010, 19:44
Ho forti dubbi su questo. ti linko il documento che descrive lo studio a cui mi riferivo, c'é l'ho tra i preferiti perché é bellissimo :asd:
http://www.csm.ornl.gov/~v8q/Homepage/Papers%20Old/spetep-%20printable.pdf



Tutte le cose che potrebbero veramente facilitarmi la vita in C potrebbero essere implementate usando paradigmi object oriented, a quali cose ti riferisci?



Non ho mai detto il contrario. hai detto:
Tuttavia se devo programmare OO forse è il caso di pensare a linguaggi più evoluti tipo Java o C#. ma, a meno che tu non stia lavorando per un esame, non ti si presenterá mai la necessitá stretta di fare programmazione orientata agli oggetti, nessuno viene a pagarti per chiederti di scrivere un programma qualunque che peró sia orientato agli oggetti. i clienti ti pagano per avere un programma che esegue determinati compiti, e questo per te é un problema che puoi risolvere con un determinato insieme di strumenti tra cui forse anche linguaggi orientati agli oggetti.



Ho detto che preferisco C come linguaggio rispetto a C++. la tua preferenza non ha senso perché grossomodo il C++ non toglie nulla al C, ma piuttosto aggiunge costrutti utili che ti aiutano ad accorciare il codice, a volte di molto.



(nonostante il suo essere di più basso livello). il C non é di piu basso livello del C++: anche in C++ puoi lavorare su ogni singolo byte di memoria accessibile, provocare buffer overflow, accedere alle API dei sistemi operativi odierni, ecc.



E visto che di fatto una delle caratteristiche più rilevanti di C++ è il supportare la programmazione ad oggetti, ho fatto presente che in questo contesto esistono linguaggi più evoluti. non lo nego, e per tutta risposta faccio presente che non sempre sono delle alternative.



Anche qui non ho mai detto il contrario, pensavo fosse ovvio che mi riferissi alle implementazioni. non pensarlo su un forum come questo perché gente come cdimauro é in grado di flammare per giorni su "piccolezze" del genere.



E' ovvio che se dovessimo stare qui a snocciolare per filo e per segno tutti i vari aspetti prestazionali, a partire dal processo di compilazione fino all'esecuzione a runtime non la finiremmo più. d'altra parte non possiamo neanche stare a scrivere le cazzate indimostrabili che senti in corridoio: qualche principiante inesperto potrebbe berle.



Rileggi bene il suo post allora :) . che dire, a me continua a sembrare sensatissimo.

Tommo
22-02-2010, 01:04
C++ serve quando serve un linguaggio di alto livello che sia anche veloce.

Farà schifo quanto vi pare, ha una tonnellata di bugs, ma ha un qualsiasi senso valutare la produttività a livello assoluto?
Io per esempio ormai lo uso da anni e faccio molto più e meglio con C++ che con altro.

Inoltre, valutare il "linguaggio" non ha alcun senso, andrebbero valutate anche le librerie... e il C++ è molto gettonato ad alti livelli perchè ha librerie "coi controcazzi" per circa tutto quello che può essere programmato :D

Poi certo, per lavoro sicuramente il più usato è Java.
Ma credo che non siano posti di lavoro qualificati quanto quei pochi C++, proprio no.
Infatti quel sondaggio TIOBE a pensarci bene è ben stupido, sarebbe come dire che il miglior mestiere è l'operaio perchè lo fanno tutti e gli altri sono inutili perchè ce ne sono pochi :doh:

PS&OT: nonostante questo C++ è veramente una brutta bestia per il threading avanzato... c'è qualche linguaggio che offra un parallelismo task-based di fabbrica?
In C++ per quanto mi impegno viene brutto lento e poco flessibile.

fero86
22-02-2010, 18:18
Farà schifo quanto vi pare, ha una tonnellata di bugs, bugs? in un linguaggio? :mbe:
semmai in un solo specifico compilatore, ma a me non sembra di vederne da decenni... l'ultima volta che mi é crashato il compilatore Microsoft é stato quando usavo Visual C++ 6, fine anni '90.



ma ha un qualsiasi senso valutare la produttività a livello assoluto?
Io per esempio ormai lo uso da anni e faccio molto più e meglio con C++ che con altro. questo discorso mi piace molto :)
(non ironico)



Inoltre, valutare il "linguaggio" non ha alcun senso, andrebbero valutate anche le librerie... e il C++ è molto gettonato ad alti livelli perchè ha librerie "coi controcazzi" per circa tutto quello che può essere programmato :D si per se' non é che abbia granché, le librerie a cui ti riferisci sono perlopiu di terze parti. il fatto é che il C++ non ha una piattaforma, al contrario di Java e dei linguaggi .NET, perché é fatto per altri scopi: é fatto per stare al di sopra di altre piattaforme, come Win32/COM.



Infatti quel sondaggio TIOBE a pensarci bene è ben stupido, sarebbe come dire che il miglior mestiere è l'operaio perchè lo fanno tutti e gli altri sono inutili perchè ce ne sono pochi :doh: veramente TIOBE non mi sembra dire questo: mi sembrano molto chiari nel loro operato, loro creano semplicemente la statistica dei linguaggi di cui si parla di piu nel web, che poi non é detto che siano i migliori ma presumibilmente sono i piu usati.

WarDuck
22-02-2010, 21:37
ti linko il documento che descrive lo studio a cui mi riferivo, c'é l'ho tra i preferiti perché é bellissimo :asd:
http://www.csm.ornl.gov/~v8q/Homepage/Papers%20Old/spetep-%20printable.pdf


Rispondo solo ora che sono stato un po' impicciato oggi...

Appena ho del tempo lo leggerò, ad ogni modo ci sarebbe ancora da chiedersi allora come mai il paradigma OO ha preso piede rapidamente.

In realtà mi sembra evidente che il suo avvicinarsi più all'utente che alla macchina possa rendere liberi di concentrarsi sul problema piuttosto che sulla pura implementazione.


a quali cose ti riferisci?


Tanto per incominciare le collections, l'accesso ai files e ai vari stream di I/O... poter creare nuovi tipi e controllarne l'accesso, la possibilità di poter usare ereditarietà e polimorfismo che in alcuni casi sono una manna dal cielo.

Magari anche per implementare un certo tipo di type safety (ma questo credo si possa fare anche senza costrutti OO).

Ogni volta che leggo cose tipo 1+true = 2 inorridisco.


hai detto:
ma, a meno che tu non stia lavorando per un esame, non ti si presenterá mai la necessitá stretta di fare programmazione orientata agli oggetti, nessuno viene a pagarti per chiederti di scrivere un programma qualunque che peró sia orientato agli oggetti. i clienti ti pagano per avere un programma che esegue determinati compiti, e questo per te é un problema che puoi risolvere con un determinato insieme di strumenti tra cui forse anche linguaggi orientati agli oggetti.


Infatti ho detto "SE devo programmare OO", nel senso "SE ho bisogno di programmare usando il paradigma OO".

C'è un SE davanti, non ho mai detto che DEVO farlo per forza.


la tua preferenza non ha senso perché grossomodo il C++ non toglie nulla al C, ma piuttosto aggiunge costrutti utili che ti aiutano ad accorciare il codice, a volte di molto.


Adesso sono io che lo chiedo a te: tipo (OO escluso, quindi anche cose derivanti da esso)?

Ed in ogni caso è il come lo fa il problema.


il C non é di piu basso livello del C++: anche in C++ puoi lavorare su ogni singolo byte di memoria accessibile, provocare buffer overflow, accedere alle API dei sistemi operativi odierni, ecc.


Si qui hai ragione mi sono spiegato male io.

Intendo dire che C++ offre dei costrutti più complicati, di più alto livello, rispetto a C.


non pensarlo su un forum come questo perché gente come cdimauro é in grado di flammare per giorni su "piccolezze" del genere.


Io invece credo che a volte ci si sforzi di NON voler capire, o si faccia finta, non si sa bene per quale motivo, forse per deformazione professionale.


d'altra parte non possiamo neanche stare a scrivere le cazzate indimostrabili che senti in corridoio: qualche principiante inesperto potrebbe berle.


Se per questo tu hai solo citato un aspetto, che è quello della deallocazione di memoria fatta dal garbage collector, che di fatto E' SOLO UN ASPETTO.

Cmq tralasciando l'aspetto prestazionale, che non è oggetto né del topic né della mia considerazione iniziale, quello che voglio dire è che mi piacerebbe poter disporre di un linguaggio basato su C ma rivisto con una sintassi possibilmente lontana anni luce da quella che il C++ usa per implementare l'OO, in tal senso esprimevo la mia curiosità su Go.

Tommo
23-02-2010, 00:02
*cut*

Come "bugs" intendo parti contrastanti, imprecise, indefinite nella specifica e nei maggiori compilatori cioè MSVC e g++...
e di quelle ce ne sono un fottio se vai a mettere il naso dove il C++ non dovrebbe.

Che so, template + funzioni virtuali? Multiple inheritance? Singleton usate da una DLL? Reflection? 1+true?
Le menate che il C++ ti tira addosso sono tantissime, inutile nasconderlo.
E dopo aver tentato per parecchio di abbatterle sono giunto alla conclusione che è meglio lasciar stare il can che dorme :asd:

PS: se le librerie sono di terze parti non m'importa, tantissime sono gratis e tantissime fanno cose che in altri linguaggi dovresti fare meno efficientemente nel caso migliore, e rifarle da 0 in quello peggiore.
Basta dare un occhiata al campo dei giochi, XNA su Xbox sta stretto pure agli indie.

PPS @warduck: non mi viene proprio in mente una possibile applicazione moderna che possa davvero essere realizzata con paradigma imperativo... quindi il SE si può benissimo togliere per quanto riguarda dei progetti reali.

carlito9987
23-02-2010, 10:20
Ciao a tutti, lavoro da ormai 3 anni nel mondo dell'informatica e posso dirvi che, a mio parere non c'è un linguaggio in assoluto più utilizzato.
Sicuramente conoscere bene C è un gran vantaggio, dato che in molte aziende unix è pane quotidiano!

Tuttavia non possiamo dire di certo che è il più utilizzato, personalmente ora nella mia azienda vedo molte richieste su .NET e java. Conoscere però dei linguaggi di programmazione non è sicuramente la cosa migliore, siamo nell'era della Business Intelligence.... conoscere Business Objects, SAP o anche i vari CRM ti facilita sicuramente la ricerca del lavoro!

Ovviamente tengo a precisare che questo è solo un mio parere.... Buona giornata a tutti!

fero86
23-02-2010, 22:30
Appena ho del tempo lo leggerò, ad ogni modo ci sarebbe ancora da chiedersi allora come mai il paradigma OO ha preso piede rapidamente. che c'entra, anche quello procedurale ha preso piede rapidamente :Prrr:



In realtà mi sembra evidente che il suo avvicinarsi più all'utente che alla macchina opinabilissimo: l'utente é una cosa completamente ignota e misteriosa.



possa rendere liberi di concentrarsi sul problema piuttosto che sulla pura implementazione. questa non é neanche lontanamente una caratteristica intrinseca della programmazione orientata agli oggetti. un linguaggio procedurale puó essere di altissimo livello ed astrarre completamente da puntatori, allocazioni dinamiche di memoria e tutto quello che di implementativo ti possa venire in mente. anche JavaScript, per dire, puó essere usato in maniera procedurale.



Infatti ho detto "SE devo programmare OO", nel senso "SE ho bisogno di programmare usando il paradigma OO".

C'è un SE davanti, non ho mai detto che DEVO farlo per forza. c'é una differenza tra il non doverlo fare per forza e il non doverlo fare mai...



Adesso sono io che lo chiedo a te: tipo (OO escluso, quindi anche cose derivanti da esso)? perché escludi la programmazione orientata agli oggetti? il mio discorso non la esclude.
per il resto potremmo metterci i templates e i tipi reference, specialmente i primi. volendo, in un certo senso, potremmo metterci anche i namespaces. con l'ultima revisione poi ovviamente ci mettiamo anche le espressioni lambda, che accorciano tantissimo. altro non mi viene in mente; ci sarebbe il foreach ma la Microsoft non l'ha (ancora?) implementato, forse perché neanche serve considerando la funzione for_each e le lambda expressions.



Ed in ogni caso è il come lo fa il problema. giusto, infatti anche Visual Basic 6 se é per questo introduceva la programmazione a oggetti. qualche argomentazione utile a riguardo?



Io invece credo che a volte ci si sforzi di NON voler capire, o si faccia finta, non si sa bene per quale motivo, forse per deformazione professionale. sacrosanta deformazione professionale. le persone vanno trattate come computers: vanno fatte funzionare, altrimenti sono inutili.



Se per questo tu hai solo citato un aspetto, che è quello della deallocazione di memoria fatta dal garbage collector, che di fatto E' SOLO UN ASPETTO. e infatti l'ho citato solo a titolo esemplificativo, e non c'é bisogno di gridare :ciapet:



Cmq tralasciando l'aspetto prestazionale, che non è oggetto né del topic né della mia considerazione iniziale, quello che voglio dire è che mi piacerebbe poter disporre di un linguaggio basato su C ma rivisto con una sintassi possibilmente lontana anni luce da quella che il C++ usa per implementare l'OO, in tal senso esprimevo la mia curiosità su Go. se vuoi c'é anche l'Objective C... vedi tu se conveniva allontanarsi anni luce dalla sintassi del C++ :asd:

Gold
24-02-2010, 19:46
mah mi sa che in italia l'altra metà del cielo diventa 1/4, la situazione di java sul mercato italiano non penso cambierà di molto considerando la staticità delle aziende nostrane,io lavoro per una grossa banca italiana( forse la più grossa mi dicono ) e ora stanno passando da cobol a java, usare java 1.4 è già un lusso,e così è per tutto il panorama bancario, poi in altri campi non so, ma quì mi sa che java avrà vita lunga, molto lunga

Ehi khelidan, non e' che questa grossa banca ha a che far con la nazione ed il lavoro?

Mi sembra d'averla gia' vista uesta situazione...

Saluto

WarDuck
24-02-2010, 21:54
che c'entra, anche quello procedurale ha preso piede rapidamente :Prrr:


Come che c'entra, c'entra perché ognuno di questi paradigmi ha migliorato il modo di intendere la programmazione rispetto al momento in cui è stata introdotta, facilitando il compito soprattutto al programmatore.

Altrimenti staremmo ancora a programmare con 0 e 1.


opinabilissimo: l'utente é una cosa completamente ignota e misteriosa.



questa non é neanche lontanamente una caratteristica intrinseca della programmazione orientata agli oggetti. un linguaggio procedurale puó essere di altissimo livello ed astrarre completamente da puntatori, allocazioni dinamiche di memoria e tutto quello che di implementativo ti possa venire in mente. anche JavaScript, per dire, puó essere usato in maniera procedurale.


Non ci vedo nulla di opinabile sul fatto che la programmazione orientata agli oggetti aiuti a descrivere meglio molte tipologie di problemi reali.

Cmq si hai ragione sul fatto che si possano usare linguaggi procedurali di alto livello.


perché escludi la programmazione orientata agli oggetti? il mio discorso non la esclude.


Perché ti avevo appena finito di dire che mi fa cacare la sua sintassi per gestire l'OO :asd:

Ed è di fatto la cosa che giustifica maggiormente il passaggio da C a C++, nonostante:


per il resto potremmo metterci i templates e i tipi reference, specialmente i primi. volendo, in un certo senso, potremmo metterci anche i namespaces. con l'ultima revisione poi ovviamente ci mettiamo anche le espressioni lambda, che accorciano tantissimo. altro non mi viene in mente; ci sarebbe il foreach ma la Microsoft non l'ha (ancora?) implementato, forse perché neanche serve considerando la funzione for_each e le lambda expressions.


Sui template sono ovviamente d'accordo, del resto già l'avevo detto io.

Metti queste cose al C, poi... era tanto difficile non fare una sintassi così schifosa per le classi? :asd:


giusto, infatti anche Visual Basic 6 se é per questo introduceva la programmazione a oggetti. qualche argomentazione utile a riguardo?


Non ho mai programmato in Visual Basic 6, ho provato col .NET, ma devo dire che non mi piace molto il linguaggio.


sacrosanta deformazione professionale. le persone vanno trattate come computers: vanno fatte funzionare, altrimenti sono inutili.


Le persone NON sono computer. Le persone dovrebbero avere l'intelligenza di capire di cosa si sta parlando anche senza dovergli specificare tutto per filo e per segno.

Soprattutto su un forum pubblico, per quanto di nicchia possa essere questa sezione è accessibile al pubblico, non dovrebbe essere vista solo come un circolo privato destinata a pochi eletti.


se vuoi c'é anche l'Objective C... vedi tu se conveniva allontanarsi anni luce dalla sintassi del C++ :asd:

No grazie :asd: .

cdimauro
25-02-2010, 08:29
Appena ho un po' di tempo inoltre mi piacerebbe dare un'occhiata a Go, il linguaggio di programmazione di Google.
Ne approfitto per fare un po' di spam (http://www.appuntidigitali.it/4998/ce-posto-per-google-go-prime-impressioni-sul-nuovo-linguaggio-di-bigg/). :fagiano:
non necessariamente: é stato mostrato che la programmazione orientata agli oggetti di per se' non produce vantaggi significativi in termini di produttivitá rispetto alla programmazione procedurale.

io non stavo affatto parlando di programmazione orientata agli oggetti, stavo parlando solo di C++, che tra l'altro fornisce una sua peculiare interpretazione della programmazione orientata agli oggetti. il C++ permette di essere piu produttivi del C perché offre costrutti piu potenti che permettono di scrivere programmi piu significativi a paritá di numero di linee di codice.
Se i vantaggi della programmazione a oggetti vengono meno, tolte le classi al C++ non rimane molto di significativo. E l'uso delle macro del C potrebbe sopperire a un altro utile strumento: i template.
premettiamo che le questioni di performance non sono legate ai linguaggi di per se', che sono solo specifiche di sintassi, semantica e spesso librerie predefinite.
:eek: :sofico:
detto questo esistono alcuni linguaggi che favoriscono la performance e per i quali esistono implementazioni intrinsecamente piu performanti; per esempio la specifica del linguaggio Java impone la semantica del bound checking sugli array e questo causa necessariamente una perdita di performance che invece non caratterizza linguaggi non gestiti come C e C++.
Non necessariamente. Non dimentichiamoci che Java ha un compilatore JIT che ottimizza il codice a runtime, e può modificare il compilato in base alle informazioni raccolte dal profiler. Ad esempio rimuovendo il controllo sugli indici degli array se si accorge che l'accesso è "safe".
E' ovvio che se dovessimo stare qui a snocciolare per filo e per segno tutti i vari aspetti prestazionali, a partire dal processo di compilazione fino all'esecuzione a runtime non la finiremmo più.

Tuttavia ogni qualvolta mi sono trovato davanti ad un programma Java, magari con relativa GUI, mi ha sempre dato l'impressione di non essere granché reattivo (quantomeno sotto Windows).

Magari mi ha detto sfiga...
Questo non depone a sfavore di Java, ma della libreria che viene utilizzata per implementare le GUI.

Java, con JNI, può benissimo accedere alle API native per le GUI esposte dal s.o. su cui gira.

Sarebbe interessante vedere all'opera una GUI realizzata in Java, ma con le API Win32. ;)
ti linko il documento che descrive lo studio a cui mi riferivo, c'é l'ho tra i preferiti perché é bellissimo :asd:
http://www.csm.ornl.gov/~v8q/Homepage/Papers%20Old/spetep-%20printable.pdf
Non mi sembra uno studio generale. Magari per quei progetti ha dato maggior frutti la programmazione procedurale, ma questo non dimostra che è sempre preferibile a quella a oggetti.

In realtà non potrà mai esserci nessuna dimostrazione formale della maggior produttività di un paradigma rispetto a un altro.

Poi ci sarebbe da tener conto della varietà di implementazioni possibili.
non pensarlo su un forum come questo perché gente come cdimauro é in grado di flammare per giorni su "piccolezze" del genere.
Purtroppo capita di avere a che fare con utenti testardi, che proprio per il fatto di discutere di piccolezze la tirano per le lunghe, quando basterebbe fermarsi alle definizioni (presentate). :O

Fortunatamente noto che le lezioni servono, visto che adesso vedo parlare correttamente di linguaggi in termini di sintassi e semantica. :cool:
C++ serve quando serve un linguaggio di alto livello che sia anche veloce.

Farà schifo quanto vi pare, ha una tonnellata di bugs, ma ha un qualsiasi senso valutare la produttività a livello assoluto?
Io per esempio ormai lo uso da anni e faccio molto più e meglio con C++ che con altro.
E non è un giudizio "assoluto" anche questo? :D
Inoltre, valutare il "linguaggio" non ha alcun senso, andrebbero valutate anche le librerie... e il C++ è molto gettonato ad alti livelli perchè ha librerie "coi controcazzi" per circa tutto quello che può essere programmato :D
Puoi avere tutte le librerie che vuoi (e devi anche conoscerle, e averle a disposizione, tra l'altro), ma certe cose si fanno più velocemente con altri linguaggi. :cool:
PS&OT: nonostante questo C++ è veramente una brutta bestia per il threading avanzato... c'è qualche linguaggio che offra un parallelismo task-based di fabbrica?

In C++ per quanto mi impegno viene brutto lento e poco flessibile.
Ma come, non c'erano librerie "coi controzzi" per tutto? :Perfido: :p
Ogni volta che leggo cose tipo 1+true = 2 inorridisco.
In Python puoi farlo. :D Il tipo bool discende direttamente da int. :fagiano:

Ed è una cosa che non apprezzo, perché avrei preferito un tipo a sé stante, come in Pascal, e la relative bacchettate sulle mani mischiandoli con altri tipi.

Il problema è che Python non ha mai avuto un tipo booleano, perché non ne ha mai avuto bisogno (esistono piuttosto espressioni che possono essere logicamente "vere" o "false").

Per tradizione, molti programmatori hanno definito due variabili allo scopo (true/True/TRUE e false/False/FALSE) assegnando loro i valori 1 e 0 rispettivamente.

Così, diversi anni dopo, sono stati introdotti i simboli (con Python 3.x sono diventate keyword) True e False negli oggetti built-in standard, facendoli discendere da int in modo da preservare la compatibilità con le applicazioni già esistenti.
questa non é neanche lontanamente una caratteristica intrinseca della programmazione orientata agli oggetti. un linguaggio procedurale puó essere di altissimo livello ed astrarre completamente da puntatori, allocazioni dinamiche di memoria e tutto quello che di implementativo ti possa venire in mente. anche JavaScript, per dire, puó essere usato in maniera procedurale.
Io direi piuttosto che Javascript può essere usato in maniera a oggetti. :asd:
se vuoi c'é anche l'Objective C... vedi tu se conveniva allontanarsi anni luce dalla sintassi del C++ :asd:
Che c'entra. L'Objective-C mica ha abbandonato la sintassi del C. Ha "semplicemente" aggiunto le classi. :asd:
Metti queste cose al C, poi... era tanto difficile non fare una sintassi così schifosa per le classi? :asd:
Ringrazia Stroustrup e dai un'occhiata a Objective-C e Perl. :asd:

fero86
27-02-2010, 11:25
Come che c'entra, c'entra perché ognuno di questi paradigmi ha migliorato il modo di intendere la programmazione rispetto al momento in cui è stata introdotta, facilitando il compito soprattutto al programmatore.

Altrimenti staremmo ancora a programmare con 0 e 1. ma se fosse una questione di tempo adesso dovremmo programmare usando solamente il paradigma funzionale (che sta prendendo piede), mentre invece se si programma in F# lo si usa congiuntamente a quello a oggetti.



Non ci vedo nulla di opinabile sul fatto che la programmazione orientata agli oggetti aiuti a descrivere meglio molte tipologie di problemi reali. io si visto che é una affermazione soggettiva ("molte") e che non si puó dimostrare formalmente nel caso generale.



Perché ti avevo appena finito di dire che mi fa cacare la sua sintassi per gestire l'OO :asd: in tal caso quando dici di preferire il C al C++ solo per una religiosa questione di gusti (poco sensata poi visto che come aspetto le sintassi dei due linguaggi si somigliano) specificalo subito che si evita di perdere tempo a discutere con uno che fa dell'informatica una questione di gusti. o magari, sapendolo prima, ti rispondo che per una pura questione di gusti a me piace un casino il Brainfuck.



Ed è di fatto la cosa che giustifica maggiormente il passaggio da C a C++, nonostante: non per me.



Metti queste cose al C, poi... era tanto difficile non fare una sintassi così schifosa per le classi? :asd: de gustibus non disputandum est: per me quella sintassi rulla un casino, e allora? :O
e comunque io non userei l'aspetto "estetico" della sintassi di un linguaggio come motivazione per non usarlo.



Non ho mai programmato in Visual Basic 6, ho provato col .NET, ma devo dire che non mi piace molto il linguaggio. mi sono espresso col culo :asd:
riformulo meglio: giusto, infatti per esempio anche Visual Basic 6 diceva di essere un linguaggio a oggetti, ma naturalmente oggi ci viene da ridere.
quindi, visto che come dici tu c'é modo e modo di aggiungere costrutti ad un linguaggio, hai qualche argomentazione utile riguardo il modo in cui lo fa il C++ (nei confronti del C ovviamente)? sottintendevi forse qualche aspetto negativo di qualche costrutto del C++?
tralasciando peró l'aspetto estetico della sintassi per favore (vedi sopra).



Le persone NON sono computer. Le persone dovrebbero avere l'intelligenza di capire di cosa si sta parlando anche senza dovergli specificare tutto per filo e per segno. dallo per scontato e non otterrai mai niente di buono dall'altro. se non "specifichi tutto per filo e per segno", cioé se non dai all'altro specifiche ben precise, l'altro (oltre a lamentarsi della carenza di specifiche, magari pure a posteriori) potrebbe interpretare fantasiosamente.



Soprattutto su un forum pubblico, per quanto di nicchia possa essere questa sezione è accessibile al pubblico, non dovrebbe essere vista solo come un circolo privato destinata a pochi eletti. :mbe:
non vedo alcun nesso con le frasi precedenti...



No grazie :asd: . non ti si capisce molto, lo sai? adesso non ti piace l'Objective C? e allora perché ti lamenti del C++? sono due linguaggi diversi che con due sintassi diverse aggiungono la programmazione a oggetti al C, e non te ne va bene nemmeno uno. peró dici che non era per niente difficile fare una sintassi che invece ti aggradasse esteticamente. a me sembri un incontentabile, e chi scrive le specifiche di un linguaggio non puó certo stare appresso ai tuoi capricci.



Se i vantaggi della programmazione a oggetti vengono meno, tolte le classi al C++ non rimane molto di significativo. E l'uso delle macro del C potrebbe sopperire a un altro utile strumento: i template. restano i tipi reference e le lambda expressions. i tipi reference accorciano il codice perché i riferimenti sono sempre validi (non sono mai nulli o "dangling") e quindi non devi fare controlli, e i vantaggi delle lambda expressions mi sembrano evidenti.



Non necessariamente. Non dimentichiamoci che Java ha un compilatore JIT che ottimizza il codice a runtime, rettifica: una sua particolare implementazione ce l'ha :asd:



e può modificare il compilato in base alle informazioni raccolte dal profiler. Ad esempio rimuovendo il controllo sugli indici degli array se si accorge che l'accesso è "safe". evitiamo di inventarci altre chimere, lo fa o non lo fa? io non lo so.
se non lo fa evitiamo di parlarne in astratto perché la fattibilitá di un software non é mai garantita al 100% finché quel software non lo sviluppi e non finisci effettivamente nei vicoli ciechi in cui ti porta.



Questo non depone a sfavore di Java, ma della libreria che viene utilizzata per implementare le GUI. e che ne sai che nei programmi usati da WarDuck la performance penalty era causata dalla GUI? hai fatto il profiling di tutti quanti?



Sarebbe interessante vedere all'opera una GUI realizzata in Java, ma con le API Win32. ;) AWT su Windows usa quelle.



Non mi sembra uno studio generale. Magari per quei progetti ha dato maggior frutti la programmazione procedurale, ma questo non dimostra che è sempre preferibile a quella a oggetti. certo, peró costituisce un controesempio per l'affermazione inversa: la programmazione a oggetti non é sempre preferibile a quella procedurale (che é quello che volevo dire inizialmente a WarDuck).



Fortunatamente noto che le lezioni servono, visto che adesso vedo parlare correttamente di linguaggi in termini di sintassi e semantica. :cool: per inciso, non mi rimangio nulla di quello che ho scritto quella volta: sono ancora dell'idea che, vista la situazione attuale, non sia affatto possibile programmare drivers per Windows in C++.



Che c'entra. L'Objective-C mica ha abbandonato la sintassi del C. Ha "semplicemente" aggiunto le classi. :asd: non ho capito :mbe:
neanche il C++ l'ha abbandonata.

WarDuck
27-02-2010, 12:30
Sono in un forum pubblico non per lavorare o per fare l'analisi dei requisiti, ma per svago, e non ho intenzione di parlare per mezzo di specifiche formali o sintassi matematica per descrivere i miei gusti.

Mi fa cacare la sintassi di Objective-C e C++, si hai ben detto, nessuno deve stare appresso ai miei gusti semplicemente perché non pretendo che gli altri debbano pensarla come me o tantomeno modificare il loro comportamento sulla base di questo.

Poi secondo quale teorema il fatto che mi faccia schifo C++ implica che mi debba piacere Objective-C?

D'altronde se a tutti fossero piaciuti i linguaggi di cui parliamo probabilmente non ci sarebbe stato motivo di crearne degli altri.

Per la maggior parte dei linguaggi di cui stiamo parlando, la differenza non risiede nella classe di problemi che possono risolvere (che è la stessa), ma è il come lo fanno che li rende diversi, la sintassi che usano per farlo (con dei pro e dei contro naturalmente).

Quindi è normale che nel momento che debba scegliere qual è il linguaggio più adatto a risolvere un determinato problema sceglierò quello che mi consente di farlo agevolmente (ergo la cui sintassi mi consenta di farlo in maniera decente e perché no, piacevole alla vista).

Direi di chiuderla qui, prometto che mi impegnerò per farmi piacere C++.

cdimauro
28-02-2010, 06:04
restano i tipi reference e le lambda expressions. i tipi reference accorciano il codice perché i riferimenti sono sempre validi (non sono mai nulli o "dangling") e quindi non devi fare controlli,
Poca roba. Puoi anche evitare di far controlli se sei "sicuro" che non verrà mai passato un puntatore nullo.
e i vantaggi delle lambda expressions mi sembrano evidenti.
Non fanno ancora parte del linguaggio, mi pare.
rettifica: una sua particolare implementazione ce l'ha :asd:
Era quel che pensava anche MS quando ha realizzato la sua implementazione di Java. Poi Sun ha deciso di farle causa, l'ha pure vinta, e MS ha dovuto far marcia indietro. :fagiano:

A parte questo, mi pare evidente dal contesto che si parlasse di implementazioni. Riporto una parte eloquente del tuo precedente messaggio:

premettiamo che le questioni di performance non sono legate ai linguaggi di per se', che sono solo specifiche di sintassi, semantica e spesso librerie predefinite.

detto questo esistono alcuni linguaggi che favoriscono la performance e per i quali esistono implementazioni intrinsecamente piu performanti; per esempio la specifica del linguaggio Java impone la semantica del bound checking sugli array e questo causa necessariamente una perdita di performance che invece non caratterizza linguaggi non gestiti come C e C++.

Il contesto mi sembra chiaro (ne ho evidenziato una parte), e la mia risposta pure, visto che esistono implementazioni di Java in cui il bound checking può e viene tranquillamente eliminato, nonostante la semantica del linguaggio la preveda. ;)
evitiamo di inventarci altre chimere, lo fa o non lo fa? io non lo so.
se non lo fa evitiamo di parlarne in astratto perché la fattibilitá di un software non é mai garantita al 100% finché quel software non lo sviluppi e non finisci effettivamente nei vicoli ciechi in cui ti porta.
La fonte è un po' vecchia (è ferma alla versione 1.3 di Java), ma trovi qualcosa qui (http://java.sun.com/products/hotspot/docs/whitepaper/Java_HotSpot_WP_Final_4_30_01.html), e ne riporto alcune parti salienti:

Java HotSpot Server VM Optimizations
Range check elimination -- The Java programming language specification requires array bounds checking to be performed with each array access. An index bounds check can be eliminated when the compiler can prove that an index used for an array access is within bounds.
[...]
Java HotSpot Server Compiler
[...]The optimizer performs all the classic optimizations, including dead code elimination, loop invariant hoisting, common subexpression elimination, and constant propagation. It also features optimizations more specific to Java technology, such as null-check and range-check elimination.

Un paper molto interessante sull'argomento lo trovi qui (http://www.cs.umd.edu/~vibha/330/array-bounds.pdf).

Ovviamente in 10 anni HotSpot è stato enormemente migliorato, e oggi Java (nella sua migliore incarnazione) ha prestazioni comparabili a quelle del C (http://shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=java&lang2=gcc).
e che ne sai che nei programmi usati da WarDuck la performance penalty era causata dalla GUI? hai fatto il profiling di tutti quanti?

AWT su Windows usa quelle.
AWT è quella cosa per cui se devi scrivere un semplice "Hello, world!" ti carica 600 classi (800 con SWT, se non ricordo male). Per cui il suo peso sulla reattività ce l'ha.

Su Windows io non dicevo di usare AWT, ma di sfruttare le API Win32 come fanno altri programmi, se vogliamo che l'unica variabile da confrontare rimanga il linguaggio.
certo, peró costituisce un controesempio per l'affermazione inversa: la programmazione a oggetti non é sempre preferibile a quella procedurale (che é quello che volevo dire inizialmente a WarDuck).
Non posso che concordare. Come uso ripetete spesso, la pietra filosofale nell'informatica non è stata ancora inventata. :p
per inciso, non mi rimangio nulla di quello che ho scritto quella volta: sono ancora dell'idea che, vista la situazione attuale, non sia affatto possibile programmare drivers per Windows in C++.
Di questo ne abbiamo già ampiamente discusso, e non voglio riaprire il flame (anche perché ognuno è rimasto con le proprie idee: sarebbe tempo perso).

Per me è sufficiente che sia ben chiaro il concetto di linguaggio -> sintassi & semantica.
non ho capito :mbe:
neanche il C++ l'ha abbandonata.
Niente, volevo solo far notare che, pur avendo una base comune (il C, e la sua sintassi) C++ e Objective-C hanno preso strade completamente diverse per quanto riguarda la programmazione a oggetti.

Battuta infelice, a questo punto. :stordita:
Sono in un forum pubblico non per lavorare o per fare l'analisi dei requisiti, ma per svago, e non ho intenzione di parlare per mezzo di specifiche formali o sintassi matematica per descrivere i miei gusti.

Mi fa cacare la sintassi di Objective-C e C++, si hai ben detto, nessuno deve stare appresso ai miei gusti semplicemente perché non pretendo che gli altri debbano pensarla come me o tantomeno modificare il loro comportamento sulla base di questo.

Poi secondo quale teorema il fatto che mi faccia schifo C++ implica che mi debba piacere Objective-C?

D'altronde se a tutti fossero piaciuti i linguaggi di cui parliamo probabilmente non ci sarebbe stato motivo di crearne degli altri.

Per la maggior parte dei linguaggi di cui stiamo parlando, la differenza non risiede nella classe di problemi che possono risolvere (che è la stessa), ma è il come lo fanno che li rende diversi, la sintassi che usano per farlo (con dei pro e dei contro naturalmente).

Quindi è normale che nel momento che debba scegliere qual è il linguaggio più adatto a risolvere un determinato problema sceglierò quello che mi consente di farlo agevolmente (ergo la cui sintassi mi consenta di farlo in maniera decente e perché no, piacevole alla vista).

Direi di chiuderla qui, prometto che mi impegnerò per farmi piacere C++.
Qui concordo: anche per me la sintassi fa la sua parte.

Se prendiamo Perl, chi nega che si possa programmare a oggetti? Ma provate a farlo, e poi ne riparliamo. :asd:

A me la sintassi del C++ non piace, e dopo diversi anni non credo che ci siano ancora margini per farmela piacere. Non mi va, punto e basta.

cionci
28-02-2010, 06:15
Ovviamente in 10 anni HotSpot è stato enormemente migliorato, e oggi Java (nella sua migliore incarnazione) ha prestazioni comparabili a quelle del C (http://shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=java&lang2=gcc).
Certo...se fanno implementazioni in C come queste :read:
http://shootout.alioth.debian.org/u64/program.php?test=chameneosredux&lang=gcc&id=5
enum color_t color_complement(enum color_t c1, enum color_t c2)
{
switch (c1)
{
case color_blue:
switch (c2)
{
case color_blue: return color_blue;
case color_red: return color_yellow;
case color_yellow: return color_red;
}
case color_red:
switch (c2)
{
case color_blue: return color_yellow;
case color_red: return color_red;
case color_yellow: return color_blue;
}
case color_yellow:
switch (c2)
{
case color_blue: return color_red;
case color_red: return color_blue;
case color_yellow: return color_yellow;
}
}
assert(0);
return 0;
}

Cosa che si risolveva banalmente con una matrice 3x3.


PS: mi sono fermato al primo codice

cdimauro
28-02-2010, 06:57
Non che le versioni per gli altri linguaggi siano migliori, eh! ;)

Molti traducono l'algoritmo pari pari. :stordita:

cionci
28-02-2010, 07:00
Non che le versioni per gli altri linguaggi siano migliori, eh! ;)

Molti traducono l'algoritmo pari pari. :stordita:
Ok, ma quello è l'unico test dove Java ha vantaggio sul C ;) In pratica può dipendere molto dall'implementazione dello switch del compilatore, perché quello è forse il punto più dispendioso dell'intero algoritmo.

cdimauro
28-02-2010, 07:41
Sicuramente, ma se nel 2010 un compilatore non riesce a riconoscere uno switch per di più su un enum (che è un range limitato)... buttiamolo via. :p

PGI-Bis
28-02-2010, 10:44
Ok, ma quello è l'unico test dove Java ha vantaggio sul C ;) In pratica può dipendere molto dall'implementazione dello switch del compilatore, perché quello è forse il punto più dispendioso dell'intero algoritmo.

Prova a fare un po' di allocazione dinamica in C - anche se il confronto viene meglio con C++.

cionci
28-02-2010, 10:46
Prova a fare un po' di allocazione dinamica in C - anche se il confronto viene meglio con C++.
E a che serve lì ?

PGI-Bis
28-02-2010, 11:02
A confrontare un aspetto a volte trascurato della JVM cioè i suoi algoritmi di gestione della memoria. Che contano poco nelle applicazioni in un certo senso limitate al calcolo o poco più ma hanno una loro rilevanza in programmi più complessi.

Come è interessante sapere che una JVM sia 2, 3, 10 volte più lenta nel fare 1+1 rispetto ai compilatori C potrebbe essere interessante sapere che è un pelino più arzilla nell'allocare e liberare memoria.

DanieleC88
01-03-2010, 01:35
Questo non depone a suo favore :D (e FB soffre spesso di lentezza, a quanto dicono i miei amici che lo usano).
<very-ot>
Ormai non è nemmeno più in PHP... Facebook è passato al C++! :asd: http://developers.facebook.com/news.php?blog=1&story=358
</very-ot>

DanieleC88
01-03-2010, 02:00
tra l'altro adesso é uscita da poco la release candidate di Visual Studio 2010 che viene col nuovo compilatore C++ della Microsoft che supporta l'ultima revisione, il C++0x, che permette di fare programmazione funzionale *___*
io vado in visibilio per queste cose, si nota? :mc:

PS: e il g++ arranca :asd:
http://gcc.gnu.org/projects/cxx0x.html

Supportato in g++ da un buon paio d'anni (GCC 4.3 risale a marzo 2008). :p

Tommo
01-03-2010, 09:23
<very-ot>
Ormai non è nemmeno più in PHP... Facebook è passato al C++! :asd: http://developers.facebook.com/news.php?blog=1&story=358
</very-ot>

Mi sembra che questo sia di supporto all'idea che "real programmers do it in C++"... in pratica questi hanno speso 20 mesi per scrivere un coso che ti riscrive il PHP in C++ invece di usare direttamente il secondo via estensioni incrementali, perchè testuali parole "we have too many engineers who can't use it".

Quindi il motivo è semplicemente che è troppo complesso per la maggior parte della gente essere produttivi con C++?

fero86
01-03-2010, 11:12
http://gcc.gnu.org/projects/cxx0x.html

Supportato in g++ da un buon paio d'anni (GCC 4.3 risale a marzo 2008). :p d'oh :stordita:
sto rosicando molto per non poterlo usare nel MinGW, che sta ancora al porting del gcc 3.4.x :mc:

avrei dovuto scrivere "e il MinGW arranca" :Prrr:



Quindi il motivo è semplicemente che è troppo complesso per la maggior parte della gente essere produttivi con C++? in effetti é scandaloso :mc:

DanieleC88
01-03-2010, 12:35
Mi sembra che questo sia di supporto all'idea che "real programmers do it in C++"... in pratica questi hanno speso 20 mesi per scrivere un coso che ti riscrive il PHP in C++ invece di usare direttamente il secondo via estensioni incrementali, perchè testuali parole "we have too many engineers who can't use it".

Quindi il motivo è semplicemente che è troppo complesso per la maggior parte della gente essere produttivi con C++?

Be' non so se hanno fatto proprio questo ragionamento, credo più che altro che fossero troppo legati mani e piedi al PHP per lasciarlo andare di colpo, interrompere tutte le modifiche al sito, e nel frattempo ri-sviluppare l'intera piattaforma in C++... ma comunque è significativo vedere come PHP abbia performance così scarse da giustificare uno sforzo del genere. :p

Tommo
01-03-2010, 19:40
Be' non so se hanno fatto proprio questo ragionamento, credo più che altro che fossero troppo legati mani e piedi al PHP per lasciarlo andare di colpo, interrompere tutte le modifiche al sito, e nel frattempo ri-sviluppare l'intera piattaforma in C++... ma comunque è significativo vedere come PHP abbia performance così scarse da giustificare uno sforzo del genere. :p

No, non è possibile che sia per quel motivo: l'ha detto anche il tizio che è possibile estendere il PHP con C++ via estensioni incrementali, sostituendo sempre più PHP con C++ fino a ridurre il primo ad un wrapper per HTML...
almeno tra le righe.

Il problema di questo approccio però era che così il team doveva mantenere direttamente C++. E a quanto pare non erano in grado :mc:

cdimauro
02-03-2010, 10:15
<very-ot>
Ormai non è nemmeno più in PHP... Facebook è passato al C++! :asd: http://developers.facebook.com/news.php?blog=1&story=358
</very-ot>
No, continua a essere sviluppato in PHP. Passare al C++ sarebbe un vero suicidio.
Mi sembra che questo sia di supporto all'idea che "real programmers do it in C++"... in pratica questi hanno speso 20 mesi per scrivere un coso che ti riscrive il PHP in C++ invece di usare direttamente il secondo via estensioni incrementali, perchè testuali parole "we have too many engineers who can't use it".

Quindi il motivo è semplicemente che è troppo complesso per la maggior parte della gente essere produttivi con C++?
No. Quella frase che hai riportato non la trovo da nessuna parte nel link citato.
Be' non so se hanno fatto proprio questo ragionamento, credo più che altro che fossero troppo legati mani e piedi al PHP per lasciarlo andare di colpo, interrompere tutte le modifiche al sito, e nel frattempo ri-sviluppare l'intera piattaforma in C++... ma comunque è significativo vedere come PHP abbia performance così scarse da giustificare uno sforzo del genere. :p
Sono legati al PHP per ovvie ragioni, che espongono già fin dall'inizio:

"One of the key values at Facebook is to move fast. For the past six years, we have been able to accomplish a lot thanks to rapid pace of development that PHP offers. As a programming language, PHP is simple. Simple to learn, simple to write, simple to read, and simple to debug. We are able to get new engineers ramped up at Facebook a lot faster with PHP than with other languages, which allows us to innovate faster.".

Il che mi sembra perfettamente sensato (senonché il PHP faccia proprio schifo come linguaggio, ma qui rientriamo in una mera questione di gusti).

PHP è un linguaggio di gran lunga più produttivo rispetto al C++. Vista l'evoluzione e gli sviluppi sostenuti, il C++ avrebbe richiesto molto più tempo, per cui FaceBook non sarebbe arrivato dov'è, e dove arriverà in futuro (perché mica si fermano).
No, non è possibile che sia per quel motivo: l'ha detto anche il tizio che è possibile estendere il PHP con C++ via estensioni incrementali, sostituendo sempre più PHP con C++ fino a ridurre il primo ad un wrapper per HTML...
almeno tra le righe.

Il problema di questo approccio però era che così il team doveva mantenere direttamente C++. E a quanto pare non erano in grado :mc:
Non per mancanza degli ingegneri. Ecco qui la parte incriminata:

"One common way to address these inefficiencies is to rewrite the more complex parts of your PHP application directly in C++ as PHP Extensions. This largely transforms PHP into a glue language between your front end HTML and application logic in C++. From a technical perspective this works well, but drastically reduces the number of engineers who are able to work on your entire application. Learning C++ is only the first step to writing PHP Extensions, the second is understanding the Zend APIs. Given that our engineering team is relatively small — there are over one million users to every engineer — we can't afford to make parts of our codebase less accessible than others."

Che mi sembra LEGGERMENTE diverso da quello che avevi riportato prima. :read:

banryu79
02-03-2010, 10:32
Tra l'altro leggo che il signor Haiping Zhao ha anche fatto delle premesse:

[1]
...
Since 2007 we've thought about a few different ways to solve these problems and have even tried implementing a few of them. The common suggestion is to just rewrite Facebook in another language, but given the complexity and speed of development of the site this would take some time to accomplish.
...

[2]
...
One night at a Hackathon a few years ago, I started my first piece of code transforming PHP into C++. The languages are fairly similar syntactically and C++ drastically outperforms PHP when it comes to both CPU and memory usage. Even PHP itself is written in C. We knew that it was impossible to successfully rewrite an entire codebase of this size by hand, but wondered what would happen if we built a system to do it programmatically.
...