November 22, 2013 Re: D vs Go in real life | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ary Borenszweig | Ary Borenszweig:
> I would have expected a lot more speedup than just 2x, D being a compiled language.
I have seen many cases where Python is faster than D: reading files by line, some cases of associative array creation, and more. Python contains many very efficient routines written in C.
Bye,
bearophile
|
November 22, 2013 Re: D vs Go in real life | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | On Friday, 22 November 2013 at 14:11:50 UTC, bearophile wrote:
> Chris wrote:
>
>> E.g. one day D might implement features that have to do with what Facebook needs more than features that programmers need in general. So a module std.webshite.upload.latest.picture gets all the attention while std.reallyhandy is being neglected.
>
> Do you know one or two cases where this phenomenon has happened to a language?
>
> Bye,
> bearophile
Good question! To be honest I cannot put my finger on any module of any language in particular. Maybe Objective-C would be an example where sometimes things would advance at breakneck pace in Cocoa, while some handy features in the standard Objective-C library (e.g. in NSString) would still be missing (but that's years ago now, I haven't used it for a while, so I dunno how it has developed).
Java is a good example of how (corporate) ideology (and management) ruins things. Everything is a class, if you don't want this, you create a class and declare static functions to turn off OOP. Well, ... You can see that people are trying to redefine Java, to come up with a better Java. Why is that? Because there is a committee that decides and won't have any criticism. So people say "Hold on, this is not really practicable, let's try something else!", and D already is the something else. What attracts me to D (among other things) is its practical approach.
Go is web-oriented, so it seems, and I'm sure it will be marketed as the "one size fits all" solution for web development, multi-core and whatnot. But D goes deeper. D raises fundamental questions about how a good program should look like, what is good / practicable. I know that this approach doesn't sell, but it's the best I've ever come across. D makes you think and re-assess your own code time and again.
|
November 22, 2013 Re: D vs Go in real life | ||||
---|---|---|---|---|
| ||||
Posted in reply to Chris | On Friday, 22 November 2013 at 14:43:11 UTC, Chris wrote: > On Friday, 22 November 2013 at 14:11:50 UTC, bearophile wrote: >> Chris wrote: >> >>> E.g. one day D might implement features that have to do with what Facebook needs more than features that programmers need in general. So a module std.webshite.upload.latest.picture gets all the attention while std.reallyhandy is being neglected. >> >> Do you know one or two cases where this phenomenon has happened to a language? >> >> Bye, >> bearophile > > Good question! To be honest I cannot put my finger on any module of any language in particular. Maybe Objective-C would be an example where sometimes things would advance at breakneck pace in Cocoa, while some handy features in the standard Objective-C library (e.g. in NSString) would still be missing (but that's years ago now, I haven't used it for a while, so I dunno how it has developed). > > Java is a good example of how (corporate) ideology (and management) ruins things. Everything is a class, if you don't want this, you create a class and declare static functions to turn off OOP. Well, ... You can see that people are trying to redefine Java, to come up with a better Java. Why is that? Because there is a committee that decides and won't have any criticism. So people say "Hold on, this is not really practicable, let's try something else!", and D already is the something else. What attracts me to D (among other things) is its practical approach. > > Go is web-oriented, so it seems, and I'm sure it will be marketed as the "one size fits all" solution for web development, multi-core and whatnot. But D goes deeper. D raises fundamental questions about how a good program should look like, what is good / practicable. I know that this approach doesn't sell, but it's the best I've ever come across. D makes you think and re-assess your own code time and again. What I'm saying is basically: "D is what happens when you take language design away from the realms of the committee." (http://www.gamedev.net/page/resources/_/technical/general-programming/what-language-do-i-use-r3318) Later it says: "That is to say that D would be the best of all worlds if it gained more support. It simply doesn't yet have the huge libraries of code, wealth of tools, and base of user support of the other languages. Hopefully its support will grow and it will receive the attention it deserves, but that will take some time." The problem is that people flock to languages like Python and Java etc. because of all the tools and libraries. You can easily send an email in Python, download extensions blah blah. But people often confuse "usability" as in libraries & tools with "usability" as in program design (options), robustness and performance. |
November 22, 2013 Re: D vs Go in real life | ||||
---|---|---|---|---|
| ||||
Posted in reply to Chris | On Friday, 22 November 2013 at 14:43:11 UTC, Chris wrote:
> On Friday, 22 November 2013 at 14:11:50 UTC, bearophile wrote:
>> Chris wrote:
>>
>>> E.g. one day D might implement features that have to do with what Facebook needs more than features that programmers need in general. So a module std.webshite.upload.latest.picture gets all the attention while std.reallyhandy is being neglected.
>>
>> Do you know one or two cases where this phenomenon has happened to a language?
>>
>> Bye,
>> bearophile
>
> Good question! To be honest I cannot put my finger on any module of any language in particular. Maybe Objective-C would be an example where sometimes things would advance at breakneck pace in Cocoa, while some handy features in the standard Objective-C library (e.g. in NSString) would still be missing (but that's years ago now, I haven't used it for a while, so I dunno how it has developed).
>
> Java is a good example of how (corporate) ideology (and management) ruins things. Everything is a class, if you don't want this, you create a class and declare static functions to turn off OOP.
You know that this comes from the original concept of what OOP is all about and Smalltalk, right?
There are no free functions in pure OO languages, like there are no objects in pure FP languages.
Of course, meanwhile we have learned there are other ways to do OO, but don't blame Java for Smalltalk concepts.
--
Paulo
|
November 22, 2013 Re: D vs Go in real life | ||||
---|---|---|---|---|
| ||||
Posted in reply to Chris | On Friday, 22 November 2013 at 14:43:11 UTC, Chris wrote:
> Java is a good example of how (corporate) ideology (and management) ruins things.
I think you are attributing results to the wrong thing. Go isn't simplistic because of Google corporate management, it is because the creators decided that was what it would be. Java isn't ruined because of the corporation behind it is because of the vision and goals of its creator, which happens to be a corporation. D hasn't become what it is because of a lack of corporate backing, but because its creator decided being influenced by the community would be beneficial.
|
November 22, 2013 Re: D vs Go in real life | ||||
---|---|---|---|---|
| ||||
Posted in reply to Paulo Pinto | On Friday, 22 November 2013 at 15:31:18 UTC, Paulo Pinto wrote:
> On Friday, 22 November 2013 at 14:43:11 UTC, Chris wrote:
>> On Friday, 22 November 2013 at 14:11:50 UTC, bearophile wrote:
>>> Chris wrote:
>>>
>>>> E.g. one day D might implement features that have to do with what Facebook needs more than features that programmers need in general. So a module std.webshite.upload.latest.picture gets all the attention while std.reallyhandy is being neglected.
>>>
>>> Do you know one or two cases where this phenomenon has happened to a language?
>>>
>>> Bye,
>>> bearophile
>>
>> Good question! To be honest I cannot put my finger on any module of any language in particular. Maybe Objective-C would be an example where sometimes things would advance at breakneck pace in Cocoa, while some handy features in the standard Objective-C library (e.g. in NSString) would still be missing (but that's years ago now, I haven't used it for a while, so I dunno how it has developed).
>>
>> Java is a good example of how (corporate) ideology (and management) ruins things. Everything is a class, if you don't want this, you create a class and declare static functions to turn off OOP.
>
> You know that this comes from the original concept of what OOP is all about and Smalltalk, right?
>
> There are no free functions in pure OO languages, like there are no objects in pure FP languages.
>
> Of course, meanwhile we have learned there are other ways to do OO, but don't blame Java for Smalltalk concepts.
>
> --
> Paulo
I don't blame Java for Smalltalk. I just don't like ideological constraints. As you said, we've learned that there are other ways of doing OO, but how can people cling to things when they know they are not good. I can't get my head around it. Same goes for JVM. If you have JIT, why not go all the way and have the _option_ to compile it to machine code?
|
November 22, 2013 Re: D vs Go in real life | ||||
---|---|---|---|---|
| ||||
Posted in reply to Chris | On Friday, 22 November 2013 at 15:36:43 UTC, Chris wrote:
> On Friday, 22 November 2013 at 15:31:18 UTC, Paulo Pinto wrote:
>> On Friday, 22 November 2013 at 14:43:11 UTC, Chris wrote:
>>> On Friday, 22 November 2013 at 14:11:50 UTC, bearophile wrote:
>>>> Chris wrote:
>>>>
>>>>> E.g. one day D might implement features that have to do with what Facebook needs more than features that programmers need in general. So a module std.webshite.upload.latest.picture gets all the attention while std.reallyhandy is being neglected.
>>>>
>>>> Do you know one or two cases where this phenomenon has happened to a language?
>>>>
>>>> Bye,
>>>> bearophile
>>>
>>> Good question! To be honest I cannot put my finger on any module of any language in particular. Maybe Objective-C would be an example where sometimes things would advance at breakneck pace in Cocoa, while some handy features in the standard Objective-C library (e.g. in NSString) would still be missing (but that's years ago now, I haven't used it for a while, so I dunno how it has developed).
>>>
>>> Java is a good example of how (corporate) ideology (and management) ruins things. Everything is a class, if you don't want this, you create a class and declare static functions to turn off OOP.
>>
>> You know that this comes from the original concept of what OOP is all about and Smalltalk, right?
>>
>> There are no free functions in pure OO languages, like there are no objects in pure FP languages.
>>
>> Of course, meanwhile we have learned there are other ways to do OO, but don't blame Java for Smalltalk concepts.
>>
>> --
>> Paulo
>
> I don't blame Java for Smalltalk. I just don't like ideological constraints. As you said, we've learned that there are other ways of doing OO, but how can people cling to things when they know they are not good. I can't get my head around it. Same goes for JVM. If you have JIT, why not go all the way and have the _option_ to compile it to machine code?
Just get Aonix, J9, RoboVM, JET, Jasmine, JikesRVM, just to cite a few examples.
There are plenty AOT compilers to chose from for Java.
Oracle JVM is not the only JDK around, although people tend to think so.
--
Paulo
|
November 22, 2013 Re: D vs Go in real life | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ary Borenszweig | Ary Borenszweig <ary@esperanto.org.ar> wrote:
> On 11/21/13 6:36 PM, Andrei Alexandrescu wrote:
>> On 11/21/13 1:16 PM, Gary Willoughby wrote:
>>> On Thursday, 21 November 2013 at 16:23:07 UTC, Andrei Alexandrescu wrote:
>>>> Fortunately a lot has changed since :o).
>>>
>>> Please, do tell. ;)
>>
>> Not much that people don't know already. We have one solid D project installed and a couple of heavy-hitting engineers have started using D for scripts and tools (e.g. replacing Python for a 2x speedup for the same source code size/complexity).
>
> I would have expected a lot more speedup than just 2x, D being a compiled language.
Amdahl's law.
Andrei
|
November 22, 2013 Re: D vs Go in real life | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jesse Phillips | On Friday, 22 November 2013 at 15:36:08 UTC, Jesse Phillips wrote:
> On Friday, 22 November 2013 at 14:43:11 UTC, Chris wrote:
>> Java is a good example of how (corporate) ideology (and management) ruins things.
>
> I think you are attributing results to the wrong thing. Go isn't simplistic because of Google corporate management, it is because the creators decided that was what it would be. Java isn't ruined because of the corporation behind it is because of the vision and goals of its creator, which happens to be a corporation. D hasn't become what it is because of a lack of corporate backing, but because its creator decided being influenced by the community would be beneficial.
Go simplicity is easy to understand once you know the background of language designers.
It has Oberon-2 method syntax and the simplicity design advocated by Niklaus Wirth, starting with the Oberon project. Robert Griesemer did part of his studies at ETHZ.
Go also has many similarities to Alef (Plan9) and Limbo(Inferno). Projects where Rob Pike and Ken Thompson were part of.
--
Paulo
|
November 22, 2013 Re: D vs Go in real life | ||||
---|---|---|---|---|
| ||||
Posted in reply to Paulo Pinto | On Friday, 22 November 2013 at 15:40:07 UTC, Paulo Pinto wrote:
> On Friday, 22 November 2013 at 15:36:43 UTC, Chris wrote:
>> On Friday, 22 November 2013 at 15:31:18 UTC, Paulo Pinto wrote:
>>> On Friday, 22 November 2013 at 14:43:11 UTC, Chris wrote:
>>>> On Friday, 22 November 2013 at 14:11:50 UTC, bearophile wrote:
>>>>> Chris wrote:
>>>>>
>>>>>> E.g. one day D might implement features that have to do with what Facebook needs more than features that programmers need in general. So a module std.webshite.upload.latest.picture gets all the attention while std.reallyhandy is being neglected.
>>>>>
>>>>> Do you know one or two cases where this phenomenon has happened to a language?
>>>>>
>>>>> Bye,
>>>>> bearophile
>>>>
>>>> Good question! To be honest I cannot put my finger on any module of any language in particular. Maybe Objective-C would be an example where sometimes things would advance at breakneck pace in Cocoa, while some handy features in the standard Objective-C library (e.g. in NSString) would still be missing (but that's years ago now, I haven't used it for a while, so I dunno how it has developed).
>>>>
>>>> Java is a good example of how (corporate) ideology (and management) ruins things. Everything is a class, if you don't want this, you create a class and declare static functions to turn off OOP.
>>>
>>> You know that this comes from the original concept of what OOP is all about and Smalltalk, right?
>>>
>>> There are no free functions in pure OO languages, like there are no objects in pure FP languages.
>>>
>>> Of course, meanwhile we have learned there are other ways to do OO, but don't blame Java for Smalltalk concepts.
>>>
>>> --
>>> Paulo
>>
>> I don't blame Java for Smalltalk. I just don't like ideological constraints. As you said, we've learned that there are other ways of doing OO, but how can people cling to things when they know they are not good. I can't get my head around it. Same goes for JVM. If you have JIT, why not go all the way and have the _option_ to compile it to machine code?
>
> Just get Aonix, J9, RoboVM, JET, Jasmine, JikesRVM, just to cite a few examples.
>
> There are plenty AOT compilers to chose from for Java.
>
> Oracle JVM is not the only JDK around, although people tend to think so.
>
> --
> Paulo
Which kind of proves my point. There is demand for it. Why not ship Java with a machine code compiler? javac -native MyClass.java
|
Copyright © 1999-2021 by the D Language Foundation