www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - import from Internet

reply "Katayama Hirofumi MZ" <katayama.hirofumi.mz gmail.com> writes:
Could you support "importing from Internet" feature? I think 
that'll be very convenient.

import "http://example.com/MyLibrary.d";
Jul 12 2014
parent reply "Dicebot" <public dicebot.lv> writes:
On Saturday, 12 July 2014 at 12:24:19 UTC, Katayama Hirofumi MZ 
wrote:
 Could you support "importing from Internet" feature? I think 
 that'll be very convenient.

 import "http://example.com/MyLibrary.d";
dub : code.dlang.org
Jul 12 2014
parent reply "Katayama Hirofumi MZ" <katayama.hirofumi.mz gmail.com> writes:
 dub : code.dlang.org
OK, I'll move to there.
Jul 12 2014
parent reply "Katayama Hirofumi MZ" <katayama.hirofumi.mz gmail.com> writes:
https://github.com/D-Programming-Language/dub/issues/373
Jul 12 2014
parent reply "Dicebot" <public dicebot.lv> writes:
On Saturday, 12 July 2014 at 13:10:09 UTC, Katayama Hirofumi MZ 
wrote:
 https://github.com/D-Programming-Language/dub/issues/373
What I have meant is that "importing from internet" functionality is currently provided by dub packages and does not belong to compiler. URL imports in your proposed form are absolutely horrible.
Jul 12 2014
parent reply Russel Winder via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Sat, 2014-07-12 at 13:13 +0000, Dicebot via Digitalmars-d wrote:
 On Saturday, 12 July 2014 at 13:10:09 UTC, Katayama Hirofumi MZ=20
 wrote:
 https://github.com/D-Programming-Language/dub/issues/373
=20 What I have meant is that "importing from internet" functionality=20 is currently provided by dub packages and does not belong to=20 compiler. URL imports in your proposed form are absolutely=20 horrible.
It's an idea Go has picked up. The URL must refer to a Git, Bazaar, Mercurial repository. The repository is clone locally so that the actual build is local. To be honest it works quite well. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Jul 12 2014
next sibling parent reply Paulo Pinto <pjmlp progtools.org> writes:
Am 12.07.2014 15:47, schrieb Russel Winder via Digitalmars-d:
 On Sat, 2014-07-12 at 13:13 +0000, Dicebot via Digitalmars-d wrote:
 On Saturday, 12 July 2014 at 13:10:09 UTC, Katayama Hirofumi MZ
 wrote:
 https://github.com/D-Programming-Language/dub/issues/373
What I have meant is that "importing from internet" functionality is currently provided by dub packages and does not belong to compiler. URL imports in your proposed form are absolutely horrible.
It's an idea Go has picked up. The URL must refer to a Git, Bazaar, Mercurial repository. The repository is clone locally so that the actual build is local. To be honest it works quite well.
Except when: - one needs proper versions - binary only dependencies. - not everyone uses git, mercurial I still don't see Go moving into the enterprise until these issues are sorted out. The approach taken by Dub is much better. -- Paulo
Jul 12 2014
next sibling parent reply "Dicebot" <public dicebot.lv> writes:
I agree. Go approach my seem tempting in its simplicity but it 
scales terribly. It is one of less wise decisions made by Go 
authors.
Jul 12 2014
parent reply Russel Winder via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Sat, 2014-07-12 at 14:07 +0000, Dicebot via Digitalmars-d wrote:
 I agree. Go approach my seem tempting in its simplicity but it=20
 scales terribly. It is one of less wise decisions made by Go=20
 authors.
