Vai al contenuto

Apple iPad


Tommitel

Messaggi Raccomandati:

Ma anche no.

Non riesco a digerire python et similia, il mio codice lo scrivo in C/C++. Vabbe' che forse sono un po' all'antica, visto che il mio "IDE" è vim.

Ma anche si.

Ovviamente è una questione di obiettivi.

Se voglio inizializzare una connessione ad un database, fare la query di una colonna su una tabella, scegliere tutte le occorrenze univoche dal result set ed operare una sorta di operazione su ogni elemento di esso, che so, il replace di un carattere, con groovy lo faccio in UNA riga di codice.

Prova a farlo in C++. :)

Certo è però il giorno in cui dovrò rilocare un'area di memoria non andrò certo ad usare groovy. Userò C++.

Il punto quale è quindi? E' chiaro che i linguaggi "alla vecchia" non possono morire, perchè ci sarà sempre da fare qualcosa *a così basso livello* da richiederli, dato che l'hardware è sempre hardware.

Ma, onestamente, quante volte capita nella propria vita di fare una query su un db ed elaborare il result? e quante volte di rilocare a mano una pagina di memoria?

La prima tipo 20 volte al giorno, la seconda mai, visto che nei sistemi operativi moderni la memoria è protetta rispetto ai processi in userspace.

Quindi, a meno di non essere parte del 2% dei programmatori al mondo che pilotano direttamente hardware, direi che mettersi a sviluppare, al giorno d'oggi, un progetto di alto livello facendo uso di un linguaggio che non ha nemmeno un metodo per estrarre direttamente le occorrenze esclusive da una lista, è semplicemente una cosa da fuori di testa.

Bisogna veramente volersi del male per farlo.

Ricordo un lunghissimo thread su USENET in cui i fautori di python ed i tradizionalisti (quelli che se fosse per loro sarebbe tutto scritto in asm) se le menavano di santa ragione. In confronto i flame sull'Alfa qui su AP sono scaramucce fra verginelle.

Ho sviluppato con tecnologie ad alto e a basso livello, ho usato ide da VIM a IntellJ Idea. Ho un lungo passato da flamer su argomenti like "sesso degli angeli" dell'informatica, tipo design di kernel, ambienti di sviluppo o linguaggi e framework.

Sai che ti dico? Che i megaespertoni si azzuffino su questi argomenti è una cosa che ormai mi diverte.

Queste persone sono *affettivamente* legate alla loro tecnologia preferita, e per questo argomentano il loro sentimento con disquisizione tecniche. Lo ero anche io.

Il punto però, è che non c'è sentimento: parliamo di informatica, cioè, alla fine matematica.

La matematica non ha sentimenti. Ha requisiti, obiettivi, approssimazioni, risultati.

La realtà è che io preferisco la tecnologia che mi permette di realizzare più facilmente quello che devo realizzare.

Devo realizzare applicazioni per un ambiente di cloud computing? Userò python, o groovy, o qualsiasi altro strumento mi permetta una programmazione agile senza distinzione tra locale e remoto.

Devo programmare un kernel? userò il C o il C++.

Devo programmare un kernel ma qualcuno ha inventato un framework che se scrivo list.sort() lui mi scrive il codice C per un bubblesort? userò questo framework senza pensarci 2 volte.

Ma qui si parlava di Apple iPad, e di un ambiente in cui si sviluppano applicazioni che devono mostrare icone, colori ed effetti di fade.

Ergo, francamente, la Apple la sua specie di C++ o Objective-C o come minchia vuole chiamarlo (e tra un paio di mesi mi toccherà svilupparci, lo so già), se lo può mettere in quel posto, perchè evidentemente a pensare un SDK in questo modo bisogna avere qualche problema mentale.

:)

"Fico, io ti rispondo che al buio tutti i gatti sembrano leopardi e che non bisogna mai comprare un gatto in un sacco. C'entrano qualcosa? Probabilmente no, esattamente come la tua metafora." [Loric]

Link al commento
Condividi su altri Social

  • Risposte 357
  • Creato
  • Ultima Risposta

I più attivi nella discussione

I più attivi nella discussione

Ma qui si parlava di Apple iPad, e di un ambiente in cui si sviluppano applicazioni che devono mostrare icone, colori ed effetti di fade.

Ergo, francamente, la Apple la sua specie di C++ o Objective-C o come minchia vuole chiamarlo (e tra un paio di mesi mi toccherà svilupparci, lo so già), se lo può mettere in quel posto, perchè evidentemente a pensare un SDK in questo modo bisogna avere qualche problema mentale.

