|
|
|
![]() |
|
Strumenti |
![]() |
#21 |
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
PHP è oggettivamente una chiavica. E' come tentare d'imparare la logica intuizionistica da uno perennemente fatto di crack. Usa altro.
|
![]() |
![]() |
![]() |
#22 | |
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
altermetax: Se sei principiante ti consiglio di partire con python e non con java. Quest'ultimo può confondere all'inizio. Te lo dico da Javista
![]() Quote:
Sentendoti parlare mi sembra di sentire i tifosi di calcio parlare delle rispettive squadre, nel bene e nel male.
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
|
![]() |
![]() |
![]() |
#23 |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
L'eterna diatriba!
![]() |
![]() |
![]() |
![]() |
#24 | |
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Quote:
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
|
![]() |
![]() |
![]() |
#25 | |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Quote:
Sarà che sono vecchio, ma preferisco i linguaggi compilati e la gestione manuale della memoria. |
|
![]() |
![]() |
![]() |
#26 |
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Infatti era il punto dove volevo arrivare, ovvero che Java ha un compilatore JIT esattamente come C#. Volevo appunto una spiegazione più approfondita, magari sono io che mi sono perso qualcosa
![]() 1) mentre col java hai sempre codice interpretato. 2) caratteristiche solo emulative da parte del java. 3) ma nelle loro piccole differenza si vede chi è un linguaggio e chi cerca di esserlo Il punto 1 abbiamo visto che è errato... sono curioso sui restanti.
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
![]() |
![]() |
![]() |
#27 |
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
|
![]() |
![]() |
![]() |
#28 | |
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
Quote:
E' una precisazione importante, visto quanti ancora nel 2014 parlano inutilmente degli inesistenti "linguaggi compilati/interpretati". |
|
![]() |
![]() |
![]() |
#29 | |
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Quote:
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
|
![]() |
![]() |
![]() |
#30 |
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
|
![]() |
![]() |
![]() |
#31 | |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Quote:
La tua affermazione resta comunque verissima e degna di nota. |
|
![]() |
![]() |
![]() |
#32 |
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Per java esiste più di un compilatore nativo.. GCJ della famiglia GNU che però è fermo a java5 (forse anche prima).. E un software della excelsior che crea eseguibili sia per architetture x86 che x64.. quest'ultimo è a pagamento.. C# non ne so niente.. Inoltre java stesso si comporta in modo diverso in base ai parametri con il quale viene avviato (-server) che decidono se applicare o meno certi tipi di ottimizzazione (questo parametro inoltre è abilitato di default se la JVM decide che il computer che la ospita è abbastanza potente)..
Quindi ha ragione anche in pratica è io ho scritto una boiata prima ![]()
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
![]() |
![]() |
![]() |
#33 | |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Quote:
|
|
![]() |
![]() |
![]() |
#34 | |
Member
Iscritto dal: Dec 2013
Messaggi: 90
|
La compilazione jit java e c# sono un pò diverse
c# compila direttamente frammenti di bytecode secondo alcune specifiche. java analizza il bytecode e decide quale compilare e quale no,si avrà quindi un miscuglio, e non sapremo mai come la jvm stia elaborando i nostri dati. Questo ad esempio implica che col java non si può lavorare con dei puntatori reali proprio perchè diventa complesso la gestione della memoria da parte della jvm(segnalata anche proprio dal consumo superiore rispetto al c#). Cosa differente per il c# che compilando comunque tutto può concedere l'unsafe ed accedere "manualmente" alla memoria. Ho cercato di dirlo nella maniera piu corta e semplice possibile,quindi tralasciamo i piccolissimi dettagli. Lasciamo poi perdere i vari accrocchi di interprete/compilatore per tutti i liguaggi esistenti ma basiamoci per quello che sono stati creati. Quote:
Il tutto risiede dal tipo di applicazione che si vuole sviluppare e per che architettura lo si vuole fare. Un linguaggio nato interpretato avrà caratteristiche ben diverse da un linguaggio nato compilato |
|
![]() |
![]() |
![]() |
#35 | |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Quote:
Dimmi tu secondo te cos'è un linguaggio se non un formalismo per dire ad un esecutore quali operazioni compiere. Secondo me troppo spesso si fa confusione tra quelle che sono le caratteristiche di un linguaggio e quelli che sono gli strumenti disponibili in un dato contesto. Non capisco inoltre tutta questa paura del c++, è un linguaggio come tanti altri, se uno vuole complicare la comprensione del codice ci può riuscire in qualunque linguaggio. |
|
![]() |
![]() |
![]() |
#36 | |||
Member
Iscritto dal: Dec 2013
Messaggi: 90
|
Quote:
Quote:
Cosi come un linguaggio può essere Imperativo altri potranno essere ad oggetti o ancora altri puramente matematici o interpretati o compilati. Sicuramente esisterà anche un interprete dell'assembly ma il linguaggio non è stato creato per quello e per tanto risulterà impraticabile il suo utilizzo se non per circostanze circoscritte ad una singola applicazione. Un linguaggio "nato" interpretato allora invece svolgerà sicuramente meglio i compiti di quelli "modificati" interpretati. Il discorso è molto lungo e complesso e per quello ho voluto sottolineare il fatto di prendere un linguaggio per quello che è nato e non per come l'hanno modificato. Quote:
Solo che le sue potenzialità lo rendono alquanto complesso,ancor piu del c per il semplice fatto che il c++ ha la pessima caratteristica di nascondere molto al programmatore. Il c++ poi rimane affetto della scarsa portabilità se non con l'ausilio di framework ad hoc + un cospicuo uso di define e connessa ricompilazione del tutto sulla piattaforma desiderata. Creare dunque una semplice finestra che faccia semplici cose risulta molto piu complesso e lungo sul c++(seguito dal java) rispetto al phyton. Ma qui si va poi sempre a finire sul discorso di cosa vogliamo realizzare e generalizzare in questo caso fa piu male che bene. |
|||
![]() |
![]() |
![]() |
#37 | ||
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Quote:
ma mancano le risposte alla domanda 2 e la domanda 3 (sopratutto il punto 3): Quote:
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
||
![]() |
![]() |
![]() |
#38 | ||
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Quote:
Quote:
Non ha senso distingue i linguaggi <<ad oggetti>> da quelli <<compilati>>, infatti i linguaggi ad oggetti esistono sia compilati (come il C++), sia interpretati (come python). Lo stesso discorso possiamo applicarlo alle altre tipologie di linguaggi. Il fatto che per alcuni linguaggi esista solo il compilatore o solo l'interprete è un altro discorso, non meno importante certo, ma comunque distinto. In fin dei conti, se io so di dover scrivere un programma che fa un'elaborazione estremamente pesante sceglierò un linguaggio per il quale so che esiste un compilatore, mentre per applicazioni leggere preferirò un linguaggio per il quale so che esistono numerose librerie semplici da utilizzare, per un'applicazione rivolta al grande pubblico invece sceglierò il linguaggio per il quale so che esistono compilatori o interpreti per il maggior numero di piattaforme, ancora, se devo unire due o più di queste caratteristiche cercherò di sviluppare ogni componente dell'applicazione nel linguaggio che meglio si presta e poi le unirò. Quest'ultima tecnica è utilizzata ad esempio fondendo java e c/c++ grazie al meccanismo jni, con il quale si possono "mappare" dei metodi su delle funzioni contenute in dll e quindi scritte in codice macchina altamente performante. Il vantaggio è di poter scrivere la maggior parte del codice in un linguaggio più "semplice", portabile, e per il quale sono disponibili più librerie, e di dover riadattare alle varie piattaforme solo la parte critica dell'applicazione. |
||
![]() |
![]() |
![]() |
#39 | |||
Member
Iscritto dal: Dec 2013
Messaggi: 90
|
Quote:
Se un programmatore vuole realmente le prestazioni al 100% certamente non userà ne java ne c# o ancor piu il phyton. i punti 2/3 li ho già accennati vedi ad esempio l'uso dei puntatori, ma non prolunghiamoci inutilmente su queste "guerre" inutili. Quote:
Quote:
Provo con un altro esempio: Il c è noto che non sia un linguaggio ad oggetti, ma oggi ci sono tecniche per poterlo usare alla stregua del c++, il c però è nato imperativo perciò sarà un accrocchio ad oggetti perchè nonostante potremmo usarli faremo molta piu fatica rispetto a qualsiasi altro linguaggio nato cosi! STESSO discorso per compilato ed interpretato, un linguaggio nasce per determinate caratteristiche quali anche la sua compilazione o interpretazione. Vedi ad esempio il Phyton che nato interpretato è superiore a qualsiasi accrocchio di interprete c o c++,perchè offre potenzialità e comandi dati proprio dalla sua consapevolezza di essere interpretato, cosa che nel c/c++ non esiste! E spesso è anche da modificare il codice c interpretato perchè certi frammenti di codice quali spesso inline assembly non si possono interpretare! Oggi come oggi esistono dunque interpreti e compilatori per quasi tutti i linguaggi ma le caratteristiche intrinsiche del linguaggio stesso portano a scegliere chi è nato per uno specifico scopo rispetto ad altri. Poi naturalmente è sempre necessario valutare caso per caso e scegliere quello che piu si adatta alle nostre caratteristiche. Non solo java può fondere i vari linguaggi!Lo si può fare un pò con tutti,quindi rimane una caretteristica poco rilevante. |
|||
![]() |
![]() |
![]() |
#40 | ||
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Quote:
Quote:
3) ma nelle loro piccole differenza si vede chi è un linguaggio e chi cerca di esserlo Mi spiego meglio: cosa significa ESSERE UN LINGUAGGIO e CERCARE DI ESSERE UN LINGUAGGIO?
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:36.