Mostra notizie nelle discussioni
  • Avatar
    ☺
    Scritto da
    il 2013-01-15 12:57:49.0 alle 2013-01-15 12:57:49.0
    Trollate totali: 2001
    Alex.Tg
    Ho un bel progettino per te. Che ti renderà ricco e famoso.
    Parti leggendo questo: Re: Dart e i due link di suoranciata

    Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.

    Vantaggi:
    - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
    - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
    - possibilità di aggiornare la VM senza dover aggiornare il browser
    - far uscire i linguaggi dalle browser-wars

    Svantaggi:
    - nessuno

    Fallo e avrai un futuro di oro, incenso e birra.
    • Avatar
      Scritto da
      Non Autenticato
      il 2013-01-15 13:54:12.0 alle 2013-01-15 13:54:12.0
      Re: Alex.Tg
      Scritto da: Renton Thurston
      > Ho un bel progettino per te. Che ti renderà ricco e famoso.
      > Parti leggendo questo: Re: Dart e i due link di suoranciata
      >
      > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
      >
      > Vantaggi:
      > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
      > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
      > - possibilità di aggiornare la VM senza dover aggiornare il browser
      > - far uscire i linguaggi dalle browser-wars
      >
      > Svantaggi:
      > - nessuno
      >
      > Fallo e avrai un futuro di oro, incenso e birra.

      perchè le applet non esistono più?
      • Avatar
        ☺
        Scritto da
        il 2013-01-15 14:01:55.0 alle 2013-01-15 14:01:55.0
        Trollate totali: 2001
        Re: Alex.Tg
        Scritto da:
        > Scritto da: Renton Thurston
        > > Ho un bel progettino per te. Che ti renderà ricco e famoso.
        > > Parti leggendo questo: Re: Dart e i due link di suoranciata
        > >
        > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
        > >
        > > Vantaggi:
        > > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
        > > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
        > > - possibilità di aggiornare la VM senza dover aggiornare il browser
        > > - far uscire i linguaggi dalle browser-wars
        > >
        > > Svantaggi:
        > > - nessuno
        > >
        > > Fallo e avrai un futuro di oro, incenso e birra.
        >
        > perchè le applet non esistono più?

        Le applet non c'entrano.
        • Avatar
          Scritto da
          Non Autenticato
          il 2013-01-15 14:36:14.0 alle 2013-01-15 14:36:14.0
          Re: Alex.Tg
          Scritto da: Renton Thurston
          > Scritto da:
          > > Scritto da: Renton Thurston
          > > > Ho un bel progettino per te. Che ti renderà ricco e famoso.
          > > > Parti leggendo questo: Re: Dart e i due link di suoranciata
          > > >
          > > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
          > > >
          > > > Vantaggi:
          > > > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
          > > > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
          > > > - possibilità di aggiornare la VM senza dover aggiornare il browser
          > > > - far uscire i linguaggi dalle browser-wars
          > > >
          > > > Svantaggi:
          > > > - nessuno
          > > >
          > > > Fallo e avrai un futuro di oro, incenso e birra.
          > >
          > > perchè le applet non esistono più?
          >
          > Le applet non c'entrano.

          Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.

          sticazzi
          • Avatar
            ☺
            Scritto da
            il 2013-01-15 14:58:05.0 alle 2013-01-15 14:58:05.0
            Trollate totali: 2001
            Re: Alex.Tg
            Scritto da:
            > Scritto da: Renton Thurston
            > > Scritto da:
            > > > Scritto da: Renton Thurston
            > > > > Ho un bel progettino per te. Che ti renderà ricco e famoso.
            > > > > Parti leggendo questo: Re: Dart e i due link di suoranciata
            > > > >
            > > > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
            > > > >
            > > > > Vantaggi:
            > > > > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
            > > > > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
            > > > > - possibilità di aggiornare la VM senza dover aggiornare il browser
            > > > > - far uscire i linguaggi dalle browser-wars
            > > > >
            > > > > Svantaggi:
            > > > > - nessuno
            > > > >
            > > > > Fallo e avrai un futuro di oro, incenso e birra.
            > > >
            > > > perchè le applet non esistono più?
            > >
            > > Le applet non c'entrano.
            >
            > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
            >
            > sticazzi

            Per certi versi il concetto è simile a quelle delle Applet, per altri è diverso.
            È simile nel senso che hai una virtual machine che esegue bytecode. Ma è diverso da una Applet perché bene o male le Applet sono indipendenti dalla pagina WEB in cui sono ospitate, sono come "programmi esterni" che vengono eseguiti nella pagina, con tanto di loro GUI, loro Widget, ecc.

            Quello che intendo io è qualcosa di molto più integrato nel browser, per questo ripensandoci forse il concetto di integrarlo nel browser come plug-in non va bene, ci vorrebbe un'interfaccia apposita, che permetta al browser di avere pieno controllo su quello che quello "script engine" può fare o meno.

            Una Applet oggi può per esempio bypassare le impostazioni del browser, può fottersene se il browser ha un proxy, ecc. La sicurezza è imposta dalla stessa Virtual Machine in cui è eseguita e il browser può solo "stare a guardare".

            Lo scopo della mia proposta non è dunque quello di avere programmi indipendenti dalla pagina WEB ma di avere qualcosa che è profondamente integrato nella pagina WEB. Proprio come è oggi Javascript. Javascript non può fare cazzate perché è il browser che lo blocca se ci prova. Javascript non ha la sua GUI ma usa gli elementi HTML della pagina per lavorare. Diciamo che la mia idea è un Javascript ma in bytecode, il cui engine può essere eventualmente cambiato con uno migliore.

            Il bytecode sarebbe standard, l'engine invece potrebbe essere implementato da terzi. Firefox, Chrome, ecc potrebbero sviluppare il loro engine che interpreta quel bytecode, ma nulla impedirebbe a me di sostituirlo senza dover cambiare browser... e tutto questo senza rischiare nulla in termini di sicurezza perché sarebbe il browser ad occuparsi di questo aspetto.

            Con le Applet attuali quindi questo approccio condivide solo il concetto di Virtual Machine che gira dentro un browser.
            • Avatar
              ☺
              Scritto da
              il 2013-01-15 15:02:49.0 alle 2013-01-15 15:02:49.0
              Trollate totali: 2001
              Re: Alex.Tg
              Scritto da: Renton Thurston
              > Scritto da:
              > > Scritto da: Renton Thurston
              > > > Scritto da:
              > > > > Scritto da: Renton Thurston
              > > > > > Ho un bel progettino per te. Che ti renderà ricco e famoso.
              > > > > > Parti leggendo questo: Re: Dart e i due link di suoranciata
              > > > > >
              > > > > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
              > > > > >
              > > > > > Vantaggi:
              > > > > > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
              > > > > > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
              > > > > > - possibilità di aggiornare la VM senza dover aggiornare il browser
              > > > > > - far uscire i linguaggi dalle browser-wars
              > > > > >
              > > > > > Svantaggi:
              > > > > > - nessuno
              > > > > >
              > > > > > Fallo e avrai un futuro di oro, incenso e birra.
              > > > >
              > > > > perchè le applet non esistono più?
              > > >
              > > > Le applet non c'entrano.
              > >
              > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
              > >
              > > sticazzi
              >
              > Per certi versi il concetto è simile a quelle delle Applet, per altri è diverso.
              > È simile nel senso che hai una virtual machine che esegue bytecode. Ma è diverso da una Applet perché bene o male le Applet sono indipendenti dalla pagina WEB in cui sono ospitate, sono come "programmi esterni" che vengono eseguiti nella pagina, con tanto di loro GUI, loro Widget, ecc.
              >
              > Quello che intendo io è qualcosa di molto più integrato nel browser, per questo ripensandoci forse il concetto di integrarlo nel browser come plug-in non va bene, ci vorrebbe un'interfaccia apposita, che permetta al browser di avere pieno controllo su quello che quello "script engine" può fare o meno.
              >
              > Una Applet oggi può per esempio bypassare le impostazioni del browser, può fottersene se il browser ha un proxy, ecc. La sicurezza è imposta dalla stessa Virtual Machine in cui è eseguita e il browser può solo "stare a guardare".
              >
              > Lo scopo della mia proposta non è dunque quello di avere programmi indipendenti dalla pagina WEB ma di avere qualcosa che è profondamente integrato nella pagina WEB. Proprio come è oggi Javascript. Javascript non può fare cazzate perché è il browser che lo blocca se ci prova. Javascript non ha la sua GUI ma usa gli elementi HTML della pagina per lavorare. Diciamo che la mia idea è un Javascript ma in bytecode, il cui engine può essere eventualmente cambiato con uno migliore.
              >
              > Il bytecode sarebbe standard, l'engine invece potrebbe essere implementato da terzi. Firefox, Chrome, ecc potrebbero sviluppare il loro engine che interpreta quel bytecode, ma nulla impedirebbe a me di sostituirlo senza dover cambiare browser... e tutto questo senza rischiare nulla in termini di sicurezza perché sarebbe il browser ad occuparsi di questo aspetto.
              >
              > Con le Applet attuali quindi questo approccio condivide solo il concetto di Virtual Machine che gira dentro un browser.

              Questo oltre ad avere i vantaggi che ho già elencato permetterebbe naturalmente di sviluppare web-app in qualsiasi linguaggio preferisca senza dover installare un plugin per ogni script nel browser, non solo, ma mi permetterebbe di _compilare_ il mio codice in modo da rendere più difficile il reverse engineering mentre oggi come oggi Javascript è in chiaro (al massimo minificato e offuscato). Siccome la compilazione avviene "offline" direttamente dallo sviluppatore avresti anche web-app che si avviano molto più velocemente e su cui è già stato possibile fare controlli a livello di compilazione (compatibilità di tipi, ecc).

              P.S.: Mi pare che anche Dart permetta una cosa simile, ovvero la compilazione del programma Dart in uno stato binario caricabile velocemente dal browser, e questa è una cosa che (penso) a Javascript manchi.
              • Avatar
                Scritto da
                Non Autenticato
                il 2013-01-15 15:18:44.0 alle 2013-01-15 15:18:44.0
                Re: Alex.Tg
                Scritto da: Renton Thurston
                > Scritto da: Renton Thurston
                > > Scritto da:
                > > > Scritto da: Renton Thurston
                > > > > Scritto da:
                > > > > > Scritto da: Renton Thurston
                > > > > > > Ho un bel progettino per te. Che ti renderà ricco e famoso.
                > > > > > > Parti leggendo questo: Re: Dart e i due link di suoranciata
                > > > > > >
                > > > > > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
                > > > > > >
                > > > > > > Vantaggi:
                > > > > > > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
                > > > > > > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
                > > > > > > - possibilità di aggiornare la VM senza dover aggiornare il browser
                > > > > > > - far uscire i linguaggi dalle browser-wars
                > > > > > >
                > > > > > > Svantaggi:
                > > > > > > - nessuno
                > > > > > >
                > > > > > > Fallo e avrai un futuro di oro, incenso e birra.
                > > > > >
                > > > > > perchè le applet non esistono più?
                > > > >
                > > > > Le applet non c'entrano.
                > > >
                > > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
                > > >
                > > > sticazzi
                > >
                > > Per certi versi il concetto è simile a quelle delle Applet, per altri è diverso.
                > > È simile nel senso che hai una virtual machine che esegue bytecode. Ma è diverso da una Applet perché bene o male le Applet sono indipendenti dalla pagina WEB in cui sono ospitate, sono come "programmi esterni" che vengono eseguiti nella pagina, con tanto di loro GUI, loro Widget, ecc.
                > >
                > > Quello che intendo io è qualcosa di molto più integrato nel browser, per questo ripensandoci forse il concetto di integrarlo nel browser come plug-in non va bene, ci vorrebbe un'interfaccia apposita, che permetta al browser di avere pieno controllo su quello che quello "script engine" può fare o meno.
                > >
                > > Una Applet oggi può per esempio bypassare le impostazioni del browser, può fottersene se il browser ha un proxy, ecc. La sicurezza è imposta dalla stessa Virtual Machine in cui è eseguita e il browser può solo "stare a guardare".
                > >
                > > Lo scopo della mia proposta non è dunque quello di avere programmi indipendenti dalla pagina WEB ma di avere qualcosa che è profondamente integrato nella pagina WEB. Proprio come è oggi Javascript. Javascript non può fare cazzate perché è il browser che lo blocca se ci prova. Javascript non ha la sua GUI ma usa gli elementi HTML della pagina per lavorare. Diciamo che la mia idea è un Javascript ma in bytecode, il cui engine può essere eventualmente cambiato con uno migliore.
                > >
                > > Il bytecode sarebbe standard, l'engine invece potrebbe essere implementato da terzi. Firefox, Chrome, ecc potrebbero sviluppare il loro engine che interpreta quel bytecode, ma nulla impedirebbe a me di sostituirlo senza dover cambiare browser... e tutto questo senza rischiare nulla in termini di sicurezza perché sarebbe il browser ad occuparsi di questo aspetto.
                > >
                > > Con le Applet attuali quindi questo approccio condivide solo il concetto di Virtual Machine che gira dentro un browser.
                >
                > Questo oltre ad avere i vantaggi che ho già elencato permetterebbe naturalmente di sviluppare web-app in qualsiasi linguaggio preferisca senza dover installare un plugin per ogni script nel browser, non solo, ma mi permetterebbe di _compilare_ il mio codice in modo da rendere più difficile il reverse engineering mentre oggi come oggi Javascript è in chiaro (al massimo minificato e offuscato).

                puoi retroingegnerizzare bytecode e ti ritrovi l'esatto corrispondente di javascript offuscato (senza nomi parlanti per le variabili)

                > Siccome la compilazione avviene "offline" direttamente dallo sviluppatore avresti anche web-app che si avviano molto più velocemente

                interpretate esattamente come javascript

                > e su cui è già stato possibile fare controlli a livello di compilazione (compatibilità di tipi, ecc).

                allora devi decidere a monte la tipizzazione forte o debole e non ti ritrovi più un bytecode "universale"

                > P.S.: Mi pare che anche Dart permetta una cosa simile, ovvero la compilazione del programma Dart in uno stato binario caricabile velocemente dal browser, e questa è una cosa che (penso) a Javascript manchi.
                • Avatar
                  ☺
                  Scritto da
                  il 2013-01-15 15:25:22.0 alle 2013-01-15 15:25:22.0
                  Trollate totali: 2001
                  Re: Alex.Tg
                  Scritto da:
                  > puoi retroingegnerizzare bytecode e ti ritrovi l'esatto corrispondente di javascript offuscato (senza nomi parlanti per le variabili)

                  Non proprio. Potendo compilare il compilatore può fare scelte e semplificazioni che generano codice da cui non è affatto facile tornare indietro a qualcosa di umanamente comprensibile.
                  È più o meno come cercare di tornare indietro dal codice macchina ad un linguaggio ad alto livello... qualcosina la puoi anche fare, ma poi vai a capire tu il codice che ne salta fuori.


                  > > Siccome la compilazione avviene "offline" direttamente dallo sviluppatore avresti anche web-app che si avviano molto più velocemente
                  >
                  > interpretate esattamente come javascript

                  Sarebbe molto più veloce. Proprio come Java. Si, Java una volta avviato è molto veloce. Sicuramente si potrebbe raggiungere velocità maggiori di quelle di V8 non fosse altro perché una parte del lavoro è già stata fatta precedentemente. A cui poi devi sommare la possibilità del compilatore di fare semplificazioni e altri passaggi logici per rendere ancora più veloce il codice generato, cosa che difficilmente un umano fa o sa fare.

                  > > e su cui è già stato possibile fare controlli a livello di compilazione (compatibilità di tipi, ecc).
                  >
                  > allora devi decidere a monte la tipizzazione forte o debole e non ti ritrovi più un bytecode "universale"

                  Il bytecode può essere universale mentre il linguaggio può o meno essere tipizzato. Il grosso del lavoro qui lo fa il compilatore che dovrà convertire il linguaggio in qualcosa che la macchina a bytecode sa interpretare, fra cui anche dedurre i tipi ed effettuare le eventuali conversioni nel caso che la macchina a bytecode sia tipizzata (cosa che secondo me è buona e giusta) mentre il linguaggio sia dinamico.
                  • Avatar
                    Scritto da
                    Non Autenticato
                    il 2013-01-15 20:50:56.0 alle 2013-01-15 20:50:56.0
                    Re: Alex.Tg
                    Scritto da: Renton Thurston
                    > Scritto da:
                    > > puoi retroingegnerizzare bytecode e ti ritrovi l'esatto corrispondente di javascript offuscato (senza nomi parlanti per le variabili)
                    >
                    > Non proprio. Potendo compilare il compilatore può fare scelte e semplificazioni che generano codice da cui non è affatto facile tornare indietro a qualcosa di umanamente comprensibile.

                    tu confondi compilare codice macchina e compilare bytecode
                    retroingegnerizzare codice c è un casino e porta a risultati non consistenti
                    retroingegnerizzare codice java è molto più semplice, ci sono programmi appositi e ti restituisce l'originale, a meno della semantica associata ai nomi delle entità coinvolte

                    > È più o meno come cercare di tornare indietro dal codice macchina ad un linguaggio ad alto livello... qualcosina la puoi anche fare, ma poi vai a capire tu il codice che ne salta fuori.

                    vedi sopra

                    > > > Siccome la compilazione avviene "offline" direttamente dallo sviluppatore avresti anche web-app che si avviano molto più velocemente
                    > >
                    > > interpretate esattamente come javascript
                    >
                    > Sarebbe molto più veloce. Proprio come Java. Si, Java una volta avviato è molto veloce. Sicuramente si potrebbe raggiungere velocità maggiori di quelle di V8 non fosse altro perché una parte del lavoro è già stata fatta precedentemente. A cui poi devi sommare la possibilità del compilatore di fare semplificazioni e altri passaggi logici per rendere ancora più veloce il codice generato, cosa che difficilmente un umano fa o sa fare.
                    >
                    > > > e su cui è già stato possibile fare controlli a livello di compilazione (compatibilità di tipi, ecc).
                    > >
                    > > allora devi decidere a monte la tipizzazione forte o debole e non ti ritrovi più un bytecode "universale"
                    >
                    > Il bytecode può essere universale mentre il linguaggio può o meno essere tipizzato. Il grosso del lavoro qui lo fa il compilatore che dovrà convertire il linguaggio in qualcosa che la macchina a bytecode sa interpretare, fra cui anche dedurre i tipi ed effettuare le eventuali conversioni nel caso che la macchina a bytecode sia tipizzata (cosa che secondo me è buona e giusta) mentre il linguaggio sia dinamico.

                    e tu speri di riuscire a tipizzare fortemente a tempo di compilazione un linguaggio tipizzato debolmente?
                    è semplicemente impossibile, mi immagino un campo di input in cui puoi inserire "1" oppure "a"
                    come lo compili? concatenando stringhe o sommando numeri? come lo decidi?
                    • Avatar
                      Scritto da
                      Non Autenticato
                      il 2013-01-15 20:52:52.0 alle 2013-01-15 20:52:52.0
                      Re: Alex.Tg
                      Scritto da:
                      > Scritto da: Renton Thurston
                      > > Scritto da:
                      > > > puoi retroingegnerizzare bytecode e ti ritrovi l'esatto corrispondente di javascript offuscato (senza nomi parlanti per le variabili)
                      > >
                      > > Non proprio. Potendo compilare il compilatore può fare scelte e semplificazioni che generano codice da cui non è affatto facile tornare indietro a qualcosa di umanamente comprensibile.
                      >
                      > tu confondi compilare codice macchina e compilare bytecode
                      > retroingegnerizzare codice c è un casino e porta a risultati non consistenti
                      > retroingegnerizzare codice java è molto più semplice, ci sono programmi appositi e ti restituisce l'originale, a meno della semantica associata ai nomi delle entità coinvolte
                      >
                      > > È più o meno come cercare di tornare indietro dal codice macchina ad un linguaggio ad alto livello... qualcosina la puoi anche fare, ma poi vai a capire tu il codice che ne salta fuori.
                      >
                      > vedi sopra
                      >
                      > > > > Siccome la compilazione avviene "offline" direttamente dallo sviluppatore avresti anche web-app che si avviano molto più velocemente
                      > > >
                      > > > interpretate esattamente come javascript
                      > >
                      > > Sarebbe molto più veloce. Proprio come Java. Si, Java una volta avviato è molto veloce. Sicuramente si potrebbe raggiungere velocità maggiori di quelle di V8 non fosse altro perché una parte del lavoro è già stata fatta precedentemente. A cui poi devi sommare la possibilità del compilatore di fare semplificazioni e altri passaggi logici per rendere ancora più veloce il codice generato, cosa che difficilmente un umano fa o sa fare.
                      > >
                      > > > > e su cui è già stato possibile fare controlli a livello di compilazione (compatibilità di tipi, ecc).
                      > > >
                      > > > allora devi decidere a monte la tipizzazione forte o debole e non ti ritrovi più un bytecode "universale"
                      > >
                      > > Il bytecode può essere universale mentre il linguaggio può o meno essere tipizzato. Il grosso del lavoro qui lo fa il compilatore che dovrà convertire il linguaggio in qualcosa che la macchina a bytecode sa interpretare, fra cui anche dedurre i tipi ed effettuare le eventuali conversioni nel caso che la macchina a bytecode sia tipizzata (cosa che secondo me è buona e giusta) mentre il linguaggio sia dinamico.
                      >
                      > e tu speri di riuscire a tipizzare fortemente a tempo di compilazione un linguaggio tipizzato debolmente?
                      > è semplicemente impossibile, mi immagino un campo di input in cui puoi inserire "1" oppure "a"
                      > come lo compili? concatenando stringhe o sommando numeri? come lo decidi?

                      ovviamente puoi ricorrere al casting esplicito, ma allora complichi quello che invece in javascript è semplice
                    • Avatar
                      ☺
                      Scritto da
                      il 2013-01-15 21:22:21.0 alle 2013-01-15 21:22:21.0
                      Trollate totali: 2001
                      Re: Alex.Tg
                      Scritto da:
                      > tu confondi compilare codice macchina e compilare bytecode
                      > retroingegnerizzare codice c è un casino e porta a risultati non consistenti
                      > retroingegnerizzare codice java è molto più semplice, ci sono programmi appositi e ti restituisce l'originale, a meno della semantica associata ai nomi delle entità coinvolte

                      No non confondo proprio nulla.
                      La decompilazione dipende dal compilatore usato. Se il compilatore è buono e il bytecode è abbastanza base (ovvero è composto da operazioni semplici, come è l'assembly di un processore che puoi scegliere a caso) non hai grosse differenze fra decompilare codice macchina o decompiare bytecode. Alla fine il bytecode di una macchina virtuale lo puoi vedere come un assembly per una macchina che non esiste. Non è necessario copiare Java, io pensavo più a LLVM che come forse sai ha diversi front-end in diversi linguaggi fra cui C/C++, persino Erlang e converte tutto in una rappresentazione intermedia che assomiglia molto ad un assembly per una macchina che non esiste.

                      Il punto comunque non è questo... qualsiasi programma può essere decompilato con un discreto sforzo, alcuni rendono il lavoro più difficile di altri, ma di certo è più complicato che capire codice javascript in chiaro o semplicemente "minimizzato".

                      > > È più o meno come cercare di tornare indietro dal codice macchina ad un linguaggio ad alto livello... qualcosina la puoi anche fare, ma poi vai a capire tu il codice che ne salta fuori.
                      >
                      > vedi sopra

                      Vedi sopra. L'obiettivo non è rendere impossibile la decompilazione (cosa non fattibile, in alcun linguaggio, in alcun assembly), ma renderla abbastanza difficile da renderla poco viabile. E comunque non è l'unico vantaggio di questa struttura a macchina virtuale.

                      > e tu speri di riuscire a tipizzare fortemente a tempo di compilazione un linguaggio tipizzato debolmente?
                      > è semplicemente impossibile, mi immagino un campo di input in cui puoi inserire "1" oppure "a"
                      > come lo compili? concatenando stringhe o sommando numeri? come lo decidi?

                      Non è così difficile come credi. Ti ricordo che qualsiasi linguaggio dinamico, per poter eseguire il tuo codice, alla fine DEVE tipizzarlo, e DEVE fare tutti i cast del caso... per la semplice ragione che la tua CPU _è_ tipizzata e ragiona su dati tipizzati. Non hai registri di CPU "dinamici", tutto alla fine deve convertirsi in una sequenza di istruzioni che hanno a che fare con numeri o stringhe. I linguaggi dinamici semplicemente si fanno carico di pensare per te quali tipi inserire, come e come usarli o convertirli di volta in volta. Questo li rende solitamente lenti e rendono la loro programmazione prona ad errori. Approcci stile Go e Scala sono più intelligenti... i tipi ce li hai ancora (sono staticamente tipizzati), ma nei limiti del possibile il linguaggio li assegna automaticamente cercando di capire che tipo è da come tu usi quei dati risparmiandoti di scrivere molte ovvietà e dandoti l'impressione di lavorare in un linguaggio dinamico.

                      Un esempio di compilatore che già lo fa è proprio LLVM.
                      http://en.wikipedia.org/wiki/LLVM
                      Come puoi facilmente vedere è in grado di compilare anche Python che ha tipi dinamici. Vedi, non è impossibile. Anzi, come VM potrebbe probabilmente tranquillamente starci quella di LLVM. Fra l'altro da quanto ne so LLVM è un ottimo compilatore che spesso raggiunge e a volte oltrepassa in quanto ad efficenza persino i compilatori nativi in C.
                      • Avatar
                        ☺
                        Scritto da
                        Seu
                        Trombeur de femmes
                        il 2013-01-15 21:32:03.0 alle 2013-01-15 21:32:03.0
                        Trollate totali: 2082
                        Re: Alex.Tg
                        Scritto da: Renton Thurston
                        > Scritto da:
                        > > tu confondi compilare codice macchina e compilare bytecode
                        > > retroingegnerizzare codice c è un casino e porta a risultati non consistenti
                        > > retroingegnerizzare codice java è molto più semplice, ci sono programmi appositi e ti restituisce l'originale, a meno della semantica associata ai nomi delle entità coinvolte
                        >
                        > No non confondo proprio nulla.
                        > La decompilazione dipende dal compilatore usato. Se il compilatore è buono e il bytecode è abbastanza base (ovvero è composto da operazioni semplici, come è l'assembly di un processore che puoi scegliere a caso) non hai grosse differenze fra decompilare codice macchina o decompiare bytecode. Alla fine il bytecode di una macchina virtuale lo puoi vedere come un assembly per una macchina che non esiste. Non è necessario copiare Java, io pensavo più a LLVM che come forse sai ha diversi front-end in diversi linguaggi fra cui C/C++, persino Erlang e converte tutto in una rappresentazione intermedia che assomiglia molto ad un assembly per una macchina che non esiste.
                        >
                        > Il punto comunque non è questo... qualsiasi programma può essere decompilato con un discreto sforzo, alcuni rendono il lavoro più difficile di altri, ma di certo è più complicato che capire codice javascript in chiaro o semplicemente "minimizzato".
                        >
                        > > > È più o meno come cercare di tornare indietro dal codice macchina ad un linguaggio ad alto livello... qualcosina la puoi anche fare, ma poi vai a capire tu il codice che ne salta fuori.
                        > >
                        > > vedi sopra
                        >
                        > Vedi sopra. L'obiettivo non è rendere impossibile la decompilazione (cosa non fattibile, in alcun linguaggio, in alcun assembly), ma renderla abbastanza difficile da renderla poco viabile. E comunque non è l'unico vantaggio di questa struttura a macchina virtuale.
                        >
                        > > e tu speri di riuscire a tipizzare fortemente a tempo di compilazione un linguaggio tipizzato debolmente?
                        > > è semplicemente impossibile, mi immagino un campo di input in cui puoi inserire "1" oppure "a"
                        > > come lo compili? concatenando stringhe o sommando numeri? come lo decidi?
                        >
                        > Non è così difficile come credi. Ti ricordo che qualsiasi linguaggio dinamico, per poter eseguire il tuo codice, alla fine DEVE tipizzarlo, e DEVE fare tutti i cast del caso... per la semplice ragione che la tua CPU _è_ tipizzata e ragiona su dati tipizzati. Non hai registri di CPU "dinamici", tutto alla fine deve convertirsi in una sequenza di istruzioni che hanno a che fare con numeri o stringhe. I linguaggi dinamici semplicemente si fanno carico di pensare per te quali tipi inserire, come e come usarli o convertirli di volta in volta. Questo li rende solitamente lenti e rendono la loro programmazione prona ad errori. Approcci stile Go e Scala sono più intelligenti... i tipi ce li hai ancora (sono staticamente tipizzati), ma nei limiti del possibile il linguaggio li assegna automaticamente cercando di capire che tipo è da come tu usi quei dati risparmiandoti di scrivere molte ovvietà e dandoti l'impressione di lavorare in un linguaggio dinamico.
                        >
                        > Un esempio di compilatore che già lo fa è proprio LLVM.
                        > http://en.wikipedia.org/wiki/LLVM
                        > Come puoi facilmente vedere è in grado di compilare anche Python che ha tipi dinamici. Vedi, non è impossibile. Anzi, come VM potrebbe probabilmente tranquillamente starci quella di LLVM. Fra l'altro da quanto ne so LLVM è un ottimo compilatore che spesso raggiunge e a volte oltrepassa in quanto ad efficenza persino i compilatori nativi in C.

                        Sei proprio un rosikatore professionista A bocca storta
                        Atoms & Love
                        • Avatar
                          ☺
                          Scritto da
                          il 2013-01-15 21:41:05.0 alle 2013-01-15 21:41:05.0
                          Trollate totali: 2001
                          Re: Alex.Tg
                          Scritto da: Seu
                          > Scritto da: Renton Thurston
                          > > Scritto da:
                          > > > tu confondi compilare codice macchina e compilare bytecode
                          > > > retroingegnerizzare codice c è un casino e porta a risultati non consistenti
                          > > > retroingegnerizzare codice java è molto più semplice, ci sono programmi appositi e ti restituisce l'originale, a meno della semantica associata ai nomi delle entità coinvolte
                          > >
                          > > No non confondo proprio nulla.
                          > > La decompilazione dipende dal compilatore usato. Se il compilatore è buono e il bytecode è abbastanza base (ovvero è composto da operazioni semplici, come è l'assembly di un processore che puoi scegliere a caso) non hai grosse differenze fra decompilare codice macchina o decompiare bytecode. Alla fine il bytecode di una macchina virtuale lo puoi vedere come un assembly per una macchina che non esiste. Non è necessario copiare Java, io pensavo più a LLVM che come forse sai ha diversi front-end in diversi linguaggi fra cui C/C++, persino Erlang e converte tutto in una rappresentazione intermedia che assomiglia molto ad un assembly per una macchina che non esiste.
                          > >
                          > > Il punto comunque non è questo... qualsiasi programma può essere decompilato con un discreto sforzo, alcuni rendono il lavoro più difficile di altri, ma di certo è più complicato che capire codice javascript in chiaro o semplicemente "minimizzato".
                          > >
                          > > > > È più o meno come cercare di tornare indietro dal codice macchina ad un linguaggio ad alto livello... qualcosina la puoi anche fare, ma poi vai a capire tu il codice che ne salta fuori.
                          > > >
                          > > > vedi sopra
                          > >
                          > > Vedi sopra. L'obiettivo non è rendere impossibile la decompilazione (cosa non fattibile, in alcun linguaggio, in alcun assembly), ma renderla abbastanza difficile da renderla poco viabile. E comunque non è l'unico vantaggio di questa struttura a macchina virtuale.
                          > >
                          > > > e tu speri di riuscire a tipizzare fortemente a tempo di compilazione un linguaggio tipizzato debolmente?
                          > > > è semplicemente impossibile, mi immagino un campo di input in cui puoi inserire "1" oppure "a"
                          > > > come lo compili? concatenando stringhe o sommando numeri? come lo decidi?
                          > >
                          > > Non è così difficile come credi. Ti ricordo che qualsiasi linguaggio dinamico, per poter eseguire il tuo codice, alla fine DEVE tipizzarlo, e DEVE fare tutti i cast del caso... per la semplice ragione che la tua CPU _è_ tipizzata e ragiona su dati tipizzati. Non hai registri di CPU "dinamici", tutto alla fine deve convertirsi in una sequenza di istruzioni che hanno a che fare con numeri o stringhe. I linguaggi dinamici semplicemente si fanno carico di pensare per te quali tipi inserire, come e come usarli o convertirli di volta in volta. Questo li rende solitamente lenti e rendono la loro programmazione prona ad errori. Approcci stile Go e Scala sono più intelligenti... i tipi ce li hai ancora (sono staticamente tipizzati), ma nei limiti del possibile il linguaggio li assegna automaticamente cercando di capire che tipo è da come tu usi quei dati risparmiandoti di scrivere molte ovvietà e dandoti l'impressione di lavorare in un linguaggio dinamico.
                          > >
                          > > Un esempio di compilatore che già lo fa è proprio LLVM.
                          > > http://en.wikipedia.org/wiki/LLVM
                          > > Come puoi facilmente vedere è in grado di compilare anche Python che ha tipi dinamici. Vedi, non è impossibile. Anzi, come VM potrebbe probabilmente tranquillamente starci quella di LLVM. Fra l'altro da quanto ne so LLVM è un ottimo compilatore che spesso raggiunge e a volte oltrepassa in quanto ad efficenza persino i compilatori nativi in C.
                          >
                          > Sei proprio un rosikatore professionista A bocca storta
                          >

                          Zitto, sto inventando il WEB 3.0 Arrabbiato
                          • Avatar
                            ☺
                            Scritto da
                            Seu
                            Trombeur de femmes
                            il 2013-01-15 21:46:49.0 alle 2013-01-15 21:46:49.0
                            Trollate totali: 2082
                            Re: Alex.Tg
                            Scritto da: Renton Thurston
                            > Scritto da: Seu
                            > > Scritto da: Renton Thurston
                            > > > Scritto da:
                            > > > > tu confondi compilare codice macchina e compilare bytecode
                            > > > > retroingegnerizzare codice c è un casino e porta a risultati non consistenti
                            > > > > retroingegnerizzare codice java è molto più semplice, ci sono programmi appositi e ti restituisce l'originale, a meno della semantica associata ai nomi delle entità coinvolte
                            > > >
                            > > > No non confondo proprio nulla.
                            > > > La decompilazione dipende dal compilatore usato. Se il compilatore è buono e il bytecode è abbastanza base (ovvero è composto da operazioni semplici, come è l'assembly di un processore che puoi scegliere a caso) non hai grosse differenze fra decompilare codice macchina o decompiare bytecode. Alla fine il bytecode di una macchina virtuale lo puoi vedere come un assembly per una macchina che non esiste. Non è necessario copiare Java, io pensavo più a LLVM che come forse sai ha diversi front-end in diversi linguaggi fra cui C/C++, persino Erlang e converte tutto in una rappresentazione intermedia che assomiglia molto ad un assembly per una macchina che non esiste.
                            > > >
                            > > > Il punto comunque non è questo... qualsiasi programma può essere decompilato con un discreto sforzo, alcuni rendono il lavoro più difficile di altri, ma di certo è più complicato che capire codice javascript in chiaro o semplicemente "minimizzato".
                            > > >
                            > > > > > È più o meno come cercare di tornare indietro dal codice macchina ad un linguaggio ad alto livello... qualcosina la puoi anche fare, ma poi vai a capire tu il codice che ne salta fuori.
                            > > > >
                            > > > > vedi sopra
                            > > >
                            > > > Vedi sopra. L'obiettivo non è rendere impossibile la decompilazione (cosa non fattibile, in alcun linguaggio, in alcun assembly), ma renderla abbastanza difficile da renderla poco viabile. E comunque non è l'unico vantaggio di questa struttura a macchina virtuale.
                            > > >
                            > > > > e tu speri di riuscire a tipizzare fortemente a tempo di compilazione un linguaggio tipizzato debolmente?
                            > > > > è semplicemente impossibile, mi immagino un campo di input in cui puoi inserire "1" oppure "a"
                            > > > > come lo compili? concatenando stringhe o sommando numeri? come lo decidi?
                            > > >
                            > > > Non è così difficile come credi. Ti ricordo che qualsiasi linguaggio dinamico, per poter eseguire il tuo codice, alla fine DEVE tipizzarlo, e DEVE fare tutti i cast del caso... per la semplice ragione che la tua CPU _è_ tipizzata e ragiona su dati tipizzati. Non hai registri di CPU "dinamici", tutto alla fine deve convertirsi in una sequenza di istruzioni che hanno a che fare con numeri o stringhe. I linguaggi dinamici semplicemente si fanno carico di pensare per te quali tipi inserire, come e come usarli o convertirli di volta in volta. Questo li rende solitamente lenti e rendono la loro programmazione prona ad errori. Approcci stile Go e Scala sono più intelligenti... i tipi ce li hai ancora (sono staticamente tipizzati), ma nei limiti del possibile il linguaggio li assegna automaticamente cercando di capire che tipo è da come tu usi quei dati risparmiandoti di scrivere molte ovvietà e dandoti l'impressione di lavorare in un linguaggio dinamico.
                            > > >
                            > > > Un esempio di compilatore che già lo fa è proprio LLVM.
                            > > > http://en.wikipedia.org/wiki/LLVM
                            > > > Come puoi facilmente vedere è in grado di compilare anche Python che ha tipi dinamici. Vedi, non è impossibile. Anzi, come VM potrebbe probabilmente tranquillamente starci quella di LLVM. Fra l'altro da quanto ne so LLVM è un ottimo compilatore che spesso raggiunge e a volte oltrepassa in quanto ad efficenza persino i compilatori nativi in C.
                            > >
                            > > Sei proprio un rosikatore professionista A bocca storta
                            > >
                            >
                            > Zitto, sto inventando il WEB 3.0 Arrabbiato

                            È già iniziato, dovresti dedicarti al web4.0 Geek
                            Atoms & Love
                            • Avatar
                              ☺
                              Scritto da
                              il 2013-01-15 21:53:40.0 alle 2013-01-15 21:53:40.0
                              Trollate totali: 2001
                              Re: Alex.Tg
                              Scritto da: Seu
                              > Scritto da: Renton Thurston
                              > > Scritto da: Seu
                              > > > Scritto da: Renton Thurston
                              > > > > Scritto da:
                              > > > > > tu confondi compilare codice macchina e compilare bytecode
                              > > > > > retroingegnerizzare codice c è un casino e porta a risultati non consistenti
                              > > > > > retroingegnerizzare codice java è molto più semplice, ci sono programmi appositi e ti restituisce l'originale, a meno della semantica associata ai nomi delle entità coinvolte
                              > > > >
                              > > > > No non confondo proprio nulla.
                              > > > > La decompilazione dipende dal compilatore usato. Se il compilatore è buono e il bytecode è abbastanza base (ovvero è composto da operazioni semplici, come è l'assembly di un processore che puoi scegliere a caso) non hai grosse differenze fra decompilare codice macchina o decompiare bytecode. Alla fine il bytecode di una macchina virtuale lo puoi vedere come un assembly per una macchina che non esiste. Non è necessario copiare Java, io pensavo più a LLVM che come forse sai ha diversi front-end in diversi linguaggi fra cui C/C++, persino Erlang e converte tutto in una rappresentazione intermedia che assomiglia molto ad un assembly per una macchina che non esiste.
                              > > > >
                              > > > > Il punto comunque non è questo... qualsiasi programma può essere decompilato con un discreto sforzo, alcuni rendono il lavoro più difficile di altri, ma di certo è più complicato che capire codice javascript in chiaro o semplicemente "minimizzato".
                              > > > >
                              > > > > > > È più o meno come cercare di tornare indietro dal codice macchina ad un linguaggio ad alto livello... qualcosina la puoi anche fare, ma poi vai a capire tu il codice che ne salta fuori.
                              > > > > >
                              > > > > > vedi sopra
                              > > > >
                              > > > > Vedi sopra. L'obiettivo non è rendere impossibile la decompilazione (cosa non fattibile, in alcun linguaggio, in alcun assembly), ma renderla abbastanza difficile da renderla poco viabile. E comunque non è l'unico vantaggio di questa struttura a macchina virtuale.
                              > > > >
                              > > > > > e tu speri di riuscire a tipizzare fortemente a tempo di compilazione un linguaggio tipizzato debolmente?
                              > > > > > è semplicemente impossibile, mi immagino un campo di input in cui puoi inserire "1" oppure "a"
                              > > > > > come lo compili? concatenando stringhe o sommando numeri? come lo decidi?
                              > > > >
                              > > > > Non è così difficile come credi. Ti ricordo che qualsiasi linguaggio dinamico, per poter eseguire il tuo codice, alla fine DEVE tipizzarlo, e DEVE fare tutti i cast del caso... per la semplice ragione che la tua CPU _è_ tipizzata e ragiona su dati tipizzati. Non hai registri di CPU "dinamici", tutto alla fine deve convertirsi in una sequenza di istruzioni che hanno a che fare con numeri o stringhe. I linguaggi dinamici semplicemente si fanno carico di pensare per te quali tipi inserire, come e come usarli o convertirli di volta in volta. Questo li rende solitamente lenti e rendono la loro programmazione prona ad errori. Approcci stile Go e Scala sono più intelligenti... i tipi ce li hai ancora (sono staticamente tipizzati), ma nei limiti del possibile il linguaggio li assegna automaticamente cercando di capire che tipo è da come tu usi quei dati risparmiandoti di scrivere molte ovvietà e dandoti l'impressione di lavorare in un linguaggio dinamico.
                              > > > >
                              > > > > Un esempio di compilatore che già lo fa è proprio LLVM.
                              > > > > http://en.wikipedia.org/wiki/LLVM
                              > > > > Come puoi facilmente vedere è in grado di compilare anche Python che ha tipi dinamici. Vedi, non è impossibile. Anzi, come VM potrebbe probabilmente tranquillamente starci quella di LLVM. Fra l'altro da quanto ne so LLVM è un ottimo compilatore che spesso raggiunge e a volte oltrepassa in quanto ad efficenza persino i compilatori nativi in C.
                              > > >
                              > > > Sei proprio un rosikatore professionista A bocca storta
                              > > >
                              > >
                              > > Zitto, sto inventando il WEB 3.0 Arrabbiato
                              >
                              > È già iniziato, dovresti dedicarti al web4.0 Geek
                              >

                              Ah. Ok. Sto inventando il WEB 4.0 Arrabbiato
                              • Avatar
                                ☺
                                Scritto da
                                Seu
                                Trombeur de femmes
                                il 2013-01-15 22:14:15.0 alle 2013-01-15 22:14:15.0
                                Trollate totali: 2082
                                Re: Alex.Tg
                                Scritto da: Renton Thurston
                                > Scritto da: Seu
                                > > Scritto da: Renton Thurston
                                > > > Scritto da: Seu
                                > > > > Scritto da: Renton Thurston
                                > > > > > Scritto da:
                                > > > > > > tu confondi compilare codice macchina e compilare bytecode
                                > > > > > > retroingegnerizzare codice c è un casino e porta a risultati non consistenti
                                > > > > > > retroingegnerizzare codice java è molto più semplice, ci sono programmi appositi e ti restituisce l'originale, a meno della semantica associata ai nomi delle entità coinvolte
                                > > > > >
                                > > > > > No non confondo proprio nulla.
                                > > > > > La decompilazione dipende dal compilatore usato. Se il compilatore è buono e il bytecode è abbastanza base (ovvero è composto da operazioni semplici, come è l'assembly di un processore che puoi scegliere a caso) non hai grosse differenze fra decompilare codice macchina o decompiare bytecode. Alla fine il bytecode di una macchina virtuale lo puoi vedere come un assembly per una macchina che non esiste. Non è necessario copiare Java, io pensavo più a LLVM che come forse sai ha diversi front-end in diversi linguaggi fra cui C/C++, persino Erlang e converte tutto in una rappresentazione intermedia che assomiglia molto ad un assembly per una macchina che non esiste.
                                > > > > >
                                > > > > > Il punto comunque non è questo... qualsiasi programma può essere decompilato con un discreto sforzo, alcuni rendono il lavoro più difficile di altri, ma di certo è più complicato che capire codice javascript in chiaro o semplicemente "minimizzato".
                                > > > > >
                                > > > > > > > È più o meno come cercare di tornare indietro dal codice macchina ad un linguaggio ad alto livello... qualcosina la puoi anche fare, ma poi vai a capire tu il codice che ne salta fuori.
                                > > > > > >
                                > > > > > > vedi sopra
                                > > > > >
                                > > > > > Vedi sopra. L'obiettivo non è rendere impossibile la decompilazione (cosa non fattibile, in alcun linguaggio, in alcun assembly), ma renderla abbastanza difficile da renderla poco viabile. E comunque non è l'unico vantaggio di questa struttura a macchina virtuale.
                                > > > > >
                                > > > > > > e tu speri di riuscire a tipizzare fortemente a tempo di compilazione un linguaggio tipizzato debolmente?
                                > > > > > > è semplicemente impossibile, mi immagino un campo di input in cui puoi inserire "1" oppure "a"
                                > > > > > > come lo compili? concatenando stringhe o sommando numeri? come lo decidi?
                                > > > > >
                                > > > > > Non è così difficile come credi. Ti ricordo che qualsiasi linguaggio dinamico, per poter eseguire il tuo codice, alla fine DEVE tipizzarlo, e DEVE fare tutti i cast del caso... per la semplice ragione che la tua CPU _è_ tipizzata e ragiona su dati tipizzati. Non hai registri di CPU "dinamici", tutto alla fine deve convertirsi in una sequenza di istruzioni che hanno a che fare con numeri o stringhe. I linguaggi dinamici semplicemente si fanno carico di pensare per te quali tipi inserire, come e come usarli o convertirli di volta in volta. Questo li rende solitamente lenti e rendono la loro programmazione prona ad errori. Approcci stile Go e Scala sono più intelligenti... i tipi ce li hai ancora (sono staticamente tipizzati), ma nei limiti del possibile il linguaggio li assegna automaticamente cercando di capire che tipo è da come tu usi quei dati risparmiandoti di scrivere molte ovvietà e dandoti l'impressione di lavorare in un linguaggio dinamico.
                                > > > > >
                                > > > > > Un esempio di compilatore che già lo fa è proprio LLVM.
                                > > > > > http://en.wikipedia.org/wiki/LLVM
                                > > > > > Come puoi facilmente vedere è in grado di compilare anche Python che ha tipi dinamici. Vedi, non è impossibile. Anzi, come VM potrebbe probabilmente tranquillamente starci quella di LLVM. Fra l'altro da quanto ne so LLVM è un ottimo compilatore che spesso raggiunge e a volte oltrepassa in quanto ad efficenza persino i compilatori nativi in C.
                                > > > >
                                > > > > Sei proprio un rosikatore professionista A bocca storta
                                > > > >
                                > > >
                                > > > Zitto, sto inventando il WEB 3.0 Arrabbiato
                                > >
                                > > È già iniziato, dovresti dedicarti al web4.0 Geek
                                > >
                                >
                                > Ah. Ok. Sto inventando il WEB 4.0 Arrabbiato

                                Casualmente ho un hd rubato pieno di agenti semantici automatici... Interessa l'affare? Geek
                                Atoms & Love
                                • Avatar
                                  ☺
                                  Scritto da
                                  il 2013-01-15 22:24:21.0 alle 2013-01-15 22:24:21.0
                                  Trollate totali: 2001
                                  Re: Alex.Tg
                                  Scritto da: Seu
                                  > Scritto da: Renton Thurston
                                  > > Scritto da: Seu
                                  > > > Scritto da: Renton Thurston
                                  > > > > Scritto da: Seu
                                  > > > > > Scritto da: Renton Thurston
                                  > > > > > > Scritto da:
                                  > > > > > > > tu confondi compilare codice macchina e compilare bytecode
                                  > > > > > > > retroingegnerizzare codice c è un casino e porta a risultati non consistenti
                                  > > > > > > > retroingegnerizzare codice java è molto più semplice, ci sono programmi appositi e ti restituisce l'originale, a meno della semantica associata ai nomi delle entità coinvolte
                                  > > > > > >
                                  > > > > > > No non confondo proprio nulla.
                                  > > > > > > La decompilazione dipende dal compilatore usato. Se il compilatore è buono e il bytecode è abbastanza base (ovvero è composto da operazioni semplici, come è l'assembly di un processore che puoi scegliere a caso) non hai grosse differenze fra decompilare codice macchina o decompiare bytecode. Alla fine il bytecode di una macchina virtuale lo puoi vedere come un assembly per una macchina che non esiste. Non è necessario copiare Java, io pensavo più a LLVM che come forse sai ha diversi front-end in diversi linguaggi fra cui C/C++, persino Erlang e converte tutto in una rappresentazione intermedia che assomiglia molto ad un assembly per una macchina che non esiste.
                                  > > > > > >
                                  > > > > > > Il punto comunque non è questo... qualsiasi programma può essere decompilato con un discreto sforzo, alcuni rendono il lavoro più difficile di altri, ma di certo è più complicato che capire codice javascript in chiaro o semplicemente "minimizzato".
                                  > > > > > >
                                  > > > > > > > > È più o meno come cercare di tornare indietro dal codice macchina ad un linguaggio ad alto livello... qualcosina la puoi anche fare, ma poi vai a capire tu il codice che ne salta fuori.
                                  > > > > > > >
                                  > > > > > > > vedi sopra
                                  > > > > > >
                                  > > > > > > Vedi sopra. L'obiettivo non è rendere impossibile la decompilazione (cosa non fattibile, in alcun linguaggio, in alcun assembly), ma renderla abbastanza difficile da renderla poco viabile. E comunque non è l'unico vantaggio di questa struttura a macchina virtuale.
                                  > > > > > >
                                  > > > > > > > e tu speri di riuscire a tipizzare fortemente a tempo di compilazione un linguaggio tipizzato debolmente?
                                  > > > > > > > è semplicemente impossibile, mi immagino un campo di input in cui puoi inserire "1" oppure "a"
                                  > > > > > > > come lo compili? concatenando stringhe o sommando numeri? come lo decidi?
                                  > > > > > >
                                  > > > > > > Non è così difficile come credi. Ti ricordo che qualsiasi linguaggio dinamico, per poter eseguire il tuo codice, alla fine DEVE tipizzarlo, e DEVE fare tutti i cast del caso... per la semplice ragione che la tua CPU _è_ tipizzata e ragiona su dati tipizzati. Non hai registri di CPU "dinamici", tutto alla fine deve convertirsi in una sequenza di istruzioni che hanno a che fare con numeri o stringhe. I linguaggi dinamici semplicemente si fanno carico di pensare per te quali tipi inserire, come e come usarli o convertirli di volta in volta. Questo li rende solitamente lenti e rendono la loro programmazione prona ad errori. Approcci stile Go e Scala sono più intelligenti... i tipi ce li hai ancora (sono staticamente tipizzati), ma nei limiti del possibile il linguaggio li assegna automaticamente cercando di capire che tipo è da come tu usi quei dati risparmiandoti di scrivere molte ovvietà e dandoti l'impressione di lavorare in un linguaggio dinamico.
                                  > > > > > >
                                  > > > > > > Un esempio di compilatore che già lo fa è proprio LLVM.
                                  > > > > > > http://en.wikipedia.org/wiki/LLVM
                                  > > > > > > Come puoi facilmente vedere è in grado di compilare anche Python che ha tipi dinamici. Vedi, non è impossibile. Anzi, come VM potrebbe probabilmente tranquillamente starci quella di LLVM. Fra l'altro da quanto ne so LLVM è un ottimo compilatore che spesso raggiunge e a volte oltrepassa in quanto ad efficenza persino i compilatori nativi in C.
                                  > > > > >
                                  > > > > > Sei proprio un rosikatore professionista A bocca storta
                                  > > > > >
                                  > > > >
                                  > > > > Zitto, sto inventando il WEB 3.0 Arrabbiato
                                  > > >
                                  > > > È già iniziato, dovresti dedicarti al web4.0 Geek
                                  > > >
                                  > >
                                  > > Ah. Ok. Sto inventando il WEB 4.0 Arrabbiato
                                  >
                                  > Casualmente ho un hd rubato pieno di agenti semantici automatici... Interessa l'affare? Geek

                                  Sorpresa Sorpresa Sorpresa


                                  Ma che roba è? Newbie, inesperto
                                  • Avatar
                                    ☺
                                    Scritto da
                                    Seu
                                    Trombeur de femmes
                                    il 2013-01-15 22:37:05.0 alle 2013-01-15 22:37:05.0
                                    Trollate totali: 2082
                                    Re: Alex.Tg
                                    Oh, sono tante cose.
                                    Ad esempio ce ne sono un paio che ti fanno una relazione su di un argomento quasi qualsiasi scavando da wiki (in varie lingue)...con risultati mediocri.
                                    Oppure alcuni che gli dai in pasto delle sorgenti in c o c-like ti trovano gli errori logici e ti auto-blindano tutti i possibili inject malevoli.
                                    Poi c'è uno molto carino che ti aiuta a sviluppare codice, la ficata è che se lo metti ricorsivamente a sviluppare il suo stesso codice ti genera una accozzaglia di comandi incomprensibili all'umana comprensione ma perfettamente funzionanti.
                                    Un altro ti identifica le immagini e ti dice quel che vede...
                                    Poi ci sono dei demo di traduttori universali che non funzionano affatto ma che ti fanno sbellicare dalle risate...
                                    Uno che cerca anomalie gravitazionali sulle foto dello spazio (per trovare probabili buchi neri)...
                                    Un po' di tutto insomma.

                                    È stato un furto ritrovamento fortunato Geek

                                    Peccato richiedano centinaia di giga di database per funzionare Triste
                                    Atoms & Love
                                    • Avatar
                                      ☺
                                      Scritto da
                                      il 2013-01-15 23:17:59.0 alle 2013-01-15 23:17:59.0
                                      Trollate totali: 2001
                                      Re: Alex.Tg
                                      Scritto da: Seu
                                      > Oh, sono tante cose.
                                      > Ad esempio ce ne sono un paio che ti fanno una relazione su di un argomento quasi qualsiasi scavando da wiki (in varie lingue)...con risultati mediocri.
                                      > Oppure alcuni che gli dai in pasto delle sorgenti in c o c-like ti trovano gli errori logici e ti auto-blindano tutti i possibili inject malevoli.
                                      > Poi c'è uno molto carino che ti aiuta a sviluppare codice, la ficata è che se lo metti ricorsivamente a sviluppare il suo stesso codice ti genera una accozzaglia di comandi incomprensibili all'umana comprensione ma perfettamente funzionanti.
                                      > Un altro ti identifica le immagini e ti dice quel che vede...
                                      > Poi ci sono dei demo di traduttori universali che non funzionano affatto ma che ti fanno sbellicare dalle risate...
                                      > Uno che cerca anomalie gravitazionali sulle foto dello spazio (per trovare probabili buchi neri)...
                                      > Un po' di tutto insomma.
                                      >
                                      > È stato un furto ritrovamento fortunato Geek
                                      >
                                      > Peccato richiedano centinaia di giga di database per funzionare Triste

                                      Stai dicendo che ora che exsinistro è morto possiamo sostituirlo con una di queste cose? Sorpresa

                                      **Modificato dall'autore il 15.01.2013 23:18**
                                  • Avatar
                                    Scritto da
                                    Non Autenticato
                                    il 2013-01-15 22:37:37.0 alle 2013-01-15 22:37:37.0
                                    Re: Alex.Tg
                                    Scritto da: Renton Thurston
                                    > Scritto da: Seu
                                    > > Scritto da: Renton Thurston
                                    > > > Scritto da: Seu
                                    > > > > Scritto da: Renton Thurston
                                    > > > > > Scritto da: Seu
                                    > > > > > > Scritto da: Renton Thurston
                                    > > > > > > > Scritto da:
                                    > > > > > > > > tu confondi compilare codice macchina e compilare bytecode
                                    > > > > > > > > retroingegnerizzare codice c è un casino e porta a risultati non consistenti
                                    > > > > > > > > retroingegnerizzare codice java è molto più semplice, ci sono programmi appositi e ti restituisce l'originale, a meno della semantica associata ai nomi delle entità coinvolte
                                    > > > > > > >
                                    > > > > > > > No non confondo proprio nulla.
                                    > > > > > > > La decompilazione dipende dal compilatore usato. Se il compilatore è buono e il bytecode è abbastanza base (ovvero è composto da operazioni semplici, come è l'assembly di un processore che puoi scegliere a caso) non hai grosse differenze fra decompilare codice macchina o decompiare bytecode. Alla fine il bytecode di una macchina virtuale lo puoi vedere come un assembly per una macchina che non esiste. Non è necessario copiare Java, io pensavo più a LLVM che come forse sai ha diversi front-end in diversi linguaggi fra cui C/C++, persino Erlang e converte tutto in una rappresentazione intermedia che assomiglia molto ad un assembly per una macchina che non esiste.
                                    > > > > > > >
                                    > > > > > > > Il punto comunque non è questo... qualsiasi programma può essere decompilato con un discreto sforzo, alcuni rendono il lavoro più difficile di altri, ma di certo è più complicato che capire codice javascript in chiaro o semplicemente "minimizzato".
                                    > > > > > > >
                                    > > > > > > > > > È più o meno come cercare di tornare indietro dal codice macchina ad un linguaggio ad alto livello... qualcosina la puoi anche fare, ma poi vai a capire tu il codice che ne salta fuori.
                                    > > > > > > > >
                                    > > > > > > > > vedi sopra
                                    > > > > > > >
                                    > > > > > > > Vedi sopra. L'obiettivo non è rendere impossibile la decompilazione (cosa non fattibile, in alcun linguaggio, in alcun assembly), ma renderla abbastanza difficile da renderla poco viabile. E comunque non è l'unico vantaggio di questa struttura a macchina virtuale.
                                    > > > > > > >
                                    > > > > > > > > e tu speri di riuscire a tipizzare fortemente a tempo di compilazione un linguaggio tipizzato debolmente?
                                    > > > > > > > > è semplicemente impossibile, mi immagino un campo di input in cui puoi inserire "1" oppure "a"
                                    > > > > > > > > come lo compili? concatenando stringhe o sommando numeri? come lo decidi?
                                    > > > > > > >
                                    > > > > > > > Non è così difficile come credi. Ti ricordo che qualsiasi linguaggio dinamico, per poter eseguire il tuo codice, alla fine DEVE tipizzarlo, e DEVE fare tutti i cast del caso... per la semplice ragione che la tua CPU _è_ tipizzata e ragiona su dati tipizzati. Non hai registri di CPU "dinamici", tutto alla fine deve convertirsi in una sequenza di istruzioni che hanno a che fare con numeri o stringhe. I linguaggi dinamici semplicemente si fanno carico di pensare per te quali tipi inserire, come e come usarli o convertirli di volta in volta. Questo li rende solitamente lenti e rendono la loro programmazione prona ad errori. Approcci stile Go e Scala sono più intelligenti... i tipi ce li hai ancora (sono staticamente tipizzati), ma nei limiti del possibile il linguaggio li assegna automaticamente cercando di capire che tipo è da come tu usi quei dati risparmiandoti di scrivere molte ovvietà e dandoti l'impressione di lavorare in un linguaggio dinamico.
                                    > > > > > > >
                                    > > > > > > > Un esempio di compilatore che già lo fa è proprio LLVM.
                                    > > > > > > > http://en.wikipedia.org/wiki/LLVM
                                    > > > > > > > Come puoi facilmente vedere è in grado di compilare anche Python che ha tipi dinamici. Vedi, non è impossibile. Anzi, come VM potrebbe probabilmente tranquillamente starci quella di LLVM. Fra l'altro da quanto ne so LLVM è un ottimo compilatore che spesso raggiunge e a volte oltrepassa in quanto ad efficenza persino i compilatori nativi in C.
                                    > > > > > >
                                    > > > > > > Sei proprio un rosikatore professionista A bocca storta
                                    > > > > > >
                                    > > > > >
                                    > > > > > Zitto, sto inventando il WEB 3.0 Arrabbiato
                                    > > > >
                                    > > > > È già iniziato, dovresti dedicarti al web4.0 Geek
                                    > > > >
                                    > > >
                                    > > > Ah. Ok. Sto inventando il WEB 4.0 Arrabbiato
                                    > >
                                    > > Casualmente ho un hd rubato pieno di agenti semantici automatici... Interessa l'affare? Geek
                                    >
                                    > Sorpresa Sorpresa Sorpresa
                                    >
                                    >
                                    > Ma che roba è? Newbie, inesperto

                                    penso che sia una roba java che su cui stanno lavorando a livello universitario
            • Avatar
              Scritto da
              Non Autenticato
              il 2013-01-15 15:13:35.0 alle 2013-01-15 15:13:35.0
              Re: Alex.Tg
              > Una Applet oggi può per esempio bypassare le impostazioni del browser, può fottersene se il browser ha un proxy, ecc. La sicurezza è imposta dalla stessa Virtual Machine in cui è eseguita e il browser può solo "stare a guardare".

              Sarà un caso che Applet ha in comune le prime cinque lettere con Apple?
              • Avatar
                ☺
                Scritto da
                il 2013-01-15 15:17:52.0 alle 2013-01-15 15:17:52.0
                Trollate totali: 2001
                Re: Alex.Tg
                Scritto da:
                > > Una Applet oggi può per esempio bypassare le impostazioni del browser, può fottersene se il browser ha un proxy, ecc. La sicurezza è imposta dalla stessa Virtual Machine in cui è eseguita e il browser può solo "stare a guardare".
                >
                > Sarà un caso che Applet ha in comune le prime cinque lettere con Apple?

                Brutti figli di... Arrabbiato
            • Avatar
              Scritto da
              Non Autenticato
              il 2013-01-15 15:14:07.0 alle 2013-01-15 15:14:07.0
              Re: Alex.Tg
              Scritto da: Renton Thurston
              > Scritto da:
              > > Scritto da: Renton Thurston
              > > > Scritto da:
              > > > > Scritto da: Renton Thurston
              > > > > > Ho un bel progettino per te. Che ti renderà ricco e famoso.
              > > > > > Parti leggendo questo: Re: Dart e i due link di suoranciata
              > > > > >
              > > > > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
              > > > > >
              > > > > > Vantaggi:
              > > > > > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
              > > > > > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
              > > > > > - possibilità di aggiornare la VM senza dover aggiornare il browser
              > > > > > - far uscire i linguaggi dalle browser-wars
              > > > > >
              > > > > > Svantaggi:
              > > > > > - nessuno
              > > > > >
              > > > > > Fallo e avrai un futuro di oro, incenso e birra.
              > > > >
              > > > > perchè le applet non esistono più?
              > > >
              > > > Le applet non c'entrano.
              > >
              > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
              > >
              > > sticazzi
              >
              > Per certi versi il concetto è simile a quelle delle Applet, per altri è diverso.
              > È simile nel senso che hai una virtual machine che esegue bytecode. Ma è diverso da una Applet perché bene o male le Applet sono indipendenti dalla pagina WEB in cui sono ospitate, sono come "programmi esterni" che vengono eseguiti nella pagina, con tanto di loro GUI, loro Widget, ecc.
              >
              > Quello che intendo io è qualcosa di molto più integrato nel browser, per questo ripensandoci forse il concetto di integrarlo nel browser come plug-in non va bene, ci vorrebbe un'interfaccia apposita, che permetta al browser di avere pieno controllo su quello che quello "script engine" può fare o meno.
              >
              > Una Applet oggi può per esempio bypassare le impostazioni del browser, può fottersene se il browser ha un proxy, ecc. La sicurezza è imposta dalla stessa Virtual Machine in cui è eseguita e il browser può solo "stare a guardare".
              >
              > Lo scopo della mia proposta non è dunque quello di avere programmi indipendenti dalla pagina WEB ma di avere qualcosa che è profondamente integrato nella pagina WEB. Proprio come è oggi Javascript. Javascript non può fare cazzate perché è il browser che lo blocca se ci prova. Javascript non ha la sua GUI ma usa gli elementi HTML della pagina per lavorare. Diciamo che la mia idea è un Javascript ma in bytecode, il cui engine può essere eventualmente cambiato con uno migliore.
              >
              > Il bytecode sarebbe standard, l'engine invece potrebbe essere implementato da terzi. Firefox, Chrome, ecc potrebbero sviluppare il loro engine che interpreta quel bytecode, ma nulla impedirebbe a me di sostituirlo senza dover cambiare browser... e tutto questo senza rischiare nulla in termini di sicurezza perché sarebbe il browser ad occuparsi di questo aspetto.
              >
              > Con le Applet attuali quindi questo approccio condivide solo il concetto di Virtual Machine che gira dentro un browser.

              insomma un altro interprete Annoiato
              • Avatar
                Scritto da
                Non Autenticato
                il 2013-01-15 15:16:36.0 alle 2013-01-15 15:16:36.0
                Re: Alex.Tg
                > > > > > > Ho un bel progettino per te. Che ti renderà ricco e famoso.
                > > > > > > Parti leggendo questo: Re: Dart e i due link di suoranciata
                > > > > > >
                > > > > > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
                > > > > > >
                > > > > > > Vantaggi:
                > > > > > > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
                > > > > > > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
                > > > > > > - possibilità di aggiornare la VM senza dover aggiornare il browser
                > > > > > > - far uscire i linguaggi dalle browser-wars
                > > > > > >
                > > > > > > Svantaggi:
                > > > > > > - nessuno
                > > > > > >
                > > > > > > Fallo e avrai un futuro di oro, incenso e birra.
                > > > > >
                > > > > > perchè le applet non esistono più?
                > > > >
                > > > > Le applet non c'entrano.
                > > >
                > > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
                > > >
                > > > sticazzi
                > >
                > > Per certi versi il concetto è simile a quelle delle Applet, per altri è diverso.
                > > È simile nel senso che hai una virtual machine che esegue bytecode. Ma è diverso da una Applet perché bene o male le Applet sono indipendenti dalla pagina WEB in cui sono ospitate, sono come "programmi esterni" che vengono eseguiti nella pagina, con tanto di loro GUI, loro Widget, ecc.
                > >
                > > Quello che intendo io è qualcosa di molto più integrato nel browser, per questo ripensandoci forse il concetto di integrarlo nel browser come plug-in non va bene, ci vorrebbe un'interfaccia apposita, che permetta al browser di avere pieno controllo su quello che quello "script engine" può fare o meno.
                > >
                > > Una Applet oggi può per esempio bypassare le impostazioni del browser, può fottersene se il browser ha un proxy, ecc. La sicurezza è imposta dalla stessa Virtual Machine in cui è eseguita e il browser può solo "stare a guardare".
                > >
                > > Lo scopo della mia proposta non è dunque quello di avere programmi indipendenti dalla pagina WEB ma di avere qualcosa che è profondamente integrato nella pagina WEB. Proprio come è oggi Javascript. Javascript non può fare cazzate perché è il browser che lo blocca se ci prova. Javascript non ha la sua GUI ma usa gli elementi HTML della pagina per lavorare. Diciamo che la mia idea è un Javascript ma in bytecode, il cui engine può essere eventualmente cambiato con uno migliore.
                > >
                > > Il bytecode sarebbe standard, l'engine invece potrebbe essere implementato da terzi. Firefox, Chrome, ecc potrebbero sviluppare il loro engine che interpreta quel bytecode, ma nulla impedirebbe a me di sostituirlo senza dover cambiare browser... e tutto questo senza rischiare nulla in termini di sicurezza perché sarebbe il browser ad occuparsi di questo aspetto.
                > >
                > > Con le Applet attuali quindi questo approccio condivide solo il concetto di Virtual Machine che gira dentro un browser.
                >
                > insomma un altro interprete Annoiato

                Ma è un interprete universale.
              • Avatar
                ☺
                Scritto da
                il 2013-01-15 15:17:10.0 alle 2013-01-15 15:17:10.0
                Trollate totali: 2001
                Re: Alex.Tg
                Scritto da:
                > Scritto da: Renton Thurston
                > > Scritto da:
                > > > Scritto da: Renton Thurston
                > > > > Scritto da:
                > > > > > Scritto da: Renton Thurston
                > > > > > > Ho un bel progettino per te. Che ti renderà ricco e famoso.
                > > > > > > Parti leggendo questo: Re: Dart e i due link di suoranciata
                > > > > > >
                > > > > > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
                > > > > > >
                > > > > > > Vantaggi:
                > > > > > > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
                > > > > > > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
                > > > > > > - possibilità di aggiornare la VM senza dover aggiornare il browser
                > > > > > > - far uscire i linguaggi dalle browser-wars
                > > > > > >
                > > > > > > Svantaggi:
                > > > > > > - nessuno
                > > > > > >
                > > > > > > Fallo e avrai un futuro di oro, incenso e birra.
                > > > > >
                > > > > > perchè le applet non esistono più?
                > > > >
                > > > > Le applet non c'entrano.
                > > >
                > > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
                > > >
                > > > sticazzi
                > >
                > > Per certi versi il concetto è simile a quelle delle Applet, per altri è diverso.
                > > È simile nel senso che hai una virtual machine che esegue bytecode. Ma è diverso da una Applet perché bene o male le Applet sono indipendenti dalla pagina WEB in cui sono ospitate, sono come "programmi esterni" che vengono eseguiti nella pagina, con tanto di loro GUI, loro Widget, ecc.
                > >
                > > Quello che intendo io è qualcosa di molto più integrato nel browser, per questo ripensandoci forse il concetto di integrarlo nel browser come plug-in non va bene, ci vorrebbe un'interfaccia apposita, che permetta al browser di avere pieno controllo su quello che quello "script engine" può fare o meno.
                > >
                > > Una Applet oggi può per esempio bypassare le impostazioni del browser, può fottersene se il browser ha un proxy, ecc. La sicurezza è imposta dalla stessa Virtual Machine in cui è eseguita e il browser può solo "stare a guardare".
                > >
                > > Lo scopo della mia proposta non è dunque quello di avere programmi indipendenti dalla pagina WEB ma di avere qualcosa che è profondamente integrato nella pagina WEB. Proprio come è oggi Javascript. Javascript non può fare cazzate perché è il browser che lo blocca se ci prova. Javascript non ha la sua GUI ma usa gli elementi HTML della pagina per lavorare. Diciamo che la mia idea è un Javascript ma in bytecode, il cui engine può essere eventualmente cambiato con uno migliore.
                > >
                > > Il bytecode sarebbe standard, l'engine invece potrebbe essere implementato da terzi. Firefox, Chrome, ecc potrebbero sviluppare il loro engine che interpreta quel bytecode, ma nulla impedirebbe a me di sostituirlo senza dover cambiare browser... e tutto questo senza rischiare nulla in termini di sicurezza perché sarebbe il browser ad occuparsi di questo aspetto.
                > >
                > > Con le Applet attuali quindi questo approccio condivide solo il concetto di Virtual Machine che gira dentro un browser.
                >
                > insomma un altro interprete Annoiato

                Se non ti interessa puoi sempre continuare ad usare Javascript.
                • Avatar
                  Scritto da
                  Non Autenticato
                  il 2013-01-15 15:20:20.0 alle 2013-01-15 15:20:20.0
                  Re: Alex.Tg
                  Scritto da: Renton Thurston
                  > Scritto da:
                  > > Scritto da: Renton Thurston
                  > > > Scritto da:
                  > > > > Scritto da: Renton Thurston
                  > > > > > Scritto da:
                  > > > > > > Scritto da: Renton Thurston
                  > > > > > > > Ho un bel progettino per te. Che ti renderà ricco e famoso.
                  > > > > > > > Parti leggendo questo: Re: Dart e i due link di suoranciata
                  > > > > > > >
                  > > > > > > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
                  > > > > > > >
                  > > > > > > > Vantaggi:
                  > > > > > > > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
                  > > > > > > > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
                  > > > > > > > - possibilità di aggiornare la VM senza dover aggiornare il browser
                  > > > > > > > - far uscire i linguaggi dalle browser-wars
                  > > > > > > >
                  > > > > > > > Svantaggi:
                  > > > > > > > - nessuno
                  > > > > > > >
                  > > > > > > > Fallo e avrai un futuro di oro, incenso e birra.
                  > > > > > >
                  > > > > > > perchè le applet non esistono più?
                  > > > > >
                  > > > > > Le applet non c'entrano.
                  > > > >
                  > > > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
                  > > > >
                  > > > > sticazzi
                  > > >
                  > > > Per certi versi il concetto è simile a quelle delle Applet, per altri è diverso.
                  > > > È simile nel senso che hai una virtual machine che esegue bytecode. Ma è diverso da una Applet perché bene o male le Applet sono indipendenti dalla pagina WEB in cui sono ospitate, sono come "programmi esterni" che vengono eseguiti nella pagina, con tanto di loro GUI, loro Widget, ecc.
                  > > >
                  > > > Quello che intendo io è qualcosa di molto più integrato nel browser, per questo ripensandoci forse il concetto di integrarlo nel browser come plug-in non va bene, ci vorrebbe un'interfaccia apposita, che permetta al browser di avere pieno controllo su quello che quello "script engine" può fare o meno.
                  > > >
                  > > > Una Applet oggi può per esempio bypassare le impostazioni del browser, può fottersene se il browser ha un proxy, ecc. La sicurezza è imposta dalla stessa Virtual Machine in cui è eseguita e il browser può solo "stare a guardare".
                  > > >
                  > > > Lo scopo della mia proposta non è dunque quello di avere programmi indipendenti dalla pagina WEB ma di avere qualcosa che è profondamente integrato nella pagina WEB. Proprio come è oggi Javascript. Javascript non può fare cazzate perché è il browser che lo blocca se ci prova. Javascript non ha la sua GUI ma usa gli elementi HTML della pagina per lavorare. Diciamo che la mia idea è un Javascript ma in bytecode, il cui engine può essere eventualmente cambiato con uno migliore.
                  > > >
                  > > > Il bytecode sarebbe standard, l'engine invece potrebbe essere implementato da terzi. Firefox, Chrome, ecc potrebbero sviluppare il loro engine che interpreta quel bytecode, ma nulla impedirebbe a me di sostituirlo senza dover cambiare browser... e tutto questo senza rischiare nulla in termini di sicurezza perché sarebbe il browser ad occuparsi di questo aspetto.
                  > > >
                  > > > Con le Applet attuali quindi questo approccio condivide solo il concetto di Virtual Machine che gira dentro un browser.
                  > >
                  > > insomma un altro interprete Annoiato
                  >
                  > Se non ti interessa puoi sempre continuare ad usare Javascript.

                  proverò, grazie
    • Avatar
      Scritto da
      Non Autenticato
      il 2013-01-15 14:59:58.0 alle 2013-01-15 14:59:58.0
      Re: Alex.Tg
      > Ho un bel progettino per te. Che ti renderà ricco e famoso.
      > Parti leggendo questo: Re: Dart e i due link di suoranciata
      >
      > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
      >
      > Vantaggi:
      > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
      > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
      > - possibilità di aggiornare la VM senza dover aggiornare il browser
      > - far uscire i linguaggi dalle browser-wars
      >
      > Svantaggi:
      > - nessuno
      >
      > Fallo e avrai un futuro di oro, incenso e birra.

      Alex.TGSoft should change its policies to do it.
      • Avatar
        ☺
        Scritto da
        altg
        utente che non utiene
        il 2013-01-15 16:44:58.0 alle 2013-01-15 16:44:58.0
        Trollate totali: 11540
        Re: Alex.Tg
        > > Ho un bel progettino per te. Che ti renderà ricco e famoso.
        > > Parti leggendo questo: Re: Dart e i due link di suoranciata
        > >
        > > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
        > >
        > > Vantaggi:
        > > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
        > > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
        > > - possibilità di aggiornare la VM senza dover aggiornare il browser
        > > - far uscire i linguaggi dalle browser-wars
        > >
        > > Svantaggi:
        > > - nessuno
        > >
        > > Fallo e avrai un futuro di oro, incenso e birra.
        >
        > Alex.TGSoft should change its policies to do it.

        Quando mi firmo come one-man software house, mi chiamo "Home Sweet Pixel", in breve "HSP software". E non so ancora se devo parlarne al passato o al presente, figuriamoci imbarcarmi in qualche altro progetto ambizioso. Ultimamente tendo a prendere la strada del pragmatismo. A dirla piu` specificamente, sto tornando alle mio origini: invece di costruire ambienti di programmazione, ho una certa voglia di costruire mondi.

    • Avatar
      Scritto da
      Non Autenticato
      il 2013-01-15 15:18:11.0 alle 2013-01-15 15:18:11.0
      Re: Alex.Tg
      > Ho un bel progettino per te. Che ti renderà ricco e famoso.
      > Parti leggendo questo: Re: Dart e i due link di suoranciata
      >
      > Quello che devi fare è inventarti una "Virtual Machine" che accetta un bytecode stile quello di Java (un linguaggio macchina che ti inventi tu insomma) e che gira all'interno dei browser come plugin.
      >
      > Vantaggi:
      > - possibilità di programmare in che linguaggio voglio, basta che compili in bytecode valido
      > - possibilità anche di cambiare la VM nel caso in futuro ne esca una migliore (più performante, più sicura, ecc)
      > - possibilità di aggiornare la VM senza dover aggiornare il browser
      > - far uscire i linguaggi dalle browser-wars
      >
      > Svantaggi:
      > - nessuno
      >
      > Fallo e avrai un futuro di oro, incenso e birra.

      Ué calma: prima c'è il virtualizzatore che ho proposto io! Arrabbiato
<softv>

Pagina generata in 397 millisecondi

Utenti attivi: 12 nell'ultimo minuto, 24 negli ultimi cinque minuti, 47 negli ultimi 15 minuti