View mode: basic / threaded / horizontal-split · Log in · Help
November 03, 2008
Re: C++, D: Dinosaurs?
"Nick Sabalausky" <a@a.a> wrote in message 
news:gel5tu$1a1v$1@digitalmars.com...
> "Clay Smith" <clayasaurus@gmail.com> wrote in message 
> news:gej5nr$13jd$1@digitalmars.com...
>> Tony wrote:
>>> Someone has to ask the obvious question! (The question is in the subject 
>>> of this post).
>>>
>>> Tony
>>
>> Technically, I'd consider C++ to be undead. Old, ugly, its zombie rotting 
>> flesh never seems to die. It lives by eating the brains of C programmers.
>>
>> ~ Clay
>
> Funny you mention that, the analogies I normally think of for C++ are 
> either a 120+ year-old on life support or, as you said, the living dead. 
> It's long past it's time, but people just won't let it finally rest 
> (probably because, aside from D, there's no modern language that's a 
> suitable replacement for C++ in *all* of C++'s use-cases. C# and Java, for 
> instance, are only partial replacements. They can handle many of C++'s 
> uses, but not all.)

The "in *all* of C++'s use-cases" part is probably the way to create a 
dinosaur (call it E, F or G or whatever). The concept of "general purpose 
language" is getting a bit long-toothed?

