Permalänk

Lära sig programmera

Jag har kodat lite PHP tidigare, och HTML/CSS som följer det givetvis.

Nu är jag intresserad av att lära mig programmera lite mer "icke" webb-baserat.
Jag har kollat java- och c++ guider på nätet, och rätta mig om jag har fel, men är inte det väldigt konsol-baserat skapande?

Jag tänker att man kanske vill kunna skapa fönster, knappar osv när man skapar sina program. Jag har sett att C# har bra gränssnitt för det, eller finns det kanske i Java och C++ också tex? Eller vad skiljer annars dom olika språken åt, och hur vet jag vilket jag borde välja?

Jag tänker att man kanske vill skriva data till textfiler/databaser, presentera det i ett program osv.
Kanske hantera filer... Och jag som är musikintresserad, spela upp och redigera ljudvågor osv.
Eller att kunna styra externa kretsar eller enheter via com/usb port osv.
Eller ex enklare spel/röra objekt med pilarna på tangentbordet osv.

Vad är det vanligaste området att röra sig inom på marknaden vad gäller programmering? Vad är mest aktuellt och attraktivt att kunna?

Permalänk
Medlem

Webbutveckling är riktigt stort just nu. Allt fler desktopprogram byggs om för webben. Skulle säga att du provar antingen C# eller Java, tar det som känns bäst och satsar vidare på det.
Väljer du C# så skulle du kunna labba och leka runt med .NET Core och prova bygga applikationer och webbsidor som kan köras på alla plattformar. Finns idag ingen större mening i att bygga desktopprogram längre.

Bygger själv alla mina projekt i C# .NET Core idag.

Permalänk
Medlem
Skrivet av Bosnic:

Webbutveckling är riktigt stort just nu. Allt fler desktopprogram byggs om för webben. Skulle säga att du provar antingen C# eller Java, tar det som känns bäst och satsar vidare på det.
Väljer du C# så skulle du kunna labba och leka runt med .NET Core och prova bygga applikationer och webbsidor som kan köras på alla plattformar. Finns idag ingen större mening i att bygga desktopprogram längre.

Bygger själv alla mina projekt i C# .NET Core idag.

Fast du behöver ju en frontend till det också.

En populär kombination är ju att köra .Net Core tillsammans med React.

Permalänk
Medlem

@RobinJacobsson:

Jag har ingen riktig erfarenhet av C# eller C++, men i Java har du ett par delar av standardbiblioteket att tillgå för att skapa GUI-applikationer, exempelvis javax.swing, men det är inget jag uppriktigt kan rekommendera. För spel finns bibliotek som lwjgl, ibland inbakade i större spelramverk som hjälper till med modellen och annat smått och gott, och jag är övertygad om att du kan hitta liknande saker för att jobba med ljud eller signalbehandling.

Anledningen till att det verkar så konsollbaserat är att du fortfarande lär dig krypa. I webb-världen är det så otroligt enkelt att serva en HTML-fil att den visuella feedbacken som ingår i det automatiskt blir första upplevelsen. Men låt istället säga att du hade börjat lära dig Javascript i NodeJS istället för i webbläsaren, då hade du också börjat med kodexempel i terminalen.

Java Swing är inte så svårt att komma igång med. I de första programmeringskurserna jag läste på högskolan så satte vi igång med det ganska tidigt. Nackdelen med Swing är att det är ett ganska knöligt ramverk om man vill få något vettigt gjort, plus att de verktygen vi hade tillgång till på den tiden inte var särskilt bra. Och idag sker ju allt på webben i alla fall, så...

Det finns nog andra GUI-ramverk som är kompatibla med Java också, men Qt som jag främst tänkte på verkar vara gjort för C++? Google kan nog bättre än jag i det här fallet.

Vill du dyka djupare så rekommenderar jag att du söker efter "... framework for [språk]", typ "Game framework for Java" så kommer du hitta populära och kraftfulla ramverk som hjälper dig med det du behöver, som grafik, datahantering, I/O, fysik etc.

Karriärsmässigt så verkar det poppis med webben, mobilappar och allt däremellan just nu. Fundera på när du installerade ett kompilerat Windows-program för att sköta bankärenden senast, så förstår du vad jag menar.

Visa signatur

Vad har jag i min dator? Kopparrör.

