Selezione dell'ambiente di progetto senior

2

I miei 2 amici e io stiamo preparando la nostra idea di progetto senior per il prossimo anno. Ho bisogno di alcune idee diverse mentre decido l'ambiente di base del progetto, soprattutto da parte degli sviluppatori / ingegneri del software che hanno lavorato in enormi sviluppi di prodotti software.

  • Abbiamo risorse umane limitate ( solo noi, 3 studenti ), tempo limitato e un fondo molto limitato.
  • Il progetto si rivolge ad ambienti office come Outlook, Thunderbird.
  • Funzionerà sul desktop, non sul web
  • la GUI sarà davvero ricca con widget / finestre personalizzati come Outlook
  • Vogliamo iniziare a venderlo e aprire magari una piccola azienda. Quindi non è solo un progetto senior per noi e lo prendiamo sul serio.
  • Anche se non siamo in grado di aprire una società, vogliamo che questo progetto sia un buon riferimento al nostro CV, soprattutto per quando si cercano lavori negli Stati Uniti.
  • La velocità del software è ovviamente importante, ma l'affidabilità (crash in un prodotto software commerciale non è accettabile per i clienti giusto?) e portare il progetto a uno stato utilizzabile il più velocemente possibile sono più importante.
  • Sarà come MS Outlook, con molte funzionalità nel singolo client. (Più che Outlook in realtà se contiamo.)
  • Inoltre vogliamo che questo progetto porti le nostre abilità pratiche in un posto migliore
  • Usiamo C ++ e Java davvero buoni, ma non abbiamo mai lavorato all'interno di un progetto di grandi dimensioni come questo, quindi non possiamo vedere come l'ambiente influenzi le nostre esigenze a lungo termine

Abbiamo due ambienti tra cui scegliere (Java Swing e C ++ Qt) e siamo esperti in questi, ma a causa dei fattori che ho descritto sopra, dovremmo decidere qual è il migliore.

Quale sarebbe il tuo consiglio per un progetto con questi criteri?

Le nostre paure per Java:

  • Rallentamento del software perché è davvero un grande progetto.
  • Soprattutto temiamo la velocità della GUI.

Le nostre paure per C ++:

  • Sviluppo che richiede molto tempo
  • Sicuramente più bug si verificano
  • Più tempo o denaro per sviluppare e mantenere (difficile trovare buoni sviluppatori C ++ rispetto agli sviluppatori Java giusto?)
  • Rendere la GUI molto personalizzata con Qt potrebbe essere davvero difficile
  • Le librerie non saranno riutilizzabili per un'interfaccia web mobile (almeno facilmente)

PS: non è un client di posta elettronica. Verrà utilizzato in ambienti di ufficio come Outlook, ma non come client di posta elettronica. Outlook è una buona immagine per rappresentarlo.

    
posta Seregwethrin 29.03.2011 - 21:26
fonte

5 risposte

2

prendi la lingua che conosci meglio

Java, C # e C ++ / Qt sono tutte scelte ben note per le applicazioni desktop. Con ognuno è possibile creare una GUI di bell'aspetto e gestire grandi progetti. Le prestazioni di ciascuno sono "abbastanza buone" in quanto le prestazioni di solito non interessano comunque le applicazioni desktop.

Potrebbero esserci piccole differenze tra i linguaggi su quei punti, poiché ognuno ha i suoi punti di forza e di debolezza. Ma quei punti sono meno importanti delle tue abilità nell'usarli!

Ecco il mio consiglio: scegli quello con cui sei più esperto . (Che esclude C # nel tuo caso)

    
risposta data 30.03.2011 - 04:32
fonte
1

Il mio consiglio è di dimenticare le prestazioni per questo progetto e scegliere la lingua che ti permetterà di costruire qualcosa di utile con il codice minimo. Sia C ++ che Java sono abbastanza dettagliati. Guarderei Ruby o Python con Qt o Tk. Non ti ci vorrà molto per provarne uno.

    
risposta data 30.03.2011 - 06:52
fonte
1

Il tempo che impiegherà per imparare una nuova lingua e / o framework sarà maggiore che risolvendo qualsiasi problema, o eseguendo qualsiasi tipo di ottimizzazione delle prestazioni che dovrai fare su una lingua e un framework che già conosci e che hai esperienza con. Se hai qualcosa che conosci e capisci bene, e hai dei vincoli temporali, la soluzione migliore è attenersi a ciò che sai e comprendi bene, nonostante le eventuali carenze percepite.

Sembra che tu abbia più fiducia nelle tue capacità di programmare in Java, quindi tienilo d'occhio.

    
risposta data 05.04.2011 - 07:15
fonte
1

Our fears for Java:

  • Slowing the software because it is really a big project.
  • Especially we are afraid of the GUI's speed.

Con una certa esperienza nelle GUI Java, posso assicurare che sarà abbastanza veloce se lo farai correttamente. Plain Swing è scattante; sta facendo un lavoro non necessario nell'EDT che ti rallenterà, ma non dovresti farlo. Scopri come utilizzare Executor s o SwingWorker .

Anche qualcosa di grande come NetBeans è tollerabile anche se è costruito sul framework NetBeans, il che naturalmente rallenterà tutto un po '(ma porta altri oggetti, se ti piacciono framworks).

    
risposta data 05.04.2011 - 10:16
fonte
0

Utilizza il framework di sviluppo software che conosci meglio. Non ho detto "linguaggio di programmazione". Non solo un compilatore e un editor di testo.

    
risposta data 30.03.2011 - 21:49
fonte

Leggi altre domande sui tag