Tony
November 03, 2008
Re: C++, D: Dinosaurs?
"Tony" <tonytech08@gmail.com> wrote in message 
news:genht8$2fcg$1@digitalmars.com...
>
> "Nick Sabalausky" <a@a.a> wrote in message 
> news:gel5tu$1a1v$1@digitalmars.com...
>> "Clay Smith" <clayasaurus@gmail.com> wrote in message 
>> news:gej5nr$13jd$1@digitalmars.com...
>>> Tony wrote:
>>>> Someone has to ask the obvious question! (The question is in the 
>>>> subject of this post).
>>>>
>>>> Tony
>>>
>>> Technically, I'd consider C++ to be undead. Old, ugly, its zombie 
>>> rotting flesh never seems to die. It lives by eating the brains of C 
>>> programmers.
>>>
>>> ~ Clay
>>
>> Funny you mention that, the analogies I normally think of for C++ are 
>> either a 120+ year-old on life support or, as you said, the living dead. 
>> It's long past it's time, but people just won't let it finally rest 
>> (probably because, aside from D, there's no modern language that's a 
>> suitable replacement for C++ in *all* of C++'s use-cases. C# and Java, 
>> for instance, are only partial replacements. They can handle many of 
>> C++'s uses, but not all.)
>
> The "in *all* of C++'s use-cases" part is probably the way to create a 
> dinosaur (call it E, F or G or whatever). The concept of "general purpose 
> language" is getting a bit long-toothed?
>
> Tony

I strongly disagree. The concept of domain-specific languages is 
ultra-trendy these days (probably promoted by the same knuckleheads that 
hailed things like pure-OO, pure-functional, and Extreme Programming as 
silver bullets). But I consider domain-specific languages to be purely a 
symptom of a strong need for a better general purpose language.

Let's face it: programming needs and uses have expanded so much over the 
last decade or so that C/C++ hasn't really been a "general purpose" language 
for quite some time. These days it's a systems/performance language instead. 
True, all the attempts at retrofitting it with modern-ish features to try to 
keep it general-purpose have turned it into a regular frankenstein's monster 
of a language, but that does nothing to disprove the viability of general 
purpose languages in general. It just demonstrates that C++ needs a reboot 
(hence: D). Heck, D is already far better as a general-purpose language than 
C/C++ (although it's still not quite there yet).

I'd *much* rather use a true general-purpose language (which, again, C++ is 
no longer an example of) than muck around with 500 different languages for 
every stupid little thing.

For example, have you ever tried doing web development? You can't 
realistically do anything nontrivial without tripping over at least handful 
of different, essentially domain-specific, languages: ECMAScript, (T)SQL, 
(X)HTML, XML, CSS, and either PHP, ASP/VBScript, ASP.NET/C#, Python or Ruby. 
And that's just the bare minimum for any non-trivial web site. For one 
thing, most of those are great examples of the fact that domain-specific 
languages do nothing to prevent piss-poor language design. But besides that: 
Conceptually, web development is one of the most trivial forms of 
programming out there. But the domain-specific language-soup realities of it 
have turned what should have been trivial into one of the programming 
world's biggest pains-in-the-ass. It's an absolute mess. I'm currently 
writing my first compiler, and I have in the past written homebrew for the 
Atari VCS, and an Asm sound driver for a multiprocessing 
microcontroller/embedded-device that has no sound hardware other than a 
generic DAC capability. All of those have proven to be far less 
pains-in-the-ass than any of my web development work. Considering the 
conceptual simplicity of the web, that's just absolutely pathetic.
November 03, 2008
Re: C++, D: Dinosaurs?
"Nick Sabalausky" <a@a.a> wrote in message 
news:genrqm$1h4$1@digitalmars.com...
> "Tony" <tonytech08@gmail.com> wrote in message 
> news:genht8$2fcg$1@digitalmars.com...
>>
>> "Nick Sabalausky" <a@a.a> wrote in message 
>> news:gel5tu$1a1v$1@digitalmars.com...
>>> "Clay Smith" <clayasaurus@gmail.com> wrote in message 
>>> news:gej5nr$13jd$1@digitalmars.com...
>>>> Tony wrote:
>>>>> Someone has to ask the obvious question! (The question is in the 
>>>>> subject of this post).
>>>>>
>>>>> Tony
>>>>
>>>> Technically, I'd consider C++ to be undead. Old, ugly, its zombie 
>>>> rotting flesh never seems to die. It lives by eating the brains of C 
>>>> programmers.
>>>>
>>>> ~ Clay
>>>
>>> Funny you mention that, the analogies I normally think of for C++ are 
>>> either a 120+ year-old on life support or, as you said, the living dead. 
>>> It's long past it's time, but people just won't let it finally rest 
>>> (probably because, aside from D, there's no modern language that's a 
>>> suitable replacement for C++ in *all* of C++'s use-cases. C# and Java, 
>>> for instance, are only partial replacements. They can handle many of 
>>> C++'s uses, but not all.)
>>
>> The "in *all* of C++'s use-cases" part is probably the way to create a 
>> dinosaur (call it E, F or G or whatever). The concept of "general purpose 
>> language" is getting a bit long-toothed?
>>
>> Tony
>
> I strongly disagree. The concept of domain-specific languages is 
> ultra-trendy these days (probably promoted by the same knuckleheads that 
> hailed things like pure-OO, pure-functional, and Extreme Programming as 
> silver bullets).

> But I consider domain-specific languages to be purely a symptom of a 
> strong need for a better general purpose language.

Probably. But to further on that, I would say that languages like C++ and D 
ARE the specialized ("domain specific") languages rather then the "general 
purpose" ones. Consider them as "where/when you need high level assembly 
language type of tool". Everyone who invents "the better C++" ends up in the 
same category as that overly complex, for a GP language, language.

>
> Let's face it: programming needs and uses have expanded so much over the 
> last decade or so that C/C++ hasn't really been a "general purpose" 
> language for quite some time.

"General Purpose Language" may indeed be an oxymoron. (All kinds of jokes 
noting 'GPL', omitted).

> These days it's a systems/performance language instead.

And not a very influential one at that, which really bogs down development.

> True, all the attempts at retrofitting it with modern-ish features to try 
> to keep it general-purpose have turned it into a regular frankenstein's 
> monster of a language, but that does nothing to disprove the viability of 
> general purpose languages in general.

If you define "general purpose" like C++ does, then that's exactly what you 
will get: something trying to be all things to all people, which never works 
well.

> It just demonstrates that C++ needs a reboot (hence: D). Heck, D is 
> already far better as a general-purpose language than C/C++ (although it's 
> still not quite there yet).

Note that I put them in the same grouping, so you know where I stand with D. 
I mean, it's fine for those who like cosmic OO hiearchy in the 
implementation and also like GC (one HAS to use GC with D, right?). I have 
my own memory management architecture so I don't want to be forced to use 
something else.

>
> I'd *much* rather use a true general-purpose language (which, again, C++ 
> is no longer an example of) than muck around with 500 different languages 
> for every stupid little thing.

Now you're being typically extremist. There is continuum from 1 to 500. 
Obviously then the task becomes deciding where to draw the lines.

>
> For example, have you ever tried doing web development? You can't 
> realistically do anything nontrivial without tripping over at least 
> handful of different, essentially domain-specific, languages: ECMAScript, 
> (T)SQL, (X)HTML, XML, CSS, and either PHP, ASP/VBScript, ASP.NET/C#, 
> Python or Ruby.

I wouldn't do it that way. A lot of the difficulty is trying to get content 
specification and delivery technologies to work like a real program. You 
have specified a bunch of high level tools (not all nor most are languages 
in the sense of C, D etc BTW) and therefore made the development complex 
just by the sheer number of tools and therefore knowledge needed. If you 
think you need all that just because your website hosting provider supports 
those, maybe it's time to self-host and code up what you want with a small 
subset of tools: whatever you want to create the content, an embedded 
database, maybe ISAPI on Windows. Depending on how dynamic (read "program 
like") the website needs to be may cause some headaches because there is no 
good solution for that because the web was not designed to do that.

> And that's just the bare minimum for any non-trivial web site.

Not necessary at all.

> For one thing, most of those are great examples of the fact that 
> domain-specific languages do nothing to prevent piss-poor language design.

I too don't want to use more languages than necessary (read: one). I want 
good libraries with a good "GPL" to handle most things. If you relegate the 
"domain specific" moniker to only such high level and disparate technologies 
that you mentioned, well, those are the things I avoid or want to avoid.

> But besides that: Conceptually, web development is one of the most trivial 
> forms of programming out there. But the domain-specific language-soup 
> realities of it have turned what should have been trivial into one of the 
> programming world's biggest pains-in-the-ass. It's an absolute mess.

It's not that bad unless you are forced to program to your host's interfaces 
that they must maintain to control what one can do on a machine from a 
security point of view. If you are self-hosting, there are no such limits: 
you write the code and trust it to do what you want it to.

> I'm currently writing my first compiler, and I have in the past written 
> homebrew for the Atari VCS, and an Asm sound driver for a multiprocessing 
> microcontroller/embedded-device that has no sound hardware other than a 
> generic DAC capability. All of those have proven to be far less 
> pains-in-the-ass than any of my web development work. Considering the 
> conceptual simplicity of the web, that's just absolutely pathetic.

Trying to make an elephant jump through a hoop is difficult, yes.

Tony
November 03, 2008
Re: C++, D: Dinosaurs?
Nick Sabalausky wrote:
> [...]The concept of domain-specific languages is 
> ultra-trendy these days (probably promoted by the same knuckleheads that 
> hailed things like pure-OO, pure-functional, and Extreme Programming as 
> silver bullets). But I consider domain-specific languages to be purely a 
> symptom of a strong need for a better general purpose language.
> 

Totally agree. At my point of view it looks excacly the same. I started 
with pascal then moved to c/c++ at university but I abandoned it because 
of its ugliness and non intuitive application development. Then I found 
working with PHP/JAVA much easier but I was disappointed by its 
fundamentals (please let me forget about PHP as a programming language). 
And when I was left without any hope I saw a Bright light. :D

For me D takes the best of everything I have seen. Of course it isn't 
perfect but takes the right course and I want to be aboard.

> Let's face it: programming needs and uses have expanded so much over the 
> last decade or so that C/C++ hasn't really been a "general purpose" language 
> for quite some time. These days it's a systems/performance language instead. 
> True, all the attempts at retrofitting it with modern-ish features to try to 
> keep it general-purpose have turned it into a regular frankenstein's monster 
> of a language, but that does nothing to disprove the viability of general 
> purpose languages in general. It just demonstrates that C++ needs a reboot 
> (hence: D). Heck, D is already far better as a general-purpose language than 
> C/C++ (although it's still not quite there yet).

Those words are mine (I wish) ;)

> I'd *much* rather use a true general-purpose language (which, again, C++ is 
> no longer an example of) than muck around with 500 different languages for 
> every stupid little thing.
> 
> For example, have you ever tried doing web development? You can't 
> realistically do anything nontrivial without tripping over at least handful 
> of different, essentially domain-specific, languages: ECMAScript, (T)SQL, 
> (X)HTML, XML, CSS, and either PHP, ASP/VBScript, ASP.NET/C#, Python or Ruby. 
> And that's just the bare minimum for any non-trivial web site. For one 
> thing, most of those are great examples of the fact that domain-specific 
> languages do nothing to prevent piss-poor language design. But besides that: 
> Conceptually, web development is one of the most trivial forms of 
> programming out there. But the domain-specific language-soup realities of it 
> have turned what should have been trivial into one of the programming 
> world's biggest pains-in-the-ass. It's an absolute mess. 

That's why I'm planing to use D + Tango + Mango and blow up everything 
else including existing http servers. (I had also questions in my mind 
why the hell databases relies on SQL so much).

Cheers
November 03, 2008
Re: C++, D: Dinosaurs?
Tony wrote:

> [...] I would say that languages like C++ and D 
> ARE the specialized ("domain specific") languages rather then the "general 
> purpose" ones. Consider them as "where/when you need high level assembly 
> language type of tool". Everyone who invents "the better C++" ends up in the 
> same category as that overly complex, for a GP language, language.

I also see a GP language strictly connected with processors way of 
"thinking" and operating  with memory but with ability of switching to 
higher level (on demand) to ovoid using tons of primitives. If well 
deigned it can utilize computer to *everything* you need - without 
pain-in-ass.

Or one may say:

> "General Purpose Language" may indeed be an oxymoron. (All kinds of jokes 
> noting 'GPL', omitted).

IMHO D is a better stage of what we can call: general propose language.

>> (C++) These days it's a systems/performance language instead.
> 
> And not a very influential one at that, which really bogs down development.
> 

Until D. Give me example of a language where you can develop 
faster/esier (besides IDE infrastructure).

Cheers
November 04, 2008
Re: C++, D: Dinosaurs?
Tony wrote:
> (one HAS to use GC with D, right?)

No. Well, the compiler generates calls to allocate & free memory, but 
you can replace those calls with whatever you want. See Tango's 
(druntime's) "stub" GC, which just reroutes compiler-generated calls to 
GC methods to malloc() and free(). You can implement your own "GC" or 
whatever management scheme you want (in fact, if you're writing, say, a 
device driver in D, you would want to use a custom allocator like this 
and not the built-in GC).
November 04, 2008
Re: C++, D: Dinosaurs?
Nick Sabalausky wrote:
> For example, have you ever tried doing web development? You can't 
> realistically do anything nontrivial without tripping over at least handful 
> of different, essentially domain-specific, languages: ECMAScript, (T)SQL, 
> (X)HTML, XML, CSS, and either PHP, ASP/VBScript, ASP.NET/C#, Python or Ruby. 
> And that's just the bare minimum for any non-trivial web site. For one 
> thing, most of those are great examples of the fact that domain-specific 
> languages do nothing to prevent piss-poor language design. But besides that: 
> Conceptually, web development is one of the most trivial forms of 
> programming out there. But the domain-specific language-soup realities of it 
> have turned what should have been trivial into one of the programming 
> world's biggest pains-in-the-ass. It's an absolute mess. I'm currently 
> writing my first compiler, and I have in the past written homebrew for the 
> Atari VCS, and an Asm sound driver for a multiprocessing 
> microcontroller/embedded-device that has no sound hardware other than a 
> generic DAC capability. All of those have proven to be far less 
> pains-in-the-ass than any of my web development work. Considering the 
> conceptual simplicity of the web, that's just absolutely pathetic. 

Microsoft agrees.

http://www.informationweek.com/news/internet/webdev/showArticle.jhtml?articleID=204701262

Write your web frontend & backend in .NET. Throw in a little LINQ-to-SQL 
 and you don't even need SQL. (The official website ihas been down 
since September... I assume they're productizing it).
November 04, 2008
Re: C++, D: Dinosaurs?
Robert Fraser:
> Write your web frontend & backend in .NET. Throw in a little LINQ-to-SQL 
>   and you don't even need SQL. (The official website ihas been down 
> since September... I assume they're productizing it).

Is this relevant?
http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx

Bye,
bearophile
November 04, 2008
Re: C++, D: Dinosaurs?
"Robert Fraser" <fraserofthenight@gmail.com> wrote in message 
news:geo5p6$12gk$1@digitalmars.com...
> Tony wrote:
>> (one HAS to use GC with D, right?)
>
> No. Well, the compiler generates calls to allocate & free memory, but you 
> can replace those calls with whatever you want. See Tango's (druntime's) 
> "stub" GC, which just reroutes compiler-generated calls to GC methods to 
> malloc() and free(). You can implement your own "GC" or whatever 
> management scheme you want (in fact, if you're writing, say, a device 
> driver in D, you would want to use a custom allocator like this and not 
> the built-in GC).

Plus, D allows classes to have custom allocators and deallocators which can 
help when using either a non-GC approach or mix-and-match.

I would like to see a less hacky way to rip out the GC, but that's a rather 
low priority as current way is still perfectly workable.
November 04, 2008
Re: C++, D: Dinosaurs?
"Piotrek" <starpit@tlen.pl> wrote in message 
news:geo14c$ol9$1@digitalmars.com...
> Nick Sabalausky wrote:
>> [...]The concept of domain-specific languages is ultra-trendy these days 
>> (probably promoted by the same knuckleheads that hailed things like 
>> pure-OO, pure-functional, and Extreme Programming as silver bullets). But 
>> I consider domain-specific languages to be purely a symptom of a strong 
>> need for a better general purpose language.
>>
>
> Totally agree. At my point of view it looks excacly the same. I started 
> with pascal then moved to c/c++ at university but I abandoned it because 
> of its ugliness and non intuitive application development. Then I found 
> working with PHP/JAVA much easier but I was disappointed by its 
> fundamentals (please let me forget about PHP as a programming language). 
> And when I was left without any hope I saw a Bright light. :D
>
> For me D takes the best of everything I have seen. Of course it isn't 
> perfect but takes the right course and I want to be aboard.
>
>> Let's face it: programming needs and uses have expanded so much over the 
>> last decade or so that C/C++ hasn't really been a "general purpose" 
>> language for quite some time. These days it's a systems/performance 
>> language instead. True, all the attempts at retrofitting it with 
>> modern-ish features to try to keep it general-purpose have turned it into 
>> a regular frankenstein's monster of a language, but that does nothing to 
>> disprove the viability of general purpose languages in general. It just 
>> demonstrates that C++ needs a reboot (hence: D). Heck, D is already far 
>> better as a general-purpose language than C/C++ (although it's still not 
>> quite there yet).
>
> Those words are mine (I wish) ;)
>
>> I'd *much* rather use a true general-purpose language (which, again, C++ 
>> is no longer an example of) than muck around with 500 different languages 
>> for every stupid little thing.
>>
>> For example, have you ever tried doing web development? You can't 
>> realistically do anything nontrivial without tripping over at least 
>> handful of different, essentially domain-specific, languages: ECMAScript, 
>> (T)SQL, (X)HTML, XML, CSS, and either PHP, ASP/VBScript, ASP.NET/C#, 
>> Python or Ruby. And that's just the bare minimum for any non-trivial web 
>> site. For one thing, most of those are great examples of the fact that 
>> domain-specific languages do nothing to prevent piss-poor language 
>> design. But besides that: Conceptually, web development is one of the 
>> most trivial forms of programming out there. But the domain-specific 
>> language-soup realities of it have turned what should have been trivial 
>> into one of the programming world's biggest pains-in-the-ass. It's an 
>> absolute mess.
>
> That's why I'm planing to use D + Tango + Mango and blow up everything 
> else including existing http servers.

