2009-02-11 10 views
10

Come la maggior parte delle persone, ho imparato C++ dopo C. Ho imparato il C++ perché era una di quelle lingue che recuperava i lavori. Sto ancora studiando (facendo maestri) però. Uno dei miei cugini ha lavorato come sviluppatore per circa 12 anni.Quale settore dell'industria del software usa C++?

Mi consiglia di imparare Java in modo che possa fare un buon lavoro. Dice che solo pochi settori come le telecomunicazioni usano C++ e quasi tutto il software aziendale è sviluppato in Java. Sto lavorando come tecnico studente nella mia università. Il lavoro coinvolge la programmazione Windows in C++. Ho imparato il nucleo di Java. Non conosco nessuno di quelli Struts, Hibernate o qualsiasi cosa ci sia fuori.

Per essere sul lato più sicuro, ho intenzione di padroneggiare entrambi. Ma penso che Java sia un oceano, anche se è più semplice programmare in Java che in C++ (questa è la mia opinione: gli amanti del C++ non mi uccidono).

Cosa mi consigliate di geek e professionisti. Pensi che dovrei imparare entrambi. Quali settori dell'industria del software usano C++?

risposta

55

Il miglior consiglio che io abbia mai ricevuto da studente è stato dal mio professore di lingue, che mi ha detto (parafrasando qui): "Non memorizzare le lingue, non sposarti con una lingua, sono solo strumenti. fai le stesse cose di base: invece di imparare una lingua specifica, impara le basi di un buon sviluppo del software, quindi sarai in grado di prendere qualsiasi lingua e avere successo con esso. "

Temevo di imparare nuove lingue prima che me lo dicesse. Afterwords, ho preso a cuore il suo consiglio e ha fatto tutta la differenza. Le lingue sono solo strumenti nella tua casella degli strumenti. Se puoi programmare e scrivere un buon software in una lingua, puoi farlo in un altro.

+1

Certo che sono strumenti, ma arrivano con toolbox (librerie standard) e ci vuole del tempo per trovare il miglior martello per il problema dato. – Anonymous

+2

In senso purista, sono d'accordo. Tuttavia, quando la scadenza incombe e non si conosce la stranezza quriky di un dato ambiente (librerie, sistema operativo, driver, provider, ecc.) La teoria esce dalla finestra e si devono conoscere i dettagli dell'implementazione. –

+0

I programmatori in genere non sono persone intelligenti? Tendiamo a capire queste cose. E sì, ho dovuto farlo con una scadenza ravvicinata su una lingua che non avevo mai toccato prima. Sono sicuro che ci sono linee di codice in quel progetto che scriverei diversamente ora, ma ha avuto successo, ed è quello che conta. –

9

I videogiochi utilizzano ancora il C++. Un esempio che viene in mente è il motore Torque che può essere utilizzato per lo sviluppo di giochi iphone e xbox.

3

Parole chiave: Banking (istituzioni finanziarie), giochi

Oh, e anche fisici delle particelle e altri scienziati che utilizzano il famoso quadro (in) ROOT.

E controllare this list di applicazioni basate su C++.

+1

Nella mia esperienza, le cose bancarie e finanziarie non sono quasi mai C++. Se è recente, è Java; in caso contrario, COBOL. –

+0

Jobsearch usando le parole chiave C++ e banking/finance sembrano dire qualcosa di diverso. – Anonymous

16

C++ non è nemmeno vicino alla morte.

La mia esperienza:

Bloomberg, Reuters, e tutti i loro clienti di banca/commerciali che vogliono dati a bassa latenza di mercato alimenta uso C++. (Fidelity, JPMorgan, BNP, Citibank, ecc.)

L'industria della difesa utilizza C++. (tra le altre lingue - anche Java è popolare)

Questi settori utilizzano anche java e altri linguaggi, ma il C++ è difficile da battere. Si noti inoltre che esiste una base di codice C++ esistente ENORME che impiegherà molto tempo ad andare via (se mai)

Non è difficile conoscerli e usarli entrambi. Non preoccuparti troppo di una lingua particolare. Questo non è il vero nodo di sviluppo del software.

+0

Un sacco di controlli/sistemi integrati e PLC usano anche C++. – Syntax

+0

Un sacco di industria della difesa utilizza Ada e C++ – paxos1977

19

C++ è ancora ampiamente utilizzato per attività ad alte prestazioni. Ad esempio, faccio molto lavoro con la compressione e la decompressione video - è tutto in C++. In parte perché abbiamo bisogno delle prestazioni e in parte perché tutte le librerie di terze parti che devono essere utilizzate sono C++, quindi è più facile integrarle con loro se utilizziamo la stessa lingua.

5

Molti appaltatori della difesa, in particolare quando si tratta di hardware, utilizzare C++

Molti produttori di attrezzature mediche avanzate (ad esempio, la risonanza magnetica) usa C++.

Dico imparare sia se potete. È bello avere il fondamento C++ anche se si finisce in un linguaggio sandbox come C++/C#. Troppe persone non capiscono le basi.