Permalänk
Skrivet av Baxtex:

Fast du behöver ju en frontend till det också.

En populär kombination är ju att köra .Net Core tillsammans med React.

Okej, jag kollade upp React, är inte det Java? Funkar C# och React tillsammans?

Permalänk
Inaktiv
Skrivet av RobinJacobsson:

Jag har kodat lite PHP tidigare, och HTML/CSS som följer det givetvis.

Nu är jag intresserad av att lära mig programmera lite mer "icke" webb-baserat.
Jag har kollat java- och c++ guider på nätet, och rätta mig om jag har fel, men är inte det väldigt konsol-baserat skapande?

Jag tänker att man kanske vill kunna skapa fönster, knappar osv när man skapar sina program. Jag har sett att C# har bra gränssnitt för det, eller finns det kanske i Java och C++ också tex? Eller vad skiljer annars dom olika språken åt, och hur vet jag vilket jag borde välja?

Jag tänker att man kanske vill skriva data till textfiler/databaser, presentera det i ett program osv.
Kanske hantera filer... Och jag som är musikintresserad, spela upp och redigera ljudvågor osv.
Eller att kunna styra externa kretsar eller enheter via com/usb port osv.
Eller ex enklare spel/röra objekt med pilarna på tangentbordet osv.

Vad är det vanligaste området att röra sig inom på marknaden vad gäller programmering? Vad är mest aktuellt och attraktivt att kunna?

Mest aktuellt är väl nästan JavaScript tillsammans med något backendspråk, Java eller C#. Python är också stort, men jag har dålig koll på hur stort det är för webbutveckling.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av RobinJacobsson:

Okej, jag kollade upp React, är inte det Java? Funkar C# och React tillsammans?

Nä det är ett JS ramverk.

Permalänk
Skrivet av Baxtex:

Fast du behöver ju en frontend till det också.

En populär kombination är ju att köra .Net Core tillsammans med React.

Är inte .Net Core C#?
Hur funkar det då om React är JS?

Skickades från m.sweclockers.com

Permalänk
Inaktiv
Skrivet av RobinJacobsson:

Är inte .Net Core C#?
Hur funkar det då om React är JS?

Skickades från m.sweclockers.com

Det finns motsvarande ramverk till de flesta populära programspråk. Java exempelvis har Project Reactor (tidigare RxJava). Men ramverk och grejer är överkurs i början. Du kommer att hitta rätt ramverk när du söker information, när du kommit en bit på vägen och börjar undra över hur man gör mer avancerade saker.

Då kommer sökträffarna och svaren på Stack Overflow ge bra tips om passande ramverk.

Permalänk
Medlem
Skrivet av RobinJacobsson:

Är inte .Net Core C#?
Hur funkar det då om React är JS?

Skickades från m.sweclockers.com

Du lägger .NET Core som server api mot en databas och matar JSON data till din React frontend som sköter code på webbläsaren och gör AJAX calls mot servern. Är smooth 😁👍

Kan rekommendera C#, grymt roligt språk och Visual Studio är en asbra IDE att jobba i. Sen kan du även skriva spelutveckling i Unity.

Men för webbutveckling idag så ska du satsa mycket på JavaScript också, kommer bara att bli större och större. Rekommenderar att gå från ett OOP-språk till JavaScript än tvärtom, du tjänar på att ha det tänket.

För C#, börja med console applicationer för att lära dig syntax och grunderna väl. Sen kan du gå över till WinForms lite, där har du ett GUI och får börja använda event handlers, sen kan du gå över till ASP.NET Core MVC.

Permalänk
Medlem
Skrivet av zaibuf:

Du lägger .NET Core som server api mot en databas och matar JSON data till din React frontend som sköter code på webbläsaren och gör AJAX calls mot servern. Är smooth 😁👍

Kan rekommendera C#, grymt roligt språk och Visual Studio är en asbra IDE att jobba i. Sen kan du även skriva spelutveckling i Unity.

Men för webbutveckling idag så ska du satsa mycket på JavaScript också, kommer bara att bli större och större. Rekommenderar att gå från ett OOP-språk till JavaScript än tvärtom, du tjänar på att ha det tänket.

