14 260 läst ·
182 svar
14k läst
182 svar
Välja programmeringsspråk
Intressant kurva, jag trodde inte java var på nedgång. På min arbetsplats, en mycket stor it-shop, är det fortfarande java ee för hela pengen för affärslogiken. Men jag förstår att man vill minimera prototyp-leverans-tiden för en startup utan ärvda beroenden.S sjoelund skrev:[bild]
Python var aldrig döende och blev inte populär för att ML-ramverk kom till Python. De kom till Python för Python var populärt.
Egentligen är Python rätt långsamt, men det är snabbt att köras eftersom det inte behöver kompileras om och bra att göra prototyper i. Hastigheten man får är för att nästan alla viktiga Python-bibliotek använder sig av C i grunden och man mest skriver små script som använder sig av bibliotek.
Vill man få riktig snabb ML-kod skriver man den i Julia. Men det är långsammare för små prototyper eftersom man behöver JIT-kompilera hela tiden... Python är mycket enklare att lära sig eftersom man kan köra små program snabbare, och är ett mycket bra val om man vill lära sig ett språk för att automatisera uppgifter på jobbet. Lite som att Excel är smidigt att använda om man får en massa data i tabeller och behöver beräkna något genomsnitt enkelt.
/Höghus
T.o.m. Försäkringsbolagen och storbankerna överger Java så då vet man att det är på utgång...Höghus skrev:
Enterprise är ju lite annorlunda också. Python är ju inte ens statiskt typat. Lite jobbigt att få typfel vid runtime ett år efter koden är hos kund. Om du tittar på total mängd kod som skrivs har säkert Java också gått upp eftersom antalet utvecklare växer konstant.Höghus skrev:
Boilerplate4U
Medlem
· CEO Tomteverkstan Nordpolen
· 2 414 inlägg
Boilerplate4U
Medlem
- CEO Tomteverkstan Nordpolen
- 2 414 inlägg
Det är inte sant eftersom stora delar av kärnsystemen redan är utvecklade i Java och kommer fortsätta att utvecklas i Java.anders07 skrev:
Men precis som vilka andra större företag utvecklas nytt verksamhetsstöd även med andra tekniker men det är inte samma sak som att man på något sätt övergett Java. Man skulle kunna säga att Java blivit det nya Cobol vilket också ger samma resultat med fingrar nedslitna till knogarna...
Java kommer ju att leva kvar under många år men nya projekt kommer inte att använda java i samma utsträckning och det kommer att minska (om man inte gör något åt Java's sjuka overhead, prestanda och knöliga type-casting).Boilerplate4U skrev:
Det är inte sant eftersom stora delar av kärnsystemen redan är utvecklade i Java och kommer fortsätta att utvecklas i Java.
Men precis som vilka andra större företag utvecklas nytt verksamhetsstöd även med andra tekniker men det är inte samma sak som att man på något sätt övergett Java. Man skulle kunna säga att Java blivit det nya Cobol vilket också ger samma resultat med fingrar nedslitna till knogarna...
Jag hoppar in som konsult lite nu och då på stor banker/försäkringsbolag och fler av dem använder idag mer "moderna" språk och MEAN stack (Mongo+Express+Angular+Node) börjar användas mer och mer.
Docker är också "hett" inom dessa företag och ofta olika typer av "Hosted Cloud" börjar komma där de jobbar som i en Clod lösning men de host'ar "molnet" själva.
När man ändå gnäller på Java så är det väldigt lätt att skriva dålig och osäker kod i det språket....anders07 skrev:
Java kommer ju att leva kvar under många år men nya projekt kommer inte att använda java i samma utsträckning och det kommer att minska (om man inte gör något åt Java's sjuka overhead, prestanda och knöliga type-casting).
Jag hoppar in som konsult lite nu och då på stor banker/försäkringsbolag och fler av dem använder idag mer "moderna" språk och MEAN stack (Mongo+Express+Angular+Node) börjar användas mer och mer.
Docker är också "hett" inom dessa företag och ofta olika typer av "Hosted Cloud" börjar komma där de jobbar som i en Clod lösning men de host'ar "molnet" själva.
Det var väl detta som var själva frågan: "Om jag skulle välja ett programmeringsspråk att börja lära mig, kan ni rekommendera vilket och varför?"A Alfons3301 skrev:Ibland funderar jag på byta yrkesinriktning. Programmering är ett val som dyker upp då. Jag har inte gjort det sedan c64/Amigan när man provade på och sedan i gymnasiet på 90-talet. Det jag har arbetat mkt med är Excel, men då med enklare databashantering, PoweQuery osv.
Om jag skulle välja ett programmeringsspråk att börja lära mig, kan ni rekommendera vilket och varför?
Jag tycker de flesta som svarar i tråden i stället svarar på frågan "vilket programspråk ska jag välja om jag vill lära mig ETT enda programspråk, oavsett hur svårt, tidskrävande och dyrt det kommer att vara att lära sig det, och detta språk ska jag sedan göra karriär med under resten av mitt yrkesliv och tjäna maximalt med pengar under tiden?"
Jag svarar på de ursprungliga frågan: Python!
Varför det? Python har väldigt låg instegströskel. Du kan skriva ett program som bara är en rad långt. Allting som behövs finns att ladda ner helt fritt, för alla tänkbara operativsystem. Nätet är fullt av tutorials och tips. Om du börjar nu när du läst detta att ladda ner och installerar vad du behöver har du skrivit ditt Hello World inom 20 minuter.
Och det finns massor av roliga projekt att göra med detta språket under tiden du lär dig det. En Raspberry pi, lite elektronik och sedan lät du dig av bara farten...A andersmc skrev:Det var väl detta som var själva frågan: "Om jag skulle välja ett programmeringsspråk att börja lära mig, kan ni rekommendera vilket och varför?"
Jag tycker de flesta som svarar i tråden i stället svarar på frågan "vilket programspråk ska jag välja om jag vill lära mig ETT enda programspråk, oavsett hur svårt, tidskrävande och dyrt det kommer att vara att lära sig det, och detta språk ska jag sedan göra karriär med under resten av mitt yrkesliv och tjäna maximalt med pengar under tiden?"
Jag svarar på de ursprungliga frågan: Python!
Varför det? Python har väldigt låg instegströskel. Du kan skriva ett program som bara är en rad långt. Allting som behövs finns att ladda ner helt fritt, för alla tänkbara operativsystem. Nätet är fullt av tutorials och tips. Om du börjar nu när du läst detta att ladda ner och installerar vad du behöver har du skrivit ditt Hello World inom 20 minuter.
Renoverare
· Stockholm
· 20 193 inlägg
En till fördel med .NET är att MSIL koden är sjukt snabb (I .NET 5 och 6). Ofta lika snabb som C ibland tack vare JIT tom snabbare. Jag längtar till Unity överger Mono för .NET 6
Att Python är ett interpreterande språk, har helt klart sina fördelar. Jag använde det tex för en service mock jag skrev där kunden kan mocka alla sina externa beroenden, och jag använde Python för att styra beteendet. Kunden kan sätta upp en ny mockad endpoint på ett ögonblick. Men man kan inte komma ifrån att man saknar miljön när man jobbar i Python, även med VS Code och Python plugins så kommer man inte i närheten av VS med Resharper eller Rider.
Att Python är ett interpreterande språk, har helt klart sina fördelar. Jag använde det tex för en service mock jag skrev där kunden kan mocka alla sina externa beroenden, och jag använde Python för att styra beteendet. Kunden kan sätta upp en ny mockad endpoint på ett ögonblick. Men man kan inte komma ifrån att man saknar miljön när man jobbar i Python, även med VS Code och Python plugins så kommer man inte i närheten av VS med Resharper eller Rider.
Den allra mest spännande framtiden finns i "Quantum-computing" för t ex biologiska eller ekonomiska problem.
En helt annan värld och sätt att tänka.
Så svaret på TS fråga kanske ska vara Q# (eller nåt annat, om man som jag vill slippa Microsoft)
En helt annan värld och sätt att tänka.
Så svaret på TS fråga kanske ska vara Q# (eller nåt annat, om man som jag vill slippa Microsoft)
Det samma är sant för Node.js och jag garanterar dig att du får många fler jobberbjudanden med Node.js kunskaper än med Python!A andersmc skrev:Jag svarar på de ursprungliga frågan: Python!
Varför det? Python har väldigt låg instegströskel. Du kan skriva ett program som bara är en rad långt. Allting som behövs finns att ladda ner helt fritt, för alla tänkbara operativsystem. Nätet är fullt av tutorials och tips. Om du börjar nu när du läst detta att ladda ner och installerar vad du behöver har du skrivit ditt Hello World inom 20 minuter.
Ladda ner Node.js (LTS) och installera (https://nodejs.org/en/download/), starta en terminal och skriv:
En annan rekommendation är att börja använda Linux som "runtime" direkt. Kör man Mac är det ganska självklart men på Windows får du starta upp Windows Subsystem Linux (version 2) (WSL2).
De allra flesta kör Linux som utvecklingsmiljö och fördelen att köra i WSL för Windows användare är att alla skript fungerar rakt av mellan Mac och Windows i utveckling och det mesta (förutom .NET då kanske) körs ändå på Linux runtime (eller DOcker men det är också Linux).
Renoverare
· Stockholm
· 20 193 inlägg
Du kan faktist köra Windows i docker. En jäkla feat av dem få Windows fungera som en docker container. Men ingen kör i Windows mode (Inte ens Microsoft själva) så lite onödig satsning av dem.anders07 skrev:
Det samma är sant för Node.js och jag garanterar dig att du får många fler jobberbjudanden med Node.js kunskaper än med Python!
Ladda ner Node.js (LTS) och installera ([länk]), starta en terminal och skriv:
[bild]
En annan rekommendation är att börja använda Linux som "runtime" direkt. Kör man Mac är det ganska självklart men på Windows får du starta upp Windows Subsystem Linux (version 2) (WSL2).
De allra flesta kör Linux som utvecklingsmiljö och fördelen att köra i WSL för Windows användare är att alla skript fungerar rakt av mellan Mac och Windows i utveckling och det mesta (förutom .NET då kanske) körs ändå på Linux runtime (eller DOcker men det är också Linux).
Snabb, men inte lika snabb som optimerad C++ i benchmarks. Du betalar i princip 50-500% overhead med .NET (mer med Mono). Men optimerad C++-kod är inte så lätt att läsa...AndersMalmgren skrev:
Renoverare
· Stockholm
· 20 193 inlägg
.NET 6 med JIT ÄR optimerad maskinkod (Eftersom JIT är den optimerad för exakt den CPU som sitter). Den är on par med optimerad C, snabbare än ooptimerad (Inte i alla cases självfallet)S sjoelund skrev:
Edit: ah, ja, mono är en bastard.
Edit: Testa Span<T> i .NET 5 eller 6 den är sjukt snabbt. Tradionellt är .NET segt på bit shifting och bit manipulation, men Span typen minskar detta övertag från C
Edit: Skulle dock inte skriva en spelmotor i .NET. men att domänen rullar .NET är inget problem.
Redigerat:
Man måste ju också fundera över vilken typ av "snabbhet" man eftersöker, ska funktionen avslutas snabbt (hög CPU per funktion) eller ska många parallella funktioner avslutas snabbt (låg CPU per funktion).S sjoelund skrev:
.NET och C++ kan vara riktigt snabba men sänker ofta CPU så att om du kör många parallella trådar blir helheten långsam.
Node.js vinner väldigt mycket mark p.g.a. att den kör enkeltrådat och därför går "lätt" vilket gör att den klarar väldigt mycket parallellt vilket t.ex. mobila App'ar behöver och andra Webb och API lösningar där man behöver skala brett...
EDIT: Node.js är för övrigt skrivet i C++ och ska inte förväxlas med JavaScript i webbläsaren...