The decision wasn't made by the Go authors, it was proposed and initially implemented by users, then incorporated into Go by the official high priests. As to whether it is wise, that is must be left to opinion and history. Personally I like it. Good use of DVCS. It only works though because they gave up using Make for using the go command as a build manager associated with having a very strong source code filestore hierarchy requirement. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Jul 12 2014
parent reply "Dicebot" <public dicebot.lv> writes:
On Saturday, 12 July 2014 at 14:43:13 UTC, Russel Winder via 
Digitalmars-d wrote:
 The decision wasn't made by the Go authors, it was proposed and
 initially implemented by users, then incorporated into Go by the
 official high priests.

 As to whether it is wise, that is must be left to opinion and 
 history.
 Personally I like it. Good use of DVCS. It only works though 
 because
 they gave up using Make for using the go command as a build 
 manager
 associated with having a very strong source code filestore 
 hierarchy
 requirement.
Sorry but I am tired of endless appeal to history / usage - by this logic Java and PHP are very good languages full of wisdom. And if someone thinks so we will have a hard time agreeing about anything. Inertia will keep everyone using this feature with no complaints but problems remain : coupling compiler with rather complicated fetching/caching infrastructure, lack of centralized registry to verify contributions, version control. Regarding latter I find it quite telling that dub has recently banned usage of ~master as dependency version and only allows explicit tags/releases - good hygienic decision for growing ecosystem.
Jul 12 2014
next sibling parent reply Russel Winder via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Sat, 2014-07-12 at 15:41 +0000, Dicebot via Digitalmars-d wrote:
[=E2=80=A6]
 verify contributions, version control. Regarding latter I find it=20
 quite telling that dub has recently banned usage of ~master as=20
 dependency version and only allows explicit tags/releases - good=20
 hygienic decision for growing ecosystem.
Sad if true, I want the capability to be on the bleeding edge. If the possibility of specifying version exists then people who want hygiene are covered. Removing the facility of ~master stops those of use who like things to break using Dub at all. Oh well back to SCons and manual working.=20 --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Jul 12 2014
next sibling parent =?UTF-8?B?U8O2bmtlIEx1ZHdpZw==?= <sludwig rejectedsoftware.com> writes:
Am 12.07.2014 18:20, schrieb Russel Winder via Digitalmars-d:
 On Sat, 2014-07-12 at 15:41 +0000, Dicebot via Digitalmars-d wrote:
 […]
 verify contributions, version control. Regarding latter I find it
 quite telling that dub has recently banned usage of ~master as
 dependency version and only allows explicit tags/releases - good
 hygienic decision for growing ecosystem.
Sad if true, I want the capability to be on the bleeding edge. If the possibility of specifying version exists then people who want hygiene are covered. Removing the facility of ~master stops those of use who like things to break using Dub at all. Oh well back to SCons and manual working.
There are still a number of ways to stay on the bleeding edge, just direct ~master/branch dependencies in dub.json are discouraged/deprecated, because they have a destructive effect on the package ecosystem. I'll write up a detailed rationale before the next release, including suggestions how to handle situations where you want to stay on a branch. Related thread: http://forum.rejectedsoftware.com/groups/rejectedsoftware.dub/thread/1020/
Jul 12 2014
prev sibling parent "ponce" <contact gam3sfrommars.fr> writes:
On Saturday, 12 July 2014 at 16:20:16 UTC, Russel Winder via 
Digitalmars-d wrote:
 Sad if true, I want the capability to be on the bleeding edge. 
 If the
 possibility of specifying version exists then people who want 
 hygiene
 are covered. Removing the facility of ~master stops those of 
 use who
 like things to break using Dub at all.

 Oh well back to SCons and manual working.
I was "forced" into such a transition (from ~master to tags) and it turns out it allows to make more breaking changes, library users can choose between stable and bleeding edge with version selectors.
Jul 14 2014
prev sibling parent reply Russel Winder via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Sat, 2014-07-12 at 15:41 +0000, Dicebot via Digitalmars-d wrote:
[=E2=80=A6]
 Sorry but I am tired of endless appeal to history / usage - by=20
 this logic Java and PHP are very good languages full of wisdom.=20
 And if someone thinks so we will have a hard time agreeing about=20
 anything.
