Vad tror ni om Java's framtid?

Permalänk

Vad tror ni om Java's framtid?

Programmeringsspråket C håller på gå om Java och Java sakta och säkert sjunker, medan Python ökar allt mer.

Jag som Javaprogrammerare ser ingen anledning att använda C eller Python för grafiska applikationer, då dom har i praktiken dåligt stöd för det. Visst finns det QT-ramverk man kan använda för Python, och C++, men då ska man betala för en licens om man vill sälja mjukvaran.

För Java (OpenJDK) så är allt gratis och inga licenser krävs och Java har grymt snyggt stöd för Android och JavaFX för snygga grafiska applikationer. Ändå tappar språket popularitet.

Java har tappat ca 10% i popularitet på ca 20 år nu. Jag undrar varför?

Permalänk
Medlem

Sedan Oracle tog över Java från Sun så finns det få motiveringar för nyutveckling av större applikationer att skapas i Java skulle jag säga som ett av argumenten.
Men också att marknaden har blivit mer fragmenterad, det finns mängder med alternativ nuförtiden för backends.
Även om java lever rätt bra på att vara flertrådat så är det många lösningar som använder jvmen för att köra tex jython eller jruby just för att få flertrådigheten osv.

Permalänk
Medlem
Skrivet av Sidde:

Sedan Oracle tog över Java från Sun så finns det få motiveringar för nyutveckling av större applikationer att skapas i Java skulle jag säga som ett av argumenten.
Men också att marknaden har blivit mer fragmenterad, det finns mängder med alternativ nuförtiden för backends.
Även om java lever rätt bra på att vara flertrådat så är det många lösningar som använder jvmen för att köra tex jython eller jruby just för att få flertrådigheten osv.

Här har vi svaret. Landskapet är helt enkelt mer fragmenterat idag. Java lär leva och må bra länge, särskilt i enterprisemiljö. Nu badar dock en utvecklare i alternativ där det kan finnas flera olika utmärkta möjligheter, och kan välja mer precis utefter sin egen och organisationens behov och bakgrund. Klart att det kommer bli flera mindre ekosystem snarare än ett fåtal enorma då.

Visa signatur

8700K 5Ghz | 32GB 3200Mhz | 2080Ti 11GB | Phanteks Enthoo | Asus PG27AQ

Permalänk
Medlem

skulle vara intressant att veta hur mycket som fallit till andra språk som körs på jvm'n, som kotlin t.ex.

Visa signatur

| Ryzen 5800x | Asus prime x470 pro | Asus rtx 3080 tuf oc | Gskill 32gb 3,6ghz | Dell S2721DGFA | Asus MG279Q |

Permalänk
Skrivet av Ragin Pig:

skulle vara intressant att veta hur mycket som fallit till andra språk som körs på jvm'n, som kotlin t.ex.

Det är nog max 1% om man tittar på TIOBE statistiken. Jag tycker det är mer intressant att Oracle tillåter detta.

Permalänk
Medlem

Jag har aldrig förstått tjusningen med java. C och C++ är kristallklara, vackra, modulära språk som ger riktiga binära filer med god prestanda, och med möjlighet till inline assembler. Man kan göra precis vad man vill i de språken. C går utmärkt att använda i inbyggda system om man så vill också.

För fönsterbaserade program väljer jag däremot Delphi som är nästan lika kraftfullt som C++, men som passar bättre för småskaliga projekt.

Protoyp-program är säkert Python bra för, men Matlab gör jobbet också.

Java är ett hemskt och segt träsk som påtvingas arma studenter på grund av cross-platformgojs, men är i själva verket en vingklippt plastmiljö som i den bredden inte blir riktigt bra på något.

Visa signatur

Propaganda syftar till att göra det politiska opolitiskt.

Permalänk
Skrivet av IlyaZ:

Jag har aldrig förstått tjusningen med java. C och C++ är kristallklara, vackra, modulära språk som ger riktiga binära filer med god prestanda, och med möjlighet till inline assembler. Man kan göra precis vad man vill i de språken. C går utmärkt att använda i inbyggda system om man så vill också.

För fönsterbaserade program väljer jag däremot Delphi som är nästan lika kraftfullt som C++, men som passar bättre för småskaliga projekt.

Protoyp-program är säkert Python bra för, men Matlab gör jobbet också.

