|
|
|
|
Strumenti |
13-12-2014, 13:50 | #1 |
Member
Iscritto dal: Jul 2007
Messaggi: 108
|
Linguaggio per scrivere un server
Vorrei provare a tempo perso a creare un social network. Mi chiedevo se oltre all'efficienza ci fossero degli altri fattori che vale la pena considerare(librerie?) per scrivere il lato server. Quale linguaggio e perchè dovrei utilizzare?
|
13-12-2014, 17:16 | #2 |
Senior Member
Iscritto dal: Nov 2010
Città: Londra
Messaggi: 620
|
è una domanda molto molto generica.
efficenza: c, c++ velocità di sviluppo: python / ruby / javascript nel mezzo: Java/Scala, Go le librerie si aiutano ma la natura del progetto è talmente ampia che è difficile dare una risposta o prendere una decisione se è solo per esercizio scegli quel che vuoi, uno vale l'altro |
13-12-2014, 18:35 | #3 |
Member
Iscritto dal: Jul 2007
Messaggi: 108
|
È più che altro per passarmi il tempo ma non si sa mai...Magari mi viene la scimmia di renderlo pubblico, quindi vorrei fare le cose per bene. È un po' alla Twitter se può aiutare a restringere il campo. Scriverlo in Python e usare C per eventuali colli di bottiglia come sarebbe?
|
13-12-2014, 19:26 | #4 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Con Python puoi scrivere velocemente un prototipo, e metterlo anche in funzionamento. Se dovesse avere successo, puoi sempre individuare i colli di bottiglia che limitano la scalabilità e risolverli.
Considera che Facebook è stato scritto inizialmente con quell'aborto di PHP e MySQL, se non ricordo male, e col tempo è stato rimaneggiato (anche se PHP dovrebbe essere ancora il linguaggio principale) per poter gestire l'attuale miliardo di utenti.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
13-12-2014, 19:39 | #5 |
Member
Iscritto dal: Jul 2007
Messaggi: 108
|
Vada per Python allora. È da molto che non lo uso quindi dovrei usare la 2.x o la 3.x?
|
13-12-2014, 20:31 | #6 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Il futuro è il ramo 3.x, ma il problema è che non sono molti i moduli/package che sono stati portati da 2.x a 3.x.
Il mio consiglio è di utilizzare Python 2.7, in modo da garantirti l'accesso a qualunque package per questo linguaggio, ma abilitando (alcune del)le funzionalità di Python 3.0, in modo da rendere immediato il passaggio a quest'ultimo. Per maggiori informazioni, leggi questo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
14-12-2014, 11:13 | #7 |
Senior Member
Iscritto dal: Nov 2010
Città: Londra
Messaggi: 620
|
Secondo me se lo fai per "passare il tempo" la scelta migliore è Go.
Puoi costruire qualcosa con praticamente la stessa velocità di Python col vantaggio delle prestazioni e di usare un linguaggio moderno che sta avendo molto successo e verrà sicuramente usato parecchio nei prossimi anni. Puoi usare il package di default "http" http://golang.org/pkg/net/http/ o affidarti a un framework tipo https://github.com/go-martini/martini |
17-12-2014, 12:23 | #8 |
Member
Iscritto dal: Jul 2007
Messaggi: 108
|
Grazie mille
Alla fine la scelta è ricaduta su Python perchè è un linguaggio che suppergiù conosco e che mi piace. Non so se vado off-topic ma ho un problema stupido che non riesco a risolvere. Ho disabilitato il firewall di windows, ho disabilitato avast e ho aperto la porta nel pannello di configurazione del router(se mi connetto a localhost è necessario?) ma nel client socket.connect() genera l'eccezione [Errno 10061] Impossibile stabilire la connessione. Rifiuto persistente del computer di destinazione. Server: Codice:
import socket HOST = '' PORT = 8882 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST, PORT)) s.listen(1) conn, addr = s.accept() s.close() Codice:
import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = 'localhost' port = 50100 remote_ip = s.gethostbyname(host) s.connect((remote_ip, port)) s.close() Ultima modifica di theUser : 17-12-2014 alle 13:03. |
18-12-2014, 15:32 | #9 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3305
|
Apri il server sulla porta 8882 e provi a connettere il client alla porta 50100? Direi che così non funziona
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:24.