Citat:
Originally posted by grazzy@Jul 25 2005, 14:39
Varför skriva i .NET när man kan skriva i java? Då får man ju dessutom plattformsoberoende kod (på riktigt) och kan framförallt återanvända sina klasser till andra vettiga projekt.
Med .NET låser du upp dig i Microsofts utvecklingssfär. Du gör dig och dina kunder beroende av ett operativsystem som styrs helt och hållet av ett företag.
Det är säkert så att man med .NET kan bygga jättefina projekt när man har 10 utvecklare, projekt som hade blivit skit med PHP. Skillnaden är att där .NETs språk, då framförallt C# tvingar fram korrekt arkitektur genom sin syntax har man friheten att programmera som man vill med PHP.
Det här är ingen ny diskussion, den har funnits sen det första objektorienterade programmeringspråket utvecklades. Vad skall styra? Språket eller programmeraren?
Som jag ser det så kan en duktig programmerare få göra det valet själv, om han vill få hjälp och bli styrd, eller styra själv. I många fall är det enklare att få ta ett par genvägar.
Att använda VB i .NET känns lite som att köpa en 50 fots segelbåt och sen gå för motor.
|
Jag håller med dig på nästan alla punkter.
Utom på följande punkter:
Citat:
Varför skriva i .NET när man kan skriva i java? Då får man ju dessutom plattformsoberoende kod (på riktigt) och kan framförallt återanvända sina klasser till andra vettiga projekt.
|
1) Du implicerar i senare delen att man inte kan återanvända sina klasser i .NET eller PHP. Det är något av det löjligaste jag hört. Precis som du påpekar kan en duktig programmerare anamma grundläggande koncept som återanvändning och modularitet på i princip vilket språk som helst. Du kan skriva objektorienterat i C (jag menar ren ANSI C och inget annat) och du kan låta allt vara globalt i samma namespace i java. Nivån av återanvändbarhet sitter inte i språket eller miljön utan i koden och det är upp till programmeraren om det går att återanvända eller inte.
2) java har en plattformsoberoende bytekod. Det är sant. Med MONO får du det även i .Net. PHP kompileras ju inte så det är lika plattformsoberoende som java i praktiken. C-kod kan också göras plattformsoberoende. Det enda som krävs är att kompilera en gång för rätt miljö. Argumentet för Java som plattformsoberoende känns förlegat och 90-tal. Möjligen i en applet spelar det roll (och där kör ju fler och fler flash) men för alla andra tillämpningar spelar det ingen roll att min kompilerade javakod funkar på flera plattformar. Vill jag stödja flera plattformar kan jag göra det oavsett språk. Och eftersom vi pratar .NET kontra PHP är ju knappast applets uppe på tapeten...
Men visst har du rätt - java är väl ett lika bra alternativ som .NET till PHP. Men då ska du trycka på rätt egenskaper hos java och inte irrelevanta argument som de ovan.
Nu var det många år sedan jag tvingades göra något i java, men min erfarenhet säger att VS.NET (just det VS som i Visual Studio och inte VB...) är det hittils bästa utvecklingsmiljön. Allt finns integrerat i samma applikation och debuggning mellan flera komponenter är busenkel. Det finns säkert ett verktyg med en massa opensource pluginner som gör samma sak till Java osv, men handen på hjärtat - funkar det verkligen till 100%... Varje gång jag använt en annan utvecklingsmiljö än VS (eller emacs) så blir jag besviken på hur dåligt integration mellan de olika delara fungerar. Det är bara att bita i det sura äpplet: Ska man utveckla på Windows så komemr MS leverera en miljö som är bäst integrerad med Windows.