Java är ett hemskt och segt träsk som påtvingas arma studenter på grund av cross-platformgojs, men är i själva verket en vingklippt plastmiljö som i den bredden inte blir riktigt bra på något.

Orsaken varför jag kör Java har med följande punkter:

  • Enklare än C och C++ vid stora projekt. C är riktigt bra för absolut prestanda och om projektet är litet

  • Snyggt grafiskt stöd

  • Jag behöver inte kompilera om mjukvaran eller drivrutiner för mjukvaran, vilket gör det enkelt för implementering

  • Här används inga pekare

Jag tror du inte har tittat på senaste Java 12. Java 12 har följande:
https://openjdk.java.net/projects/jdk/12/

Tyvärr så har Java fortfarande fått Java-Applets och Java-Swing stämpel som verkar sitta kvar. Dessa moduler är helt utgående och JavaFX samt Java Spring är det absolut senaste om man vill skapa grafiska applikationer på kort tid som dessutom går att sälja utan licenskrav

Sedan är det viktigt att ingen arbetsgivare betalar en för att skapa en androidapplikation i C eller hemsida i C.
C++ betalas i spelindustrin eller hårdvaruindustrin för grafikkort. Annars så är det C som gäller.

Jag tror ingen skulle betala någon för att göra ett Office paket i C++. Då är det nog C# som gäller.
Allt handlar om tid i dagens läge. Kostar pengar att skapa saker i C och C++, trots att dom är mer effektiva än Java

Permalänk
Medlem
Skrivet av heretic16:

Orsaken varför jag kör Java har med följande punkter:

  • Enklare än C och C++ vid stora projekt. C är riktigt bra för absolut prestanda och om projektet är litet

  • Snyggt grafiskt stöd

  • Jag behöver inte kompilera om mjukvaran eller drivrutiner för mjukvaran, vilket gör det enkelt för implementering

  • Här används inga pekare

Jag tror du inte har tittat på senaste Java 12. Java 12 har följande:
https://openjdk.java.net/projects/jdk/12/

Tyvärr så har Java fortfarande fått Java-Applets och Java-Swing stämpel som verkar sitta kvar. Dessa moduler är helt utgående och JavaFX samt Java Spring är det absolut senaste om man vill skapa grafiska applikationer på kort tid som dessutom går att sälja utan licenskrav

Alla minns väll RuneScape?

Om dina tidigare inlägg är något att gå på är orsaken till att du kör java snarare att du inte vill utöka dina förmågor genom att lära dig fler språk. Det är självklart att du inte ser alla nackdelar med java när du sitter med skygglapparna vridna till max och aldrig beger dig utanför din bekväma zon för "där finns ändå bara sämre språk".

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Medlem
Skrivet av heretic16:

C++ betalas i spelindustrin eller hårdvaruindustrin för grafikkort. Annars så är det C som gäller.

Jag tror ingen skulle betala någon för att göra ett Office paket i C++. Då är det nog C# som gäller.
Allt handlar om tid i dagens läge. Kostar pengar att skapa saker i C och C++, trots att dom är mer effektiva än Java

Tror inte du anar hur mycket som finns i C++ där ute. Tex en stor del av vår backend (Försäkringskassan) är C++ och vidareutvecklas i det.

Permalänk
Skrivet av LemonIllusion:

Om dina tidigare inlägg är något att gå på är orsaken till att du kör java snarare att du inte vill utöka dina förmågor genom att lära dig fler språk. Det är självklart att du inte ser alla nackdelar med java när du sitter med skygglapparna vridna till max och aldrig beger dig utanför din bekväma zon för "där finns ändå bara sämre språk".

Jag vet nackdelarna med Java och det är att Java är lite lika effektivt som C++ eller C.

Jag programmerar både i C och Java. C++ har jag inte kommit i behov till.

Permalänk
Skrivet av Sidde:

Tror inte du anar hur mycket som finns i C++ där ute. Tex en stor del av vår backend (Försäkringskassan) är C++ och vidareutvecklas i det.

Hemsida i C++. Det varit något nytt

Ja, det har väll med prestanda antar jag?

Permalänk
Medlem
Skrivet av heretic16:

Jag vet nackdelarna med Java och det är att Java är lite lika effektivt som C++ eller C.

Jag programmerar både i C och Java. C++ har jag inte kommit i behov till.