Si noti che città diverse hanno la maggior parte dei lavori in una lingua specifica. Vai alle bacheche della craigslist per la città in cui pensi di finire e vedere ciò che cercano. Ad esempio, Pittsburgh è una città C# mentre New York è più equilibrata.

19

un breve elenco di progetti che utilizzano C++ off-the-top-of-my-head:

  • sviluppo di driver di dispositivo
  • Giochi
  • motori avanzati (audio, l'elaborazione delle immagini, ecc)
  • Telecom
  • software incorporato (dispositivi e simili)
+2

Embedded è meno comune col passare del tempo? Non proprio: il numero di dispositivi embedded aumenterà solo di più. –

+0

Non il numero di dispositivi incorporati, l'uso di C++ su di essi. Mi sembra che le lingue di livello superiore stiano diventando più comuni sui sistemi embedded. –

+3

In molti sistemi embedded, il C++ sarebbe considerato piuttosto il "linguaggio di alto livello" (la progressione usuale è assembly-C-C++). Non sono sicuro di come i linguaggi comuni "superiori" a C++ siano nei sistemi embedded. Vedo e lavoro a dozzine ogni anno, C/C++ domina ancora (forse tanto assemblaggio quanto C++, BTW) – Dan

2

La tua università non ha avuto corsi basati su Java? È strano!!

Si dovrebbe imparare non solo C++ e Java, ma dovrebbero essere esposti a diversi linguaggi e paradigmi

11

qualche sito che si fa chiamare Google calcola che usa C++ ampiamente. Grazie a Dio non hanno bisogno di prestazioni per indicizzare i pochi siti web là fuori.

Se questa cosa Interweb decolla, saranno comunque nei guai. (-:?

Seriamente, però, a parte l'attuale cambio di canale (reversione) a C e Perl, i precedenti quattro progetti erano tutti C++

  1. un sistema di controllo di partenza larga scala per molti dei. le maggiori compagnie aeree del mondo (30.000 10MB file di log al giorno)
  2. un simulatore di addestramento al volo e software basati a terra piattaforma di prova per un nuovo aereo militare
  3. un quadro larga scala per un simulatore di controllo del traffico aereo esistente che è stato utilizzato per incorporare il nuova rete di telecomunicazioni aeronautica (ATN)
  4. un sistema di elaborazione radar e visualizzazione avanzata per un traffico aereo centro di controllo sulla rotta

tutti davvero interesing.

+0

Mi chiedo come sarebbe stato Internet senza Google !! – hasen

+0

Se non fosse google, qualcun altro sarebbe stato il loro in un altro nome di fantasia! (jibjaw, jiggle, nibble ... qualsiasi cosa pazza) – AKN

1

Java è ottimo fino a quando non devi iniziare a preoccuparti dei dettagli che astrae. La maggior parte delle persone non ha bisogno di farlo.

0

Il C++ è ampiamente utilizzato nei sistemi embedded. Viene utilizzato nello sviluppo dell'interfaccia utente. Per es. il famoso framework QT è scritto in C++.

In definitiva dipende da cosa si vuole fare. Se vuoi lavorare in sistemi embedded, impara meglio C/C++.

5

C++ è ancora ampiamente utilizzato nelle applicazioni di ingegneria, come i sistemi CAD/CAM di fascia alta.

Penso che la morte del codice nativo sia molto esagerata. Persino Microsoft ha rinunciato a fare di C++ tutto su .NET in Visual Studio 2008. Sembra che stia di nuovo migliorando attivamente i suoi strumenti di sviluppo nativi C++ e rendendo più facile l'interoperabilità con il mondo gestito.

+0

Per essere onesti, penso che Microsoft volesse solo un concorrente di Java. :) –

1

Il mio consiglio è di padroneggiare la lingua che più ti piace. Conosco bene C++ e Java e li ho usati entrambi professionalmente. Tuttavia, non accetterei mai un altro lavoro in C++ perché trovo il C++ noioso e inquietante. Preferisco investire il mio tempo nella padronanza di lingue più interessanti.

2

Sono tendenzialmente d'accordo con tuo cugino. Java è sicuramente usato in più applicazioni aziendali (si pensi alle cose di cui una banca o una compagnia assicurativa avrebbero bisogno), mentre il C++ è usato in mercati più "di nicchia". Sono anche d'accordo con te sul fatto che Java sia più facile da apprendere e padroneggiare del C++. Nessuna vergogna o offesa nell'ammetterlo.

Usiamo entrambi dove lavoro, scrivendo software incorporato in C++, ma comunico con esso da app GUI scritte in Java. C'è sicuramente molto spazio nell'industria del software per entrambe (e molte altre) lingue.

+0

+1 per "Nessuna vergogna o offesa nell'ammetterlo." – AKN

0

Uso regolarmente C e C++ nel mio lavoro, dove lavoro su dispositivi embedded. Non stiamo parlando di cose di livello molto basso, anche qui. Io lavoro a metà livello e l'interfaccia utente. Pensa Qt, Gtk +, Windows Mobile SDK, ecc.

1

Scrivo in C++ principalmente per applicazioni desktop interne ed esterne all'interno di aziende manifatturiere e di telecomunicazioni per molto tempo, e ho lavorato a tempo pieno con Java per circa 1 anno su 16.

Java non è mai sembrato prendere il controllo del desktop come si prevedeva già a metà degli anni '90 quando era uscito, e ora il C++ sembra avere più concorrenza da .net e AJAX/applicazioni web.

Non posso davvero parlare per il suo utilizzo nei sistemi back-end, ma ho visto più cose lì che ho visto C++, quindi dipende dal tipo di programmazione di cui si sta parlando (es. . sistemi interni).

0

Il C++ è molto utilizzato dagli ISV. Pensa a Microsoft, Adobe, Oracle, Sun, Symantec ...

6

C++ non è affatto vicino a essere morto e, come suggerito da altri, non si sposa con una lingua. Se stai imparando C++ in termini di prospettive di lavoro, preferirei suggerire di prendere in mano un rappresentante di un paradigma di programmazione.

  • C - programmazione imperativa
  • C++/Java/Obj-C - OOP
  • Lisp/Haskell/Scheme - programmazione funzionale

ad abituarvi ai paradigmi di solito è più difficile di raccogliere la lingua stessa. Spero che gli altri intervengano per altri suggerimenti.

5

Il mio consiglio, impara C#. In questi giorni quasi il 50% delle inserzioni di lavoro erano Java e quasi l'altro 50% erano C#, c'erano solo pochi elenchi in C++.

Detto questo, le persone che usano C++ sanno perché lo stanno usando e probabilmente hanno buoni casi d'uso per questo ...il che significa che impareresti davvero come usare la lingua ai massimi livelli ... nel frattempo le aziende che scaricano applicazioni di business logic in Java/C# probabilmente non ti insegneranno tanto sulla programmazione quanto velocemente.

Se si decide di eseguire un lavoro in C++, assicurarsi che il negozio utilizzi l'STL in modo efficace e che utilizzi Boost. Non guardare usando Boost/STL, ma effettivamente usandolo.

+1

... o Qt. C++ da solo, anche con STL è solo per il programmatore masochista Boost o qt può aumentare la produttività in C++ molte volte rispetto allo STL nudo. – mhd

2

La maggior parte del software pacchettizzato è ancora scritta in C++. Ciò significa giochi, applicazioni per ufficio, grafica e video editor e sistemi operativi. Infatti, se pensi al software che usi ogni giorno che non è online, è probabile che sia scritto in C++ (o C o oggettivo-C). Non è scritto in Java, Python, Ruby, Perl, ecc. Mentre il software pacchettizzato sta diventando meno diffuso, è ancora usato molto e non sta andando via in qualunque momento presto.

I sistemi operativi, sia integrati che desktop, sono scritti quasi esclusivamente in un linguaggio C. Sono stati fatti tentativi per scriverli in Java o C#, ma nessuno di questi ha funzionato. Tutti i driver sono scritti anche in una variante C. Non vedo che questo cambierà presto.

0

Ho dovuto scorrere fino in fondo per vedere finalmente un post che menzionava i videogiochi. C e C++ sono enormi in quell'industria.

Per quanto riguarda la domanda "Cosa dovrei imparare". È piuttosto aperto, vuoi imparare il più possibile. Quindi sì, dovresti imparare entrambi. Come poche persone hanno detto, C# è una buona scelta. Dovresti anche imparare Python, Ruby o PHP e alcuni framework web (Rails, Symfony, Django, ASP.Net). Le app Web sono piuttosto grandi in questi giorni.

Se la tua bolla è costituita solo da C++, non sarai molto vendibile.

MODIFICA: Oops, immagino che i giochi siano stati menzionati molto più di quello che ho visto inizialmente qui. Colpa mia.

0

L'industria dei giochi sembra andare con C++ per sempre.

1

Bene, suggerisco di imparare più di un paio di lingue. Io lavoro nel settore delle comunicazioni e sì, usiamo il C++, tuttavia molti progetti su cui stiamo lavorando sono anche in Java.

vi consiglio di imparare:

1) C++/C 2) Java 3) Erlang o Haskel 4) Rubino

Questo vi aiuterà a capire i concetti che esistono in una lingua, ma non in un altro. Aiuta anche con la commerciabilità.

Dai uno sguardo allo tiobe programming index e avrai un'idea delle lingue in aumento.

0

Nella mia carriera ho sviluppato C++ per:

  • applicazioni server (settore dei valori mobiliari)
  • software embedded (telecomunicazioni senza fili)
  • software applicativo Desktop (telecomunicazioni senza fili)

Ho visto anche molte pubblicità per sviluppatori C++ nel settore della difesa. C'è del lavoro là fuori per gli sviluppatori C++, non tanto come è stato in passato, ma ancora molto lavoro.

Anche se dico che non sarebbe male imparare Java, è una buona abilità avere sotto la cintura.