Vinnaren i pepparkakshustävlingen!
2021-09-29, 10:34
  #1
Medlem
C++ är hastigt och särskilt optimal i algorytmer som kräver for loops av många element så som till exempel pathfinding algorytmer.

1. Varför är C/C++ det snabbaste språket?

2. Varför använder folk Javascript, Python, C#, osv när C/C++ är det snabbaste språket?
__________________
Senast redigerad av realnigga 2021-09-29 kl. 10:37.
Citera
2021-09-29, 10:38
  #2
Medlem
Peppa-pigs avatar
Citat:
Ursprungligen postat av realnigga
C++ är väldigt snabbt och särskilt optimal i algorytmer som kräver for loops av många element som till exempel pathfinding algorytmer.

1. Varför är C/C++ det snabbaste språket?

2. Varför använder folk Javascript, Python, C#, osv när C/C++ är det snabbaste språket?

1) det är det inte.

2) okompilerade språk är enklare att jobba med och snabba nog för uppgiften.
Citera
2021-09-29, 10:40
  #3
Medlem
För att det är värt att ibland offra snabbhet för att göra språket lättare. Och olika språk är olika svåra/anpassade för olika saker.
Citera
2021-09-29, 10:40
  #4
Avstängd
gemenerVERSALERs avatar
Citat:
Ursprungligen postat av realnigga
C++ är hastigt och särskilt optimal i algorytmer som kräver for loops av många element så som till exempel pathfinding algorytmer.

1. Varför är C/C++ det snabbaste språket?

2. Varför använder folk Javascript, Python, C#, osv när C/C++ är det snabbaste språket?

För att de kräver inte lika många klasser eller abstrakt skrivande som C# som är ett mer avancerat språk och som jag läste.
Citera
2021-09-29, 11:19
  #5
Moderator
Pontiac-Garages avatar
Citat:
Ursprungligen postat av realnigga
1. Varför är C/C++ det snabbaste språket?

Kompilerande språk har en högre hastighet än interpreterande språk, helt enkelt för att datorn kan tolka maskinkod direkt vilket ger bättre prestanda.

C/C++ är dock inte de snabbaste språken, mer hårdvarunära språk (t.ex. assembly-system) ger ännu bättre prestanda då abstraktionsnivån är lägre. Ett realtidssystem skulle inte konstrueras i C++.

Citat:
Ursprungligen postat av realnigga
2. Varför använder folk Javascript, Python, C#, osv när C/C++ är det snabbaste språket?

För att olika språk lämpar sig för olika saker. Ska man konstruera tillämpningsprogram med inslag av t.ex. grafik är det väldigt tidskrävande att koda på en låg abstraktionsnivån, så utvecklingstiden måste hela tiden vägas mot förväntad prestanda.
Citera
2021-09-29, 11:21
  #6
Medlem
Telepatisks avatar
Citat:
Ursprungligen postat av realnigga
C++ är hastigt och särskilt optimal i algorytmer som kräver for loops av många element så som till exempel pathfinding algorytmer.

1. Varför är C/C++ det snabbaste språket?

2. Varför använder folk Javascript, Python, C#, osv när C/C++ är det snabbaste språket?
1. Det är det inte. Du skulle ju t.ex. kunna göra något ännu mer optimerat i t.ex. assembler.

Men generellt sett så är C och C++ mer maskinnära än många andra språk och det är mer upp till kodaren och då kan man få snabb kod utan massa annat crap som kommer med.

2. Snabbaste språket är inte alltid det bästa. Jag orkar tyvärr inte skriva en hel uppsats om varför men man brukar ha olika programmeringsspråk för olika ändamål. Det tar dessutom generellt sett mer tid att koda i C och C++ än i t.ex. C#, Java och Python.
Citat:
Ursprungligen postat av gemenerVERSALER
För att de kräver inte lika många klasser eller abstrakt skrivande som C# som är ett mer avancerat språk och som jag läste.
Nog första personen någonsin som påstått att C# är ett mer avancerat språk än C och C++ men jag förmodar att du trollar.
Citera
2021-09-29, 11:23
  #7