För C#, börja med console applicationer för att lära dig syntax och grunderna väl. Sen kan du gå över till WinForms lite, där har du ett GUI och får börja använda event handlers, sen kan du gå över till ASP.NET Core MVC.

Jag skulle vilja påstå att Javascript är mycket likt, rent syntaktiskt, Java och C#. Det lurar en lite då Javascript kan vara lite knepigt ibland med märkliga regler, dålig inkapsling etc. Men ja, jag tror också att desktop applikationer dör ut mer och mer. Webben är mycket enklare att underhålla med uppdateringar, stöds av i princip alla plattformar med mera.

Permalänk
Medlem

@Baxtex:
Snälla snälla säg inte så! Den som försöker lära sig Javascript med förväntan att det ska likna Java eller C# kommer bara uppleva tårar och besvikelse.

Om du tycker Javascript är "lite knepigt ibland" beror det på att språket är designat för en annan paradigm, och bygger mer på idéer från Scheme än på Java.

Jämför med att Finska och Svenska liknar varandra bara för att vi använder samma bokstäver.

Visa signatur

Vad har jag i min dator? Kopparrör.

Permalänk
Skrivet av zaibuf:

Du lägger .NET Core som server api mot en databas och matar JSON data till din React frontend som sköter code på webbläsaren och gör AJAX calls mot servern. Är smooth 😁👍

Kan rekommendera C#, grymt roligt språk och Visual Studio är en asbra IDE att jobba i. Sen kan du även skriva spelutveckling i Unity.

Men för webbutveckling idag så ska du satsa mycket på JavaScript också, kommer bara att bli större och större. Rekommenderar att gå från ett OOP-språk till JavaScript än tvärtom, du tjänar på att ha det tänket.

För C#, börja med console applicationer för att lära dig syntax och grunderna väl. Sen kan du gå över till WinForms lite, där har du ett GUI och får börja använda event handlers, sen kan du gå över till ASP.NET Core MVC.

Har lite problem med alla begrepp, tex server API, JSON, AJAX, IDE, OOP, GUI osv..

Jag körde MYSQL med PHP när jag lekte lite med att skriva/redigera ett forum.
Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av RobinJacobsson:

Har lite problem med alla begrepp, tex server API, JSON, AJAX, IDE, OOP, GUI osv..

Jag var på väg att kort beskriva de olika förkortningarna, men kom på att ett bra första steg för dig är att själv ta reda på vad de betyder. En av de viktigaste färdigheterna för en programmerare är trots allt att kunna hitta och inta information. Wikipedia brukar vara en bra utgångspunkt för programmeringsrelaterade förkortningar

Men när det handlar om programmering så får man skilja på att lära sig programmera, och att lära sig ett programmeringsspråk. Att lära sig programmera handlar om att lära sig tänket, och när man väl lärt sig det så är det oftast inte svårt att lära sig ett nytt språk vid behov. Vilket språk du väljer att börja med är alltså inte så viktigt, utan ta något du tycker ser intressant ut och börja koda bara.

Permalänk
Medlem
Skrivet av kirayatail:

@Baxtex:
Snälla snälla säg inte så! Den som försöker lära sig Javascript med förväntan att det ska likna Java eller C# kommer bara uppleva tårar och besvikelse.

Om du tycker Javascript är "lite knepigt ibland" beror det på att språket är designat för en annan paradigm, och bygger mer på idéer från Scheme än på Java.

Jämför med att Finska och Svenska liknar varandra bara för att vi använder samma bokstäver.

Ja? Det var ju det jag skrev, på ytan ser det likt ut men när man väl gräver djupare så inser man hur olika de är. Det jag menar med "knepigt" är just det. Språket är mer fritt i vad man kan göra.

Personligen föredrar jag typescript så man åtminstone kan vara säker på vilka typer man jobbar med.

Permalänk
Medlem

@RobinJacobsson: De flesta språk är väldigt konsolbaserade när man börjar lära sig dem eftersom det gör att man kan fokusera på språket. Vill du göra något mer hamnar du snart i förkortningsträsket där du ska välja ramverk för frontend, databas, m.m.

Men jag skulle rekomendera att du lär dig C# och att du laddar ned Visual Studio Community som är en väldigt bra och sammanhållen utvecklingsmiljö. Där kan du lätt skapa nya projekt och t.ex. välja att skapa en windows app, en websida, eller konsoleapplikation, och får då en grund du kan börja titta runt i. Sedan är det bara kolla lite tutorials och googla när du kör fast, så komme du snart kunna skapa det du vill

