Vale la pena imparare COBOL? [chiuso]


23

L'apprendimento di COBOL ha ancora senso?


9
Sarà intorno al 9990, non sono sicuro se vivi così a lungo.
Toon Krijthe,

4
@Gamecat --- Solo se il problema Y10K non è stato risolto da società o individui non pigri prima di allora, giusto ?!
Segna C

2
Ricorda che COBOL da solo non ti porterebbe lontano. Devi creare uno stack per il sistema operativo con cui vuoi lavorare. Ad esempio, su macchine IBM, avresti bisogno di VSAM, MVS o Z, CICS, ISPF, potrebbe essere IMS e ISPF, Panvalet / Easytrieve, JCL oltre a COBOL.
NoChance,

2
cobol.com sembra davvero Web 2.0 e regalano una macchina da caffè! Se questo non è moderno e pragmatico e inserisci una parola d'ordine, allora non so cosa.
Raphael R.,

Puoi ottenere un reddito costante se riesci a ottenerlo e trovare un negozio COBOL.

Risposte:


26

Non credo, a meno che tu non sia già nel mercato di nicchia in cui COBOL è ancora mantenuto.


13
Il 70% dell'infrastruttura esistente funziona su COBOL. Dal passaggio di una carta di debito su un bancomat, alla prenotazione di un aereo online, fino al routing di una telefonata. Tutti quelli funzionano su COBOL (o dipendono in modo significativo da esso.) Non è certo una nicchia o un ambiente legacy. La maggior parte di questi sistemi sono stati eseguiti quasi ininterrottamente e per decenni (un track record molto migliore di quello che abbiamo su Java e .NET) e il numero di programmatori COBOL sta diminuendo. Vuoi fare un sacco di $$$? Posizionati per l'enorme carenza di COBOL che si verificherà tra circa un decennio.
luis.espinal,

14
@ luis.espinal: no, questo è un mito comune e una percentuale del 70% non è più vera. L'uso di COBOL è in costante calo e alla fine ce ne sbarazzeremo. E ... COBOL è coinvolto nel routing delle chiamate telefoniche? Io non la penso così. Forse nella fatturazione delle telefonate, ma anche lì è improbabile in questi giorni.
Wizard79,

6
@Lorenzo - 70% un mito? Non sei coinvolto nelle telecomunicazioni? Puoi eseguire il backup di tali affermazioni? Non stiamo nemmeno contando il suo coinvolgimento nella spedizione (decine di K di container / anno), né nel settore sanitario. Non so come sia dove lavori, ma qui in Nord America (e in molti altri posti), COBOL esiste in gran numero e funziona bene . Perché qualcuno dovrebbe rischiare di riscrivere qualcosa che funzioni e che è mission-critical ? Mi piacerebbe fantasticare che riscriverò tutto in Java o C ++, ma c'è fantasia, e c'è ingegneria del software ed economia del software.
luis.espinal,

9
@ luis.espinal: dato che ho lavorato nel settore delle telecomunicazioni, so per certo che i dispositivi di scambio telefonico non usano COBOL ... sono basati su hardware e firmware dedicati. Alcune aziende usano ancora COBOL per la fatturazione e la contabilità, ma quelle nuove (come gli operatori di telefonia mobile) fanno affidamento su tecnologie diverse anche per questo. Il passaggio è in corso.
Wizard79,

8
@ luis.espinal: il mio bro-law lavora per una grande azienda di telecomunicazioni, scrivendo software per nuovi switch. Ti garantisco assolutamente che NON usa COBOL!
Bob Jarvis - Ripristina Monica il

36

Nooo, certo che no. COBOL è una lingua morta, dopo tutto. O è?

Il problema con questo punto di vista è che i programmatori in siti come questo di solito lavorano con aziende high-tech, veloci (e altrettanto veloci). Per loro COBOL è una lingua morta - non si vede da nessuna parte. Non è da un po 'di tempo ormai, è vero.

Ma COBOL non era pensato per loro. Nell'industria del software c'è molto di più. I computer non sono stati inventati per le persone con un bisogno irrazionale di aggiornare e sostituire sempre il vecchio con il nuovo. Sono stati realizzati per scopi commerciali.