Avstängd
Citat:
Ursprungligen postat av Pontiac-Garage
Kompilerande språk har en högre hastighet än interpreterande språk, helt enkelt för att datorn kan tolka maskinkod direkt vilket ger bättre prestanda.

C/C++ är dock inte de snabbaste språken, mer hårdvarunära språk (t.ex. assembly-system) ger ännu bättre prestanda då abstraktionsnivån är lägre. Ett realtidssystem skulle inte konstrueras i C++.



För att olika språk lämpar sig för olika saker. Ska man konstruera tillämpningsprogram med inslag av t.ex. grafik är det väldigt tidskrävande att koda på en låg abstraktionsnivån, så utvecklingstiden måste hela tiden vägas mot förväntad prestanda.


Exakt så, tråden kan stängas med denna Fakta.
Citera
2021-09-29, 11:29
  #8
Medlem
Citat:
Ursprungligen postat av realnigga
C++ är hastigt och särskilt optimal i algorytmer som kräver for loops av många element så som till exempel pathfinding algorytmer.

1. Varför är C/C++ det snabbaste språket?

2. Varför använder folk Javascript, Python, C#, osv när C/C++ är det snabbaste språket?

Jag programmerar inte C/C++ men anser mig ha tillräckligt förståelse för att ge ett svar.

1. C/C++ är mer "maskinnära" dvs språket är anpassat för datorns sätt att arbeta, du har direkt access till minnet, du kan definiera dina egna structar, dvs en datatyp som är en kombination av datatyper (int, float, string etc) och som är 100% anpassade till ditt behov. Du kan använda pekare (dvs en variabel vars värde innehåller en adress i minnet, till data, istället för datan självt) till komplexa datastrukturer/datatyper. C/C++ är kompilerade språk, dvs källkoden översätts först till maskinkod avc en "kompilerare" innan programmet kan köras. Detta i kontrast till "interpreterande språk", som tolkar källkoden rad för rad, och utför dessa intruktioner, enligt hur interpreteraren är programmerad. Det senare blir långsammare och inte lika effektivt.

2. För att det är enklare för programmeraren. Du slipper tänka på hur du använder minnet för att lagra data, du slipper i viss grad tänka på¨det som kallas "garbage collection" dvs att städa upp i minnet och ge tillbaka minne som du inte längre använder till operativsystemet. Felsökning / debugging blir enklare.

Om jag skall tillåta mig att raljera, lite tillspetsat/överdrivet: C/C++ är "riktig" programmering som kräver att man fattar hur en dator fungarer i grunden. Java etc är "kalle anka-programmering" som vem som helst kan lära sig, utan att man behöver förstå hur en dator fungerar. Detta gör att det är enklare att hitta folk som kan Java, C# än att hitta duktiga programmerare i C/C++.

Här en konversation mellan Lex Fridman och Bjarne Strostrup som först utvecklade C++.
https://youtu.be/uTxRF5ag27A
Citera
2021-09-29, 11:31
  #9
Medlem
ReasoningIsTheKeys avatar
Citat:
Ursprungligen postat av realnigga
C++ är hastigt och särskilt optimal i algorytmer som kräver for loops av många element så som till exempel pathfinding algorytmer.

1. Varför är C/C++ det snabbaste språket?

2. Varför använder folk Javascript, Python, C#, osv när C/C++ är det snabbaste språket?

Ok, jag ska svara på detta. Jobbar själv som programmerare och har programmerat i mer än 25+ år.

1.

C/C++ är inte det snabbast språket, assembler är snabbare, men C/C++ är väldigt snabbt.

Anledningen varför är för att det är mer maskinnära än vad övriga språk är som använder sig av en virtuell maskin för att exekvera koden. C/C++ är kompilerat för en specifik plattform (operativsystem), vilket gör det betydligt snabbare.