:)

Ah be', sei un talebano, con te non ci parlo :lol:

Scherzi a parte è anche vero che io programmo per sfizio, tu evidentemente ci campi, per cui io mi posso permettere certi lussi* che a te non sono consentiti.

* sto lavorando ad una gui per un mediacenter, il tutto rigorosamente in C++, in quanto sfizio, non ho vincoli di tempo.

Alfiat Bravetta senza pomello con 170 cavalli asmatici che vanno a broda; pack "Terrone Protervo" (by Cosimo) contro lo sguardo da triglia. Questa è la "culona".

Link al commento
Condividi su altri Social

Ah be', sei un talebano, con te non ci parlo :lol:

Più che altro ci ditta ci abbiamo già dato un'occhiata, ed è opinione comune (non mia eh, ma di chi gira con iphone e macbook pro) che è un sdk praticamente demenziale, e che tantissime cose potevano essere semplificate.

Infatti il primo obiettivo quando entreremo in quel business sarà sviluppare internamente una serie di "librerie d'appoggio" che possano operare da framework per poi mettersi a sviluppare piangendo un po' meno. Non abbiamo ancora chiaro *quanto* l'sdk di Apple ci permetta di farlo, ma l'idea è quella.

Scherzi a parte è anche vero che io programmo per sfizio, tu evidentemente ci campi, per cui io mi posso permettere certi lussi* che a te non sono consentiti.

* sto lavorando ad una gui per un mediacenter, il tutto rigorosamente in C++, in quanto sfizio, non ho vincoli di tempo.

L'idea è che le tecnologie cambiano e si evolvono così rapidamente che ormai dire "conosco quella tecnologia" ha perso completamente significato.

Nell'ambiente dove lavoro (che essenzialmente è fornitura di servizi su linux, quindi formazione, sviluppo di applicazioni, soprattutto in ambente distribuito, per internet o datacenter, sistemistica in generale a livello enterprise, tipo xen o puppet) ormai non ci si pone nemmeno il problema di "conoscere" una tecnologia che ci si appresta ad usare.

Praticamente all'approccio di un nuovo progetto si vedono un po' i requisiti di massima e si guarda la documentazione delle varie tecnologie disponibili quella più agile per quei requisiti, e poi via di extreme programming.

Non è infrequente cambiare tecnologia in corsa o mergiarne più di una per ogni particolare parte del progetti.

Ti faccio un esempio: su 4 progetti che su cui ho messo le mani ci sono 4 container per il deploy diversi. In 3 casi sono application server, jBoss, Jetty e WebSphere, ed il 4° è deployato direttamente su apache+tomcat.

Di questi, uno è tutto java puro, uno è java+GWT, uno è in python e l'ultimo, che su cui sto mettendo le mani proprio in questi giorni, ha 3 livelli. un backend in java che implementa un framework e la security, un middle-end (o come vuoi chiamarlo) fatto essenzialmente tutto in groovy, fatto da script che fanno classloading a vicenda, completamente stateless, che, usando il framework, gestisce una o più webapplication che stanno su a xhtml+jQuery.

L'obiettivo del framework java è di fungere da "generatore" di cms (oggetti tipo drupal o joomla), permettendo ai cms progettati sopra di lui di astrarre completamente il livello del filesystem.

Praticamente il cms progettato sopra dovrebbe gestire la comunicazione e l'accesso con i dati tramite la definizione di una serie di metadati in formato JSON, senza accorgersi di scrivere su filesystem, o su database, che siano entrambi locali o remoti.

Io personalmente sto sviluppando al momento un particolare cms per il cliente e lo sviluppo va di pari passo con il framework, li stiamo facendo crescere insieme: sviluppando l'applicazione lato web capiamo che "facility" ci deve fornire il framework, e le implementiamo.

Perdona la lunghezza, e magari non te ne fregava nulla, ma capisci che ragionare a "ah che bello il c++" lavorando a questi livelli di astrazione vuol dire che ti esplode la testa istantaneamente XD

Ed ecco perchè l'sdk di apple mi sembra (e, francamente, è) esageratamente a basso per il tipo di applicativo che deve realizzare :)

"Fico, io ti rispondo che al buio tutti i gatti sembrano leopardi e che non bisogna mai comprare un gatto in un sacco. C'entrano qualcosa? Probabilmente no, esattamente come la tua metafora." [Loric]

Link al commento
Condividi su altri Social