Vill du göra spel eller liknande laddar du ner Unity3d och kollar deras tutorials.

Permalänk
Medlem
Skrivet av zabsv:

@RobinJacobsson: De flesta språk är väldigt konsolbaserade när man börjar lära sig dem eftersom det gör att man kan fokusera på språket. Vill du göra något mer hamnar du snart i förkortningsträsket där du ska välja ramverk för frontend, databas, m.m.

Men jag skulle rekomendera att du lär dig C# och att du laddar ned Visual Studio Community som är en väldigt bra och sammanhållen utvecklingsmiljö. Där kan du lätt skapa nya projekt och t.ex. välja att skapa en windows app, en websida, eller konsoleapplikation, och får då en grund du kan börja titta runt i. Sedan är det bara kolla lite tutorials och googla när du kör fast, så komme du snart kunna skapa det du vill

Vill du göra spel eller liknande laddar du ner Unity3d och kollar deras tutorials.

Är TS student kan en skaffa full edition via dreamspark (imagine)

Visa signatur

OS: MacOS/ Windows 10 Pro 64-bit MB: ASUS-Z97-A CPU: i7 4790k
NÄTAGG: EVGA SUPERNOVA G2
RAM: 32768 MiB GPU: 1070 FTW Chassi: Fractal Design R4
MBP 13" i5 | 256GB | 16GB RAM | MID 2014

Permalänk

Jobbar själv med C++ på dagtid och har svårt att föreställa mig varför man skulle välja C++ före något annat språk för "vardagliga program" idag. Det känns som att de enda personerna som helt ärligt gör det är de som snöat in på C++ som språk och gör det för att de är bekväma med det. Det är fortfarande väldigt krångligt att få ihop ett basic projekt bara, då det praktiskt taget inte finns något vettigt byggsystem, är väldigt komplicerat, långsamt att utveckla i och så vidare. Jag får nästan ångest ibland över hur svårt det ska vara med helt självklara saker i det ibland. Så för att bidra med mina 2 cents så skulle jag föreslå det språket enbart för syftet att du vill jobba inom spelbranschen eller om du vill lära dig mer om språket och skapa några enklare program.

Jag skulle nog inte använda C++ idag ens för att koda spel, om det var på fritiden. Utan hade lärt mig Unity3D eller dylikt.

Skrivet av RobinJacobsson:

Har lite problem med alla begrepp, tex server API, JSON, AJAX, IDE, OOP, GUI osv..

Jag körde MYSQL med PHP när jag lekte lite med att skriva/redigera ett forum.
Skickades från m.sweclockers.com

Ja tusan vad jobbigt det kunnat vara. Jag satt och engagerade mig i programmering och utveckling i åratal som ung, men det har fortfarande dykt begrepp som jag hade sett överallt men ändå inte förstått. Vissa begrepp har man efter 10 år fått söka fram och läsa några extra gånger bara för att de är tvetydiga, fastän man sökt på det 20 gånger tidigare.

Permalänk

Okej, tack för alla era svar. Jag kör vidare på den här länken då. Men förklara gärna för mig, varför heter den ASP.NET Core när dom arbetar i C# i den? För visst är väl ASP ett eget språk?

Permalänk
Medlem
Skrivet av RobinJacobsson:

Okej, tack för alla era svar. Jag kör vidare på den här länken då. Men förklara gärna för mig, varför heter den ASP.NET Core när dom arbetar i C# i den? För visst är väl ASP ett eget språk?

ASP.NET är frameworket du bygger webb applikationer i, du kan koda i C#, Visual Basic, Ruby och F# för att nämna några.
Men skulle säga att C# är väl det vanligaste idag.
Core är den senaste versionen av ASP.NET som är open-source och fungerar på Mac och Linux också, vilket är HUGE för att komma från Microsoft. Men behövs väl för att konkurrera med nodeJS.

Känner du dig bekväm med grundläggande syntax och OOP konceptet så kör på, annars hade jag inte rekommenderat dig att börja med ASP.NET Core utan kör med console applikationer. Är mycket grejer att hålla reda på i ASP.NET och förstår man inte objekt orientering och grundläggande syntax så blir man ganska snabbt förvirrad.

