Permalänk
Medlem
Skrivet av Sidde:

Det är väldigt vanligt i delsystem i större system skulle jag säga. Oavsett om det är legacy eller inte.
Se på alla projekt som är skrivna i C/C++ i opensource-världen. Allt hela OS, till databasservrar till webservrar till små utilities.
Varför skulle dessa vara skrivna i C eller C++?

Tror inte du ska lyssna så mycket på specifika youtubers dock. Datorindustrin är stor och har man aldrig rört sig i tex större miljöer så kanske man heller inte sett vad saker används till.

Java är dessutom enormt resurshungriga. Vi hade mängder med java-applikationsservrar redan för 10år sedan som hade 256GB RAM och mer till exempel. Det är inte ekonomiskt eller speciellt effektivt att använda java överallt.

256GB RAM? Mellanlagrade ni internet i minne?

Java är hungrigt men inte så hungrigt. Har kört webbservrar med databaskoppling på 64 MB—vilket i dagens mått mätt är rätt resonligt. Nu för tiden går det också att kompilera bytecode AOT med Graal, vilket jag hört ska dra ner minnesanvändningen ytterligare.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

256GB RAM? Mellanlagrade ni internet i minne?

Java är hungrigt men inte så hungrigt. Har kört webbservrar med databaskoppling på 64 MB—vilket i dagens mått mätt är rätt resonligt. Nu för tiden går det också att kompilera bytecode AOT med Graal, vilket jag hört ska dra ner minnesanvändningen ytterligare.

Är helt normalt skulle jag säga i större lösningar. Även klart mer RAM än så också.

Edit: Tillägger lite.
En av de stora anledningarna till att det blir så mycket ram eller stora mängder cpuer, typ 128/256 trådar eller liknande är ofta att det är billigare att kasta hårdvara på ett problem än att koda om något. I vårt fall handlar det om att det är oerhört kostsamt prestandamässigt och komplexitetsmässigt att dela upp stycken av applikationerna när det är designat för att dela många resurser.

Det har däremot pågått ett större arbete under många år att göra just detta och nu är det containerplattformar och microservices som gäller. Men även där är det sjukt svårt att få ner mer komplexa java-applikationer till storlekar som tex 2-8GB RAM som en container kanske bör ha. Utan vi lever med att det kanske går att få ner bitarna till 16-64GB RAM.

Permalänk
Medlem

Heretic, jag vet inte varför du sprider så mycket hat mot allt som inte är Java. Idag finns det mycket mer att välja på och det är bra att det finns olika verktyg till olika saker. Det senaste året har jag jobbat med C#, Go, Java, Groovy(Ett slags skript för Java, faktiskt rätt nice), Javascript, Python, Shell script och Kotlin. För att inte nämna omkringliggande teknologier så som AWS, Docker, Gradle etc. Allting har sin plats och det är inte ovanligt att vi i ett enda projekt använder 3-4 olika språk. Ska jag välja ett favoritspråk är det nog C# dock, oerhört cleant och snyggt, modernt älskar verkligen LINQ och Visual Studio. Tyvärr inte gångbart på mitt nuvarande ställe dock, kör Linux på allt. C är även det oerhört trevligt men C++ gör jag inte mycket för. Det är för komplicerat och det är så lätt att göra misstag med pekare.

Skrivet av Sidde:

Är helt normalt skulle jag säga i större lösningar. Även klart mer RAM än så också.

Edit: Tillägger lite.
En av de stora anledningarna till att det blir så mycket ram eller stora mängder cpuer, typ 128/256 trådar eller liknande är ofta att det är billigare att kasta hårdvara på ett problem än att koda om något. I vårt fall handlar det om att det är oerhört kostsamt prestandamässigt och komplexitetsmässigt att dela upp stycken av applikationerna när det är designat för att dela många resurser.

Det har däremot pågått ett större arbete under många år att göra just detta och nu är det containerplattformar och microservices som gäller. Men även där är det sjukt svårt att få ner mer komplexa java-applikationer till storlekar som tex 2-8GB RAM som en container kanske bör ha. Utan vi lever med att det kanske går att få ner bitarna till 16-64GB RAM.

Samma här men vi är begränsade till gränserna på AWS Lambda, där är det 3GB RAM och 500MB lagring. Som tur är våra filer bara runt 2GB så vi kör allting in memory, lite snabbare och enklare att hantera också. Vi hade en snubbe (gubbe?) som för ett år sedan byggde ett helt nytt system i Java2EE(!) som vi nu håller på att migrera till molnet. Helt sjukt, fattar inte hur han fick igenom det..det är hopplöst invecklat såfort man ska ändra något. Nu har vi inte en enda comitt på det på över 4 månader, rädda för att allt kommer gå kaboom. Angående att dela resurser så försöker vi avveckla våra uråldriga MySQL databaser och spara allting i antigen filer eller fildatabaser som MongoDB t ex. Vi har skräckscenario med sparad JSON i kolumner i MySQL databaserna. Hopplöst när man ska ut något.

Permalänk
Skrivet av Baxtex:

Heretic, jag vet inte varför du sprider så mycket hat mot allt som inte är Java. Idag finns det mycket mer att välja på och det är bra att det finns olika verktyg till olika saker. Det senaste året har jag jobbat med C#, Go, Java, Groovy(Ett slags skript för Java, faktiskt rätt nice), Javascript, Python, Shell script och Kotlin. För att inte nämna omkringliggande teknologier så som AWS, Docker, Gradle etc. Allting har sin plats och det är inte ovanligt att vi i ett enda projekt använder 3-4 olika språk. Ska jag välja ett favoritspråk är det nog C# dock, oerhört cleant och snyggt, modernt älskar verkligen LINQ och Visual Studio. Tyvärr inte gångbart på mitt nuvarande ställe dock, kör Linux på allt. C är även det oerhört trevligt men C++ gör jag inte mycket för. Det är för komplicerat och det är så lätt att göra misstag med pekare.

Samma här men vi är begränsade till gränserna på AWS Lambda, där är det 3GB RAM och 500MB lagring. Som tur är våra filer bara runt 2GB så vi kör allting in memory, lite snabbare och enklare att hantera också. Vi hade en snubbe (gubbe?) som för ett år sedan byggde ett helt nytt system i Java2EE(!) som vi nu håller på att migrera till molnet. Helt sjukt, fattar inte hur han fick igenom det..det är hopplöst invecklat såfort man ska ändra något. Nu har vi inte en enda comitt på det på över 4 månader, rädda för att allt kommer gå kaboom. Angående att dela resurser så försöker vi avveckla våra uråldriga MySQL databaser och spara allting i antigen filer eller fildatabaser som MongoDB t ex. Vi har skräckscenario med sparad JSON i kolumner i MySQL databaserna. Hopplöst när man ska ut något.

Jag tror du behöver glasögon. Hat? Gärna citera mitt hat, tack.

Jag beskrev bara det jag använder och varför jag använder det. Mycket handlar om att jag kan inget annat.

Permalänk
Skrivet av Baxtex:

Vi hade en snubbe (gubbe?) som för ett år sedan byggde ett helt nytt system i Java2EE(!) som vi nu håller på att migrera till molnet. Helt sjukt, fattar inte hur han fick igenom det..det är hopplöst invecklat såfort man ska ändra något.

Förstår inte riktigt denna rad, de som utvecklar Javasystem brukar väl använda Java Enterprise, vad är det som är så ofattbart med att han fick igenom ett sånt system? Kodar inte i det själv eller är en fan av Java ekosystemet, men var och vart annat system verkar ju vara byggt i det så jag ser inte riktigt det abnormala i det specifika fallet.

Permalänk
Medlem
Skrivet av Baxtex:

Vi hade en snubbe (gubbe?) som för ett år sedan byggde ett helt nytt system i Java2EE(!) som vi nu håller på att migrera till molnet. Helt sjukt, fattar inte hur han fick igenom det..det är hopplöst invecklat såfort man ska ändra något. Nu har vi inte en enda comitt på det på över 4 månader, rädda för att allt kommer gå kaboom. Angående att dela resurser så försöker vi avveckla våra uråldriga MySQL databaser och spara allting i antigen filer eller fildatabaser som MongoDB t ex. Vi har skräckscenario med sparad JSON i kolumner i MySQL databaserna. Hopplöst när man ska ut något.

Skrivet av Ståupptuppen:

Förstår inte riktigt denna rad, de som utvecklar Javasystem brukar väl använda Java Enterprise, vad är det som är så ofattbart med att han fick igenom ett sånt system? Kodar inte i det själv eller är en fan av Java ekosystemet, men var och vart annat system verkar ju vara byggt i det så jag ser inte riktigt det abnormala i det specifika fallet.

Håller med, vad är det som är problemet med Java EE? En enterpriseapplikation i java är byggt i Java EE eller med Spring framework.

Visa signatur

WS: Mac Studio M1 Max | 32 GB | 1TB | Mac OS
WS: Intel i5 12600K | 64 GB DDR4 @3600 Mhz | 2x1TB nvme 2x1TB SSD SATA | Windows 11 & Manjaro Linux
Bärbar: Macbook Pro 14" | M1 Pro | 16GB RAM | 512GB SSD | Mac OS
Servrar: Intel i7 10700K | 64 GB DDR4 @3600Mhz | 3 TB SSD + 22TB HDD | Unraid |
4x Raspberry pi 4b 8Gb | Dietpi |

Permalänk
Medlem
Skrivet av heretic16:

Jag tror du behöver glasögon. Hat? Gärna citera mitt hat, tack.

Jag beskrev bara det jag använder och varför jag använder det. Mycket handlar om att jag kan inget annat.

Hat är kanske overkill men du har flera inlägga både i denna tråden och andra där du klankar ner på allt som inte är Java.

Skrivet av Ståupptuppen:

Förstår inte riktigt denna rad, de som utvecklar Javasystem brukar väl använda Java Enterprise, vad är det som är så ofattbart med att han fick igenom ett sånt system? Kodar inte i det själv eller är en fan av Java ekosystemet, men var och vart annat system verkar ju vara byggt i det så jag ser inte riktigt det abnormala i det specifika fallet.

Skrivet av SanTeoX:

Håller med, vad är det som är problemet med Java EE? En enterpriseapplikation i java är byggt i Java EE eller med Spring framework.

https://doc.networknt.com/architecture/jee-is-dead/
https://arstechnica.com/information-technology/2016/07/how-or...

J2EE är dött och utvecklas inte längre. Att använda J2EE för nya projekt år 2018 är helt knäppt men denna snubben kunde inget annat och ville inte lära sig något annat heller. Det finns liksom ingen större anledning att bygga massiva projekt med service buses, Servlets etc. Det är onödigt komplext när molnet kan fixa allt det automatiskt. Med J2EE så blandade man programmet med hur det faktiskt ska köra så det blir ingen riktig separation of concern. Tänk att detta ska rulla på i kanske 10-15 år, okej om han gjorde detta för 15 år sedan men inte idag. Projektet tog onödigt lång tid att utveckla och var/är svårt att underhålla och inte speciellt bra rent prestandamässigt. Att slippa ta hand om servern, spendera timvis med kryptiska loggar är anledning nog för att flytta upp det till molnet. Då slipper vi automatiskt allt serverunderhåll, får tydliga loggar vi snabbt kan modifiera och köra queries på var som helst i från. Automatiskt skalning beroende på antalet användare. Snabba deploy tider, om vi har en fix tar det inte mer än 5 minuter att köra Gradle bygget så är det uppe. Dessutom gör vi allt i mindre moduler (Micro services) så vi behöver inte deploya allting varje gång vi behöver en liten ändring utan ändringarna blir mer isolerade och därmed blir det lättare att felsöka när något går snett.

Permalänk
Medlem
Skrivet av Baxtex:

Hat är kanske overkill men du har flera inlägga både i denna tråden och andra där du klankar ner på allt som inte är Java.

https://doc.networknt.com/architecture/jee-is-dead/
https://arstechnica.com/information-technology/2016/07/how-or...

J2EE är dött och utvecklas inte längre. Att använda J2EE för nya projekt år 2018 är helt knäppt men denna snubben kunde inget annat och ville inte lära sig något annat heller. Det finns liksom ingen större anledning att bygga massiva projekt med service buses, Servlets etc. Det är onödigt komplext när molnet kan fixa allt det automatiskt. Med J2EE så blandade man programmet med hur det faktiskt ska köra så det blir ingen riktig separation of concern. Tänk att detta ska rulla på i kanske 10-15 år, okej om han gjorde detta för 15 år sedan men inte idag. Projektet tog onödigt lång tid att utveckla och var/är svårt att underhålla och inte speciellt bra rent prestandamässigt. Att slippa ta hand om servern, spendera timvis med kryptiska loggar är anledning nog för att flytta upp det till molnet. Då slipper vi automatiskt allt serverunderhåll, får tydliga loggar vi snabbt kan modifiera och köra queries på var som helst i från. Automatiskt skalning beroende på antalet användare. Snabba deploy tider, om vi har en fix tar det inte mer än 5 minuter att köra Gradle bygget så är det uppe. Dessutom gör vi allt i mindre moduler (Micro services) så vi behöver inte deploya allting varje gång vi behöver en liten ändring utan ändringarna blir mer isolerade och därmed blir det lättare att felsöka när något går snett.

Vill bara flika in lite offtopic. Men om man ska bygga något som ska vara i 10-15år är molntjänster verkligen inte det mest lämpliga stället att placera saker på. Alldeles för mycket kan förändras där ute, företag köps upp, teknologier fasas ut osv.
Håller med om att J2EE inte är det man bör bygga i, men man borde vara väldigt försiktig om man konsumerar andras tjänster om man har en tidshorisont på mer än några år. Lambda är ju tex som byggt för vendor lockins där man är fast, och de kan diktera villkoren helt själva.
Personligen skulle jag aldrig någonsin lägga ens verksamhet i det stora molnet om det är kritiskt för ens egna business om man inte byggt något som är sjukt lätt att flytta mellan tjänster. Tex köpa IaaS enbart.

Permalänk
Medlem
Skrivet av Baxtex:

Hat är kanske overkill men du har flera inlägga både i denna tråden och andra där du klankar ner på allt som inte är Java.

https://doc.networknt.com/architecture/jee-is-dead/
https://arstechnica.com/information-technology/2016/07/how-or...

J2EE är dött och utvecklas inte längre. Att använda J2EE för nya projekt år 2018 är helt knäppt men denna snubben kunde inget annat och ville inte lära sig något annat heller. Det finns liksom ingen större anledning att bygga massiva projekt med service buses, Servlets etc. Det är onödigt komplext när molnet kan fixa allt det automatiskt. Med J2EE så blandade man programmet med hur det faktiskt ska köra så det blir ingen riktig separation of concern. Tänk att detta ska rulla på i kanske 10-15 år, okej om han gjorde detta för 15 år sedan men inte idag. Projektet tog onödigt lång tid att utveckla och var/är svårt att underhålla och inte speciellt bra rent prestandamässigt. Att slippa ta hand om servern, spendera timvis med kryptiska loggar är anledning nog för att flytta upp det till molnet. Då slipper vi automatiskt allt serverunderhåll, får tydliga loggar vi snabbt kan modifiera och köra queries på var som helst i från. Automatiskt skalning beroende på antalet användare. Snabba deploy tider, om vi har en fix tar det inte mer än 5 minuter att köra Gradle bygget så är det uppe. Dessutom gör vi allt i mindre moduler (Micro services) så vi behöver inte deploya allting varje gång vi behöver en liten ändring utan ändringarna blir mer isolerade och därmed blir det lättare att felsöka när något går snett.

Tycker inte heller man bör använda java ee vid nyutveckling utan istället använda spring och spring boot om man kör java. Jag skulle gärna välja java vid nyutveckling av en server. Det är ett enormt stort språk och kommer vara det för en lång tid framöver också.
Oracle har ju lämnat över java ee till Eclipse Foundation så det lär väl leva vidare och utvecklas där. (Jakarta EE)

https://www.zdnet.com/google-amp/article/good-bye-jee-hello-j...

Spring-ramverket är det full utveckling på och med det slipper man skriva en hel del kod, man kan fokusera mer på sin domänlogik.

Skickades från m.sweclockers.com

Visa signatur

WS: Mac Studio M1 Max | 32 GB | 1TB | Mac OS
WS: Intel i5 12600K | 64 GB DDR4 @3600 Mhz | 2x1TB nvme 2x1TB SSD SATA | Windows 11 & Manjaro Linux
Bärbar: Macbook Pro 14" | M1 Pro | 16GB RAM | 512GB SSD | Mac OS
Servrar: Intel i7 10700K | 64 GB DDR4 @3600Mhz | 3 TB SSD + 22TB HDD | Unraid |
4x Raspberry pi 4b 8Gb | Dietpi |

Permalänk
Datavetare
Skrivet av heretic16:

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.

Termen "funktionella språk" är väldigt ofta missbrukad. Tar man språk som Haskell kan man prata om "funktionellt språk" då det egentligen den enda modell man förväntas använda för saker skrivna där. Även om det är möjligt att skriva imperativ kod i Haskell är det rätt meningslöst.

Språk som Scala och Kotlin har syntaktiskt socker för att möjliggöra funktionella programmering där det är vettigt. Ett typiskt Scala-program innehåller gissningsvis betydligt mer funktionella moment än ett typiskt Kotlin-program.

Man samma sak kan sägas om C#, Java, C++, Go, Swift m.fl. Normalfallet i dessa är inte funktionell programmering, men alla dessa har specifika språkkonstruktioner riktade mot funktionell programmering.

Just av den orsaken tror jag "rena" funktionella språk inte kommer slå på bred front. CPU/GPUer är tok-optimerade för "mutable-state", vilket rimmar illa med funktionell programmering. Finns ändå en rad fall där fördelarna med funktionell programmering överväger nackdelarna, men de fallet täcker man i allt större grad enkelt in med de "vanliga" programspråken.

Min personliga åsikt om Scala är att det kommer aldrig ta fart då det är ett allt för komplicerat språk. Samma kan sägas om C++, men skillnaden där är att C++ skapades i en tid när konkurrensen var långt mindre så det språket har redan lyckas trots att det är överkomplicerat.

Kotlin har inte det problemet, det är ett på i princip alla sätt ett bättre Java (Java-done-right).

Skrivet av heretic16:

Jag har hört motsatsen, redan för 1 månad sedan. Att QT kostar om man ska utveckla kommersiellt.

https://www.qt.io/faq/

Bibliotek med LGPL kan i praktiken användas i kommersiella program utan problem. Qt's kommersiella licens behövs bara av de som behöver modifiera själva Qt-biblioteken och inte vill göra dessa förändringar öppna.

Men varför inte använda Webbläsaren eller Electron som UI-ramverk 2019???

Skrivet av heretic16:

Men är inte C++ lite...unikt...för beckend? Det kanske har hängt kvar redan från början?

Jag menar, jag har tittat på Stefan Mishook och han har aldrig nämnt att C++ brukar användas som beckend, utan mest bara för spelprogrammering eller hantering av grafik.
https://www.youtube.com/channel/UCyUBW72KU30dfAYWLVNZO8Q

Jag hade valt Java i alla dagar om det rör sig kring stora projekt och stora affärer.

Jag följer CppCast och de har nästan aldrig nämnt något annat än projekt som kör C++ både i front-end, back-end, middle-end

C++ är allt annat än unikt för back-end om man tittar på större system, t.ex. använder Google, Facebook och Microsoft massiva mängder C++ kod i deras system. C++ är däremot helt utraderat för små och medelstora system, där hittar du nog ~99 % av alla som konsultar inom IT i Sverige.

Men precis som Java används knappast C++ idag för att det är bäst, eller ens ett bra val. Dessa används för att de är mogna miljöer med stabila tool-chains. De används p.g.a. att det finns en massiv mängd redan existerande mängd programvara man kan använda som byggstenar.

Kan inte se en enda orsak att välja vare sig C++ eller Java om jag fick starta från scratch. I C++ har man ett jätteproblem med att många bibliotek använder sig av s.k. templates vilket i praktiken kräver att man måste skriva sina saker i C++ för att utnyttja detta. C++ är inte specificerat på binärnivå och C++ utvecklas mot att låta allt mer köras redan i kompilatorn -> man blir allt mer låst till att köra just C++.

I jobbet använder jag primärt C (majoritet av koden), C++ (kompilator, standardbibliotek och en del applikationer) och Python (primärt olika former av verktyg). Privat där jag kan välja fritt utan legacy-stenar att släpa runt kör jag primärt Go (perfekt match till t.ex. RPi), R (analytics) och JS (tja, vilket val har man för webben...).

De språk som använder en JVM (Kotlin, Groovy, Scala, Clojure) kan alla utan problem använda existerande bibliotek skrivna i Java då det finns en binärspecifikation att luta sig på. Kotlin gör det även möjligt att enkelt anropa saker från Java.

Av den anledningen skulle jag bara använda Java om man absolut måste. Skulle välja Kotlin så långt som möjligt.

Det skrivet: både Java och C++ kommer finnas kvar och inom "industrin" vara superviktiga spåk under överskådlig tid. Finns helt enkelt allt för mycket skrivna i dessa språk i drift. Båda utvecklas därför aktivt, C++ var ju nästan dött sett till utveckling under en tioårsperiod men nu har det tagit rejält med fart (C++11 och senare är i praktiken ett annat språk jämfört med C++03)

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 Sidde:

Vill bara flika in lite offtopic. Men om man ska bygga något som ska vara i 10-15år är molntjänster verkligen inte det mest lämpliga stället att placera saker på. Alldeles för mycket kan förändras där ute, företag köps upp, teknologier fasas ut osv.
Håller med om att J2EE inte är det man bör bygga i, men man borde vara väldigt försiktig om man konsumerar andras tjänster om man har en tidshorisont på mer än några år. Lambda är ju tex som byggt för vendor lockins där man är fast, och de kan diktera villkoren helt själva.
Personligen skulle jag aldrig någonsin lägga ens verksamhet i det stora molnet om det är kritiskt för ens egna business om man inte byggt något som är sjukt lätt att flytta mellan tjänster. Tex köpa IaaS enbart.

Jag håller helt och hållet med, men poängen är att våra micro tjänster är helt vanlig Java helt oberoende av AWS, så du kan köra dem var du än vill. Just nu råkar det vara på AWS men de kunde lika gärna ligga på Azure eller en egen server om man så vill. Lambdas är ju rätt smidiga iom du kan logga med den vanliga output streamen t ex.

Skrivet av SanTeoX:

Tycker inte heller man bör använda java ee vid nyutveckling utan istället använda spring och spring boot om man kör java. Jag skulle gärna välja java vid nyutveckling av en server. Det är ett enormt stort språk och kommer vara det för en lång tid framöver också.
Oracle har ju lämnat över java ee till Eclipse Foundation så det lär väl leva vidare och utvecklas där. (Jakarta EE)

https://www.zdnet.com/google-amp/article/good-bye-jee-hello-j...

Spring-ramverket är det full utveckling på och med det slipper man skriva en hel del kod, man kan fokusera mer på sin domänlogik.

Skickades från m.sweclockers.com

Spring hade varit okej men i detta fallet har det inte använts tyvärr. För tidigt att säga om Eclipse Foundation kan hålla det vid liv, se bara på deras IDE. Men J2EE går ändå en okänd framtid till mötes.

Permalänk
Medlem
Skrivet av Baxtex:

Jag håller helt och hållet med, men poängen är att våra micro tjänster är helt vanlig Java helt oberoende av AWS, så du kan köra dem var du än vill. Just nu råkar det vara på AWS men de kunde lika gärna ligga på Azure eller en egen server om man så vill. Lambdas är ju rätt smidiga iom du kan logga med den vanliga output streamen t ex.

Spring hade varit okej men i detta fallet har det inte använts tyvärr. För tidigt att säga om Eclipse Foundation kan hålla det vid liv, se bara på deras IDE. Men J2EE går ändå en okänd framtid till mötes.

Intellij Idea är ju några strå vassare

Skickades från m.sweclockers.com

Visa signatur

WS: Mac Studio M1 Max | 32 GB | 1TB | Mac OS
WS: Intel i5 12600K | 64 GB DDR4 @3600 Mhz | 2x1TB nvme 2x1TB SSD SATA | Windows 11 & Manjaro Linux
Bärbar: Macbook Pro 14" | M1 Pro | 16GB RAM | 512GB SSD | Mac OS
Servrar: Intel i7 10700K | 64 GB DDR4 @3600Mhz | 3 TB SSD + 22TB HDD | Unraid |
4x Raspberry pi 4b 8Gb | Dietpi |

Permalänk
Medlem
Skrivet av Teknocide:

Detta stämmer helt enkelt inte. Oracle har ändrat sin lanseringsmodell och med ändringen följer också uppdaterade terms and services, som bland annat säger att Oracle tar betalt för uppdateringar till gamla versioner. Java (kompilator, standardbiblioteket etc.) är open source under GNU GPLv2 och det är fritt fram att kompilera, ändra, distribuera och använda bäst man vill. Utöver det finns det olika förpaketerade runtimes från bland annat IBM, Azul osv. under olika licensmodeller, ofta med kostnadsfria alternativ.

Det som kostar är att sitta kvar på en gammal, stängd version av Java och samtidigt "kräva" säkerhetsuppdateringar från exempelvis Oracle. Om man helt enkelt kör OpenJDK kostar det inget.

Skickades från m.sweclockers.com

+1

Oracle har gjort många skeva grejer, men att ta betalt för LTS tycker jag är helt rätt. Om inte företagen betalar för mjukvaran de använder, vem ska då göra det?

Dock så tror jag att de marknadsförde denna förändring rätt dåligt, jag missuppfattade också den nya modellen innan jag hade en konversation med en anställd på Oracle.

Permalänk
Skrivet av Yoshman:

Termen "funktionella språk" är väldigt ofta missbrukad. Tar man språk som Haskell kan man prata om "funktionellt språk" då det egentligen den enda modell man förväntas använda för saker skrivna där. Även om det är möjligt att skriva imperativ kod i Haskell är det rätt meningslöst.

Språk som Scala och Kotlin har syntaktiskt socker för att möjliggöra funktionella programmering där det är vettigt. Ett typiskt Scala-program innehåller gissningsvis betydligt mer funktionella moment än ett typiskt Kotlin-program.

Man samma sak kan sägas om C#, Java, C++, Go, Swift m.fl. Normalfallet i dessa är inte funktionell programmering, men alla dessa har specifika språkkonstruktioner riktade mot funktionell programmering.

Just av den orsaken tror jag "rena" funktionella språk inte kommer slå på bred front. CPU/GPUer är tok-optimerade för "mutable-state", vilket rimmar illa med funktionell programmering. Finns ändå en rad fall där fördelarna med funktionell programmering överväger nackdelarna, men de fallet täcker man i allt större grad enkelt in med de "vanliga" programspråken.

Min personliga åsikt om Scala är att det kommer aldrig ta fart då det är ett allt för komplicerat språk. Samma kan sägas om C++, men skillnaden där är att C++ skapades i en tid när konkurrensen var långt mindre så det språket har redan lyckas trots att det är överkomplicerat.

Kotlin har inte det problemet, det är ett på i princip alla sätt ett bättre Java (Java-done-right).

https://www.qt.io/faq/

Bibliotek med LGPL kan i praktiken användas i kommersiella program utan problem. Qt's kommersiella licens behövs bara av de som behöver modifiera själva Qt-biblioteken och inte vill göra dessa förändringar öppna.

Men varför inte använda Webbläsaren eller Electron som UI-ramverk 2019???

Jag följer CppCast och de har nästan aldrig nämnt något annat än projekt som kör C++ både i front-end, back-end, middle-end

C++ är allt annat än unikt för back-end om man tittar på större system, t.ex. använder Google, Facebook och Microsoft massiva mängder C++ kod i deras system. C++ är däremot helt utraderat för små och medelstora system, där hittar du nog ~99 % av alla som konsultar inom IT i Sverige.

Men precis som Java används knappast C++ idag för att det är bäst, eller ens ett bra val. Dessa används för att de är mogna miljöer med stabila tool-chains. De används p.g.a. att det finns en massiv mängd redan existerande mängd programvara man kan använda som byggstenar.

Kan inte se en enda orsak att välja vare sig C++ eller Java om jag fick starta från scratch. I C++ har man ett jätteproblem med att många bibliotek använder sig av s.k. templates vilket i praktiken kräver att man måste skriva sina saker i C++ för att utnyttja detta. C++ är inte specificerat på binärnivå och C++ utvecklas mot att låta allt mer köras redan i kompilatorn -> man blir allt mer låst till att köra just C++.

I jobbet använder jag primärt C (majoritet av koden), C++ (kompilator, standardbibliotek och en del applikationer) och Python (primärt olika former av verktyg). Privat där jag kan välja fritt utan legacy-stenar att släpa runt kör jag primärt Go (perfekt match till t.ex. RPi), R (analytics) och JS (tja, vilket val har man för webben...).

De språk som använder en JVM (Kotlin, Groovy, Scala, Clojure) kan alla utan problem använda existerande bibliotek skrivna i Java då det finns en binärspecifikation att luta sig på. Kotlin gör det även möjligt att enkelt anropa saker från Java.

Av den anledningen skulle jag bara använda Java om man absolut måste. Skulle välja Kotlin så långt som möjligt.

Det skrivet: både Java och C++ kommer finnas kvar och inom "industrin" vara superviktiga spåk under överskådlig tid. Finns helt enkelt allt för mycket skrivna i dessa språk i drift. Båda utvecklas därför aktivt, C++ var ju nästan dött sett till utveckling under en tioårsperiod men nu har det tagit rejält med fart (C++11 och senare är i praktiken ett annat språk jämfört med C++03)

Varför är kotlin bättre än Java?

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av heretic16:

Varför är kotlin bättre än Java?

Skickades från m.sweclockers.com

Kotlin är ett väldigt väldesignat språk. Dess största fördelar gentemot Java (IMO) är null-säkerhet (variabler kan inte tilldelas null om de inte deklareras som nullable), mycket mindre boilerplate, smidigare implementering av funktionella koncept (streams i Java är bökiga), MYCKET bättre lambdas, stöd för komposition på språknivå, top-level functions (du behöver ingen klass för att skriva en enstaka funktion), extension functions, strukturell pattern matching (dock mycket begränsad, men lite iaf!), och en massa mer. Har du inte testat Kotlin, GÖR DET. Gillar du Java har jag svårt att tänka mig att du inte kommer att älska Kotlin.

Permalänk
Skrivet av SimpLar:

Kotlin är ett väldigt väldesignat språk. Dess största fördelar gentemot Java (IMO) är null-säkerhet (variabler kan inte tilldelas null om de inte deklareras som nullable), mycket mindre boilerplate, smidigare implementering av funktionella koncept (streams i Java är bökiga), MYCKET bättre lambdas, stöd för komposition på språknivå, top-level functions (du behöver ingen klass för att skriva en enstaka funktion), extension functions, strukturell pattern matching (dock mycket begränsad, men lite iaf!), och en massa mer. Har du inte testat Kotlin, GÖR DET. Gillar du Java har jag svårt att tänka mig att du inte kommer att älska Kotlin.

Så Koltin gjorde alltså en förbättring på Java?

Jag gillar Java, dels för att det är enkelt och man kan göra mycket med det. Men orsaken varför jag håller mig kvar vid Java har med att marknaden säger det. Det finns ingen marknad för Kotlin, förutom Android-marknaden.

Jag hoppas att Oracle kommer ta lärdom av Kotlin.

Permalänk
Datavetare
Skrivet av heretic16:

Så Koltin gjorde alltså en förbättring på Java?

Jag gillar Java, dels för att det är enkelt och man kan göra mycket med det. Men orsaken varför jag håller mig kvar vid Java har med att marknaden säger det. Det finns ingen marknad för Kotlin, förutom Android-marknaden.

Jag hoppas att Oracle kommer ta lärdom av Kotlin.

Kotlin blev känt för en större publik p.g.a. att det blev ett officiellt språk (skulle säga numera "det officiella språket") för Android-utveckling.

Men Kotlin kan användas på exakt samma ställen där Java kan användas (plus att Kotlin också kan kompileras till JavaScript -> går att använda i webbläsaren), Android är inte ens där Kotlin är populärast just enligt Jetbrains (de som skapade Kotlin), utan det är att använda Kotlin för "back-end" på Linux

Du har massor med gånger nämnt att du söker "enkelhet". Kotlin är enklare än Java, det kräver mindre boilerplate, upptäcker fler fel vid kompilering, kraftfullare tool-chain stöd (det var Jetbrians huvudmål med språket då de jobbar just med utvecklingsverktyg) etc. Det är helt enkelt Java-done-right.

Om man vill använda en JVM (helt vettigt än i dag för plattformen Java är fortfarande en lysande teknik) och inte är hårt låst till Java (språket, det är inte längre ett toppval på något sätt i.m.h.o) bör man absolut titta på Kotlin.

Visa signatur

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

Permalänk
Skrivet av Yoshman:

Kotlin blev känt för en större publik p.g.a. att det blev ett officiellt språk (skulle säga numera "det officiella språket") för Android-utveckling.

Men Kotlin kan användas på exakt samma ställen där Java kan användas (plus att Kotlin också kan kompileras till JavaScript -> går att använda i webbläsaren), Android är inte ens där Kotlin är populärast just enligt Jetbrains (de som skapade Kotlin), utan det är att använda Kotlin för "back-end" på Linux
https://i.imgur.com/Zlefsm9.png?1

Du har massor med gånger nämnt att du söker "enkelhet". Kotlin är enklare än Java, det kräver mindre boilerplate, upptäcker fler fel vid kompilering, kraftfullare tool-chain stöd (det var Jetbrians huvudmål med språket då de jobbar just med utvecklingsverktyg) etc. Det är helt enkelt Java-done-right.

Om man vill använda en JVM (helt vettigt än i dag för plattformen Java är fortfarande en lysande teknik) och inte är hårt låst till Java (språket, det är inte längre ett toppval på något sätt i.m.h.o) bör man absolut titta på Kotlin.

Bra information.
Vi får se om 10 år om marknaden ställer om sig
Jag tror att Java kommer adaptera Koltin's unika funktionalitet.

Om Kotlin är de facto absolut bättre än Java på alla punkter, så borde väll Java vara totalt utkonkurrerad och kastad till botten i detta fall?

Jag ser många blanketter och mätningar där "nya språk" föredras ofta vara mer populära än "gamla språk". Jag fick en förklaring att nya utvecklare vill inte jobba med gamla verktyg, men när det kommer till arbetsmarknaden så är det C, C++, Java och C# som gäller, för att det är tråkiga språk som alla in princip redan kan. Har aldrig sett en jobbanons som efterfrågar F# eller några andra språk som kom upp för max 10 år sedan.

Permalänk
Medlem
Skrivet av heretic16:

Bra information.
Vi får se om 10 år om marknaden ställer om sig
Jag tror att Java kommer adaptera Koltin's unika funktionalitet.

Om Kotlin är de facto absolut bättre än Java på alla punkter, så borde väll Java vara totalt utkonkurrerad och kastad till botten i detta fall?

Jag ser många blanketter och mätningar där "nya språk" föredras ofta vara mer populära än "gamla språk". Jag fick en förklaring att nya utvecklare vill inte jobba med gamla verktyg, men när det kommer till arbetsmarknaden så är det C, C++, Java och C# som gäller, för att det är tråkiga språk som alla in princip redan kan. Har aldrig sett en jobbanons som efterfrågar F# eller några andra språk som kom upp för max 10 år sedan.

Få skapar nya program. De flesta underhåller och vidareutvecklar redan existerande kodbaser.
Java kommer fortsätta vara i behov under lång tid, precis som Cobol är men än mer eftersom fler produkter är skapade i Java än Cobol tack vare den accelererande datorutvecklingen.

Permalänk
Avstängd
Skrivet av Sidde:

Få skapar nya program. De flesta underhåller och vidareutvecklar redan existerande kodbaser.
Java kommer fortsätta vara i behov under lång tid, precis som Cobol är men än mer eftersom fler produkter är skapade i Java än Cobol tack vare den accelererande datorutvecklingen.

Samtidigt: Vill man tjäna mycket pengar så är Cobol verkligen något att satsa på. Det är inte många som kan det idag och de som kan det är snart pensionärer eller chefer allihopa. Sannolikt inte särskilt roliga jobb förstås, men man kan ställa väldigt höga krav på ersättningen.

Permalänk
Skrivet av Sidde:

Få skapar nya program. De flesta underhåller och vidareutvecklar redan existerande kodbaser.
Java kommer fortsätta vara i behov under lång tid, precis som Cobol är men än mer eftersom fler produkter är skapade i Java än Cobol tack vare den accelererande datorutvecklingen.

Hur ser det ut för Androidsidan då? Dom kommer väll ha lika bra stöd som till Java som till Kotlin i så fall?

Permalänk
Medlem
Skrivet av heretic16:

Hur ser det ut för Androidsidan då? Dom kommer väll ha lika bra stöd som till Java som till Kotlin i så fall?

Kotlin är det rekommenderade språket, java kommer säkert fasas ut med tiden.
Men det kan gå fort, ryktas ju om att Google vill dumpa Android helt och ersätta det med Fuchsia. Då får vi se vilket språk som gäller för apputvecklingen.

Permalänk
Medlem
Skrivet av heretic16:

Bra information.
Vi får se om 10 år om marknaden ställer om sig
Jag tror att Java kommer adaptera Koltin's unika funktionalitet.

Om Kotlin är de facto absolut bättre än Java på alla punkter, så borde väll Java vara totalt utkonkurrerad och kastad till botten i detta fall?

Jag ser många blanketter och mätningar där "nya språk" föredras ofta vara mer populära än "gamla språk". Jag fick en förklaring att nya utvecklare vill inte jobba med gamla verktyg, men när det kommer till arbetsmarknaden så är det C, C++, Java och C# som gäller, för att det är tråkiga språk som alla in princip redan kan. Har aldrig sett en jobbanons som efterfrågar F# eller några andra språk som kom upp för max 10 år sedan.

Java har 20 år med legacy att handskas med, det kommer aldrig att bli lika väldesignat som Kotlin är idag. Funktionaliteten kan i praktiken byggas in i Java, men enkelheten och Kotlins koncisa syntax går inte att uppnå i Java pga krav på bakåtkompatibilitet. Det jag tycker är fint med Kotlin är hur väl det interagerar med Java, och du kan till och med anropa kod skriven i Kotlin från kod skriven i Java! Man kan successivt migrera gamla projekt till Kotlin.

Java har dock ett såpass stort avtryck i teknikvärlden att även ett språk som är bättre på alla sätt och vis inte kan ta tronen hur som helst. Java är på nedgång, och det har det varit i många år, och kommer fortsätta vara det i säkert 20 år till, och sedan ändå finnas kvar. Så stort är det.

Väldigt mycket av det du lärt dig i java är applicerbart i Kotlin, och mycket av det du lär dig från att skriva Kotlin går att applicera i Java. Att skriva lite Kotlin innebär inte att du måste överge Java, språken är såpass lika att det inte är någon större utmaning att hålla sig vass i båda. Jag rekommenderar starkt att du kikar på Kotlin, men tycker också att du gör rätt i att fortsätta hålla dig vass i Java pga större anställbarhet.

Permalänk
Medlem
Skrivet av heretic16:

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

Är ju helt otroligt bra siffror för ett område som ändrar sig så snabbt om jag tolkar dina siffror korrekt. Sedan måste du också tag hänsyn till alla JVM baserade språk som Kotlin, Scala, Groovy, Clojure etc.

Visa signatur

Citera eller @philipborg om du vill att jag ska läsa dina svar.

Permalänk
Medlem

Java har massa spännande grejer på G, projekt Amber har redan förbättrat syntaxen och kommer fortsätta med det framöver.

Project Loom ska göra om så threads blir mycket mycket effektivare, tror t ex att i nuläget i prototypen så tar en ny loom "fiber" bara några hundra byte minne vs de klassiska threads som allokerar ca 1 mb.

Project Valhalla ska ge Java value classes så du kan skriva lättviktiga objekt, "codes like a class, works like an int".

Sista stora är project Panama som kommer låta en anropa C/C++ bibliotek med vanlig javakod men denna är jag inte så insatt i så någon får gärna rätta mig.

Då har vi inte ens gått in på GraalVM eller alla fina optimeringar till GC i de senaste JDK

Skickades från m.sweclockers.com

Permalänk
Skrivet av Sidde:

Oracle lär inte bry sig öht. Deras affärsmodell fungerar inte så. De köper upp, exploitar det som går och går vidare. De helt och hållet dödade Solaris som operativsystem till exempel utan att det fick en notis ens på ett datorforum som sweclockers.
Solaris var ofta det systemet alla större organisationer i världen körde för 10år sedan om man inte körde Windows.

Dödade Oracle Solaris?
Dom marknadsför det fortfarande iallafall.

https://www.oracle.com/se/solaris/solaris11/

Permalänk
Medlem
Skrivet av heretic16:

Dödade Oracle Solaris?
Dom marknadsför det fortfarande iallafall.

https://www.oracle.com/se/solaris/solaris11/

Ja, med tolkningen av "döda" som att det var Oracles fel att knappt någon längre använder Solaris, medan det var väldigt populärt innan. Inte att de direkt avslutade projektet. Jag tycker Sidde var ganska tydlig med det om du läser inlägget.

Visa signatur

Arbets- / Spelstation: Arch Linux - Ryzen 5 3600 - RX 7900 XT - 32G DDR4
Server: Arch Linux - Core i5-10400F - 16G DDR4