Ricordo un lunghissimo thread su USENET in cui i fautori di python ed i tradizionalisti (quelli che se fosse per loro sarebbe tutto scritto in asm) se le menavano di santa ragione. In confronto i flame sull'Alfa qui su AP sono scaramucce fra verginelle.

in PM a qualche noto alfista avevo fatto gia' un lungo spiegone sulle sorprendenti analogie :lol:

L'idea è che le tecnologie cambiano e si evolvono così rapidamente che ormai dire "conosco quella tecnologia" ha perso completamente significato.

Nell'ambiente dove lavoro (che essenzialmente è fornitura di servizi su linux, quindi formazione, sviluppo di applicazioni, soprattutto in ambente distribuito, per internet o datacenter, sistemistica in generale a livello enterprise, tipo xen o puppet) ormai non ci si pone nemmeno il problema di "conoscere" una tecnologia che ci si appresta ad usare.

Praticamente all'approccio di un nuovo progetto si vedono un po' i requisiti di massima e si guarda la documentazione delle varie tecnologie disponibili quella più agile per quei requisiti, e poi via di extreme programming.

Non è infrequente cambiare tecnologia in corsa o mergiarne più di una per ogni particolare parte del progetti.

purtroppo e' vero:roll:

Ti faccio un esempio: su 4 progetti che su cui ho messo le mani ci sono 4 container per il deploy diversi. In 3 casi sono application server, jBoss, Jetty e WebSphere, ed il 4° è deployato direttamente su apache+tomcat.

Di questi, uno è tutto java puro, uno è java+GWT, uno è in python e l'ultimo, che su cui sto mettendo le mani proprio in questi giorni, ha 3 livelli. un backend in java che implementa un framework e la security, un middle-end (o come vuoi chiamarlo) fatto essenzialmente tutto in groovy, fatto da script che fanno classloading a vicenda, completamente stateless, che, usando il framework, gestisce una o più webapplication che stanno su a xhtml+jQuery.

L'obiettivo del framework java è di fungere da "generatore" di cms (oggetti tipo drupal o joomla), permettendo ai cms progettati sopra di lui di astrarre completamente il livello del filesystem.

Praticamente il cms progettato sopra dovrebbe gestire la comunicazione e l'accesso con i dati tramite la definizione di una serie di metadati in formato JSON, senza accorgersi di scrivere su filesystem, o su database, che siano entrambi locali o remoti.

<absit injuria verbis >

:shock: poi casualmente il tutto non scala ne funzionalmente ne in termini prestazionali e l'unico che ci sa' mettere le mani e' condannato ad avere un lavoro assicurato per il resto dei sui giorni....:lol:

</absit injuria verbis >:drink

Cita

7:32 : Segni i punti coglionazzo !

Link al commento
Condividi su altri Social

in PM a qualche noto alfista avevo fatto gia' un lungo spiegone sulle sorprendenti analogie :lol:

purtroppo e' vero:roll:

<absit injuria verbis >

:shock: poi casualmente il tutto non scala ne funzionalmente ne in termini prestazionali e l'unico che ci sa' mettere le mani e' condannato ad avere un lavoro assicurato per il resto dei sui giorni....:lol:

</absit injuria verbis >:drink

A dire il vero è un progetto dalla struttura *estremamente* pulita, e completamente modulare.

E' manutenibilissimo, sviluppabilissimo, e io stesso l'ho conosciuto con il framework già finito al 99%, e con pochissimo adattamento mi sono sincronizato con i miei colleghi e sono andato avanti.

Ogni parte, a seconda di quello che fa, è realizzata con la tecnologia migliore. Lo sviluppo in locale e compila e deploya su jetty in pochi secondi, ma lo sto testando su jBoss con un paio di centinaia di utenti fittizzi che eseguono operazioni cotemporaneamente su istanze di cms diverse e scala perfettamente.

La macchina su cui gira? una Centos virtuale con 512mb di ram ed una cpu sola.

Fossero fatti tutti così, i software, il mondo sarebbe un posto migliore.

Invece l'altro giorno volevo mettere le mani a Trinity Project, che è un emulatore per World of Warcraft, per dare una mano ad un amico che ha uno shard privato.

Ebbene, vagonate e vagonate di file in C++, codice scritto con 5 stili diversi (per il C++, lo ricordo, lo permette. altri linguaggi, come il python o il roby, no.) e quindi completamente incomprensibili.

Nessuna modularità, con le formule, posizioni assolute degli elementi, punti di spawn e chi più ne ha più ne metta schiantate nel codice.