Permalänk
Medlem
Skrivet av RobinJacobsson:

Okej, tack för alla era svar. Jag kör vidare på den här länken då. Men förklara gärna för mig, varför heter den ASP.NET Core när dom arbetar i C# i den? För visst är väl ASP ett eget språk?

ASP är inte ett språk utan en serverside-lösning. Det är lätt att man tror att det är ett språk om man jämför liknande lösningar vid samma gamla tidsperiod exempelvis PHP och JSP. JSP är inte heller ett språk.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Ståupptuppen:

Jobbar själv med C++ på dagtid och har svårt att föreställa mig varför man skulle välja C++ före något annat språk för "vardagliga program" idag. Det känns som att de enda personerna som helt ärligt gör det är de som snöat in på C++ som språk och gör det för att de är bekväma med det. Det är fortfarande väldigt krångligt att få ihop ett basic projekt bara, då det praktiskt taget inte finns något vettigt byggsystem, är väldigt komplicerat, långsamt att utveckla i och så vidare. Jag får nästan ångest ibland över hur svårt det ska vara med helt självklara saker i det ibland. Så för att bidra med mina 2 cents så skulle jag föreslå det språket enbart för syftet att du vill jobba inom spelbranschen eller om du vill lära dig mer om språket och skapa några enklare program.

Jag skulle nog inte använda C++ idag ens för att koda spel, om det var på fritiden. Utan hade lärt mig Unity3D eller dylikt.

Ja tusan vad jobbigt det kunnat vara. Jag satt och engagerade mig i programmering och utveckling i åratal som ung, men det har fortfarande dykt begrepp som jag hade sett överallt men ändå inte förstått. Vissa begrepp har man efter 10 år fått söka fram och läsa några extra gånger bara för att de är tvetydiga, fastän man sökt på det 20 gånger tidigare.

Vad är då Unity3D utvecklat i? Jo C++ eftersom det är överlägset när det kommer till den typen av mjukvara såsom många andra typer av mjukvara, det är mycket effektivare att utveckla det i C++.

Vad definierar du då som "vardagliga program"? Ett par anledningar till varför många väljer att utveckla i C++ framför andra språk:

Citat:
  • Main reason is definitely the speed of execution. C or C++ is far ahead of Java in this. I won't elaborate as to why C++ is faster here.

  • Also in C++ you can get away with procedural style of programming, but Java forces you to write OO program. Which is unnecessary burden for programming on codechef.

  • No pointers? No pass by reference? Seriously this is a put off.

  • Top programmers are wicked! And C++ allows you to do wicked things. For example macros. Can you do this in Java?

  • C++ has STL, which is awesome. So your argument "Java definitely has more inbuilt functionality than c++" is invalid. Whenever I see C++ beating C, I immediately understand that it has got to do with STL.

  • Taste. Yes a language is supposed to be tasty. Java syntax is rather mundane. C++ packs a lot of spicy operators.

  • Generics are not as powerful as templates. I don't know whether people use either of them on codechef, but it is a fact. With C++ templates, you can do a lot of work at compile time.

  • Also it is possible that C++ is taught before Java (as in my case). Which I think is again for a good reason.

I have omitted many points of difference between C++ and Java, because they are not relevant in Codechef programs are quite small. But 80% of time, Java losses

Permalänk
Medlem

@RobinJacobsson Ser att det finns lite förvirring gällande webbapplikationer kring skillnaden mellan ramverk frontend vs backend, och vilka språk dessa ramverk använder (vilket är normalt, det är mycket att in som ny på området). Så tänkte försöka ge lite bakgrund/större bild kring det. Jobbar till vardags med backendutveckling i java.

Historiskt så har man gjort webbapplikationer (tex sweclockers.com) i backend + html-templating (& javascript för mindre grejer: animationer, live uppdatering av data för visualisering mm). Exempel på templating-teknologier är PHP, där du bäddar in phpkod (backendkod) direkt i en htmlsida. Du får alltså in data från från databaser/filer/"whatever datakälla du har" till användaren genom att trycka in datan direkt i html-sidan som skickas från backend.
Det finns motsvarande templating-möjligheter i alla stora backendspråk, men dessa teknologier är ofta upp mot 20 år gamla och många av dem är legacy idag (java har tex JavaServer Pages från 1999, men det är legacy idag och används inte för nya projekt, finns ingen anledning att lära sig det).

