Discussione:
c++17 - paper approvati
(troppo vecchio per rispondere)
enoquick
2016-03-25 02:50:44 UTC
Permalink
https://isocpp.org/blog/2016/03/jacksonville-approved-papers-and-issues
f***@gmail.com
2016-03-25 15:55:09 UTC
Permalink
Post by enoquick
https://isocpp.org/blog/2016/03/jacksonville-approved-papers-and-issues
Grazie del link.

Ciao!

P.S.
Comunque è proprio vero.. più passa il tempo più ogni nuovo standard rende il
C++ un pochino più incomprensibile - e c'ho programmato metà della mia vita! :(
enoquick
2016-03-26 00:31:31 UTC
Permalink
Post by f***@gmail.com
Post by enoquick
https://isocpp.org/blog/2016/03/jacksonville-approved-papers-and-issues
Grazie del link.
Ciao!
P.S.
Comunque è proprio vero.. più passa il tempo più ogni nuovo standard rende il
C++ un pochino più incomprensibile - e c'ho programmato metà della mia vita! :(
Non piu incomprensibile ma piu ricco.
Il vecchio vale sempre,e' sempre possibile usarlo
Solo qualche cosa,ma poco, e' stato reso obsoleto passando da c++98 a c++11.
f***@gmail.com
2016-03-28 03:56:50 UTC
Permalink
Post by enoquick
Post by f***@gmail.com
Comunque è proprio vero.. più passa il tempo più ogni nuovo standard rende
il C++ un pochino più incomprensibile - e c'ho programmato metà della mia
vita! :(
Non piu incomprensibile ma piu ricco.
Il vecchio vale sempre,e' sempre possibile usarlo
Solo qualche cosa,ma poco, e' stato reso obsoleto passando da c++98 a c++11.
Non è un problema l'usare il vecchio: posso sempre scrivere un codice in C90
e passarlo ad un compilatore C++11! :) (con le eccezioni che tutti conosciamo).

<IMHO>
E' proprio il fatto che il C++ non è mai stato tanto "friendly" quando si
trattava di leggere il codice altrui, ma abbiamo (almeno, io ho) sempre
compensato studiando a fondo gli standard.
Più passa il tempo, più.. mah - una funzione tipica scritta in C++[0x+] da,
mettiamo, un programmatore boost incallito (anche senza l'utilizzo di boost)
ci metto tempo per decodificarla.
Seriamente, dieci anni fa leggevo e scrivevo come in un linguaggio naturale,
oggi a volte mi sembra di far girare un compilatore nella testa! :)
Magari son solo troppo vecchio.. spero di no! :)
</IMHO>

Ciao!
enoquick
2016-03-28 14:12:46 UTC
Permalink
Post by f***@gmail.com
Post by enoquick
Post by f***@gmail.com
Comunque è proprio vero.. più passa il tempo più ogni nuovo standard rende
il C++ un pochino più incomprensibile - e c'ho programmato metà della mia
vita! :(
Non piu incomprensibile ma piu ricco.
Il vecchio vale sempre,e' sempre possibile usarlo
Solo qualche cosa,ma poco, e' stato reso obsoleto passando da c++98 a c++11.
Non è un problema l'usare il vecchio: posso sempre scrivere un codice in C90
e passarlo ad un compilatore C++11! :) (con le eccezioni che tutti conosciamo).
<IMHO>
E' proprio il fatto che il C++ non è mai stato tanto "friendly" quando si
trattava di leggere il codice altrui, ma abbiamo (almeno, io ho) sempre
compensato studiando a fondo gli standard.
Più passa il tempo, più.. mah - una funzione tipica scritta in C++[0x+] da,
mettiamo, un programmatore boost incallito (anche senza l'utilizzo di boost)
ci metto tempo per decodificarla.
Seriamente, dieci anni fa leggevo e scrivevo come in un linguaggio naturale,
oggi a volte mi sembra di far girare un compilatore nella testa! :)
Magari son solo troppo vecchio.. spero di no! :)
</IMHO>
Ciao!
Capisco quello che intendi,le novità introdotte da c++11 in poi sono
molte ed in alcuni casi la lettura del codice e' tutt'altro che leggibile.
Per fortuna non si è obbligato a conoscere ed utilizzarle tutte quando
si progetta sw.
Occorre andare con l'esperienza pratica,con il tempo si apprenderanno le
future che servono piu o meno come lo si fa con qualsiasi linguaggio.
E' comunque C++,un linguaggio per professionisti,dove l'efficienza del
codice è uno dei requisiti.
LutherBlissett
2016-03-31 07:17:31 UTC
Permalink
Post by enoquick
Per fortuna non si è obbligato a conoscere ed utilizzarle
tutte quando si progetta sw.
Ma se ti arriva tra le mani scritto da altri...
enoquick
2016-03-31 13:22:35 UTC
Permalink
Post by LutherBlissett
Post by enoquick
Per fortuna non si è obbligato a conoscere ed utilizzarle
tutte quando si progetta sw.
Ma se ti arriva tra le mani scritto da altri...
Si prende un libro o si cera su internet il significato o si ha fortuna
di avere un collega esperto si chiede a lui.
E cosi si apprende qualcosa che non si conosceva.
CortexA57
2016-04-01 08:23:59 UTC
Permalink
Post by enoquick
Post by LutherBlissett
Post by enoquick
Per fortuna non si è obbligato a conoscere ed utilizzarle
tutte quando si progetta sw.
Ma se ti arriva tra le mani scritto da altri...
Si prende un libro o si cera su internet il significato o si ha fortuna
di avere un collega esperto si chiede a lui.
E cosi si apprende qualcosa che non si conosceva.
Quando un linguaggio si complica troppo, diventerà anche potente,
ma poi non lo usa più nessuno.
La sua promessa poi di riuso e manutibilita' nel tempo e' andata a farsi
un giro e di fatto non esiste.
Ed è la ragione per cui il C++ da anni sta' decrementando la sua
base.
Per applicazioni gp, java,c# e altri lo hanno soppiantato da tempo
e nell' embedded il C e' ancora il più gettonato...
nonostante gli anni la sua relativa semplicità e flessibilita' lo
mantengono vivo.
Il C++ dove e' usato per la maggiore e molto vicino al C :-)
Poi certo, ci sono le applicazioni che usano al massimo il C++ e
la sua potenza, ma ho la sensazione che siano relativamente poche.
almeno, questa e' la mia impressione...
A57
enoquick
2016-04-01 13:51:54 UTC
Permalink
Post by CortexA57
Post by enoquick
Post by LutherBlissett
Post by enoquick
Per fortuna non si è obbligato a conoscere ed utilizzarle
tutte quando si progetta sw.
Ma se ti arriva tra le mani scritto da altri...
Si prende un libro o si cera su internet il significato o si ha fortuna
di avere un collega esperto si chiede a lui.
E cosi si apprende qualcosa che non si conosceva.
Quando un linguaggio si complica troppo, diventerà anche potente,
ma poi non lo usa più nessuno.
La sua promessa poi di riuso e manutibilita' nel tempo e' andata a farsi
un giro e di fatto non esiste.
Ed è la ragione per cui il C++ da anni sta' decrementando la sua
base.
Per applicazioni gp, java,c# e altri lo hanno soppiantato da tempo
e nell' embedded il C e' ancora il più gettonato...
nonostante gli anni la sua relativa semplicità e flessibilita' lo
mantengono vivo.
Il C++ dove e' usato per la maggiore e molto vicino al C :-)
Poi certo, ci sono le applicazioni che usano al massimo il C++ e
la sua potenza, ma ho la sensazione che siano relativamente poche.
almeno, questa e' la mia impressione...
A57
Naturalmente,la massa di programmatori non è composta da tutti geni.
Un linguaggio che semplifica il modo di procedere avrà piu chance di
essere usato.
Per il mio lavoro uso C,C++,vb6,perl,bash,java e altro.
Ma se fosse per me C,C++,perl e bash basterebbero.
Per fortuna non conosco C# e java se potessi farne a meno non lo userei.
Tutta questione di gusti personali naturalmente.
CortexA57
2016-04-04 15:02:36 UTC
Permalink
Post by enoquick
Naturalmente,la massa di programmatori non è composta da tutti geni.
Un linguaggio che semplifica il modo di procedere avrà piu chance di
essere usato.
Per il mio lavoro uso C,C++,vb6,perl,bash,java e altro.
tcl, ksh, forth, ada, lisp etc....
Post by enoquick
Ma se fosse per me C,C++,perl e bash basterebbero.
Per fortuna non conosco C# e java se potessi farne a meno non lo userei.
Tutta questione di gusti personali naturalmente.
Si certo, pero' se la curva di apprendimento di un tool e' troppo
grande rispetto all' uso che se ne fa o si lavora prevalentemente
con quel tool e con tutte le sue funzioni, oppure lo sio usa solo
per una piccola percentuale della sua potenza, cosa che mi pare stia
capitando con il C++ (non che me ne lamenti, e' solo una osservazione).
Se pero' si usa solo una piccola parte del linguaggio, mi chiedo se
vale la pena di continuare ad estenderne le funzioni.... non e' che
tutti sono ricercatori universitari e anche in quell' ambito non so'
quanta parte del C++ viene effettivamente usato... :-)
AA,
f***@gmail.com
2016-04-04 16:08:31 UTC
Permalink
non e' che tutti sono ricercatori universitari e anche in quell' ambito non
so' quanta parte del C++ viene effettivamente usato... :-)
La qualità di un software scritto da un "ricercatore universitario" è
solitamente infima, anche più bassa di quella di un amatore. Tristitemente
è vero anche se la facoltà è strettamente correlata all'IT.
La scelta del C++ come linguaggio è solo tradizionale e, al contrario di
imprese o software agencies, velocità e semplicità di sviluppo non sono
caratteristiche importanti.

Ciao!
enoquick
2016-04-06 13:19:49 UTC
Permalink
Post by CortexA57
Post by enoquick
Naturalmente,la massa di programmatori non è composta da tutti geni.
Un linguaggio che semplifica il modo di procedere avrà piu chance di
essere usato.
Per il mio lavoro uso C,C++,vb6,perl,bash,java e altro.
tcl, ksh, forth, ada, lisp etc....
tcl e ksh si

ada lo conosco un po ma è un linguaggio che pur essendo molto rigoroso
non mi piace molto: troppo prolisso.
Lisp pur conoscendolo concettualmente non mi e' mai capitato in progetti
reali.
Post by CortexA57
Post by enoquick
Ma se fosse per me C,C++,perl e bash basterebbero.
Per fortuna non conosco C# e java se potessi farne a meno non lo userei.
Tutta questione di gusti personali naturalmente.
Si certo, pero' se la curva di apprendimento di un tool e' troppo
grande rispetto all' uso che se ne fa o si lavora prevalentemente
con quel tool e con tutte le sue funzioni, oppure lo sio usa solo
per una piccola percentuale della sua potenza, cosa che mi pare stia
capitando con il C++ (non che me ne lamenti, e' solo una osservazione).
Se pero' si usa solo una piccola parte del linguaggio, mi chiedo se
vale la pena di continuare ad estenderne le funzioni.... non e' che
tutti sono ricercatori universitari e anche in quell' ambito non so'
quanta parte del C++ viene effettivamente usato... :-)
AA,
La carne al fuoco tra c++11,cc+14 e c++17 e' molta.
Per apprendere e sedimentare il tutto occorre tempo,molto tempo.
Nel frattempo non si e' certo obbligati ad apprendere il tutto per
scrivere sw decente.
4ndre4
2016-10-13 21:29:39 UTC
Permalink
On 04/04/2016 16:02, CortexA57 wrote:

[...]
Post by CortexA57
Si certo, pero' se la curva di apprendimento di un tool e' troppo
grande rispetto all' uso che se ne fa
E` l'annoso problema del C++. Non c'e` mai stata *UNA* implementazione
di C++ che fosse 100% compliant con lo standard. E questo perche` lo
standard (non necessariamente le ultime versioni, ma anche quelli di
molto precedenti) e` sempre stato un insieme di concetti troppo
complessi da giustificare lo sforzo dei vendor per implementarlo. La
verita` e` che oggi, per la stragrande maggioranza delle applicazioni,
il C++ ha perso terreno e Java/C# fanno egregiamente il loro lavoro.
--
4ndre4
f***@gmail.com
2016-10-13 21:55:49 UTC
Permalink
Post by 4ndre4
[...]
Post by CortexA57
Si certo, pero' se la curva di apprendimento di un tool e' troppo
grande rispetto all' uso che se ne fa
E` l'annoso problema del C++. Non c'e` mai stata *UNA* implementazione
di C++ che fosse 100% compliant con lo standard. E questo perche` lo
standard (non necessariamente le ultime versioni, ma anche quelli di
molto precedenti) e` sempre stato un insieme di concetti troppo
complessi da giustificare lo sforzo dei vendor per implementarlo. La
verita` e` che oggi, per la stragrande maggioranza delle applicazioni,
il C++ ha perso terreno e Java/C# fanno egregiamente il loro lavoro.
A livello commerciale, implementare tutto uno standard è un'idiozia: si
implementa solo l'intersezione dei subsets implementati dai competitors (per
compatibilità) e si aggiungono features proprietarie non presenti nello
standard (per fare lock-in degli utenti).
Se esistessero solo compilatori commerciali sarebbe una babilonia; grazie al
cielo esistono vari compilatori open-source, che alzano il livello per tutti gli
altri..