Vuoi vedere COBOL? Vai a una società che elabora le buste paga o gestisce il trasporto di merci o la spedizione (come nelle navi) o gestisce il tuo conto bancario. Esiste un enorme sistema invisibile di codice là fuori che è praticamente invisibile agli utenti, e la maggior parte di loro non ci pensa mai, anche se lo incontrano in un modo o nell'altro ogni giorno (bancomat?)

No, non è morto. Ma è "eredità" di sicuro ... o è?

Ancora una volta, dipende da come lo guardi. Oggi molte persone useranno Java, C o qualsiasi altra cosa al posto di COBOL, riscrivendo da zero ... introducendo nuovi bug man mano che procedono, naturalmente. Ciò non significa che COBOL non abbia bug e stranezze. Lo fa, tanto quanto la lingua successiva. Certo che lo fa. Ma in "tempi COBOL", le aziende che prendevano gli errori più seriamente del solito (assicurazioni, banche) tendevano a produrre un codice di qualità superiore con gruppi di servizi di qualità speciale; oggi ci sono scadenze in cui tempo e budget vincono sempre sulla qualità. Inoltre, questi sistemi sono stati originariamente sviluppati per periodi più lunghi rispetto all'equivalente ora.

Se alcuni software funzionano da oltre 30 anni, dov'è l'incentivo a passare? Intere compagnie fallirono perché ignorarono il vecchio adagio di "se non è rotto, non aggiustarlo". Molti hanno cercato di riscrivere la cosa ... poi la prima riscrittura costava molto, poi la seconda costava ancora di più ... e nessuna di quelle nuove e migliorate è riuscita a sostituirla. Come ho già detto, questo settore è in rapida ascesa e tende anche a dimenticare rapidamente.

Negli anni '70 COBOL era morto o moriva presto, il C / C ++ avrebbe governato. Poi di nuovo nei primi anni '80 Pascal stava subentrando. Poi negli anni '90 era Java come THE Language ...

Pensa a Unisys Mapper, dBase, Clipper, Cold fusion ... le persone ricordano anche quelle? Ognuno di loro sarebbe diventato il becchino per COBOL.

Tenendo conto di ciò, e del fatto che è ottimo per l'elaborazione di elevati volumi di transazioni, elaborazione batch o elaborazione orientata ai record / transazioni e che si può compilare (senza errori) una subroutine scritta 30 anni come codice COBOL gestito e chiamare da un COBOL.NET gestito dovremmo desiderare di andare su Windows e .NET, ho difficoltà a trovare un sostituto adatto per esso. (Ho anche problemi a trovare una tecnologia Microsoft che è durata più di un decennio.)

Sì, il nuovo codice COBOL è stato scritto oggi. Uno deve solo sapere dove cercare.

Per quelli che ridono di COBOL, IMHO, è come ridere delle piramidi egiziane, sono lì da 5000 anni e saranno ancora lì nei prossimi 5000 anni, mentre gli alloggi del "ciao mondo" di oggi che richiedono 24 controlli per funzionare saranno eliminati, sostituito, dimenticato il mese prossimo.

Allora, dove sono tutti quei programmatori COBOL?

Ah, perché qui sta il problema. Il fatto è che molti di loro non hanno alcun background scientifico scientifico. Molti di loro non sono programmatori professionisti (come nei laureati di un programma CS / SE). Per la maggior parte, sono persone alla fine degli anni '30 -'50, provenienti da tutte le aree di competenza, formate interamente dall'azienda appositamente per quel lavoro. Quindi non sono "programmatori COBOL" - la formazione che hanno è specifica per l'azienda che promuove così fortemente dall'interno. E questo li rende praticamente invisibili.


9
Avere una mentalità iPhone / desktop / Web 2.0 è un buon modo per dimenticare la vastità del mondo dell'informatica.
Paul Nathan,

8
Allora, dove sono tutti quei programmatori COBOL? Taxi di guida.
johnc,