La prima cose che volevo fare era tirare fuori tutte le formule e i campi di match delle spell in file XML.

Però poi mi son detto: no wait, questo è C++, come cazzo me lo gestisco l'XML in maniera furba? Risposta ovvia: non me lo gestisco.

Motivo per cui lascerò quella porcheria immane al suo destino :)

"Fico, io ti rispondo che al buio tutti i gatti sembrano leopardi e che non bisogna mai comprare un gatto in un sacco. C'entrano qualcosa? Probabilmente no, esattamente come la tua metafora." [Loric]

Link al commento
Condividi su altri Social

Invece l'altro giorno volevo mettere le mani a Trinity Project, che è un emulatore per World of Warcraft, per dare una mano ad un amico che ha uno shard privato.

Ebbene, vagonate e vagonate di file in C++, codice scritto con 5 stili diversi (per il C++, lo ricordo, lo permette. altri linguaggi, come il python o il roby, no.) e quindi completamente incomprensibili.

Nessuna modularità, con le formule, posizioni assolute degli elementi, punti di spawn e chi più ne ha più ne metta schiantate nel codice.

Gli "stili" diversi sono ovviamente da imputare alla mancanza di coordinamento fra diversi sviluppatori. Mi sono visto *giustamente* respingere patch che avevo fatto per un movie player su Linux a causa della posizione delle parentesi "{}" nei blocchi di codice e per l'indentazione che non erano corrispondenti allo stile ufficialmente scelto per lo sviluppo del programma. Ripeto: avevano ragione.

La prima cose che volevo fare era tirare fuori tutte le formule e i campi di match delle spell in file XML.

Però poi mi son detto: no wait, questo è C++, come cazzo me lo gestisco l'XML in maniera furba? Risposta ovvia: non me lo gestisco.

Motivo per cui lascerò quella porcheria immane al suo destino :)

Lo gestisci con una delle varie librerie XML che vanno per la maggiore. A meno che tu non abbia esigenze che mi sfuggono.

Alfiat Bravetta senza pomello con 170 cavalli asmatici che vanno a broda; pack "Terrone Protervo" (by Cosimo) contro lo sguardo da triglia. Questa è la "culona".

Link al commento
Condividi su altri Social

Artemis non intendo assolutamente metter in dubbio la bonta' del lavoro svolto, anche perche' non conoscendolo cmq non lo potrei fare.:mirror:

Per esperienza metto in dubbio invece il successo complessivo di tanti ottimi sforzi :roll: a causa della filosofia che ci sta dietro o meglio che sta dietro al mercato e ai clienti.:|

la stessa esistenza di tanti framework o di tanti media player o di tanti CMS (*) dimostra che ognuno di essi e' il meglio possibile per fare proprio quella specifica operazione o funzionalita' ma troppo spesso nessuno di questi e' alla lunga meglio degli altri e si perde.

* 10 anni fa un famosissimo cliente stava sviluppando il suo cms: non che non ce ne fossero altri in giro, non che non abbia avuto un notevole successo, ma e' comunque rimasto una goccia nel mare delle decine di CMS opensource e centinaia di prodotti commerciali in cui nel frattempo mi sono imbattutto...

sono certo anche del fatto che ora funziona bene, ma centos non e' certificato nemmeno su bare metal, l'insieme di tutti le componenti citate non evolve in modo omogeneo e crea un sacco di interdipendenze future e invece 1 GB di ram viene 20 euro;)

imho sarebbe meglio farne meno ma fatti meglio : proprio a costo di dover riscrivere il proprio contributo

per adeguarsi a certe convenzioni (anche se spesso poco furbe e noiose)

insomma, per tornare in Topic:

non mi stupisce che poi ci siano persone che invece preferiscono delegare tutto all'appstore che seleziona 1 applicazione specifica e diversa per ogni esigenza (a me per conoscere "la metropolitana di barcellona" basta il solo browser :roll:) ..e.... basta la':lol:

Cita

7:32 : Segni i punti coglionazzo !

Link al commento
Condividi su altri Social

Lo gestisci con una delle varie librerie XML che vanno per la maggiore. A meno che tu non abbia esigenze che mi sfuggono.

Che io sappia non esistono librerie xml per c++ che mi permettano di scrivere e leggere in un xml con la sintassi usabile per una mappa.

Si parla sempre di cose molto più complicate.

Poi per carità, magari hanno sviluppato una libreria che con

def variabile = nomeOggetto?.key?.subkey

