Advertentie | |
|
![]() |
|
ehm. ja.
Programmeren, marino, is lastig. Om niet te zeggen moeilijk. Maar wel heel leuk ![]() Als je cross-platform programma's wil maken, kun je bijvoorbeeld C gebruiken, of C++ (prefereer zelf C, schoner). Als je bereid bent een obscure taal te leren, kan ik D aanraden (krachtig als C++, maar schoon als C). Of objective-c, maar om daar wat zinnigs mee te doen heb je gnustep nodig. Maar er zijn nog veel meer talen dan dat, en een linux installatie komt vaak met bijna alles! Zo is er squeak, een open-source implementatie van smalltalk. Of python, een geinterpreteerde taal. Of perl, een taal die onder andere support bied voor regexp, en bovendien erg krachtig is met files, arrays, hashes etc. Voor webcoden heb je php, maar ook talen als ruby, python, en perl hebben frameworks voor het maken van webprogramma's. Bovendien bestaan JVM en mono ook nog, en die staan je in staat om respectievelijk java en C# te programmeren. Deze lijken qua syntax vrij veel op C, maar draaien in een VM en zijn makkelijker vanwege het gebrek aan memory managment. Ook zijn ze object-georienteerd, hoewel dat in C-gerelateerde talen vaak niet meer betekent dan het hernoemen van structs ![]() En op een boek van de bieb zou ik niet rekenen, want meestal ben je met leren programmeren veel langer bezig dan 3 weken. Mijn advies is eens te bedenken wat je precies wil leren. C kan ik aanraden, want het is de basis van veel moderne en populaire talen. Maar in veel zin zijn andere talen krachtiger. |
![]() |
|
Ikzelf heb het geleerd dmv dit boek. Het is saai, ja, en het is dik, ja; maar het is allemaal wel heel helder. Vooral aan het hoofdstuk over datatypes zoals lijsten, stacks en binaire bomen, heb ik heel veel gehad.
D komt van digitalmars. Het komt met een garbage collecter (C ook, tenminste, met gcc van gnu. Ik neem aan dat je het op je computer hebt staan), binaire-compatibiliteit met C programma's, en heel veel andere goodies ![]() Toch kan ik ook talen als python en perl aanraden. Perl is vooral heel krachtig, maar je zult heel wakker moeten zijn om het te gebruiken. LISP is mijn eigenlijke favoriet. |
![]() |
||
Citaat:
Ditzelfde probleem zie je bijvoorbeeld ook met Macromedia Flash. Voor linux is er een binary voor, voor BSD niet. Flash is verweven tot een standaard maar één bedrijf heeft de touwtjes in handen en bepaalt op welk OS flash kan draaien. Cross-platform betekent voor mij dan ook dat een taal echt vrij moet zijn, en Java wordt hierin naar mijn oordeel foutief genoemd.
__________________
Per undas adversas (tegen de stroom in)
|
![]() |
||
Verwijderd
|
Citaat:
![]() 45 minuten duurde het je om het werkend te krijgen, maar dit is slechts eenmalig (of iig 1x in de X tijd). Beschouw het als een performance penalty ![]() Oveirgens is .NET niet een programmeertaal, maar een platform. De vergelijking zou dan beter opgaan als je de CLR van .net vergelijkt met de JVM van Java. Je keuze in programmeertaal is hierbij vrij, i.e. een taal die gecompileerd kan worden naar intermediate code. J# is dan met name interessant voor beginnende .net programmeurs die al java (en in het bijzonder J++) achter de kiezen hebben, aangezien volgens mij het hele arsenaal aan libs aanwezig is inclusief MS z'n libs en eventuele bestaande libs die geschreven zijn in andere talen. Crossplatform betekent voor mij toch echt dat er voor elke platform die meeweegt een runtime environment voorhanden is. Dat is volgens mij bij java ook het geval, iig dus voor de belangrijkste platformen. Gebruikersvriendelijkheid is voorlopig helaas nog een 2e. En dan nog terugkomend op je vorige post, waarin je Java te strict vindt, ik begrijp dit niet zozeer. Dit moet je namelijk, als je het OO paradigm correct toepast, zien als een VOORDEEL in dat Java/C#/J# strongtyped languages zijn, MET de mogelijkheid om dynamisch te typen afhankelijk van je structuur. Traag heeft overigens niets te maken met de taal, maar met de verbose JVM. Het bevat nogal wat legacy code, en bij opstarten vreet het al vrij veel geheugen, waardoor ik ook erg uit kijk naar Apache Foundation's implementatie van de JVM. Ook moet je je erbij neerleggen dat een JIT compiler nooit native code kan verslaan in performance, echter is het een misconceptie te denken dat een JIT altijd VEEL slomer is. Een JIT compiler heeft tijdens run-time een schatkist aan informatie itt native, en kan on the fly optimaliseren itt native. Laatst gewijzigd op 30-10-2005 om 19:01. |
![]() |
||
Citaat:
Er zijn een aantal redenen dat Java als 'langzaam' geld. Allereerst omdat mensen koppig alles in '100% pure java' willen schrijven, inclusief de widgetsets. God weet waarom. Een andere reden is het geheugen. Programmeurs bekend met Java weten dat Java alleen op de stack alloceert, en dat dit als snel geld. Probleem is alleen het volgende: java is een userspace programma en is in principe afhankelijk van de host-kernel voor de allocatie van geheugen. En hoewel de jvm tijdens initialisatie 64 mb RAM alloceert, wil dat nog niet zeggen dat het daadwerkelijk vrijgemaakt is. Dat regelt het systeem. Met als gevolg dat, alle optimalisaties ten spijt, Java qua geheugen voornamelijk afhankelijk is van z'n hostssysteem. Ten tweede: OO en strongly-typed-heid hebben geen fuck met elkaar te maken; integendeel, veel OO talen zijn juist dynamic typed. Waar Java je in limiteert zijn de kleine, stomme dingen, vooral. Je moet begrijpen dat 'n goede C programmeur weet dat het enige wat C doet 32 bit integers rondgooien is (ok, je kunt ook structs rondgooien, en floats, doubles en long doubles, maar daar zul je jezelf weinig mee bezighouden, vooral omdat het rondgooien van structs meestal gebeurt dmv het rondgooien van pointers naar structs, en dit zijn weer 32 bit integers.) Java is een taal van 20 jaar na C, en in de tussentijd hebben mensen (al dan niet terecht) bedacht dat 32 bit integers toch niet alles zijn. Vandaar de boolean, het meest gelimiteerde datatype ooit, en waarschijnlijk ook de meest zinloze. Booleans zijn niet alleen gelimiteerd, ze limiteren ook de functies die ze als argumenten nemen en als waarde teruggeven. Voor een C programmeur die gewend is 32 bits integers rond te gooien (en die wellicht heeft ontdekt dat je daarmee meer en nuttiger informatie kunt rondstrooien dan alleen true en false) is het stricte gebruik van booleans verstikkend. |
Ads door Google |
![]() |
||||
Verwijderd
|
Citaat:
Citaat:
Object Georienteerd is hetgeen al als het een notie heeft van objecten. Het opzetten echter van een goede OO structuur begint met abstractie en composeren van 'onderdelen', en hierbij speelt typeren een grote rol bij, getuige ook het doel van interfaces en genericiteit. Citaat:
Laatst gewijzigd op 30-10-2005 om 19:55. |
![]() |
||
Verwijderd
|
Citaat:
![]() |
![]() |
||
Verwijderd
|
Citaat:
![]() |
![]() |
||
Citaat:
Code:
while (i < 10) { do }
__________________
$karma++;
|
![]() |
||
Verwijderd
|
Citaat:
|
Advertentie |
|
![]() |
||
Verwijderd
|
Citaat:
|
![]() |
Topictools | Zoek in deze topic |
|
|