Ruby on rails non è popolare nelle grandi aziende IT internazionali? [chiuso]

6

Il ROR è utilizzato solo nelle startup o anche in aziende più grandi?

Quali dovrebbero essere le ragioni della loro preferenza per Java rispetto a ROR?

    
posta gnat 19.10.2012 - 18:36
fonte

4 risposte

3

Ci sono molte ragioni per cui le grandi multinazionali preferiscono sviluppatori Java, C ++ o .NET. Per prima cosa, i loro sistemi sono stati impostati con una piattaforma che utilizzava uno di questi linguaggi prima che arrivasse Ruby (lo stesso vale per Python per molti aspetti). Sanno anche che i dipartimenti di informatica addestrano programmatori Java e C ++, quindi c'è un pool più ampio di potenziali candidati da assumere. Queste sono fondamentalmente le forze di inerzia al lavoro nelle grandi multinazionali.

C'è anche il problema del supporto. Java, in particolare Java EE, è supportato da grandi aziende con enormi budget e un intero settore di programmi di formazione. Così come è .NET. Che mi dici di Ruby? Le persone stanno ancora chiedendo in giro su questo forum per i libri su Ruby o quanto sia ripida la curva di apprendimento.

Probabilmente tu e io siamo d'accordo che quando si tratta di sviluppare app web da zero, ROR è lo strumento giusto per il lavoro. Tuttavia, se fossi un CIO in una grande multinazionale, non vedrei alcun vantaggio nel cambiare la mia armata di sviluppatori in una nuova lingua e struttura. Né potrei venderlo al mio capo.

    
risposta data 19.10.2012 - 18:54
fonte
12

Ti suggerisco di visitare questa pagina su Quora . Ci sono molte risposte che ti darebbero una spiegazione.

La risposta più appropriata su Quora è:

  1. Molte aziende hanno sistemi che devono essere mantenuti per lungo tempo, ma non hanno personale dedicato per mantenerli. Piuttosto, il sistema è stato scritto da alcuni appaltatori, quindi rimane lì finché non è necessario qualcosa di nuovo, quando arriva un diverso gruppo di appaltatori, ecc. Con questo approccio, è importante usare qualcosa di standardizzato che è popolare per questo tipo generale del sistema, in modo che tu possa sempre trovare qualcuno che lo mantenga per te. Java e C # sono molto popolari per la scrittura di grandi sistemi di automazione aziendale, quindi ci sono molti appaltatori in grado di scrivere sistemi di automazione aziendale di grandi dimensioni, quindi rimangono popolari per la scrittura di grandi sistemi di automazione aziendale. Questa diventa una profezia autosufficiente, ma ciò non rende meno convincente un argomento.
    Per ragioni simili, è importante usare qualcosa di stabile. Con molti linguaggi dinamici / di scripting come quelli che hai citato, 3 anni sono considerati più che adeguati per deprecare una lingua o una funzionalità di libreria. Con Java, d'altra parte, è ancora possibile eseguire un programma di 10 anni senza modifiche. Questo è spesso molto importante per le persone che fanno automazione aziendale.
  2. La presenza di una grande società che supporta una lingua e il relativo set di librerie e strumenti rassicura i responsabili delle decisioni nelle grandi aziende che sostengono che è buono e che non andrà via presto. (Se questo è vero in realtà è un'intera "domanda".) Python, PHP e Ruby sono tutti originariamente progetti hobbistici / accademici, e sono cresciuti un po 'di supporto aziendale, ma principalmente da aziende piuttosto piccole che non impressionano la tua fortuna tipica 500 CIO. C # è supportato da Microsoft, e Java esce da Sun, che potrebbe essere andato sotto, ma è ancora supportato pesantemente da Oracle, IBM e altri.
  3. I grandi progetti di automazione aziendale richiedono librerie e framework diversi rispetto ai tipici siti Web dinamici. Vuoi essere in grado di parlare con Oracle e SAP, per esempio. Questi tipi di framework e librerie tendono ad essere per Java o C #, e anche questo si auto-perpetua.
  4. A volte, Java o C # potrebbero effettivamente essere un'alternativa tecnicamente migliore. Lo dico per ultimo, ma non è solo per sottolineare la possibilità logica. Ad esempio, Java ha un modello di thread discreto e esistono librerie di strutture dati simultanee ad alte prestazioni. L'implementazione standard di Python ha un threading mal implementato, e l'implementazione standard di PHP ha per tutti gli scopi pratici nessun threading. Inoltre, una strong digitazione e la risoluzione dei nomi in fase di compilazione, rallentando la programmazione esplorativa, aumentano il numero di bug che possono essere catturati staticamente.
  5. E ora un'osservazione dichiaratamente leggermente fuori tema: la domanda menziona le lingue con un sacco di controlli in fase di compilazione che sono noiosi da usare, come Java e C #, e linguaggi con pochissimi controlli in fase di compilazione che non sono noiosi da usare , come Python e Ruby. Per completezza, va detto che la quantità di tempo di compilazione che controlla una lingua non deve necessariamente correlare direttamente con la quantità di testo che si deve digitare per aiutarlo a farlo. Tra i linguaggi che hanno un controllo molto accurato in fase di compilazione ma che sono considerevolmente più intelligenti di Java circa l'inferenza di ciò che dovrebbero controllare, ML (OCaml, Standard ML, F #), Haskell e Scala meritano di essere letti. Tra questi, Scala ha le migliori possibilità di diventare veramente mainstream, perché si integra perfettamente con le librerie e le librerie Java mature e open source.
risposta data 19.10.2012 - 18:50
fonte
4

Ruby è spesso visto come una soluzione per quando hai bisogno di qualcosa di veloce (e veloce e sporco). È anche considerato privo di scalabilità per sistemi di grandi dimensioni.

Le grandi aziende in genere non cercano "velocemente e sporca" o dopo il time to market che una soluzione più rapida fornirebbe. La grande azienda non sta andando per un ciclo dal design al rilascio nel giro di poche settimane e si trova più spesso nel periodo dal design al rilascio nell'ordine dei mesi (a volte anni).

Un vantaggio del rubino è lo stack tecnologico più piccolo necessario per uscire. È piuttosto simile a php + mysql per un'applicazione web. Le grandi aziende hanno maggiori probabilità di gestire uno stack oracle già esistente (ad esempio) java + weblogic + che è in vigore da un decennio. Non c'è alcun vantaggio per la grande azienda di passare a qualcosa di più piccolo quando hanno già lo stack più grande sul posto.

    
risposta data 19.10.2012 - 18:47
fonte
0

Questa è anche la mia impressione: il ROR è usato più dalle startup, Java nelle grandi aziende.

Prima di tutto, lingue diverse hanno punti di forza / debolezze per diverse applicazioni. Il rubino è una lingua; Ruby on Rails è un framework per la creazione di app web. Il C ++ non è molto adatto alle app Web, l'unico che conosco in C ++ è ok cupido. C e C ++ sono per app ad alte prestazioni, ad es. database, sistemi operativi, ciò che viene generalmente definito "programmazione dei sistemi".

Le persone spesso pensano che linguaggi dinamici come Ruby siano più difficili da scalare per molti programmatori o programmi complicati, a causa della mancanza di verifiche sul tempo di compilazione.

Allo stesso modo, le grandi aziende sono molto prudenti, quindi sono felici di rallentare gli sviluppatori facendoli scrivere molte regole, a patto che le cose funzionino per lo più.

    
risposta data 19.10.2012 - 18:48
fonte

Leggi altre domande sui tag