2.

Den största anledningen varför man använder språk så som Java, C#, etc. är p.g.a. att man då inte har ett plattformsberoende. Man måste med andra ord inte kompilera om koden för de olika plattformarna som den ska exekveras på.

Om man t.ex. skriver ett Java program så kan den koden exekveras på vilken plattform som helst utan att kompileras om specifikt för den plattformen. Dock måste det finnas en virtuell maskin implementerad för den plattformen för att koden skall kunna exekveras.

3.

Sen var det någon som nämnde att man använder dessa språk för att det är enklare språk. Det är delvis sant, men det är inte den största anledningen. Vad som är svårare med maskinnära språk är minneshanteringen, då måste du själv hantera allokeringen av minne, samt frigörandet av allokerat minne.

Minneshanteringen är helt klart krångligare då man använder sig av koncept så som "pekare". Sen är det större risk att man får minnesläckor i ett C/C++ program eftersom du måste hantera minnesallokeringen själv. I de andra språken så är det den virtuella maskinen som automatiskt hanterar minnesallokeringen åt dig.

4.

Vill påpeka att Javascript inte är ett programmeringsspråk. Javascript kompileras inte utan exekveras av t.ex. en webbläsare. Detta gör Javascript till ett skriptspråk, inte ett programmeringsspråk.
__________________
Senast redigerad av ReasoningIsTheKey 2021-09-29 kl. 11:34.
Citera
2021-09-29, 11:45
  #10
Medlem
OrangePicks avatar
Citat:
Ursprungligen postat av realnigga
C++ är hastigt och särskilt optimal i algorytmer som kräver for loops av många element så som till exempel pathfinding algorytmer.

1. Varför är C/C++ det snabbaste språket?

2. Varför använder folk Javascript, Python, C#, osv när C/C++ är det snabbaste språket?


Beroende på vad man skriver så prioriterar man annorlunda. Jag skriver program där hastigheten/prestandan i praktiken är helt irrelevant. Det är enormt mycket billigare för oss att välja språket efter hur lång tid koden tar att skriva än hur effektiv programvaran blir. Målet med den absoluta majoriteten av kod som skrivs är inte att ta fram den mest effektiva kodbasen, utan det är att lösa affärsproblem.
Citera
2021-09-29, 15:09
  #11
Medlem
pottsorks avatar
Citat:
Ursprungligen postat av ReasoningIsTheKey
Vill påpeka att Javascript inte är ett programmeringsspråk. Javascript kompileras inte utan exekveras av t.ex. en webbläsare. Detta gör Javascript till ett skriptspråk, inte ett programmeringsspråk.

Menar du att javascript är ett skriptspråk?

Förutom namnet, känns den här distinktionen viktig? Det känns mest som nånting gamla halsskägg säger för att avskräcka unga förmågor. "Real programmers use"..

Jag använder javascript för webbsidor, servrar, serverless-funktioner, apputveckling för ios och android - för att inte vara ett "riktigt" programmeringsspråk så får det väldigt mycket gjort.

Jag skulle gissa att det finns storleksordningar fler jobbtillfälle för gedigen javascript/react-kunskap än c/c++.
Citera
2021-09-29, 15:37
  #12
Medlem
C - Js avatar
Citat:
Ursprungligen postat av ReasoningIsTheKey
4.
Vill påpeka att Javascript inte är ett programmeringsspråk. Javascript kompileras inte utan exekveras av t.ex. en webbläsare. Detta gör Javascript till ett skriptspråk, inte ett programmeringsspråk.
Nja. I de flesta webbläsare kompileras javascript till bytekod idag (se t.ex. Chromes V8) som sedan JIT:as till native-kod (turbofan). Med samma logik skulle man kunna påstå att C# och Java inte är ett programmeringsspråk eftersom det bara kompileras till IL för att sedan JIT:as till maskinkod.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback