Permalänk
Avstängd
Skrivet av Yoshman:

Här kan man vara jämföra Java med C#. Man ser ofta klagomål på allt som Java saknar, men hur många >1M rader kod projekt hittar man i C#? Java är mer lämpligt för riktigt stora projekt, inte trots att det är ett enklare språk utan just p.g.a. av detta.

Jag tror dina personliga erfarenheter färgar dina åsikter. Det finns massor av större program (än mer tjänster) byggda i C#. Solidworks exempelvis, eller Azure och Office 365. Jag jobbar med en stor webb-applikation som är byggd helt i ASP.Net och det finns massvis av webbtjänster eller -applikationer som är det. Stora företag gillar ASP.Net/C# då det är MS och de lever ofta helt i MS värld.

Permalänk
Datavetare
Skrivet av snajk:

Jag tror dina personliga erfarenheter färgar dina åsikter. Det finns massor av större program (än mer tjänster) byggda i C# Solidworks exempelvis, eller Azure och Office 365. Jag jobbar med en stor webb-applikation som är byggd helt i ASP.Net och det finns massvis av webbtjänster eller -applikationer som är det. Stora företag gillar ASP.Net/C# då det är MS och de lever ofta helt i MS värld.

Tror du inte har koll på vad Microsoft i så fall använder. Det finns stöd för .NET i Azure, men grunden är utvecklat i C++. Finns en del som är lite kritiska till MS just därför att de inte riktigt äter sin egen hundmat, alla deras kritiska komponenter är i grunden C++ program (något som Herb Sutter pekade på när MS åter började göra stora investeringar i MSVC++ runt 2011).

Har aldrig använt Solidworks, men en snabb Google visar att det (precis som nära nog alla MS program) exporterar ett COM-gränssnitt så man kan skripta det från externa program. M.a.o. kärnan i Solidworks är ett C++ program, inte ett .NET program, eftersom du tar upp det som exempel antar jag att det är fullt möjligt att bygga funktioner via .NET.

Även ASP.Net är ett dåligt exempel på att .NET fungerar i stora, prestandakritiska problem. Var ligger de potentiella prestandaflaskhalsarna i ett sådan system? De ligger i hanteringen och distributionen av session, något som sköts via IIS som är utvecklat i C++, det ligger i databasen och dessa är i princip alltid utvecklade i C++ och det ligger i OSet som är utvecklat i C. D.v.s det som faktiskt kör .NET tillhör den delen av koden som exekveras en fraktion av tiden.

Om du jobbar på en stor webb-applikation, hur stor är den i rader kod? SLOC är säger inte allt, men det ger ändå en fingervisning om komplexiteten av systemet.

Och visst färgar mina erfarenheter mina åsikter, det gäller nog alla. Men peka gärna på något C# projekt som är >1M rader kod (det är inte jättestort, en modern webbläsare är >10M rader kod, MS Office lär ligga där också). De stora .NET program jag använt, t.ex. klienten till IxLoad ger en bedrövlig användarupplevelse när det kommer till hur snabbt saker reagerar (mängden CPU och RAM som används är löjligt givet vad programmet gör). Tidigare versioner var utvecklade i C++/MFC och visst behövde man lyfta programmet en del, men prestanda var aldrig ett problem på den tiden.

Visa signatur

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

Permalänk
Avstängd
Skrivet av Yoshman:

Tror du inte har koll på vad Microsoft i så fall använder. Det finns stöd för .NET i Azure, men grunden är utvecklat i C++. Finns en del som är lite kritiska till MS just därför att de inte riktigt äter sin egen hundmat, alla deras kritiska komponenter är i grunden C++ program (något som Herb Sutter pekade på när MS åter började göra stora investeringar i MSVC++ runt 2011).

Tja det beror förstås på vad man menar. Azure innefattar ju en mängd saker som Windows Server och diverse annat (Linux-instanser exempelvis). Men vad jag förstår så är själva Azure-tjänsten skriven i ASP.Net och C#.

Citat:

Har aldrig använt Solidworks, men en snabb Google visar att det (precis som nära nog alla MS program) exporterar ett COM-gränssnitt så man kan skripta det från externa program. M.a.o. kärnan i Solidworks är ett C++ program, inte ett .NET program, eftersom du tar upp det som exempel antar jag att det är fullt möjligt att bygga funktioner via .NET.

Jag är inte superinsatt i det programmet, bara hört det som ett exempel på ett större program byggt i C#, men det kanske inte är hela programmet som du säger. Plugins och liknande byggs normalt i .Net/C# i alla fall.

Citat:

Även ASP.Net är ett dåligt exempel på att .NET fungerar i stora, prestandakritiska problem. Var ligger de potentiella prestandaflaskhalsarna i ett sådan system? De ligger i hanteringen och distributionen av session, något som sköts via IIS som är utvecklat i C++, det ligger i databasen och dessa är i princip alltid utvecklade i C++ och det ligger i OSet som är utvecklat i C. D.v.s det som faktiskt kör .NET tillhör den delen av koden som exekveras en fraktion av tiden.

Fast det gäller väl all kod som körs som online-tjänster typ? Det kan finnas flaskhalsar på en massa ställen, men visst är det normalt nätverket som ställer till det.

Citat:

Om du jobbar på en stor webb-applikation, hur stor är den i rader kod? SLOC är säger inte allt, men det ger ändå en fingervisning om komplexiteten av systemet.

Tja, inte miljoner rader C#-kod men inte så långt ifrån. Applikationen jag jobbar med har varit under utveckling i 15 år så mycket av logiken ligger i databasen (över 2000 stored procedures i en standardinstallation, pust) men vi jobbar ju bort från det mot EF och så. Webbapplikationer är dock normalt inte alls lika kodtunga som en vanlig applikation förstås så det är inte helt lätt att jämföra.

Citat:

Och visst färgar mina erfarenheter mina åsikter, det gäller nog alla. Men peka gärna på något C# projekt som är >1M rader kod (det är inte jättestort, en modern webbläsare är >10M rader kod, MS Office lär ligga där också). De stora .NET program jag använt, t.ex. klienten till IxLoad ger en bedrövlig användarupplevelse när det kommer till hur snabbt saker reagerar (mängden CPU och RAM som används är löjligt givet vad programmet gör). Tidigare versioner var utvecklade i C++/MFC och visst behövde man lyfta programmet en del, men prestanda var aldrig ett problem på den tiden.

Jag vet inte om antal kodrader är en särskilt bra måttstock. Det krävs ju många gånger fler rader för att göra simpla saker i C liksom. Dock lär väl exempelvis microsoft.com eller dell.com ha mer än en miljon rader kod. MySpace körde också ASP.Net när det fanns. Många större websiter gör inte det men det är ju för att de började smått, ofta typ i ett garage eller så, och då blir det ganska dyrt med MS i jämförelse med alternativen.

Fortfarande går det ju att göra det mesta med merparten av de stora programmeringsspråken. Jag hade inte byggt ett spel i Java exempelvis men det funkade ju bra för mojäng liksom.