Ciao!
4ndre4
2016-10-13 22:39:27 UTC
Permalink
On 13/10/2016 22:55, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
A livello commerciale, implementare tutto uno standard è un'idiozia
Che senso ha stabilire uno standard, se poi e` un'idiozia implementarlo
da parte dei vendors? Il convener del comitato di standardizzazione C++
e` Herb Sutter, impiegato Microsoft, e Microsoft produce compilatori C++
commerciali. Io, comunque, non parlavo solo di compilatori commerciali.
Ho scritto "vendor" ma mi riferivo agli "implementers". Anche i
compilatori open-source hanno sempre faticato molto a stare al passo con
gli standard C++. L'idea di implementare solo "l'intersezione dei
subsets implementati dai competitors" non e` che sia una grande
strategia. Lo scopo di un implementatore dovrebbe essere quello di
offrire quel che cercano gli utenti e gli utenti cercano le
funzionalita` descritte negli standard.
--
4ndre4
f***@gmail.com
2016-10-13 22:56:10 UTC
Permalink
Post by 4ndre4
Lo scopo di un implementatore dovrebbe essere quello di
offrire quel che cercano gli utenti e gli utenti cercano le
funzionalita` descritte negli standard.
Hai scritto bene, "dovrebbe" :)
Fai bene a fare la distinzione tra vendors e implementers: per quanto dici sui
secondi concordo, ma per i primi lo scopo è solo incrementare i guadagni.

Non sai quanto mi costa dirlo: i compilatori Microsoft (non solo C++) sono
sempre stati ottimi. Ma è un'eccezione. Nella grande maggioranza dei casi le
implementazioni proprietarie, di solito che fanno target su microcontrollori
della compagnia stessa, sono da mettersi le mani nei capelli..

Ciao!
4ndre4
2016-10-13 23:30:40 UTC
Permalink
On 13/10/2016 23:56, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
Fai bene a fare la distinzione tra vendors e implementers: per quanto dici sui
secondi concordo, ma per i primi lo scopo è solo incrementare i guadagni.
E` il contrario: non ho fatto nessuna distinzione tra vendors e
implementers. Sono tutti implementers, che il loro prodotto sia
commerciale o no. Incrementare i guadagni di certo non riesci a farlo se
non implementi cio` che serve agli sviluppatori. Sono due cose
strettamente legate. Il problema del mancato allineamento agli standard
del linguaggio non e` dovuto a scelte commerciali, ma all'oggettiva
complessita` di tenersi al passo. Gli standard del C++ sono sempre stati
troppo complessi perche` si riuscisse ad implementarli completamente ed
in tempi ragionevoli. D'altronde, quasi sempre nei comitati di
standardizzazione dei linguaggi, ci sono membri di societa` private
(vedi i tanti membri del JCP per Java).
--
4ndre4
f***@gmail.com
2016-10-14 00:12:39 UTC
Permalink
Post by 4ndre4
[...]
Post by f***@gmail.com
Fai bene a fare la distinzione tra vendors e implementers: per quanto dici
sui secondi concordo, ma per i primi lo scopo è solo incrementare i guadagni.
E` il contrario: non ho fatto nessuna distinzione tra vendors e
implementers. Sono tutti implementers, che il loro prodotto sia
commerciale o no. Incrementare i guadagni di certo non riesci a farlo se
non implementi cio` che serve agli sviluppatori. Sono due cose
strettamente legate. Il problema del mancato allineamento agli standard
del linguaggio non e` dovuto a scelte commerciali, ma all'oggettiva
complessita` di tenersi al passo. Gli standard del C++ sono sempre stati
troppo complessi perche` si riuscisse ad implementarli completamente ed
in tempi ragionevoli.
Forse sono troppo disilluso io, forse perché come sviluppatore mi sono sempre
sentito preso a pesci in faccia dalle grandi aziende.

Non metto in dubbio la complessità intrinseca di implementare uno standard
completo, ma rimango dell'opinione che, scrivere parser, ottimizzatore,
compilatore vero e proprio, librerie standard, e tutto quello che serve per
avere un compilatore usabile ma non compatibile sia più del 95% del lavoro.
La "non compatibilità" è sempre relativa a piccolezze che spesso vengono
comunque implementate in maniera non standard. Come si dice: a pensare male si
fa peccato, ma... :)
E comunque, mettendosi nei panni di qualcuno al management, anch'io sul famoso
triangolo costi/tempo/qualità saprei su quale vertice puntare per far carriera
in un'azienda..
Post by 4ndre4
D'altronde, quasi sempre nei comitati di
standardizzazione dei linguaggi, ci sono membri di societa` private
(vedi i tanti membri del JCP per Java).
Sui vari comitati andrei piano nelle generalizzazioni e guarderei sempre il
caso specifico: in alcuni casi più di una volta abbiamo assistito a teatrini
politici e scelte tecniche idiotiche (e.g. HTML, unicode, ma anche Java non
scherza), altre volte invece, a dispetto della provenienza dei componenti dei
comitati, il lavoro è stato ottimo.

Personalmente, sugli standard C++, ma soprattutto C, che ho più a cuore, ho già
estensivamente espresso il mio inutile parere sia qui su i.c.l.c++ che su
i.c.l.c. :)

Ciao!
4ndre4
2016-10-14 06:45:51 UTC
Permalink
On 14/10/2016 01:12, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
avere un compilatore usabile ma non compatibile sia più del 95% del lavoro.
Io parlo di compliance con lo standard. Parlo *proprio* della necessita`
di averlo compatibile.
Post by f***@gmail.com
La "non compatibilità" è sempre relativa a piccolezze che spesso vengono
comunque implementate in maniera non standard.
No no, non sempre.
Post by f***@gmail.com
E comunque, mettendosi nei panni di qualcuno al management, anch'io sul famoso
triangolo costi/tempo/qualità saprei su quale vertice puntare per far carriera
in un'azienda..
Su quel "famoso triangolo" io sono del tutto in disaccordo. Ogni volta
che lo sento nominare mi vengono i nervi a fiori di pelle. Si puo`
benissimo produrre ottima qualita` in un tempo ragionevole e con costi
ridotti. Basta adottare il metodo di lavoro giusto.
Post by f***@gmail.com
Sui vari comitati andrei piano nelle generalizzazioni e guarderei sempre il
caso specifico
Non so a cosa ti stai riferendo. Non sto generalizzando. Sto parlando
dei comitati di standardizzazione C++ e quelli del JCP. Nel primo (WG21
e vari sottogruppi), ci sono persone del calibro di Sutter (Microsoft),
Carruth (Google), e tanti altri (Intel, Qualcomm, Red Hat, etc.).
--
4ndre4
f***@gmail.com
2016-10-14 17:18:47 UTC
Permalink
Post by 4ndre4
Post by f***@gmail.com
E comunque, mettendosi nei panni di qualcuno al management, anch'io sul
famoso triangolo costi/tempo/qualità saprei su quale vertice puntare per far
carriera in un'azienda..
Su quel "famoso triangolo" io sono del tutto in disaccordo. Ogni volta
che lo sento nominare mi vengono i nervi a fiori di pelle. Si puo`
benissimo produrre ottima qualita` in un tempo ragionevole e con costi
ridotti. Basta adottare il metodo di lavoro giusto.
Certo, ma se puoi produrre qualcosa di "ottima qualita` in un tempo ragionevole
e con costi ridotti" puoi anche produrre qualcosa di media qualità nella metà
del tempo ;)

Ciao!
4ndre4
2016-10-14 17:52:40 UTC
Permalink
On 14/10/2016 18:18, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
Certo, ma se puoi produrre qualcosa di "ottima qualita` in un tempo ragionevole
e con costi ridotti" puoi anche produrre qualcosa di media qualità nella metà
del tempo ;)
E quindi?
--
4ndre4
f***@gmail.com
2016-10-14 18:14:13 UTC
Permalink
Post by 4ndre4
Post by f***@gmail.com
Certo, ma se puoi produrre qualcosa di "ottima qualita` in un tempo
ragionevole e con costi ridotti" puoi anche produrre qualcosa di media
qualità nella metà del tempo ;)
E quindi?
E quindi nulla: l'ingegneria è l'arte del compromesso. Non si può avere tutto,
spesso non si può nemmeno scegliere. A te danno sempre tutto il tempo che pensi
sia necessario per fare il lavoro a regola d'arte? A me spesso no.

Ciao!
4ndre4
2016-10-14 18:20:28 UTC
Permalink
On 14/10/2016 19:14, ***@gmail.com wrote:

[...]
E quindi nulla: l'ingegneria è l'arte del compromesso. Non si può avere tutto
Io credo che tu ti sbagli e anche di grosso. Io lavoro come ingegnere
software e come bisogna fare quel che bisogna fare lo decido io. Da me
si adotta Agile/Scrum e si lavora in un certo modo. Abbiamo un sistema
di lavoro per cui la qualita` del codice prodotto e` sicuramente molto
alta. Da noi non c'e` nessun compromesso. Se un compromesso c'e` e` sui
requisiti: se qualcosa non si puo` fare in questa release, si fara`
nella prossima. Di certo non mi metto a realizzarti qualcosa di
raffazzonato solo perche` tu lo vuoi vendere.
--
4ndre4
f***@gmail.com
2016-10-14 18:30:04 UTC
Permalink
Post by 4ndre4
E quindi nulla: l'ingegneria è l'arte del compromesso. Non si può avere tutto
Io credo che tu ti sbagli e anche di grosso. Io lavoro come ingegnere
software e come bisogna fare quel che bisogna fare lo decido io. Da me
si adotta Agile/Scrum e si lavora in un certo modo. Abbiamo un sistema
di lavoro per cui la qualita` del codice prodotto e` sicuramente molto
alta. Da noi non c'e` nessun compromesso. Se un compromesso c'e` e` sui
requisiti: se qualcosa non si puo` fare in questa release, si fara`
nella prossima. Di certo non mi metto a realizzarti qualcosa di
raffazzonato solo perche` tu lo vuoi vendere.
Allora tieniti stretto quel lavoro, sei estremamente fortunato.

Ciao!
4ndre4
2016-10-14 18:36:25 UTC
Permalink
On 14/10/2016 19:30, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
Allora tieniti stretto quel lavoro, sei estremamente fortunato.
Ma no, non sono io ad essere fortunato. Sei tu ad essere sfortunato :) O
forse troppo abituato al modo di fare italiano (io sono all'estero).
Nel contesto in cui sono io, sono diverse le realta` che lavorano allo
stesso modo.
--
4ndre4
f***@gmail.com
2016-10-14 18:53:00 UTC
Permalink
Post by 4ndre4
[...]
Post by f***@gmail.com
Allora tieniti stretto quel lavoro, sei estremamente fortunato.
Ma no, non sono io ad essere fortunato. Sei tu ad essere sfortunato :)
Ah, probabilissimo! Sono affetto da sfiga innata ;)
Post by 4ndre4
O forse troppo abituato al modo di fare italiano (io sono all'estero).
Nel contesto in cui sono io, sono diverse le realta` che lavorano allo
stesso modo.
Ho lavorato in Italia, Spagna, Germania, e ora sono negli US - a me sembra uguale
ovunque. Quindi sì, non è la nazione, evidentemente è proprio sfortuna mia!
:D

Ciao!
4ndre4
2016-10-14 18:59:19 UTC
Permalink
On 14/10/2016 19:53, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
Italia, Spagna, Germania, e ora sono negli US - a me sembra uguale
ovunque. Quindi sì, non è la nazione, evidentemente è proprio sfortuna mia!
:D
Intendiamoci, sono tante le aziende che lavorano male, ma ce ne sono
anche tante che lavorano bene - e anche negli US. La mia azienda, in
realta`, e` americana, e il ns metodo di lavoro e` abbastanza diffuso in
tutte le sedi.
--
4ndre4
enoquick
2016-10-14 01:24:42 UTC
Permalink
Post by f***@gmail.com
Post by 4ndre4
Lo scopo di un implementatore dovrebbe essere quello di
offrire quel che cercano gli utenti e gli utenti cercano le
funzionalita` descritte negli standard.
Hai scritto bene, "dovrebbe" :)
Fai bene a fare la distinzione tra vendors e implementers: per quanto dici sui
secondi concordo, ma per i primi lo scopo è solo incrementare i guadagni.
Non sai quanto mi costa dirlo: i compilatori Microsoft (non solo C++) sono
sempre stati ottimi. Ma è un'eccezione. Nella grande maggioranza dei casi le
implementazioni proprietarie, di solito che fanno target su microcontrollori
della compagnia stessa, sono da mettersi le mani nei capelli..
Ciao!
Saranno ottimi (i compilatori) ma ho provato progetti fatti VS e poi
portati sotto g++
Alla faccia dello std,mi sono detto (MS ovviamente) e sui bachi
(specialmente template)
Alla faccia del buon compilatore.
4ndre4
2016-10-14 06:37:12 UTC
Permalink
On 14/10/2016 02:24, enoquick wrote:

[...]
Post by enoquick
Saranno ottimi (i compilatori) ma ho provato progetti fatti VS e poi
portati sotto g++
I compilatori MS sono, come detto, sono degli ottimi compilatori.
L'aderenza allo standard e` piu` che buona ed e` in continua evoluzione:

https://msdn.microsoft.com/en-gb/library/hh567368.aspx

Tu, come sempre, non sai quel che dici.
--
4ndre4
enoquick
2016-10-14 16:50:49 UTC
Permalink
Post by 4ndre4
[...]
Post by enoquick
Saranno ottimi (i compilatori) ma ho provato progetti fatti VS e poi
portati sotto g++
I compilatori MS sono, come detto, sono degli ottimi compilatori.
https://msdn.microsoft.com/en-gb/library/hh567368.aspx
Tu, come sempre, non sai quel che dici.
L'ultima perla
Oltre a non conoscere la differenza tra inizializzazione con valore e
assegnamento ecco l'ultima perla oltre a quella che non esiste
compilatore c++ completamente aderente allo std.
g++ e' uno di quelli
E non lo dico io, ma loro:

https://gcc.gnu.org/projects/cxx-status.html#cxx14
GCC has full support for the latest revision of the C++ standard, which
was published in 2014.


Quindi hai mai provato a compilare in c++ sotto vs e portare in g++
Devo proprio arguire di no
Io lo faccio quasi sempre in quanto i miei progetti sono quasi tutti
portabili tra win e linux

Ha,e la parola supportare non significa che si comporti secondo lo std
4ndre4
2016-10-14 17:52:13 UTC
Permalink
On 14/10/2016 17:50, enoquick wrote:

[...]
Post by enoquick
L'ultima perla
Guarda che le perle, qui e altrove, sei tu a regalarle, non io.
Post by enoquick
Oltre a non conoscere la differenza tra inizializzazione con valore e
assegnamento
Ti consiglio vivamente, se hai proprio voglia di polemizzare con me, di
corazzarti di argomenti forti, perche` con queste stupidaggini finisci
puntualmente per fare la figura dello scemo (e non solo in questo
gruppo). E` tipico di chi, come te, non ha argomenti ricorrere a uno
straw man: prendere un pezzettino di quel che gli altri scrivono, farci
un omino di paglia, e attaccarlo. E allora faccio finta che tu abbia un
briciolo di materia grigia rimasta nel cervello e te lo rispiego: il
post riguardava l'inizializzazione di un array con un literal stringa,
ovvero l'assegnazione del literal stringa all'area di memoria
dell'array. E serviva a dimostrare che il nome dell'array, in quel caso,
NON decade nel puntatore al primo elemento. Le inizializzazioni sono
subset delle assegnazioni - o forse credi che il simbolo di uguale si
usi a caso?
"haha! Hai detto assegnazione! Dovevi dire inizializzazione!".
Si`, per essere formali, avrei dovuto dire inizializzazione, ma NON era
quello il punto del post. Adesso, da bravo troll, tira fuori la cosa in
un nuovo post, mi raccomando.
Post by enoquick
ecco l'ultima perla oltre a quella che non esiste
compilatore c++ completamente aderente allo std.
Io sto parlando del supporto allo standard da parte dei compilatori
Microsoft. Non ho affermato che "non esiste compilatore C++
completamente aderente allo std". L'aderenza allo standard e` un
processo lungo e tortuoso, che ha sempre visto gli implementatori un
passo indietro.
Post by enoquick
Quindi hai mai provato a compilare in c++ sotto vs e portare in g++
Devo proprio arguire di no
Ma che cazzo "arguisci". Ma non dire stronzate come al solito.
Post by enoquick
Ha,e la parola supportare non significa che si comporti secondo lo std
LOL :) Sarebbe curioso fare veramente un giro nella tua testa per capire
come elabori i concetti.
--
4ndre4
enoquick
2016-10-15 01:11:08 UTC
Permalink
Post by 4ndre4
[...]
Post by enoquick
L'ultima perla
Guarda che le perle, qui e altrove, sei tu a regalarle, non io.
Post by enoquick
Oltre a non conoscere la differenza tra inizializzazione con valore e
assegnamento
Ti consiglio vivamente, se hai proprio voglia di polemizzare con me, di
corazzarti di argomenti forti, perche` con queste stupidaggini finisci
puntualmente per fare la figura dello scemo (e non solo in questo
gruppo). E` tipico di chi, come te, non ha argomenti ricorrere a uno
straw man: prendere un pezzettino di quel che gli altri scrivono, farci
un omino di paglia, e attaccarlo. E allora faccio finta che tu abbia un
briciolo di materia grigia rimasta nel cervello e te lo rispiego: il
post riguardava l'inizializzazione di un array con un literal stringa,
ovvero l'assegnazione del literal stringa all'area di memoria
dell'array. E serviva a dimostrare che il nome dell'array, in quel caso,
NON decade nel puntatore al primo elemento. Le inizializzazioni sono
subset delle assegnazioni - o forse credi che il simbolo di uguale si
usi a caso?
"haha! Hai detto assegnazione! Dovevi dire inizializzazione!".
Si`, per essere formali, avrei dovuto dire inizializzazione, ma NON era
quello il punto del post. Adesso, da bravo troll, tira fuori la cosa in
un nuovo post, mi raccomando.
Posso anche soprassedere,le cappelle le fanno tutti.
Ma una persona di buon senso le ammette
Post by 4ndre4
Post by enoquick
ecco l'ultima perla oltre a quella che non esiste
compilatore c++ completamente aderente allo std.
Io sto parlando del supporto allo standard da parte dei compilatori
Microsoft. Non ho affermato che "non esiste compilatore C++
completamente aderente allo std". L'aderenza allo standard e` un
processo lungo e tortuoso, che ha sempre visto gli implementatori un
passo indietro.
E` l'annoso problema del C++. Non c'e` mai stata *UNA* implementazione
di C++ che fosse 100% compliant con lo standard.