1
@johnc - da dove l'hai preso? Il 70% dell'infrastruttura esistente funziona con COBOL e mancano i programmatori COBOL. Potrebbe essere stato difficile trovare un lavoro se solo conoscessi COBOL ai tempi delle dot-com (stiamo parlando da un decennio ormai). Ma ora??? Amico, COBOL sarà molto richiesto tra circa un decennio solo a causa della criticità di quei sistemi e della carenza di sviluppatori software che sanno (o sono abbastanza intelligenti da cogliere l'occasione) per lavorare con COBOL.
luis.espinal,

2
@ luis.espinal Sono completamente (e dolorosamente) consapevole dei problemi che stiamo affrontando con la mancanza di programmatori COBOL, tuttavia il mio commento è stato pronunciato, in qualche modo frivolosamente, lo ammetto per esperienza. In Australia, almeno, praticamente ogni tassista che ho incontrato, nell'ultimo decennio, che non era un immigrato recente (e forse alcuni che lo erano), è stato un ex programmatore di COBOL. Coincidenza, forse, e lo dico senza giudicare personalmente i tassisti, gli immigrati o gli sviluppatori COBOL. È semplicemente un'osservazione.
johnc,

2
@johnc - Non ho dubbi sulla tua parola, ma trovo estremamente difficile credere a quell'osservazione.
Rook,

16

Se riesci a vederti come programmatore COBOL, allora provaci. Ci sono ancora miliardi di righe scritte in COBOL che richiedono manutenzione.

In realtà, non esiste una conoscenza superflua, quindi amplia la conoscenza e le maggiori opportunità che avrai (avrai).


1
Dato che non esistono conoscenze superflue, nomina Intercal per la prossima lingua che impari!
Tikhon Jelvis,

@TikhonJelvis: troppo facile, fin troppo facile. Malbolge è ciò che stai cercando.
Magus,

15

COBOL

L'apprendimento ha senso?
Bene, è una nicchia e ci sono tonnellate di codice legacy funzionante che devono essere mantenute e non possono essere semplicemente riscritte. Quindi, sebbene non sia davvero un'opzione per le grandi masse di tutti i programmatori, è una prospettiva per un reddito costante per gli individui.

Tuttavia, se sei interessato a creare nuove soluzioni, piuttosto che migliorare lentamente quelle che esistono da decenni, COBOL probabilmente non è la lingua giusta.


8

Molte aziende europee fanno ancora molto affidamento sui mainframe che funzionano come i programmi z / vse e cobol. C'è una domanda per programmatori abili di cobol che nessuno pensa che il mercato si riempirà e che fa salire molto lo stipendio.

La domanda dovrebbe essere: "svilupperò mai qualcosa di nuovo usando cobol?" dato che praticamente tutto è manutenzione o variazioni di cose mission-critical esistenti.


5

Lavoravo per IBM dove ogni giorno venivano scritti i codici COBOL e PL / I. Anche da grandi aziende che si affidano ai mainframe IBM come molte banche che richiedono migliaia di transazioni al secondo, queste lingue sono ancora ampiamente utilizzate.

Se non vuoi lavorare in un posto come quello (ecco perché ho lavorato lì per 6 mesi), non pensare nemmeno di imparare quelle lingue.


Lavorare sulla spina dorsale dell'economia, gestire quel tipo di traffico, che sarebbe sicuramente visto da molti come una buona opportunità di ingegneria e business.
luis.espinal,

5

Scriviamo il nuovo codice Cobol ogni giorno e siamo costantemente alla ricerca di nuovi programmatori. L'offerta è troppo piccola da queste parti.


5
È davvero spaventoso ma interessante. Non ho mai incontrato un vero programmatore di cobol dal vivo (e non sono un pollo di primavera)
Tim

3
Perché spaventoso? Probabilmente non hai mai incontrato un programmatore Lisp ...

@Tim C'è un ragazzo di MicroFocus che scrive articoli su Code Project - tutto in COBOL ... per .NET! È davvero strano vedere COBOL aggiornato con tecnologie più moderne.
MetalMikester,

2
@Thorbjorn - Ero solito programmare in lisp e conoscere programmatori lisp. Forse sono solo ignorante e di parte, ma ciò che so di cobol non mi induce a pensare molto a fare PIÙ codice in quella lingua.
Tim

1
Lisp è utilizzato per progetti interessanti ed è un linguaggio interessante a sé stante. Lo stesso vale per C ++, Ruby on Rails, Smalltalk e Haskell. Cobol viene utilizzato per applicazioni aziendali noiose ed è interessante solo per le persone che devono creare compilatori e strumenti per esso. Fondamentalmente, i ragazzi fantastici non usano Cobol, e io sto usando "cool" così vagamente da includermi. Dovrai andare in posti diversi, come una business school, per trovare persone Cobol.
David Thornley,

4

Se vuoi avere un lavoro come programmatore COBOL, allora certo, vai avanti e imparalo.

Per qualsiasi altra ragione, come cercare di imparare qualcosa di utile che potrebbe aiutarti con le moderne tecniche di programmazione, no, non preoccuparti.


IMO, le moderne tecniche di programmazione hanno poco a che fare con i linguaggi di programmazione e più con la metodologia del software. Ci sono sviluppatori che non hanno visto altro che i linguaggi OO nella vita degli eredi, eppure non riescono a descrivere com'è un buon design OO. Buoni principi di programmazione e ingegneria del software trascendono i linguaggi di programmazione. Immagino che un giovane sviluppatore con discrete capacità abbia una migliore esperienza di apprendimento dell'ingegneria del software che affronta un lascito "procedurale" critico mancante rispetto a un altro strato di crosta procedurale scritto in Java (sono uno sviluppatore Java tra il.)
luis.espinal

3

Nel 2000 ho letto una statistica secondo cui c'erano più righe di COBOL scritte di tutte le altre lingue messe insieme.
Aggiungete a ciò l'IBM garantisce che qualsiasi deck TEXT (codice oggetto), compilato su qualsiasi sistema MVS è eseguibile su tutti i loro sistemi MVS e avete la garanzia che ci sarà una programmazione COBOL finché il sole splenderà.


6
Se pensi al fatto che COBOL sia prolisso, non c'è da meravigliarsi ;-).
Oliver Weiler,

3

Posso dirti come l'ho "imparato":
ero impiegato a lavorarci, non avevo idea di cosa si trattasse e non ho avuto difficoltà a impararlo durante la notte.

Quindi, se ne hai bisogno, puoi impararlo. Non c'è bisogno di sovraccaricarti di conoscenze inutili. Non c'è nulla di interessante in esso o nei suoi impegni se non ne hai davvero bisogno pratico.

La risposta generica: apprendi i principi di codifica, non le loro implementazioni specifiche (come le lingue, ecc.)


2

Non ci passerei tempo.
Ad ogni modo, COBOL è la base di molti programmi applicativi legacy che sono fondamentali per diverse grandi aziende avviate 20-30 anni fa.
Quindi, se sei assunto per un'azienda che ha parte del suo core business in COBOL, ci sono possibilità che tu debba iniziare a impararlo.


Piace? (15 caratteri)
TheLQ

@TheLQ Banche o compagnie di assicurazione avviate 20/30 anni fa hanno le loro basi software in COBOL.
systempuntoout

2

Imparalo se ti piace, dopo tutto, sapere come funzionano le cose (o una volta funzionavano) non può essere una brutta cosa.

Tuttavia, raccomanderei di non enfatizzare troppo le tue abilità COBOL nel tuo curriculum.

In alcuni posti (ad esempio, nella Silicon Valley dove vivo) avere COBOL nel tuo curriculum sarà una responsabilità. Oh certo, potresti trovare un posto qua e là che ha bisogno della tua esperienza, e in quel caso vai avanti e pubblicizzalo solo in quei luoghi . Ma in generale, fatti un favore e dimentica di dire che conosci COBOL.

Quindi sì, imparalo se sei curioso, non dirlo a nessuno.


1

Forse non vale la pena dal punto di vista del mercato del lavoro, ma potresti volerlo dare un'occhiata solo per avere un'idea di come sono state fatte le cose "ai bei tempi". ^^


L'unica volta (penso) in cui il mercato è stato negativo per COBOL è stata durante l'apocalisse dot-com con e-hype e tutto il resto.
luis.espinal,

1

Da un punto di vista personale direi che ci sono cose migliori da imparare prima. Tuttavia, molte grandi aziende hanno investimenti molto ingenti nella loro base di codice COBOL che probabilmente non saranno mai in grado di lasciarsi alle spalle, creando un settore per i programmatori COBOL per mantenere la base di codice e scrivere nuovo codice. La società per cui lavoro è una grande società finanziaria e la nostra divisione tecnologica per gli sviluppatori è di circa il 30% COBOL, 40% Java e 30% C #.


2
in grado, sì, ma perché - il codice di lavoro è un codice di lavoro.

0

Ho appena fatto una ricerca per "cobol" sul più grande sito web di lavoro in Australia. Ha restituito 87 risultati e (da una breve rassegna) sembrano principalmente posizioni di mantenimento legacy in banche e istituti finanziari. Per lo più decisamente meglio retribuito rispetto a lavori linguistici più "moderni", presumibilmente a causa della rarità dell'esperienza Cobol.

Quindi sì, sembra che Cobol varrebbe la pena di imparare se 1) non ti dispiace fare manutenzione legacy e 2) vuoi entrare in una nicchia che è ben pagata e probabilmente non molto competitiva poiché è qualcosa che poche persone stanno imparando più.

