» »

Priljubljenost C-ja na petnajstletnem dnu

Priljubljenost C-ja na petnajstletnem dnu

Slo-Tech - Računalniških programskih jezikov je kot listja in trave, a velika večina programske opreme je napisana v enem izmed najpopularnejših jezikov, medtem ko ima preostanek precej nišno uporabo. Na strani Tiobe, kjer že od leta 2001 pripravljajo enega najpopularnejših seznamov priljubljenosti programskih jezikov, ugotavljajo, da je avgusta stari dobri C padel na 11,3 odstotka, kar je najmanj, odkar stran obratuje.

Ob tem je seveda treba poudariti, da je C kljub temu še vedno na drugem mestu. Prehiteva ga le Java (19,0 odstotka), za njim pa se razvrstijo C++ (5,8), C# (4,9) in Python (4,4). Deseterico zaključujejo PHP, JavaScript, Visual Basic .NET, Perl in seveda zbirnik. Tiobe ne meri, v katerem jeziku je napisane največ programske opreme niti kateri jezik je najboljši. Kot pojasnjujejo na Nizozemskem, kjer seznam pripravljajo, gre za indeksne vrednosti, ki se izračunajo iz pregleda vsebine na Googlu (rezultati iskanja), Google Blogs, MSN-ju, Yahooju, Baiduju, Wikipediji in YouTubu. Zaradi tega je bil Tiobe sicer deležen že nekaterih kritik, a vseeno mu smemo vsaj kvalitativno verjeti, da sta Java in C absolutna prvaka.

31 komentarjev

kamikaze5 ::

Lestvica je v skladu z mojimi pričakovanji. Osebno mi je Java dosti bolj user friendly od C/C++, pa zelo dobro poznam in uporabljam vse troje, vsako na svojem področju.

3p ::

Iz grafov popularnosti posameznih jezikov je precej očitno, da nihanja niso povezana le s popularnostjo le teh. Tako je menda assembler opazno pridobil na popularnosti.
Da izgublja C me ne čudi toliko kot to, da izgublja tudi C++, glede na to, da se končno celo GNUjevi projetki (gcc, gdb) "prevajajo" v C++, in da razvijalci za "naprave" po večini vseeno niso skočili s C-ja naravnost na Groovy.
Sicer pa smo programerji postali pravi konzumenti jezikov, ki ostanejo popularni (in "najboljši") približno tako dolgo kot novi special edition burger pri McDonaldsu.

Še vprašanje za znalce. Glede na to, da je Objective-C strmoglavil, in da ga vsaj po popularnosti ni zamenjal Swift, v čem se torej zdaj pišejo aplikacije za iTelefone?

Invictus ::

Saj v članku piše, da ne štejejo vrstic kode, ampak objave na netu.

In da to merilo ni objektivno.

Za Apple se še vedno dela vse v Objective C, saj druge izbire nimaš.
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

phantom ::

3p je izjavil:


Še vprašanje za znalce. Glede na to, da je Objective-C strmoglavil, in da ga vsaj po popularnosti ni zamenjal Swift, v čem se torej zdaj pišejo aplikacije za iTelefone?

C# (Xamarin)
~
~
:wq

3p ::

phantom je izjavil:

C# (Xamarin)


Na to sem tudi sam pomislil. Ampak tudi priljubljenost C# baje upada.

Qushaak ::

Možno, samo .NET se je konec junija odprl (prva končna verzija) kot .NET Core.
Prav tako je med drugim dobil C# odprtokoden prevajalnik Roslyn. Morda ne bo nikoli tako popularen kot Java, samo s tem zadnjim korakom je pa odpravil še "licenčninsko" oviro in če se danes gre delat kak software iz nule oz precej prenoviti zame ni več vprašanje v katerem okolju bom programiral.

Sem pa presenečen, da C++ (moderni) tako brutalno upada.

7982884e ::


Še vprašanje za znalce. Glede na to, da je Objective-C strmoglavil, in da ga vsaj po popularnosti ni zamenjal Swift, v čem se torej zdaj pišejo aplikacije za iTelefone?

v swiftu.
C# (Xamarin)
kje ze?

Lonsarg ::

C#(Xamarin) se je zaradi svoje cene uporabljal zgolj v aplikacijah, ki malo več stanejo/prinašajo denarja, ker drugače težko upraviči ceno, torej ni šlo za masovno uporabo, je bil pa pogosta izbira v top aplikacijah, sploh novejših, ki so razvoj začeli v zadnjih letih. Po novem pa je vključen v ceno Visual Studio, to pomeni da je za hobi projekte zastonj.