Questa frase e' di babbo natale non tua.
Non c'e scritto implementazione MS o qualcosa di simile
Ora sai che non e' vero,almeno una c'e
Ed e' perfettamente aderente allo 14,11 e 98
Almeno cosi dichiarano i responsabili gcc (gnu compiler collection non
compilatore c)
Post by 4ndre4
Post by enoquick
Quindi hai mai provato a compilare in c++ sotto vs e portare in g++
Devo proprio arguire di no
Ma che cazzo "arguisci". Ma non dire stronzate come al solito.
Quando non si sa replicare ecco che escono i paroloni.

Tu il C++ lo conosci come io conosco python,e cioe poco.
Se non credi alle mie parole fai un progetto un po complesso,che usa un
po di cose dello std,template compresi,sotto MS C++ e poi prova con g++.
Ma e' piu facile insultare che provare.
Post by 4ndre4
Post by enoquick
Ha,e la parola supportare non significa che si comporti secondo lo std
LOL :) Sarebbe curioso fare veramente un giro nella tua testa per capire
come elabori i concetti.
Li elaboro correttamente,supporto non significa per forza std.
MS C++ supporta i template ad esempio,ma in alcuni punti e' non std nel
supporto.
E cosi per altre cose.
E non parlo di una versione di 10 anni fa,ma proprio dell'ultima stabile
(Visual Studio 2015).
a***@gmail.com
2016-10-15 07:17:40 UTC
Permalink
On Saturday, 15 October 2016 02:11:11 UTC+1, enoquick wrote:

[...]
Post by enoquick
Posso anche soprassedere,le cappelle le fanno tutti.
Non ho fatto nessuna cappella, demente. Constato che non sei neanche capace di trollare.
Post by enoquick
Ma una persona di buon senso le ammette
Una persona di buon senso non trolla, come invece tu fai spesso, qui e altrove.
Post by enoquick
E` l'annoso problema del C++. Non c'e` mai stata *UNA* implementazione
di C++ che fosse 100% compliant con lo standard.
Questa frase e' di babbo natale non tua.
E infatti e` vero. Nella storia del C++, lo standard e` stato quasi sempre implementato in maniera monca. Questo, se tu sapessi quel che stai dicendo, dovresti saperlo. Che oggi vi sia un'implementazione 100% compliant mi fa molto piacere, e non nega affatto quel che ho scritto. Se tu sapessi leggere, ma sopratutto capire quel che gli altri scrivono...
Post by enoquick
Quando non si sa replicare ecco che escono i paroloni.
Ma cosa vuoi replicare ad un idiota come te che non fa altro che trollare e tirare fuori argomenti a cazzo di cane? Non hai neanche capito quel che stavo scrivendo.
Post by enoquick
Tu il C++ lo conosci come io conosco python,e cioe poco.
LOL :) Si`, credici. Io ho usato il C++ per almeno un ventennio su vari progetti di tutti i tipi, su varie piattaforme.
Post by enoquick
Li elaboro correttamente,supporto non significa per forza std.
Non elabori correttamente un cazzo. Supportare lo standard significa essere compliant.
enoquick
2016-10-14 01:21:46 UTC
Permalink
Post by 4ndre4
[...]
Post by CortexA57
Si certo, pero' se la curva di apprendimento di un tool e' troppo
grande rispetto all' uso che se ne fa
E` l'annoso problema del C++. Non c'e` mai stata *UNA* implementazione
di C++ che fosse 100% compliant con lo standard. E questo perche` lo
standard (non necessariamente le ultime versioni, ma anche quelli di
molto precedenti) e` sempre stato un insieme di concetti troppo
complessi da giustificare lo sforzo dei vendor per implementarlo. La
verita` e` che oggi, per la stragrande maggioranza delle applicazioni,
il C++ ha perso terreno e Java/C# fanno egregiamente il loro lavoro.
Ma non sparare cazzate.
Per giocherellare usa pure il tuo java e C#,per le cose serie si usa altro.
Naturalmente scherzo,ma dopo l'ultima esperienza (risolta a modo mio)
con le applet sono sempre piu convinto che sono sistemi giocattolo.
Non li useranno mai per mission critical.
4ndre4
2016-10-14 06:34:59 UTC
Permalink
On 14/10/2016 02:21, enoquick wrote:

[...]
Post by enoquick
Per giocherellare usa pure il tuo java e C#,per le cose serie si usa altro.
Non posso raccomandare a te di non sparare cazzate perche` sei uno
specialista in questo, come dimostri bene qui e su altri gruppi. La
scemenza che hai scritto non la commento neanche. E` l'ennesima prova
che NON conosci il mondo del software, ma vivi nella tua piccola realta`.
--
4ndre4
Enrico Maria Giordano
2016-10-14 09:59:58 UTC
Permalink
Post by 4ndre4
E` l'annoso problema del C++. Non c'e` mai stata *UNA* implementazione
di C++ che fosse 100% compliant con lo standard. E questo perche` lo
standard (non necessariamente le ultime versioni, ma anche quelli di
molto precedenti) e` sempre stato un insieme di concetti troppo
complessi da giustificare lo sforzo dei vendor per implementarlo. La
verita` e` che oggi, per la stragrande maggioranza delle applicazioni,
il C++ ha perso terreno e Java/C# fanno egregiamente il loro lavoro.
Non so per quanto riguarda Java/C# ma sono d'accordo che il C++ abbia
perso molto terreno da quando, alla sua nascita, sembrava potesse
sostituire rapidamente il C. Secondo me è stato sempre un linguaggio
troppo artificiosamente complesso e un programmatore che deve scrivere
un software applicativo non ha tempo da perdere appresso alle
sottigliezze del linguaggio. E' il linguaggio che deve essere semplice
abbastanza da non influire negativamente sui tempi di sviluppo. Poi
certo dipende anche dal tipo di software. Per alcuni tipi di software
molto complessi magari il C++ è il linguaggio ideale.

EMG

--
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg
a***@gmail.com
2016-10-14 11:55:17 UTC
Permalink
On Friday, 14 October 2016 11:00:04 UTC+1, Enrico Maria Giordano wrote:

[...]
Post by Enrico Maria Giordano
Secondo me è stato sempre un linguaggio
troppo artificiosamente complesso
Hai detto bene, e la parola "artificiosamente" ci sta tutta.
f***@gmail.com
2016-10-14 17:39:16 UTC
Permalink
Post by Enrico Maria Giordano
Secondo me è stato sempre un linguaggio
troppo artificiosamente complesso e un programmatore che deve scrivere
un software applicativo non ha tempo da perdere appresso alle
sottigliezze del linguaggio. E' il linguaggio che deve essere semplice
abbastanza da non influire negativamente sui tempi di sviluppo.
Un appunto mi sento di farlo: un codice C++ scritto in maniera leggibile è
in effetti molto leggibile, anche da chi non conosce bene il linguaggio. Il
problema è che non è facile trovare programmatori abbastanza bravi (o umili)
da scrivere a modo.
Ad esempio io cerco sempre di non usare mai templates, operatori, tutti i
_cast<>, tutti i _ptr<>, di sicuro nulla che è nei nuovi standards, etc.etc.
Certo se lo facessi il mio codice sarebbe lungo meno della metà, ma se lo dessi
a qualcuno di poco esperto non lo potrebbe leggere. Se questo mi fa passare da
"stupido" o "poco esperto" pace, me ne farò una ragione: secondo me è quello
che dovrebbero fare tutti.

Per quanto riguarda la complessità rispetto a Java/C#: la complessità si può
solo spostare, non eliminare. In Java/C# hai in media la metà dei problemi
scrivendo e leggendo, ma in bocca al lupo per i problemi che vengono fuori da
J[VM|DK|RE]/.NET framework.

Ciao!
4ndre4
2016-10-14 17:54:31 UTC
Permalink
On 14/10/2016 18:39, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
Ad esempio io cerco sempre di non usare mai templates, operatori, tutti i
_cast<>, tutti i _ptr<>, di sicuro nulla che è nei nuovi standards, etc.etc.
Certo se lo facessi il mio codice sarebbe lungo meno della metà, ma se lo dessi
a qualcuno di poco esperto non lo potrebbe leggere. Se questo mi fa passare da
"stupido" o "poco esperto" pace, me ne farò una ragione: secondo me è quello
che dovrebbero fare tutti.
In sostanza, non usi il C++.
Post by f***@gmail.com
Per quanto riguarda la complessità rispetto a Java/C#: la complessità si può
solo spostare, non eliminare. In Java/C# hai in media la metà dei problemi
scrivendo e leggendo, ma in bocca al lupo per i problemi che vengono fuori da
J[VM|DK|RE]/.NET framework.
Ovvero? Spiega. Sono curioso di sapere.
--
4ndre4
f***@gmail.com
2016-10-14 18:10:15 UTC
Permalink
Post by 4ndre4
[...]
Post by f***@gmail.com
Ad esempio io cerco sempre di non usare mai templates, operatori, tutti i
_cast<>, tutti i _ptr<>, di sicuro nulla che è nei nuovi standards, etc.etc.
Certo se lo facessi il mio codice sarebbe lungo meno della metà, ma se lo
dessi a qualcuno di poco esperto non lo potrebbe leggere. Se questo mi fa
passare da "stupido" o "poco esperto" pace, me ne farò una ragione: secondo
me è quello che dovrebbero fare tutti.
In sostanza, non usi il C++.
eheheh, ma no, dai! :)
Il fatto è che il C++ è estremamente espressivo. Anche in Italiano o in
Inglese posso fare frasette soggetto/verbo/oggetto usando poche parole oppure
posso scrivere una poesia. Per essere bravo devi all'occorrenza saper fare
entrambe le cose, ma se il tuo scopo è farti capire meglio parlare semplice.
Sinceramente, visto che non mi danno un premio se il codice che scrivo sembra
intelligente o ricercato, non vedo perché dovrei farlo! :)
Post by 4ndre4
Post by f***@gmail.com
Per quanto riguarda la complessità rispetto a Java/C#: la complessità si può
solo spostare, non eliminare. In Java/C# hai in media la metà dei problemi
scrivendo e leggendo, ma in bocca al lupo per i problemi che vengono fuori da
J[VM|DK|RE]/.NET framework.
Ovvero? Spiega. Sono curioso di sapere.
Se non hai mai avuto problemi di incompatibilità, configurazione, allocazione di
risorse o zero-day bugs con virtual machines si vede che c'hai lavorato sopra
troppo poco..

