Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
Programmazione e linguaggi
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet
Precedente :: Successivo  
Autore Messaggio
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 9824
Residenza: Tokelau

MessaggioInviato: 28 Dic 2012 10:34    Oggetto: Rispondi citando

spacexplorer, vacci piano. Ho semplificato al massimo, rispondendo ad un utente che mi chiedeva se Java era simile al C. Non ho mai inteso dire che Java e C++ siano la stessa cosa, se leggi bene quello che ho scritto vedrai.

E comunque nell'ambito dell'OOP, Java e C++ sono molto più vicini tra loro genealogicamente di quanto possa sembrare, tanto che l'evoluzione di ognuno dei due linguaggi è sempre in qualche modo stata influenzata dall'altro.
Top
Profilo Invia messaggio privato HomePage
spacexplorer
Dio minore
Dio minore


Registrato: 08/10/09 10:22
Messaggi: 610

MessaggioInviato: 28 Dic 2012 13:44    Oggetto: Rispondi citando

Ho scritto "sbottando" non tanto come accusa diretta nei tuoi confronti,
diciamo che, non per ZN, a causa dell'ambiente italico di questi tempi
mi stò irrancidendo significativamente...

Java e C++ hanno una concezione OOP "vicina", ok, il Java è un pelo più
pulito anche se le sue "curiosità" le ha, ma sono pensati con intenti
*completamente* diversi. Non importa che scrivi le classi allo stesso modo:
il paradigma di Java e quindi il motivo per cui puoi scegliere Java è del
tutto diverso dal C++. Se scegli il C++ 99/100 vuoi fare un'applicazione
standalone, computational-intensive, pensata per "far tutto in casa dal
ferro all'automobile"; se scegli il Java 99/100 vuoi fare un'applicazione
"di rete", "grossa", destinata ad essere usata da applicazioni terze
magari una componente di qualche infrastruttura multitier embedded. Il fatto
che Java e C++ abbiano una sintassi piuttosto simile ed una altrettanto
simile visione dell'OOP non ha alcuna rilevanza né DEVE AVER alcuna
rilevanza nella scelta del linguaggio!

Un linguaggio lo scegli per la sua comodità, dalla libreria standard alla
sintassi, per le sue performance ecc pensare di avvicinarsi ad un linguaggio
perché è simile ad uno che già si conosce è una moda moderna che porta a
*scribacchiare mostri* non applicazioni, è alla base delle scelte di troppi
di "insegnare a programmare" in C "perché è la base" (di che? Dell'OS che
usi? Al ragazzino delle superiori o alla matricola vuoi insegnare a scrivere
un OS? Vicino alla macchina? Allora perché non usi l'assembly?) di scrivere
spazzatura in PHP (diffuso a detta di molti per simile al C, trova tu la
somiglianza...) ecc.

Simili idee IMO vanno lart-ate con estrema cura!
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 9824
Residenza: Tokelau

MessaggioInviato: 28 Dic 2012 17:50    Oggetto: Rispondi citando

capisco e pure condivido a grandi linee tutto quello che dici ma ti ripeto: ad una persona che non sa niente di Java e ti chiede 'ma è simile al C?' come puoi rispondere?

Poi volendo chiacchierare si potrebbe andare avanti per anni, ma tra quelli (come il sottoscritto) che pensano che non per forza si debba scrivere OO e che a volte per quanto buono sia il compilatore magari un paio di funzioni scritte in ASM le metto comunque perché -dati alla mano- il mio codice è più veloce... beh, sai, si finisce in una guerra di religione. E non ne ho interesse, quindi non dirmi se non sei d'accordo con me Wink

Ciao
Top
Profilo Invia messaggio privato HomePage
spacexplorer
Dio minore
Dio minore


Registrato: 08/10/09 10:22
Messaggi: 610

MessaggioInviato: 28 Dic 2012 18:07    Oggetto: Rispondi citando

Sono daccordo Wink salvo sulla risposta! La mia sarebbe: "no, è completamente
diverso, è simile come sintassi, ovvero è simile come una Lamborghini
assomiglia ad una Panda: han entrambe il volante, il cambio, le ruote ecc. Se
vuoi vedere qualcosa a tema programmazione prova Python, guarda Programming
in Python 3 di Mark Summerfield, se lo trovi "difficile" leggi Think Python di
Allen Downey, torna al primo e poi leggi The Python Standard Library by Example
di Doug Hellmann. A questo punto puoi giocare con un dcvs, consiglio bazaar ma
anche mercurial e git non son male. Impara un minimo di Vim e sarai pronto per
risolvere qualche problema semplice".

Giusto per evitare la guerra di religione tento un preload, se va in hit son
due post in meno Very Happy "Certo, così ci vogliono anni, si spaventa e scompare!"
se c'è veramente l'interesse questa IMO è Una Strada™®© altrimenti si evita
frustrazioni e problemi per tutti, per diventare programmatori ci vogliono
almeno 10 anni, salvo casi geniali straordinari quindi meglio saper subito
che non tutto si fa schioccando le dita USA-style!

Del resto se l'ambiente è giusto vuoi che non attirino le magie di vim, dai
digraphs al testo "che appare e scompare (dd, yy, G, gg, ecc)" ImageMagick
dal terminale, nmap, byobu, tcpdump con la password dell'ftp di turno (si,
nel 2012, senza 's' davanti o dietro), i giochini con Asterisk, watch dentro
terminator ecc? Wink
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 9824
Residenza: Tokelau