Du stärker bara mitt påstående. Det handlar inte om "effektivitet" över huvud taget. Det handlar om utökad förståelse, att lära sig nya angreppsvinklar och paradigmer, inse att det finns bättre sätt att lösa problem på och därigenom bli en bättre programmerare. "if all you have is a hammer, everything looks like a nail" är skrämmande träffsäkert på var du befinner dig någonstans just nu, och du är bra envis med att stanna där också.

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Skrivet av LemonIllusion:

Du stärker bara mitt påstående. Det handlar inte om "effektivitet" över huvud taget. Det handlar om utökad förståelse, att lära sig nya angreppsvinklar och paradigmer, inse att det finns bättre sätt att lösa problem på och därigenom bli en bättre programmerare. "if all you have is a hammer, everything looks like a nail" är skrämmande träffsäkert på var du befinner dig någonstans just nu, och du är bra envis med att stanna där också.

Jo, jag vet att det viktiga med programmering är att inte lära sig själva syntaxen, utan idén bakom programmeringen. Kan man ett språk så kan man enkelt sätta sig in i ett annat språk.

Men att sätta sig in i ett språk är bara en sak. Efter man har gjort det så är det utvecklingsverktyg, ramverk och massa annat man ska kunna också.

För mig är det viktigt att man kan några fåtal språk riktigt bra t.ex. 3-4 stycken. Istället för att kunna flertal språk t.ex. 10-15 stycken halvdåligt.

Permalänk
Medlem
Skrivet av heretic16:

Hemsida i C++. Det varit något nytt

Ja, det har väll med prestanda antar jag?

Som backend, ja, en stor av vår datat som presenteras som inloggad på fk.se är levererat via c++, och längst där bak finns faktiskt cobol också. Däremot är inte presentationslagret byggt i c++.

Men viktigt att förstå är att vår verksamhet inte är hemsidan, hemsidan är bara en liten del av de system vi har. Vi har flera miljarder i anslag/budget varje år för IT-systemen... (och vi betalar ut ca 500 miljarder varje år i utbetalningar också)

Permalänk
Skrivet av Sidde:

Som backend, ja, en stor av vår datat som presenteras som inloggad på fk.se är levererat via c++, och längst där bak finns faktiskt cobol också. Däremot är inte presentationslagret byggt i c++.

Men viktigt att förstå är att vår verksamhet inte är hemsidan, hemsidan är bara en liten del av de system vi har. Vi har flera miljarder i anslag/budget varje år för IT-systemen... (och vi betalar ut ca 500 miljarder varje år i utbetalningar också)

Men då kanske C++ är en anledning varför det används då?
Är det något speciellt ramverk eller är det kodat direkt från grunden?

Jag ville börja med C++, det var också det första språk jag tog mig till. Men GUI var problemet. C++ hade inget bra GUI. Microsoft skulle ha betalt och samma sak med QT. Jag ville inte hålla på med wxWidgets eller liknande små hobby bibliotek. Jag ville köra det industrin körde. Men då kostar det, logiskt nog.

Då kom jag kontakt med Java och allt blev så mycket lättare och Java var mer för "opensource"-världen, medan stora industrier tog hand om C++.

Just nu håller jag på skriva ett grafiskt gränsnitt till Deeplearning4J. Grafiska gränsnittet kommer vara gjort i JavaFX.

Permalänk
Skrivet av heretic16:

Jo, jag vet att det viktiga med programmering är att inte lära sig själva syntaxen, utan idén bakom programmeringen. Kan man ett språk så kan man enkelt sätta sig in i ett annat språk.

Men att sätta sig in i ett språk är bara en sak. Efter man har gjort det så är det utvecklingsverktyg, ramverk och massa annat man ska kunna också.

För mig är det viktigt att man kan några fåtal språk riktigt bra t.ex. 3-4 stycken. Istället för att kunna flertal språk t.ex. 10-15 stycken halvdåligt.

Att kunna 3-4 språk riktigt bra låter oerhört krävande(orealistiskt?)!

Tror det är mer realistiskt att lära sig bredare koncept, olika designpatterns, sådant som TDD och utifrån detta kunna bygga upp stabila invanda representationer du har i huvudet. Luddigt förklarat men det jag menar är att detta är viktigare än att kunna 3-4 språk bra, försöka hitta olika typer av problem och sen inte försöka lösa alla problem med det man vet utan istället tänka på nya bättre sätt att lösa problemen på. Prova mobprogrammera eller para med ett gäng andra, du kommer märka att de alla kan lära dig något du inte visste eller ge en ny infallsvinkel på något. Något annat du kan göra är att läsa andras kod, försök notera varför något har gjorts på ett visst sätt. Har man följt något pattern du inte riktigt greppat - kan du lära dig mer?

