Paolovox ha scritto:
Quali sono alternative valide alle servlet?
Le servlet sono solo lo strato più basso offerto da JavaEE per realizzare web application in Java. Al "di sopra" delle servlet esiste una quantità innumerevole di framework: JSF, Struts, Spring, Tapestry, Stripes, Google GWT, Wicket, giusto per citarne alcuni tra i più noti. Ognuno è orientato allo sviluppo di web application a modo suo, chi più orientato al pattern MVC, chi più action-oriented, chi più component-based, chi con un forte supporto alla IoC/DI (Inversion of Control/Dependency Injection), ecc....
Paolovox ha scritto:
Una socket server-side scritta in C non potrebbe soddisfare le stesse richieste utilizzando anche il multithreading?
"Nì" (sì e no). Tecnicamente sarebbe anche fattibile. Ma ci sarebbero non pochi problemi. Innanzitutto tutti gli aspetti tipo multi-threading, concorrenza/sincronizzazione, internazionalizzazione, gestione caratteri Unicode, gestione di database e sicuramente altro,
non sono affatto "standard". Richiedono l'uso o di API native del sistema o di librerie di terze parti la cui "portabilità" (su altri S.O.) non è detto che sia garantita e/o facile.
Inoltre c'è comunque il problema della gestione della memoria e dei potenziali memory-leak. Se non c'è un garbage collector (come in Java, .NET o altri linguaggi), rischi molto grosso specialmente nelle web application.
Una web application deve poter stare "su" in runtime anche per giorni. Se ad ogni request dai client causi un memory-leak anche piccolo (es. 10 KByte), ti lascio immaginare l'occupazione di memoria a fine giornata ...
Quindi: se vuoi farti del male, sì, sviluppa pure una webapp in C/C++.