I've found that, unfortunately, to not be quite enough. Not because of any 
limitations of D/Tango/Mango, but because:

#1: In the commercial world there are a lot of times when you, as the 
programmer, have little to no say on how the server is set up and what 
languages are available (for instance, I've done plenty of PHP and VBScript, 
but never by choice).

#2: You have basically no control over the client-side environment, so for 
that you're still stuck with de-facto standards like ECMAScript, and a lack 
of the upcoming/proposed improvements to (X)HTML (things I've thought should 
have been in HTML all along...*grumble*).

This is why I've recently been getting interested in high-level language 
translation, and have been playing around with writing such a tool. I'd like 
to be able to write code in a sensible language like D and just translate 
that into whatever horrible scripting language the 
sysadmin/netadmin/browser-vendor decided would be suitable.

> (I had also questions in my mind why the hell databases relies on SQL so 
> much).
>

I agree. I'd much rather just use a sensible API (DBMS-agnostic of course). 
Pasting together SQL snippets is just plain ugly, and why dynamically 
generate code just for the DBMS to go and parse it? I mean, geez, just cut 
the middleman and pass the request directly. LINQ is better, but I'm still 
not convinced it's the right approach. TSQL stored procedures are something 
I'd rather, well, just write in a more "normal" language.  And then, of 
course, there's the bizarre "insert" vs. "update" syntax inconsistencies and 
general incompatibilities across vendors (ex: insert a row and retreive the 
auto-gen id <- which is really a rather common thing to need to do, 
particularly if you've got any foreign keys in the DB design, which again is 
rather common).

To be fair though, I have to say that without some of the advanced features 
we've been starting to see in languages like D, C#, Python and Ruby, using 
an API for any non-trivial queries could potentially get ugly.
1 2 3 4 5 6
Top | Discussion index | About this forum | D home