D - or the story of how i rediscovered my geek side.

------------WARNING: LONG TECHNICAL POST W/ DETAILS AHEAD------------
you have been warned, therefore, if at any point in the post you find your head spinning or your attention-span shorted out due to the aforementioned details, which many would consider boring, it will be YOUR FAULT, got it? YOURS.
------------WARNING: LONG TECHNICAL POST W/ DETAILS AHEAD------------


I can't take it anymore, I HAVE to share with you my predicament.
the word must be spread, etc etc.

Anyway, some day in early january, while staring at a download bar at 3am "willing it" to go faster, i suddenly had a panic attack:

"Oh Shit. i'm outdated. not only i can't remember the the basics of VHDL (I'm serious. i cant. and in the midst things i was sidetracked and forgot to look it up), but i actually managed to forget the details of my OWN "graduation" program. (written in C++) Crap. with a K."

after a few minutes running thru lines of code, i realized while i have a metric ton of ebooks here, i dont actually have any C++ books.. so, ebooksclub.org, here i come!

ok, got the book (the handy "Practical C++ Programming" By Steve Oualline), now to write some code:

oops. something else i lack. While having an excellent visual IDE for C++ Borland C++Builder, i actually didnt have the beautiful (if geriatric) Borland TurboC++ . and no way i would use CppBuilder to write menial progs. ugh.
ok, a quick visit to phazeddl.com to get what i need, and its "Hello World" all the way!

before that, i went to wikipedia to check what's the latest version, found a link to a hot new flashy 2006 version, but decided to remain with the much smaller-sized 3.0 .. sigh.

One link led to another and somehow i found myself reading an article comparing features of programming languages..
something on the list caught my eye, something i've wished for and wanted and dreamed about for soooooo long, but never had the mind to look for.

a little thing called "D Programming Language" OMG!

went to the page, read its features, then felt my face contorting autonomously into an ear-to-ear grin! (seriously)
i mean come on, anything that lets me do the following:

import std.stdio; //for writefln()
void main() {
printf("hello world IMPORTED WITHOUT HEADERS!\n");
writefln("hello world IN LOCAL LANGUAGE!\n");
}

has to have a shrine devoted to it, with monthly human sacrifices.
i've already signed up as an acolyte.

for more details, check the wiki post, it has all the examples/example links you need to be dazzled and hooked.

if you still dont believe me, check this out:

"D is being designed with lessons learned from practical C++ usage rather than from a theoretical perspective. It uses many C++ concepts but discards some, such as strict backwards compatibility with C source code.
It adds to the functionality of C++ by also implementing design by contract, unit testing, true modules, automatic memory management (garbage collection), first class arrays, associative arrays, dynamic arrays, array slicing, nested functions, inner classes, closures (anonymous functions), lazy evaluation and has a reengineered template syntax.
D retains C++'s ability to do low-level coding, and adds to it with support for an integrated inline assembler.
C++ multiple inheritance is replaced by Java style single inheritance with interfaces and mixins. D's declaration, statement and expression syntax closely matches that of C++.
The inline assembler typifies the differences between D and application languages like Java and C#.

An inline assembler lets programmers enter machine-specific assembly code in with standard D code—a technique often used by system programmers to access the low-level features of the processor needed to run programs that interface directly with the underlying hardware, such as operating systems and device drivers."

if you are a geek/nerd, you are already salivating.

*SHOCK* this beauty's been around for almost 7 years now. SEVEN FULL YEARS I HAVE LIVED AND BREATHED WITHOUT KNOWING ABOUT THIS.
but when i calmed down, i saw that the first stable version of D came out just TWO DAYS prior!
now, you tell me its not fate?

DOWNLOAD!

then the bummer:

this thing is so new there is NO professional IDEs/tools for it. but then again, that never stopped anyone, right?
D is so nice it already has an efficient, stable, command-line compiler.

after running a few sample programs (under DOS) and sniggering with delight, the lazy bug bit me on the ass, and so, i started looking for a solution to ease my illness.

after a few clicks i managed to re-find something very helpful i've heard about often but never tried, called Programmer's Notepad, which is a text-editor program which can recognize keywords of programming languages AND it lets you build simple custom functions to manipulate the code you've just written, i.e. Compile.
BINGO!
(for more details, check the site, download the free prog, you WILL love it)

after a little tinkering to include some D language features, and some more tinkering to build my own Compile and Run clickety-click visual kiddie buttons, i'm set to go!

then reality set in:

after all the included examples and sample code have been run, i dont know half of what i should know to be able to do what i want in D.

shit.

and whoops: again, since its so new, there ain't many resources i can learn *steal* code from.

double-shit.

and so, dear readers -if any of you are still alive at this point- i have decided to embark on a journey of epic proportions, to learn C++, Java, and C#, and then re-write what can be re-written of my "graduation" program in D.

almost a month after its release, and my subsequent download of it, and i'm still ecstatic.
i'm running through C++ AND D, comparing notes, and next will go thru J and C# concurrently.
i just need to find me a good C# compiler. the simpler the better.

does anyone have a link?

and yes, i do have a girlfriend (fiancee to be more accurate) aaaand an active social life ;)

side note: i upgraded my "graduation" program to implement classes instead of structures. more stable, a bit less memory consumption, in short, it doesnt freeze and cause the pc to crash at random when i stop it manually :))

oh you had no idea when you first visited here, did you? you poor souls! ;)
i hope i can make it up to most (if not all) of you with a "real" post soon.
blog comments powered by Disqus