Jak tytłumaczyć drastyczny wzrost popularności języka C?

0

Od roku jego popularność wzrosła dwurktonie wg indexu Tiobe:
https://www.tiobe.com/tiobe-index/

Podobnie silny wzrost na Javie możemy wytłumaczyć Javą 9, a C ?

0

Poczytaj sobie jak mierzą popularność. Aktualnie na stronie jest raport z maja 2018. i jest tam takie coś:

Apart from Scala's entrance in the top 20 we see a lot of other huge ups and downs. This has to do with Google re-indexing, which is quite volatile. For this we are going to implement compensation functions for the TIOBE index in the near future because we can't accept that Google hits are only half of the number in comparison to the previous month.

0
Wibowit napisał(a):

Poczytaj sobie jak mierzą popularność. Aktualnie na stronie jest raport z maja 2018. i jest tam takie coś:

Apart from Scala's entrance in the top 20 we see a lot of other huge ups and downs. This has to do with Google re-indexing, which is quite volatile. For this we are going to implement compensation functions for the TIOBE index in the near future because we can't accept that Google hits are only half of the number in comparison to the previous month.

Gdyby to były okazjonalne piki to tak to można wytłumaczyć, ale zwróć uwagę, że popularność C rośnie liniwo, wyraźny trend rosnący od 10 miesięcy.

0

A przed tym był trend spadkowy jeszcze głębszy i trwający jeszcze więcej miesięcy. Jak to wytłumaczyć? Pewnie odwrotnie do obecnego.

Na http://pypl.github.io/PYPL.html masz mniejsze wahnięcia.

2

Może napływ kumatych programistów? C to fajny język jeśli się wie jak działa komputer. :D

0
elwis napisał(a):

Może napływ kumatych programistów? C to fajny język jeśli się wie jak działa komputer. :D

Akurat C to prostacki język i zwykle wcale nie wymusza jakoś specjalnie dowiedzenia się jak działa komputer. Konstrukcja stosu (budowa ramek) i sterty (rozłożenie elementów) to raczej szczegóły implementacyjne języka, a nie coś związane z budową komputera. Przy czym nawet to nie jest jakoś mocno potrzebne. O stosie trzeba wiedzieć tyle, że nie wolno na niego pchać zbyt dużo, bo jest mały i łatwo go przepełnić. O rozłożeniu elementów na stercie natomiast warto wiedzieć tyle, by nie cudować z rzutowaniami typu UB i arytmetyką wskaźników, a wtedy rozłożenie elementów niespecjalnie będzie nasz obchodzić.

W C/ C++/ Pascalu etc kodziłem razem z resztą studentów algorytmy na studiach i nie przypominam sobie ktoś musiał jednocześnie uczyć się jak działa komputer (chociaż zagadnienie "jak działa komputer" jest mocno nieprecyzyjne). W sumie w zadaniach na studia dopatrywałbym się źródła wahnięć w popularności języków. Być może tymczasowo gdzieś w Indiach czy Chinach było mniej zadań z C, a co za tym idzie było mniej zapytań w Google i mniej pytań na StackOverflow. Potem się odbiło i na TIOBE index widać wzrost :]

0

Może większe zapotrzebowanie do systemów embedded, samochodów, dronów itp?

0

no jak to dlaczego, LT już dawno to wyjaśnił :D

C++ is a horrible language. It's made more horrible by the fact that a lot
of substandard programmers use it, to the point where it's much much
easier to generate total and utter crap with it. Quite frankly, even if
the choice of C were to do nothing but keep the C++ programmers out,
that in itself would be a huge reason to use C.

0

Dodam wykres z TIOBE, żeby wiadomo było co jest powodem niepokoju:
screenshot-20180603145850.png
C po prostu powraca do poziomu sprzed anomalii w indeksie TIOBE.

0
Wibowit napisał(a):
elwis napisał(a):

Może napływ kumatych programistów? C to fajny język jeśli się wie jak działa komputer. :D

Akurat C to prostacki język i zwykle wcale nie wymusza jakoś specjalnie dowiedzenia się jak działa komputer. Konstrukcja stosu (budowa ramek) i sterty (rozłożenie elementów) to raczej szczegóły implementacyjne języka, a nie coś związane z budową komputera. Przy czym nawet to nie jest jakoś mocno potrzebne. O stosie trzeba wiedzieć tyle, że nie wolno na niego pchać zbyt dużo, bo jest mały i łatwo go przepełnić. O rozłożeniu elementów na stercie natomiast warto wiedzieć tyle, by nie cudować z rzutowaniami typu UB i arytmetyką wskaźników, a wtedy rozłożenie elementów niespecjalnie będzie nasz obchodzić.

Nie to miałem na myśli. C separuje od sprzętu, więc nie trzeba znać szczegółów działania komputera, żeby w nim kodować, choć warto. Bardziej chodziło mi o to, że chyba trudno docenić C jeśli się tych podstaw nie zna. Łatwiej jest wziąć jakiś wysokopoziomowy język i mieć gdzieś wszystkie te niuanse. Natomiast gdy się wie jak działa komputer to C nabiera uroku, bo jest stosunkowo przewidywalnym, językiem. Jest językiem który daje wygodny syntax sugar dla assemblera zamiast próbować programować za programistę. Dla mnie to powód dla którego lubię C i w nim koduję, bo mi wystarczy.

0

indeks tiobe jest generalnie bezuzyteczny, no chyba ze ktos chce dodac "zrodlo" do poparcia swoich trollpostow.

0

elwis:
A można też znać wszystkie niuanse i programować w języku wyższego poziomu, jak Rust czy coś JVMowego. Koniec końców i tak Javowy kod jest JITowany do kodu natywnego. Znajomość architektur procesorów przyda się i przy optymalizacji kodu Javowego. Swego czasu (gimnazjum/ liceum) kodziłem przez parę lat w czystym asemblerze (dos 16-bit oraz win 32-bit), zacząłem nawet tłumaczyć manuale Agnera Foga ( http://agner.org/optimize/ ) na język polski (sensu dużego w tym nie było, ale byłem bardzo młody jeszcze i przy okazji poćwiczyłem angielski). Dzisiaj C jednak unikam, bo wolę języki z bardziej elastycznymi systemami typów (tzn bez wybiegów typu rzutowania).

0
Wibowit napisał(a):

elwis:
A można też znać wszystkie niuanse i programować w języku wyższego poziomu, jak Rust czy coś JVMowego. Koniec końców i tak Javowy kod jest JITowany do kodu natywnego. Znajomość architektur procesorów przyda się i przy optymalizacji kodu Javowego. Swego czasu (gimnazjum/ liceum) kodziłem przez parę lat w czystym asemblerze (dos 16-bit oraz win 32-bit), zacząłem nawet tłumaczyć manuale Agnera Foga ( http://agner.org/optimize/ ) na język polski (sensu dużego w tym nie było, ale byłem bardzo młody jeszcze i przy okazji poćwiczyłem angielski). Dzisiaj C jednak unikam, bo wolę języki z bardziej elastycznymi systemami typów (tzn bez wybiegów typu rzutowania).

Ależ oczywiście, że tak. Rust i Go jak najbardziej popieram. Jak chcesz pisz i w Ocamlu. Już przywykłem do C, rozumiesz. Najlepsze zło konieczne jakie znam. :P

0

Pewnie wynika to z zapotrzebowania na programistów 'niskopoziomowych' - automatyka, robotyka, symulacje, itd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1