MessaggioInviato: 28 Dic 2012 21:25    Oggetto: Rispondi citando

Giuro non l'avrei detto ma inizi a starmi simpatico Twisted Evil ... sarà stato "tento il preload... etc" che mi sa di lettura dell'architecture reference manual dell'ARMv5... Razz

Comunque ti ringrazio per i consigli, quando vorrò imparare Python li seguirò.

Tornando in topic, ti sembrerà una provocazione ma in un sondaggio anche un programmatore alle prime armi conta un voto, e quindi non prendertela, alla fine se milioni di persone usano un certo linguaggio non vuole dire che sia intrisecamente 'migliore', no?

E alcune automobili sono più o meno simili le une alle altre. A quale linguaggio trovi che Java somigli? Cool
Top
Profilo Invia messaggio privato HomePage
spacexplorer
Dio minore
Dio minore


Registrato: 08/10/09 10:22
Messaggi: 610

MessaggioInviato: 28 Dic 2012 23:02    Oggetto: Rispondi citando

Ti deludo: le mie conoscenze di assembly sono iper-minime, l'avevo iniziato
a guardare taaanto tempo fa all'inizio del corso di Calcolatori, ma roba non
molto più complessa di un Hello World x86 e sparc (un Sun Fire v210 dismesso),
il preload con speranza di cache hit viene da li Smile l'ho ripreso con alcuni
in tempi recenti leggendo alcuni articoli di LinuxPro, letto solo perché
l'abbonamento on-line era iper-economico (sono orfano di H&C e Linux&c mi sa
che stà facendo la stessa fine, sigh)...

I libri del post di prima a dire il vero son più adatti a chi inizia a
programmare, se già lo fai IMO è interessante solo The Python Standard Library
by Example, al massimo Programming Python di Mark Lutz che cmq è "didattico"...

Sul sondaggio: certo, però lasciami togliere il sassolino di rilevare come
"il sondaggista" riveli il suo background Smile il sassolone della sfuriata
è proprio perché la diffusione di certi linguaggi è dovuta IMO a certi
comportamenti, a partire dalle università per carità, ma è un danno per tutti.
Senza voler esagerare guardando certi datacenter: OVH, Aruba &c bé credo che
il 50% dell'energia e del ferro impiegati sia per "overhead" di "siti" scritti
coi piedi in php a se anche sali di livello mostri come WebSphere o anche
applicazioni standalone come Eclipse sono ottimi esempi di progetti
sicuramente complessi, sicuramente scritti da Programmatori... Ma cavolo, son
dei bloat di codice insostenibili!