Ciao!
4ndre4
2016-10-14 18:25:10 UTC
Permalink
On 14/10/2016 19:10, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
eheheh, ma no, dai! :)
Ehm... guarda che eri tu a dirlo, mica io.
Post by f***@gmail.com
Il fatto è che il C++ è estremamente espressivo.
Espressivo il C++? Guarda, tutto si puo` dire del C++ meno che sia
espressivo.
Post by f***@gmail.com
Se non hai mai avuto problemi di incompatibilità, configurazione, allocazione di
risorse o zero-day bugs con virtual machines si vede che c'hai lavorato sopra
troppo poco..
Ah la solita, sana moda di sminuire la competenza dell'interlocutore
quando non si hanno risposte :)

Che cosa c'entrano le "virtual machines" con Java e C#? Me lo spieghi?
Problemi di incompatibilita` tra cosa? Configurazione di cosa?
Allocazione di risorse in quale contesto? Sara` che nei miei 20 anni di
lavoro, 2/3 abbondanti dei quali passati su certe tecnologie, ne devo
aver visti troppo pochi, come dici tu.
--
4ndre4
f***@gmail.com
2016-10-14 18:49:31 UTC
Permalink
Perché all'improvviso te la sei presa a male? Mica t'ho insultato, stavamo solo
spiegando i nostri punti di vista
Post by 4ndre4
[...]
Post by f***@gmail.com
eheheh, ma no, dai! :)
Ehm... guarda che eri tu a dirlo, mica io.
Ho solo scritto che preferisco usare un piccolo subset del C++. Per continuare il
paragone di prima, non è che se non uso mai la parola "terfosimone" non parlo
italiano.
Post by 4ndre4
Post by f***@gmail.com
Il fatto è che il C++ è estremamente espressivo.
Espressivo il C++? Guarda, tutto si puo` dire del C++ meno che sia
espressivo.
Non sarà espressivo come un funzionale puro, ma non mi sembra affatto rigido
come altri..
Post by 4ndre4
Post by f***@gmail.com
Se non hai mai avuto problemi di incompatibilità, configurazione, allocazione
di risorse o zero-day bugs con virtual machines si vede che c'hai lavorato
sopra troppo poco..
Ah la solita, sana moda di sminuire la competenza dell'interlocutore
quando non si hanno risposte :)
No, è che sono veramente stupito..
Post by 4ndre4
Che cosa c'entrano le "virtual machines" con Java e C#? Me lo spieghi?
Java non corre sulla Java Virtual Machine? CRL+JIT non sono praticamente una
virtual machine?
Post by 4ndre4
Problemi di incompatibilita` tra cosa?
Tra varie JVM, o versioni del .NET framework.
Post by 4ndre4
Configurazione di cosa?
Dei sistemi target.
Post by 4ndre4
Allocazione di risorse in quale contesto?
Differente utilizzo di risorse tra varie macchine dopo il deploy.
Post by 4ndre4
Sara` che nei miei 20 anni di
lavoro, 2/3 abbondanti dei quali passati su certe tecnologie, ne devo
aver visti troppo pochi, come dici tu.
Boh, io grazie al cielo su Java e .NET complessivamente non c'avrò passato più
di cinque, forse sei anni. Ma dei problemi elencati sopra n'ho visti a iosa.
Che ti devo dire, avremo lavorato sulle stesse cose ma in anni diversi e con
gradi di maturità di queste tecnologie diverse.

Ciao!
4ndre4
2016-10-14 19:04:23 UTC
Permalink
On 14/10/2016 19:49, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
Ho solo scritto che preferisco usare un piccolo subset del C++.
Si`, ma se al C++ togli tutta quella roba di cui parlavi, in sostanza si
riduce al C.
Post by f***@gmail.com
Per continuare il paragone di prima, non è che se non uso mai la
parola "terfosimone" non parlo
Post by f***@gmail.com
italiano.
Anche perche` "terfosimone" non e` una parola italiana :)
Il punto e` che dal C++ stai togliendo roba grossa. E` come se volessi
parlare italiano togliendoci i verbi.
Post by f***@gmail.com
Java non corre sulla Java Virtual Machine? CRL+JIT non sono praticamente una
virtual machine?
Scusa, pensavo di riferissi alle macchine virtuali, non al "vm" di JVM.
Post by f***@gmail.com
Tra varie JVM, o versioni del .NET framework.
Mi citi un problema che hai avuto?
Post by f***@gmail.com
Post by 4ndre4
Configurazione di cosa?
Dei sistemi target.
Ovvero? Quale sistema hai incontrato che e` peculiare dell'uso della
JVM, per esempio?
Post by f***@gmail.com
Post by 4ndre4
Allocazione di risorse in quale contesto?
Differente utilizzo di risorse tra varie macchine dopo il deploy.
Ovvero che problema hai avuto?
Post by f***@gmail.com
Boh, io grazie al cielo su Java e .NET complessivamente non c'avrò passato più
di cinque, forse sei anni.
Se mi facessi qualche esempio, te ne sarei grato.
--
4ndre4
f***@gmail.com
2016-10-14 19:49:05 UTC
Permalink
Post by 4ndre4
[...]
Post by f***@gmail.com
Ho solo scritto che preferisco usare un piccolo subset del C++.
Si`, ma se al C++ togli tutta quella roba di cui parlavi, in sostanza si
riduce al C.
Eh, più o meno :)
Post by 4ndre4
Post by f***@gmail.com
Per continuare il paragone di prima, non è che se non uso mai la
parola "terfosimone" non parlo italiano.
Anche perche` "terfosimone" non e` una parola italiana :)
ahahah LOL :D
Post by 4ndre4
Il punto e` che dal C++ stai togliendo roba grossa. E` come se volessi
parlare italiano togliendoci i verbi.
Comunque non è che non uso niente della roba che ho scritto, se serve lo faccio..
Ma comincio con gli esempi, va: :)
Se scrivere un template mi risparmia lavoro lo scrivo, se devo fare un fix al
volo e mi viene comodo uno smart pointer lo metto. Ma visto che i template sono
particolari sulle interfacce esterne delle librerie e gli smart pointer
nascondono un po' la logica e l'ordine della distruzione degli oggetti, cerco di
non usarli regolarmente.. Tanto poi se risparmio un'ora di lavoro ma la devo
riperdere a spiegare a qualcuno come o perché funziona quello che ho scritto
quando mi viene a fare una domanda, tanto vale non farlo proprio.
Post by 4ndre4
Post by f***@gmail.com
Java non corre sulla Java Virtual Machine? CRL+JIT non sono praticamente una
virtual machine?
Scusa, pensavo di riferissi alle macchine virtuali, non al "vm" di JVM.
Post by f***@gmail.com
Tra varie JVM, o versioni del .NET framework.
Mi citi un problema che hai avuto?
Con il .NET qualche anno fa abbiamo dovuto perdere tre giorni per allineare tutte
le librerie (una cinquantina, molte erano semplici wrapper C->C#) alla stessa
identica versione di framework e bloccare lo sviluppo su quella, che non ricordo
quale update aveva rotto la compatibilità.

Con JVM è sparare sulla croce rossa.. Due settimane fa ho aggiornato la JVM sulla
mia macchina e non mi parte più Minecraft! :D
Post by 4ndre4
Post by f***@gmail.com
Post by 4ndre4
Configurazione di cosa?
Dei sistemi target.
Ovvero? Quale sistema hai incontrato che e` peculiare dell'uso della
JVM, per esempio?
In realtà questo succede anche con applicativi C/C++. Principalmente si parla
di librerie preinstallate e/o variabili d'ambiente. Il problema è che mentre con
un compilato puoi sempre linkare statico o caricare dinamico in praticamente
qualsiasi modo ti venga in mente, gli installatori/launcher dei secondi sono
veramente complessi da scrivere per essere sicuri di avere un running environment
come quello che ti aspetti. Su questo non ho un esempio preciso perché era
normale amministrazione, poi abbiamo risolto in tutt'altra maniera.
Post by 4ndre4
Post by f***@gmail.com
Post by 4ndre4
Allocazione di risorse in quale contesto?
Differente utilizzo di risorse tra varie macchine dopo il deploy.
Ovvero che problema hai avuto?
Anche questo, qualche anno fa: macchine identiche, stessa memoria, stesso
software installato, una andava in out-of-memory, l'altra no. Perso qualche
giorno, poi abbiamo riscritto la parte pesante in C++ :)
Post by 4ndre4
Post by f***@gmail.com
Boh, io grazie al cielo su Java e .NET complessivamente non c'avrò passato
più di cinque, forse sei anni.
Se mi facessi qualche esempio, te ne sarei grato.
Più che altro hai risvegliato vecchi ricordi che stavo cercando di rimuovere! :D

Probabilmente, anche qui, c'è una parte di sfortuna mia: è logico che quando
prendi tecnologie abbastanza nuove e le porti al limite succedono cose
inaspettate. Probabilmente oggi alcuni dei problemi che ho avuto non esisteranno
più ma, per tornare al discorso iniziale sullo spostare la complessità, se ho un
problema sul mio codice l'aggiusto e pace, se ho un problema su una VM brancolo
nel buio. Per questo mi stanno antipatiche :)

Ciao!
4ndre4
2016-10-14 20:04:28 UTC
Permalink
On 14/10/2016 20:49, ***@gmail.com wrote:

[...]
se ho un problema sul mio codice l'aggiusto e pace, se ho un problema su una VM brancolo
nel buio.
Ma che vuol dire? Non lo capisco. A parte che non mi hai convinto, con i
tuoi esempi, che i sistemi basati su vm siano inaffidabili al punto da
preferire un linguaggio compilato nativo, non capisco come la presenza o
meno di una vm possa impattare sulla capacita` di risoluzione di un
problema. E` un ambiente di esecuzione del codice come un altro. Sara`
che ho lavorato su troppi sistemi importanti scritti in Java, e che
funzionavano egregiamente, per credere a chiunque tiri fuori un "no
Java, per carita`".
--
4ndre4
f***@gmail.com
2016-10-14 20:16:49 UTC
Permalink
Post by 4ndre4
[...]
se ho un problema sul mio codice l'aggiusto e pace, se ho un problema su una
VM brancolo nel buio.
Ma che vuol dire? Non lo capisco. A parte che non mi hai convinto, con i
tuoi esempi, che i sistemi basati su vm siano inaffidabili al punto da
preferire un linguaggio compilato nativo, non capisco come la presenza o
meno di una vm possa impattare sulla capacita` di risoluzione di un
problema. E` un ambiente di esecuzione del codice come un altro. Sara`
che ho lavorato su troppi sistemi importanti scritti in Java, e che
funzionavano egregiamente, per credere a chiunque tiri fuori un "no
Java, per carita`".
Mai detto "no Java, per carità", anzi magari lo sceglierò per qualche progetto
futuro se ce ne sarà l'occasione, non ho pregiudizi di questo tipo. Poi non è
che i sistemi su cui ho lavorato io in Java non funzionavano bene, eh! :) Ti
ho solo elencato una manciata di esempi su problemi, alla fine risolti, non
relativi al codice ma all'ambiente.

E' ovvio quello che dici, che una VM è "un ambiente di esecuzione del codice
come un altro" ma, per forza di cose, deve essere più complesso dell'ambiente di
esecuzione nativo. Tutto qui.

Come detto prima, anche se non ti piace la parola, tutto è un compromesso ;)

Ciao!
4ndre4
2016-10-14 20:23:06 UTC
Permalink
On 14/10/2016 21:16, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
Mai detto "no Java, per carità",
Be`, hai detto che "grazie al cielo", ne stai lontano. Forse ho
frainteso, ma mi sembrava che stessi attribuendo a Java/C# dei difetti
intrinsechi per i quali starne alla larga, e siccome non trovo nei
problemi che hai elencato una conferma di quei difetti...
Post by f***@gmail.com
E' ovvio quello che dici, che una VM è "un ambiente di esecuzione del codice
come un altro" ma, per forza di cose, deve essere più complesso dell'ambiente di
esecuzione nativo. Tutto qui.
Perche`? In che senso una JVM sarebbe "piu` complessa" rispetto, ad
esempio, ad un sistema Windows/Linux/multi-core di esecuzione codice
C++? Tu parli di spostare la "complessita`". Il punto non e` che il C++
e` oggettivamente piu` complesso di Java e C#, e non perche` Java e C#
siano VM-based.
Post by f***@gmail.com
Come detto prima, anche se non ti piace la parola, tutto è un compromesso ;)
Ma non capisco dove sia il "compromesso", su Java/C#. Boh.
--
4ndre4
f***@gmail.com
2016-10-14 20:50:28 UTC
Permalink
Post by 4ndre4
[...]
Post by f***@gmail.com
Mai detto "no Java, per carità",
Be`, hai detto che "grazie al cielo", ne stai lontano. Forse ho
frainteso, ma mi sembrava che stessi attribuendo a Java/C# dei difetti
intrinsechi per i quali starne alla larga, e siccome non trovo nei
problemi che hai elencato una conferma di quei difetti...
Sì, scusa, le due cose non erano correlate. Java a me personalmente non piace
tantissimo per tutti altri motivi non rilevanti in questa discussione.
Post by 4ndre4
Post by f***@gmail.com
E' ovvio quello che dici, che una VM è "un ambiente di esecuzione del codice
come un altro" ma, per forza di cose, deve essere più complesso dell'ambiente
di esecuzione nativo. Tutto qui.
Perche`? In che senso una JVM sarebbe "piu` complessa" rispetto, ad
esempio, ad un sistema Windows/Linux/multi-core di esecuzione codice
C++? Tu parli di spostare la "complessita`". Il punto non e` che il C++
e` oggettivamente piu` complesso di Java e C#, e non perche` Java e C#
siano VM-based.
Come perché? :O In un caso hai ambiente-nativo/applicativo nell'altro
ambiente-nativo/VM/applicativo. Usi un layer in più perché fa cose che tu non
vuoi fare nell'applicativo, per risparmiare tempo o fatica. Questo vuol dire
che programmando un applicativo in Java hai "sotto" qualcosa di più complesso.