On-topic: Precis som med det mesta annat så har branschen mognat och det finns plats för fler språk.
Såvida inte Java kan användas för något helt nytt så tror jag det kommer att tappa i popularitet, visst får Java som språk stor hjälp (samma med C++, C#) av utbildningar som gör att fler börjar där men jag tror inte det är nog.

Permalänk
Skrivet av plattangen:

Att kunna 3-4 språk riktigt bra låter oerhört krävande(orealistiskt?)!

Tror det är mer realistiskt att lära sig bredare koncept, olika designpatterns, sådant som TDD och utifrån detta kunna bygga upp stabila invanda representationer du har i huvudet. Luddigt förklarat men det jag menar är att detta är viktigare än att kunna 3-4 språk bra, försöka hitta olika typer av problem och sen inte försöka lösa alla problem med det man vet utan istället tänka på nya bättre sätt att lösa problemen på. Prova mobprogrammera eller para med ett gäng andra, du kommer märka att de alla kan lära dig något du inte visste eller ge en ny infallsvinkel på något. Något annat du kan göra är att läsa andras kod, försök notera varför något har gjorts på ett visst sätt. Har man följt något pattern du inte riktigt greppat - kan du lära dig mer?

On-topic: Precis som med det mesta annat så har branschen mognat och det finns plats för fler språk.
Såvida inte Java kan användas för något helt nytt så tror jag det kommer att tappa i popularitet, visst får Java som språk stor hjälp (samma med C++, C#) av utbildningar som gör att fler börjar där men jag tror inte det är nog.

Jag tror att många nya programmerare väljer skriptbaserade programmeringsspråk så som Python, Scala, JavaScript istället för klassiska C,C++,Java,C#.

Jag tror att det handlar om enkelheten. Java/C++/C# är ju enorma språk som tar tid att få praktisk erfarenhet, medan Python är mest bara import och sedan titta på youtube.

Så gjorde jag när jag programmerade i Python för många år sedan. Fanns liksom inget intresse att förstå koden, då allt vara expriment.

Permalänk

Att Java kommer dö ut tror jag inte på långa vägar. Stora frågan tycker jag är hur mycket Javascript kommer att ta över eftersom det verkar ta över mer och mer och det är redan ett minst lika populärt ekosystem/språk. Notera mitt ordval "hur mycket de kommer ta över" jag påstår inget om att de kommer att ta över helt.

Skrivet av heretic16:

Jag tror att många nya programmerare väljer skriptbaserade programmeringsspråk så som Python, Scala, JavaScript istället för klassiska C,C++,Java,C#.

Scala verkligen? Måste vara ovanligt med nybörjare som börjar med funktionella språk.

Skrivet av Sidde:

Tror inte du anar hur mycket som finns i C++ där ute. Tex en stor del av vår backend (Försäkringskassan) är C++ och vidareutvecklas i det.

Är det bara legacy i dessa kodbaser eller är det (åtminstone) C++11 som används i dessa system? Är nyfiken för jag själv jobbar med C++.

Permalänk
Medlem
Skrivet av Ståupptuppen:

Att Java kommer dö ut tror jag inte på långa vägar. Stora frågan tycker jag är hur mycket Javascript kommer att ta över eftersom det verkar ta över mer och mer och det är redan ett minst lika populärt ekosystem/språk. Notera mitt ordval "hur mycket de kommer ta över" jag påstår inget om att de kommer att ta över helt.

Scala verkligen? Måste vara ovanligt med nybörjare som börjar med funktionella språk.

Är det bara legacy i dessa kodbaser eller är det (åtminstone) C++11 som används i dessa system? Är nyfiken för jag själv jobbar med C++.

Det var ett kompilatorbyte till gcc? rätt nyligen så antar att de förfriskade koden lite. Är en hel del nyutveckling också i det. Jobbar så långt från den världen att jag har ingen aning vilka versioner de kör.

Permalänk

@heretic16: Du nog rätt i att de språk som man snabbt blir produktiv i tilltalar fler. Det får fler att prova på programmering och det hoppas jag vi är överens om är något bra =). Tror jag faller inom det du beskriver men har vad jag kan minnas inte sett Youtube-videos om programmering på iaf min första fyra jobbår!

Läste själv C# på universitetet men jobbade med PHP på fritiden och det slutade med att jag efter utbildningen tog ett jobb där jag arbetade med PHP. Är kvar där cirka 7 år senare. Sen när man stötte på jQuery och senare React så blev det just det här att det öppnade upp helt nya möjligheter relativt enkelt något som gjorde det klart mer intressant än att titta på andra språk för backenden.

Permalänk
Skrivet av plattangen:

@heretic16: Du nog rätt i att de språk som man snabbt blir produktiv i tilltalar fler. Det får fler att prova på programmering och det hoppas jag vi är överens om är något bra =). Tror jag faller inom det du beskriver men har vad jag kan minnas inte sett Youtube-videos om programmering på iaf min första fyra jobbår!

Läste själv C# på universitetet men jobbade med PHP på fritiden och det slutade med att jag efter utbildningen tog ett jobb där jag arbetade med PHP. Är kvar där cirka 7 år senare. Sen när man stötte på jQuery och senare React så blev det just det här att det öppnade upp helt nya möjligheter relativt enkelt något som gjorde det klart mer intressant än att titta på andra språk för backenden.

Jag har inte förstått vad Javascript är för något. Är det typ "Java/C++/C" fast för GUI hos en webbläsare?

Permalänk
Medlem

JavaScript är ett helt eget scriptspråk som bara liknar Java ytligt, men som inte har någon vidare typsäkerhet eller andra stöd man förväntar sig av andra språk.

Permalänk
Medlem
Skrivet av heretic16:

Jag har inte förstått vad Javascript är för något. Är det typ "Java/C++/C" fast för GUI hos en webbläsare?

https://en.wikipedia.org/wiki/JavaScript

Permalänk
Datavetare
Skrivet av Ragin Pig:

skulle vara intressant att veta hur mycket som fallit till andra språk som körs på jvm'n, som kotlin t.ex.

Kotlin lär ha en ljus framtid givet att det pushas hårt på Android. Google gör helt rätt då deras förhållande till Oracle (som kontrollerar Java) är minst sagt "ansträngt" just nu

Personligen hoppas jag Kotlin tar fart på traditionella Java-områden. Likt Scala gör Kotlin det trivialt att använda existerande Java-bibliotek rakt av. Som språk tycker jag Kotlin kan bäst beskrivas som "Java-done-right".

Java är tre olika saker

  • Språket: här finns en del att önska även om det har blivit bättre i senare versioner

  • Standardbiblioteket: typ "allt" finns, men börjar bli väl mycket junk och skulle nog må bra av en rejäl städning

  • Plattformen(JVM): här är punkten där man riktigt lyckas, det är en lysande plattform med fantastisk prestanda i rätt miljö

Sista punkten är ju primära orsaken till att många nya språk återanvänder plattformen.

Skrivet av heretic16:

Orsaken varför jag kör Java har med följande punkter:

  • Enklare än C och C++ vid stora projekt. C är riktigt bra för absolut prestanda och om projektet är litet

  • Snyggt grafiskt stöd

  • Jag behöver inte kompilera om mjukvaran eller drivrutiner för mjukvaran, vilket gör det enkelt för implementering

  • Här används inga pekare

Jag tror du inte har tittat på senaste Java 12. Java 12 har följande:
https://openjdk.java.net/projects/jdk/12/

Tyvärr så har Java fortfarande fått Java-Applets och Java-Swing stämpel som verkar sitta kvar. Dessa moduler är helt utgående och JavaFX samt Java Spring är det absolut senaste om man vill skapa grafiska applikationer på kort tid som dessutom går att sälja utan licenskrav

Sedan är det viktigt att ingen arbetsgivare betalar en för att skapa en androidapplikation i C eller hemsida i C.
C++ betalas i spelindustrin eller hårdvaruindustrin för grafikkort. Annars så är det C som gäller.

Jag tror ingen skulle betala någon för att göra ett Office paket i C++. Då är det nog C# som gäller.
Allt handlar om tid i dagens läge. Kostar pengar att skapa saker i C och C++, trots att dom är mer effektiva än Java

Inga pekare i Java? NullPointerException...

Java har pekare, hade man gjort allt "rätt" hade det verkligen kunnat designats så att "null" kunnat undvikas. Dock inte säker att det hade varit att föredra.

