Értsd már meg, nem halmazelméleti szempontból akarunk halmazokat meghatározni a felsorolt tulajdonságokból.
A C++ által használt C syntaktika gyakorlatilag és célszerűen egy C 2.0, ami néhány bővítésében kényelmesebb, típusbiztosabb, míg néhány újabban bevezetett megkötést tartalmaz, amelyek mind a hibák könnyebb elkerülésére szolgálnak.
Vagyis mégha régi C kódot fordítana valaki, annak is azt javaslom, hogy nevezze át a .C-t .CPP-ra és higgyen benne, hogy jobban jár, ha a kidobott pár figyelmeztetést/hibát korrigálja.
Ha van egy legacy C kód (legyen ANSI C), abban könnyen lehetnek olyan feature-ök, amelyeket a C++ fordító nem nyel be. Például automatikus int, ?:-ban idézőjeles konstansok, automatikus castolás void*-ról. Az persze igaz, hogy egy szabványos C kód jó eséllyel szabványos C++ is, de szerintem nem kukacoskodás, ha azt mondom, hogy ettől még nem részhalmaza a C a C++-nak. Azért linkeltem Stroustoup oldalát, mert ez egy elég sokat ismételgetett tévhit. Mint hogy a java referencia szerint adja át a paramétereket
Még ennek van leginkább értelme. Én már vagy 30 éve használok C-t (majd C++ -t) és technikailag nem kívánok különbséget tenni. Tudom "tudományosan" egyértelműen megkülönböztethető, de praktikusan nincs értelme.
Mondjuk vagy 10 éve nem is használtam C fordítót, csak C++ létezik. [pl. for (int i=1; ...) miatt]
Még a C programjaim is C++ programok, csak class-ok nélkül.
Néhány nagyon alacsony szintü eszközön kívül (itt a divergencia) a C-t elnyelte a C++, mégha pl. a NULL definíciója más is, de az értelme és használata azonos.
Mondjuk valóság, hogy google-s C# keresés C-t hoz vissza. Külön "C#" aposztrófos keresést kell indítani; személyesen sok tucat C-re keresést generáltam már C# helyett
Erről beszélek. Így lesz szerintem a C és nem a C# a legnépszerűbb.
Sokan sokmindent elmondtak a részaránnyal kapcsolatban, de szerintem igenis egybe kellene vonni a C/C++ -t.
Természetesen a C szempontjából a C++ egy másik nyelv, de C+ felől nézve egy részhalmaz, amit igencsak intenzíven használ egy C++ programozó
Mondjuk nekem is vannak olyan C programjaim, amik technikailag C programok (merthogy egyszerűség, hatékonyság miatt elegendő az eszközkészlet), másrészt C++ a project a nyelvi bővítések miatt és kényelmi okokból.
Mondjuk valóság, hogy google-s C# keresés C-t hoz vissza. Külön "C#" aposztrófos keresést kell indítani; személyesen sok tucat C-re keresést generáltam már C# helyett
Másrészt egy C# vagy Delphi esetleg néha PHP vagy Java fejlesztő is sokszor keres C-re (C-be beszámító kulcsszavakra), mint pl WinAPI-ra.
Ne feledjük, hogy a mai napig a C/C++ kódbázis és API a legnagyobb számosságú!
Valószínűleg ez egy fontos mérce az osztályozásban. A felhalmozott kódok csak évtizedek alatt kopnak ki, addig léteznek, használtak, figyelembe kell venni őket.
Ne feledjük, hogy az oktatásban ma is nagyon erős belépő, oktatási nyelv a C és még a C++ is (habár a java/C# ezt erodálja már). Ez is nagyon sok "felhasználót" hoz.
Szóval én elhiszenm a párosan használt C/C++ elsőbbségét.
Valószínűleg minden beágyazottsága ellenére az újjonan indított projectek illetve az újjonan leírt kódsorok számában nincs elsőbbsége, de az sem elhanyagolható rész szerintem (még a Java/C# is gyakran C alapokra épít, és friss(!) C kódokat is igényel)
nem arról van szó, hogy hülyék-e, hanem arról, hogy csak keresések (keresők adatai) alapján kialakított kép nem feltétlenül lesz reális (bár esetleg lehet az). Elolvastam a linket, de a fenti két felvetésemmel pl. biztosan nem foglalkoznak.
C-hez szerintem érdemes hozzávenni, hogy beágyazott rendszereknél szinte egyeduralkodó, legalábbis az említett nyelvek közül egyedül a C++ fordul elő kismértékben ezen a területen. Márpedig manapság a beágyazott rendszerek is elég nagy területet ölel fel...
Az, hogy a weben miről mennyit írnak, valóban nem releváns. A tényleges súlyához képest arról írnak többet, amivel több a probléma.
Az sem igazán mérvadó (bár reálisabb), hogy az álláshirdetésekben melyik hányszor fordul elő, mert egyrészt oda beírnak mindenfélét, amivel aztán később nem is foglalkozik az ember, másrészt ez a fluktuációval is összefügg. Ha mondjuk a FORTRTAN projektek hosszabbak, mint a Ruby-sok, akkor ugyanannyi munka mellett több lesz a Ruby-s álláshirdetés.
Az igazán pontos mérés az lenne, hogy ha felkérnék a az összes (akár részidőben, akkor hobbiként) programozót, hogy írják be minden egyes nyelvhez, hogy heti átlagban hány órát programoznak benne. Így pl. aki napi 9 órában COBOL/DB2 alkalmazást fejleszt a bankban, és néha otthon egy kis Javascriptet, az mondjuk beírná, hogy 25 óra COBOL, 20 óra SQL, 2 óra javascript.
Esetleg rendezhetnénk egy ilyen felmérést a prog.hu felhasználók között, bár az sem biztos, hogy reprezentatív lenne. (mindenesetre reprezentatívabb, mintha valami Java portál olvasói szavaznának :))
Igen, a TIOBE-re gondoltam, a cikkhez nyitottam a témát. Én keresletet venném figyelembe, ebbe valamilyen szinten mindkettő beletartozik, mivel keresnek kifejezetten meglévő kódbázis karbantartására is embert.
Nem nagyon néztem meg, hogyan készítették a listát, de...
Az hagyján, hogy kétlem, hogy a C ilyen népszerű lenne.
Másrészt van egy komoly kérdés is: miben számoljuk?
Egy-egy az állás, ha a sarki pizzás weblapját helyezzük szembe egy banki projecttel? Mert a pizzás oldalát azontúl, hogy pistike is összedobhatja, ha állás/projecthirdetéseket vettek is figyelembe (volna), akkor is egy, max. 2 webfejlesztő 1, nagyon "rossz" esetben 2 hónap alatt egy designerrel karöltve megcsinálja, mindegy most milyen nyelven, míg egy banki projecten 10-20 ember amolyan minimum sokszor (remélem egyetértetek), és a project összetettsége és egyéb okok miatt jóval tovább eltart. Ja... és feltehetőleg sokkal többen is használják majd a bankit, akár intranetes belső fejlesztés, akár a nagyközönségnek készül, honlapként.
Nekem van egy olyan érzésem, hogy a C az előnyét annak köszönheti, hogy a C# nevében speciális karakter van, amit nem biztos, hogy sikerül jól begyűjteni. Így lesz a C#-ból C.
Ami meg a VB fikázást illeti: 2010-et írunk. Mára már LC is kénytelen elismerni, hogy csak a szintaktika miatt nem tetszik neki és koránt sem primitív a nyelv.
szerk:
Szerintem itt egy használható statisztika, ami a nyitott megrendelésekre alapul:
C#: 151
Java: 121
C/C++: 110
ASP.NET: 104
VB.NET: 95
Persze sokszor a megrendelő sem tudja, hogy mit akar, de ez a hiba a mérleg mindkét oldalán megvan. (Illetve átfedések is vannak.)
Te mit vennel figyelembe a nepszeruseg megallapitasakor? Az uj projekteknel hasznalt nyelvet, vagy az uj (<6 honapja irt) es/vagy karbantartott kodsorok szamat..?
Szerintetek mennyire pontos ez a mérés? Nekem az a véleményem, hogy rossz elven történik a mintavétel.
Több okból. Attól, hogy valamiről sokat beszélnek, még nem biztos, hogy sokat használják. Lásd Factor, Scala, Haskell, Ocaml kedvelt témák külföldi fórumokon, mégsem használják őket túl sokan hobbi -és egyetemi környezeteken kívül.
Másfelől, ha C#-ban fejlesztek, ami meglátásom szerint ma az egyik legnépszerűbb nyelv (legalábbis biztosan előrébb áll, mint a hatodik hely), és problémám van, akkor nem biztos, hogy a google-ben arra keresek rá, hogy "c# akármibajomvan", hanem sokkal inkább arra, hogy ".NET akármibajomvan", mert így nagyobb a merítés. Ezzel a kulcsszavas mérésből egy rakás keresés kiesik.
Ami egy sokkal értelmesebb statisztika lenne (és szintén lehetne nagyjából automatizálni), ha a meghirdetett állásokban szereplő nyelveket számolnák. Ez tényleg azt mutatná, hogy mire van kereslet. (pl. nem is tudom, mikor láttam C-s álláshirdetést, szerintem soha).
(nyilván nagyon sok állás nem hirdetés útján "kel el", de még így is pontosabb képet mutatna).
A másik kérdésem, hogy szerintetek mi lenne a top10, mondjuk csak hazai viszonylatban? Én ilyen sorrendet állítanék fel:
1. Java
2. C# (+ASP.NET )
3. PHP
4. Visual Basic .NET
5. JavaScript
6. Flash (most vegyük egybe az ActionScript verziókat, elég vegyes a kereslet)
7. C++
8. Delphi
9. Objective-C
10. Python
(nem "szeretem" lista, hanem a munkáltatók által keresett nyelvek rangsora).