Sedan några år tillbaka så är standard att bygga webbapplikationer i helt separerade backend och frontend delar. Det betyder att man frångått templating på webbservern (backend), och istället skriver ett webbgränssnitt som är helt oberoende (i teorin iaf...). Ingen data hårdkodas i html-filerna från backend, all data laddas istället via http-anrop (vanligtvis i formatet json).

Eftersom webbgränssnittet (frontend) är oberoende backend så har det sin egen teknikstack. För webbläsare är det alltid JavaScript som gäller, som vanligtvis kombineras med ett ramverk, det vanligaste är i dagsläget React som folk här nämnt. Man använder ramverk i frontend för att få struktur i koden & features utan att behöva implementera dem själv, gång efter gång.

Anledningen till att man använder ramverk för backend (tex Spring Boot som är populärt för nyskrivna webbapplikationer skrivna i java) är samma anledning som frontend ovan, man vill få en tydligare programstruktur och slippa behöva återuppfinna features som generella för alla webbapplikationer (e.g. hur du ansluter till databaser, skickar html-filer via http till användare, authensiering av användare/inloggning, etc etc).

Permalänk
Medlem

Om du vill lära dig att programmera bättre utan att göra saker onödigt komplexa så föreslår jag förresten följande projekt:

Testa att skriva en egen httpserver, gör den så enkel som möjligt. HTTP är ett textbaserat protokoll, så allt kan göras mha manipulering av strängar. Om du skriver den i Java, se följande exempel för hur man lyssnar på nätverkconnections & skriver text till anslutningar)

Det är imo viktigt att inse att mycket av det som görs av moderna ramverk inte är "magi", utan egentligen saker som skulle kunna skrivas manuellt varje gång, men som man gärna slipper... Man ska IMO inte vara helt hjälplös utan 3:departs-libraries om man ska kunna anse sig själv vara en "bra programmerare".

Permalänk
Medlem

@osmig:

Vet inte jag håller med om att det är standard med Single-page applications, visst blir det vanligare och vanligare men det finns många som fortfarande bygger traditionella server-renderade webbsidor. Personligen ser jag att man som vanligt bör välja teknik/metod efter behov, och i många fall tillför SPA inte något väsentligt.

Intressant kortfattat artikel på ämnet.
https://journal.plausible.io/you-probably-dont-need-a-single-...

Permalänk
Medlem
Skrivet av Chimo:

@osmig:

Vet inte jag håller med om att det är standard med Single-page applications, visst blir det vanligare och vanligare men det finns många som fortfarande bygger traditionella server-renderade webbsidor. Personligen ser jag att man som vanligt bör välja teknik/metod efter behov, och i många fall tillför SPA inte något väsentligt.

Intressant kortfattat artikel på ämnet.
https://journal.plausible.io/you-probably-dont-need-a-single-...

Jag håller med om att man inte alltid vill använda SPA:er, då SPA:er alltid innerbär ökad komplexitet då det är ett extra lager abstraktion. När jag skrev att det var standard med SPA:er så tänkte framförallt på nyutveckling, och framförallt på program/system med många och/eller komplexa krav och som kommer att vidareutvecklas över tid. För mindre saker finns det stora fördelar att välja det man är mest van vid, och gärna det enklaste verktyget som får jobbet gjort.

YMMW ofc, men jag har iaf inte stött på (på jobbet) några stora greenfieldprojekt som gjorts med templating under de senaste 2 åren, det är mestadels spring boot + angular/react på javasidan.

Permalänk
Skrivet av Petrikus:

Vad är då Unity3D utvecklat i? Jo C++ eftersom det är överlägset när det kommer till den typen av mjukvara såsom många andra typer av mjukvara, det är mycket effektivare att utveckla det i C++.

Vad definierar du då som "vardagliga program"? Ett par anledningar till varför många väljer att utveckla i C++ framför andra språk:

Hur menar du att det är relevant att Unity3D är skapat i C++?
Bara för att ditt favoritbibliotek är skapat i språk X, betyder inte det att språk X är bäst på att göra allt annat.