Sicer pa tale graf z indeksi pomeni po domače graf koliko se po internetu piše o jeziku, to je komot tudi za cel faktor 2 drugače kot dejanska uporaba, ki pa jo je malo težko meriti. Closed source razvoj je recimo dosti manj viden na internetu kot open source, tako da visoka pozicija Jave na grafu je najbrž predvsem zaradi tega, ampak dobro za orientacijo je.

Od vseh jezikov na grafu pa je najbolj očiten upad PHPja.

Invictus ::

Kar se enterprise aplikacij tiče, je to že nekaj let Java. Ker ponavadi aplikacija dela na Java Aplication serverju...

Ostali skriptni jeziki iz open source sploh ne pridejo zraven.

Embedded se še vedno dela v C. Redko C++, čeprav mi kolegi pravijo da so prevajalniki zdaj precej boljši kar se tiče porabe pomnilnika.

Samo teh zadev se ne vidi...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

7982884e ::

Lonsarg je izjavil:

C#(Xamarin) se je zaradi svoje cene uporabljal zgolj v aplikacijah, ki malo več stanejo/prinašajo denarja, ker drugače težko upraviči ceno, torej ni šlo za masovno uporabo, je bil pa pogosta izbira v top aplikacijah, sploh novejših, ki so razvoj začeli v zadnjih letih. Po novem pa je vključen v ceno Visual Studio, to pomeni da je za hobi projekte zastonj.

pa potrebno je omeniti tudi to, da glede na to, kako zaprt za nove stvari je povprecen iOS developer, da mu je se na jeben swift tezko presaltat - ceprav je presaltanje trivialno - bo prej pekel zmrznil, kot pa bo nekdo tak sel na Xamarin.

GTAjevc ::

47 VHDL 0.197%

:D

BigWhale ::

Invictus je izjavil:

Kar se enterprise aplikacij tiče, je to že nekaj let Java. Ker ponavadi aplikacija dela na Java Aplication serverju...

Ostali skriptni jeziki iz open source sploh ne pridejo zraven.


To je po mojem isti 'problem' kot Lotus Notes. :>

dotomaz ::

7982884e je izjavil:

Lonsarg je izjavil:

C#(Xamarin) se je zaradi svoje cene uporabljal zgolj v aplikacijah, ki malo več stanejo/prinašajo denarja, ker drugače težko upraviči ceno, torej ni šlo za masovno uporabo, je bil pa pogosta izbira v top aplikacijah, sploh novejših, ki so razvoj začeli v zadnjih letih. Po novem pa je vključen v ceno Visual Studio, to pomeni da je za hobi projekte zastonj.

pa potrebno je omeniti tudi to, da glede na to, kako zaprt za nove stvari je povprecen iOS developer, da mu je se na jeben swift tezko presaltat - ceprav je presaltanje trivialno - bo prej pekel zmrznil, kot pa bo nekdo tak sel na Xamarin.


Problem swifta je v tem, da je še zelo mlad jezik. Kar pomeni, da niti sintaksa še ni stabilna. Do sedaj so čisto z vsako verzijo naredili velike spremembe. Swift 1 koda se ne prevede na swift 2 kompajlerju in swift 2 ne na swift 3 kompajlerju. Sicer xcode zna sam migrirati kodo. Samo je scarry, če imaš par deset tisoč vrstic kode.

Invictus ::

7982884e je izjavil:


pa potrebno je omeniti tudi to, da glede na to, kako zaprt za nove stvari je povprecen iOS developer, da mu je se na jeben swift tezko presaltat - ceprav je presaltanje trivialno - bo prej pekel zmrznil, kot pa bo nekdo tak sel na Xamarin.

Zakaj pa bi moral iti na Swift?!?!?!?!?!
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

7982884e ::


Problem swifta je v tem, da je še zelo mlad jezik. Kar pomeni, da niti sintaksa še ni stabilna. Do sedaj so čisto z vsako verzijo naredili velike spremembe. Swift 1 koda se ne prevede na swift 2 kompajlerju in swift 2 ne na swift 3 kompajlerju. Sicer xcode zna sam migrirati kodo. Samo je scarry, če imaš par deset tisoč vrstic kode.
niti pod razno ni to spet tak ogromen problem. migracija iz ene vecje verzije na drugo nekomu, ki obvlada, za par deset tisoc vrstic ne vzame dosti, sploh pa te IDE ze precej prej opozarja na to, kaj je deprecated, zato je nekako pricakovano, da bos tekom developmenta sam popravljal rumeno podcrtano.