Java har en väldigt restriktiv variant av pekare, specifikt tillåter man inte pekararitmitik vilket hindrar en hel del sätt att skjuta sig i foten. Men det hindrar också vissa riktigt fina prestandaoptimeringar samt gör vissa typer av programvara i praktiken omöjlig att utveckla (drivrutiner och annat som jobbar direkt mot HW/RAM).

I C/C++ skulle man kalla det Java har för "handle". En indirekt pekare till någon resurs. Att den är indirekt gör att man kan flytta platsen där tillståndet för det man pekar på är lagrat utan att handtaget behöver ändras. Java utnyttjar det i sin garbage collector (hade inte gått att packa saker i RAM annars, men finns språk med GC och direkta pekar och borde vara fullt möjligt att köra direkta pekar som implementation även i Java).

Angående officepaket. Nämn ett enda relevant Officepaket som inte är primärt utvecklat i C++ utöver iWork (som är utvecklat primärt i Obj-C).

Skrivet av heretic16:

Men då kanske C++ är en anledning varför det används då?

Kan se två primära grundorsaker till att använda C++ idag

  • Prestanda är kritiskt, ledordet för C++ är "you only pay for what you use". Språk som Java & C# har en kostnad i RAM och i vissa lägen prestanda som du måste betala vare sig du använder det eller ej

  • Kodbasen använder redan C++. Majoriteten av alla program du använder daglig dags är skrivna i C++, exempel är din webbläsare, ditt office program, din java kompilatorn och JVM, dina spel

Skrivet av ehsnils:

JavaScript är ett helt eget scriptspråk som bara liknar Java ytligt, men som inte har någon vidare typsäkerhet eller andra stöd man förväntar sig av andra språk.

Termen "scriptspråk" är väldigt löst definierat och betyder tyvärr rätt olika saker för olika personer.

BASH och PowerShell är exempel på domänspecifika språk, dessa är inriktade på att automatisera olika former av sekvenser man kan göra i "skalet" på sitt system.

Att kalla JavaScript, Python, Ruby och liknande för "scriptspråk" känns för mig rätt fel. Visst finns det folk som använder dessa för just för att automatisera uppgifter där man lika gärna skulle kunna använt vad för mig är "scriptspråk" som BASH, PowerShell etc.

JS, Python och Ruby är alla generella programmeringsspråk där den enda riktigt hårda gemensamma nämnare är att de alla inte kräver ett separat kompileringssteg samt att de alla är dynamiskt typade. Men de är alla just generella programmeringsspråk, inte domän specifika. Vidare är JS väldigt "svagt" typat medan Python är väldigt "starkt" typat.

