View Full Version : Quale linguaggio in ambito web
Buonasera a tutti,
Ho 29 anni e sono un appassionato di informatica. Ho buone conoscenze per quanto riguarda HTML e CSS, ma nessuna di programmazione.
Ho provato a leggere qualcosa su php, ma ho letto cose molto contrastanti e vorrei avere un consiglio da voi esperti su quale linguaggio di programmazione in ambito web iniziare a studiare.
Grazie
Javascript e' il linguaggio piu' adatto per uno che si definisce "sviluppatore web".
E' di fatto l'unico linguaggio che gira nel browser abbinato a html+css e da qualche anno puo' essere utilizzato anche server-side con Node.js
Qualsiasi altro linguaggio ti costringe a imparare JS nel momento in cui vorrai fare qualcosa frontend (conosci gia' html+css mi sembra che sei gia' a buon punto)
Ha il package manager con piu' moduli in assoluto (NPM) ed in continua crescita (sintomo che la community attorno e' sempre piu' grande e attiva)
http://www.modulecounts.com/
Il linguaggio si evolve molto velocemente (ES6/7 - Babel)
Node.js si sta evolvendo altrettanto velocemente (ultime versioni di V8)
Alternativamente in un ottica meno "web" ma piu' generale, come investimento per il futuro io imparerei uno di questi al momento:
Go, Rust, Elixir, Haskell
Se vuoi rimanere piu' sul tradizionale: Python, e' un buon linguaggio da imparare ed e' piacevole da utilizzare.
Personalmente in questo momento non imparerei mai PHP. Sono pochissime le persone che una volta provati vari linguaggi sono comunque felici di usare PHP.
Obj-c / Swift se vuoi fare app iOS.
Java se vuoi fare app Android.
Grazie mille per la risposta esaustiva, ma avrei ancora qualche domanda da fare :D
Javascript pensavo fosse integrativo a html e css e che servisse un'altro linguaggio (come php per esempio) per la parte dinamica del sito web.
Considerato che con la programmazione parto da zero, potrebbe essere utile imparare un linguaggio che mi permetta di andare oltre alla progettazione web?
Grazie
DavideDaSerra
31-08-2015, 11:19
Sì, almeno per 'capire' cosa significa programmare, ti consiglio di iniziare con JAVA, con cui potrai anche programmare il back-end di servizi web (es con JavaEE), ti consiglio JAVA perchè ha una documentazione sterminata, evita problemi tipici di linguaggi più a basso livello (es C++) quali la condivisione di aree di memoria e i puntatori e gira praticamente su qualunque cosa.
Per quanto riguarda scripting e backend web, adesso va molto di moda Python, si trovano molte librerie, ma la documentazione è in generale peggiore che quella di java, inoltre occio a spazi / a capo, io c'ho messo un po' per gestirli decorsamente.
Come framework web prova GoogleAppEngine, che per applicazioni web 'sperimentali' è abbastanza buono anche nella versione gratuita (ma creati un account apposito, perchè se al tuo hai legato la CC se sfori le soglie inizi a pagare, poco, ma paghi), supporta Python e java (ma questo in beta), inoltre è abbastanza documentato.
Come IDE ti consiglio PyCharm di JetBrains, che per lo sviluppo web non è niente male.
Se invece vuoi programmare app (anche semplici) per telefononi, questo è il momento di iniziare con windows phone, col vantaggio che essendo l'Italia uno dei mercati maggiori per questa piattaforma, scrivere le app in italiano non è limitante come per IOS e Android, e il market è ancora vuoto dunque è più improbabile pubblicare qualcosa che esiste già.
Per quanto riguarda javascript, a me non piace, lo trovo 'cervellotico' e criptico, certo che ad oggi è un male necessario, ma almeno i vari framework lo rendono meno faticoso da utilizzare.
Quindi giusto per capire, quello che farei con php, lo andrei a fare con java o con python giusto?
Tra i due linguaggi con quale mi consigli di iniziare?
Grazie
Dipende tutto da quel che vuoi fare, io ti ripeto quando si parla di ambito WEB c'e' solo un linguaggio di programmazione che gira client-side ed e' Javascript, su questo non si scappa.
E' altamente improbabile che fai qualcosa in html-css senza nemmeno una riga di Javascript al giorno d'oggi quindi devi impararne le basi.
Alla tua domanda "pensavo che servisse un linguaggio tipo PHP lato server" questo era vero fino a 5 anni fa ma da quando e' nato Node.js puoi utilizzare Javascript anche lato server e direi anche con ottimi risultati per certi aspetti.
In generale e' sempre utile capire cosa vuoi fare.
Come ti ho detto se il tuo "ambito web" per te significa andare a fare app per mobile, allora Javascript non e' il linguaggio da scegliere sicuramente.
Se il tuo "ambito web" e' progettare un nuovo database, idem con patate.
Ogni linguaggio e' uno strumento e ci sono task che puo' fare meglio e altri che puo' fare peggio.
Personalmente ritengo Java "pesante" e di una "verbosità" che fa piangere.
Al giorno d'oggi i linguaggi devono anche essere piacevoli da utilizzare per un programmatore, esempi ne sono Ruby / Golang / Python.
Di certo non Java.
Per non parlare del package manager piu' famoso di Java (Maven) che non ho ancora sentito una persona non lamentarsi di quanto fa cacare.
La mia idea è quella di imparare un linguaggio per la creazione di siti web dinamici, ed ero inizialmente propenso ad imparare php. Le opinioni contrastanti sul web, mi hanno frenato e per questo mi ritrovo qui.
Visto che di programmazione parto da zero, preferirei imparare un linguaggio che mi permetta anche di spostarmi dall'ambito web.
Spero di essermi spiegato.
Penso che escludere java fin da subito per lo sviluppo di applicazioni web non sia del tutto giusto. Visto che adesso molte applicazioni web sono sviluppate su tomcat e quindi servlet java.
Molte aziende tuttora usano java perchè è uno dei linguaggi ad oggetti più ribusti e testabili.
I linguaggi come Ruby o Python sono molto più procedurali, quindi anche più semplici, ed hanno un accesso più basso a livello di competenze.
Se il tuo scopo è quello di programmare e sviluppare siti web non ha molte differenze se usi un linguaggio o un altro, ma sicuramente non java che ti perdi subito.:D
La mia idea è quella di imparare un linguaggio per la creazione di siti web dinamici, ed ero inizialmente propenso ad imparare php. Le opinioni contrastanti sul web, mi hanno frenato e per questo mi ritrovo qui.
Visto che di programmazione parto da zero, preferirei imparare un linguaggio che mi permetta anche di spostarmi dall'ambito web.
Spero di essermi spiegato.
Se per siti web dinamici intendi con animazioni, meglio che impari js e i suoi framework. Penso sia l'unico linguaggio per fare le animazioni in una pagina web.
Se il tuo scopo è quello di programmare e sviluppare siti web non ha molte differenze se usi un linguaggio o un altro, ma sicuramente non java che ti perdi subito.:D
Quindi prendere in considerazione anche php? Per dinamico non intendevo con animazioni, ma con la possibilità di interazione con i visitatori.
Per esempio un progetto che ho in mente di fare, è quello di creare un portale per gestire un campionato di calcio, dove per esempio classifiche e statistiche andranno a completarsi automaticamente grazie all'inserimento dei dati partita da parte degli utenti.
Questa è un progetto senza pretese, ma è giusto per farvi capire cosa intendevo per sito dinamico.
Se devi fare qualcosa di non professionale penso che php vada più che bene. Però è vero anche che adesso quasi nessuno, in ambito professionale, lo usano più.
Ruby / Golang / Python posso essere delle valide alternative, ma considera che sono leggermente più potenti, quindi più difficili.
Comunque i linguaggi sono molto simili fra di loro per certi versi. Provarli non fa di certo male, anzi c'è sempre qualcosa da imparare in ogni linguaggio.
Il mio esempio era amatoriale, ma non vorrei rimanere a quel livello. Vorrei imparare un linguaggio che mi possa servire anche in ambito professionale.
io non amo java, anzi, lo evito drasticamente.
Va detto però che:
1) nel mondo lavorativo è ancora il più richiesto (forse anche perchè per un progetto java ci voglioni il doppio delle persone che su altri linguaggi a parità di tempo di sviluppo :D)
2) con la 8 sono avantissimo su un sacco di cose, sicurezza e gestione delle basi dati in primis
io viluppo e uso molto javascript, che è un linguaggio di frontend, non trovo reali vantaggi a farlo diventare backend.
le sintassi si cambiano e si imparano, non perdiamoci in biecchieri d'acqua e andiamo al sodo.
performance? ancora non ci siamo, java surclassa essendo compilato e php vince ancora (entrambi sono non compilati ma ormai hanno vari accrocchi e accelleratori).
linguaggi vari spesso sono mode del momento, casi di studio o nicchie.
se poi parliamo di linguaggi web ancora di più.
python ormai è abbastanza diffuso e lo trovi anche facilmente come hosting, ma siamo noi informatici siamo nel mondo del riusabile e codice funzionante (vecchio e non) ancora lo si trova più di tutti per php, che in sordina e con tutte le sue magagne è talmente diffuso che continua ad evolversi.
non dimentichiamoci cosa ci ha creato attorno facebook (dalla vm ad un linguaggio con la stessa sintassi) e che la stessa wikip è ancora con php (ora migrati con il pacchetto semicompilato di facebook)
quindi il mio consiglio?
php e java.
uno per imparare, la velocità e l'efficacia nel raggungere l'obbiettivo, l'altro per il mondo lavorativo enterprise (se invece vuoi rimanere nel "piccolo" sempre php, punto).
se poi parliamo di nativi cambia tutto...
objective-c per me è stato un amore a prima vista, un altro mondo, ma non è un linguaggio web e cambia anche per quello ;)
ps. php è meno potente di linguaggi compilati
degli interpretati e dei semicompilati NO
(benchmark alla mano, il web ne è pieno)
è diventato mooolto scalabile con la compilazione introdotta da facebook (e molto più difficile anche da quel lato).
però ragazzi, ma quanti milioni di righe scrivete al secondo in un db?
se php non basta servono o java o C, il resto è moda.
ora la moda è node.js
trovatemi anche framework decenti per nodejs, non dimenticate anche che i pattern fanno la differenza (php e java ne hanno molti e funzionanto).
D'accordo al 99% con les2:D .
Personalmente preferisco java perchè è un linguaggio object oriented, quindi molto più testabile ed applicabile ai pattern.
La moda dei node.js sta già scontrando problemi di mantenibilità, soprattutto quando i progetti diventano grandi e complicati.
Per il progetto che hai in mente è più che sufficiente il php. Realizzarlo in java sarebbe più complicato, ma hai più strumenti per realizzare un bel progetto.
Bene, sempre più confuso. :D
Ok che per fare una cosa cosi basta e avanza php, ma volessi proiettarmi in futuro su un aspetto lavorativo professionale, la scelta andrebbe su??? :ciapet:
Python o Java a quanto ho capito....
Quindi ci siamo spostati dal web al mondo lavorativo in generale? :D
Se non hai avuto nessuna esperienza di programmazione io ti consiglio Java, e il motivo è che è un linguaggio sufficientemente robusto da farti comprendere alcuni fondamenti della programmazione (tipi e controllo dei tipi forte) senza tuttavia scendere troppo in basso (gestione della memoria, puntatori...).
Inoltre come già ti hanno detto in molti c'è il plus che è ancora decisamente molto richiesto, si trovano molte librerie e la documentazione mediamente è fatta meglio.
Ha anche un altro plus che è quello di essere il linguaggio principe dietro le applicazioni sviluppate su Android, se ti dovesse interessare in futuro.
Personalmente non amo per niente Javascript, così come i linguaggi debolmente tipizzati, portano facilmente a scrivere programmi poco manutenibili (paradossalmente) e hai molte meno garanzie durante l'esecuzione.
Ma è un male necessario per tutta la parte client-side del web. Sul server side francamente non vedo ragioni per preferirlo ad altri linguaggi.
Credo non abbiate bene idea di come viene utilizzato javascript lato server e dei sui vantaggi/svantaggi perche' ho letto tante panzanate.
@les2: e' pieno di company grandi che devono servire milioni di utenti al giorno con node.js in produzione.
Parliamo di nomi quali Uber, The Guardian, Daily Mail, Linkedin, Paypal e centinaia di altri, questi sono i piu' ecclatanti che mi vengono in mente.
Detto questo, non e' il thread adatto per una discussione del genere a cui l'op frega un cazzo sostanzialmente.
Io rimango della mia idea che in ambito web, specialmente se sei alle prime armi e vuoi imparare velocemente a fare qualcosa e vedere dei risultati e perche' no divertirti, Javascript e' la scelta migliore, oltre ai motivi gia' detti sopra.
Sul server side francamente non vedo ragioni per preferirlo ad altri linguaggi. Una su tutte: Node.js.
Sono d'accordo che JavaScript abbia vari difetti, ma esistono anche linguaggi che compilano verso JavaScript. La visione di Brendan Eich, quella di JavaScript come bytecode del web, mi piace molto.
Ciò detto, approfitto per fare spam spudorata. :ciapet:
CoffeeScript mi fa abbastanza schifo perchè per me crea solo confusione aggiungendo al panorama l'ennesimo linguaggio di cui non si sentiva bisogno perchè di fatto non risolve quelli che ritengo essere i problemi di JavaScript (sistema di tipi fracico se non del tutto assente e inottimizzabilità a causa della riflessività). CoffeeScript, nella sua totale idiozia, si propone come brillante e rivoluzionario quando in realtà è un inutile zucchero sintattico, nel senso più tecnico dell'espressione. Praticamente una buzzword.
Ed è questo il motivo, qui arriva la spam, per cui sto creando un mio linguaggio (https://github.com/71104/lambda) che compila verso JavaScript. :D
(disclaimer: per ora non compila un bel niente perchè il compilatore non è finito, però l'interprete mi sembra funzionare bene e lo rende già usabile all'interno di Node.js)
Magari in futuro apro un topic dedicato.
mai piaciuto nemmeno a me Coffeescript
ES6/7 porta un sacco di evoluzioni nel linguaggio , non so se hai avuto modo di provare un po.
Se vuoi la tipizzazione credo la scelta piu' saggia al momento sia http://www.typescriptlang.org/ , come mai vuoi crearti un tuo linguaggio?
Se vuoi la tipizzazione credo la scelta piu' saggia al momento sia http://www.typescriptlang.org/ , Qualunque sovrainsieme di JavaScript si porta appresso pari pari tutti i suoi difetti. Direi scartato a priori.
come mai vuoi crearti un tuo linguaggio? Perchè mi va, no?
cdimauro
01-09-2015, 06:38
Io scarto a priori i linguaggi che utilizzano la RPN nel 2015... :asd:
Io scarto a priori i linguaggi che utilizzano la RPN nel 2015... :asd: Vorrà dire che scarterai a priori il linguaggio perfetto. :ciapet:
, ma esistono anche linguaggi che compilano verso JavaScript. La visione di Brendan Eich, quella di JavaScript come bytecode del web, mi piace molto.
Insomma, è un po' inquietante...
Preferisco questa di idea: https://www.w3.org/community/webassembly/
http://arstechnica.com/information-technology/2015/06/the-web-is-getting-its-bytecode-webassembly/
Almeno ognuno potrà usare il linguaggio che preferisce :D.
Ma siamo OT.
premesso che io sono un amante del javascript, lo uso molto e se programmi web lo devi sapere usare (e ora anche se programmi desktop lo puoi più o meno usare).
detto questo...
molti usano node.js vero, molti colossi che peraltro si permettono di fare ricerca e non tutti, ma dovreste sapere che lo usano su servizi dedicati per lo più.
linkedin e paypal so per certo che usano molto php ;)
se parliamo di sicurezza javascript non è la strada gusta, che poi vista ancora la poca diffusione si conoscano meno falle è un altro discorso :)
1) io non partirei con node.js e non lo consiglierei come primo linguaggio
2) comprendo il perchè si consiglia python, l'approccio mentale è ottimo. secondo me poi bisogna sapere altro, mai vista una richiesta di lavoro (se non freelance) che chieda esclusivamente python
3) se si parte da zero e si vuole fare web iniziare con html + javascript e php porta sicuramente nel breve ad un risultato più tangibile. poi si cresce in autonomia verso quello che si preferisce ;)
cdimauro
01-09-2015, 21:33
Vorrà dire che scarterai a priori il linguaggio perfetto. :ciapet:
Preferisco un linguaggio imperfetto, ma leggibile e produttivo, a un'accozzaglia di simboli che compone l'n-esimo linguaggio funzionale che rimarrà nell'oblio. ;)
detto questo...
molti usano node.js vero, molti colossi che peraltro si permettono di fare ricerca e non tutti, ma dovreste sapere che lo usano su servizi dedicati per lo più.
Mah non e' assolutamente vero.
Viene usato in produzione da colossi.
Serve tutte le API del frontend dell' e-commerce di Walmart (e hanno pure un loro framework open-source abbastanza famoso Hapi.js mantenuto da loro) e le performance sono assurde, qui si parla del 2013:
https://github.com/hapijs/hapi/issues/1326
Hapi was able to handle all of Walmart mobile Black Friday traffic with about 10 CPU cores and 28Gb RAM (of course we used more but they were sitting idle at 0.75% load most of the time). This is mind blowing traffic going through VERY little resources.
linkedin e paypal so per certo che usano molto php ;)
Forse in questo caso per qualcosa di interno o qualche servizio estremamente secondario, in produzione per l'utente finale sui servizi principali ne dubito altamente, non ne ho MAI sentito parlare.
Paypal saranno 2 anni che sta passando sempre piu' roba da Java a Javascript sul lato frontend
https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/
https://www.joyent.com/developers/videos/node-js-on-the-road-sf-node-js-at-paypal
Hanno pure realizzato Kraken che e' una serie di best-practise, middleware per express e altri plugin
http://krakenjs.com/
Linkedin sono stati anche loro tra i "pionieri" ad usare Node, che serviva (e credo serva ancora) l'app mobile.
Netflix e' da un annetto e mezzo che lo usa:
https://www.talentbuddy.co/blog/building-with-node-js-at-netflix/
con ottimi risultati a quanto pare:
http://techblog.netflix.com/2015/08/making-netflixcom-faster.html
se parliamo di sicurezza javascript non è la strada gusta, che poi vista ancora la poca diffusione si conoscano meno falle è un altro discorso :)
Ma che vuol dire ???
I problemi di sicurezza ci sono ovunque e se uno ha seguito l'andamento dell'ultimo anno sono piu' i software "battle-tested" che hanno creato scalpore per le vulnerabilita' trovate, non di certo nodejs
https://en.wikipedia.org/wiki/Shellshock_(software_bug)
http://heartbleed.com/
e via dicendo
1) io non partirei con node.js e non lo consiglierei come primo linguaggio
Questa frase da sola non ha senso.
Javascript ti permette con un unico linguaggio di ottenere risultati veloci e costruire MVP che possono tranquillamente scalare e diventare prodotti.
La facilita' di sviluppo in javascript e' pure disarmante.
Con php mediamente devi installare apache/nginx, configurare vhost, moduli vari, installare quel che ti serve, il package manager fa letteralmente cagare a spruzzo etc
Con node installi tutto con un eseguibile (node+npm), fai partire il tuo progetto da linea di comando con una riga, hai un package manager che e' fantastico, una community molto attiva (la piu' attiva al momento), delle best practise che ritrovi molto piu' spesso rispetto (il fatto di componentizzare il piu' possibile e riusare il codice sotto forma di componenti - moduli di npm), etc
Non c'e' proprio paragone tra php e node per velocita' di sviluppo in questo momento.
2) comprendo il perchè si consiglia python, l'approccio mentale è ottimo. secondo me poi bisogna sapere altro, mai vista una richiesta di lavoro (se non freelance) che chieda esclusivamente python
Probabilmente vivi in Italia dove si e' indietro di 10 anni e l'annuncio medio di lavoro consiste nel cercare un developer junior che conosca php,python,java,jquery,ruby,html,css,javascript bonus C/C++.
A Londra e' pieno di offerte dove cercano esclusivamente Python e in generale la specializzazione ti porta a guadagnare molti piu' soldi rispetto al "jack of all trades".
Detto questo una persona in gamba non ci impiega "molto" a prendere in mano un altro linguaggio se necessario e una volta che si conoscono i pattern principali si puo' anche scrivere del codice decente.
3) se si parte da zero e si vuole fare web iniziare con html + javascript e php porta sicuramente nel breve ad un risultato più tangibile. poi si cresce in autonomia verso quello che si preferisce ;)
Assolutamente no come ho gia' detto sopra
Bellissima discussione, non pensavo di far scoppiare un putiferio.
Comunque rimango sempre più confuso :muro:
:D
guarda,personalmente credo temo tu sia abbagliato dalla moda, non mi fraintendere che mi sono chiare le potenzialità (e i limiti di node.js).
al momento non lo trovo una strada così furba come si voglia far credere.
come hai detto tu è usato (ed il il suo vantaggio nel gestire le richieste) molto per servire servizi mobile, in quel caso funziona benissimo.
negli altri casi non ha senso ;)
poi se parliamo di front end, allora mi trovi pienamente d'accordo, javascript serve per quello
sul cambio di linguaggio condivido, ecco perchè ritengo che più semplice sia la partenza e meglio è.
ad oggi php resta ancora il più facile se consideri tutto il pacchetto (trovare hosting, partire magari da template e cms esistenti, codice pappa pronta etc...)
capito il concetto si fa quello che si vuole, si cambia sintassi, linguaggio, paradigma etc...
ma no nessun putiferio :)
quando c'è la passione in mezzo alle idee è sempre così!
domandona, tu su html e css ti muovi o sei a digiuno?
ho dato per scontato ti interessasse anche il lato front.
Con html e css me la cavo bene e li uso spesso.
E' che non so a quale linguaggio appogiarmi, in più andando avanti con la discussione, le cose non migliorano. :D
Preferisco un linguaggio imperfetto, ma leggibile e produttivo, a un'accozzaglia di simboli che compone l'n-esimo linguaggio funzionale che rimarrà nell'oblio. ;) La "perfezione" di Lambda non è fine a se stessa. Ho ancora da riempire questo wiki (https://github.com/71104/lambda/wiki/Discourse) in cui chiarirò le mie idee in merito, ma sostanzialmente le scelte di design di Lambda sono finalizzate a determinati scopi e sono giudicate le "migliori" in funzione di quegli scopi.
Per il resto prendo atto che il successo non può essere uno dei fini del progetto, grazie per la tua opinione. :)
negli altri casi non ha senso ;) Sarebbe interessante ricevere su questo punto qualche argomentazione che vada al di là di un'occhiolino di una qualche fantomatica intesa.
Bellissima discussione, non pensavo di far scoppiare un putiferio.
Comunque rimango sempre più confuso :muro:
:D
Ripeto la domanda, alla quale non mi hai risposto: quindi ci siamo spostati dal web al mondo lavorativo in generale?
Questa cosa è fondamentale. Così come conoscere la tua esperienza pregressa in programmazione.
In caso ti fosse sfuggito: http://www.hwupgrade.it/forum/showpost.php?p=42814818&postcount=17
Scusa ma pensavo di averti risposto. Il mio post riguardava un consiglio sul linguaggio da utilizzare in ambito web, ma visto che inizio da zero, tanto vale che impari un linguaggio che mi possa servire anche in ambito lavorativo professionale.
Sarebbe interessante ricevere su questo punto qualche argomentazione che vada al di là di un'occhiolino di una qualche fantomatica intesa.
nessuna fantomatica intesa :)
semplicemente fare vbulletin o wordpress in node.js non mi sembra produttivo
se uno deve sviluppare un'applicazione servizio su determinate esigenze calza molto bene (vedi appunto un servizio rest per app mobile ad esempio), ma se io (o meglio il nostro amico) devo iniziare, essere produttivo e magari mentre gioco ed imparo faccio anche qualcosa php è decisamente più indicato:
1) puoi partire usando wp o un frmework o un mezzo fm e ce ne sono fin troppi e tutto pronto alluso con tanto di template che compri e viavia aggiungi e personalizzi ed impari.
2) se devi fare qualcosa di semplicissimo fine al risultato è sicuramente la via più immediata
3) hai già l'hosting pronto e ben configurato ovunque, diverso è doversi creare una macchina virtuale ed installare via riga di comando il tutto (devi avere tempo e devi saperlo fare, nulla di esoterico ma va messo in conto)
quello che bisogna imparare sono le logiche base dietro ai routing, ai db, all'uso di classi e modelli, poi il linguaggio di per se conta poco. diciamo però che se parliamo di performance vi ricordo che hwupgrade gira su php e su una versione vecchiotta di vbulletin per giunta :)
se vi serve di più significa che siamo in altri ambiti.
diverso ancora è il caso in cui uno abbia voglia di cambiare ed imparare e scoprire un nuovo linguaggio
Scusa ma pensavo di averti risposto. Il mio post riguardava un consiglio sul linguaggio da utilizzare in ambito web, ma visto che inizio da zero, tanto vale che impari un linguaggio che mi possa servire anche in ambito lavorativo professionale.
Purtroppo in ambito web non esiste 1 solo linguaggio, ne esistono tanti.
HTML/CSS e Javascript per la parte di frontend (fondamentalmente layout e grafica della pagina, comprese animazioni ed effetti vari, gestione dei caricamenti asincrona e via discorrendo).
PHP, Ruby, Javascript, Python, Java per la parte di backend (il processamento lato server, generazione di pagine dinamiche e via discorrendo).
Ma non solo, nel backend spesso hai bisogno di una base di dati dunque dovresti andare anche su SQL o comunque su framework in grado di astrarre la persistenza dei dati.
In ambito web, così come nell'ambito della programmazione in generale le possibilità sono tante.
Bisogna vedere qual è il livello che vuoi raggiungere e in quanto tempo.
Se vuoi farla diventare una professione allora conviene investire tempo e non bruciare le tappe ed imparare a programmare dalle basi con un linguaggio come Java in quanto dal mio punto di vista un linguaggio con una struttura "forte" è più adatto a chi comincia (inoltre come già detto le conoscenze possono essere usate per molti altri scopi, client, server e mobile).
Se vuoi avere dei risultati immediati, più "amatoriali" allora forse ha senso concentrarti subito sulle tecnologie web (PHP penso sia molto richiesto in quell'ambito, è un linguaggio che ha le sue pecche, ma che è ancora molto usato e supportato).
Personalmente partire dal web non è una cosa che mi sento di consigliare (tanti linguaggi, tanto caos in generale e libertà pressoché totale che in parte è contro-producente per chi inizia), ma essendo stato anche io smanettone so che spesso si può trarre una soddisfazione infinita da quel tipo di programmazione :D, spesso perché più immediata.
nessuna fantomatica intesa :)
semplicemente fare vbulletin o wordpress in node.js non mi sembra produttivo
se uno deve sviluppare un'applicazione servizio su determinate esigenze calza molto bene (vedi appunto un servizio rest per app mobile ad esempio), ma se io (o meglio il nostro amico) devo iniziare, essere produttivo e magari mentre gioco ed imparo faccio anche qualcosa php è decisamente più indicato:
1) puoi partire usando wp o un frmework o un mezzo fm e ce ne sono fin troppi e tutto pronto alluso con tanto di template che compri e viavia aggiungi e personalizzi ed impari.
2) se devi fare qualcosa di semplicissimo fine al risultato è sicuramente la via più immediata
3) hai già l'hosting pronto e ben configurato ovunque, diverso è doversi creare una macchina virtuale ed installare via riga di comando il tutto (devi avere tempo e devi saperlo fare, nulla di esoterico ma va messo in conto)
quello che bisogna imparare sono le logiche base dietro ai routing, ai db, all'uso di classi e modelli, poi il linguaggio di per se conta poco. diciamo però che se parliamo di performance vi ricordo che hwupgrade gira su php e su una versione vecchiotta di vbulletin per giunta :)
se vi serve di più significa che siamo in altri ambiti.
diverso ancora è il caso in cui uno abbia voglia di cambiare ed imparare e scoprire un nuovo linguaggio
Sono d'accordo che PHP disponga di un vasto parco software già pronto, ma questo non lo rende la tecnologia più adatta a creare CMS, forum, o altri sistemi. Anzi, una volta escluso il parco software probabilmente PHP è la tecnologia meno adatta in assoluto per qualunque compito, che è un bel record.
Continuare a sviluppare in PHP perchè si vuole estendere Wordpress è inerzia tecnologia (particolarmente nefasta in questo caso), Node.js va preferito a PHP ovunque sia possibile.
Posso essere d'accordo al 100% che "creare un sito velocemente" non rientri nella definizione di "ovunque possibile" e che iscriversi a un hosting con Wordpress già pronto e configurato sia la scelta più ragionevole in molti casi, ma presentare PHP come la tecnologia più adatta allo scopo è disonesto. Quantomeno dovremmo limitarci a presentare Wordpress come la tecnologia più adatta allo scopo.
Ultima cosa, anche l'argomento numero 3 è disonesto: fai il confronto tra un'istanza di Wordpress già in esecuzione e pronta all'uso contro una piattaforma cloud non configurata in cui devi ancora creare la virtual machine e fare il deploy via linea di comando, per giunta senza tenere in conto i vantaggi della seconda in termini di scalabilità.
Purtroppo in ambito web non esiste 1 solo linguaggio, ne esistono tanti.
HTML/CSS e Javascript per la parte di frontend (fondamentalmente layout e grafica della pagina, comprese animazioni ed effetti vari, gestione dei caricamenti asincrona e via discorrendo).
PHP, Ruby, Javascript, Python, Java per la parte di backend (il processamento lato server, generazione di pagine dinamiche e via discorrendo).
Ma non solo, nel backend spesso hai bisogno di una base di dati dunque dovresti andare anche su SQL o comunque su framework in grado di astrarre la persistenza dei dati.
In ambito web, così come nell'ambito della programmazione in generale le possibilità sono tante.
Bisogna vedere qual è il livello che vuoi raggiungere e in quanto tempo.
Se vuoi farla diventare una professione allora conviene investire tempo e non bruciare le tappe ed imparare a programmare dalle basi con un linguaggio come Java in quanto dal mio punto di vista un linguaggio con una struttura "forte" è più adatto a chi comincia (inoltre come già detto le conoscenze possono essere usate per molti altri scopi, client, server e mobile).
Se vuoi avere dei risultati immediati, più "amatoriali" allora forse ha senso concentrarti subito sulle tecnologie web (PHP penso sia molto richiesto in quell'ambito, è un linguaggio che ha le sue pecche, ma che è ancora molto usato e supportato).
Personalmente partire dal web non è una cosa che mi sento di consigliare (tanti linguaggi, tanto caos in generale e libertà pressoché totale che in parte è contro-producente per chi inizia), ma essendo stato anche io smanettone so che spesso si può trarre una soddisfazione infinita da quel tipo di programmazione :D, spesso perché più immediata.
Sul lato frontend sono messo abbastanza bene nel senso HTML e CSS li conosco bene, Javascript solo qualcosa, ma posso approfondirlo.
Il mio dubbio era invece per la parte di beckend, e a quanto ho capito se volessi investirci "professionalmente" dovrei puntare ad linguaggio come Java. Altra domanda, secondo te avrò problemi ad impararlo essendo autodidatta?
imparare java no, imparare ad usarlo in ottica web e in ottica web enterprise non è invece banale, ci vuole tempo.
trovo spesso molti programmatori che prutroppo conoscono e sanno solo un pezzettino del tutto (intendo in ambiente java).
poi determinati pattern e framework hanno il loro costo di apprendimento, è fisiologico :)
imparare java no, imparare ad usarlo in ottica web e in ottica web enterprise non è invece banale, ci vuole tempo.
trovo spesso molti programmatori che prutroppo conoscono e sanno solo un pezzettino del tutto (intendo in ambiente java).
poi determinati pattern e framework hanno il loro costo di apprendimento, è fisiologico :)
Perfetto, il tempo non è un problema. Mi sapete consigliare uno o più libri e gli srumenti da avere per iniziare questo mio approfondito studio?
Grazie
Ma perche' vuoi buttarti su Java?
In ambito web seriamente e' un mattone da imparare e digerire, ti romperai le scatole nel giro di due settimane.
Se proprio non ti vuoi fidare con Javascript/Node.js vai di Python almeno, che ti hanno consigliato altri...
Ma perche' vuoi buttarti su Java?
In ambito web seriamente e' un mattone da imparare e digerire, ti romperai le scatole nel giro di due settimane.
Se proprio non ti vuoi fidare con Javascript/Node.js vai di Python almeno, che ti hanno consigliato altri...
Non è che non mi fido ci mancherebbe, ma mi è sembrato di capire che la maggior parte dei consigli sia proprio su java. Però come ho detto prima ho una bella confusione in testa. :confused:
:D
no, guarda che quà condivido anche io...
java nelle nuove versioni è una bomba e ed molto usato in ambito lavorativo, ma il rischio che ti stufi o che all'inzio non ci capisci una mazza è altissimo!
x 71106
non avevo visto la risposta e mi spiace, ma secondo me non ha alcun senso quello che dici... un linguaggio è uno strumento e uno o l'altro cambia poco, se facciamo un conto di costi e benefici entrano in gioco tante cose e tra queste spesso per progetti piccoli (ma capiamoci che il piccolo è relativo) conta molto la volocità di crittura del codice, la portabilità, la velocità di creare un ambiente di lavoro funzionante, la possibilità di apoggiarsi a servizi di hosting economici e scalabili...
php risponde a questo con performance decisamente accettabili e risultati perseguibili in poco tempo.
già un hosting node.js non è dietro l'angolo.
poi se parlaimo di performance ripeto che finchè non andiamo sul compilato tutte queste differenze non ci sono, ovviamente se mi paragoni un php 5.1 con symfony, un 5.5 su faicon o un 5.5 su hhvm cambia tutto ;)
ps. io uso oracle con php con connettore dedicato e perfomance decisamente soddisfacenti ;)
sono anni che provo a cambiare tecnologia (ho piena libertà in questo) ma niente mi fa trovare vantaggi tangibili nel passaggio. python con oracle NON ha dato risultati migliori e quando ho guardato node.js...
non ho trovato nulla che mi portasse a fare il passaggio.
java è troppo oneroso nel mio caso (non ho dieci persone a disposizione) e per assurdo faccio il prontig di librerie de terze parti da java a php perchè quello sto usando ;)
peraltro il fatto che la sintassi del php sia come il c ma stia ereditando tantissimo da java aiuta nel cambiare linguaggio in futuro ;)
che poi io personalmente condivida la strada che php stia prendendo no, solo composer è da farsela sotto visto (ma in java si è abituati a questo da anni, per me inspiegabilmente)
no, guarda che quà condivido anche io...
java nelle nuove versioni è una bomba e ed molto usato in ambito lavorativo, ma il rischio che ti stufi o che all'inzio non ci capisci una mazza è altissimo!
Bene, quindi siamo punto a capo:confused:
si :D
e secondo me scegline uno a gusto e perdici un giorno, poi prendi la tua seconda scelta e perdici il secondo giorno.
dopodichè rimani su quello che ti è pèiaciuto di più, tra sei mesi ne riparliamo ;)
io ad esempio uso php perchè sono molto veloce a scriverci codice e digerisce (non essendo compilato) anche dati non tipizzati e qualche schifezza, ma in realtà è molto abitudine e IDE che usi, con Xcode è stato amore a prima vista...
i vari basati su eclipse che arrivano dal mondo java sono per me inguardabili, c'è chi li ama :)
pabloski
05-09-2015, 16:23
Bene, quindi siamo punto a capo:confused:
Immaginavo che ti avrebbero solo confuso le idee ( sono fatti così ) :D
Comunque sia io la vedo nel seguente modo:
1. imparare a programmare non è una questione di linguaggio ma di logica, per cui almeno questo punto dev'essere chiaro a chiunque voglia iniziare
2. i linguaggi sono strumenti e come tali vanno scelti in base a criteri di performance, convenienza, diffusione, imposizione dall'alto, ecc....
Parlando di linguaggi per il web ( e bisognerebbe chiarire di quali nicchie si sta parlando ) direi che Java è imprenscindibile ed è usatissimo in ambito aziendale; tuttavia è estremamente complesso e burocratico.
PHP se ne parla male per via dei problemi di sicurezza che ha dato per decenni; tuttavia resta molto usato proprio nell'ambito web ( in particolare backend per siti web ).
Altro pezzo da novanta del web è Ruby. Non ne parla mai nessuno ( almeno da queste parti ) ma è apprezzatissimo dagli sviluppatori web.
Javascript è fondamentale, visto che è usato per il web 2.0, tutto quelle cose sbrilluccicose, sostanzialmente scripting client-side ( e ad oggi non esistono siti web senza script javascript che li movimentano un pò ). Da un pò di anni ha preso piede nel mondo server-side con Node.js/IO.js e addirittura nel mondo desktop ( sempre con Node ) e mobile.
Python è un linguaggio abbastanza usato in quest'ambito ( lo è molto di più in ambito scientifico ) ed è estremamente espressivo e semplice da apprendere/maneggiare. Se ti serve una porta d'ingresso nel mondo della programmazione, direi che Python fa al caso tuo.
Ci sarebbero C# ( concorrente di Java fondamentalmente ), Google Go ( offre interessanti meccanismi per l'implementazione della concorrenza e sta prendendo piede nel mondo web server-side ).
Ti linko un articolo con le statistiche d'uso dei vari linguaggi su Github ( va preso con le pinze, ma alcuni dati sono molto molto credibili ) http://www.wired.com/2015/08/github-data-shows-changing-software-landscape/
Imho iniziare da Javascript è male, perchè il linguaggio è pieno di hack e rischi di assumere ( e dare per corretti e scontati ) comportamenti invece sbagliati. Java è impossibile da digerire, a meno che non si abbia la forza d'animo di Karate Kid. PHP è C-like e discretamente incasinato ( esiste una specie di variante creata da facebook e si chiama Hack, potresti darci uno sguardo ). Ti restano Ruby e Python.
un linguaggio è uno strumento e uno o l'altro cambia poco, Questo è ovviamente falso. Preferiresti lavorare quotidianamente in JavaScript o in Brainfuck?
L'esempio di Brainfuck è estremo, ma PHP è un pessimo linguaggio: la quantità di idiosincrasie è davvero troppo alta. Pensa che Google l'ha bandito per usi interni.
Ti concedo che gli strumenti e le applicazioni a disposizione degli sviluppatori PHP permettono, in alcuni casi, di aumentare la produttività fino a rendere irragionevole qualunque altra soluzione (fenomeno che detesto perchè causa inerzia tecnologica), ma qui si parla del solo linguaggio.
[...] la possibilità di apoggiarsi a servizi di hosting economici e scalabili... Quando mai PHP è stato progettato per la scalabilità?
sono anni che provo a cambiare tecnologia (ho piena libertà in questo) Non sei l'unico (https://www.google.com/trends/explore#q=%2Fm%2F060kv&cmpt=q&tz=Etc%2FGMT-2) se è per questo. :)
Questo è ovviamente falso. Preferiresti lavorare quotidianamente in JavaScript o in Brainfuck?
Nessuno dei due grazie.
L'esempio di Brainfuck è estremo, ma PHP è un pessimo linguaggio: la quantità di idiosincrasie è davvero troppo alta. Pensa che Google l'ha bandito per usi interni.
Se parliamo di idiosincrasie, cosa che sembra accomunare la maggior parte dei linguaggi pensati per il web, bisognerebbe bandire anche Javascript (dal mio punto di vista). Ma non è questa la sede adatta per discuterne.
Cerchiamo di dare una mano a dny18 senza confondergli troppo le idee.
PS: per un quadro più generale: https://www.google.com/trends/explore#q=%2Fm%2F02p97%2C%20%2Fm%2F0bbxf89%2C%20%2Fm%2F060kv%2C%20%2Fm%2F07sbkfb&cmpt=q&tz=Etc%2FGMT-2
Quando mai PHP è stato progettato per la scalabilità?
Neanche Javascript se per questo, eppure le diverse esigenze hanno portato a tirare fuori diverse ottimizzazioni che prima semplicemente non erano necessarie.
Per PHP Facebook ha tirato fuori HHVM e per Javascript Google V8... Poi la moda di accelerare Javascript ha contagiato anche altri (vedi MS con Chackra o Mozilla con i suoi engine).
Max Ichnusa
06-09-2015, 15:30
Buonasera a tutti,
Ho 29 anni e sono un appassionato di informatica. Ho buone conoscenze per quanto riguarda HTML e CSS, ma nessuna di programmazione.
Ho provato a leggere qualcosa su php, ma ho letto cose molto contrastanti e vorrei avere un consiglio da voi esperti su quale linguaggio di programmazione in ambito web iniziare a studiare.
Grazie
Io di anni ne ho 31, e ho appena iniziato a programmare. Da lunedì inizierò a cercare il mio primo lavoro come Junior Developer, a Londra, ovviamente in Italia non potrei farlo..
Vengo da un coding bootcamp di tre mesi, super immersivo, probabilmente il top in Europa, dove ho scritto tantissimo codice e mi ha insegnato le basi della programmazione: object oriented, TDD ecc.. Conoscevo solo un po di front end, adesso posso cercare lavoro come junior developer..
La mia risposta è: fai Ruby e da li passi a Rails. A me piace molto Js infatti ora mi concentrerò molto su Node, non c'è nulla che tiri così tanto a livello lavorativo come node ora, almeno qui a Londra. Poi insomma in ambito web cosa c'è di meglio di javascript? Lascia stare php, da quel che ho capito è roba vecchia, farraginosa e destinata a morire (correggetemi se sbaglio).
spero di essere stato utile, sicuramente ho molta meno esperienza della maggior parte della gente qua dentro, ma volevo dirti la mia, visto che ho intrapreso una simile esperienza nei mesi passati
Nessuno dei due grazie. Fidati, puoi fare tutte le battute che vuoi ma se fossi costretto con la forza sceglieresti JavaScript.
Brainfuck non è paragonabile a JavaScript o altri linguaggi usati nell'industria perchè è progettato specificamente per avere leggibilità nulla, da cui il nome. Qualunque spiritoso paragone con JavaScript può essere solo una battuta, magari divertente ma che non contribuisce all'argomento originale: i linguaggi non sono tutti uguali, alcuni sono oggettivamente migliori di altri.
Se parliamo di idiosincrasie, cosa che sembra accomunare la maggior parte dei linguaggi pensati per il web, bisognerebbe bandire anche Javascript (dal mio punto di vista). JavaScript ha indubbiamente dei difetti ma certo non quanti PHP. È inutile difendere il design di un linguaggio che per ammissione dell'autore è nato incidentalmente senza alcun design ed è andato avanti a pezze una più oscena dell'altra, non è difendibile per definizione.
Ci sono un paio di articoli che rendono bene l'idea:
http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
http://www.quora.com/Is-PHP-a-badly-designed-programming-language
Ma non è questa la sede adatta per discuterne. Mi sembra una conclusione piuttosto comoda. :)
In ogni caso sarà un moderatore a deciderlo.
PS: per un quadro più generale: https://www.google.com/trends/explore#q=%2Fm%2F02p97%2C%20%2Fm%2F0bbxf89%2C%20%2Fm%2F060kv%2C%20%2Fm%2F07sbkfb&cmpt=q&tz=Etc%2FGMT-2 Ti ringrazio per avermi segnalato che Node.js è l'unico in rampante salita, in effetti potevo arrivarci da solo.
Poi la moda di accelerare Javascript ha contagiato anche altri (vedi MS con Chackra o Mozilla con i suoi engine). Moda? Contagiato? :asd:
Ah queste multinazionali che vanno appresso alle mode, alle buzzword, e altra roba del genere. :D
D'altro canto le ottimizzazioni non sono in alcun modo desiderabili se non per queste bizzarre mode avviate da qualcuno che magari chiacchiera, chiacchiera, no? :asd:
E poi siccome magari quello è bravo a parlare allora tutti gli vanno appresso, ma in realtà è tutto un magna magna. :asd:
Mi interessa molto questo tuo argomento della vanificazione dell'ottimizzazione attraverso l'ottica della moda. :D
e mi ha insegnato le basi della programmazione: object oriented, TDD ecc.. Dio santo. :asd:
Lascia stare php, da quel che ho capito è roba vecchia, farraginosa e destinata a morire (correggetemi se sbaglio). Questo pronostico è simile all'ipotesi del Big Bang vs. Big Crunch: dipende dalla massa critica. Se il numero di programmatori masochisti nel mondo è superiore a tot PHP sopravvivrà, altrimenti morirà.
Max Ichnusa
06-09-2015, 16:04
Dio santo. :asd:
cosa ho detto di strano?
più che "basi" comunque intendevo "buoni principi" da seguire
pabloski
06-09-2015, 16:37
Lascia stare php, da quel che ho capito è roba vecchia, farraginosa e destinata a morire (correggetemi se sbaglio).
Vecchia e farraginosa non c'è dubbio. Poi PHP ha dei problemi architetturali nient'affatto trascurabile ( JS gli somiglia in questo, ma almeno qualcuno sta tentando di fare qualcosa per risolverli ).
Ma non credo che PHP sia destinato a morire. Lo pensavo anch'io, ma il suo utilizzo sembra ancora ben radicato. La presenza di un'implementazione concorrente ( fatta da facebook ) ne ha fatto rinascere l'ecosistema.
Chiaramente non è paragonabile a Ruby e non lo sarà mai. E tenete d'occhio Google Go!!!
cdimauro
06-09-2015, 21:03
La "perfezione" di Lambda non è fine a se stessa. Ho ancora da riempire questo wiki (https://github.com/71104/lambda/wiki/Discourse) in cui chiarirò le mie idee in merito, ma sostanzialmente le scelte di design di Lambda sono finalizzate a determinati scopi e sono giudicate le "migliori" in funzione di quegli scopi.
Per il resto prendo atto che il successo non può essere uno dei fini del progetto, grazie per la tua opinione. :)
Alberto, alla fine il tuo linguaggio dovrà essere utilizzato da qualcuno.
Se l'hai scritto soltanto per te e per chi apprezza quel tipo di programmazione funzionale, servirà soltanto a incrementare di uno il numero di linguaggi di questa grande famiglia.
Se invece vuoi che diventi più "mainstream", mettiti nei panni di chi dovrà utilizzarlo, e traine le conseguenze.
Mi fermo qui. :)
Fidati, puoi fare tutte le battute che vuoi ma se fossi costretto con la forza sceglieresti JavaScript.
Brainfuck non è paragonabile a JavaScript o altri linguaggi usati nell'industria perchè è progettato specificamente per avere leggibilità nulla, da cui il nome. Qualunque spiritoso paragone con JavaScript può essere solo una battuta, magari divertente ma che non contribuisce all'argomento originale: i linguaggi non sono tutti uguali, alcuni sono oggettivamente migliori di altri.
JavaScript ha indubbiamente dei difetti ma certo non quanti PHP. È inutile difendere il design di un linguaggio che per ammissione dell'autore è nato incidentalmente senza alcun design ed è andato avanti a pezze una più oscena dell'altra, non è difendibile per definizione.
Idem Javascript, che ha una montagna di difetti ed è nato come linguaggetto da due soldi da integrare nel browser. Che poi è l'unico motivo per cui viene ancora utilizzato, altrimenti quest'aborto sarebbe finito relegato nel limbo dei linguaggi da dimenticare.
Ci sono un paio di articoli che rendono bene l'idea:
http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
http://www.quora.com/Is-PHP-a-badly-designed-programming-language
Il primo ha come fonti una a cui ho parecchio contributo, tempo fa, proprio su PHP: YourLanguageSucks, che peraltro dovresti conoscere bene anche tu. :D
Non mi pare che la relativa voce su Javascript sia più tenera rispetto a PHP. :asd:
Ti ringrazio per avermi segnalato che Node.js è l'unico in rampante salita, in effetti potevo arrivarci da solo.
Sarà in rampante ascesa, ma ha ancora quote ben basse rispetto agli altri, è la moda del momento, vedremo quanto regge.
D'altro canto le ottimizzazioni non sono in alcun modo desiderabili se non per queste bizzarre mode avviate da qualcuno che magari chiacchiera, chiacchiera, no? :asd:
...
Mi interessa molto questo tuo argomento della vanificazione dell'ottimizzazione attraverso l'ottica della moda. :D
E' evidente che quelle ottimizzazioni sono nate dall'esigenza di qualcuno, e poi altri hanno seguito.
Javascript come ha detto giustamente Cesare è nato come un linguaggetto e adesso qualcuno vuole promuoverlo a linguaggio di primo livello per fare tutto. Dio ce ne scampi e liberi sinceramente.
Buonasera a tutti,
Ho 29 anni e sono un appassionato di informatica. Ho buone conoscenze per quanto riguarda HTML e CSS, ma nessuna di programmazione.
Ho provato a leggere qualcosa su php, ma ho letto cose molto contrastanti e vorrei avere un consiglio da voi esperti su quale linguaggio di programmazione in ambito web iniziare a studiare.
Grazie
Volente o nolente oggi non si puo' prescindere da javascript per lo sviluppo web, per cui sicuramente devi imparare almeno quello.
Per il lato server e' piu' complicato, se ti butti su node.js puoi usare lo stesso linguaggio, ma ha il difetto che e' stato pensato piu' per le performance che per la facilita' d'uso. Propenderei per uno tra JavaScript, Python, e Ruby, secondo me piu' leggeri ed adatti ad iniziare.
Quale che sia la tua scelta comunque mi orienterei su un approccio frontend puro lato client in html+JavaScript e servizi REST di backend; se intendi fare un sito veramente dinamico (ovvero come facebook, non come questo forum), alla lunga ti semplifichi la vita.
i linguaggi non sono tutti uguali, alcuni sono oggettivamente migliori di altri.
Discussione interessante.... qui sostituirei oggettivamente con soggettivamente, almeno considerando un nucleo di una ventina di linguaggi... certo non i casi estremi come brainfuck... anche perchè la parola "migliore" credo sia molto soggettiva, appunto....
pabloski
10-09-2015, 21:02
Discussione interessante.... qui sostituirei oggettivamente con soggettivamente, almeno considerando un nucleo di una ventina di linguaggi... certo non i casi estremi come brainfuck... anche perchè la parola "migliore" credo sia molto soggettiva, appunto....
Ricordo di uno studio fatto su alcuni programmatori esperti di C++. Risultato? Erano più produttivi del programmatore python/javascript/java/c# medio.
Tesinevb
10-09-2015, 23:19
vuoi una dritta, sviluppa in asp
frontavant javascript
hih hi hi... just as well
pabloski
11-09-2015, 09:26
trova le differenze.
e che vuol dire? il punto è che il programmatore è un elemento chiave in tutto questo sistema
se si vuole invece focalizzare l'attenzione sul linguaggio, allora è ovvio che il miglior linguaggio è quello che fornisce le migliori astrazioni possibili per il tipo di problema da risolvere
ovviamente è il problema ad essere determinante in questo caso
pabloski
11-09-2015, 10:14
come che vuol dire? i confronti vanno fatti a parita' di esperienza del programmatore
E perchè mai? Quello studio intendeva dimostrare che la bilancia pende molto di più dal lato del programmatore, piuttosto che da quello del linguaggio.
Il punto era dimostrare che le competenze umane superano di gran lunga la "facilità d'uso" di qualsiasi linguaggio.
Se posso aggiungere un'osservazione, la produttività dipende anche dagli strumenti che ti mette a disposizione il sistema.
Nello specifico esistono molti tool ormai Java/C++ che consentono di realizzare rapidamente applicazioni, anche con GUI.
In Python la cosa è ancora un po' scarna, anche se bisogna ammettere che Jetbrains rilasciando PyCharm gratuitamente ha fatto una bella mossa :sofico: .
Programmando in C++ con Vim accuso un po' la cosa, specie quando bisogna passare da un file ad un altro e via discorrendo :D, motivo per il quale mi sono fatto il pass accademico per CLion che proverò al più presto :p.
pabloski
11-09-2015, 16:05
senza contare che, nel caso specifico, e' MOLTO piu' difficile diventare un programmatore esperto di C++ rispetto a diventare un programmatore medio di Python.
Ma infatti lo studio misurava l'efficienza del programmatore non quella dello strumento.
pabloski
11-09-2015, 16:06
Jetbrains rilasciando PyCharm gratuitamente ha fatto una bella mossa :sofico: .
JetBrains ha cambiato le regole, adesso vuole che gli paghiamo l'abbonamento :D
Ho letto parecchi commenti di gente un tantinello incazzata.
cdimauro
11-09-2015, 21:55
Nello specifico esistono molti tool ormai Java/C++ che consentono di realizzare rapidamente applicazioni, anche con GUI.
In Python la cosa è ancora un po' scarna, anche se bisogna ammettere che Jetbrains rilasciando PyCharm gratuitamente ha fatto una bella mossa :sofico: .
Molto interessante. Ho dato un'occhiata e ho visto che, ad esempio, supporterebbe PyQT, ma in che modo semplificherebbe la vita per lo sviluppo di applicazioni dotate di GUI, con Python?
Normalmente uso Visual Studio + PTVS per lavorare in Python, e quando devo fare qualcosina su Linux risolvo velocemente con SublimeText3, ma una soluzione unica cross platform mi farebbe comodo, se ne valesse la pena.
Programmando in C++ con Vim accuso un po' la cosa, specie quando bisogna passare da un file ad un altro e via discorrendo :D, motivo per il quale mi sono fatto il pass accademico per CLion che proverò al più presto :p.
Lo credo bene: Vim non è un editor, ma uno strumento di sevizie. :asd:
Ma infatti lo studio misurava l'efficienza del programmatore non quella dello strumento.
Comparando programmatori con esperienza diversa, con strumenti diversi? E' una ricerca del tutto inutile, come hanno già cercato di spiegare.
Un risultato utile sarebbe stato quello di avere una sola variabile in gioco. Ad esempio programmatori esperti con linguaggi diversi, o programmatori alle prime armi sempre con linguaggi diversi.
Sarà in rampante ascesa, ma ha ancora quote ben basse rispetto agli altri, è la moda del momento, vedremo quanto regge. Il solito magna magna, che devi fà, ormai lo sappiamo che Node.js è na mazzetta. :asd:
E' evidente che quelle ottimizzazioni sono nate dall'esigenza di qualcuno, e poi altri hanno seguito. E poi hanno interrotto i lavori per 3 anni con la scusa che avevano trovato un coccio di un vaso dell'antica Roma quando in realtà sappiamo bene che erano semplicemente finiti i soldi perchè erano volate troppe mazzette. Ora hanno ripreso con queste novità con dei nomi "fancy" e sbrilluccicosi ma in realtà stanno solo aspettando di buttarcelo al c**o per la milionesima volta sapendo perfettamente che tanto non diremo niente. :rolleyes:
(il massimo della protesta che ne uscirà sarà una striscia di ZeroCalcare e una dose limitata di clicktivismo :D)
Che devi fà amico mio, è l'Italietta che si lamenta del ducetto e bestemmia la Chiesa Cattolica su fèsbuc ma nel frattempo celebra gli sfarzosi funerali del Casamonica con la colonna sonora de Il Padrino. :asd:
Javascript come ha detto giustamente Cesare è nato come un linguaggetto e adesso qualcuno vuole promuoverlo a linguaggio di primo livello per fare tutto. Dio ce ne scampi e liberi sinceramente. Pensa se fosse stato PHP anzichè JavaScript. :rolleyes:
Discussione interessante.... qui sostituirei oggettivamente con soggettivamente, almeno considerando un nucleo di una ventina di linguaggi... certo non i casi estremi come brainfuck... anche perchè la parola "migliore" credo sia molto soggettiva, appunto.... Io invece reinserirei esattamente quella parola, "oggettivamente", poichè è facile definire criteri oggettivi in base ai quali giudicare la bontà di un linguaggio. Per esempio: un sistema di tipi forte, statico, e inferito, è oggettivamente migliore di un sistema di tipi debole e/o dinamico; un linguaggio che raggiunge le Turing-completezza con un numero di costrutti minore è oggettivamente migliore; e così via.
E perchè mai? Quello studio intendeva dimostrare che la bilancia pende molto di più dal lato del programmatore, piuttosto che da quello del linguaggio.
Il punto era dimostrare che le competenze umane superano di gran lunga la "facilità d'uso" di qualsiasi linguaggio. Se il punto fosse stato quello lo studio avrebbe dovuto essere svolto a parità di linguaggio, ossia avrebbe dovuto essere un confronto tra programmatori esperti che lavorano in C++ e programmatori medi che lavorano sempre in C++.
cdimauro
12-09-2015, 11:19
Pensa se fosse stato PHP anzichè JavaScript. :rolleyes:
E' uguale: dei due non se ne salva nessuno. Javascript non è certo meglio di PHP. ;)
Io invece reinserirei esattamente quella parola, "oggettivamente", poichè è facile definire criteri oggettivi in base ai quali giudicare la bontà di un linguaggio. Per esempio: un sistema di tipi forte, statico, e inferito, è oggettivamente migliore di un sistema di tipi debole e/o dinamico;
Ma anche no: non hai dato alcuna definizione/metrica che possa quanto meno essere discussa. "Migliore" in base a quale criterio? :)
un linguaggio che raggiunge le Turing-completezza con un numero di costrutti minore è oggettivamente migliore; e così via.
Il primo linguaggio che ho studiato all'università in TAMC (Teoria e Applicazione delle Macchine Calcolatrici; quindi poco meno di 25 anni fa: sono vecchio, lo so :asd:) quando si è discusso di calcolabilità e di Turing-completezza è stato "S", dove S mi pare stia per Simple, in quanto era il linguaggio più semplice e minimale a potersi fregiare di questo titolo. Infatti aveva soltanto TRE costrutti che, se non ricordo male, erano:
- azzerare un registro;
- incrementare di uno un registro;
- saltare a un altro indirizzo se il contenuto di un registro era zero o diverso da zero (non ricordo quale dei due fosse).
Secondo la tua definizione sarebbe "oggettivamente migliore" di qualunque altro linguaggio, ma piuttosto che lavorarci preferirei mille volte scrivere codice in Brainfuck o Whitespace. :D
E poi hanno interrotto i lavori per 3 anni con la scusa che avevano trovato un coccio di un vaso dell'antica Roma quando in realtà sappiamo bene che erano semplicemente finiti i soldi perchè erano volate troppe mazzette. Ora hanno ripreso con queste novità con dei nomi "fancy" e sbrilluccicosi ma in realtà stanno solo aspettando di buttarcelo al c**o per la milionesima volta sapendo perfettamente che tanto non diremo niente. :rolleyes:
(il massimo della protesta che ne uscirà sarà una striscia di ZeroCalcare e una dose limitata di clicktivismo :D)
Che devi fà amico mio, è l'Italietta che si lamenta del ducetto e bestemmia la Chiesa Cattolica su fèsbuc ma nel frattempo celebra gli sfarzosi funerali del Casamonica con la colonna sonora de Il Padrino. :asd:
Al di là delle tue battute idiote e poco simpatiche, è un dato di fatto che Javascript sia nato per fare altro e "promosso" in seguito (ahimé).
Di certo non era nato come dici te per le "performance" :rolleyes:
E anche se adesso è la moda, rimane un linguaggio "oggettivamente" mediocre.
cdimauro
12-09-2015, 18:59
Mediocre?!? Perché fargli un complimento? :asd:
In Python la cosa è ancora un po' scarna, anche se bisogna ammettere che Jetbrains rilasciando PyCharm gratuitamente ha fatto una bella mossa :sofico: .
PyCharm oramai nella mia azienda è lo standard da un paio d'anni :D
cdimauro
13-09-2015, 08:18
OK, allora devo almeno dargli un'occhiata. Magari nel prossimo weekend. Danke! :D
Ma anche no: non hai dato alcuna definizione/metrica che possa quanto meno essere discussa. "Migliore" in base a quale criterio? :) Se confrontiamo ES5 con PHP 5.2 (entrambi finalizzati nel 2011), il primo esempio che mi viene in mente è l'impossibilità in PHP di scrivere espressioni come "$xyz[0]()", cioè l'impossibilità di invocare funzioni i cui riferimenti sono memorizzati in un array. Il motivo è che la sintassi di PHP, inutilmente complicata, definisce un costrutto a parte per le invocazioni che non è integrato con le espressioni. Una sintassi astratta più semplice è oggettivamente migliore di una più complessa.
Il secondo esempio che mi viene in mente è la necessità in PHP di ridichiarare localmente le variabili globali qualora le si voglia catturare in una funzione, del tutto inutile visto che implementazioni come ES5 sono evidentemente possibili. Un linguaggio che impone un determinato elemento di boilerplate è oggettivamente peggiore di uno che non lo impone.
Potremmo andare avanti all'infinito ma non ne ho voglia, solo per i primi due esempi ho scritto diverse righe e non ne valeva proprio la pena.
Secondo la tua definizione sarebbe "oggettivamente migliore" di qualunque altro linguaggio, ma piuttosto che lavorarci preferirei mille volte scrivere codice in Brainfuck o Whitespace. :D Ti faccio notare mille volte che Brainfuck è molto simile al linguaggio che hai descritto.
Ad ogni modo la tua conclusione è errata, poichè hai descritto un linguaggio privo di sistema di tipi. Un sistema di tipi statico, forte, e inferito è oggettivamente migliore di uno assente.
Inoltre, se accettiamo che "lo stato è il male" perchè per il programmatore rilevarlo e tenerlo a mente è difficile o in casi estremi anche umanamente impossibile, giungiamo facilmente alla conclusione che anche il lambda calcolo non tipato è migliore di "S" perchè a parità di costrutti astratti (sono 3: variabile, funzione, applicazione) riesce a mantenere la Turing-completezza consentendo allo sviluppatore un processo mentale più semplice.
è un dato di fatto che Javascript sia nato per fare altro e "promosso" in seguito (ahimé). JavaScript, in quanto Turing-completo e basato su un dominio di valori espressivo, non è in alcun modo meno adatto alle applicazioni diverse da quelle per cui è nato.
Un argomento più solido è invece affermare che JavaScript sia subottimale per qualsiasi applicazione, sulla qual cosa concordo perfettamente; tuttavia dubito che tu sia in grado di portarlo avanti (altrimenti lo avresti già fatto).
Di certo non era nato come dici te per le "performance" :rolleyes: Vorresti cortesemente portare alla mia attenzione il permalink al post in cui ho scritto questa cosa? Non lo trovo. :)
(non che non mi fidi o abbia scarsa stima nei tuoi confronti, ma sai com'è, gira certa gentaglia sui forum che pur di avere la misera soddisfazione di mettere qualcuno a tacere in un argomento gli infilerebbe in bocca di tutto)
E anche se adesso è la moda, Che devi fà, siamo un popolo di pecoroni. Stanno tutti arrubbà tranne noi scemi che paghiamo le tasse. Non sanno più che inventasse. Qui una volta era tutto campi. Non ci sono più le mezze stagioni.
:asd:
rimane un linguaggio "oggettivamente" mediocre. Mi hai sorpreso: non credevo che avresti mai scritto qualcosa di significativo e corretto. Bravo. :)
Ma anche no: non hai dato alcuna definizione/metrica che possa quanto meno essere discussa. "Migliore" in base a quale criterio? :) Questo punto va chiarito meglio poichè era in risposta a un'altra questione.
Ciò che io ho scritto è:
un sistema di tipi forte, statico, e inferito, è oggettivamente migliore di un sistema di tipi debole e/o dinamico.
Non credevo che fosse necessario chiarire ulteriormente ciò che mi sembra ovvio, ossia:
un sistema di tipi statico è oggettivamente migliore di uno dinamico poichè il secondo permette di commettere errori che non verranno mai rivelati in fase di sviluppo (le tecniche di testing automatico mitigano il problema ma non costituiscono una soluzione completa, e comunque non sono obbligatori e di conseguenza non rendono il linguaggio "oggettivamente migliore");
un sistema di tipi inferito è oggettivamente migliore di uno manifesto perchè rende il codice più conciso;
un sistema di tipi forte è oggettivamente migliore di uno debole perchè fornisce maggiori garanzie (o, equivalentemente, perchè quello debole consente operazioni che vanificano qualunque controllo di tipo).
JavaScript, in quanto Turing-completo e basato su un dominio di valori espressivo, non è in alcun modo meno adatto alle applicazioni diverse da quelle per cui è nato.
Capisco che tu sia pignolo (dicesi cacacazzi :asd:) e voglia metterla sul formale, è vero ciò che dici, ma sarebbe un discorso abbastanza povero di contenuti se ci si fermasse a valutare un linguaggio dalla sua appartenenza o non-appartenenza alla famiglia dei Turing-Completi.
Un argomento più solido è invece affermare che JavaScript sia subottimale per qualsiasi applicazione, sulla qual cosa concordo perfettamente; tuttavia dubito che tu sia in grado di portarlo avanti (altrimenti lo avresti già fatto).
Non ho sufficientemente tempo, voglia e pazienza per farti dissertazioni sul perché Javascript sia fondamentalmente un linguaggio mediocre, anche perché in letteratura altri l'hanno fatto al posto mio.
Questo ad esempio è un bellissimo video (breve) che illustra poche ma significative perle di Javascript: https://youtu.be/20BySC_6HyY?t=84
Questo per chi ha tempo e voglia è un po' più lungo: https://youtu.be/xE8tL8NdHaY?t=444
Vorresti cortesemente portare alla mia attenzione il permalink al post in cui ho scritto questa cosa? Non lo trovo. :)
(non che non mi fidi o abbia scarsa stima nei tuoi confronti, ma sai com'è, gira certa gentaglia sui forum che pur di avere la misera soddisfazione di mettere qualcuno a tacere in un argomento gli infilerebbe in bocca di tutto)
Non l'hai detto esplicitamente, vero. Ma nella discussione era uscito il discorso delle performance di PHP, e ti ho fatto notare che esattamente come è successo per Javascript nel corso del tempo sono uscite diverse implementazioni ottimizzate.
cdimauro
13-09-2015, 21:22
Se confrontiamo ES5 con PHP 5.2 (entrambi finalizzati nel 2011), il primo esempio che mi viene in mente è l'impossibilità in PHP di scrivere espressioni come "$xyz[0]()", cioè l'impossibilità di invocare funzioni i cui riferimenti sono memorizzati in un array. Il motivo è che la sintassi di PHP, inutilmente complicata, definisce un costrutto a parte per le invocazioni che non è integrato con le espressioni. Una sintassi astratta più semplice è oggettivamente migliore di una più complessa.
Il secondo esempio che mi viene in mente è la necessità in PHP di ridichiarare localmente le variabili globali qualora le si voglia catturare in una funzione, del tutto inutile visto che implementazioni come ES5 sono evidentemente possibili. Un linguaggio che impone un determinato elemento di boilerplate è oggettivamente peggiore di uno che non lo impone.
Potremmo andare avanti all'infinito ma non ne ho voglia, solo per i primi due esempi ho scritto diverse righe e non ne valeva proprio la pena.
Nemmeno io, perché paginette come YourLanguageSucks offrono non pochi (non tutti, comunque) spunti allo scopo. Anche per JavaScript.
Ti faccio notare mille volte che Brainfuck è molto simile al linguaggio che hai descritto.
Vero, ma non è minimale quanto S.
Ad ogni modo la tua conclusione è errata, poichè hai descritto un linguaggio privo di sistema di tipi. Un sistema di tipi statico, forte, e inferito è oggettivamente migliore di uno assente.
L'unico tipo che esiste in S è quello intero (illimitato in dimensione, per gli stessi motivi per cui la macchina di Turing che si studia ha un nastro infinito: esigenze teoriche) ed è ovviamente statico e forte (che sia inferito non serve, perché è ovvio, esistendo un solo tipo).
S è sostanzialmente un linguaggio assembly in cui esiste un solo tipo di memoria (rappresentato dai registri) e tre istruzioni.
Inoltre, se accettiamo che "lo stato è il male" perchè per il programmatore rilevarlo e tenerlo a mente è difficile o in casi estremi anche umanamente impossibile, giungiamo facilmente alla conclusione che anche il lambda calcolo non tipato è migliore di "S" perchè a parità di costrutti astratti (sono 3: variabile, funzione, applicazione) riesce a mantenere la Turing-completezza consentendo allo sviluppatore un processo mentale più semplice.
Se per stato ti riferisci allo stato di un oggetto, non sono affatto d'accordo. La programmazione a oggetti serve a modellare determinate classi di problemi molto più semplicemente di quanto farebbero i linguaggi funzionali (e, viceversa, i linguaggi funzionali consentono di modellarne altre più semplicemente dei linguaggi a oggetti).
Lo stato di un oggetto è perfettamente e naturalmente aderente allo scopo.
JavaScript, in quanto Turing-completo e basato su un dominio di valori espressivo, non è in alcun modo meno adatto alle applicazioni diverse da quelle per cui è nato.
Permettimi: il meccanismo dei prototipi è e rimane una porcata colossale per modellare problematiche in cui il paradigma a oggetti è preferibile.
Tant'è che nelle future estensioni del linguaggio si prevede l'introduzione di vere e proprie classi per semplificarne la dichiarazione e correggere altre porcate.
Questo punto va chiarito meglio poichè era in risposta a un'altra questione.
Ciò che io ho scritto è:
Non credevo che fosse necessario chiarire ulteriormente ciò che mi sembra ovvio, ossia:
un sistema di tipi statico è oggettivamente migliore di uno dinamico poichè il secondo permette di commettere errori che non verranno mai rivelati in fase di sviluppo (le tecniche di testing automatico mitigano il problema ma non costituiscono una soluzione completa, e comunque non sono obbligatori e di conseguenza non rendono il linguaggio "oggettivamente migliore");
un sistema di tipi inferito è oggettivamente migliore di uno manifesto perchè rende il codice più conciso;
un sistema di tipi forte è oggettivamente migliore di uno debole perchè fornisce maggiori garanzie (o, equivalentemente, perchè quello debole consente operazioni che vanificano qualunque controllo di tipo).
Non era ovvio, perché non avevi definito cosa PER TE fosse migliore.
Infatti, e a MIO modo di vedere, ci sono anche degli svantaggi:
- un sistema di tipo statico non mi consente di astrarre un concetto, generando un solo codice per gestire tutti i casi, anche "futuri";
- un codice conciso non è di per sé garanzia di alcunché, perché, ad esempio, potrebbe minare la leggibilità e manutenibilità del codice;
- un sistema di tipi forte comporta problematiche nella conversione dei tipi, richiedendo operazioni di cast espliciti anche quando una conversione implicita risulterebbe, invece, "safe".
Come vedi non c'è nulla di oggettivo in quello che hai scritto finora, ma una tua, personalissima, presa di posizione su determinati aspetti dei linguaggi di programmazione.
Aggiungo (ma in parte era evidente) che A ME, per esempio, interessano più la leggibilità, manutenibilità, facilità e velocità di scrittura di codice (prototipazione rapida), possibilità di sperimentare con pezzi di codice, nonché capacità di poter testare virtualmente ogni aspetto del codice (mi riferisco alla possibilità di poter dinamicamente modificare praticamente tutto del contesto attuale dell'esecuzione, incluse funzioni e tipi built-in, in base agli scenari che ho bisogno di simulare).
Javascript come ha detto giustamente Cesare è nato come un linguaggetto e adesso qualcuno vuole promuoverlo a linguaggio di primo livello per fare tutto. Dio ce ne scampi e liberi sinceramente.
Penso sia un giudizio abbastanza ingeneroso.
Non c'e' nessun "qualcuno" con un piano segreto per far diffondere ulteriormente JavaScript. Semplicemente c'e' chi trova produttivo usare JavaScript, nonostante tutte le sue carenze, per cui cerca di sfruttarlo in ambiti nuovi.
A ben vedere anche Java ha cominciato come linguaggio per uno scopo specifico (set-top boxes, dove non e' andata bene), e' stato provato come linguaggio per il web (lato client, dove non e' piu' usato), applicazioni desktop (non tanto meglio) e ha trovato il suo posto come linguaggio per i web services e, grazie a Google, per Android.
quante seghe mentali e quanti pipponi inutili.
domanda per gli espertoni del thread:
se javascript e' un linguaggio mediocre come mai non esiste altro linguaggio che gira nel browser?
stiamo parlando di un linguaggio nato 20 anni fa.
l'unico tentativo che mi viene in mente, fallito miseramente, e' Dart di Google.
a voi la parola
cdimauro
14-09-2015, 05:13
Saranno anche seghe mentali e pipponi inutili, ma almeno non ricadono in banali e comuni fallacie logiche come la tua, visto che le due cose che hai citato non sono in relazione fra di loro...
perchè esattamente come php (lato server) è nato per quello ed è talmente diffuso che negli anni si è fatto prima a migliorare i motori dietro in luogo ai linguaggi :)
far girare js su browser moderni è una bomba, una volta non era proprio così (anche solo qualche anno fa).
in locale js mi surclassa qualsiasi altro linguaggio di scripting, a patto che lo uso in edge/chrome/mozilla nuovi e che faccia quello per cui va bene.
Oracle continua andarmi più forte con php e il suo driver oci8 che per quanto vecchio e consolidato ha il DRCP.
inoltre devo sottoscrivere questo
- un sistema di tipo statico non mi consente di astrarre un concetto, generando un solo codice per gestire tutti i casi, anche "futuri";
- un codice conciso non è di per sé garanzia di alcunché, perché, ad esempio, potrebbe minare la leggibilità e manutenibilità del codice;
- un sistema di tipi forte comporta problematiche nella conversione dei tipi, richiedendo operazioni di cast espliciti anche quando una conversione implicita risulterebbe, invece, "safe".
cdimauro
14-09-2015, 17:40
@les2: esattamente. Ecco perché sia PHP sia Javascript (soprattutto) hanno ricevuto un notevole impulso per il miglioramento delle loro prestazioni.
Per quanto mi riguarda, aspetto che prenda piede WebAssembly, così da poter scegliere il linguaggio che mi più aggrada nello sventurato caso in cui dovessi lavorare nuovamente a qualche roba web-based.
Ho avuto a che fare con Javascript, ed è stato un inferno, anche se fortunatamente l'interprete a linea di comando che c'è in Windows ha almeno una funzione di output a schermo, che mi ha permesso di realizzare una robusta batteria di test per il codice che avevo scritto. Ma NON voglio ripetere l'esperienza.
Saranno anche seghe mentali e pipponi inutili, ma almeno non ricadono in banali e comuni fallacie logiche come la tua, visto che le due cose che hai citato non sono in relazione fra di loro...
Va bene, non hai comunque risposto alla mia domanda.
Perche javascript è l unico che gira nel browser?
Aggiungo anche queste domande:
- come mai è il linguaggio praticamente più diffuso per IoT? Qui si parla di qualcosa esploso nell'ultimo anno non 20 anni fa. Potevano scegliere Python per dire
cdimauro
14-09-2015, 18:49
Va bene, non hai comunque risposto alla mia domanda.
Perche javascript è l unico che gira nel browser?
Perché è stato il pioniere e i browser hanno supportato quello. Per lo meno quelli mainstream.
Aggiungo anche queste domande:
- come mai è il linguaggio praticamente più diffuso per IoT? Qui si parla di qualcosa esploso nell'ultimo anno non 20 anni fa. Potevano scegliere Python per dire
Per questo aspetta che domani faccia due chiacchiere con alcuni miei colleghi del team IoT, che hanno lavorato anche all'SDK. Finora da quel che ho visto hanno usato C, C++, Java (per Eclipse), Python e TcL (questi ultimi due per OpenOCD: rispettivamente per il test driver, e per i test). Javascript è la prima volta che lo leggo, ma comunque non è il mio team, e magari lo usano già.
Io invece reinserirei esattamente quella parola, "oggettivamente", poichè è facile definire criteri oggettivi in base ai quali giudicare la bontà di un linguaggio. Per esempio: un sistema di tipi forte, statico, e inferito, è oggettivamente migliore di un sistema di tipi debole e/o dinamico; un linguaggio che raggiunge le Turing-completezza con un numero di costrutti minore è oggettivamente migliore; e così via.
Si ma non è quello il punto... . Perchè il linguaggio è solo lo strumento per raggiungere uno scopo... fosse il fine ultimo forse ci si arriverebbe a una conclusione... ma, invece, il concetto di migliore si lega a una finalità. E' molto più pratico e meno teorico.
Perché è stato il pioniere e i browser hanno supportato quello. Per lo meno quelli mainstream.
Si okay ma stiamo parlando di 20 anni, possibile che in 20 anni un linguaggio mediocre non venga rimpiazzato da qualcosa di migliore?
Per questo aspetta che domani faccia due chiacchiere con alcuni miei colleghi del team IoT, che hanno lavorato anche all'SDK. Finora da quel che ho visto hanno usato C, C++, Java (per Eclipse), Python e TcL (questi ultimi due per OpenOCD: rispettivamente per il test driver, e per i test). Javascript è la prima volta che lo leggo, ma comunque non è il mio team, e magari lo usano già.
Qui c'e' da distinguere chi sviluppa le "piattaforme" e direi che javascript qui non si vede minimamente, e' tutta roba C o simili per ovvie ragioni.
Quando si parla invece di chi sviluppa applicazioni su queste piattaforme da quel che vedo il trend dell'ultimo anno Javascript e' esploso.
Qualche giorno fa IBM ha comprato Strongloop per integrare node(javascript) definitivamente nella sua piattaforma IoT.
Samsung ha rilasciato di recente roba tipo questa: https://samsung.github.io/jerryscript/
Ci sono progetti "famosi" tipo
http://www.espruino.com/
https://tessel.io/
http://nodebots.io/
Node.js credo si presta benissimo con le sue caratteristiche out-of-the-box (non blocking i/o, event-loop, async, ecc) oltre al fatto che javascript e' un linguaggio relativamente semplice da imparare ma allo stesso tempo estremamente produttivo in questi ambiti.
Cmq non voglio soffermarmi molto su questo aspetto, l'OP parlava di ambito web, quindi ti chiederei se puoi rispondermi alla prima domanda, grazie :)
cdimauro
15-09-2015, 05:43
Si okay ma stiamo parlando di 20 anni, possibile che in 20 anni un linguaggio mediocre non venga rimpiazzato da qualcosa di migliore?
Purtroppo è andata così. Anche Microsoft ha provato a inserire qualcosa di diverso (VBScript) nel suo Internet Explorer, ma non ha attecchito proprio perché JavaScript era già divenuto ormai lo standard di riferimento e si trovava in tutti gli altri browser.
E' un po' come l'MP3: è stato il primo formato audio ad elevata compressione, e dopo più di 20 anni è ancora il più usato, nonostante siano usciti diversi formati oggettivamente (senza virgolette) migliori.
Idem PHP server-side: è ancora usatissimo.
Ma mentre server-side ti puoi permettere di sperimentare e cambiare, client-side o cambiano tutti i browser (per lo meno quelli mainstream), o non se ne fa niente.
E così preferiscono mettere pezze su pezze a JS per correggere via via i suoi difetti, anziché rimpiazzarlo con qualcosa di migliore.
Come già detto, l'unica speranza IMO è rappresentata da WebAssembly, che aprirà parzialmente la strada a qualcosa di diverso. Ma finché non lo supporteranno tutti i browser, la storia sarà la stessa.
Qui c'e' da distinguere chi sviluppa le "piattaforme" e direi che javascript qui non si vede minimamente, e' tutta roba C o simili per ovvie ragioni.
Quando si parla invece di chi sviluppa applicazioni su queste piattaforme da quel che vedo il trend dell'ultimo anno Javascript e' esploso.
Qualche giorno fa IBM ha comprato Strongloop per integrare node(javascript) definitivamente nella sua piattaforma IoT.
Samsung ha rilasciato di recente roba tipo questa: https://samsung.github.io/jerryscript/
Ci sono progetti "famosi" tipo
http://www.espruino.com/
https://tessel.io/
http://nodebots.io/
Node.js credo si presta benissimo con le sue caratteristiche out-of-the-box (non blocking i/o, event-loop, async, ecc) oltre al fatto che javascript e' un linguaggio relativamente semplice da imparare ma allo stesso tempo estremamente produttivo in questi ambiti.
Cmq non voglio soffermarmi molto su questo aspetto, l'OP parlava di ambito web, quindi ti chiederei se puoi rispondermi alla prima domanda, grazie :)
Fatto. :)
Riguarda al resto, con l'SDK devi fornire anche qualche strumento agli sviluppatori, per cui se, come hai detto, JavaScript ha avuto un impulso notevole nel settore embedded, probabilmente dovrebbe essere supportato dal nostro kit di sviluppo, o almeno provvedere qualche link a progetti simili a quelli che hai mostrato. Vediamo cosa dicono i colleghi.
Sì, JavaScript è piccolo e si presta bene. A me non piace assolutamente come linguaggio, ma è una scelta personale.
P.S. Di recente anche Python ha avuto una ventata di novità in quest'ambito. Se t'interessa l'argomento, dai un'occhiata a MicroPython (http://micropython.org/). ;)
cdimauro
15-09-2015, 20:48
Mi sono fatto una bella chiacchierata con l'architect dell'IoT Dev Kit della mia azienda. Il kit supporta soltanto C/C++ con Eclipse, mentre a breve arriverà il supporto a Java.
Javascript è stato aggiunto in un altro kit di sviluppo, chiamato XDK, che è un progettone molto più grosso che abbraccia diversi ambiti, fra cui anche IoT, ma non fa strettamente parte del kit di IoT.
Python è supportato a livello di Dev Kit, ma senza utilizzare Eclipse. Quindi puoi fare tutto quello che fai con gli altri linguaggi, ma mancano wizard et similia da usare dentro Eclipse. L'idea, è inutile nasconderlo, è quello di dargli un supporto equiparabile agli altri due linguaggi, ma al momento ci sono troppe cose da fare. Vedremo, perché l'idea mi piace e non è escluso che possa contribuire in qualche modo, ma è ancora molto prematuro per parlarne.
Manca, in ogni caso, il supporto a Javascript.
Questo è tutto per il momento. Quando e se ci saranno novità le riporterò.
Scusa senza andare a chiedere al tuo collega o chissa' chi, se vai sul sito ufficiale questo e' quello che appare:
https://software.intel.com/en-us/iot/library/edison-getting-started
http://i.imgur.com/GFw1iRN.png
Non vedo Python, non vedo Java.
Se guardi i tutorial in HOMEPAGE, 2 su 3 proposti hanno come main language Javascript.
Come ho gia' riportato IBM ha appena comprato Strongloop che e' un grosso player nella scena Node.js per integrare il loro framework nella piattaforma IoT.
Ho partecipato a un hackathon lo scorso gennaio abbastanza grande qui a Londra su IoT.
Ho avuto una board Edison come developer preview da testare e ho avuto modo di chiaccherare con un po di persone.
La maggior parte delle persone usa Javascript per sviluppare roba per quanto riguarda la mia esperienza.
Per il resto quando Javascript non era sufficiente ho visto usare C/C++ ad esempio per modificare firmware di una board.
cdimauro
16-09-2015, 06:20
Scusa senza andare a chiedere al tuo collega o chissa' chi, se vai sul sito ufficiale questo e' quello che appare:
https://software.intel.com/en-us/iot/library/edison-getting-started
[...immagine...]
Non vedo Python,
Eccolo qui (https://software.intel.com/en-us/iot/software/ide).
non vedo Java.
Infatti avevo detto che arriverà a breve. :)
Ho visto un'anteprima ieri, col wizard che ti consente di creare un progetto, e il sorgente che viene modificato appositamente quando scegli, ad esempio, di utilizzare un certo sensore.
Vedrai che al prossimo rilascio dell'IoT Dev Kit spunterà. ;)
Se guardi i tutorial in HOMEPAGE, 2 su 3 proposti hanno come main language Javascript.
Purtroppo ho pochissimo tempo, perché devo accompagnare i bambini a scuola e io di corsa al lavoro. Ho provato a dare un'occhiata partendo dalla Home/Projects, ma non ho trovato nulla di utile da questo punto di vista.
Come ho gia' riportato IBM ha appena comprato Strongloop che e' un grosso player nella scena Node.js per integrare il loro framework nella piattaforma IoT.
Ho partecipato a un hackathon lo scorso gennaio abbastanza grande qui a Londra su IoT.
Ho avuto una board Edison come developer preview da testare e ho avuto modo di chiaccherare con un po di persone.
Può darsi che abbia parlato con qualche mio collega (non di Intel, in generale, ma di quelli dell'IoT Dev Kit che stanno al piano di sotto di dove lavoro io), allora. :D
La maggior parte delle persone usa Javascript per sviluppare roba per quanto riguarda la mia esperienza.
Come detto prima, se usi l'XDK (per IoT, ovviamente) hai accesso anche a Javascript.
Ma alla base di tutto c'è l'IoT Dev Kit, che supporta C/C++ (e Java fra poco) a livello di IDE (appositi plugin per Eclipse che vengono sviluppati proprio nel nostro sito).
C'è anche il supporto a Python, SENZA IDE, e quindi puoi programmarci tranquillamente perché ci sono tutte le librerie a disposizione. Quel che manca è Eclipse con wizard e plugin per lavorarci comodamente; ed è quello di cui stiamo discutendo di recente.
Per il resto quando Javascript non era sufficiente ho visto usare C/C++ ad esempio per modificare firmware di una board.
E qui, se non ricordo male, serve anche Python, che viene usato anche "dietro le quinte" per un po' di cose.
Adesso scusami ma devo correre. Buona giornata.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.