Vardagliga program åsyftar jag fritidsprojekt där du är en eller några stycken programmerare som försöker vara produktiva och skapa något. Ville du motsäga mig i något så får du gärna säga varför C++ skulle vara ett klokt val för fritidsprojekt för att skapa små prototyper.

Skrivet av Petrikus:

Main reason is definitely the speed of execution. C or C++ is far ahead of Java in this. I won't elaborate as to why C++ is faster here.

Also in C++ you can get away with procedural style of programming, but Java forces you to write OO program. Which is unnecessary burden for programming on codechef.

No pointers? No pass by reference? Seriously this is a put off.

Top programmers are wicked! And C++ allows you to do wicked things. For example macros. Can you do this in Java?

C++ has STL, which is awesome. So your argument "Java definitely has more inbuilt functionality than c++" is invalid. Whenever I see C++ beating C, I immediately understand that it has got to do with STL.

Taste. Yes a language is supposed to be tasty. Java syntax is rather mundane. C++ packs a lot of spicy operators.

Generics are not as powerful as templates. I don't know whether people use either of them on codechef, but it is a fact. With C++ templates, you can do a lot of work at compile time.

Also it is possible that C++ is taught before Java (as in my case). Which I think is again for a good reason.

I have omitted many points of difference between C++ and Java, because they are not relevant in Codechef programs are quite small. But 80% of time, Java losses

1. Tröttsamt argument att C++ är snabbare. Vad för något är det du utvecklar på din fritid som behöver den snabbheten du åsyftar?

2. Personen jämför ju C++ med bara Java, vad ska det uppnå? Klart det är en nackdel att vara bunden till OOP bara.

3. Inga pekare? Vad skönt. Märker att personen som kommit med den där listan är i favör till C++. Kan du skriva källan?

4. C++ utvecklare är "wicked"? Skrämmande med en C++ utvecklare som använder makron som ett argument. Makron borde undvikas!

5. Ja STL är awesome, håller med. Fast det tar inte bort faktum att jag typ aldrig skulle välja C++ för ett fritidsprojekt före något annat, i 99% av fallen.

6. What?

7. C++ Vs Java igen, som sagt vad vill uppnås?

8. Personliga åsikter, åter igen vad vill uppnås?

Om du vill invalidisera mina poänger får du gärna säga varför själv istället för att copy-pasta vad någon random på nätet skrivit om C++ vs Java (som inte är jämförelse med alla andra språk utan bara Java, och för övrigt en högst konstig lista) som inte riktigt hade med saken att göra.

Permalänk

Sedan att du påstår att det är effektivare att utveckla i C++ före att använda spelmotor. Det kontradiktar i stort sett hela filosofin bakom programmering, där tanken är att göra det så simpelt som möjligt. Spelmotorer är alltså totalt meningslösa enligt din logik? Är du en ensam utvecklare, i synnerhet utan tidigare kunskap så rekommenderar majoriteten spelmotorer just för att man inte ska återuppfinna hjulet. Bördan ligger på dig att förklara vad jag skriver som är fel.

Permalänk
Medlem

How To Think Like A Programmer

Visa signatur

Nerd is the new Cool

Permalänk
Medlem

Jag själv började med stapplande steg lära mig C++ som första språk, jag vill tro att det gav mig en bra grund att stå på när jag senare lärde mig C#, Java, php, etc. Det krävdes dock intryck från flera olika språk och paradigm innan poletten verkligen trillade ner angående fördelar och nackdelar med de olika. Idag föredrar jag C när jag vill utvecklas som programmerare men C# eller Go när jag vill göra något produktivt. Anledningen till C är att det tillåter mig fokusera mer på algoritmerna och datastrukturer istället för programmets struktur. Dessa program blir aldrig stora utan är mer till för att testa implementera något enstaka system.

Det är viktigt att hitta något projekt man brinner för, annars är det lätt hänt att man ger upp och går vidare med något annat. Men räkna inte med att projektet kommer bli något mästerverk, när du kollar tillbaka någon gång i framtiden kommer du antagligen vilja ta bort rubbet och göra om. Försök inte bygga för stort i början, less is more, för sinnets skull är det mycket tillfredsställande att bli klar med något.

Skickades från m.sweclockers.com