Ma forse ho capito il fraintendimento: non intendo "complesso" come "difficile",
intendo "complesso" come "con molti componenti".
Post by 4ndre4
Post by f***@gmail.com
Come detto prima, anche se non ti piace la parola, tutto è un compromesso ;)
Ma non capisco dove sia il "compromesso", su Java/C#. Boh.
Il mio punto era solo quello: Java è più "facile"/"rapido" perché quello che
fai a mano in C++ te lo fa invece "sotto" la VM. Chiaro che questo è un
compromesso: ottieni qualcosa (e.g. non deallochi a mano) e rinunci a qualcosa
(e.g. devi aggiungere un pezzo in più al sistema).

Ciao!
4ndre4
2016-10-14 21:01:16 UTC
Permalink
On 14/10/2016 21:50, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
Come perché? :O In un caso hai ambiente-nativo/applicativo nell'altro
ambiente-nativo/VM/applicativo. Usi un layer in più
Ma lo so benissimo. Il punto e` perche` questo influirebbe sulla
capacita` di risoluzione di un problema. Tu hai scritto "se ho un
problema sul mio codice l'aggiusto e pace, se ho un problema su una VM
brancolo nel buio." Non capisco quale sarebbe il "problema su una VM"
che ti farebbe brancolare nel buio.
Post by f***@gmail.com
Chiaro che questo è un
compromesso: ottieni qualcosa (e.g. non deallochi a mano) e rinunci a qualcosa
(e.g. devi aggiungere un pezzo in più al sistema).
Formalmente, questo non e` un compromesso. Aggiungere un pezzo in piu`
al sistema non significa rinunciare a niente.
--
4ndre4
f***@gmail.com
2016-10-14 22:01:49 UTC
Permalink
Post by 4ndre4
[...]
Post by f***@gmail.com
Come perché? :O In un caso hai ambiente-nativo/applicativo nell'altro
ambiente-nativo/VM/applicativo. Usi un layer in più
Ma lo so benissimo. Il punto e` perche` questo influirebbe sulla
capacita` di risoluzione di un problema. Tu hai scritto "se ho un
problema sul mio codice l'aggiusto e pace, se ho un problema su una VM
brancolo nel buio." Non capisco quale sarebbe il "problema su una VM"
che ti farebbe brancolare nel buio.
Post by f***@gmail.com
Chiaro che questo è un
compromesso: ottieni qualcosa (e.g. non deallochi a mano) e rinunci a qualcosa
(e.g. devi aggiungere un pezzo in più al sistema).
Formalmente, questo non e` un compromesso. Aggiungere un pezzo in piu`
al sistema non significa rinunciare a niente.
Non è la stessa cosa. E' un pezzo in più fuori dal tuo controllo diretto, se
fa cose diverse da come le vuoi fare te o ha dei bug non ci puoi mettere mano.
Ma stessa cosa vale per le librerie standard, per il kernel dell'OS e,
naturalmente, dai vari livelli hardware: ogni pezzo che aggiungi deleghi
qualcosa, rinunci alla possibilità di modificarne le funzioni e aumenti la
possibilità che qualcosa si rompa (più pezzi ci sono, più pezzi si rompono :) ).

Non ne sto facendo una guerra di religione o cercando di far partire un flame,
per come la vedo io è semplicemente la logica dell'astrazione all'opera.

Ciao!
4ndre4
2016-10-14 22:07:38 UTC
Permalink
On 14/10/2016 23:01, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
E' un pezzo in più fuori dal tuo controllo diretto
Come un qualunque pezzo di un sistema operativo/hardware.
Post by f***@gmail.com
se fa cose diverse da come le vuoi fare te o ha dei bug non ci puoi
mettere mano.

Come un qualunque pezzo di un sistema operativo/hardware.
Post by f***@gmail.com
Ma stessa cosa vale per le librerie standard, per il kernel dell'OS e,
naturalmente, dai vari livelli hardware
Appunto, quindi di che stiamo parlando? Ovviamente la JVM puo` avere dei
bug, ma quanto sono frequenti i bug in una JVM? Un sistema operativo
puo` avere dei bug, ma quanto frequenti sono i bug in un sistema
operativo? Una CPU puo` avere bug, ma quanto frequenti sono i bug in una
CPU? Personalmente, non mi e` mai capitato di desiderare di fare cose
diversamente da come sono implementate dalla JVM. A te si`? E se si`,
cosa? Chiedo per capire.
--
4ndre4
f***@gmail.com
2016-10-14 22:15:13 UTC
Permalink
Post by 4ndre4
[...]
Post by f***@gmail.com
E' un pezzo in più fuori dal tuo controllo diretto
Come un qualunque pezzo di un sistema operativo/hardware.
Post by f***@gmail.com
se fa cose diverse da come le vuoi fare te o ha dei bug non ci puoi
mettere mano.
Come un qualunque pezzo di un sistema operativo/hardware.
Post by f***@gmail.com
Ma stessa cosa vale per le librerie standard, per il kernel dell'OS e,
naturalmente, dai vari livelli hardware
Appunto, quindi di che stiamo parlando? Ovviamente la JVM puo` avere dei
bug, ma quanto sono frequenti i bug in una JVM? Un sistema operativo
puo` avere dei bug, ma quanto frequenti sono i bug in un sistema
operativo? Una CPU puo` avere bug, ma quanto frequenti sono i bug in una
CPU? Personalmente, non mi e` mai capitato di desiderare di fare cose
diversamente da come sono implementate dalla JVM. A te si`? E se si`,
cosa? Chiedo per capire.
Dipende dai requisiti del progetto, non c'è la soluzione universale. Se devo
fare una centralina di un'auto non ci metto una scheda intel con linux e sopra
un programma Java. E tra la suddetta centralina e un'applicazione Android ci
sono milioni di possibli sfumature e scelte progettuali possibili.

In generale non lo so, cerco sempre di valutare la situazione.

Ciao!
4ndre4
2016-10-14 22:34:01 UTC
Permalink
On 14/10/2016 23:15, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
Dipende dai requisiti del progetto, non c'è la soluzione universale. Se devo
fare una centralina di un'auto non ci metto una scheda intel con linux e sopra
un programma Java. E tra la suddetta centralina e un'applicazione Android ci
sono milioni di possibli sfumature e scelte progettuali possibili.
Appunto, stai parlando del niente ;)
--
4ndre4
f***@gmail.com
2016-10-14 22:43:16 UTC
Permalink
Post by 4ndre4
[...]
Post by f***@gmail.com
Dipende dai requisiti del progetto, non c'è la soluzione universale. Se devo
fare una centralina di un'auto non ci metto una scheda intel con linux e
sopra un programma Java. E tra la suddetta centralina e un'applicazione
Android ci sono milioni di possibli sfumature e scelte progettuali possibili.
Appunto, stai parlando del niente ;)
Al contrario, stavo cercando di mettere le cose in prospettiva. Se ritieni che
Java sia la panacea per tutti i mali in bocca al lupo! :)

Ciao!
4ndre4
2016-10-14 23:02:31 UTC
Permalink
On 14/10/2016 23:43, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
Al contrario, stavo cercando di mettere le cose in prospettiva. Se ritieni che
Java sia la panacea per tutti i mali in bocca al lupo! :)
MAI affermato questo. Se lo scopo dei tuoi messaggi e` di dimostrare che
nessun linguaggio e` la panacea di tutti i mali, possiamo anche
concordare e chiudere il discorso qui.

Io, pero`, sto cercando di capire quel che hai scritto. Tu hai parlato
di "complessita`" che si sposterebbe, in Java/C#, nella virtual machine,
e hai alluso a problemi che verrebbero fuori dall'uso della JVM per via
di tale complessita`.

Ti ho chiesto quali fossero i problemi che renderebbero lo spostamento
di tale complessita` un problema. Citi vaghi problemi di
incompatibilita`/configurazione/allocazione risorse. Ora, io rispetto la
tua esperienza, ma ammetterei che gli esempi che hai portato non sono
molto convincenti. Su Java e .NET non ci hai passato piu` di 5 anni. Io
uso queste tecnologie da piu` di 15 anni e problemi insormontabili non
ne ho trovati. Fortunato? Dal momento che Java domina il mercato dei
linguaggi, direi che non sono il solo.

Ribadisco che il motivo per cui Java e C# sono meno complicati del C++
non e` soltanto perche` la JVM incorpora una complessita` che in C++ e`
manuale (in fin dei conti, c'e` solo la garbage collection a fare la
differenza). Il problema e` che il C++ e` assurdamente complesso a
livello di linguaggio, non di implementazione.

Con questo, ripeto, non voglio dire che Java sia la panacea per tutti i
mali. Dico solo che i motivi paventati per cui sarebbe cosi` terribile
non mi sono stati ancora spieati.
--
4ndre4
f***@gmail.com
2016-10-14 23:17:44 UTC
Permalink
Post by 4ndre4
[...]
Post by f***@gmail.com
Al contrario, stavo cercando di mettere le cose in prospettiva. Se ritieni
che Java sia la panacea per tutti i mali in bocca al lupo! :)
MAI affermato questo. Se lo scopo dei tuoi messaggi e` di dimostrare che
nessun linguaggio e` la panacea di tutti i mali, possiamo anche
concordare e chiudere il discorso qui.
OK, su questo almeno siamo d'accordo :)
Post by 4ndre4
Io, pero`, sto cercando di capire quel che hai scritto. Tu hai parlato
di "complessita`" che si sposterebbe, in Java/C#, nella virtual machine,
e hai alluso a problemi che verrebbero fuori dall'uso della JVM per via
di tale complessita`.
Ti ho chiesto quali fossero i problemi che renderebbero lo spostamento
di tale complessita` un problema. Citi vaghi problemi di
incompatibilita`/configurazione/allocazione risorse. Ora, io rispetto la
tua esperienza, ma ammetterei che gli esempi che hai portato non sono
molto convincenti. Su Java e .NET non ci hai passato piu` di 5 anni. Io
uso queste tecnologie da piu` di 15 anni e problemi insormontabili non
ne ho trovati. Fortunato? Dal momento che Java domina il mercato dei
linguaggi, direi che non sono il solo.
Problemi "insormontabili" non ne ho mai trovati neppure io, ma allo stesso
tempo ho spesso trovato casi in cui Java non era neppure da prendere in
considerazione tra le scelte possibili. Probabilmente ho solo avuto la [s]fortuna
di lavorare in tante aziende, e a vari livelli, per cui ogni volta che si fa un
discorso in generale mi vengono in mente esempi e cerco di mettere tutto in
prospettiva. Magari hai lavorato per 15 anni sempre sulla stessa classe di
problemi o di macchine o, essendo esperto nel tuo campo, hai un bias
legittimo verso una certa tecnologia. Per questo è utile chiacchierare qui
su Usenet, ci si scambiano pareri provenienti da varie realtà.
Post by 4ndre4
Ribadisco che il motivo per cui Java e C# sono meno complicati del C++
non e` soltanto perche` la JVM incorpora una complessita` che in C++ e`
manuale (in fin dei conti, c'e` solo la garbage collection a fare la
differenza). Il problema e` che il C++ e` assurdamente complesso a
livello di linguaggio, non di implementazione.
Ah, anche su questo siamo d'accordo al 100%.
Resta il dubbio di quanto sarebbe complesso il C++ se non avesse il problema
di dover gestire la memoria come deve fare ora. Secondo me sarebbe di un ordine
di grandezza più semplice.
Post by 4ndre4
Con questo, ripeto, non voglio dire che Java sia la panacea per tutti i
mali. Dico solo che i motivi paventati per cui sarebbe cosi` terribile
non mi sono stati ancora spieati.
Non è terribile, dico solo che il suo campo d'applicazione è più limitato di
quanto non si pensi.

Ciao!
4ndre4
2016-10-14 23:21:39 UTC
Permalink
On 15/10/2016 00:17, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
Problemi "insormontabili" non ne ho mai trovati neppure io, ma allo stesso
tempo ho spesso trovato casi in cui Java non era neppure da prendere in
considerazione tra le scelte possibili.
Ovvero quali casi?
Post by f***@gmail.com
prospettiva. Magari hai lavorato per 15 anni sempre sulla stessa classe di
problemi
Direi proprio di no. E` molto improbabile che si passino 15 anni di
lavoro sempre sulla stessa classe di problemi, non credi? Ho lavorato in
molti contesti diversi, per clienti diversi e con esigenze diverse.

[...]
Post by f***@gmail.com
Non è terribile, dico solo che il suo campo d'applicazione è più limitato di
quanto non si pensi.
Ovvero?
--
4ndre4
f***@gmail.com
2016-10-14 23:38:18 UTC
Permalink
Post by 4ndre4
Post by f***@gmail.com
Non è terribile, dico solo che il suo campo d'applicazione è più limitato di
quanto non si pensi.
Ovvero?
Dove se dici "Java" ti guardano strano (se non addirittura ti prendono in giro)?
Tutto il mondo embedded, applicazioni di sistema, machine learning, number
crunching, servizi web, qualsiasi cosa mission critical, prototipazione GUI,
e, oddio, milioni di altri. Nella mia carriera, come t'ho detto, l'ho visto
usare veramente poco.