Why are you tired of this? History is extremely useful for learning and moving forward. Maybe PHP is an aberration designed to allow broken websites, but many still like it and use it successfully. That PHP and all sites using it should be replaced is seemingly agreed, but conservative management and some developers are unprepared to take risks by replacing that which works. Java may have its faults and it may have gained traction due to massive over-hyping (*), but it does have good stuff in it (**). Java evolves and improves in order to stay relevant. Of course conservative management and a lot of developers refuse to consider a move away from Java as they have systems that work and are unprepared to consider reimplementation. Backward compatibility then becomes an obsession to the detriment of programming language evolution at the bleeding edge. Java suffers this very badly. Kotlin, Ceylon and Scala are trying to achieve forward movement but are not getting the mindshare they deserve. Groovy can be seen as a set of hacks to make creating systems which are Java based nice to write and maintain.
 Inertia will keep everyone using this feature with no complaints=20
 but problems remain : coupling compiler with rather complicated=20
 fetching/caching infrastructure, lack of centralized registry to=20
 verify contributions, version control. Regarding latter I find it=20
 quite telling that dub has recently banned usage of ~master as=20
 dependency version and only allows explicit tags/releases - good=20
 hygienic decision for growing ecosystem.
I suggest that finding ways of dealing with the issues rather than running away from them is what should happen. As an emergent property Maven Central has become the central repository for all JVM artefacts. Maven though failed to really do the job of being a project build and management system. Gradle is doing a lot better job. Similarly JUnit3 =E2= =86=92 TestNG =E2=86=92 Spock also ScalaTest, Cucumber, etc. has shown that inerti= a can be overcome by providing something that is compatible and yet provably better.=20 So what is the inertia breaker to get Fortran, C and C++ folk to use D? I have no idea, but unless there are active user local groups evangelizing D nothing will change. This email list is important as a central exchange mechanism, but it is useless for marketing and evangelizing.=20 (*) Trust me on this there was massive over-hyping of Java in the 1994 to 2001 period, I was an indirect part of it. (**) Though there is a lot of crap, such as claiming to be object-oriented when clearly it isn't; object-based maybe, but definitely no object-oriented.=20 --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Jul 12 2014
next sibling parent reply "Dicebot" <public dicebot.lv> writes:
On Saturday, 12 July 2014 at 16:38:35 UTC, Russel Winder via 
Digitalmars-d wrote:
 On Sat, 2014-07-12 at 15:41 +0000, Dicebot via Digitalmars-d 
 wrote:
 […]
 Sorry but I am tired of endless appeal to history / usage - by 
 this logic Java and PHP are very good languages full of 
 wisdom. And if someone thinks so we will have a hard time 
 agreeing about anything.
Why are you tired of this? History is extremely useful for learning and moving forward.
Because history is never as simple as those referring to it want it to be. Connecting some facts and assuming tight relation between those is annoyingly common fallacy.
 Maybe PHP is an aberration designed to allow broken
 websites, but many still like it and use it successfully.
This is exactly what I have meant - there is no point to refer to historical language success when discussing technological issues. Saying that some feature is fine simply because language that has it is widely used is an approach that does not cope well with the existence of PHP. Everyone will be happy with this decision until it becomes a real pain but it doesn't make it any better. Don't mix marketing and language design.
 So what is the inertia breaker to get Fortran, C and C++ folk 
 to use D?
 I have no idea, but unless there are active user local groups
 evangelizing D nothing will change. This email list is 
 important as a
 central exchange mechanism, but it is useless for marketing and
 evangelizing.
Evangelizing is a playing an alien game with starting disadvantage. No way you can over-hype Google. I believe D should stick to its strengths - being versatile, pragmatical and not opinionated. Targeting not "folks" but senior developers who chose languages for next big application and have already learned their hard lessons of trusting the hype. Whatever marketing strategy is considered, though, does not really matter here. What I am asking here is to stop attacking technological decisions from marketing standpoint. I hate it.
Jul 12 2014
parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 7/12/14, 12:54 PM, Dicebot wrote:
 On Saturday, 12 July 2014 at 16:38:35 UTC, Russel Winder via
 Digitalmars-d wrote:
 On Sat, 2014-07-12 at 15:41 +0000, Dicebot via Digitalmars-d wrote:
 […]
 Sorry but I am tired of endless appeal to history / usage - by this
 logic Java and PHP are very good languages full of wisdom. And if
 someone thinks so we will have a hard time agreeing about anything.