È vero che puoi scrivere belle cose in linguaggi osceni e orrori in linguaggi
"stupendi" però noto un certo trend: il 100% di ciò che vedo scritto in php è
spazzatura o quasi, un 70% di quel che trovo in Java gli va dietro, solo un
20% di quel che trovo in Python o Ruby è scritto da cani, qualcosa vorrà dire
e non certo che Python o Ruby non sono adatti per compiti "seri" visto che
YouTube gira su Python insieme all'infrastruttura di streaming della BBC ed un
po' di altre cose "leggere", su Ruby Rails è un buon esempio di qualcosa non
proprio "piccolo"... Se si spinge verso un certo modo di ragionare, l'opposto
di quel che trovi in ambito Microsoft per capirci, ci troviamo meglio tutti Smile

Su Java... Come somiglianza a livello sintattico sicuramente il C++ è molto
vicino, come paradigma non saprei, allargandomi molto potrei dire che Perl6
con Parrot ha un'implementazione simile ma il paradigma è comunque diverso:
Java non è stato pensato come linguaggio ma come piattaforma, "framework" o
"unix 2.0" come preferisci, ad ogni modo una piattaforma che comprende il
linguaggio ma anche un sistema di packaging e di runtime che intende rendere
inutili i package system, il concetto di installazione, di programma ecc.

Java vuol dire una piattaforma "sistema operativo" dove scrivere un programma
è solo implementare un algoritmo senza preoccuparsi di sistemi di distribuzione
update, ecc, è la piattaforma che gestisce le dipendenze, usa l'hw che c'ha
sotto, quale che esso sia (32/64 bit, little o big endian ecc) è il paradigma
di UNIX trasportato a livello di singolo software "modernizzato", distribuito
in rete (vedi l'uso dei nomi di dominio rovesciati nei package) ecc.
purtroppo il marketing della SUN non ha mai spinto il concetto, Gosling&c han
deciso di assomigliare al C++ volutamente per "agevolare" la transazione nel
Nuovo Mondo® e ottenuto il risultato di buttar perle ai porci giacché la
risposta è stata: "ok, piglio Java, mi do una letta alla sua sintassi e
'programmo' come già faccio in C++". Il risultato lo conosciamo...

È uno dei miei chiodi fissi che se avessero scelto una sintassi stile Python
avrebbero impiegato molto più tempo a crescere ma sarebbe nato lo UNIX 2.0
che Gosling voleva, avrebbe dato una bella cosa al prezzo di dar un po' d'olio
al criceto e capire come e perché funziona ad un certo modo... Purtroppo non
è successo ed un'altra pietra miliare dell'IT è più o meno finita... Vedi le
OpenGL (Irix, SGI, i più manco san cosa siano anche se OpenGL "le conoscono")
vedi lo ZFS e tanti altri...

Vabbé prima o poi imparerò la sintesi Sad
Top
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 20:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 29 Dic 2012 11:45    Oggetto: Rispondi citando

Ma come fai a dire che il 100% del codice php fa schifo?
Diciamo che se ti fermi a joomla o simili...
Ci sono piattaforme (purtroppo qui in italia stanno venendo fuori di recente) enterprise scritte in php perchè meglio non c'è!
Ovviamente bisogna rinunciare ad alcune cose che hanno altre tecnologie, però si può farne a meno se completi il sistema con java,c++ o altra roba.
Top
Profilo Invia messaggio privato
spacexplorer
Dio minore
Dio minore


Registrato: 08/10/09 10:22
Messaggi: 610

MessaggioInviato: 29 Dic 2012 12:19    Oggetto: Rispondi citando

Linkamene una, sinora non né ho viste... Non parlo tanto di qualità intrinseca
del codice quanto di gestibilità, leggibilità, modificabilità dello stesso, il
php è estremamente inadatto in tal senso. Questo poi fa anche si che chi lo
sceglie in massima parte lo fa perché non ha già competenze di suo ed il
cocktail è servito... È come quelli che ancora usano subversion o scrivono
applicazioni cartografiche professionali in Delphi, non è che non si possa fare
ma è come fare una casa di paglia e fango...

Sul fare a meno di qualcosa mi domando perché dovrei usare un linguaggio
con un interprete che quanto a performance lasciamo perdere, lo stesso
Lerdorf disse che se avesse immaginato il successo di php avrebbe cercato
di farlo meno peggio e per di più devo "completarlo" con altri linguaggi
perché lui non mi basta? Youtube è scritto in Python che butta fuori roba
web (html/js/css ecc) non ha bisogno di essere completato da nulla, idem
l'infrastruttura della BBC, il portale della NASA (e afferenti) perché mi
dovrei far del male col php?
Top
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 20:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 29 Dic 2012 15:22    Oggetto: Rispondi citando

Guarda, io ora sto lavorando su una di quelle.
Non posso linkarla semplicemente perchè non è disponibile come piattaforma per il pubblico ma è stata sviluppata internamente per l'uso interno.
Alcune parte, è vero, non sono scritte da dio però la maggior parte dei componenti sì.

Poi parlando con colleghi che hanno più esperienza di me è venuto fuori che alcune parti di backend bancari li stanno riscrivendo in php perchè più leggero rispetto ad altri mostri come .net o java e in certi casi (macchine meno recenti) può essere importante. Non tirare fuori cobol per favore perchè se si parla di backend web è meglio che quello resti nel cassetto.

Sull'uso di linguaggi misti: sai, non esiste il linguaggio che da solo può far tutto e bene; alcuni parti di un sistema complesso vanno scritte in un linguaggio ed altre no.

Dove sono io l'intera piattaforma (anche se non l'ho ancora vista tutta perchè sono lì da poco) è basta su php,java,c,c++ e c/c++.
Fa un po' te. La parte php si occupa delle cose più "web" ma anche delle transazioni e pensa che il dbms è mysql per tutto. Alla faccia del dbms poco professionale.
Si muovono un sacco di soldi eppure si son scelti php e mysql.

Php può esser compilato, quelli di facebook hanno rilasciato tempo fa un compilatore preparato da loro. Non c'è solo quello però.

Per la mantenibilità/leggibilità: un pattern è uguale per tutti.
Se scrivo un Chain-of-responsibility pattern bene lo posso fare in c++,in java, in ruby o in qualunque altro linguaggio; se lo scrivo male idem.
Mantenerlo in php è come mantenerlo in java.

Poi alcuni linguaggi permettono certi virtuosismi mentre altri no; a volte questi servono a coprire dei limiti del linguaggio mentre altri restano nell'ambito dello stile di programmazione.

Per esempio in php l'ereditarietà è singola ma tramite alcuni virtuosismi puoi implementare il mixin (simulando quindi la multipla).
Non supporta l'overload però tramite il magic method "__call" la puoi implementare.
Perchè non supporta questa cosa? Perchè il linguaggio non è tipizzato quindi anche se l'overload è comodo, non è necessario.

Gli stessi discorsi li possiamo fare per tutti gli altri linguaggi.
Java come php non supporta l'ereditarietà multipla ma ultimamente vedo che la gente si sbatte per simularla anche lì perchè cazzo, a volte il mixin serve!

Poi php non è il top ma non lo è nessun linguaggio in senso assoluto.

Ci sono mostri, hai ragione ma io li ho visti indipendentemente dalla tecnologia.
Robe come magento sono pesantissime (visto anche l'eav a livello totale) però openbravo è un buon prodotto.
Joomla fa schifo (anche se con l'ultima major un po' è migliorato) però altri concorrenti (drupal per esempio) no.
Ci sono cms infami scritti in java, per peso e funzionalità (e anche proprio come codice) ma altri no.
Insomma, c'è di tutto in tutti i casi!
Top
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 20:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 29 Dic 2012 15:25    Oggetto: Rispondi

Aggiungo che è vero che spesso capita di trovare gente che sceglie un linguaggio perchè simile a qualcosa che già conosce però non è sempre così.
Tornando al mio caso avrebbero potuto lasciar stare php ma evidentemente hanno ritenuto che per determinate parti fosse migliore lui di altri...
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet Tutti i fusi orari sono GMT + 1 ora
Vai a Precedente  1, 2, 3, 4  Successivo
Pagina 2 di 4

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi