Jump to page: 1 2 3
Thread overview
What is the Philosophy of D?
Oct 16, 2017
codephantom
Oct 16, 2017
ketmar
Oct 16, 2017
Mark
Oct 16, 2017
qznc
Oct 16, 2017
Ali
Oct 18, 2017
XavierAP
Oct 16, 2017
skymuse
Oct 17, 2017
codephantom
Oct 17, 2017
ketmar
Oct 16, 2017
Moritz Maxeiner
Oct 18, 2017
Andrea Fontana
Oct 18, 2017
Ali
Oct 18, 2017
Andrea Fontana
Oct 19, 2017
codephantom
Oct 17, 2017
Dukc
Oct 18, 2017
codephantom
Oct 18, 2017
Dukc
Oct 19, 2017
Dukc
Oct 25, 2017
codephantom
Oct 24, 2017
Tony
October 16, 2017
D's overview page says "It doesn't come with .... an overriding philosophy."

Is philosophy not important?

I'd like to argue, that the problem of focusing on getting the job done quickly and reliably, does *not* leave behind maintainable, easy to understand code, but rather it leads to unintended outcomes ...

If the philosophy of C, is 'the programmer is in charge', what might the philosophy of D be?

e.g. Maximum precision in expression, perhaps?

October 16, 2017
codephantom wrote:

> If the philosophy of C, is 'the programmer is in charge', what might the philosophy of D be?

fast. safe. reliable. choose any three of 'em.
October 16, 2017
On Monday, 16 October 2017 at 00:25:32 UTC, codephantom wrote:
> D's overview page says "It doesn't come with .... an overriding philosophy."
>
> Is philosophy not important?
>
> I'd like to argue, that the problem of focusing on getting the job done quickly and reliably, does *not* leave behind maintainable, easy to understand code, but rather it leads to unintended outcomes ...
>
> If the philosophy of C, is 'the programmer is in charge', what might the philosophy of D be?
>
> e.g. Maximum precision in expression, perhaps?

It's not very catchy, but I would say "Genercity, productivity and performance all at once".
October 16, 2017
On Monday, 16 October 2017 at 00:25:32 UTC, codephantom wrote:
> D's overview page says "It doesn't come with .... an overriding philosophy."
>
> Is philosophy not important?
>
> I'd like to argue, that the problem of focusing on getting the job done quickly and reliably, does *not* leave behind maintainable, easy to understand code, but rather it leads to unintended outcomes ...
>
> If the philosophy of C, is 'the programmer is in charge', what might the philosophy of D be?
>
> e.g. Maximum precision in expression, perhaps?

The frontpage says "It combines efficiency, control and modeling power with safety and programmer productivity."

The three big words are: Convenience, Power, Efficiency.

What are the "philosophies" we are talking about? Probably the usual paradigms, like object-oriented, functional, etc. D supports them, but none of them is overriding or dominant. Maximum safety is another philosophy. D allows you to enhance safety (@safe) or diminish it (inline assembly).
October 16, 2017
On Monday, 16 October 2017 at 00:25:32 UTC, codephantom wrote:
> D's overview page says "It doesn't come with .... an overriding philosophy."
>

Then this is exactly, its philosophy

Some of the nicer comments I read about D, and one reason why it still stand a chance against other more hyped language such as Rust ...

is that D doesn't force any style of programming on you,

I understand that some people, like to keep an eye or have a view, of the strategic (long term) advantages of a language , and there is nothing really wrong with that

But, D ... isn't missing any long term vision, it has many, and its makers are lacking in the vision department... D just need developers to take advantages of it, on the short term ... to use it now

So if I may ... the current philosophy of D enthusiasts should be
"write code, not blogs"
October 16, 2017
On Monday, 16 October 2017 at 00:25:32 UTC, codephantom wrote:
> D's overview page says "It doesn't come with .... an overriding philosophy."
>
> Is philosophy not important?
>
> I'd like to argue, that the problem of focusing on getting the job done quickly and reliably, does *not* leave behind maintainable, easy to understand code, but rather it leads to unintended outcomes ...
>
> If the philosophy of C, is 'the programmer is in charge', what might the philosophy of D be?
>
> e.g. Maximum precision in expression, perhaps?

I believe D not having a philosophy was very important when I ported all my projects from python to D. Let me explain.

I had a very important project that I've been using everyday for two-three years, written in python, and I grew tired of the negative effects of interpreted languages. I needed to take a risk and perform a complete rewrite to counter the issues. My new language needed to excel in the following categories for the rewrite to be successful:  performance, testing, and learning curve. The candidates were Rust, Go, Haskell, Swift, and of course D.

Rust had a difficult learning curve and it was not easy to port Python code to Rust, therefore that language was ignored. Haskell stuck to the philosophy of a purely functional language, which made the learning curve dramatic and I had to ignore this language. Swift seemed to be focus more on cocoa apps over command line apps, so I ignored this language as well. This left me with Go and D, both languages that solved my requirements. Let me tell you why I choose D.

D gave me the freedom to code the way I wanted to, Go forced me to think "simply". D gave me every feature possible to solve my problem, Go took them away. D allowed me to program in a style that matched the problem at hand, Go forced me to follow only one style. Are you seeing the pattern? When you religiously follow a philosophy, you're limited to only solving problems that play well with that philosophy.
October 16, 2017
On Monday, 16 October 2017 at 00:25:32 UTC, codephantom wrote:
> D's overview page says "It doesn't come with .... an overriding philosophy."
>
> Is philosophy not important?
>
> I'd like to argue, that the problem of focusing on getting the job done quickly and reliably, does *not* leave behind maintainable, easy to understand code, but rather it leads to unintended outcomes ...
>
> If the philosophy of C, is 'the programmer is in charge', what might the philosophy of D be?
>
> e.g. Maximum precision in expression, perhaps?

"Get it done, but also right"
October 17, 2017
On Monday, 16 October 2017 at 13:56:34 UTC, skymuse wrote:
> ...Let me tell you why I choose D.
>
> D gave me the freedom to code the way I wanted to, Go forced me to think "simply". D gave me every feature possible to solve my problem, Go took them away. D allowed me to program in a style that matched the problem at hand, Go forced me to follow only one style. Are you seeing the pattern? When you religiously follow a philosophy, you're limited to only solving problems that play well with that philosophy.

Don't confuse religion and philosophy. One is a dynamic const, the other is purely dynamic ;-)

I take it from your story, that one could say the philosophy of D, is:

'Do it your way'.

That sounds like a great philosophy! And it certainly fits with my understanding of the capabilities of D, and perhaps is indicative of the spirit in which D came about ;-)
October 17, 2017
codephantom wrote:

> I take it from your story, that one could say the philosophy of D, is:
>
> 'Do it your way'.

and "have fun" too. this is important.
October 17, 2017
On Monday, 16 October 2017 at 00:25:32 UTC, codephantom wrote:
> Is philosophy not important?

I think that if somebody wants to nail down a philosophy for D, the main page puts it well: "The best paradigm is to not impose something at the expense of others". I also heard that long ago there was a phrase "D is not a religion". I wasn't myself here then but it still describes D alot.

Well, I quess other phrases could also be included it, like "ultimate performance must be attainable, but if the way for it is otherwise undesirable it should be explicit" but the point is that D tries to let you to program in any style it technically can. With that "technically can" I mean that it does not support logic programming for example because it would require too great a rework on implementation and language spec.

This is in contrast to Java and C# which almost force you to use object-oriented styles, and Python whose philosophy is "there should be one, and preferably only one clear way to do a thing". C++ and Forth are examples of languages which share that philosophy of D.
« First   ‹ Prev
1 2 3