Anche se TCP/UDP/IP sono protocolli comunemente usati, non capisco perché vogliono far parte dello standard ISO C++. Questi non hanno nulla a che fare con il nucleo della lingua. Le strutture dati sono strumenti universalmente obbligatori, quindi la STL ha senso, ma questi protocolli sono IMO troppo specifici.Perché esiste una proposta di libreria di rete per C++ 14/17?
risposta
C++ 11 include filettatura in standard. Ora i programmatori non devono scrivere PThread
in Linux e Windows Threads
in Windows, separatamente. Lo stesso può accadere se la libreria di rete viene standardizzata.
Trovo i thread ugualmente universali. Ma TCP/UDP non sono IMO. Esistono alternative (ad esempio SCTP, anche se principalmente utilizzato in 3GPP) –
@BenjiMizrahi Vale la pena ricordare che la libreria di rete standard sarà facilmente estensibile e l'aggiunta di implementazione multipiattaforma per (ad esempio) SCTP sarà facile e multipiattaforma per progettazione. –
C'è stato un sentimento di vecchia data che la piccola area di messa a fuoco della libreria C++ è qualcosa di brutto che trattiene la lingua. La maggior parte dei linguaggi "moderni" dispone di librerie di framework di grandi dimensioni che includono networking, grafica e JSON. Al contrario, se vuoi eseguire uno di questi in C++, a) non ottieni nulla per impostazione predefinita e b) sono sopraffatti con una scelta di librerie di terze parti che di solito non sei in grado di valutare correttamente e selezionare da.
Ecco come va quella parte dell'opinione.
Ovviamente ci sono altre persone che pensano che sia proprio così che dovrebbe essere. Tuttavia, la standardizzazione è un lavoro duro, e mentre linguaggi come Java e C# e Go hanno dietro di sé grandi aziende che possono mettere energia nello sviluppo di un'enorme libreria, il C++ non ha quel tipo di manodopera e la maggior parte delle persone che passano il tempo sulla standardizzazione C++ sono più interessati agli aspetti fondamentali della programmazione: strutture dati, concorrenza, evoluzione del linguaggio (concetti, intervalli, moduli ...).
Quindi non è così tanto che le persone sono generalmente contrarie a una biblioteca più grande, ma non è una priorità per molti. Ma se arrivano buone idee, hanno buone possibilità di essere considerate. E i componenti di una grande libreria come il networking non andranno comunque nella libreria standard, ma piuttosto in una specifica indipendente, che è un modo per vedere se l'idea è utile, popolare e corretta. Solo se un TS viene ampiamente utilizzato e riceve molti feedback positivi ci sarà un possibile sforzo futuro per includerlo nell'IS.
(avrete notato analoghi sforzi per creare le specifiche tecniche per i file system e per la grafica.)
Immagina un bambino nato nel 2005 che ottiene un iPhone7 per il suo decimo compleanno, ma sa che tutti i ragazzi fantastici a scuola fanno C++. "Mamma, voglio solo disegnare delle forme intersecanti sulla mia tela HTML (il mio codice di invio multiplo sta già funzionando perfettamente) - quale classe ho bisogno di istanziare per quello?" (A quel punto mamma apre una bottiglia di Jack e lascia che il bambino usi il suo XCode con Swift.) –
- 1. Perché non esiste una rete di archiviazione c completa?
- 2. Esiste un repository di libreria per C?
- 3. Esiste una libreria di hashmap per JavaScript?
- 4. Esiste una specie di libreria di assemblaggio C++ di runtime?
- 5. Esiste una libreria C++ XSLT?
- 6. Esiste una libreria USB cross platform C++?
- 7. Esiste una libreria Telnet per JavaScript?
- 8. Esiste una libreria YAML nativa per iPhone?
- 9. Esiste una libreria di file system leggera multipiattaforma C++?
- 10. Esiste una libreria di visualizzazione 3D o un toolkit per C? (No C++ per favore!)
- 11. Esiste una libreria di threading multipiattaforma in C++?
- 12. Esiste una libreria di programmazione quadratica in C++?
- 13. Esiste una soluzione di rete simile ad excel per AngularJS
- 14. Esiste una libreria predefinita di elenchi collegati in C++?
- 15. Esiste una buona libreria Python in grado di analizzare C++?
- 16. Proposta per dichiarazioni/istanze di dati locali
- 17. Esiste una libreria Java di funzioni Unix?
- 18. Esiste una chiamata alla libreria per addr2line?
- 19. esiste una libreria di file system usermode ext2 per Windows?
- 20. Esiste una libreria di contatti Google non Zend per PHP?
- 21. Struttura di directory per una libreria C++
- 22. Esiste qualche utile framework di libreria ORM per c?
- 23. Esiste una libreria esistente di metodi di estensione per C#? o condividere il tuo
- 24. Perché vedo THROW in una libreria C?
- 25. JavaScript: esiste una libreria di utilità?
- 26. Esiste una libreria MapReduce per Delphi?
- 27. Esiste una libreria Python per gestire OWL?
- 28. Esiste una libreria AES per clojure?
- 29. Esiste una libreria client CalDAV per Java?
- 30. Esiste una libreria API Google per Node.js?
Questa domanda è troppo aperto. Farai meglio a portarlo alle mailing list C++. –
La proposta è per una biblioteca, non "il cuore della lingua". Io per primo troverei utile una libreria di rete standardizzata. –
Se diventa parte dello standard ISO C++, cosa succederà se utilizzo quel compilatore su un sistema operativo che non ha uno stack TCP/IP? –