Permalänk

Vill lära mig programmera!

Tjenare, vill lära mig programmera! Går i 9:an och har "intresse" för datorer och teknik osv.

Vad för nybörjar språk skulle ni tipsa om? Har också valt TE(Teknik Programmet) till Gymnasiet, men har hört att det är bara "simpel-programmering" och inget man kommer ha nytt för, någon som har gått det och skulle kunna förklara hur det är?

Annars, vad för språk skulle ni rekommendera?

Permalänk
Inaktiv

Skulle kunna rekommendera dig att börja i C#, Java eller Python om du vill skriva program.
Vill du slänga upp någon webbsite skulle du kunna kolla på PHP eller MVC5

Vilket språk man kör är egentligen rätt ointressant, välj något du tycker ser snyggt ut. Det viktiga är att du vill göra något särskilt.

Du kan ha mycket stor nytta även av simpel programmering.

Skulle kunna rekommendera att slänga några pengar på Pluralsight för att kunna köra några kurser, det är välidgt trevligt!
Kan även rekommendera http://www.codecademy.com/

Permalänk

Gick själv i 9an när jag skaffade min första programmeringsbok. Försökte ett några timmar ett par gånger men gav alltid upp till slut för att jag inte förstod något sen när jag började gymnasiet (TE här också) började jag programmera på riktigt (Java) och har gjort det aktivt sedan dess

Programmeringsskursen ser jag som en kurs till för att väcka intresset i elever, det är inget man klarar sig på. När jag gick programmering 1 (Java) hade jag programmerat i ett år och kunde kursen utantill redan från början. Det jobbiga för mig var bara att förstå varför och vad som hände när man skrev kod, sen blev det bara roligt.

Visa signatur

C>++

Permalänk
Medlem

Jag tycker att Python är en bra ingångspunkt. Det var inte det första jag lärde mig men det är ett språk som är trevligt att jobba med och är mångsidigt. Ett plus (enligt många) är att Python kräver en utformning av koden som lägger mer fokus på VAD du skriver än HUR.

Du kan lära dig lite här och få en känsla för hur det fungerar http://www.codecademy.com/en/tracks/python

Permalänk
Medlem

Jag rekommenderar att först lära sig söka efter information. Det är något som ingår i programmering till stor del. Och när du börjar med att söka så kan du leta upp de otal trådar med exakt samma frågeställning som finns här på Swec. Det kommer några i månaden och urartar *alltid* i språkkrig.

Permalänk
Medlem

Lär dig Java, PHP eller C# så kör du HTML och CSS som andraspråk så har du bra språk för att bli en ruggig webbutvecklare, om du nu vill bli det dvs.

Permalänk
Medlem

Generellt sett när du kommit så långt så att du jobbar med programmering så har du inte speciellt svårt att plocka upp ett för dig nytt språk då du vet vad för information du ska söka. Hindret att att komma dit är oftast att man ger upp.

Förslagsvis funderar du ut vad du vill göra för enkla saker för stunden för det som är roligt fortsätter man med och precis som i spelvärlden stannar man vid något som ger progress och kastar inte programmeringen över relingen Vill du göra fräcka hemsidor, hemsidor som styr saker, program som du startar direkt på datorn (det finns oftast program till det mesta för ditt egna användande).

HTML, CSS ger en bra grund för att sedan kunna åstadskomma fräcka saker med modern JavaScript i webbapplikationer. Det är roligt och vad webben består av idag. För webbprogrammering är även PHP rätt skoj. För javascript kan du använda sökord: jquery och node.js för lite intressantare artiklar.

Ett C-språk är inte heller fel, köp en raspberry pi och lägg in rasbian (debian linux för raspberry pi) och designa en väckarklocka. När saker och ting mognar kanske du använder html, css, javascript med olika ramverk, php och några c-applikationer för att mäta, och styra diverse saker i ditt hem. På kuppen har du antagligen lärt dig lite djupare rent datorlära, operativsystem och hårdvaruhantering från egna program. Vill du göra windowsprogram så är visual studio oavsett språk riktigt fint.

Stressa inte för fort bara, det går fort att plocka upp programmering men lång tid att lära sig programmera ordentligt utifrån kreativa ideér. Det kräver att det är roligt så välj inte ett språk utifrån arbete eller mål. Utvecklare jag jobbar med på jobbet kan programmera i de flesta språk, det handlar bara om vad man är mer eller mindre van att såväl programmera som att söka information runt då mycket tid för en programmerare går åt till att fundera och utveckla sig själv samtidigt som man utvecklar en applikation.

Visa signatur

sCaz har lirat online sedan direktmodemanslutning var hett.
OSW Sim Racing Rig | HTC Vive | 27" Acer 165 Hz IPS G-sync
Gigabyte Z170X-Gaming 7 | 6700K | 16GB DDR4 | 3x Samsung SSD's
ASUS 1080 Ti ROG STRIX OC | EVGA G2 850W | NH-D15 Triple | Steelseries H

Permalänk
Medlem

Undvik programmeringsträsket är mitt råd efter 38 år. Satsa på något stabilt.

Permalänk
Medlem
Skrivet av iXam:

Jag rekommenderar att först lära sig söka efter information. Det är något som ingår i programmering till stor del. Och när du börjar med att söka så kan du leta upp de otal trådar med exakt samma frågeställning som finns här på Swec. Det kommer några i månaden och urartar *alltid* i språkkrig.

This. Kan man bevisligen inte ens googla så känns programmering rätt avlägset.

Visa signatur

i7 8700k – Scythe Mugen 5 Rev.B-kylare // Galax RTX 3080 SG // 16GB G.Skill DDR4 3200 // Corsair RM750i // Phanteks Eclipse P400 TG

Permalänk
Medlem

Utgå från nåt du tycker är kul, t ex göra en Android-app, något kul ned Rasperry PI eller något helt annat. Sen kan du få tips här hur du kommer igång med just ditt miniprojekt.
Själv är jag gammal, så jag lärde mig programmering genom Amiga-demos på sent 80-tal...

Permalänk
Medlem

Eftersom att du ska läsa programmering på gymnasiet du ska börja på är det väl bara att kolla upp vilket språk du kommer att lära dig då och lägga till dig lite förkunskaper, så att du garanterat hänger med och inte behöver tänka på läxor. Annars tycker jag Python är bra, precis som nämnts ovan det mest vad ditt program gör och inte hur som är intressant. Men sen får man se till vad du vill göra och tycker är kul. Vill du göra hemsidor (som iofs inte räknas som programmering...?) så är HTML + CSS något att rekommendera. I Python kommer du till en början bara att skriva textprogram i terminalen, kanske kommer du implementera grafik. Scratch är bra om du bara vill lära dig hur programmering funkar i stort sett och komma igång fort. Vill du slå på stort kan du ta itu med C++ eller Java, det sistnämnda är tydligen lite lättare att lära sig.

Visa signatur

:)

Permalänk
Medlem

Python är en bra utgångspunkt och relativt enkelt att programmera i.
Språk som C, C#, C++ kräver att du skriver mer kod för att uppnå samma sak, något som python har förenklat, varför skriva 20 rader när du kan skriva 10?

Jag började själv med C++ och kan säga att var du än börjar så är det inte fel, att första grunderna inom programmering är det viktigaste:)

Visa signatur

- - - - S.T.A.L.K.E.R FAN - - - -

Permalänk
Skrivet av AnnoyingIB:

Gick själv i 9an när jag skaffade min första programmeringsbok. Försökte ett några timmar ett par gånger men gav alltid upp till slut för att jag inte förstod något sen när jag började gymnasiet (TE här också) började jag programmera på riktigt (Java) och har gjort det aktivt sedan dess

Programmeringsskursen ser jag som en kurs till för att väcka intresset i elever, det är inget man klarar sig på. När jag gick programmering 1 (Java) hade jag programmerat i ett år och kunde kursen utantill redan från början. Det jobbiga för mig var bara att förstå varför och vad som hände när man skrev kod, sen blev det bara roligt.

Exakt såhär känner jag mig! Har försökt själv, det funkade OK i början men sen så börja det försvinna hur skallen Jag är en sån där som vill ha det förklarat, inte bara liksom "gör såhär, och du får sådär". Så får hoppas att gymnasiet jag ska gå på förklarar bra! (Det är Java i min kommun, Programmering 1&2 i Java sen lite PHP om jag ej minns fel!)

Ska kolla lite vidare om grunder osv, tack för alla svar!

Permalänk
Medlem

Är engelska inga problem finns det massor med gratis programmerings böker på följande länk(lagligt och helt fritt)
https://github.com/vhf/free-programming-books/blob/master/fre...

C++ skulle jag säga är bra språk att kunna. Annars C# men då är du ganska hårt bunden till Windows som plattform.
Java är ju trevligt om du vill sitta och göra Android appar i all evighet eller göra program som kan köras på många plattformar men väldigt ineffektivt.

inte ett programmerings språk men HTML och CSS är jättebra kunskap att ha.

Visa signatur

WIDOW | Debian, Windows 7 | i5-4670K | Corsair H110 | MSI Z87-G45 GAMING | 16GB DDR3-1600MHz(2x8GB) | 2xKingston 120GB | 1TB WD black | 1TB Seagate | XFX AMD Radeon R9 280 DD 3GB | Fractal Design Define R5 | Corsair CX750M | 3x24" Asus VE247h 1080p |
Dell Dimension 4100 | Win98SE | Pentium III 1GHz | 512MB RAM | Sound Blaster Live! 24-bit | Geforce3 Ti 200 64MB AGP | Dual 1.44MB FDD | DVD-ROM | CD-RW |
Socket 7 Pentium | MS-DOS 6.22 | Pentium MMX 200MHz | 64MB RAM | nVidia Riva TNT2 | Yamaha Audician 32 Plus | Dual 1.44MB FDD |

Permalänk
Datavetare
Skrivet av rosapoP:

Java är ju trevligt om du vill sitta och göra Android appar i all evighet eller göra program som kan köras på många plattformar men väldigt ineffektivt.

Att säga att ett språk är effektivt/ineffektivt är i stort sett nonsens, det som spelar roll är runtime-plattform som språket körs på. Java på en "vanlig" dator är t.ex. extremt effektivt, dagens JVMer är i väldigt många fall helt i nivå med motsvarande program skrivet i t.ex. C++. För multcore-programmering och program som av någon anledning skapar väldigt mycket kortlivade objekt är Java under Windows långt mer effektiv än C# körandes på CLR.

Till TS: vilket språk du väljer som nybörjare är i näst intill irrelevant, vad som passar just dig bäst beror helt på vilka problem du kan tänka försöka lösa som del i att lära dig programmera. Att programmera är mer likt ett hantverk än det är likt saker som fysik, kemi, samhällskunskap etc. D.v.s. för att lära sig programmera måste man sätta igång och faktiskt göra något, det går inte att läsa sig till en programmerare (däremot ska man läsa saker för att öka sin teoretiska förståelse för vad och varför man gör saker).

Personligen skulle jag säga att s.k. statiskt typade och starkt typade är bättre för nybörjare då det ger en del ramar att hålla sig inom och kompilatorn kommer direkt peka ut uppenbara fel du gör. Exempel på statiskt typade språk är Java, Go, C#, C++ och C medan t.ex. Python, JavaScript och Lisp är alla exempel på dynamisk typade språk

Starkt/svag typning är inte en binär skala, JavaScript och C är exempel på svagt typade språk. Java, C# och C++ är alla relativt starkt typade och språk som Go och Haskell är väldigt starkt typade.

Många universitet föredrar (eller i alla fall föredrog, börjar bli gammal...) att undervisa programmering i språk som är relativt enkla. T.ex. C++ och C# är båda språk som är extremt komplicerade, språkdefinitionerna för dessa är hundratals sidor vilket behövs för att förklara alla finesser som faktiskt finns.

Pascal och framförallt vissa varianter av Lisp, som t.ex. Scheme, är exempel på språk där det utan problem går att lära sig hela språket + en hel del programmering på en 4HP kurs. Språkdefinitionen för Scheme får man ner på 1-2 sidor text av normal storlek.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Yoshman:

Att säga att ett språk är effektivt/ineffektivt är i stort sett nonsens, det som spelar roll är runtime-plattform som språket körs på. Java på en "vanlig" dator är t.ex. extremt effektivt, dagens JVMer är i väldigt många fall helt i nivå med motsvarande program skrivet i t.ex. C++. För multcore-programmering och program som av någon anledning skapar väldigt mycket kortlivade objekt är Java under Windows långt mer effektiv än C# körandes på CLR.

Det jag menade med ineffektivt var att dåligt skriven java märks mer än dåligt skriven C++, dåligt skriven java kan sänka vilken dator som helst.
(och all java är dåligt skriven då det inte finns några bra java programmerare)

Visa signatur

WIDOW | Debian, Windows 7 | i5-4670K | Corsair H110 | MSI Z87-G45 GAMING | 16GB DDR3-1600MHz(2x8GB) | 2xKingston 120GB | 1TB WD black | 1TB Seagate | XFX AMD Radeon R9 280 DD 3GB | Fractal Design Define R5 | Corsair CX750M | 3x24" Asus VE247h 1080p |
Dell Dimension 4100 | Win98SE | Pentium III 1GHz | 512MB RAM | Sound Blaster Live! 24-bit | Geforce3 Ti 200 64MB AGP | Dual 1.44MB FDD | DVD-ROM | CD-RW |
Socket 7 Pentium | MS-DOS 6.22 | Pentium MMX 200MHz | 64MB RAM | nVidia Riva TNT2 | Yamaha Audician 32 Plus | Dual 1.44MB FDD |

Permalänk
Medlem

Jag har begränsad programmeringserfarenhet, men jag har aldrig haft så kul med programmering som när jag började göra saker till mobiltelefoner (först J2ME och sedan Android).

Det är inspirerande att få resultat direkt.

"Ok, nu fick jag en bild att visas.

Nu har jag en bild till på en bil som jag kan styra runt.

Nu kan den svänga och bete sig mer som en riktig bil.

Nu har jag ljud också.

Osv..."

/hulle.

Visa signatur

A600, 2 MB Chipram, 85 MB HD, Extra diskettstation, Joysticks: Tac-2, The Bug och Wico Red Ball.
Zotamedu:"Kompressorkylning är nog det mest miljöfarliga du kan göra med en dator om du inte tänker börja elda brunkol i den."

Permalänk
Datavetare
Skrivet av Hulle:

Jag har begränsad programmeringserfarenhet, men jag har aldrig haft så kul med programmering som när jag började göra saker till mobiltelefoner (först J2ME och sedan Android).

Det är inspirerande att få resultat direkt.

"Ok, nu fick jag en bild att visas.

Nu har jag en bild till på en bil som jag kan styra runt.

Nu kan den svänga och bete sig mer som en riktig bil.

Nu har jag ljud också.

Osv..."

/hulle.

Helt rätt, för att komma igång med programmering är det mycket viktigare att hitta någon uppgift man tycker är intressant än vilket programspråk man väljer. Tror man även ska strunta i att göra saker på "rätt sätt" från start, vissa misstag måste bara få låta sig göras om man ska förstå varför det är en dålig idé.

Är ju rätt lätt att komma igång med Android-programmering och man får som du säger snabbt resultat vilket får en att fortsätta. Det är den moderna varianten av att programmera BASIC+ASM på sin C=64

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Jag skulle nog säga C++ eller C# och det finns en hel drös men böcker du kan köpa på t.ex Adlibris för under 300kr om du inte vill använda sidor online.

Ett problem med t.ex python är att det är CLI baserat som du kör i CMD prompten, det finns självklar moduler som har gjort som du kan importera för att skapa ett python program i ett fönster.

Själv sitter jag och lär mig python, främst i samband med paramiko för att skicka eller göra automation på nätverks utrustning så jag har redan ett mål om varför jag valde just python.

Permalänk
Medlem

Jag rekommenderar Python, C# eller Java. Alla tre språken är relativt lätta att komma igång med och låter en börja direkt med OOP. C och C++ är bra tekniska språk att kunna men det är mycket mer komplext att komma igång med dem och de kräver att man lär sig om aspekter av programmering som är nog så relevanta, men kan bli tunga för en nybörjare.

Med Python, C# och Java kan du fokusera på att få din kod att fungera, hur man strukturerar upp kod, vad som är lättläst osv. Kör man C eller C++ måste man samtidigt lära sig hålla koll på minneshantering, pointers och liknande.

Börja hög nivå och jobba dig neråt efterhand som du får erfarenhet är min rekommendation.

Visa signatur

Fractal Design Define R5 | MSI Z97-GD65 Gaming | MSI Geforce GTX 970 Gaming 4G | Intel i5 4690k | Cooler Master Hyper 212 EVO | EVGA Supernova G2 750W | 2x8GB Corsair Vengeance Low Profile DDR3 1600Mhz | Samsung 850 EVO | Seagate 1TB SATA3.5

Permalänk
Medlem
Skrivet av Yoshman:

Är ju rätt lätt att komma igång med Android-programmering och man får som du säger snabbt resultat vilket får en att fortsätta. Det är den moderna varianten av att programmera BASIC+ASM på sin C=64

Jag skulle vilja påstå att Javascript är den motsvarigheten. Grejen med BASIC var ju att alla som hade en c64 hade allt som behövdes för att programmera så fort den startade sin dator. Likaså med Javascript. Det enda som behövs är en browser och en texteditor.
Med Android behöver man ju först hitta det man ska ladda ner och sen få det att rulla.
Och med Processing.js så kan man få grafiska resultat riktigt snabbt.

Permalänk
Medlem

Här har du en Svensk som går genom på ett lätt sätt. Mr1buying
Allt du behöver för att komma igång.
https://www.youtube.com/watch?v=0P8qNvGdRpQ&list=PLC4B5135BA6...

Annars har du också Bucky som är på engelska
https://www.youtube.com/watch?v=Hl-zzrqQoSE&list=PLFE2CE09D83...

Du har även Lynda.com som är betaltjänst men du får tillgång till all IT du kan behöva för att lära dig allt du kan tänka dig.

Visa signatur

K4 Jägare är härliga människor. Varför får inte rika människor bli rikare. Ja till EMU
We live for the one, we die for the one'
(Loggar man inte ut får man en extra rad i sin signatur :-) /VaCUm)

Permalänk
Avstängd
Skrivet av rosapoP:

Det jag menade med ineffektivt var att dåligt skriven java märks mer än dåligt skriven C++, dåligt skriven java kan sänka vilken dator som helst.
(och all java är dåligt skriven då det inte finns några bra java programmerare)

Dåligt skriven C++ betyder svårdebuggade minnesproblem, tror jag väljer C# över det faktiskt

Visa signatur
Permalänk
Medlem
Skrivet av rosapoP:

Det jag menade med ineffektivt var att dåligt skriven java märks mer än dåligt skriven C++, dåligt skriven java kan sänka vilken dator som helst.
(och all java är dåligt skriven då det inte finns några bra java programmerare)

Källa på det tack!

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Avstängd

Mitt .NET system ersatte precis ett APL-system som rullade under zOS och stresstesterna visade sig vara avsevärt mycket bättre för .NET och då rullar det gamla systemet under en IBM mainframe så det är bara löjligt att tro att prestanda enbart ligger i språket

Visa signatur
Permalänk
Datavetare
Skrivet av CyberVillain:

Mitt .NET system ersatte precis ett APL-system som rullade under zOS och stresstesterna visade sig vara avsevärt mycket bättre för .NET och då rullar det gamla systemet under en IBM mainframe så det är bara löjligt att tro att prestanda enbart ligger i språket

APL är typiskt interpreterat och ett z/OS-system som dels byts ut och dels använder APL borde rimligen betyda att det handlar om ett system som är minst 15-20 år gammalt, så allt annat än att det nya system är snabbare vore rätt illa eller? Är inte det lite som att säga: min familjesedan tar sig runt Silverstone snabbare än en sportbil från 50-talet, det är inget som borde förvåna någon då det är rätt självklart.

Hela poängen med mainframe är extrem tillförlitlighet och de är väldigt effektiva att hantera gigantiska mängder data i enormt många samtidiga sessioner där man utför relativt enkla repetitiva transformer på datamängden (rå CPU-beräkningskraft är långt bättre på en modern x86-CPU så det är inte en av styrkorna i mainframes), de som framgångsrikt lyckas byta ut en mainframe med en "vanlig" server hade typiskt inte behov av något av dessa saker till att börja med.

Dock helt sant att prestanda inte ligger i språket eller ens i plattformen i många projekt, om så vore fallet skulle ramverk som Django och Rails knappast används i några skarpa projekt. Så fort man blandar in en relationsdatabas i den prestandakritiska delen så är ju plattformen och språket i de flesta fall irrelevant då slutgiltig prestanda beror helt på hur väl man får sina databasfrågor att prestera.

Däremot finns skillnader som nästan alltid beror på runtime-plattform, men finns några få saker som även beror på språk. Exempel på saker där språk faktiskt spelar roll är om man ska göra något på mycket kort eller på väldigt många instanser, endast språk som C och C++ (och några få till) tillåter den kontroll över hur saker läggs i minnet för att optimera detta, en översiktligt förklaring till varför finns t.ex. här. Mikro-optimering tänker kanske någon, men detta kan ge upp mot en tiopotens i skillnad.

Ett annat exempel är vilka optimeringar ett språk tillåter. Att sortera en array/lista är typiskt runt dubbelt så snabbt med C++ std::sort än motsvarande i C, C# och Java, orsaken kokar ner till att sättet templates fungerar i C++ gör det möjligt för kompilatorn att optimera bort alla indirekta hopp (som ändå är rätt rejält optimerade på moderna x86, men kan vara rejält dyra på enklare CPUer).

Exempel på skillnad i runtime är Oravles JVM för Java7 och senare mot Microsofts CLR, samma program är allt från lika snabbt till många gånger snabbare i Java (det senare händer bl.a. på multicore system och i system som av någon anledning skapar stora mängder kortlivade objekt).

Men för denna tråd är detta helt irrelevant, ska man lära sig programmera är prestanda i Python, Visual Basic for Applications eller vad man nu väljer att köra ett totalt icke-problem. Handlar ju främst om att lära sig grunderna i programmering och det viktigaste då är att hitta något problem man tycker är tillräckligt intressant så att man fortsätter göra nya saker. Bara att få en boll (eller bara en bokstav) att studsa över skärmen på en mobil (Android/Ios) eller webbläsaren (JavaScript) är något man lär sig en hel del på och man kan "se" det man programmerat, mängden kod kommer vara väldigt liten (vilket är en fördel) men ändå lär man sig många viktiga saker på vägen.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem
Skrivet av Wowrobin10:

Tjenare, vill lära mig programmera! Går i 9:an och har "intresse" för datorer och teknik osv.

Vad för nybörjar språk skulle ni tipsa om? Har också valt TE(Teknik Programmet) till Gymnasiet, men har hört att det är bara "simpel-programmering" och inget man kommer ha nytt för, någon som har gått det och skulle kunna förklara hur det är?

Annars, vad för språk skulle ni rekommendera?

Jag sökte in till system programmering på lbs. Fanns det med där du sökte in? Man kanske inte kan söka om nu doe :/

Skickades från m.sweclockers.com

Visa signatur

i7 4770k | GTX 1070
i5 4590 | GT 1030
i7 8650u | UHD 620

Permalänk
Avstängd
Skrivet av Yoshman:

APL är typiskt interpreterat och ett z/OS-system som dels byts ut och dels använder APL borde rimligen betyda att det handlar om ett system som är minst 15-20 år gammalt, så allt annat än att det nya system är snabbare vore rätt illa eller? Är inte det lite som att säga: min familjesedan tar sig runt Silverstone snabbare än en sportbil från 50-talet, det är inget som borde förvåna någon då det är rätt självklart.

Hela poängen med mainframe är extrem tillförlitlighet och de är väldigt effektiva att hantera gigantiska mängder data i enormt många samtidiga sessioner där man utför relativt enkla repetitiva transformer på datamängden (rå CPU-beräkningskraft är långt bättre på en modern x86-CPU så det är inte en av styrkorna i mainframes), de som framgångsrikt lyckas byta ut en mainframe med en "vanlig" server hade typiskt inte behov av något av dessa saker till att börja med.

Dock helt sant att prestanda inte ligger i språket eller ens i plattformen i många projekt, om så vore fallet skulle ramverk som Django och Rails knappast används i några skarpa projekt. Så fort man blandar in en relationsdatabas i den prestandakritiska delen så är ju plattformen och språket i de flesta fall irrelevant då slutgiltig prestanda beror helt på hur väl man får sina databasfrågor att prestera.

Däremot finns skillnader som nästan alltid beror på runtime-plattform, men finns några få saker som även beror på språk. Exempel på saker där språk faktiskt spelar roll är om man ska göra något på mycket kort eller på väldigt många instanser, endast språk som C och C++ (och några få till) tillåter den kontroll över hur saker läggs i minnet för att optimera detta, en översiktligt förklaring till varför finns t.ex. här. Mikro-optimering tänker kanske någon, men detta kan ge upp mot en tiopotens i skillnad.

Ett annat exempel är vilka optimeringar ett språk tillåter. Att sortera en array/lista är typiskt runt dubbelt så snabbt med C++ std::sort än motsvarande i C, C# och Java, orsaken kokar ner till att sättet templates fungerar i C++ gör det möjligt för kompilatorn att optimera bort alla indirekta hopp (som ändå är rätt rejält optimerade på moderna x86, men kan vara rejält dyra på enklare CPUer).

Exempel på skillnad i runtime är Oravles JVM för Java7 och senare mot Microsofts CLR, samma program är allt från lika snabbt till många gånger snabbare i Java (det senare händer bl.a. på multicore system och i system som av någon anledning skapar stora mängder kortlivade objekt).

Men för denna tråd är detta helt irrelevant, ska man lära sig programmera är prestanda i Python, Visual Basic for Applications eller vad man nu väljer att köra ett totalt icke-problem. Handlar ju främst om att lära sig grunderna i programmering och det viktigaste då är att hitta något problem man tycker är tillräckligt intressant så att man fortsätter göra nya saker. Bara att få en boll (eller bara en bokstav) att studsa över skärmen på en mobil (Android/Ios) eller webbläsaren (JavaScript) är något man lär sig en hel del på och man kan "se" det man programmerat, mängden kod kommer vara väldigt liten (vilket är en fördel) men ändå lär man sig många viktiga saker på vägen.

Nja, alltså, APL är ju svingammalt, men IBM zOS används tex av banker just för att det är bra prestanda på det. Jag sitter på en svensk storbank och jävlar vad det sitter långt inne för dem att gå över från zOS till Windows. Men ofta blir utfallet grymt bra pga att det handlar inte om inte så mycket om språket och platformen som att skriva bra och skalbar kod och att använda rätt verktyg vid rätt tillfälle. Mitt system nu tex är baserat på event sourcing, bara dra in en ny server så skalar du linjärt. (Det handlar om att välja rätt teknik vid rätt tillfälle, tex skulle jag inte använda event sorucing i ett system där man har mycket writes och få reads, tyvärr är det för många klåpare i branschen som inte tänker två ggr innan man sätter igång och jobba)

edit: Du råkar inte ha bytt namn btw? Fanns en kille här innan dig som också levde i föreställningen att några få klockcycler pga att man körde native istället för CLR spelade stor roll

edit: Rätt verktyg för jobbet som jag pratade om ovan, lite kuriosa, skrev om ett GUI från C++ till C# och WPF, nu är ju iof inte C# ett dynamiskt språk men eftersom du har CLRen kan du iallafall få det dynamiskt via reflection, mao blir patterns som MVVM möjliga. Den nya klienten fick ett mycker mer användarvänligt gränssnitt och hade en kodbas som var 6% av det gamla

Visa signatur
Permalänk
Datavetare
Skrivet av CyberVillain:

Du råkar inte ha bytt namn btw? Fanns en kille här innan dig som också levde i föreställningen att några få klockcycler pga att man körde native istället för CLR spelade stor roll

Har bytt namn. När sådan spelar roll så spelar det väldigt stor roll och det är knappast några klockcykler det handlar om utan det är tiopotenser i skillnad. Har designat & utvecklat en plattform som kan hantera ~5M HTTP transaktioner per sekund på en Xeon CPU-kärna och fram till att nätverket (som bestod av 4st 10Gbit/s linor) blev chokat så skalade det linjärt med CPU-kärnor. Man når inte ens en hundradel av detta med CLR. Du anar inte hur mycket det betalar sig att vara en som kan sina saker i dessa lägen

Skrivet av CyberVillain:

Nja, alltså, APL är ju svingammalt, men IBM zOS används tex av banker just för att det är bra prestanda på det. Jag sitter på en svensk storbank och jävlar vad det sitter långt inne för dem att gå över från zOS till Windows. Men ofta blir utfallet grymt bra pga att det handlar inte om inte så mycket om språket och platformen som att skriva bra och skalbar kod och att använda rätt verktyg vid rätt tillfälle. Mitt system nu tex är baserat på event sourcing, bara dra in en ny server så skalar du linjärt. (Det handlar om att välja rätt teknik vid rätt tillfälle, tex skulle jag inte använda event sorucing i ett system där man har mycket writes och få reads, tyvärr är det för många klåpare i branschen som inte tänker två ggr innan man sätter igång och jobba)

Huvudpoängen med mainframe är tillförlitlighet och tillgänglighet. IBM verkar garantera fem nior på z/OS. Matchar det nya systemet detta (vet redan svaret och det borde du också veta om det hade spelat någon roll)?

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Avstängd

Det är dock väldigt, väldigt sällan det spelar roll. Dessutom finns det specialprodukter för sådana ändamål om du ändå vill köra CLR tex ur förvaltningssynpunkt.
Jag skrev ett system som rullade under Star counter (Databas och appserver som rullar i direktanlsutning till CLRen) för liknande prestandakrav för bothandel. Har använt samma appserver ihop med DirectCompute för en BI-lösning för uträkningar på flera 100 miljoner rader i sekunden

Visa signatur