Domanda

So che ne avrò mille "Dipende da cosa stai cercando di fare " risposte, ma sul serio, non ci sono ancora informazioni solide su questo online. Ecco i miei presupposti: penso che siano simili per molte persone in questo momento:

  1. Ora è ottobre 2008. Voglio iniziare a scrivere una domanda per gennaio 2009. Sono disposto a utilizzare il codice beta e simili, ma entro gennaio mi piacerebbe un sito che non abbia problemi "strani". Detto questo, se una lingua è semplicemente più lenta del 10% rispetto a un'altra, non mi importa di queste cose purché il problema sia lineare. La mia preoccupazione principale è la produttività degli sviluppatori.
  2. Userò Linux, Apache, MySQL per l'applicazione.
  3. Voglio il potere di fare cose come eseguire le funzioni client scp e ftp con librerie stabili (ho scelto quelle due solo perché non sono legate al web ma allo stesso tempo rappresentano protocolli di rete piuttosto comuni che qualsiasi app più grande potrebbe usare ). Verranno utilizzate anche tecnologie come OpenID e Oauth.
  4. Gli sviluppatori web esperti sono prontamente disponibili (cioè non devo trovare persone di società finanziarie e simili).
  5. Qualunque sia la scelta è comune e rimarrà per un po '.
  6. Ecco un kicker. Mi piacerebbe essere in grado di utilizzare strumenti / linguaggi di livello di presentazione avanzati simili a HAML, SASS. Voglio assolutamente usare JQuery.
  7. Creerò un'app di Facebook e ad un certo punto farò cose come gestire i messaggi SMS, le app per iPhone, ecc ...

A questo punto, le scelte per la lingua sono PHP (Cake, Symfony, Zend), Python (Django), Ruby (Merb). Sono davvero tra Django e Merb a questo punto principalmente perché tutti gli altri sembrano andare in quel modo.

Per favore, non inserire qui nessuna tecnologia che non sia stata creata per il mainstream. So che Merb è per lo più non testato, ma il loro obiettivo dichiarato è una solida piattaforma e ha un sacco di slancio dietro di esso, quindi sono fiducioso che sia fattibile. Per favore, non rispondere con quanto è grande Perl o .Net.

Per riferimenti futuri - queste scelte sono già state fatte:

  • Debian (Lenny) - Per convertire i cicli della CPU in qualcosa di utile. Trac
  • 0.11 - Per Project Management Gliffy - Per wireframe e simili
  • Google Documenti / App - Per documentazione, email ospitata, ecc ...
  • Amazon ec2 / S3 - Per hosting, archiviazione.

Saluti, Adam

È stato utile?

Soluzione

dipende.

php - symfony è un ottimo framework. svantaggi: php, wordy e directory heavy. propel diventa fastidioso da usare. aspetti positivi: il php è ovunque e il lavoro è economico. quadro ben fatto e buon supporto. molti plugin per semplificarti la vita

python - django è anche un ottimo framework. aspetti negativi: i programmatori di Python possono essere più difficili da trovare, il django ancora più difficile. cambiare il tuo schema db può essere alquanto difficile poiché non ci sono migrazioni ufficiali. non fa abbastanza mvc come ti aspetteresti. aspetti positivi: fa tutto ciò di cui hai bisogno e ha dietro di sé la grande libreria std di Python e la community.

ruby: non ho mai usato Merb, quindi mi rivolgerò a Rails. aspetti positivi: c'è un plug-in, gemma o ricetta per quasi tutto ciò che potresti voler fare. facile da usare. aspetti negativi: quei plugin, gemme e ricette a volte non funzionano in modo misterioso. rattoppare le scimmie è spesso malvagio. la comunità è ... vocale. software supponente, e talvolta quelle opinioni sono sbagliate ( mancanza di chiavi esterne ). le rotaie stesse sembrano una torre di carte in attesa di esplodere e portarti via ore della tua vita.

Detto questo, sono uno sviluppatore freelance di php / symfony e ruby ??/ rails. Ho lavorato su diversi progetti in entrambe le lingue e framework. Il mio ultimo progetto è su Rails esclusivamente a causa di ActiveMerchant. Ho cercato un motivo per sviluppare un'app django per un po '. Se ci fosse una libreria come ActiveMerchant per django, probabilmente l'avrei usata.

Altri suggerimenti

Django!

Cerca i discorsi di DjangoCon su Google / Youtube - Soprattutto "App riutilizzabili" (Www.youtube.com/watch?v=A-S0tqpPga4)

Uso Django da un po 'di tempo, dopo aver iniziato con Ruby / Rails. Ho trovato la community di Django più facile da inserire (più gradevole), il linguaggio documentato con eccellenti esempi, e la sua modularità è fantastica, specialmente se vuoi inserire componenti personalizzati nel mix e non essere costretto a usare certe cose qua e là.

Sono sicuro che probabilmente ci sono modi per essere altrettanto flessibili con Rails o altri, ma ti incoraggio vivamente a dare un'occhiata alle presentazioni di Django, ecc., a http://www.djangoproject.com/

Eugene ha menzionato che ora è a 1.0 - e quindi rimarrà una base di codice stabile e compatibile con le versioni precedenti fino a gennaio 2009.

Inoltre, le interfacce di amministrazione automatiche che crea sono pronte per la produzione ed estremamente flessibili.

Siamo spiacenti, ma la tua domanda è sbagliata. Le persone probabilmente mi voteranno per questo, ma voglio dirlo comunque:

Non mi aspetterei di ottenere una risposta obiettiva! Perché? È semplice:

  • Tutti i sostenitori di Ruby diranno di usare Ruby.
  • Tutti i sostenitori di Python diranno di usare Python.
  • Tutti i sostenitori di PHP diranno di usare PHP.
  • Inserisci qui altre lingue.

Hai avuto l'idea?

Ti consiglio di provare ognuna delle lingue che hai citato per te. Almeno qualche giorno ciascuno. Successivamente dovresti avere una base molto migliore per prendere la tua decisione finale.

Detto questo, sceglierei Ruby (perché sono un avvocato di Ruby).

Tutti faranno il loro lavoro.

Usa quello con cui tu e il tuo team avete più familiarità

Ciò avrà un impatto molto maggiore sui tempi di consegna e sulla stabilità della tua app rispetto a qualsiasi altra variabile.

Andrei con Django, se ti senti a tuo agio con una soluzione Python. Ora è alla versione 1.0 e sta maturando bene, con una vasta base di utenti e molti collaboratori. L'integrazione di jQuery non è un problema e l'ho fatto senza problemi.

L'unica cosa è, per quanto ne so, Ruby è molto più popolare per lo sviluppo web al giorno d'oggi, quindi è più facile trovare sviluppatori Ruby. Ho avuto questa impressione consultando gli annunci di lavoro recenti: non ce ne sono molti per Python o Django. Non so molto su Merb, quindi non posso fare un confronto equo.

Ho fatto abbastanza PHP per non consigliarmi di iniziare un nuovo progetto con esso.

In base alle tue ragioni, andrei con Ruby. Vedo che vuoi alcuni strumenti di amministrazione (scp, client ftp) e Ruby ce l'ha (librerie net / sftp e net / ftp).

Inoltre, ci sono grandi gemme come Dio per il monitoraggio del tuo sistema, Vlad the Deployer per la distribuzione, ecc. E molte alternative nel campo di Merb, usa semplicemente ciò che ritieni sia meglio per le tue esigenze (Thin, Mongrel, ebb, ecc).

Per avere un'idea di dove si trovi attualmente l'ecosistema Django, potresti dare un'occhiata

Devo prefigurarlo con il mio accordo con Orion Edwards, scegliere quello con cui la tua squadra ha più familiarità.

Tuttavia, devo anche notare la curiosa mancanza di linguaggi ASP.NET nella tua lista. Non provocare il grande esercito di fanatici, ma dov'è il manzo? .NET è una piattaforma di sviluppo stabile e rapida e il pool di manodopera cresce ogni giorno. VB.NET e C # sono insiemi di abilità trasportabili e questo può significare molto quando si crea un team di sviluppatori per lavorare su una serie diversificata di attività. .NET ti consente anche di separare il tuo livello di presentazione dal tuo codice di backend, come altre lingue, ma ti consente anche di esporre quel codice di backend come servizio web per cose come le tue applicazioni iPhone e Facebook.