Ciao!
a***@gmail.com
2016-10-15 07:23:46 UTC
Permalink
On Saturday, 15 October 2016 00:38:18 UTC+1, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
Dove se dici "Java" ti guardano strano (se non addirittura ti prendono in giro)?
Eh, ma caro "fmassei", il fatto che tu abbia usato o visto usare pochissimo Java nella tua carriera non vuol affatto dire che "il campo di applicazione di Java e` piu` limitato di quanto si pensi". E` che *tu* sei sempre rimasto confinato in ambienti in cui Java non si usa. La verita` e` che Java e` il linguaggio piu` usato al mondo: piu` di 3 volte il C++. Non e` affatto vero che Java non si usi per il machine learning o per number crunching. Dove lo avresti tirato fuori? Dire poi che non si usi per i servizi web, o mission critical significa bestemmiare:

http://www.cinnober.com/newsletter/java-leads-highperformance-mission-critical-financial-applications

Addirittura esistono JSR per l'utilizzo di Java real-time:
http://www.oracle.com/technetwork/articles/java/nilsen-realtime-pt1-2264405.html

Insomma, potrei continuare a citare. Io credo che tu, con tutto il rispetto, conosca Java molto poco ;)
f***@gmail.com
2016-10-15 08:16:14 UTC
Permalink
[...]
Post by f***@gmail.com
Dove se dici "Java" ti guardano strano (se non addirittura ti prendono in giro)?
Eh, ma caro "fmassei" [...]
Sì, vabbè, che ti devo dire.. Hai ragione.

Ciao!
Enrico Maria Giordano
2016-10-15 10:09:38 UTC
Permalink
Post by 4ndre4
Appunto, quindi di che stiamo parlando? Ovviamente la JVM puo` avere dei
bug, ma quanto sono frequenti i bug in una JVM? Un sistema operativo
puo` avere dei bug, ma quanto frequenti sono i bug in un sistema
operativo? Una CPU puo` avere bug, ma quanto frequenti sono i bug in una
CPU?
Non uso VM e sono d'accordo per quanto riguarda le CPU. Ma per i sistemi
operativi (parlo di Windows, l'unico che conosco) i bug sono purtroppo
più frequenti di quello che uno vorrebbe, anche se a volte più che di
bug si tratta di rottura di compatibilità con il comportamento
precedente (oltre a rottura di qualcos'altro...).

EMG

--
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg
Enrico Maria Giordano
2016-10-15 09:59:18 UTC
Permalink
Post by f***@gmail.com
Non è la stessa cosa. E' un pezzo in più fuori dal tuo controllo diretto, se
fa cose diverse da come le vuoi fare te o ha dei bug non ci puoi mettere mano.
Ma stessa cosa vale per le librerie standard, per il kernel dell'OS e,
naturalmente, dai vari livelli hardware: ogni pezzo che aggiungi deleghi
qualcosa, rinunci alla possibilità di modificarne le funzioni e aumenti la
possibilità che qualcosa si rompa (più pezzi ci sono, più pezzi si rompono :) ).
Non ne sto facendo una guerra di religione o cercando di far partire un flame,
per come la vedo io è semplicemente la logica dell'astrazione all'opera.
Detto così è sicuramente vero. E penso che tutti, chi più chi meno,
abbiano qualche volta imprecato contro un bug non dipendente dal proprio
codice e quindi non risolvibile a meno di salti mortali tripli con
avvitamento...

EMG

--
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg
Enrico Maria Giordano
2016-10-14 18:04:03 UTC
Permalink
Post by f***@gmail.com
Secondo me è stato sempre un linguaggio troppo artificiosamente
complesso e un programmatore che deve scrivere un software
applicativo non ha tempo da perdere appresso alle sottigliezze del
linguaggio. E' il linguaggio che deve essere semplice abbastanza da
non influire negativamente sui tempi di sviluppo.
Un appunto mi sento di farlo: un codice C++ scritto in maniera
leggibile è in effetti molto leggibile, anche da chi non conosce bene
il linguaggio. Il problema è che non è facile trovare programmatori
abbastanza bravi (o umili) da scrivere a modo. Ad esempio io cerco
sempre di non usare mai templates, operatori, tutti i _cast<>, tutti
i _ptr<>, di sicuro nulla che è nei nuovi standards, etc.etc. Certo
se lo facessi il mio codice sarebbe lungo meno della metà, ma se lo
dessi a qualcuno di poco esperto non lo potrebbe leggere. Se questo
mi fa passare da "stupido" o "poco esperto" pace, me ne farò una
ragione: secondo me è quello che dovrebbero fare tutti.
No, non è così semplice. Intanto è chiaro che puoi semplificare il C++
quanto vuoi, basta appunto non usare quello che offre, cosa che mi
sembra un po' un controsenso. E poi, la semantica del C++ purtroppo è
piena di trabocchetti e cambia a seconda della situazione. Secondo me è
questo che spaventa un po'.

EMG

--
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg
f***@gmail.com
2016-10-14 18:16:44 UTC
Permalink
Post by Enrico Maria Giordano
Post by f***@gmail.com
Secondo me è stato sempre un linguaggio troppo artificiosamente
complesso e un programmatore che deve scrivere un software
applicativo non ha tempo da perdere appresso alle sottigliezze del
linguaggio. E' il linguaggio che deve essere semplice abbastanza da
non influire negativamente sui tempi di sviluppo.
Un appunto mi sento di farlo: un codice C++ scritto in maniera
leggibile è in effetti molto leggibile, anche da chi non conosce bene
il linguaggio. Il problema è che non è facile trovare programmatori
abbastanza bravi (o umili) da scrivere a modo. Ad esempio io cerco
sempre di non usare mai templates, operatori, tutti i _cast<>, tutti
i _ptr<>, di sicuro nulla che è nei nuovi standards, etc.etc. Certo
se lo facessi il mio codice sarebbe lungo meno della metà, ma se lo
dessi a qualcuno di poco esperto non lo potrebbe leggere. Se questo
mi fa passare da "stupido" o "poco esperto" pace, me ne farò una
ragione: secondo me è quello che dovrebbero fare tutti.
No, non è così semplice. Intanto è chiaro che puoi semplificare il C++
quanto vuoi, basta appunto non usare quello che offre, cosa che mi
sembra un po' un controsenso. E poi, la semantica del C++ purtroppo è
piena di trabocchetti e cambia a seconda della situazione. Secondo me è
questo che spaventa un po'.
Che il linguaggio lo devi conoscere almeno un po' è ovvio. Ma se non lo usi
da uno o due anni, sapere di poterlo leggere senza un manuale o lo standard
davanti è meglio, no? :)

Ciao!
Enrico Maria Giordano
2016-10-14 21:01:25 UTC
Permalink
Post by f***@gmail.com
Post by Enrico Maria Giordano
No, non è così semplice. Intanto è chiaro che puoi semplificare il C++
quanto vuoi, basta appunto non usare quello che offre, cosa che mi
sembra un po' un controsenso. E poi, la semantica del C++ purtroppo è
piena di trabocchetti e cambia a seconda della situazione. Secondo me è
questo che spaventa un po'.
Che il linguaggio lo devi conoscere almeno un po' è ovvio. Ma se non lo usi
da uno o due anni, sapere di poterlo leggere senza un manuale o lo standard
davanti è meglio, no? :)
Sicuramente. Ma se per farlo devi usare un sottoinsieme del linguaggio
allora forse per quello che devi fare non è il linguaggio giusto, no? Ad
esempio, sicuramente è improponibile come linguaggio per sviluppare un
gestionale (quello che faccio io di solito).

EMG

--
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg
f***@gmail.com
2016-10-14 22:04:16 UTC
Permalink
Post by Enrico Maria Giordano
Post by f***@gmail.com
Post by Enrico Maria Giordano
No, non è così semplice. Intanto è chiaro che puoi semplificare il C++
quanto vuoi, basta appunto non usare quello che offre, cosa che mi
sembra un po' un controsenso. E poi, la semantica del C++ purtroppo è
piena di trabocchetti e cambia a seconda della situazione. Secondo me è
questo che spaventa un po'.
Che il linguaggio lo devi conoscere almeno un po' è ovvio. Ma se non lo usi
da uno o due anni, sapere di poterlo leggere senza un manuale o lo standard
davanti è meglio, no? :)
Sicuramente. Ma se per farlo devi usare un sottoinsieme del linguaggio
allora forse per quello che devi fare non è il linguaggio giusto, no?
Certamente, ma i requisiti da prendere in considerazione nella scelta di un
linguaggio sono tanti, e a volte non si può neppure scegliere (e.g. adattare
codice legacy).

Ciao!
Enrico Maria Giordano
2016-10-15 10:06:24 UTC
Permalink
Post by f***@gmail.com
Post by Enrico Maria Giordano
Sicuramente. Ma se per farlo devi usare un sottoinsieme del linguaggio
allora forse per quello che devi fare non è il linguaggio giusto, no?
Certamente, ma i requisiti da prendere in considerazione nella scelta di un
linguaggio sono tanti, e a volte non si può neppure scegliere (e.g. adattare
codice legacy).
Chiaro.

EMG

--
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg
4ndre4
2016-10-14 22:50:11 UTC
Permalink
On 14/10/2016 22:01, Enrico Maria Giordano wrote:

[...]
Post by Enrico Maria Giordano
Sicuramente. Ma se per farlo devi usare un sottoinsieme del linguaggio
allora forse per quello che devi fare non è il linguaggio giusto, no?
Il problema e` anche la difficolta` di penetrazione di certi concetti
avanzati del linguaggio tra la base di sviluppatori. Il C++ potrebbe
anche avere una marcia in piu`, in certi casi, ma se non ti viene
spiegato come innestarla, non la userai mai. Non vale solo per il C++.
Per forza di cose, la ricezione di certi aspetti del linguaggio e`
lenta: gli sviluppatori non hanno di solito tempo e/o voglia di
aggiornarsi, leggersi un libro nuovo sul C++, tenersi in linea con le
ultime novita`. Ma c'e` anche da dire che spesso certe discussioni
rimangono appannaggio di elite. Per quanto ci si sforzi di tenersi al
passo, alla maggioranza degli sviluppatori manca tutta il bagaglio di
discussioni tra specialisti, che hanno portato all'introduzione di certi
concetti. Per esempio, leggere Modern C++ Design di Alexandrescu ti
risulta sicuramente interessante nell'immediato, ma hai comunque bisogno
di qualcuno che ti spieghi come applicare certi concetti nella tua
realta` di tutti i giorni - o comunque lavorare in un contesto in cui
hai la possibilita` di applicarli. Altrimenti e` facile che tu ti
rinchiuda nella tua zona di comfort e continui ad usare quelle "quattro"
cose che conosci, che comprendi, e che sei sicuro facciano il loro
dovere nel tuo contesto.
--
4ndre4
enoquick
2016-10-15 01:14:21 UTC
Permalink
Post by Enrico Maria Giordano
Sicuramente. Ma se per farlo devi usare un sottoinsieme del linguaggio
allora forse per quello che devi fare non è il linguaggio giusto, no? Ad
esempio, sicuramente è improponibile come linguaggio per sviluppare un
gestionale (quello che faccio io di solito).
EMG
Avendo la libreria per gui che ti piace di piu (c'e ne sono un po) si
puo tranquillamente fare (e lo fatto un po di anni fa).
E' piu un problema di padronanza del linguaggio che altro,secondo me.
acc
2016-10-14 19:22:50 UTC
Permalink
Post by Enrico Maria Giordano
Non so per quanto riguarda Java/C# ma sono d'accordo che il C++ abbia
perso molto terreno da quando, alla sua nascita, sembrava potesse
sostituire rapidamente il C. Secondo me è stato sempre un linguaggio
troppo artificiosamente complesso e un programmatore che deve scrivere
un software applicativo non ha tempo da perdere appresso alle
sottigliezze del linguaggio. E' il linguaggio che deve essere semplice
abbastanza da non influire negativamente sui tempi di sviluppo. Poi
certo dipende anche dal tipo di software. Per alcuni tipi di software
molto complessi magari il C++ è il linguaggio ideale.
Java e C# sono molto piu' chiari, in confronto la sintassi del C++ e' un
gran pasticcio, il problema e' che hanno una destinazione diversa e non
sono interscambiabili.
Io credo che la grande diffusione di questi linguaggi abbia preso il
posto di quello che prima erano pascal/delphi e VB, e magari di alcune
applicazioni che venivano scritte in C/C++ piu' per convenienza che per
reale necessita'.
Poi e' naturale che oggi la percentuale di utilizzo di C/C++ si sia
ridotta, gran parte del software sono (cr)app Android, non e' sceso
l'utilizzo di C/C++, sono saliti gli altri.

PS: ben ritrovato Enrico ;-)
4ndre4
2016-10-14 19:52:03 UTC
Permalink
On 14/10/2016 20:22, acc wrote:

[...]
Post by acc
Java e C# sono molto piu' chiari, in confronto la sintassi del C++ e' un
gran pasticcio, il problema e' che hanno una destinazione diversa e non
sono interscambiabili.
Se consideri ASP.NET/C# e Java/GWT/Spring, gli utilizzi sono pressoche`
gli stessi. Sistemi importanti possono essere tirati su con essi in
relativamente breve tempo (Spring Boot ha una produttivita` eccezionale,
ad esempio). Sono assolutamente convinto che il motivo per cui molti
sistemi restino su C++, oggi, e` puramente storico. Dubito che in molti
di quei contesti ci sia un reale valore aggiunto nell'utilizzarlo.
Motivi per preferire Java/C# a C++, in molti luoghi dove non servano le
caratteristiche peculiari di C++, ce ne sono a bizzeffe. Per esempio,
attorno a Java si e` formalizzata tutta una metodologia di test dalla
quale non si puo` piu` prescindere. Si potrebbe citare molto altro.
Confrontata con JCP, la procedure di standardizzazione del C++ si muove
come un dinosauro.
Post by acc
Io credo che la grande diffusione di questi linguaggi abbia preso il
posto di quello che prima erano pascal/delphi e VB
Non direi. Delphi/VB erano tipicamente utilizzati per applicazioni
desktop, che ormai sono in fortissimo declino.
--
4ndre4
Enrico Maria Giordano
2016-10-14 21:10:23 UTC
Permalink
Post by 4ndre4
Non direi. Delphi/VB erano tipicamente utilizzati per applicazioni
desktop, che ormai sono in fortissimo declino.
Interessante. E da cosa sarebbero state sostituite? Da applicazioni web
o che altro? Io, a differenza di voi ingegneri multinazionali, sono un
semplice programmatore freelance romano di applicazioni gestionali
(desktop e web) e sto lavorando molto poco... :-( Quindi mi interessa
davvero capire dov'è andato a finire il mercato...

EMG

--
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg
4ndre4
2016-10-14 22:03:58 UTC
Permalink
On 14/10/2016 22:10, Enrico Maria Giordano wrote:

[...]
Post by Enrico Maria Giordano
Interessante. E da cosa sarebbero state sostituite?
Principalmente web e mobile. Oggi e` facilissimo tirare su un front end
web con le stesse funzionalita` di un'applicazione desktop, e con un
approccio responsive
(https://en.wikipedia.org/wiki/Responsive_web_design) tradurlo
automaticamente per qualunque dispositivo. Certo, deve piacerti
smanettare in JavaScript e la miriade di librerie collegate, ma oggi non
se ne fa piu` a meno. I vantaggi di questo approccio, al posto di un
qualunque sistema di sviluppo desktop, sono innumerevoli.
Post by Enrico Maria Giordano
o che altro? Io, a differenza di voi ingegneri multinazionali, sono un
semplice programmatore freelance romano di applicazioni gestionali
Sei uno sviluppatore di tutto rispetto, altro che "semplice".
Post by Enrico Maria Giordano
(desktop e web) e sto lavorando molto poco... :-(
Mi dispiace molto di questo.
--
4ndre4
acc
2016-10-14 22:17:19 UTC
Permalink
Post by 4ndre4
Principalmente web e mobile. Oggi e` facilissimo tirare su un front end
web con le stesse funzionalita` di un'applicazione desktop, e con un
approccio responsive
(https://en.wikipedia.org/wiki/Responsive_web_design) tradurlo
automaticamente per qualunque dispositivo. Certo, deve piacerti
smanettare in JavaScript e la miriade di librerie collegate, ma oggi non
se ne fa piu` a meno. I vantaggi di questo approccio, al posto di un
qualunque sistema di sviluppo desktop, sono innumerevoli.
Che ci siano vantaggi e' fuori discussione, specialmente per quanto
riguarda l'accessibilita' praticamente con qualunque dispositivo, ma ci
sono anche grosse limitazioni e in pratica prestazioni limitate.
4ndre4
2016-10-14 22:34:56 UTC
Permalink
On 14/10/2016 23:17, acc wrote:

[...]
ci sono anche grosse limitazioni e in pratica prestazioni limitate.
Hummm... no, non mi sembra, sulla base della mia esperienza. Quali
limitazioni?
--
4ndre4
acc
2016-10-14 22:53:30 UTC
Permalink
Post by 4ndre4
Hummm... no, non mi sembra, sulla base della mia esperienza. Quali
limitazioni?
Un'interfaccia web, pur coadiuvata con ajax e' pur sempre limitata oltre
che poco efficiente riguardo allo spreco di banda sulla rete.
E se da un lato e' vero che in teorie e' possibile implementare tutta
una serie di stored procedure per migliorare questi aspetti, e' anche
vero che nella pratica comune questo non si fa, si punta tutto su query
"pesanti" con grande spreco di risorse, ma veloci da realizzare.
4ndre4
2016-10-14 23:05:07 UTC
Permalink
On 14/10/2016 23:53, acc wrote:

[...]
Post by acc
Un'interfaccia web, pur coadiuvata con ajax e' pur sempre limitata oltre
che poco efficiente riguardo allo spreco di banda sulla rete.
Scusa, "limitata" da cosa? Dove sarebbe lo "spreco" di banda? Si tratta
di comunicazione su rete. Un applicativo client/server deve comunque
trasferire dati. Non vedo dove sia la differenza.
Post by acc
E se da un lato e' vero che in teorie e' possibile implementare tutta
una serie di stored procedure per migliorare questi aspetti, e' anche
vero che nella pratica comune questo non si fa, si punta tutto su query
"pesanti" con grande spreco di risorse, ma veloci da realizzare.
Cosa c'entrano le query e le stored procedure? Spiegami quel che hai
scritto con un esempio concreto. Mi fai un esempio di un'applicazione
desktop che sarebbe molto inefficiente da costruire come web app? Chiedo
per capire, non per polemica.
--
4ndre4
acc
2016-10-14 23:42:36 UTC
Permalink
Post by 4ndre4
Scusa, "limitata" da cosa? Dove sarebbe lo "spreco" di banda? Si tratta
di comunicazione su rete. Un applicativo client/server deve comunque
trasferire dati. Non vedo dove sia la differenza.
Le query SQL scambiano grosse quantita' di dati, ad esempio quando devi
popolare una datagrid multi livello. Con javascript porre dei limiti e'
molto macchinoso e non si fa, piuttosto si tende a fare schermate piu'
semplici, con minore interazione, quando questa comporta una
comunicazione client-server.
a***@gmail.com
2016-10-15 07:27:08 UTC
Permalink
On Saturday, 15 October 2016 00:42:34 UTC+1, acc wrote:

[...]
Post by acc
Le query SQL scambiano grosse quantita' di dati, ad esempio quando devi
popolare una datagrid multi livello.
Ma questo e` sbagliato a prescindere, nel client/server. Non c'entra il web o JavaScript. Come principio architetturale, e` sempre sbagliato inviare al client una molte spropositata di dati. Io ho lavorato su progetti dove si arrivava facilmente a 30 milioni di record. Su altri progetti, venivano elaborate 150 milioni di transazioni al giorno. Pensare di costruire un client desktop che mostrasse a video un datagrid era semplice follia. Piuttosto, si stabiliscono dei criteri di ricerca e si lavora su un subset minuscolo di dati. Questo prescinde da web/desktop.
Enrico Maria Giordano
2016-10-15 10:05:51 UTC
Permalink
Post by 4ndre4
Post by Enrico Maria Giordano
Interessante. E da cosa sarebbero state sostituite?
Principalmente web e mobile. Oggi e` facilissimo tirare su un front end
web con le stesse funzionalita` di un'applicazione desktop, e con un
approccio responsive
(https://en.wikipedia.org/wiki/Responsive_web_design) tradurlo
automaticamente per qualunque dispositivo. Certo, deve piacerti
smanettare in JavaScript e la miriade di librerie collegate, ma oggi non
se ne fa piu` a meno. I vantaggi di questo approccio, al posto di un
qualunque sistema di sviluppo desktop, sono innumerevoli.
Io normalmente per il web faccio tutto a mano senza appoggiarmi a
niente. Finora non mi è mai capitato un lavoro che non fosse gestibile
in questo modo (forse perché faccio cose piccole). Ma non sono affatto
chiuso ad adottare altri sistemi, quando ne valesse la pena.
Post by 4ndre4
Post by Enrico Maria Giordano
o che altro? Io, a differenza di voi ingegneri multinazionali, sono un
semplice programmatore freelance romano di applicazioni gestionali
Sei uno sviluppatore di tutto rispetto, altro che "semplice".
Grazie del supporto morale! :-)
Post by 4ndre4
Post by Enrico Maria Giordano
(desktop e web) e sto lavorando molto poco... :-(
Mi dispiace molto di questo.
Vorrei capire perché è successo tutto questo. Per me la "crisi" è
iniziata nel 2012. Fino al 2011 lavoravo benissimo...

EMG

--
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg
f***@gmail.com
2016-10-14 22:09:10 UTC
Permalink
Post by Enrico Maria Giordano
Post by 4ndre4
Non direi. Delphi/VB erano tipicamente utilizzati per applicazioni
desktop, che ormai sono in fortissimo declino.
Interessante. E da cosa sarebbero state sostituite? Da applicazioni web
o che altro? Io, a differenza di voi ingegneri multinazionali, sono un
semplice programmatore freelance romano di applicazioni gestionali
(desktop e web) e sto lavorando molto poco... :-( Quindi mi interessa
davvero capire dov'è andato a finire il mercato...
Sì, tecnologie web, principalmente HTML5 e JS, fatti girare o compilati in
tutte le possibili salse.
Se sei un programmatore vecchia scuola e vuoi fare "lo switch" non ti ci vuole
nulla a metterti al passo, solo un po' di studio: la complessità di un sistema
medio di oggi è nulla rispetto a quella di una applicazione gestionale media di
una ventina d'anni fa, IMHO.

Ciao!
Enrico Maria Giordano
2016-10-15 10:15:17 UTC
Permalink
Post by f***@gmail.com
Post by Enrico Maria Giordano
Interessante. E da cosa sarebbero state sostituite? Da applicazioni web
o che altro? Io, a differenza di voi ingegneri multinazionali, sono un
semplice programmatore freelance romano di applicazioni gestionali
(desktop e web) e sto lavorando molto poco... :-( Quindi mi interessa
davvero capire dov'è andato a finire il mercato...
Sì, tecnologie web, principalmente HTML5 e JS, fatti girare o compilati in
tutte le possibili salse.
Se sei un programmatore vecchia scuola e vuoi fare "lo switch" non ti ci vuole
nulla a metterti al passo, solo un po' di studio: la complessità di un sistema
medio di oggi è nulla rispetto a quella di una applicazione gestionale media di
una ventina d'anni fa, IMHO.
Immagino però che tu stia parlando di ampliare il proprio curriculum
vitae da sottoporre alle aziende per eventuale assunzione. Il mio
problema però è diverso: io ho (quasi) sempre lavorato da solo a casa (e
mi piace lavorare così) e solo dal 2012 in poi ho visto sfumare tutto il
lavoro che avevo con i clienti finali. E' questo che mi chiedo dove sia
finito. I clienti finali non sanno niente di HTML5, JS, etc. Vogliono un
programma funzionante e basta. A chi si stanno rivolgendo ora? Per me è
attualmente un mistero...

EMG

--
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg

acc
2016-10-14 21:17:28 UTC
Permalink
Post by 4ndre4
Se consideri ASP.NET/C# e Java/GWT/Spring, gli utilizzi sono pressoche`
gli stessi.
Intercambiabili era riferito rispetto al C/C++, che Java e C# siano piu'
o meno la stessa cosa e' risaputo, ma per certe applicazioni non vanno bene.
Post by 4ndre4
Motivi per preferire Java/C# a C++, in molti luoghi dove non servano le
caratteristiche peculiari di C++, ce ne sono a bizzeffe.
Concordo, tant'e' che ci sono anche altri nuovi linguaggi che stanno
prendendo piede e persino qualche rivalutazione (snake oil).
Post by 4ndre4
Non direi. Delphi/VB erano tipicamente utilizzati per applicazioni
desktop, che ormai sono in fortissimo declino.
Non vuol dir nulla, pure Java era nato con una certa idea in mente, ma
non si puo' dire che l'utilizzo attuale la rispetti, anzi.
Non concordo sul declino dei desktop, quelli ci saranno sempre, semmai
c'e' un altro mercato (smartphone, tablet, applicazioni internet) che e'
diventato piu' grande. Tra l'altro uno dei punti di forza di C# e' la
piattaforma .Net, nata su desktop, ma passare da un'interfaccia
all'altra non e' certo un problema.
Enrico Maria Giordano
2016-10-14 21:27:04 UTC
Permalink
Post by acc
Non concordo sul declino dei desktop, quelli ci saranno sempre,
Lo spero! :-)
Post by acc
semmai c'e' un altro mercato (smartphone, tablet, applicazioni
internet) che e' diventato piu' grande.
Sicuramente il mercato delle applicazioni internet è cresciuto molto in
questi ultimi anni, me ne sono accorto anch'io dato che una parte
considerevole del mio (ora poco) lavoro è migrata lì. Però non capisco
il discorso smartphone e tablet. A me pare che quel mercato sia fatto
solo di applicazioni più o meno entertainment e consumer, non certo
professionali. E allora? Dov'è cavolo è andato a finire il mercato del
software professionale? Forse dipende dalla crisi economica? Mah...

EMG

--
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg
acc
2016-10-14 22:09:53 UTC
Permalink
Post by Enrico Maria Giordano
Sicuramente il mercato delle applicazioni internet è cresciuto molto in
questi ultimi anni, me ne sono accorto anch'io dato che una parte
considerevole del mio (ora poco) lavoro è migrata lì. Però non capisco
Azz... t'e' andata male come a me. :-(
Post by Enrico Maria Giordano
il discorso smartphone e tablet. A me pare che quel mercato sia fatto
solo di applicazioni più o meno entertainment e consumer, non certo
La maggior parte si, e' robetta.
Post by Enrico Maria Giordano
professionali. E allora? Dov'è cavolo è andato a finire il mercato del
software professionale? Forse dipende dalla crisi economica? Mah...
Il professionale c'e' ancora, ma buona parte e' migrata su database,
spesso con (poco funzionali) interfacce web, il fatto che si veda poco
e' perche' oscurato dal marasma web-based che e' in forte espansione.
Le ditte che fanno gestionale i loro programmatori li hanno gia', i
nuovi assunti devono fare la parte web perche' cosi' l'impiegata puo'
consultare le fatture tramite una app, tra un pokemon e l'altro. :-P
4ndre4
2016-10-14 21:56:11 UTC
Permalink
On 14/10/2016 22:17, acc wrote:

[...]
Post by acc
Intercambiabili era riferito rispetto al C/C++, che Java e C# siano piu'
o meno la stessa cosa e' risaputo, ma per certe applicazioni non vanno bene.
Si`, certo. Se volessimo contare, pero`, il numero di ambiti per cui C++
va bene, oggi, sono sicuramente molti meno che quelli in cui si puo`
usare Java/C#.
Post by acc
Non vuol dir nulla
In che senso "non vuol dir nulla"? Tu affermavi che Java/C#
sostituiscono delphi/pascal/vb, il che non e` vero.
Post by acc
pure Java era nato con una certa idea in mente, ma
non si puo' dire che l'utilizzo attuale la rispetti, anzi.
Tu dici? Io dico di no: Java era nato per essere portabile, e difatti e`
uno dei sistemi piu` portabili che esistano. Il declino delle
applicazioni desktop e` sotto gli occhi di tutti. Oggi si preferisce di
gran lunga web e mobile.
--
4ndre4
acc
2016-10-14 22:43:23 UTC
Permalink
Post by 4ndre4
Si`, certo. Se volessimo contare, pero`, il numero di ambiti per cui C++
va bene, oggi, sono sicuramente molti meno che quelli in cui si puo`
usare Java/C#.
Certo.
Post by 4ndre4
In che senso "non vuol dir nulla"? Tu affermavi che Java/C#
sostituiscono delphi/pascal/vb, il che non e` vero.
Nel senso che vanno bene per quel tipo di applicazioni, il fatto che
oggi si usi Java/C# piuttosto di altri linguaggi e' solo perche' questi
hanno preso piede e non per evidente superiorita', secondo me c'entra
anche il fatto che sono gratuiti, dotati di un framework, pratici come
un interprete e dotati di ambienti ben automatizzati.
Post by 4ndre4
Tu dici? Io dico di no: Java era nato per essere portabile, e difatti e`
Java era nato per funzionare su sistemi limitati, ma dotati di "chip
java". Io questi sistemi non li ho visti, o meglio, non hanno avuto
diffusione, in compenso ho visto delle JVM che definirle "limitate" ci
vuole un bel coraggio, mega e mega di roba.
Post by 4ndre4
uno dei sistemi piu` portabili che esistano.
Questo si, sopratutto per quanto riguarda il framework.
Ma se avessero voluto fare la stessa cosa con delphi, ad esempio, non
vedo ostacoli, se non la diffusione.
Post by 4ndre4
Il declino delle
applicazioni desktop e` sotto gli occhi di tutti. Oggi si preferisce di
gran lunga web e mobile.
Se per "desktop" intendi il tipo di interfaccia, sicuramente c'e' stata
una grande diffusione di dispositivi mobili, questo pero' non significa
che il desktop sia morto, solo che non e' piu' la fetta grossa del
mercato. Pero' lo sviluppo di applicazioni non e' solo quello, ad
esempio i server che tengono su tutta la baracca (web) sono ancora
sviluppati con linguaggi convenzionali (C/C++), lo stesso vale per altri
software che necessitano di una certa efficienza.
f***@gmail.com
2016-10-14 22:54:18 UTC
Permalink
Post by acc
Post by 4ndre4
Tu dici? Io dico di no: Java era nato per essere portabile, e difatti e`
Java era nato per funzionare su sistemi limitati, ma dotati di "chip
java". Io questi sistemi non li ho visti, o meglio, non hanno avuto
diffusione, in compenso ho visto delle JVM che definirle "limitate" ci
vuole un bel coraggio, mega e mega di roba.
Gli ARM con Jazelle (tipo v5,v7) possono eseguire bytecode java, poi Jazelle
è stato sostituito con ThumbEE.
Post by acc
Post by 4ndre4
uno dei sistemi piu` portabili che esistano.
Questo si, sopratutto per quanto riguarda il framework.
"Java è compatibile" è solo marketing, naturalmente. Qualsiasi codice C scritto
seguendo lo standard e compilato sul target è molto più compatibile.

Ciao!
f***@gmail.com
2016-10-14 22:59:15 UTC
Permalink
Post by f***@gmail.com
Gli ARM con Jazelle (tipo v5,v7)
Errata: v5 solo i marchiati J, v7 tutti (ma con set ridotto).

Ciao!
4ndre4
2016-10-14 23:16:35 UTC
Permalink
On 14/10/2016 23:54, ***@gmail.com wrote:

[...]
Post by f***@gmail.com
"Java è compatibile" è solo marketing, naturalmente.
Magari "portabile", non "compatibile", e no, non e` solo marketing.
Java *e`* portabile.
Post by f***@gmail.com
Qualsiasi codice C scritto
seguendo lo standard e compilato sul target è molto più compatibile.
LOL :) "Compatibile" che cosa significa? Ti ci voglio vedere a far
qualunque cosa di concreto con il C standard. Lo standard non dice
niente riguardo a thread, networking, database, crittazione, etc.
Devi comunque ricorrere a librerie esterne. In Java, tutto questo e`
gia` fornito in maniera pienamente portabile. Non e` roba da poco.
--
4ndre4
f***@gmail.com
2016-10-14 23:22:55 UTC
Permalink
Post by 4ndre4
[...]
Post by f***@gmail.com
"Java è compatibile" è solo marketing, naturalmente.
Magari "portabile", non "compatibile", e no, non e` solo marketing.
Java *e`* portabile.
Post by f***@gmail.com
Qualsiasi codice C scritto
seguendo lo standard e compilato sul target è molto più compatibile.
LOL :) "Compatibile" che cosa significa? Ti ci voglio vedere a far
qualunque cosa di concreto con il C standard. Lo standard non dice
niente riguardo a thread, networking, database, crittazione, etc.
Devi comunque ricorrere a librerie esterne. In Java, tutto questo e`
gia` fornito in maniera pienamente portabile. Non e` roba da poco.
Rispondo nell'altro ramo del thread ;)

Ciao!
acc
2016-10-15 00:01:18 UTC
Permalink
Post by f***@gmail.com
"Java è compatibile" è solo marketing, naturalmente. Qualsiasi codice C scritto
seguendo lo standard e compilato sul target è molto più compatibile.
Guarda che non lo dicevo mica con ironia, secondo me il codice Java e'
piu' portatile che il codice C, in entrambi i casi ci sono delle
precauzioni e magari occorrera' rinunciare a qualcosa o scrivere piu'
codice per gestire le differenze tra i sistemi target. Resta il fatto
che per il C c'e' una buona portabilita' solo per il linguaggio (che e'
poca cosa), con l'ambiente e' quasi un disastro, con Java questo
problema e' molto minore.
4ndre4
2016-10-14 23:14:05 UTC
Permalink
On 14/10/2016 23:43, acc wrote:

[...]
Post by acc
Nel senso che vanno bene per quel tipo di applicazioni, il fatto che
oggi si usi Java/C# piuttosto di altri linguaggi e' solo perche' questi
hanno preso piede e non per evidente superiorita'
Perdonami, ma affermare che qualcosa viene utilizzato perche` ha preso
piede e` tautologico. Il punto e` chiedersi *perche`* ha preso piede.
Superiorita`, poi, puo` voler dire molte cose. Cosa significa, in
generale, "superiorita`"? Non ha un valore oggettivo. Un linguaggio e`
superiore ad altri in contesti specifici. Anche la maggior semplicita`
di un linguaggio puo` essere indice di superiorita`. Un linguaggio come
Python, per esempio, per me e` di molto superiore a C++ in molti ambiti.
Post by acc
secondo me c'entra
anche il fatto che sono gratuiti, dotati di un framework, pratici come
un interprete e dotati di ambienti ben automatizzati.
Anche C++ ha implementazioni gratuite.
Post by acc
Ma se avessero voluto fare la stessa cosa con delphi, ad esempio, non
vedo ostacoli, se non la diffusione.
Ci hanno provato a fare la stessa cosa con Delphi, e hanno fallito
miseramente (vedi Kylix e il mai decollato Lazarus). Il problema e` che
e` proprio la natura intrinseca di un linguaggio compilato a impedire
una cosa del genere.
Post by acc
Se per "desktop" intendi il tipo di interfaccia, sicuramente c'e' stata
una grande diffusione di dispositivi mobili, questo pero' non significa
che il desktop sia morto
Okay, se trovi qualche azienda che necessita ancora di applicazioni
desktop da commercializzare, e che assume sviluppatori per quello, fai
un fischio. Credo ci metterai un po' ;)
Post by acc
mercato. Pero' lo sviluppo di applicazioni non e' solo quello
Parlavo di applicazioni desktop.
--
4ndre4
acc
2016-10-15 00:24:49 UTC
Permalink
Post by 4ndre4
Perdonami, ma affermare che qualcosa viene utilizzato perche` ha preso
piede e` tautologico. Il punto e` chiedersi *perche`* ha preso piede.
Superiorita`, poi, puo` voler dire molte cose. Cosa significa, in
generale, "superiorita`"? Non ha un valore oggettivo. Un linguaggio e`
superiore ad altri in contesti specifici. Anche la maggior semplicita`
di un linguaggio puo` essere indice di superiorita`. Un linguaggio come
Python, per esempio, per me e` di molto superiore a C++ in molti ambiti.
Per la maggior parte delle applicazioni Java e' adeguato ed e' molto
pratico, poi e' gratis (e non e' cosa da poco) e ben documentato.
Lo stesso vale per C# e insieme al framework .Net lo preferisco a Java.
Probabilmente lo stesso varrebbe per Delphi, ma questo ad esempio non e'
gratis.
Post by 4ndre4
Anche C++ ha implementazioni gratuite.
Framework meno ricchi, con le librerie "di serie" non vai molto lontano.
Per certi usi resta insostituibile, ma per altri dove non ho bisogno
della massima efficienza, preferisco C#.
Post by 4ndre4
Ci hanno provato a fare la stessa cosa con Delphi, e hanno fallito
miseramente (vedi Kylix e il mai decollato Lazarus). Il problema e` che
e` proprio la natura intrinseca di un linguaggio compilato a impedire
una cosa del genere.
Secondo me conta anche l'aspetto commerciale, Delphi ha avuto un grande
successo (gli altri no), poi non ha saputo tenere il passo. Ma bisogna
anche considerare il fatto che Java era gratuito e per questo si e'
diffuso molto in ambito didattico, anche questo conta molto.
Post by 4ndre4
Okay, se trovi qualche azienda che necessita ancora di applicazioni
desktop da commercializzare, e che assume sviluppatori per quello, fai
un fischio. Credo ci metterai un po' ;)
Beh, quelle ci sono sempre.
Enrico Maria Giordano
2016-10-14 21:06:48 UTC
Permalink
Post by acc
Java e C# sono molto piu' chiari, in confronto la sintassi del C++ e' un
gran pasticcio,
Non conosco Java e C# ma certamente la sintassi C e, molto ma molto
peggio, C++ non è il massimo della chiarezza. Beh, però c'è di peggio,
dai. Ma, come in tutto, credo sia questione di abitudine. Almeno per
quanto riguarda, appunto, la sintassi. Il problema, come ho già detto, è
la complessa semantica del C++.
Post by acc
il problema e' che hanno una destinazione diversa e non
sono interscambiabili.
Come ho detto, non conosco Java e C# ma penso che sia vero quello che dici.
Post by acc
PS: ben ritrovato Enrico ;-)
Altrettanto. Chi sei? Io seguo sempre. I messaggi spesso sono
praticamente a zero e quei pochi non sono interessanti. Stavolta è
uscito fuori un thread interessante. :-)