Why are you tired of this? History is extremely useful for learning and moving forward.
Because history is never as simple as those referring to it want it to be. Connecting some facts and assuming tight relation between those is annoyingly common fallacy.
I agree. Adoption of programming languages is a complex phenomenon and reducing its analysis to "D must do this one thing to be successful" is rather simplistic. Andrei
Jul 12 2014
prev sibling parent "Kagamin" <spam here.lot> writes:
On Saturday, 12 July 2014 at 16:38:35 UTC, Russel Winder via 
Digitalmars-d wrote:
 So what is the inertia breaker to get Fortran, C and C++ folk 
 to use D?
New projects?
Jul 14 2014
prev sibling parent Russel Winder via Digitalmars-d <digitalmars-d puremagic.com> writes:
On Sat, 2014-07-12 at 15:52 +0200, Paulo Pinto via Digitalmars-d wrote:
[=E2=80=A6]
 Except when:
=20
 - one needs proper versions
Clearly just using DVCS repositories is a versioning problem, though the Go system does not automatically update clones so you are in total control of updating. Recognizing the problem of API versions versus repository versions, Gustavo Niemeyer created the repository gopkg.in with a full version naming system allowing people to version by API number. Seems to work very well.
 - binary only dependencies.
Go is a source code oriented culture like Python.
 - not everyone uses git, mercurial
There is always Bazaar or Subversion. I think there might even be a nascent Perforce capability.
 I still don't see Go moving into the enterprise until these issues are=
=20
 sorted out.
That boat has already sailed, Go is firmly established in many major networking and Web organizations even without a formal versioning system. They didn't bother waiting for perfection, they got on, did, and coped. I believe from anecdotal evidence just in and around London, Go is now firmly established, shouldering out C completely, being used in areas where otherwise a combination of C, C++ and Python might have been used. Yet Python use has not really been affected.
 The approach taken by Dub is much better.
I think Dub is very analogous to Gustavo Niemeyer's gopkg.in. I suggest that Dub needs to be able to build Fortran, C and C++ systems (replacing or integrating the wonderful SCons) as well as D, with or without bits of Fortran, C and C++, allowing C and C++ folk to slowly introduce bits of D into their systems. I would use this, especially if it could be used in Emacs, Eclipse and IntelliJ IDEA. But maybe it already has these facilities, I haven't been able to do any C++ or D work for three or four months now. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Jul 12 2014
prev sibling parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 7/12/14, 6:47 AM, Russel Winder via Digitalmars-d wrote:
 On Sat, 2014-07-12 at 13:13 +0000, Dicebot via Digitalmars-d wrote:
 On Saturday, 12 July 2014 at 13:10:09 UTC, Katayama Hirofumi MZ
 wrote:
 https://github.com/D-Programming-Language/dub/issues/373
What I have meant is that "importing from internet" functionality is currently provided by dub packages and does not belong to compiler. URL imports in your proposed form are absolutely horrible.
It's an idea Go has picked up. The URL must refer to a Git, Bazaar, Mercurial repository. The repository is clone locally so that the actual build is local. To be honest it works quite well.
My understanding is there's significant controversy about the feature. -- Andrei
Jul 12 2014
parent "w0rp" <devw0rp gmail.com> writes:
This is a really bad idea. Being able to decide how a dependency 
gets pulled in for a library you depend on is a blessing, 
especially when you have to lock versions down. This only works 
for something like loading JavaScript files, where you can assume 
only roughly 6 concurrent connections per server are allowed, so 
you use CDNs more.
Jul 12 2014