Prendi ogni suggerimento con un granello di sale e scegli quello che si adatta meglio all'applicazione. Fai la tua ricerca e progetta per la funzione e non per gli zeloti.

Dichiarazione di non responsabilità: un tempo sviluppatore di PHP, ColdFusion e Perl. Flex zealot e amante di Adobe. Ora scrivendo applicazioni .NET aziendali. ;)

Non dimenticare Mono, che ti consentirà di eseguire .NET sotto * nix. Non che sto dicendo che sarà perfetto, solo interpretando l'avvocato del diavolo.

Non rimanere bloccato nella mentalità del layout di pagina lato server. Prendi in considerazione tecnologie come SproutCore, GWT o ExtJS che mettono il codice di layout completamente sul client, rendendo il server responsabile solo del marshalling e dell'elaborazione dei dati (e facilmente sostituibile).

E devi davvero sapere quale piattaforma server desideri. Non sceglierne uno perché è il sapore del mese, scegline uno perché ti senti a tuo agio. I sapori non durano, un codebase solidamente costruito lo farà.

Avendo creato app in Django, posso attestare la sua utilità. Se solo tutti i framework fossero altrettanto eleganti (sì Spring, ti sto guardando).

Tuttavia, in termini di scommesse sulla fattoria su Django, una cosa che devi considerare è che Python 3 verrà rilasciato a breve. Python 3 non è retrocompatibile e c'è il rischio che biforchi il linguaggio e finisca per rallentare lo slancio di tutti i progetti Python mentre affrontano il fallout. Ad essere onesti, presto arriverà anche Ruby 2.0, ma non credo che sarà così dirompente.

La mia esperienza con varie nuove tecnologie negli ultimi dieci anni mi porta a raccomandare di rendere la stabilità della piattaforma un criterio serio. Va benissimo lo sviluppo con l'ultimo e il più grande framework, ma quando scopri che viene spostata in avanti una versione puntuale e improvvisamente il modo in cui hai fatto tutto è deprecato, il che può risultare in un lavoro extra inutile. Questa è stata in particolare la mia esperienza con le rotaie un po 'più avanti rispetto alla versione 1. Per questo motivo da sola eviterei qualsiasi piattaforma che non fosse almeno alla 1.0 quando inizi a lavorarci.

Ruby è fantastico con cui lavorare e manterrà alta la produttività dei tuoi sviluppatori, ma se Django è la piattaforma più stabile lo preferirei di sicuro.

Vale la pena non essere di parte riguardo alla configurazione del server. Qualsiasi framework web moderno che valga la pena di pesare nel codice sorgente ha un livello di astrazione SQL di qualche tipo. PostgreSQL ottiene prestazioni molto migliori, e questo proviene da un ex partigiano MySQL.

Apache è una bestia, sia per configurare che sulle risorse del tuo server. Perché non andare con qualcosa di leggero, come nginx o lighttpd ?

(Per la cronaca, sono un grande utente di Django, ma come diceva la risposta accettata, segui tutto ciò che la tua squadra sa. I rapidi cambi di rotta non sono il momento di imparare nuovi framework. Se stai assumendo un squadra da zero, vai con Django.)

Aggiornamento: ho finito per usare e amare Django. Ho completamente finito con PHP - mi dispiace per quello. I futuri lettori che cercano di creare un nuovo sito Web 2.0 (supponendo che abbiano un background di programmazione), dovrebbero prendere in grande considerazione questa configurazione:

Amazon ec2 per l'hosting ($ 80 / al mese - non economico ma ne vale la pena se te lo puoi permettere) Django / Python (Python è il linguaggio di scripting più potente del pianeta - e Django lo fa funzionare sul Web)

Lo sviluppo dovrebbe essere fatto con SQLlite e il server di sviluppo fornito con Django. Non perdere tempo con Nginx, Apache, MySQL fino a quando non avrai bisogno di alcune settimane di beta.

Oh, e ora sviluppo su un Mac, che funziona benissimo per lo sviluppo locale di Django.

Infine, Pinax è un ottimo inizio per Django sviluppo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top