Hoeveel mensen hebben .NET geinstalleerd

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008

  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Ik overweeg om een applicatie in C# te schrijven aangezien Delphi tegenwoordig niet meer zo geweldig is en C++ niet al te productief is. Maar hoeveel mensen hebben tegenwoordig .NET geinstalleerd? Zijn er statistieken beschikbaar? Want ik wil mijn gebruikers niet vragen om eerst een 100 MB .NET runtime te downloaden voordat ze mijn programma kunnen gebruiken.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14-02 12:34

gorgi_19

Kruimeltjes zijn weer op :9

http://blogs.msdn.com/sco...ve/2005/03/09/391199.aspx

Maar wie is je doelgroep? En anders maak je twee installs, één met en één zonder het .Net Framework

[ Voor 45% gewijzigd door gorgi_19 op 19-08-2006 15:18 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • ironx
  • Registratie: Augustus 2001
  • Laatst online: 23-12-2025
FooBarWidget schreef op zaterdag 19 augustus 2006 @ 15:11:
Ik overweeg om een applicatie in C# te schrijven aangezien Delphi tegenwoordig niet meer zo geweldig is en C++ niet al te productief is. Maar hoeveel mensen hebben tegenwoordig .NET geinstalleerd? Zijn er statistieken beschikbaar? Want ik wil mijn gebruikers niet vragen om eerst een 100 MB .NET runtime te downloaden voordat ze mijn programma kunnen gebruiken.
Ik heb het iig wel standaard geinstalleerd omdat ik zelf ook aan het knutselen ben met .NET, maar daar heb je niet veel aan :)

Maar hoe kom je er bij dat het 100MB is? .NET 2.0 Framework is "maar" +/- 23MB?


This posting is provided "AS IS" with no warranties, and confers no rights.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14-02 12:34

gorgi_19

Kruimeltjes zijn weer op :9

ironx schreef op zaterdag 19 augustus 2006 @ 15:17:
[...]


Ik heb het iig wel standaard geinstalleerd omdat ik zelf ook aan het knutselen ben met .NET, maar daar heb je niet veel aan :)

Maar hoe kom je er bij dat het 100MB is? .NET 2.0 Framework is "maar" +/- 23MB?
Ik gok dat hij de SDK verward met de redistributable, maar je hebt idd die laatste nodig. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Bedankt maar is er iets recenters? Bovendien ben ik vooral geintereseerd in het marktaandeel onder normale thuisgebruikers, niet bedrijven.

[ Voor 5% gewijzigd door FooBarWidget op 19-08-2006 15:19 ]


  • kamerplant
  • Registratie: Juli 2001
  • Niet online
Vista zal .NET standaard geinstalleerd hebben (meen ik). Mensen die de officiele ATi drivers geinstalleerd hebben zullen ook .NET hebben. Misschien dat het huidige aantal gebruikers nu nog niet extreem groot is, maar het zal snel groeien.
Weet ook dat .NET applicaties mogelijk op Unix (Linux / OS X) aan de praat te krijgen zijn met Mono, daardoor kun je zo weer een grote groep erbij pakken. Ik kan je helaas geen ervaringen over Mono geven :P

🌞🍃


  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Mijn doelgroep is de huis-tuin-en-keuken gebruiker. Dus ik wil vooral weten hoeveel Windows XP-gebruikers .NET al hebben.

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Windows XP SP2 heeft afaik ook al standaard .NET 1.1 aan boord, en .NET 2.0 is verspreid als update volgens mij. Dus je kan er wel vanuit gaan dat een hoop mensen het geïnstalleerd hebben.

Sole survivor of the Chicxulub asteroid impact.


  • truegrit
  • Registratie: Augustus 2004
  • Laatst online: 10-02 15:26
wij hebben hier 4 windows XP computers staan, en ik ben denk ik de enige met .NET, omdat dat met visual studio meegeleverd werd. Ik weet het trouwens niet zeker, maar ik kan me niet voorstellen dat ze het geinstalleerd zouden hebben. 2 van de computers worden gebruikt voor games, en de derde is van mijn vader die niets meer doet dan wat sudokus and emailen

hallo


  • dotcode
  • Registratie: Augustus 2003
  • Laatst online: 13-02 13:49

dotcode

///\00/\\

je kan het framework mee sturen met je installer of een versie compilen die het framework niet nodig heeft. Je bent er dan zeker van dat alle windows gebruikers het kunnen gebruiken.

Verwijderd

FooBarWidget schreef op zaterdag 19 augustus 2006 @ 15:24:
Mijn doelgroep is de huis-tuin-en-keuken gebruiker. Dus ik wil vooral weten hoeveel Windows XP-gebruikers .NET al hebben.
Antwoord: niet veel.

.NET zit niet bij de windows updates, alleen als extra.

Maar dat is toch geen probleem ? je kunt hem gewoon mee installeren met je programma. De windows installer doet dat automagisch als je dat wil.

[edit]
En wat is 30mb nou om te downloaden, 4 extra minuten ofzo ?

[ Voor 7% gewijzigd door Verwijderd op 19-08-2006 15:32 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14-02 12:34

gorgi_19

Kruimeltjes zijn weer op :9

FooBarWidget schreef op zaterdag 19 augustus 2006 @ 15:24:
Mijn doelgroep is de huis-tuin-en-keuken gebruiker. Dus ik wil vooral weten hoeveel Windows XP-gebruikers .NET al hebben.
http://www.informit.com/g...?g=dotnet&seqNum=343&rl=1

Maar wat is nu het probleem om er twee versies van te maken, of de .Net redistributable ook mee te leveren?

[ Voor 15% gewijzigd door gorgi_19 op 19-08-2006 15:31 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
je kan het framework mee sturen met je installer of een versie compilen die het framework niet nodig heeft. Je bent er dan zeker van dat alle windows gebruikers het kunnen gebruiken.
Een versie compileren die het framework niet nodig heeft? Ik wist niet dat dat kan. Waar kan ik meer informatie vinden hierover?

En het framework meesturen wil ik zoveel mogelijk voorkomen. Mijn programma wordt verspreid over het Internet en het laatste wat ik wil is dat mijn gebruikers een uur langer moeten downloaden om die .Net framework binnen te krijgen. Downloadtijd is dan ook de enige reden waarom ik zo terughoudend ben. Vooral voor de modemgebruikers is elke minuut downloadttijd een minuut te veel.

[ Voor 11% gewijzigd door FooBarWidget op 19-08-2006 15:33 ]


Verwijderd

Ga je er van uit dat je gebruikers een 56k modem hebben dan ?

Minimaal zal ergens rond de 2mbit liggen denk ik. (Dat is 2 minuten extra downloaden.)

[edit]
Als je hem inbakt in je programma schiet je toch niets op ? Je programma word groter en de mensen die .NET al hebben moeten meer downloaden.

[ Voor 50% gewijzigd door Verwijderd op 19-08-2006 15:38 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14-02 12:34

gorgi_19

Kruimeltjes zijn weer op :9

FooBarWidget schreef op zaterdag 19 augustus 2006 @ 15:32:
[...]


Een versie compileren die het framework niet nodig heeft? Ik wist niet dat dat kan. Waar kan ik meer informatie vinden hierover?
http://www.thinstall.com/solutions/net_virtual.php

Maar zo ongeveer alle linkjes die ik heb gegeven zijn te vinden met Google; heb je zelf ook enige moeite gedaan om tot een oplossing te komen?

[ Voor 19% gewijzigd door gorgi_19 op 19-08-2006 15:35 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Ga je er van uit dat je gebruikers een 56k modem hebben dan ?
Ja. Mijn programma wordt vooral via het Internet verspreid. Mijn doelgroep is niet alleen Nederlandse gebruikers, maar gebruikers wereldwijd. Vooral mensen in landen als de Filippijnen hebben geen breedband verbinding (ze moeten daar zelfs per megabyte betalen!).
Maar zo ongeveer alle linkjes die ik heb gegeven zijn te vinden met Google; heb je zelf ook enige moeite gedaan om tot een oplossing te komen?
Eh ja. Als ik zoek naar alles wat ".NET" bevat dan geeft Google een waslijst resultaten terug waarin het woord "net" (dus niet ".NET") zit, dus allemaal resultaten die niets met .NET te maken hebben. Zo'n naam is helemaal niet handig.
En alle zoekresultaten zeggen dat het niet mogelijk is.

Die .NET Virtualization is een commercieel pakket en kost $5000 per applicatie (!). Zoveel kan ik niet veroorloven, mijn programma is slechts een zeer goedkope shareware programma.

[ Voor 17% gewijzigd door FooBarWidget op 19-08-2006 15:47 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14-02 12:34

gorgi_19

Kruimeltjes zijn weer op :9

FooBarWidget schreef op zaterdag 19 augustus 2006 @ 15:40:
Eh ja. Als ik zoek naar alles wat ".NET" bevat dan geeft Google een waslijst resultaten terug waarin het woord "net" (dus niet ".NET") zit, dus allemaal resultaten die niets met .NET te maken hebben. Zo'n naam is helemaal niet handig.
Dan moet je het combineren met andere zoekwoorden :)

http://www.google.nl/sear...t+without+framework&meta=
http://www.google.nl/sear...Framework+installed&hl=nl

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Zoiets had ik al geprobeerd, maar die zoekresultaten over hoeveel mensen .NET hebben zijn niet erg duidelijk. Ik zie daar maar 1 poll tussen staan, maar die poll wordt niet gehouden op een bekende site. Bovendien zijn er, volgens die poll, een grote groep mensen die weigeren om .NET te installeren. Dat is niet erg geruststellend.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:24

Creepy

Tactical Espionage Splatterer

Als je al Delphi kent en je niet het "risico" wilt nemen dat mensen je app. niet willen draaien omdat je gebruik maakt van .NET dan schrijf je het toch gewoon in Delphi? Dat "Delphi" niet meer "geweldig" is is natuurlijk onzin want je kan er nog steeds prima Windows applicaties (en meer) mee schrijven.

Dat Delphi "uit" is en C# "in" is duidelijk ja. Maar als je jezelf niet gerust voelt op het feit dat er mensen .NET niet willen installeren dan blijf je toch lekker bij Delphi?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Als je al Delphi kent en je niet het "risico" wilt nemen dat mensen je app. niet willen draaien omdat je gebruik maakt van .NET dan schrijf je het toch gewoon in Delphi? Dat "Delphi" niet meer "geweldig" is is natuurlijk onzin want je kan er nog steeds prima Windows applicaties (en meer) mee schrijven.
Ja, totdat je een van de vele problemen tegenkomt:
- Geen garbage collection behalve voor strings.
- Excepties in Delphi zijn zeer lelijk. Om een exceptie van een bepaalde type af te vangen moet je binnen een 'except' block ook nog een 'on Blabla do' block zetten. 2 keer indenten voor niks eigenlijk.
- De Delphi editor zuigt vergeleken met bijna elke andere editor (Notepad uitgezonderd).
- Heel veel open source libraries zijn geschreven in C. Je moet handmatig Delphi bindings schrijven voor die libraries. Voor C++ is het nog erger: je moet eerst C++-naar-C bindings schrijven en dan Delphi-naar-C. De .NET runtime bevat zoveel functionaliteit dat ik die third party libraries die ik voor Delphi nodig heb, voor C# niet nodig heb.
- Pointer arithmetic zuigt, het is heel verwarrend. Ik heb genoeg met C gewerkt om pointers te snappen maar pointers in Delphi blijven me achtervolgen (en ik heb pointers nodig aangezien ik met C libraries werk).
- Bizarre stabiliteitsproblemen. StrToInt() hoort een exception te gooien als de conversie niet werkt. Maar op computers van sommige gebruikers crasht het programma gewoon ipv dat er een exception wordt gegooid. En bij heel veel problemen kan Delphi niet eens tonen bij welke regel die wordt veroorzaakt.
- En vele andere redenen, maar aangezien dit geen Delphi topic is zal ik maar stoppen.

Delphi is niet alleen uit, maar ook gewoon niet praktisch meer.

[ Voor 26% gewijzigd door FooBarWidget op 19-08-2006 16:11 ]


  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

je zit met .NET wel heel hard aan ms vast.
waarom geen java proberen?

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 13-02 18:47
ik wel, er zit standaard een .net ding bij visual basic 2006

  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
je zit met .NET wel heel hard aan ms vast.
waarom geen java proberen?
Volgens mij hebben nog minder mensen een JVM geinstalleerd dan .NET. En Java heeft de reputatie langzaam (als in 'het gebruikt zoveel geheugen dat mijn computer langzaam wordt van het swappen') te zijn.
Ik maak me helemaal geen zorgen om de mensen die een breedband verbinding hebben. Ik maak me juist zorgen om de mensen die dat NIET hebben, zoals mensen in Azie (die een groot deel van mijn gebruikers zijn). Door het gebrek aan breedbandverbindingen daar hebben minder mensen Azureus, dus ook minder mensen met een JVM.

En tja, hard aan MS vastzitten... het is een Windows programma, met Delphi zit ik minstens net zo hard vast aan MS. Bovendien heb je bij .NET nog Mono, dus ik durf te beweren dat je bij .NET minder hard aan MS vast zit dan bij Delphi.

[ Voor 23% gewijzigd door FooBarWidget op 19-08-2006 16:19 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:24

Creepy

Tactical Espionage Splatterer

Ow kom op. Java = traag kennen we nu wel :/. Als je aan de hand daarvan wilt gaan bepalen welke taal je wilt gaan gebruiken dan kan je beter nu stoppen. Als je java prog gaat swappen ligt dat aan het geschreven programma en echt niet aan de JVM.

Daarnaast heb je ook nog zoiets als Object Pascal en Kylix (zuigt, is buggy, maar werkt wel) dus ook je punt m.b.t. aan MS vastzitten met Delphi gaat niet echt op. En de punten die je opnoemt om zowel C als Delphi niet te willen gebruiken wil ik het niet eens over gaan hebben.

Sorry hoor, maar ik vindt je meeste argumenten echt kul en ik kan me ook bijna niet voorstellen dat je een gedegen onderzoek hebt gedaan naar de verschillende ontwikkelomgevingen die je op het oog hebt.

Als mensen je programma willen gebruiken en het is geschreven in .NET dan installeren ze het .NET framework echt wel. De figuren die .NET weigeren te installeren loop je dan mis maar ik kan me niet voorstellen dat je je keuze laat afhangen van deze groep mensen.

[ Voor 3% gewijzigd door Creepy op 19-08-2006 16:23 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:26
Als je echt wilt weten hoeveel mensen .NET hebben geinstalleerd, dan zal je een representatieve enquete moeten uitvoeren, en niet de vraag stellen op een forum voor mensen met een grote interesse voor computers & techniek. Zowiezo zal je hier ws een andere uitkomst krijgen dan bij jouw doelgroep.
Verder zie ik niet in wat het probleem is: als je het perse met .NET wilt doen, dan maak je toch gewoon je programma in .NET ? Je maakt ook een setup-project, en in dat setup project kan je checken of het .NET framework op de pc geinstalleerd is; is dat niet het geval, kan je ervoor zor gen dat je setup project het framework ook installeert. (Een launch condition geloof ik).

Verder ben ik het ook eens met Creepy: je reden om het niet in Delphi te schrijven, is een non-argument. Wat kan het de gebruiker van een applicatie nu schelen in welke taal die app geschreven is ?
100 MB .NET runtime
De runtime is 22mb.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:26
dotcode schreef op zaterdag 19 augustus 2006 @ 15:29:
je kan het framework mee sturen met je installer of een versie compilen die het framework niet nodig heeft. Je bent er dan zeker van dat alle windows gebruikers het kunnen gebruiken.
Nee, dat kan niet. De runtime heb je altijd nodig.

Het is wel zo dat er bepaalde tooltjes zijn, die ervoor zorgen dat de runtime in je executable zelf vervat zit, maar da's imho meer een nadeel dan een voordeel.
Zowiezo heb je de runtime nodig.

Je kan wel je .NET code direct naar native code compileren, zodanig dat je de IL stap overslaat, en de JI compiler niet nodig hebt, maar ook hier kleven er nadelen aan.
je zit met .NET wel heel hard aan ms vast.
waarom geen java proberen?
Dan zit je aan Sun vast.
Is er een nadeel verbonden om aan 'MS' vast te zitten ? AFAIK is MS een redelijk stabiel bedrijf, dat niet gauw over de kop zal gaan, en die wel nog een tijdje zal investeren in .NET ;)
Bizarre stabiliteitsproblemen. StrToInt() hoort een exception te gooien als de conversie niet werkt. Maar op computers van sommige gebruikers crasht het programma gewoon ipv dat er een exception
Komt dit dan gewoon niet omdat je die exceptie niet opvangt ? Unhandled exceptions willen je applicatie wel eens doen crashen ja...

[ Voor 43% gewijzigd door whoami op 19-08-2006 16:39 ]

https://fgheysels.github.io/


  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Als je aan de hand daarvan wilt gaan bepalen welke taal je wilt gaan gebruiken dan kan je beter nu stoppen.
Tja, vertel dat maar aan de gebruikers. Ik heb zelf al jarenlang geen last gehad meer van swappende Java programma's. Ik ken Java goed, en ik kan wel urenlang rationele redenen geven waarom ze niet bang voor Java hoeven te zijn. Maar veel gebruikers luisteren gewoon niet en blijven bij hun vooroordelen. Er zit gewoon teveel emotionele angst aan Java vast onder de normale gebruikers, die kun je niet bestrijden met logica.
Daarnaast heb je ook nog zoiets als Object Pascal
Ik neem aan dat je Free Pascal bedoelt. Free Pascal implementeert de niet-grafische gedeelte van de VCL. Heel leuk en aardig maar ik heb wel degelijk een GUI nodig. En ik heb ook dingen als sockets en AES-encryptie nodig.
en Kylix (zuigt, is buggy, maar werkt wel)
Ik heb Kylix een aantal jaren geprobeerd, en het is niet meer dan een lachtertje. Om maar een paar dingen op te noemen:
- Het gebruikt QT 1. Bijna geen enkele Linux gebruiker heeft QT 1 meer tegenwoordig.
- Da's nog niet het ergste. Kylix-gecompileerde programma's draaien heel vaak niet eens op andere computers! Of zelfs op je eigen computer! Als ik een Kylix programma draai vanuit Kylix dan werkt het. Vanuit de commandline komt het tijdens op opstarten in een oneindige lus terecht, tenzij ik LD_LIBRARY_PATH naar de Kylix-versie van QT zet.
- Win32 Delphi apps kun je niet eens triviaal hercompileren in Kylix. Veel teveel compatibiliteitsproblemen, zelfs als je geen Win32 API gebruikt.
En de punten die je opnoemt om zowel C als Delphi niet te willen gebruiken wil ik het niet eens over gaan hebben.
Tja, als StrToInt() al tot een crash (en dan bedoel ik ook echt een crash) leidt op sommige systemen dan zet ik toch wel vraagtekens bij Delphi. (Zie ook mijn reply hieronder)
Sorry hoor, maar ik vindt je meeste argumenten echt kul en ik kan me ook bijna niet voorstellen dat je een gedegen onderzoek hebt gedaan naar de verschillende ontwikkelomgevingen die je op het oog hebt.
Dat is je mening en dat mag je hebben. Maar ik heb er wel degelijk onderzoek naar gedaan.
Verder ben ik het ook eens met Creepy: je reden om het niet in Delphi te schrijven, is een non-argument. Wat kan het de gebruiker van een applicatie nu schelen in welke taal die app geschreven is ?
Ik wil het niet in Delphi schrijven, is dat niet genoeg reden om geen Delphi te gebruiken? Ik snap ook niet waarom je de reden waarom ik Delphi niet leuk vind "non-argumenten" noemt. Het is toch een feit dat je een extra 'on blabla do' block moet zetten in een 'except' block om excepties van een bepaalde type op te vangen? Het is toch een feit dat Delphi geen garbage collection heeft? Het is toch een feit dat de VCL geen socket class heeft? Het is toch een feit dat je handmatig C-naar-Delphi bindings moet schrijven voor C libraries.
De figuren die .NET weigeren te installeren loop je dan mis maar ik kan me niet voorstellen dat je je keuze laat afhangen van deze groep mensen.
Omdat die figuren een significant deel van mijn gebruikers zijn en die mag ik niet negeren.
Als je echt wilt weten hoeveel mensen .NET hebben geinstalleerd, dan zal je een representatieve enquete moeten uitvoeren, en niet de vraag stellen op een forum voor mensen met een grote interesse voor computers & techniek.
Ik had dus gehoopt dat iemand een website kent waarin onderzoek is gedaan naar grote groepen thuisgebruikers....
Komt dit dan gewoon niet omdat je die exceptie niet opvangt ? Unhandled exceptions willen je applicatie wel eens doen crashen ja...
Nee, ik vang ze wel degelijk op. Maar dan leidt het alsnog tot een crash. Bij mijn systeem kan het probleem echter niet reproduceren, ook niet onder dezelfde omstandigheden. Dit probleem komt voor bij zo'n 1% van mijn gebruikers, maar zelfs dat is te veel.

[ Voor 23% gewijzigd door FooBarWidget op 19-08-2006 17:00 ]


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 12-02 12:22
De Java JVM zal dan wel niet geinstalleerd hoeven te zijn, maar je kan dat ding heel mooi mee packagen met ja applicatie. Zelfde geldt voor .NET.

Als mense jou applicatie downloaden, dan kan dat beetje extra ook wel mee. Als mensen het krijgen op een CDtje, waar praten we dan nog over. :+

Mensen die weigeren een JVM of .NET runtime te installeren zijn er praktisch niet. Enkel diegenen die niet weten wat het is en het nog nooit nodig gehad hebben. Verder gewoon aangeven dat het meegeinstalleerd wordt. Gebeude bij VB applicaties toch ook altijd al?

[ Voor 31% gewijzigd door The - DDD op 19-08-2006 16:49 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:24

Creepy

Tactical Espionage Splatterer

Als je zelf niet in Delphi wil ontwikkelen dan lijkt de keuze me vrij snel gemaakt. De gemiddelde huis-tuin-en-keuken gebruiker boeit de installatie van het .NET framework echt niet.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Johnny
  • Registratie: December 2001
  • Laatst online: 13-02 11:27

Johnny

ondergewaardeerde internetguru

Wanneer de bezoekers op je website Internet Explorer zien kun je heel makkelijk zien aan de User-agent string of ze het .NET-framework hebben geinstalleerd, dan staat er namelijk zoiets:

code:
1
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET


Zo kun je dus je bezoekers automatisch de meest voor de hand liggende download voorschotelen.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Verwijderd

FooBarWidget schreef op zaterdag 19 augustus 2006 @ 16:06:
Ja, totdat je een van de vele problemen tegenkomt:
- Geen garbage collection behalve voor strings.
Tja, net als een paar honderd andere compilers werkt Delphi niet met een VM en een garbage collector. Maar wat is er mis met zelf je rommel opruimen wanneer je 't niet meer nodig hebt? Ik moest er heel erg aan wennen dat ik in C# de boel niet eens kon free-en...
- Excepties in Delphi zijn zeer lelijk. Om een exceptie van een bepaalde type af te vangen moet je binnen een 'except' block ook nog een 'on Blabla do' block zetten. 2 keer indenten voor niks eigenlijk.
Idem in C#, ik zie geen verschil wat dat betreft.
- De Delphi editor zuigt vergeleken met bijna elke andere editor (Notepad uitgezonderd).
De editor is op sommige punten minder dan die van Visual Studio, maar daar zijn prima add-ins voor te krijgen (GExperts, CodeRush, etc.). En op sommige punten is 'ie doodgewoon beter: bookmarks, block edit functies, etc.
Maar ik kan er met de beste wil van de wereld niet bij wat de kwaliteit van een editor te maken heeft met de kwaliteit van een compiler.
- Heel veel open source libraries zijn geschreven in C. Je moet handmatig Delphi bindings schrijven voor die libraries. Voor C++ is het nog erger: je moet eerst C++-naar-C bindings schrijven en dan Delphi-naar-C. De .NET runtime bevat zoveel functionaliteit dat ik die third party libraries die ik voor Delphi nodig heb, voor C# niet nodig heb.
Ook in C# zul je bindings naar 3rd party C/C++ libraries zelf moeten schrijven. Dat het .NET framework veel van die libraries overbodig maakt is mooi meegenomen, maar alweer: geen verschil.
- Pointer arithmetic zuigt, het is heel verwarrend. Ik heb genoeg met C gewerkt om pointers te snappen maar pointers in Delphi blijven me achtervolgen (en ik heb pointers nodig aangezien ik met C libraries werk).
In C# zijn pointers binnen managed code uit den boze, dus van dat probleem ben je meteen af. Nu nog zien of je die C libraries aan de praat krijgt in 'unsafe' mode, maar dan kom je in hetzelfde pointer-wespennest als onder Delphi. :)
- Bizarre stabiliteitsproblemen. StrToInt() hoort een exception te gooien als de conversie niet werkt. Maar op computers van sommige gebruikers crasht het programma gewoon ipv dat er een exception wordt gegooid.
Nog nooit meegemaakt in de afgelopen 8 jaar dat ik met Delphi werk, maar dan gebruik je toch gewoon StrToIntDef? Wel zo handig...
En bij heel veel problemen kan Delphi niet eens tonen bij welke regel die wordt veroorzaakt.
Compileer je C# project maar 's in release mode, dan heb je hetzelfde probleem.
- En vele andere redenen, maar aangezien dit geen Delphi topic is zal ik maar stoppen.

Delphi is niet alleen uit, maar ook gewoon niet praktisch meer.
Ik verdien m'n brood met het schrijven van programma's in zowel Delphi als C#, en ik zie niet zo bar veel verschillen. OK, op .NET gebied blijft Delphi 2006' IDE nog hangen op 't 1.1 framework, maar de compiler kan goed overweg met 2.0. En op native niveau doet Delphi m.i. ook niet onder voor MS's C++ compiler.

  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Tja, net als een paar honderd andere compilers werkt Delphi niet met een VM en een garbage collector.
Je hebt niet per se een VM nodig voor garbage collection. Perl, Python en Ruby hebben ook geen VM. En er bestaan garbage collectors voor C++.
maar daar zijn prima add-ins voor te krijgen (GExperts, CodeRush, etc.).
Goeie tip, bedankt.
Maar ik kan er met de beste wil van de wereld niet bij wat de kwaliteit van een editor te maken heeft met de kwaliteit van een compiler.
Omdat alles bij Delphi zo strak bij elkaar gebundeld is. Het is erg moeilijk om een andere editor te gebruiken, je krijgt dan allerlei integratieproblemen. Ik heb bijvoorbeeld liever dat de editor een harde tab invoert als ik op tab druk, op dit moment probeert hij op een rare manier te indenten die nooit is wat ik wil (en ik heb al geprobeerd om dit te veranderen).
Ook in C# zul je bindings naar 3rd party C/C++ libraries zelf moeten schrijven. Dat het .NET framework veel van die libraries overbodig maakt is mooi meegenomen, maar alweer: geen verschil.
In mijn geval wel een verschil. Het programma wat ik wil gaan schrijven is een soort rewrite van een bestaande programma. Alle functionaliteit die ik op dit moment nodig heb in third party libraries zitten al in de .NET runtime.
Nog nooit meegemaakt in de afgelopen 8 jaar dat ik met Delphi werk, maar dan gebruik je toch gewoon StrToIntDef? Wel zo handig...
Ook al geprobeerd. Zelfs dat geeft problemen. Bij een klein aantal gebruikers zorgt StrToIntDef() ervoor dat het programma crasht. Ik heb nooit uit kunnen vinden waarom het gebeurt, maar het is een feit dat het gebeurt bij die mensen. Ik heb zelfs een eigen MyStrToInt() moeten schrijven die eerst controleert of str een lege string is, als workaround.
Compileer je C# project maar 's in release mode, dan heb je hetzelfde probleem.
Mijn Delphi programma was dus gecompileerd met debugging aan.

Overigens gebruik ik Delphi 6. Ik heb ooit eens Delphi 2006 geprobeerd maar die deed 1 minuut over om op te starten, en crasht tijdens afsluiten.

Verwijderd

Wat jij wilt kan niet. Je wilt namelijk dat mensen niets downloaden of hoeven te installeren maar het moet wel lekker snel en gemakkelijk ontwikkelen zijn als in C#. Of te wel: Je wilt de simpele deployment van C++ waarbij je genoeg hebt aan een executable maar je wilt tevens het gehele .NET framework omdat daar alles al in zit en het veel minder tijd kost om je applicatie te ontwikkelen.

Tevens snap ik net als Afterlife niet goed waarom je tegen delphi bent.
1. Je kan al delphi dus het ontwikkelen moet je snel af gaan.
2. De problemen die je hebt zie ik zelf niet als problemen (geen garbage collectie, mindere IDE, etc).

Daarnaast zit iedereen over 2+ jaar op .NET. Zowiezo alle mensen met SP2 hebben .NET 1.1. Als Vista eenmaal ingeburgerd is heeft iedereen .NET. Anders moet je er voor kiezen om je programma in .NET 1.1 te schrijven. Dan weet je in iedergeval dat meer mensen over het framework beschikken dan met .NET 2.0 het geval is.

Verwijderd

FooBarWidget schreef op zaterdag 19 augustus 2006 @ 17:45:
Je hebt niet per se een VM nodig voor garbage collection. Perl, Python en Ruby hebben ook geen VM. En er bestaan garbage collectors voor C++.
Perl, Python en Ruby zijn interpreters, en wanneer je voor C++ een GC nodig hebt, ben je wel heel erg beroerd aan het programmeren... ;)
Omdat alles bij Delphi zo strak bij elkaar gebundeld is. Het is erg moeilijk om een andere editor te gebruiken, je krijgt dan allerlei integratieproblemen. Ik heb bijvoorbeeld liever dat de editor een harde tab invoert als ik op tab druk, op dit moment probeert hij op een rare manier te indenten die nooit is wat ik wil (en ik heb al geprobeerd om dit te veranderen).
Tools -> Editor options, 'Use tab character' aanzetten, en 'Smart tab' uitzetten. Precies het tegenovergestelde van wat ik prettig vind. :)
Overigens gebruik ik Delphi 6. Ik heb ooit eens Delphi 2006 geprobeerd maar die deed 1 minuut over om op te starten, en crasht tijdens afsluiten.
D6 is niet de meest geniale Delphi versie die er is. Probeer 's te downgraden naar D5 (als je die webservices dingen niet nodig hebt) of te upgraden naar D7. D2006 duurt inderdaad even voor 'ie opgestart is (vergelijkbaar met VS2005), maar bij mij crasht 'ie niet bij het afsluiten.

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:26
FooBarWidget schreef op zaterdag 19 augustus 2006 @ 17:45:
[...]


Je hebt niet per se een VM nodig voor garbage collection. Perl, Python en Ruby hebben ook geen VM. En er bestaan garbage collectors voor C++.
Hoe gaat dat dan in z'n werk, garbage collection zonder VM ?
Doet het OS het dan voor jou ?
:?

https://fgheysels.github.io/


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:24

Creepy

Tactical Espionage Splatterer

Nog een kleine Delphi tip: als je altijd precies wilt weten waar je programma crasht, gebruik dan bijv. MadExcept. Die vangt elke crash en niet gevangen exceptie af en laat direct de complete call stack (inclusief units, methods en regelnummers) zien.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Wat jij wilt kan niet. Je wilt namelijk dat mensen niets downloaden of hoeven te installeren maar het moet wel lekker snel en gemakkelijk ontwikkelen zijn als in C#. Of te wel: Je wilt de simpele deployment van C++ waarbij je genoeg hebt aan een executable maar je wilt tevens het gehele .NET framework omdat daar alles al in zit en het veel minder tijd kost om je applicatie te ontwikkelen.
Dat klopt. Ik weet dat het niet kan, daarom ook de vraag: hoeveel normale thuisgebruikers hebben het al geinstalleerd? Of ik daadwerkelijk C# ga gebruiken hangt daarvan af.
en wanneer je voor C++ een GC nodig hebt, ben je wel heel erg beroerd aan het programmeren...
Oh ja? Download maar eens Inkscape en vertel me dat dat een beroerd programma is.
Hoe gaat dat dan in z'n werk, garbage collection zonder VM ?
Doet het OS het dan voor jou ?
Geen idee hoe het werkt, maar kijk maar eens naar libgc, wat gebruikt wordt door Inkscape.

  • Depress
  • Registratie: Mei 2005
  • Laatst online: 12-02 13:20
FooBarWidget schreef op zaterdag 19 augustus 2006 @ 16:06:
[...]


Ja, totdat je een van de vele problemen tegenkomt:
- Geen garbage collection behalve voor strings.
- Excepties in Delphi zijn zeer lelijk. Om een exceptie van een bepaalde type af te vangen moet je binnen een 'except' block ook nog een 'on Blabla do' block zetten. 2 keer indenten voor niks eigenlijk.
- De Delphi editor zuigt vergeleken met bijna elke andere editor (Notepad uitgezonderd).Eigen mening!
- Heel veel open source libraries zijn geschreven in C. Je moet handmatig Delphi bindings schrijven voor die libraries. Voor C++ is het nog erger: je moet eerst C++-naar-C bindings schrijven en dan Delphi-naar-C. De .NET runtime bevat zoveel functionaliteit dat ik die third party libraries die ik voor Delphi nodig heb, voor C# niet nodig heb.Leuk toch, delphi 7 kan daar in veel gevallen me overweg. En anders zoek je niet goed genoeg, ik vind er genoeg!
- Pointer arithmetic zuigt, het is heel verwarrend. Ik heb genoeg met C gewerkt om pointers te snappen maar pointers in Delphi blijven me achtervolgen (en ik heb pointers nodig aangezien ik met C libraries werk).Anders, kwestie van leren en er tijd in steken.
- Bizarre stabiliteitsproblemen. StrToInt() hoort een exception te gooien als de conversie niet werkt. Maar op computers van sommige gebruikers crasht het programma gewoon ipv dat er een exception wordt gegooid. En bij heel veel problemen kan Delphi niet eens tonen bij welke regel die wordt veroorzaakt.Dat hoeft niet, dat het in andere talen zo is ok. Delphi heeft daar TryIntToStr() voor.
- En vele andere redenen, maar aangezien dit geen Delphi topic is zal ik maar stoppen.

Delphi is niet alleen uit, maar ook gewoon niet praktisch meer.
Ik pleur even wat commentaar achter je opmerkingen!

  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
- De Delphi editor zuigt vergeleken met bijna elke andere editor (Notepad uitgezonderd).Eigen mening!
Ja het is inderdaad een eigen mening. Maakt dat wat uit?
Leuk toch, delphi 7 kan daar in veel gevallen me overweg. En anders zoek je niet goed genoeg, ik vind er genoeg!
Ik zou het heel leuk vinden als je een YAML parser voor Delphi kan vinden.

Verwijderd

Oh ja? Download maar eens Inkscape en vertel me dat dat een beroerd programma is.
Niet eens naar gekeken, maar als C++ of Delphi programmeur weet je gewoon dat je de objecten die je zelf hebt gemaakt ook weer moet opruimen. Daar zullen vast wel vuilnismannen voor uitgevonden zijn die dat voor je doen, maar dan blijft 't nog steeds jouw veratwoordelijkheid dat 't opgeruimd wordt.
Dan gooi ik ze liever zelf weg. :)

Verwijderd

Ik zou het heel leuk vinden als je een YAML parser voor Delphi kan vinden.
Net even op http://www.yaml.org gekeken, maar dat lijkt me een project dat gedoemd is te mislukken. Ze willen XML opnieuw uitvinden, maar dan "human readable". Met als gevolg dat 't slechter "computer parsable" is. En laten computers nou 's heel goed zijn in het "human readable" maken van dingen die ze goed kunnen parsen.

Ik zie er zo gauw geen voordeel in t.o.v. XML met een duidelijke XSD of schema, en een leuk XSL transformation scriptje om de boel "human readable" te maken.

Maar niks staat je in de weg om zelf een YAML parser te maken, toch? ;)

  • FooBarWidget
  • Registratie: September 2004
  • Laatst online: 12-09-2024
Garbage collection kan de productiviteit verhogen en redundancy schelen. Neem een voorbeeld als dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
List := TStringList.Create;
AssignFile(F, "foo.txt");
// Ervan uitgaande dat we I/O exceptions gebruiken
try
   Reset(F);
   Readln(Line);
   List.Add(Line);
   DoeIetsMet(List); // Dit kan een DoeIetsError gooien
except
    on E: DoeIetsError do
        CloseFile(F);
        List.Free;
        raise EenAndereException.Create("Kan niets doen met foo.txt.");
    end;
    on E: Exception do
        CloseFile(F);
        List.Free;
        raise EenAndereException.Create("Onbekende fout: " + E.Message);
    end;
end;
Close(F);
List.Free;


Zie je het probleem ook? "CloseFile(F);List.Free;" komt maar liefst 3 keer voor, dikke redundancy. (Ja, dit zou je ook op een andere manier kunnen oplossen maar het is maar 1 voorbeeld.) Met garbage collection zal dat automatisch voor je gedaan worden.

Bovendien wordt handmatig vrijmaken lastiger wanneer je te maken hebt met een shared resource die wordt gebruikt door meerdere threads. Dan moet je je eigen reference count code schrijven. Het zou toch handig zijn als je dat niet hoeft?
Net even op http://www.yaml.org gekeken, maar dat lijkt me een project dat gedoemd is te mislukken. Ze willen XML opnieuw uitvinden, maar dan "human readable". Met als gevolg dat 't slechter "computer parsable" is. En laten computers nou 's heel goed zijn in het "human readable" maken van dingen die ze goed kunnen parsen.
Je denkt dat het gedoemd is om te mislukken omdat je denkt dat ze XML opnieuw uitvinden. Dat is een zeer veelgemaakte vooroordeel, en is niet het geval. YAML is geen "human readable XML". YAML is een object serialization taal, geen markup taal. YAML is een keukenmes en XML is een zwitserse legermes. YAML is een vliegenmepper en XML is een atoombom. Je kan een vlieg doden met een atoombom, een atoombom is immers een alleskiller, net als XML een soort 'alles-markup' is. Maar ja, misschien is het handiger om een vliegenmepper te gebruiken als je alleen maar een vlieg wilt doden.

"Gedoemd om te mislukken" is een groot woord. Definieer eerst "mislukken". Het wordt intensief gebruikt in Ruby on Rails.
Ik zie er zo gauw geen voordeel in t.o.v. XML met een duidelijke XSD of schema, en een leuk XSL transformation scriptje om de boel "human readable" te maken.
Het voordeel is dat de boel korter is. Wat type je liever:
code:
1
2
3
4
menu:
   - aardappel
   - kokosnoot
   - tomaat

of:
code:
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf8"?>
<root>
  <menu>
    <item>aardappel</item>
    <item>kokosnoot</item>
    <item>tomaat</item>
  </menu>
</root>

Ik heb mijn keuze snel gemaakt. XML bevat tonnen redundancy. Leuk voor complexe documenten of markup, maar overkill voor simpele object serialization.

Maar, zoals ik al zei: vliegenmepper vs atoombom. Ze zijn allebei ontworpen voor andere dingen, klaar.
Maar niks staat je in de weg om zelf een YAML parser te maken, toch?
Behalve het feit dat ik wat beters te doen heb. :|

[ Voor 48% gewijzigd door FooBarWidget op 19-08-2006 23:03 ]


Verwijderd

Zie je het probleem ook? "CloseFile(F);List.Free;" komt maar liefst 3 keer voor
Zet die 2 dingen 's in het 'finally' blok van een try finally? Die wordt nl. ook uitgevoerd wanneer er een exception optreedt.

En wat betreft YAML:
"Gedoemd om te mislukken" is een groot woord. Definieer eerst "mislukken".
Als in niet ondersteund door de grote spelers (Microsoft, Sun, IBM, Oracle, etc.).
Natuurlijk weet ik dat XML stijf staat van de overhead, maar 't is wel de de facto standaard voor serialization en het uitwisselen van (de data binnen) objecten.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:24

Creepy

Tactical Espionage Splatterer

Ik had al eens laten vallen dat ik het idee had je nog niet het 1 en ander onderzocht te hebben, waarbij je vervolgens verteld dat dat wel het geval is maar hier vervolgens niks daarvan post. Dat verwachten we eigenlijk wel van je. Zie ook Programming Beleid en dan met name Programming Beleid - De Quickstart
Het feit dat google met "yaml parser delphi" meer dan 1 bruikbaar resultaat oplevert spreekt ook niet in je voordeel (http://hp.vector.co.jp/authors/VA028375/junkbox/dyayaml.zip nog geen 3 minuten zoeken).

De links doe gorgi_19 al aanhaalde zijn ook vrij simpel zelf te vinden en met wat meer zoekwerk zijn er verschillende zaken te vinden die over het wel of niet installeren van of geinstalleerd hebben van .NET gaan.

Ik denk ook dat het meeste nu wel gezegd is hierover en doe dan ook dit topic op slot.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.