mi permette di leggere un marker xml come una value di un json come un index sql, facendomi il safe navigation nella struttura e tornandomi un null al primo notFound anzichè spararmi un eccezione.

Ma se c'è, io non la conosco.

E se non c'è, userò un linguaggio più adatto per fare quella cosa, perchè con il C++ perdo tempo e cervello facendo in modo più complicato una cosa che potrei fare in modo più semplice.

:)

"Fico, io ti rispondo che al buio tutti i gatti sembrano leopardi e che non bisogna mai comprare un gatto in un sacco. C'entrano qualcosa? Probabilmente no, esattamente come la tua metafora." [Loric]

Link al commento
Condividi su altri Social

Artemis non intendo assolutamente metter in dubbio la bonta' del lavoro svolto, anche perche' non conoscendolo cmq non lo potrei fare.:mirror:

Per esperienza metto in dubbio invece il successo complessivo di tanti ottimi sforzi :roll: a causa della filosofia che ci sta dietro o meglio che sta dietro al mercato e ai clienti.:|

Guarda, non posso parlare di dettagli di quello che sto sviluppando, non ancora perlomeno, anche se poi diventerà software libero a sviluppo completo.

Però posso dirti che le persone con cui lavoro sono dei maghi del non reinventare la ruota. Gli ho visto fare dei copia/incolla veramente estremi.

Il punto del prodotto che stiamo sviluppando, quindi, è che non esiste veramente nulla di simile.

Lo stesso principio di ciò che era stato richiesto dal cliente, ovvero un cms che fosse amministrabile direttamente mettendo e togliendo file dalle sue directory, non c'era in commercio.

Partendo quindi dall'idea del cliente abbiamo deciso di "generalizzare" la sua idea e trarne fuori un prodotto che potesse anche sopravvivere autonomamente.

Non so dirti riguardo al successo o meno dell'applicazione, dato che sicuramente non è un applicazione per un target utente (non è un joomla o un drupal, o phpbb, con cui ti fai il tuo sito, non c'entra niente), ma adatta ad un ambiente enterprise, ma quello che volevo semplicemente dire era portarlo come esempio di qualcosa che viene realizzato scegliendo la tecnologia più comoda per ogni aspetto, senza rimanere necessariamente ancorati ad una con cui si vuole fare tutto a tutti i costi.

Si chiama programmazione agile proprio per quello, alla fine. Perchè è agile ;)

"Fico, io ti rispondo che al buio tutti i gatti sembrano leopardi e che non bisogna mai comprare un gatto in un sacco. C'entrano qualcosa? Probabilmente no, esattamente come la tua metafora." [Loric]

Link al commento
Condividi su altri Social

Che io sappia non esistono librerie xml per c++ che mi permettano di scrivere e leggere in un xml con la sintassi usabile per una mappa.

Si parla sempre di cose molto più complicate.

Poi per carità, magari hanno sviluppato una libreria che con

def variabile = nomeOggetto?.key?.subkey

mi permette di leggere un marker xml come una value di un json come un index sql, facendomi il safe navigation nella struttura e tornandomi un null al primo notFound anzichè spararmi un eccezione.

Stai ancora parlando di quel MMORPG o stiamo discutendo di filosofia? Perché se il problema è salvare le stats dei "mostri" da qualche parte permettendo modifiche che non richiedano interventi sul codice, le librerie che conosco per il parsing dell'XML sono più che sufficienti. Oppure si può optare per salvarle in un DB e, anche qui, c'è ampia possibilità di scelta.

Ma se c'è, io non la conosco.

E se non c'è, userò un linguaggio più adatto per fare quella cosa, perchè con il C++ perdo tempo e cervello facendo in modo più complicato una cosa che potrei fare in modo più semplice.

:)

Con tutto il dovuto rispetto, è il classico discorso che non porta a nulla.

Alfiat Bravetta senza pomello con 170 cavalli asmatici che vanno a broda; pack "Terrone Protervo" (by Cosimo) contro lo sguardo da triglia. Questa è la "culona".

Link al commento
Condividi su altri Social

Ospite
Questa discussione è chiusa.

×
×
  • Crea Nuovo...

 

Stiamo sperimentando dei banner pubblicitari a minima invasività: fai una prova e poi facci sapere come va!

Per accedere al forum, disabilita l'AdBlock per questo sito e poi clicca su accetta: ci sarai di grande aiuto! Grazie!

Se non sai come si fa, puoi pensarci più avanti, cliccando su "ci penso" per continuare temporaneamente a navigare. Periodicamente ricomparità questo avviso come promemoria.