EMG

--
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg
acc
2016-10-14 21:55:21 UTC
Permalink
Post by Enrico Maria Giordano
Non conosco Java e C# ma certamente la sintassi C e, molto ma molto
peggio, C++ non è il massimo della chiarezza. Beh, però c'è di peggio,
dai. Ma, come in tutto, credo sia questione di abitudine. Almeno per
quanto riguarda, appunto, la sintassi. Il problema, come ho già detto, è
la complessa semantica del C++.
Io col C mi trovo benissimo, col C++ molto meno e' un pastrocchio,
chiaramente mi riferisco alla parte OOP e aggiungerei specialmente sotto
Windows.
Da questo punto di vista, molto meglio Java o C#, il codice e' piu'
chiaro ed e' piu' difficile sbagliare, la scrittura piu' veloce.
Post by Enrico Maria Giordano
Come ho detto, non conosco Java e C# ma penso che sia vero quello che dici.
Per applicazioni gestionali sono l'ideale, anche perche' dotati di
innumerevoli "librerie" gia' pronte e piuttosto potenti, la pappa pronta.
Post by Enrico Maria Giordano
Altrettanto. Chi sei? Io seguo sempre. I messaggi spesso sono
praticamente a zero e quei pochi non sono interessanti. Stavolta è
uscito fuori un thread interessante. :-)
Una volta frequentavo attivamente c.l.clipper, ogni tanto ci passo
ancora, ma in modalita' passiva. ;-)
Da qualche anno ho abbandonato xbase e sono passato al lato oscuro,
faccio il "tuttofare" per un ecommerce, ma dovevo pure magna'. :-(
Enrico Maria Giordano
2016-10-15 09:54:45 UTC
Permalink
Post by acc
Post by Enrico Maria Giordano
Altrettanto. Chi sei? Io seguo sempre. I messaggi spesso sono
praticamente a zero e quei pochi non sono interessanti. Stavolta è
uscito fuori un thread interessante. :-)
Una volta frequentavo attivamente c.l.clipper, ogni tanto ci passo
ancora, ma in modalita' passiva. ;-)
Anch'io. :-)
Post by acc
Da qualche anno ho abbandonato xbase e sono passato al lato oscuro,
faccio il "tuttofare" per un ecommerce, ma dovevo pure magna'. :-(
Se continua così dovrò farlo anch'io... :-(

EMG

--
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg
LutherBlissett
2016-04-15 08:16:45 UTC
Permalink
Post by enoquick
Post by LutherBlissett
Post by enoquick
Per fortuna non si è obbligato a conoscere ed utilizzarle
tutte quando si progetta sw.
Ma se ti arriva tra le mani scritto da altri...
Si prende un libro o si cera su internet il significato o si ha fortuna
di avere un collega esperto si chiede a lui.
E cosi si apprende qualcosa che non si conosceva.
Appunto...prima o poi te lo devi studiare.
enoquick
2016-04-16 14:43:10 UTC
Permalink
Post by LutherBlissett
Post by enoquick
Post by LutherBlissett
Post by enoquick
Per fortuna non si è obbligato a conoscere ed utilizzarle
tutte quando si progetta sw.
Ma se ti arriva tra le mani scritto da altri...
Si prende un libro o si cera su internet il significato o si ha fortuna
di avere un collega esperto si chiede a lui.
E cosi si apprende qualcosa che non si conosceva.
Appunto...prima o poi te lo devi studiare.
Come qualunque novità.
Con il tempo i costrutti aggiunti sia al linguaggio che nella std lib
verranno usati e quindi prima o poi ci si sbatterà contro.
Fa parte della vita,solo la morte rimane immobile per l'eternità.
LutherBlissett
2016-04-18 06:40:33 UTC
Permalink
Post by enoquick
Come qualunque novità.
Con il tempo i costrutti aggiunti sia al linguaggio che nella std lib
verranno usati e quindi prima o poi ci si sbatterà contro.
Fa parte della vita,solo la morte rimane immobile per l'eternità.
Grazie, faro' tesoro.
Loading...