November 04, 2008
"bearophile" <bearophileHUGS@lycos.com> wrote in message news:geo736$15ic$1@digitalmars.com...
> 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

Funny, the people complaining about LINQ being killed sound exactly like me whenever I explain my reluctance to buy a 360 after having MS blatantly abandon my XBox 1 (By constrast, Sony still supports their PS2. But I liked my XBox 1 better.)


November 04, 2008
"Robert Fraser" <fraserofthenight@gmail.com> wrote in message news:geo6oh$14m3$1@digitalmars.com...
> 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).

Microsoft comes up with a lot of great ideas like this, but then they hijack any potential for widespread usage by marrying it to other MS-only products and technologies. I'm not saying its good or bad business sense for them to do this, not saying it's ethical or unethical, but as an outside programmer it just doesn't help me much. Which gets frustrating, because I'll know I'm looking at a good thing, but just can't justify jumping on board until if and when the open-source community builds a compatibility-solution.


November 04, 2008
"Piotrek" <starpit@tlen.pl> wrote in message news:geo2vt$s62$1@digitalmars.com...
> 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.

Maybe. But more probably, "general purpose language" needs to be defined directly because it is so subjective in context. (hehe, isn't that a criticism of C++: non-contenxt free grammar?).

>
>>> (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).

I envision a language existing "in between" the characteristics of C++ and D (kind of). The object models both need work in C++ and D, IMO and if I am forced to use GC in D, then it's a no for me because I have my own memory management architecture. I can "shoe horn" C++ to behave, at least, with the object model and the memory is unconstrained, and I do consider the latter a main important feature.

Tony


November 04, 2008
"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).

Please clarify for me the mem mgmt of D: is the garbage collector optional or not? Just allowing me to replace "getmorecore()" or something like that and then having the collector on top of that is unacceptable to me. I think you may be saying that dynamic memory is in every program, which again is not acceptable to me.

Really, memory control is a key issue when choosing a language for me anyway. I require that level of closeness to the hardware. Anything less is too 4GL-like for me.

Tony


November 04, 2008
Tony wrote:
> "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).
> 
> Please clarify for me the mem mgmt of D: is the garbage collector optional or not? Just allowing me to replace "getmorecore()" or something like that and then having the collector on top of that is unacceptable to me. I think you may be saying that dynamic memory is in every program, which again is not acceptable to me.
> 
> Really, memory control is a key issue when choosing a language for me anyway. I require that level of closeness to the hardware. Anything less is too 4GL-like for me.
> 
> Tony 

Whenever memory is allocated (i.e. "new", AA use, append to a dynamic array), the compiler generates a call to a GC function. You can replace this with your own allocator. In other words, YES -- you can remove the _entire_ GC and replace it with your own allocation scheme, but you must be careful not to use AAs or the ~ (or ~=) operator carelessly, since these depend on the allocator. In D2, you need to worry about closures, too.
November 04, 2008
Nick Sabalausky wrote:
> "bearophile" <bearophileHUGS@lycos.com> wrote in message news:geo736$15ic$1@digitalmars.com...
>> 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
> 
> Funny, the people complaining about LINQ being killed sound exactly like me whenever I explain my reluctance to buy a 360 after having MS blatantly abandon my XBox 1 (By constrast, Sony still supports their PS2. But I liked my XBox 1 better.) 

That's all business concerns. More people still have PS2s than PS3s, so  it's in Sony's best interest to continue to support the PS2. The same is not true of the XBOX.

I didn't know they killed LINQ to SQL, but I guess they didn't kill LINQ in general, so they probably have (or are going to have) a new tech to replace it. I don't know hoe the Entity Data Model interacts with LINQ, but I'd assume that's the "next big thing".
November 04, 2008
"Tony" <tonytech08@gmail.com> wrote in message news:geogvj$1p5r$2@digitalmars.com...
>
> "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).
>
> Please clarify for me the mem mgmt of D: is the garbage collector optional or not?

Yes, it can be ripped out, replaced, whatever. It's slightly hacky, but it's perfectly doable. I did it a few years ago when I was playing around with using GDC with DevKitARM for GBA.

IIRC, you just go into "extern (C) int main(size_t argc, char **argv)" in the internal portion of phobos/tango/druntime or wherever it lives now and comment-out the calls to "gc_init()" and "gc_term()". You might also need to call "gc.disable()" or something (don't really remember). And then if you still want to use "new" and/or "delete" with your own memory manager, you can use D's class allocator and deallocator feature (http://www.digitalmars.com/d/1.0/class.html#allocators). I assume you could probably plug those class allocators/deallocators directly into the internal object class if you wanted.


November 04, 2008
Op Tue, 04 Nov 2008 02:55:41 +0100 schreef Nick Sabalausky <a@a.a>:

> 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.


That sensible language already exists! Be sure to check out: haxe.org
November 04, 2008
Tony wrote:


>[...] But more probably, "general purpose language" needs to be defined 
> directly because it is so subjective in context. (hehe, isn't that a criticism of C++: non-contenxt free grammar?).
> 

Wikipedia says: "Context-sensitive grammars are more general than context-free grammars but still orderly enough to be parsed by a linear bounded automaton.". Whether this sentence is true or not, our way of thinking is context-sensitive which ironically makes things simpler (more info with less steps to carry out).


> I envision a language existing "in between" the characteristics of C++ and D (kind of). The object models both need work in C++ and D, IMO and if I am forced to use GC in D, then it's a no for me because I have my own memory management architecture. I can "shoe horn" C++ to behave, at least, with the object model and the memory is unconstrained, and I do consider the latter a main important feature.

Robert and Nick have explained that. Only I must update my sentence where I was speaking about higher level on demand. Actually it's more likely  that D gives lower level on demand (and it's more natural IMHO).

Cheers
November 04, 2008
Nick Sabalausky wrote:
> "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.

Yeah. Domain-specific languages used to be really popular. I can remember when everyone invented their own language for saving configuration settings, for example <g>. It's symptomatic of an absence of a decent standard.

> 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? 
> Considering the
> conceptual simplicity of the web, that's just absolutely pathetic. 

Amen. IMHO, it's one of the great failures of the software industry.
I find it incredible that we've ended up with a situation which is so dreadful.