(Suppongo che il mercato Cobol sarebbe simile nella maggior parte delle economie del Primo Mondo, ma potrebbe essere sbagliato?)


Anche il settore bancario / assicurativo / PA si sta lentamente evolvendo verso tecnologie più moderne. Quindi ora entrare in questa nicchia può essere buono, ma cosa accadrà quando alla fine tutto il codice legacy e il suo mercato di nicchia scompariranno?
Wizard79,

@Lorenzo: Beh, questo si può dire di qualsiasi specialità nel nostro campo (anche in tutti i campi in generale). Re-training. per esempio. I conducenti di locomotive a vapore hanno dovuto riqualificarsi e diventare conducenti di locomotive diesel o elettriche, ecc. Ecc. :)
Tabelle Bobby

Ma COBOL è già una nicchia ... l'idea è che, se si abbraccia COBOL ora, probabilmente sarà necessario riqualificarsi prima di altre tecnologie.
Wizard79,

1
@Lorenzo - No, non proprio. Il fatto che non siano mainstream in cs univ.'s non li rende automaticamente di nicchia. Significa solo che non ti muovi nei circoli in cui li incontri. Quanti lavoratori che lavorano nella produzione di linee automobilistiche conosci? Architetti navali? Piloti aerei? Pensi che siano anche di nicchia? (e inoltre, per entrambe queste categorie di esempio avrai problemi a trovare annunci di lavoro). Bisogna sapere dove cercare.
Rook,

