2009-11-22 4 views
7

Penso che Erlang sia molto adatto per i sistemi server sviluppati sul mio posto di lavoro (attualmente sviluppato in Java). Sono un po 'scettico sul fatto che questo sia accettato sia dagli sviluppatori (che non hanno idea di funzionale o di Erlang) che dai gestori.Come spingere Erlang sul posto di lavoro

Qualche idea su come affrontare il problema? Sto pensando a qualche sistema ibrido, in cui l'hardcore altamente infra affidabile utilizza Elrang, e roba specifica applicazione sviluppata in Java (come nodi?)

+6

Inizia spiegandoci perché pensi che Erlang sia adatto ai sistemi server sviluppati sul posto di lavoro. – tuinstoel

+2

Bene, richiediamo sistemi molto fault tolerant. Richiediamo una robusta messaggistica e distribuzione. Richiediamo anche aggiornamenti e bilanciamento del carico. Tutto ciò può essere ottenuto con JEE o SOA, ma penso che Erlang sia una soluzione più naturale e leggera – GabiMe

+1

Ok, hai una lista di organizzazioni e/o aziende di successo che usano la combinazione di Erlang e Java allo stesso modo? – tuinstoel

risposta

10

Ci sono alcuni approcci, e non hanno né alcuna garanzia circa i effettivamente lavorare

  • Implementare qualcosa di sostanziale in un breve lasso di tempo, magari usando il proprio tempo. Non dirlo a nessuno finché non hai qualcosa da mostrare che funzioni. A meno che tu non abbia un collega.
  • Trascina molti progetti Erlang che sono buone dimostrazioni delle funzionalità che desideri. Presentalo ai tuoi manager e prova a inquadrarli sul rischio di continuare a utilizzare Java con questo tipo di tecnologia disponibile.

Se la società per cui lavori ha già una base di codice funzionante in Java, non è probabile che ti prendano sul serio quando suggerisci di riscriverlo in un'altra lingua.

Il vero test che si crede in Erlang è una scelta molto migliore: uscire e avviare una società in concorrenza e portare la conoscenza della tecnologia che avete nel vostro settore attuale. I tuoi manager stanno davvero confrontando uno scenario di rischio simile a quello che faresti se dovessi lasciare il tuo lavoro, e stanno cercando gli stessi fatti assicurativi per il successo che faresti, per considerare di lasciare uno stipendio "sicuro".


Quanto a come integrare, controllare il jinterface applicazione in Erlang. Consente al codice Java di inviare messaggi ai nodi di Erlang e consente a Java di esporre le cassette postali ai nodi di Erlang come se esistessero processi di Erlang.

+0

Qualche esperienza con Jinterface? Può un'applicazione Java che usa la Jinterface monitorata/riavviata anche dal runtime di Erlang? – GabiMe

+0

No, partecipa solo. È necessario avviare e monitorare esplicitamente il processo jvm da Erlang se si desidera supervisionare la JVM. – Christian

6

Si tratta di ROI (Return On Investment) per un manager: un manager sarà preoccupato per le prestazioni (dell'azienda). Per fare appello alla sua natura imprenditoriale, dovrai farne una causa usando $ in dollari (o qualsiasi altra valuta appropriata).

Attenzione che intraprendere un progetto "skunkwork" sul lato per "dimostrare" che la tua soluzione basata su Erlang potrebbe ritorcersi contro: "quindi hai avuto il tempo di giocare con Erlang, perché non hai trascorso il tempo sul progetto allora? " (Certo, non tutti i manager/aziende penserebbero in questo modo).

È necessario prendere in considerazione la intera proposta ad es. impatto sulla squadra, abilità da sviluppare, ecc. È tutta una questione di soldi.

Se ho un consiglio per te: inizia piccolo, pianta un seme, nutrilo e guardalo crescere.


Un uomo saggio una volta mi ha detto:

"Non si tratta di tecnologia, si tratta di il mercato dei prodotti &".

+1

Disclaimer: Sono un grande fan di Erlang ** ma ** quando si tratta di business, devo pensare a $ first, technology second. – jldupont

+0

Come un grande fan di Erlang, puoi commentare la fattibilità di un hibrid Erlang-Java? – GabiMe

+0

hmmm ... di quanto "ibrido" stiamo parlando qui? Dal contesto sopra esposto, avrei probabilmente un livello di "Supervisione" basato su Erlang, che i Supervisori di Erlang sorvegliano sui nodi Java. Inoltre, un buon passo potrebbe introdurre un "livello di messaggistica" (come AMQP/RabbitMQ basato su Erlang). Sebbene ci siano collegamenti Java per AMQP, potrebbe essere un modo per "intrufolarsi" in Erlang pur continuando a dare un senso agli affari. Solo alcuni pensieri, naturalmente. – jldupont

3

Iniziare non mirando a una riscrittura ma utilizzando erlang per una nuova funzione/progetto.I Riscrivi possono essere costosi e rischiare su Erlang per qualcosa che è già un'attività dispendiosa in termini di tempo e costosa è una vendita dura. Ma se c'è un nuovo pezzo che potrebbe essere fatto in erlang e java, hai una possibilità migliore. Il progetto sarà abbastanza piccolo da sperare di poterlo scoprire presto se erlang è adatto e adattarsi di conseguenza. E quando erlang si dimostra in quel progetto, avrai dati migliori con cui fare il tuo caso.

2

Introduciamo RabbitMQ nella nostra infrastruttura, che attualmente esegue una combinazione di applicazioni C++, Java e Python. Non intendo specificamente spostare la squadra verso Erlang, ma se lo fossi, introdurre uno strumento di terze parti ben scritto che capita di usare Erlang è un ottimo modo per mettere piede nella porta.

Un avvertimento importante è che mentre Erlang è un linguaggio meraviglioso da apprendere, la tecnologia circostante (OTP in particolare) ha un'enorme curva di apprendimento ed è estremamente primitiva in molti modi (debug, IDE, ecc.). Sta migliorando sempre, ma i convertiti riluttanti ti crocifiggeranno se non li avvertirai del dolore di imparare a programmare in un ambiente radicalmente diverso. Anche le cose semplici come la mancanza della tecnologia code-sense (ad esempio, digitare 'foo.' E l'IDE ti dice quali metodi puoi chiamare su foo) possono lasciare un cattivo gusto in bocca.