Håller med om att JS inte har något vidare typsäkerhet, men det gäller även för C som må vara statiskt typat (likt C++, C#, Java m.fl.) men C är tyvärr lite väl "svagt" typad på många håll. Implicit konvertering av alla pekartyper till void*, implicit konvertering mellan heltalstyper/flyttalstyper (som tyvärr även C++, C# och Java ärvt, bara några få som t.ex. Go där man fått till detta "rätt").

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

Många intressanta tankegångar i tråden. Jag tror att Kotlin och Scala kan förklara en del av Java:s nedgång men också ett motstånd mot Oracle kan ha med saken att göra. Även om OpenJDK finns så upplever jag att det finns en oro i branchen för vad Oracle ska göra och vad alla rättighetsstrider mellan Oracle och Google kommer mynna ut i. Det kan finnas en risk att Java inte får användas lika fritt som tidigare.

Vidare tror jag också att en del av förklaringen är övergång till mer och med microtjänster snarare än stora monoliter vilket medger att välja lämpligt språk för just den microtjänsten snarare än att all kod måste vara ett specifikt språk. Java är ju inte alltid nödvändigt och en microtjänst kanske blir enklare om den skrivs i något annat språk.

Permalänk
Medlem

@heretic16:

Java är inte gratis för företag längre, man måste teckna ett enterprise avtal med oracel för att få köra Java runtime eller vad den heter. Priset ligger på 500:- per användare och år.

Det är ganska nytt och det har gjort att mitt företag har stoppat inköp av allt som kräver Java runtime. Det gäller även system med javaconsoler eller hårdvara med java buildt-in.

Så Java är dödsdömt på PC.

Visa signatur

Moderkort: MSI MPG X570 Gaming plus CPU: Ryzen 7 5700X3D
RAM: Crucial Ballistix 16GB DDR4 3600 MHz Kylning: Noctua NH-D15 chromax.black Lagring: 4 x Samsung 840 Pro 500GB
Grafikkort :Sapphire Radeon™ RX 6950 XT PURE NITRO+ Nätaggregat: EVGA SuperNOVA 750 G2
Chassi: Fractal Design Define Vision S2 Blackout Monitor: HP OMEN 27 & Acer XF270HUC
Tangentbord: Corsair Gaming Strafe RGB MX SILENT Mus: SteelSeries Rival 700

Permalänk
Skrivet av Yoshman:

Kotlin lär ha en ljus framtid givet att det pushas hårt på Android. Google gör helt rätt då deras förhållande till Oracle (som kontrollerar Java) är minst sagt "ansträngt" just nu

Personligen hoppas jag Kotlin tar fart på traditionella Java-områden. Likt Scala gör Kotlin det trivialt att använda existerande Java-bibliotek rakt av. Som språk tycker jag Kotlin kan bäst beskrivas som "Java-done-right".

Java är tre olika saker

  • Språket: här finns en del att önska även om det har blivit bättre i senare versioner

  • Standardbiblioteket: typ "allt" finns, men börjar bli väl mycket junk och skulle nog må bra av en rejäl städning

  • Plattformen(JVM): här är punkten där man riktigt lyckas, det är en lysande plattform med fantastisk prestanda i rätt miljö

Sista punkten är ju primära orsaken till att många nya språk återanvänder plattformen.

Inga pekare i Java? NullPointerException...

Java har pekare, hade man gjort allt "rätt" hade det verkligen kunnat designats så att "null" kunnat undvikas. Dock inte säker att det hade varit att föredra.

Java har en väldigt restriktiv variant av pekare, specifikt tillåter man inte pekararitmitik vilket hindrar en hel del sätt att skjuta sig i foten. Men det hindrar också vissa riktigt fina prestandaoptimeringar samt gör vissa typer av programvara i praktiken omöjlig att utveckla (drivrutiner och annat som jobbar direkt mot HW/RAM).

I C/C++ skulle man kalla det Java har för "handle". En indirekt pekare till någon resurs. Att den är indirekt gör att man kan flytta platsen där tillståndet för det man pekar på är lagrat utan att handtaget behöver ändras. Java utnyttjar det i sin garbage collector (hade inte gått att packa saker i RAM annars, men finns språk med GC och direkta pekar och borde vara fullt möjligt att köra direkta pekar som implementation även i Java).

Angående officepaket. Nämn ett enda relevant Officepaket som inte är primärt utvecklat i C++ utöver iWork (som är utvecklat primärt i Obj-C).

Kan se två primära grundorsaker till att använda C++ idag

  • Prestanda är kritiskt, ledordet för C++ är "you only pay for what you use". Språk som Java & C# har en kostnad i RAM och i vissa lägen prestanda som du måste betala vare sig du använder det eller ej

  • Kodbasen använder redan C++. Majoriteten av alla program du använder daglig dags är skrivna i C++, exempel är din webbläsare, ditt office program, din java kompilatorn och JVM, dina spel

Termen "scriptspråk" är väldigt löst definierat och betyder tyvärr rätt olika saker för olika personer.

BASH och PowerShell är exempel på domänspecifika språk, dessa är inriktade på att automatisera olika former av sekvenser man kan göra i "skalet" på sitt system.

Att kalla JavaScript, Python, Ruby och liknande för "scriptspråk" känns för mig rätt fel. Visst finns det folk som använder dessa för just för att automatisera uppgifter där man lika gärna skulle kunna använt vad för mig är "scriptspråk" som BASH, PowerShell etc.

JS, Python och Ruby är alla generella programmeringsspråk där den enda riktigt hårda gemensamma nämnare är att de alla inte kräver ett separat kompileringssteg samt att de alla är dynamiskt typade. Men de är alla just generella programmeringsspråk, inte domän specifika. Vidare är JS väldigt "svagt" typat medan Python är väldigt "starkt" typat.

Håller med om att JS inte har något vidare typsäkerhet, men det gäller även för C som må vara statiskt typat (likt C++, C#, Java m.fl.) men C är tyvärr lite väl "svagt" typad på många håll. Implicit konvertering av alla pekartyper till void*, implicit konvertering mellan heltalstyper/flyttalstyper (som tyvärr även C++, C# och Java ärvt, bara några få som t.ex. Go där man fått till detta "rätt").

Bra skrivet och sammanfattat!

Är man intresserad av JavaScript men känner mer för det här med typer så finns TypeScript.
TypeScript är ett språk som tagits fram av Microsoft och använder samma syntax som JavaScript(och kompileras till JS) och med viktigaste tillägget att det har statisk typing. Om någon är intresserad så läs här: https://www.typescriptlang.org/docs/handbook/typescript-in-5-...

Permalänk
Medlem
Skrivet av robbankentor:

@heretic16:

Java är inte gratis för företag längre, man måste teckna ett enterprise avtal med oracel för att få köra Java runtime eller vad den heter. Priset ligger på 500:- per användare och år.

Det är ganska nytt och det har gjort att mitt företag har stoppat inköp av allt som kräver Java runtime. Det gäller även system med javaconsoler eller hårdvara med java buildt-in.

Så Java är dödsdömt på PC.

Ja det är synd att det inte är gratis längre men var är gratis nu för tiden?

Tex. Visual Studio Enterpris ligger på 10'000kr/år och då måste användarna också betala för ett OS som kostar pengar.
https://visualstudio.microsoft.com/vs/pricing/

Där jag jobbar så är verktygen för Java helt gratis tex. Eclipse eller Netbeans och sedan används OpenJDK.

Permalänk
Medlem
Skrivet av heretic16:

Orsaken varför jag kör Java har med följande punkter:

  • Enklare än C och C++ vid stora projekt. C är riktigt bra för absolut prestanda och om projektet är litet

  • Snyggt grafiskt stöd

  • Jag behöver inte kompilera om mjukvaran eller drivrutiner för mjukvaran, vilket gör det enkelt för implementering

  • Här används inga pekare

Jag tror du inte har tittat på senaste Java 12. Java 12 har följande:
https://openjdk.java.net/projects/jdk/12/

Tyvärr så har Java fortfarande fått Java-Applets och Java-Swing stämpel som verkar sitta kvar. Dessa moduler är helt utgående och JavaFX samt Java Spring är det absolut senaste om man vill skapa grafiska applikationer på kort tid som dessutom går att sälja utan licenskrav

Sedan är det viktigt att ingen arbetsgivare betalar en för att skapa en androidapplikation i C eller hemsida i C.
C++ betalas i spelindustrin eller hårdvaruindustrin för grafikkort. Annars så är det C som gäller.

Jag tror ingen skulle betala någon för att göra ett Office paket i C++. Då är det nog C# som gäller.
Allt handlar om tid i dagens läge. Kostar pengar att skapa saker i C och C++, trots att dom är mer effektiva än Java

Ja visst finns det många orsaker till Java och några av de stora fördelarna är att språket ständigt utvecklas och har en enormt stor community. Sedan finns det en valfrihet som inte finns hos något annat språk gällande valfrihet och variationer för olika ramverk.
Allt från de som tillhandahålls från Apache till mängder från andra andra företag som tex. Google Guice och Spring Cloud.

Jag har arbetat en del inom bankvärlden här i Sverige och där har det uteslutande varit Java som har använts för backend tjänsterna.

En av orsakerna har varit just den flexibilitet man får med valfriheten gällande de ramverk som finns.

Så för många utvecklare och företag handlar det inte bara om språket UTAN faktiskt även om vad som är möjligt att använda språket och dess olika ramverk till.

Permalänk
Skrivet av Yoshman:

Kotlin lär ha en ljus framtid givet att det pushas hårt på Android. Google gör helt rätt då deras förhållande till Oracle (som kontrollerar Java) är minst sagt "ansträngt" just nu

Personligen hoppas jag Kotlin tar fart på traditionella Java-områden. Likt Scala gör Kotlin det trivialt att använda existerande Java-bibliotek rakt av. Som språk tycker jag Kotlin kan bäst beskrivas som "Java-done-right".

Java är tre olika saker

  • Språket: här finns en del att önska även om det har blivit bättre i senare versioner

  • Standardbiblioteket: typ "allt" finns, men börjar bli väl mycket junk och skulle nog må bra av en rejäl städning

  • Plattformen(JVM): här är punkten där man riktigt lyckas, det är en lysande plattform med fantastisk prestanda i rätt miljö

Kotlin och Scala har ljus framtid, för att dom är funktionella språk?

Jag undrar också hur Oracle kommer aggera när dom inser att Kotlin börjar sparka ut Java på Androidsidan? Det har ju redan börjat.