Ï tvåan på högskolan nu så ska vi välja om vi vill fokusera på att programmera i C# eller Java och jag undrar vilket språk av dessa som är bäst att välja med tanke på framtiden. Blir du skicklig i det en lär du inte ha några problem med att lära dig det andra.. Ok tack för ditt tips, jag har läst en grundkurs i C# och en grundkurs i Java. Väljer vi C# kommer vi att läsa lite Java ändå. Ingen C# om vi läser Java dock. Läste java när jag gick i högskolan. Tyckte då att detta visserligen var ett mycket roligt språk att koda i men ack så omständigt. Plattformsoberoende är det ett skämt eller? Applets - massa bekymmer med säkerhet osv. Ok man lär sig oop konceptet ganska bra. Vi får bara lära oss Java. Måste du välja mellan pest eller kolera, så tycker jag att du tar C#, även om jag är motståndare till det. Hej Robin, <b>TROLL!!!!</b> >Niklas kommentar "Finns inget mer tillkrånglat språk än java (ok... det finns det nog, >C++ är i sig inte komplext. >det största felet M$ gjorde när de skapade .net var att de byggde vissa delar av frameworket för windows , och wrappade hela windows.forms namespacet till windows fönster med wndprocar och hela kittet.. Jag hade lite felaktigt ordval men poängen verkar ha nått fram... En uppenbar fördel med att jobba med .Net framför att välja java är att på på samma plattform kan man välja fritt mellan väldigt många olika språk utan att behöva lära om API't man jobbar med. Det gör C# till ett bättre val än Java enligt min åsikt. <b>minsta-gemensamma-nämnare-som-ska-funka-på-alla-platformar-även-om det-ser-förjävligt-ut lösning.</b> >Hahahaha. Varför är det då så få av C++ kompilatorerna som implementerar språkspecifikationen till 100%? Robin, Klas och resten: Frågan är precis lika svår att besvara som "är blått eller grönt finast?" eller nån annan omöjlig fråga. Beroende på vilka värderingar man har, och naturligtvis en massa andra saker, så kan man välja det ena eller det andra generellt sett. Som jag ser det finns det inget sätt att säga att den ena teknologin är bättre än den andra. De liknar varandra mycket, Java har varit med ett tag och kommit förbi vissa 'barnsjukdomar' som säkert .Net kommer att stöta på, samtidigt som .Net haft möjlighet att se precis vad folk efterfrågar och har saknat i Java och därmed kunnat få med det från början. Jag jobbar med bägge (mest Java just nu iofs) och tycker de är bägge finfina plattformar att arbeta i. Om man ska välja en av dem för ett visst tillfälle så tycker jag det handlar om precis samma sak som att välja Oracle/SQL Server, Windows/Linux etc: vilket är man mest förtrogen med i just det här fallet? Ska det köras på olika plattformar? Då är valet Java (åtminstone än så länge). Är kunden ett företag som har en homogen Microsoft-miljö och kan de teknikerna bra? Då ska man naturligtvis köra .Net. Har kunden redan investerat i kompetens kring den ena eller den andra är det en bra riktlinje för vilken man ska välja.C# eller Java
Sv: C# eller Java
Jag råder dig ändå att ta C# som förstahandsval för då kommer du i kontakt med COM och liknande tekniker. Vidare så råder jag dig till att koda lite Java vid sidan av för att lära dig, desto bättre programmerare du blir desto färre problem får du när du väljer ett bytaa språk...Sv: C# eller Java
Sv: C# eller Java
Nej jag rekomenderar C#. Dels för att jag just gillade java som språk rent syntaxmässigt.. C# är enl mig ganskla likt java just syntaxmässigt. Vidare så erbjuder språket ( även de andra NET språken) oanade möjligheter tack vare ramverket. Det finns hur mycket kul som helst man kan göra. Och har man lärt sig att programmera lite C# är det inte så svårt att lära sig något annat språk i NET miljön. Detta är mitt starkaste argument till att välja C#.
Vidare måste man inse sanningen att ms dominerar mjukvarumarknaden och kommersiell prog utv, är chansen att deras flaggskepp C# kommer att vara det "stora" språket om några år är troligtvis ganska stor.
Läs C# och lär dig NET frameworkSv: C# eller Java
Finns inget mer tillkrånglat språk än java (ok... det finns det nog, men Java är löjligt krångligt på vissa punkter). C++ ska det va!Sv: C# eller Java
Du ställde nog din fråga i fel forum egentligen. Här på pellesoft finns det mest fanatiska Microsoft fans, inget fel i att vara det men svaren du får kanske man ska ta med en klackspark eftersom de som svarar ofta inte provat andra tekniker mer än ytterst flyktigt. De svar du har fått pekar väl egentligen inte på några direkta fördelar med C# framför java. "Trash" skriver att "då kommer du i kontakt med COM och liknande tekniker" men vad är det då som gör COM så bra och överlägset mot andra språk? Och "Trash" är lite ute och cyklar då han pratar om .NET och COM. COM finns egentligen inte i .NET utan där pratar man mer om ".NET components" som iofs kan prata med COM men det är absolut inte samma sak. Så att välja .NET är inte det samma som att "komma i kontakt med COM".
Fredde's inlägg handlar mest om att hacka på java och höja Microsoft till skyarna. Han skriver "Plattformsoberoende är det ett skämt eller?", och det är absolut inget skämt. "Write once, run everywhere"...det är faktiskt vad java handlar om. Jag har arbetat med java, främst J2EE, i ett flertal år på ett flertal olika plattformar. Jag har skrivit enterprise system som har körts både på Linux och Windows. Finns det en Virtual Machine, som implementerar java specen, för plattformen så kan koden köras på flera olika plattformar. Förutsatt att man inte använder plattformsberoende saker, eller dålig design som t ex hårda filsökvägar mm. .NET bygger ju på samma koncept i grund och botten. Microsoft har byggt en runtimemiljö som nu, via ett open source projekt (mono), håller på att portas över till andra plattformar. Fredde kanske ska läsa på lite mer vad gäller Virtual Machines, byte kod osv. Den stora skillnaden i filosofin mellan Sun's koncept och Microsofts är att man på Sun säger "Skriv kod för vilken plattform du vill men använd java" medan man på Microsoft säger "Skriv kod i vilket programmeringsspråk du vill (i stort sett) men kör koden i Windows".
Fredde skriver också att "Applets - massa bekymmer med säkerhet osv". Han missar nog att Java != applets. Applets är en så liten del, det är ungefär som att säga att Microsoft är dåligt eftersom det här med ActiveX är en massa bekymmer med säkerhet, titta t ex på alla modem som blir "kidnappade", med vilken teknik och på vilken plattform sker det? Java är sååååå mycket mer än applets, kanske måste du läsa på lite mer här också Fredde. J2EE (Java 2 Enterprise Edition) är något du kan börja kika på Robin. Kan vara komplext till en början att komma in i men så är det med alla nya miljöer. .NET kan sägas vara motsvarigheten till J2EE från Microsoft. De skiljer sig ganska mycket och de båda har för och nackdelar. J2EE är dock en mogen standard och har funnits ett par år till skillnad från .NET. Något som är bra med att koda i java är också att det finns en massa open source paket man kan använda i sina lösningar utan att det kostar ett öre. Gå in och titta t ex under www.sourceforge.net så kommer du att hitta en hel del api som det är gratis att använda. Bla för att generera pdf:er, rtf dokument, excel dokument, O/R mappnings verktyg osv, osv...och detta på vilken plattform du vill. Behöver alltså inte vara en Microsoft server. Under sourceforge finns även komponenter för C# men tyvärr inte i samma omfattning som för java.
Det sista uttalancet som Fredde gör är också ganska vanligt från dem som enbart förespråkar Microsoft "Vidare måste man inse sanningen att ms dominerar mjukvarumarknaden och kommersiell prog utv". Man kan undra var han fått denna fakta ifrån, han presenterar inte någon som helst källa för detta uttalande utan detta är helt en subjektiv bedömning som han kanske gjort genom att surfa in här på detta forum som domineras av Microsoft anhängare. Jag har arbetat på ett flartal arbetsplatser och måste säga att jag håller med de undersökningar som presenterats vad gäller val av utvecklingsmiljöer...det är ungefär 50/50, om man tittar på storskaliga enterprise lösningar.
Niklas kommentar "Finns inget mer tillkrånglat språk än java (ok... det finns det nog, men Java är löjligt krångligt på vissa punkter). C++ ska det va!" Och C++ är inte koplext? ;) Undrar om inte Niklas bara är ute efter att skoja lite, annars blir jag väldigt konfunderad.
Båda språken (C# och java) har ett antal för och nackdelar, så är det med allt. Jag är Microsoft certifierad och arbetar även med java/J2EE och min subjektiva bedömning är att java är ett bättre alernativ. Om man ska bygga storskaliga lösningar är J2EE en utmärkt plattform. Man får ett plattformsoberoende, man blir databasoberoende (så länge det finns jdbc drivers för databasen), man får arbeta med en mer mogen plattform än .NET, det finns en uppsjö av gratis produkter att använda i sina lösningar (vilket kunder uppskattar så kan de lägga pengar på andra mer nyttiga saker), man behöver inte betala några pengar för utvecklingsmiljön (det finns bra editorer som t ex Eclipse, appserver från jBoss osv), O/R mappning via EJB:er eller andra verktyg som t ex Hibernate osv. Detta är några av de skäl som gör att jag, som arkitekt, hellre väljer J2EE framför .NET i ett nytt projekt. Jag råder dig att titta runt lite mer och läs lite mer om språken, titta på arbetsannonser vilka kunskaper det är man söker osv så kommer du säkert fram till ett bra val, vilket det nu än blir. Har du ytterligare frågor kan du skriva dem här i forumet så ska jag försöka besvara dem.
Lycka till
/KlasSv: C# eller Java
*retas*
nee , jag håller med till stor del , dock tycker jag att <b>"medan man på Microsoft säger "Skriv kod i vilket programmeringsspråk du vill (i stort sett) men kör koden i Windows"</b> inte är helt rätt..
det största felet M$ gjorde när de skapade .net var att de byggde vissa delar av frameworket för windows , och wrappade hela windows.forms namespacet till windows fönster med wndprocar och hela kittet..
det var dåligt , eftersom det kommer förhindra att just den biten går att porta till andra os , (även om go-mono tappert försöker porta allt från hdc's,hwnd's och wm_ mess)
dock finns det ju GTK# (som wrappar GTK , doooh) , som är en egen fönsterhanterare som bevisligen funkar på flera plattformar...
så det är ju inget som hindrar att man kör MSIL/CIL i andra OS på samma sätt som java , så länge man använder klasser som inte wrappar mot massa windows kecka...Sv: C# eller Java
>men Java är löjligt krångligt på vissa punkter). C++ ska det va!" Och C++ är inte
>koplext? ;) Undrar om inte Niklas bara är ute efter att skoja lite, annars blir jag
>väldigt konfunderad.
Jag är inte ute efter att skoja. C++ är i sig inte komplext. C++ följer C's idé om att man bör ha så få nyckelord som möjligt, och det gör att det inte i sig är komplext. Filstrukturen kan ibland uppfattas som lite krånglig, men när man förstår bakgrunden är det inget orimligt i den.
Betänk: Java har en speciell konstruktion för vad vi i C++ kallar protokoll-klasser (interface). De har en klar betydelse i C++, och man kan väldigt lätt se om en klass är en protokollklass eller inte. Javas avsaknad av överlagring av operatorer gör koden onödigt klumpig. Java saknar en ordentlig typning - där är C++ överlägset.
Men visst finns det positiva saker med Java. Garbage collecting är t.ex. trevligt, även om det medför viss ineffektivitet.
Sitter just nu och arbetar med ett program som kan läsa in funktionsuttryck (matematiska), sedan ta fram derivatan på dem eller rita upp funktionen över ett visst intervall.
Vissa grejer blir enklare (man bara släpper referenser), men mycket blir onödigt krångligt. Vissa metoder har jag fått skriva tre gånger så långt som det skulle behövas i C++.
Att det sedan saknar templates gör att jag tycker hela språket börjar kännas vansinnigt. Dessutom gillar jag inte javas standardbibliotek, men det kan ju vara en vanesak.Sv: C# eller Java
Hahahaha. Varför är det då så få av C++ kompilatorerna som implementerar språkspecifikationen till 100%? Jag vet inget språk som har så många intrikata småregler som C++.
MSSv: C# eller Java
Tvärt om var det nog det bästa de kunde gjort (även om Winforms suger på många sätt). Hellre det än nån javaliknande minsta-gemensamma-nämnare-som-ska-funka-på-alla-platformar-även-om det-ser-förjävligt-ut lösning. Nää, för att skapa snygga GUIn som ser ut som de bör på respektive plattform så avstår jag gärna från WORA.
MSSv: C# eller Java
Sv: C# eller Java
detta problemet försvann väll med swing om jag inte är helt fel ute..
swing ritar alla sina kontroller själv och förlitar sig inte på någon minsta gemensamma nämnare ,, förutom att kunna visa fönster och rita pixlar dvs...
(sedan att java apps liknar skit för att deras kontroller är fula är ju en annan sak)
<b>Tvärt om var det nog det bästa de kunde gjort </b>
det beror väll på hur man ser det ,
jag tror ju att fler än jag skulle bli glada om det tex gått att:
rita på desktoppen utan att plocka desktoppens dc via api.
(tex , overlays , för docking kontroller)
sätta en egen storlek på ett fönsters klientarea utan att plocka wm_nccalcsize och att sedan rita en egen border utan att plocka wm_ncpaint.
göra ownerdraw på en treeview utan att kleta med win32 common controls custom draw api tjossan.
(eller få kontroll över någon av standardkontrollernas utritning , tex textboxen ... (oke comboboxar ,listboxar, buttons och menyer har ju stöd för ownerdraw i windows och det har de ju lyckats wrappa ganska snyggt))
visa ett fönster utan att det får fokus , utan att visa det via api anrop.
//RogerSv: C# eller Java
>Jag vet inget språk som har så många intrikata småregler som C++.
Ok... det är inte så lätt för programmerarna att skriva perfekta kompilatorer, och visst, det finns småregler. Men utan dessa småregler hade språket haft odefinierad syntax, och det försöker man undvika.
Värt att nämna är att det i sig inte är något större problem att implementera alla detaljer i en C++-kompilator, men nu är C++ närmast unikt i att överlämna så stort ansvar på kompilatorer, och på att kompilatorer ska optimera koden. Detta gör att vissa detaljer inte alltid passar in, och att man därför överväger optimering. Dessa detaljer är i regel väldigt enkla att rätta till i sin kod. Man skriver först ANSI-kod, och gör sedan ytterst små anpassningar till system/kompilator.
Flertalet av de saker som har "små intrikata småregler" är i Java lösta på ett helt vansinnigt sätt, och många saker hade kunnat läggas in i Java utan några större problem, men har ändå tagits bort, trots deras användbarhet (t.ex. templates). Istället gör man Java till ett typosäkert språk, och då finns inte en av huvudidéerna från C++ med, förmodligen den som gjort C++ så populär.Sv: C# eller Java
En intressant artikel i ämnet har John Carroll skrivit:
http://comment.zdnet.co.uk/story/0,,t479-s2134382-p1,00.html
För att ge ett svar på Robins fråga: Hade jag tvingats välja hade jag nog valt C#, därför att du sa att där får du även en del Java. Genom att se bägge får du större insyn i skillnaderna dem emellan, men det tror jag dessutom att du kan använda till att bättre förstå varje språk för sig. Dessutom är det ju inte fel att komma ut och säga att du kan bägge.