April 20, 2012
On Thursday, 19 April 2012 at 18:21:30 UTC, Paulo Pinto wrote:
> Hi,
>
> just wanted to announce that Sony has finally made the new Playstation
> Vita SDK available, as we were discussing some months ago.
>
> http://www.playstation.com/pss/index_e.html
>
> The gamming industry seems to be slowing moving to C#. Would we still
> be able to convince developers to move to D instead?
>
> --
> Paulo

What I don't get is why no large software company is backing up D right now. It's quite clear by now that D is by far the language that has the best feature set to be the successor to C++.

If IBM for example was helping D like they did for eclipse, the traction would be huge and the toolchain would stabilize so much faster. :(
April 20, 2012
On Friday, 20 April 2012 at 04:40:56 UTC, H. S. Teoh wrote:
> But I suppose my experience has been colored by the trauma of working
> with an over-engineered C++ system that only one guy understands,
> resulting in people who came after him rewriting their own versions of
> code that they didn't dare reuse 'cos they didn't understand it,
> eventually ending up in a patch-upon-bandaid-upon-patch codebase with
> umpteen ways of doing the same thing that *nobody* understands, not even
> the original guy.
>
> One example. The system had this elaborate database abstraction class
> hierarchy that could do wonders: automatically populate data structures,
> automatically ensure data consistency, periodically do self-maintenance,
> replicate itself and sync with backup servers, etc., -- if we only knew
> how to use it.  Problem is, only the guy who wrote it knew which obscure
> class objects to instantiate to make the thing sing to our tune, so
> somebody got frustrated and wrote what is essentially a wrapper function
> that takes a raw SQL string and executes it, thus bypassing the entire
> beautiful database abstraction code completely. Since everybody else
> didn't understand the original code either, they started using this SQL
> bypass function everywhere... only to discover that the system broke in
> subtle ways when you didn't go through its beautifully over-engineered
> abstractions. So more and more dirty hacks were introduced that piled on
> top of each other like festering infected bandages that fail to address
> the real wound underneath.
>

Oh yeah, I've seen that story too in a couple of other places. C++ seems to make exceptionnally easy for "mad coders" to screw up a whole system with overengineered pieces of crap. One of my colleagues spent more than a year rewriting a system that turned into a black box that nobody could maintain.

My opinion is, when a team works in this language, code reviews should be an obligation, else there is always a guy like that, who has his genius idea that nobody else understands and puts his crap all over the place. Basically, the only piece of C++ software I've seen that never became a huge piece of steaming crap was a system that was systematically code reviewed by the main software architect and a couple of highly skilled engineers.

I suspect D is not much better on this topic, it's possible to write extremely complex code with it too. Actually, it's possible to write complex and unmaintaineble stuff in any language (even in Python), but I believe the more complex the language, the easier it is to screw things up and the more important code reviews are.
April 20, 2012
On Friday, 20 April 2012 at 06:43:51 UTC, Paulo Pinto wrote:
> Well, C# can also be real systems programming language, see Singularity.
> And native code compilers are also available (Bartok, Mono AOT, NGEN).
>
> D names itself a system programming language, but I am yet to see any OS
> coded on it. Without system programming examples, it becomes just another
> application level language.
>

I once asked on reddit what "system programming language" meant, and the 3 answers I received were: a language that gives full access to memory", i.e basically a language with pointers. Not one mentioned being suitable for programming operating systems.
Yet, if you forget the standard library, disable the GC, and use a subset of the language (no exceptions for instance), I suppose it's possible to write low level code with it.
April 20, 2012
Quite true.

"sclytrack"  wrote in message news:jmr47r$1q2a$1@digitalmars.com...


> As for C#: I've always seen it as...maybe not "Java done right" because I'm

It's also Delphi.

Delphi + Java 

April 20, 2012
Language with pointers does not mean a thing for systems programming, there
are quite a few VM languages with pointers.

Even BASIC can be a systems programing language by that metric (PEEK/POKE).

--
Paulo

"SomeDude"  wrote in message news:dtklqpimpbunmevhvhqi@forum.dlang.org... 

On Friday, 20 April 2012 at 06:43:51 UTC, Paulo Pinto wrote:
> Well, C# can also be real systems programming language, see Singularity.
> And native code compilers are also available (Bartok, Mono AOT, NGEN).
>
> D names itself a system programming language, but I am yet to see any OS
> coded on it. Without system programming examples, it becomes just another
> application level language.
>

I once asked on reddit what "system programming language" meant, and the 3 answers I received were: a language that gives full access to memory", i.e basically a language with pointers. Not one mentioned being suitable for programming operating systems.
Yet, if you forget the standard library, disable the GC, and use a subset of the language (no exceptions for instance), I suppose it's possible to write low level code with it.
April 20, 2012
Actually when I read Singularity papers I keep thinking to myself that D could
be Sing#. In the sense that both share many common features.

Thanks for the xomb link.

--
Paulo

"Alex Rønne Petersen"  wrote in message news:jmr1vd$1m25$1@digitalmars.com...

On 20-04-2012 08:43, Paulo Pinto wrote:
> Well, C# can also be real systems programming language, see Singularity.

No, this is actually a common misconception.

Singularity does *not* use plain C#. It uses Sing#, which is an
extension of Spec# adding message-passing, compile-time reflection, and
safe manual memory management features. Spec# is a version of C# heavily
based on design-by-contract (I'd argue its DbC is far superior to D's in
fact).

Plain C# out of the box is not useful for systems-level programming, and
especially not in a kernel.

> And native code compilers are also available (Bartok, Mono AOT, NGEN).
>
> D names itself a system programming language, but I am yet to see any OS
> coded on it. Without system programming examples, it becomes just another
> application level language.

https://github.com/xomboverlord/xomb

>
> On the other hand I confess this is a very hard task, as most of systems
> programming
> languages that manage to exist as such (PL/I, Ada, C, C++, Mac Pascal),
> did so because
> there was an OS vendor that made use of them.
>
> Now that I mention this, does anyone know if D is being used as research
> language in any operating system department in some university? I remember
> there were some posts about it long time ago.
>
> What I see going for D in terms of language features:
>
> - scope
> - compile time metaprogramming
> - mixin as a kind of macro mechanism
> - inline assembler (this one might be a bit debatable)
> - delegation via subtyping
> - all available implementations compile straight to native code
>
> --
> Paulo
>
>
> "Nick Sabalausky" wrote in message news:jmpphn$20s9$1@digitalmars.com...
>
> "Paulo Pinto" <pjmlp@progtools.org> wrote in message
> news:jmpl39$1oa1$1@digitalmars.com...
>> Hi,
>>
>> just wanted to announce that Sony has finally made the new Playstation
>> Vita SDK available, as we were discussing some months ago.
>>
>> http://www.playstation.com/pss/index_e.html
>>
>> The gamming industry seems to be slowing moving to C#. Would we still
>> be able to convince developers to move to D instead?
>>
>
> Yes. I suspect that the movement to C# is somewhat of a compromise due to
> the fact that C/C++ has been the *only* real systems language usable for
> most gaming systems. Obviously, something better than C++ is needed, and
> thanks to the moronic VM/interpreted obsessions from the last decade or so
> that rendered most new languages impotent, there was no real alternative to
> C++. So, I suspect, that's why they made the compromise of going with C#.
>
> But D is *real* systems language, unlike C#. And frankly, it beats the snot
> out of C#. I'm not just saying that subjectively as D fan: Five years ago
> (if not less) I considered C# and D tied as my favorite languages. But the
> more I used both, the more I got fed up with C#'s dumb limitations and MS's
> disinterest in addressing them, and the more I liked D.
>
> If D can't be made to attract game devs away from C++/C#, then I'll loose
> what little faith I have left in mainstream games development.
>


-- 
- Alex 

April 20, 2012
It seems the major companies are all backing proprietary languages for their
systems. Similar to what used to be the case in the mainframe era, where each
OS had its own language, kind of.

Which from their point of view (not ours, of course) makes sense, as it bounds
applications to their OS.

--
Paulo

"SomeDude"  wrote in message news:hzksprcfedvmvowyxmtb@forum.dlang.org...

On Thursday, 19 April 2012 at 18:21:30 UTC, Paulo Pinto wrote:
> Hi,
>
> just wanted to announce that Sony has finally made the new Playstation
> Vita SDK available, as we were discussing some months ago.
>
> http://www.playstation.com/pss/index_e.html
>
> The gamming industry seems to be slowing moving to C#. Would we still
> be able to convince developers to move to D instead?
>
> --
> Paulo

What I don't get is why no large software company is backing up D
right now. It's quite clear by now that D is by far the language
that has the best feature set to be the successor to C++.

If IBM for example was helping D like they did for eclipse, the
traction would be huge and the toolchain would stabilize so much
faster. :( 

April 20, 2012
On 20 April 2012 15:30, SomeDude <lovelydear@mailmetrash.com> wrote:

> On Thursday, 19 April 2012 at 18:21:30 UTC, Paulo Pinto wrote:
>
>> Hi,
>>
>> just wanted to announce that Sony has finally made the new Playstation Vita SDK available, as we were discussing some months ago.
>>
>> http://www.playstation.com/**pss/index_e.html<http://www.playstation.com/pss/index_e.html>
>>
>> The gamming industry seems to be slowing moving to C#. Would we still be able to convince developers to move to D instead?
>>
>> --
>> Paulo
>>
>
> What I don't get is why no large software company is backing up D right now. It's quite clear by now that D is by far the language that has the best feature set to be the successor to C++.
>

It's a bit of a chicken and egg problem, but I suspect there is interest :)


If IBM for example was helping D like they did for eclipse, the traction
> would be huge and the toolchain would stabilize so much faster. :(
>

What exactly would mainstream developers do to stimulate such traction, and stabilise the toolchain as you are suggesting?


April 20, 2012
On Apr 19, 2012, at 8:42 PM, Andrei Alexandrescu <SeeWebsiteForEmail@erdani.org> wrote:

> On 4/19/12 3:05 PM, H. S. Teoh wrote:
>> Yeah, I've been working with C++ for almost 2 decades, and I really can't say I'd recommend it for new projects. At my day job, for example, we actually migrated from C++ back to plain old C, due to an incredibly over-engineered C++ codebase that was slow, bloated, and unmaintainable. It sounds laughable to the casual observer, but I have to say that there was actually a lot gained by this migration. We are much more productive with the new C-based system than C++. There are just too many ways to write bad code in C++. C makes everything simple and clear, if a bit tedious at times (due to basically partially reimplementing a class system in C).
> 
> This is interesting. We use C++ at Facebook all over the place, and gainfully. If we were to use C, we'd have major difficulties with e.g. containers. The thought of using a hashtable in C... ouch.

I wonder how much of the productivity gain is just from it being a new codebase. There have been studies that demonstrate that, in general, C++ decreases the cost of maintenance.

As for hash tables in C... You're just stuck with casting the value. I implemented a C version of unordered_map for work and it's plenty easy to use. Iteration is done using a foreach routine with a callback.
April 20, 2012
On Apr 19, 2012, at 11:30 PM, "Jameson Ernst" <j.patrick.ernst@gmail.com> wrote:

> On Thursday, 19 April 2012 at 19:37:28 UTC, Nick Sabalausky wrote:
>> "Paulo Pinto" <pjmlp@progtools.org> wrote in message news:jmpl39$1oa1$1@digitalmars.com...
>>> Hi,
>>> 
>>> just wanted to announce that Sony has finally made the new Playstation Vita SDK available, as we were discussing some months ago.
>>> 
>>> http://www.playstation.com/pss/index_e.html
>>> 
>>> The gamming industry seems to be slowing moving to C#. Would we still be able to convince developers to move to D instead?
>>> 
>> 
>> Yes. I suspect that the movement to C# is somewhat of a compromise due to the fact that C/C++ has been the *only* real systems language usable for most gaming systems. Obviously, something better than C++ is needed, and thanks to the moronic VM/interpreted obsessions from the last decade or so that rendered most new languages impotent, there was no real alternative to C++. So, I suspect, that's why they made the compromise of going with C#.
>> 
>> But D is *real* systems language, unlike C#. And frankly, it beats the snot out of C#. I'm not just saying that subjectively as D fan: Five years ago (if not less) I considered C# and D tied as my favorite languages. But the more I used both, the more I got fed up with C#'s dumb limitations and MS's disinterest in addressing them, and the more I liked D.
>> 
>> If D can't be made to attract game devs away from C++/C#, then I'll loose what little faith I have left in mainstream games development.
> 
> As a C# game developer very interested in D, I'll chime in on this. The contrast from C++ is definitely a part of it. C# is very pleasant to work in for the most part. C# is actually quite fast, but would I prefer to also reap the full benefit of native speed? Absolutely, that's why I'm so interested in D.
> 
> I think there's more to it though. I mentioned this in the Fibers thread, but C# provides a limited form of coroutine built into the language. The utility of coroutines in game logic cannot be overstated. Being able to do things like:
> 
> {
>    WalkTo(pos);
>    WaitForSeconds(3);
>    FireMyLaser(target);
> }
> 
> And have it JUST WORK like you want is huge. You can get this by delegating out to a script language that supports it like LUA, but then we're back in JIT territory. Expressing this kind of thing in the native language itself would be ideal.
> 
> I think D is sitting on a game dev goldmine with core.thread.Fiber. Especially the bit about being able to migrate them across threads. Having 10,000 entity coroutines active and being able to load balance them across all your cores with a taskpool would be amazing. I'm just worried that since Fiber seems to be such a low-key feature that it won't survive a refactor of the library or fall out of favor over time and be deprecated.

For what it's worth, Mikola Lysenko did a talk on coroutines in D at a D conference a few years ago. It's on video, if you're interested in looking for it.