Zakaj pa bi moral iti na Swift?!?!?!?!?!
berljivostj kode? maintainability? manj kode za isto stvar, vecja ekspresivnost? da v letu 2016 ne pises vec front-end kode v mutirani verziji arhaicnega jezika kot je C?

razlog je isti kot je razlog, da ljudje na androidu saltajo iz jave na kotlin.

rolihandrej ::

7982884e je izjavil:


pa potrebno je omeniti tudi to, da glede na to, kako zaprt za nove stvari je povprecen iOS developer, da mu je se na jeben swift tezko presaltat - ceprav je presaltanje trivialno - bo prej pekel zmrznil, kot pa bo nekdo tak sel na Xamarin.

Swift je grd. To je glavni razlog zakaj ga osebno ne maram. Pa to, da se debugger obesi vsakih 5 minut.

Saj ne rečem. Ima svoje prednosti - kar nekaj teh. Ampak clustefuck z optionali in debuggerjem, ki je buggy as fuck ni jezik, ki bi ga rad uporabljal. Na koncu mi je Objective C še vedno bolj všeč. Objective C je je smotan za to, da se ga naučiš, če znaš že kak drug programski jezik. Ampak, ko ga enkrat znaš ti je pa njegova sintaksa lepša kot pri marsikaterem drugem jeziku (z izjemo nekaterih gor nabitih stvari kot so bloki).

Kar se pa Xamarina in ostalih stvari tiče... Je le nekaj lepote v tem, da narediš aplikacijo, ki je "native" za določeno platformo, in je narejena z orodji in programskimi jeziki prirejenimi za tisto platformo.
http://www.r00li.com

xardas ::

Kaj pa uporaba na mikrokontrolerjih? Kar se tiče recimo naprav IoT laufa bolj ali manj vse v cju ali njegovih izpeljankah.

Zgodovina sprememb…

  • spremenil: xardas ()

diler515 ::

saj je blo za pricakovat hw je poceni in hiter, bottlenecki so pa ponavadi pri rečeh na katere programskih jezihk nima vpliva

xardas je izjavil:

Kaj pa uporaba na mikrokontrolerjih? Kar se tiče recimo naprav IoT laufa bolj ali manj vse v cju ali njegovih izpeljankah.


a je tisto še c, glede na to da manjka kup funkcij

Zgodovina sprememb…

  • spremenilo: diler515 ()

BigWhale ::

7982884e je izjavil:


Problem swifta je v tem, da je še zelo mlad jezik. Kar pomeni, da niti sintaksa še ni stabilna. Do sedaj so čisto z vsako verzijo naredili velike spremembe. Swift 1 koda se ne prevede na swift 2 kompajlerju in swift 2 ne na swift 3 kompajlerju. Sicer xcode zna sam migrirati kodo. Samo je scarry, če imaš par deset tisoč vrstic kode.
niti pod razno ni to spet tak ogromen problem. migracija iz ene vecje verzije na drugo nekomu, ki obvlada, za par deset tisoc vrstic ne vzame dosti, sploh pa te IDE ze precej prej opozarja na to, kaj je deprecated, zato je nekako pricakovano, da bos tekom developmenta sam popravljal rumeno podcrtano.


Ce mors z vsako verzijo delat refactoring in pazit na to kaj je deprecated, pol je to precej, precej nadlezno. Refactoring se dela takrat, ko imas razlog za to, ne pa kr tko brez veze. :) Kako hitro in pogosto pa Apple posiljuje z novo verzijo?

7982884e je izjavil:

Zakaj pa bi moral iti na Swift?!?!?!?!?!
berljivostj kode? maintainability? manj kode za isto stvar, vecja ekspresivnost?

Maintainability? Prej si pa refactoring omenjal. :)

7982884e je izjavil:

da v letu 2016 ne pises vec front-end kode v mutirani verziji arhaicnega jezika kot je C?

Tole je v vecini primerov strawman argument, ki je v bistvu veljal ze takrat, ko je Apple 'prisel ven' z Objective-C :)

Invictus ::

7982884e je izjavil:


Zakaj pa bi moral iti na Swift?!?!?!?!?!
berljivostj kode? maintainability? manj kode za isto stvar, vecja ekspresivnost? da v letu 2016 ne pises vec front-end kode v mutirani verziji arhaicnega jezika kot je C?