1
@Lorenzo - credi davvero che tutto il codice COBOL e FORTRAN e la base di conoscenza alla fine verranno riscritti? Voglio dire, sul serio. Non ho mai incontrato nessuno nel settore e nel mondo accademico che crede che una cosa del genere sia possibile, tanto meno desiderabile . Brutto come sembra COBOL (una reazione soggettiva), quei sistemi funzionano bene, molto meglio della cazzata elettronica che abbiamo costruito dai tempi delle dot-com. Questo è un testamento di qualità industriale. E 'meglio ingegneria ed economia per mantenere quei sistemi in contrapposizione a riscriverle (supponendo che il rischio zero e le risorse economiche infinite.)
luis.espinal

0

Pensa ai tipi di domini problematici in cui vuoi lavorare. In genere quei domini hanno un set di lingue che vengono generalmente utilizzate per lo scopo. Se COBOL corrisponde a quello, vai avanti.

Non è possibile che io tocchi né cobol né i domini problematici che lo usano pesantemente con un palo da 10 piedi. Preferirei capovolgere gli hamburger.

Considera anche se il linguaggio offre qualche bonus / miglioramento alla tua abilità / concetti di programmazione. Non riesco a pensare a niente che COBOL possa fare / implementare / funzionalità che non è fatto meglio o che può essere dimostrato meglio in un'altra lingua.

Tu e gli altri potreste sentirvi diversamente.


0

Ci sono ancora molti sistemi legacy là fuori scritti in COBOL. Sia che tu voglia mantenerli o portarli su altri linguaggi di programmazione, vale comunque la pena imparare COBOL.

Qualunque cosa sia, una certa conoscenza in più linguaggi di programmazione sarà un vantaggio perché la conoscenza che hai ti consente di scegliere un linguaggio di programmazione o un approccio per le diverse esigenze del progetto. Puoi usare le tue conoscenze nei linguaggi di programmazione per costruire codici migliori, più puliti ed efficienti ed evitare insidie.


Nel periodo 2004-2005, ho partecipato a un progetto di ammodernamento della Marina nel mio paese che portava circa 200KSLOC di Ada83 ad Ada95 e circa 25KSLOC di COBOL68 e COBOL74 ad Ada95. Ho imparato COBOL nel 1987 e vale sicuramente la pena il tempo e gli sforzi per imparare COBOL. Non riuscivo a immaginare se non avessi avuto conoscenza preliminare di COBOL.
Adrian Hoe,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.