razlog je isti kot je razlog, da ljudje na androidu saltajo iz jave na kotlin.

Prepis delujoče kode v nov jezik je največja bedarija, ki se jo lahko gre neka softverska hiša. Sploh, če starega jezika niso ukinili. Zakaj pa misliš, da se še vedno kodira v Delphiju in Cobolu? Ravno zaradi tvojih navadenih razlogov.

maintainability se doseže s poslovnimi, razvojnimi procesi, ne pa z novim jezikom. Navaden bullshit.

Se vidi da nisi bral Joel on Software... http://www.joelonsoftware.com/

Še posebno tega... http://www.joelonsoftware.com/articles/...

Evo, pa še zate en članek prav na tvojo temo... http://onstartups.com/tabid/3339/bid/25...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

Zgodovina sprememb…

  • spremenil: Invictus ()

7982884e ::


Ce mors z vsako verzijo delat refactoring in pazit na to kaj je deprecated, pol je to precej, precej nadlezno.

sej sem gor napisal. xcode ze celo vecnost z rumeno podcrtuje deprecated expressione in se nekej vode bo preteklo, preden bo izsla naslednja verzija swifta, kjer bo rumeno ratalo rdece. tisto brez problema sfixas tekom razvoja in te skupni cajt za to kosta zanemarljivo malo.

Maintainability? Prej si pa refactoring omenjal. :)
to, da v pol leta v par deset razlicnih mestih popravis tisti neslavni i++ v i+=1 se ni maintainance.
maintainance je, ko je treba od sodelavca kodo mal prepisat, mal nadgradit, mal spremenit. v tem primeru ti proper napisana swift koda resi precej zivcev.

Prepis delujoče kode v nov jezik je največja bedarija, ki se jo lahko gre neka softverska hiša. Sploh, če starega jezika niso ukinili. Zakaj pa misliš, da se še vedno kodira v Delphiju in Cobolu? Ravno zaradi tvojih navadenih razlogov.
zelo posplosujoca trditev, ves? kaj pa ce delujoca koda ne zadostuje vec standardom? kaj pa ce je treba aplikacijo razsirit in spremenit? mas na netu polno primerov developerskih izpovedi, ko so opisali svoje izkusnje pri prepisu znanih aplikacij v swift.
v mobile developmentu so rewriti itak stalnica, pa se sploh ne rabi pisat v drugem jeziku. rewrite se pac dela, ker je dostikrat bolje, kot pa da staro kodo sraufas za stvari, katerim ni bila v originalu namenjena in pol delas space shuttle po nepotrebnem.

ne vem zakaj si sploh to sel primerjat s kodo v delphi in cobol. itak da tam ne bos sel prepisat space shuttla ki dela in ki bo vedno delal (zadosti dobro), ker pol ni garant da bo delalo.

Zgodovina sprememb…

  • spremenilo: 7982884e ()

7982884e ::


Še posebno tega... http://www.joelonsoftware.com/articles/...
nevem komu je to namenjeno. v smislu, ne vem kdo se tega dones ne drzi. a folk dela version control na dropboxu, al kaj?


Evo, pa še zate en članek prav na tvojo temo... http://onstartups.com/tabid/3339/bid/25...
spet neumnost. ko se mobile aplikacijo razvija cez leta in ko raste, so rewriti stalnica. ce bi bilo tako neumno simpl kot na telem linku, se ne bi delali. pa pac se, ker rabis kdaj spremenit, popravit, expandat. mogoce se stranka odloci za nekej, naslednji mesec pa za nekej tretjega. a ji bos povedal, da rewrite nima smisla, da raje ne bos tega delal, da bo pac ostala praznih rok? al ji bos povedal, da si na internetih prebral, da se rewritov ne dela, zato bo pac trajalo 2 tedna za ta nov feature, zato ker je treba razvit space shuttle?

Invictus ::

Ti nimaš razčiščenih pojmov...

7982884e je izjavil:


so rewriti stalnica.

Niso stalnica. Navaden bullshit. Stalnica zanič programerjev, ki se nočejo naučiti stare kode, bi raje rekel...

7982884e je izjavil:


spremenit,

Popraviš obstoječe funkcije, ali dodaš nekaj novih...

7982884e je izjavil:


popravit,

Bug fix...

7982884e je izjavil:


expandat.

Nov feature... Kak rewrite neki...

7982884e je izjavil:


mogoce se stranka odloci za nekej, naslednji mesec pa za nekej tretjega.

Saj plača. Spet je to nov feature. Ne greš softwara zaradi tega pisat v novem jeziku.,

7982884e je izjavil:


a ji bos povedal, da rewrite nima smisla, da raje ne bos tega delal, da bo pac ostala praznih rok? al ji bos povedal, da si na internetih prebral, da se rewritov ne dela, zato bo pac trajalo 2 tedna za ta nov feature, zato ker je treba razvit space shuttle?

Ja, povedal jim bom tako kot tebi, če bo začela bluzit o rewritu, da nima pojma kaj rewrite je...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

Zgodovina sprememb…

  • spremenil: Invictus ()

7982884e ::

haha, ok, se ne bom kregal po internetih. si zadosti povedal. me pa zanima, koliko mobilnih aplikacij si napisal v zadnjih dveh letih, ker glede na to revolucionarno znanje bi bil zanimiv za razne android/ios meetupe in konference.

Invictus ::

Razvoj niso samo mobilne aplikacije. Pravzaprav so samo majhen del tega, tako po količini programiranja, kot po zaslužku.

Welcome to IT world...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

Zgodovina sprememb…

  • spremenil: Invictus ()

7982884e ::

no, in jaz govorim za mobile. se eksplicitno sem vsakic napisal da za mobile, ceprav je ze tako govora o swiftu (ki je trenutno omejen v to domeno).

Mavrik ::

7982884e je izjavil:

no, in jaz govorim za mobile. se eksplicitno sem vsakic napisal da za mobile, ceprav je ze tako govora o swiftu (ki je trenutno omejen v to domeno).


Če ti kaj pomaga, Invictus je že večkrat napisal da dela za stare enterprise dinozavre ;) Tam je vse kar je nastalo po 1994 "novo" :P
The truth is rarely pure and never simple.

Qushaak ::

Nekaj je rewrite na popolnoma novo platformo, nekaj pa je revrite dela sistema na isti platformi zaradi velikih sprememb skozi daljše časovno obdobje. Taki rewrite-i pa so dobrodošli, če so pravilno izvedeni, saj je namen poenostavitev kode za "smer" v katero se je širila funkcionalnost ter dostikrat tudi performančni "bonusi" povezani s tem (ni pa nujno).

Spet drugo so prepisi, ker se je zapodilo v povsem novo tenhologijo in se na začetku kaki API-ji še drastično spreminjajo. Fail developer-jev, ker so se prezgodaj odločili za neko tehnologijo.

Dostikrat pa se danes pade na neke "bombastične" primere, ko jih nek nov jezik/platforma megalomansko prikaže. Spet fail pri odločitvi pri razvijalcih, ker jih z neko izredno malenkostjo prepričaš da je pa "to res to kar zdele rabijo".


Se pa programer z leti (če je pameten) nauči kako res pisat modularno in po layer-jih, da se potem sčasoma po modulih sistem nadgrajuje v novih tehnologijah. Zelo pomemben pristop pri poslovnih in drugih sistemih, ki so v rabi vsaj kake 15 let.

BigWhale ::

To zadnje ponavadi rezultira v razfuku celotnega sistema, ko imas v produkciji konglomerat desetih razlicnih tehnologij, ki se med seboj prepletajo in jih med seboj drzijo 'shell skripte' za katere noben ne ve tocno kaj delajo in zakaj so tam. :)

noraguta ::

Boukša je prisilna modularizacija, kt wannabe vsemogočna platforma.
Pust' ot pobyedy k pobyedye vyedyot!

Invictus ::

Teh prisilnih modularizacij in rewritov je bilo malo morje, skoraj vedno je bila pa posledica izguba časa in denarja ;). Včasih je šla celo cela firma zugrund...

Recimo Netscape... Pa praktično vsak velik vendor ima nekaj takih projektov, ki so šli po gobe...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C++ knjiga

Oddelek: Programiranje
111076 (765) ragezor
»

Velike dileme s programskimi jeziki

Oddelek: Programiranje
412743 (1483) rolihandrej
»

S katerim programskim jezikom narediti prve korake v svet programiranja ? (strani: 1 2 )

Oddelek: Programiranje
614847 (3250) b
»

Nasvet glede izbire programskega jezika (strani: 1 2 )

Oddelek: Programiranje
523859 (2609) NoUse4AName
»

Java

Oddelek: Programiranje
322441 (1999) Nerdor

Več podobnih tem