Re: Article discussing Go, could well be D

2011-06-20 Thread Jacob Carlborg

On 2011-06-19 21:59, Jose Armando Garcia wrote:

On Sun, Jun 19, 2011 at 4:19 PM, Jacob Carlborgd...@me.com  wrote:

On 2011-06-19 19:02, Johannes Pfau wrote:


I still don't understand that completely. So does it list the files
which will be contained in the package later, or file dependencies
contained in other packages?
(I'm asking because I'm not familiar
with file-dependencies in package management systems. Most package
management systems make a package depend on other packages, but not on
the files in the packages)


Ok, let me explain. When developing a package management system the first
thing one has do decide is if the package should contain pre-built
binaries/libraries, we can call these binary packages, or the necessary
files to build the package when installing, we can call these source package
(not to be confused with the source type you've mentioned below). As a third
option, one could have a mixed package system containing both binary and
source packages. Maybe even mixed packages could be possible.


Why decide on file package? This only works with packages that can
be compiled. Think non-D source code packages and close source
packages. Even one of the most commonly known file package manager
(Gentoo's portage) allows for binary packages.


I guess we could have a mixed system, with both source and binary packages.


Another example is caching. Many software development organization
keep internal library/program repository that have been clear by the
organization for many reasons (e.g. licensing, security, support,
etc). Our packaging solution should work such an environment.

-Jose



--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-20 Thread Johannes Pfau
Jacob Carlborg wrote:
[...]
I hope this explains most of the things and I'm sorry for any
confusion I may have caused.

Thanks for that detailed explanation, I think I understand. This system
also seems more flexible than the traditional 'this directory will be
the root of the package, copy all files to be packaged into this
directory'

Ok, I think I understand so far. I was thinking something similar. But 
is a four digit version really necessary?

I thought of variable length version numbers, this is what most package
management systems use. Whats wrong with variable length versions?
Look at 'compareBaseVer' in the source linked later for an example of
how to compare such versions.

This got quite complex. When I was thinking about SCM integration I
was thinking about you only specify the address to the repository,
which will mean the latest commit on the main branch. Then you could
also specify tags, branches and perhaps specific commits. But you
could never specify, for example, a release (or commit) newer then
another commit. This wouldn't work:

orb dwt, ~ 0.3.4, :git =
git://github.com/jacob-carlborg/libjson.git

I see now that I've specified a version in the git example on the
wiki. This was a mistake, I removed the version now.


I think we look at 2 different approaches here: If I understood
correctly you want to allow the _user_ to grab the lastest git version.
Whenever he wants to update, he has to do that manually. He also always
downloads the source code and compiles it on his machine (no binary git
packages).

My approach let's the _packager_ create git packages. From these source
packages binary packages can be build and distributed to end users like
any other package (release, prerelease). Snapshots are 'first
class packages', which means everything working with releases and other
packages will also work with snapshots.
The downside of this approach is that it complicates things a lot. It
needs a versioning scheme capable of sorting snapshots, releases and
prereleases reliably.

Here's some proof of concept code:
https://gist.github.com/1035294
200 LOC for a versioning scheme seems to be alot though.
-- 
Johannes Pfau



Re: Article discussing Go, could well be D

2011-06-20 Thread Johannes Pfau
Jacob Carlborg wrote:
On 2011-06-19 21:59, Jose Armando Garcia wrote:
 On Sun, Jun 19, 2011 at 4:19 PM, Jacob Carlborgd...@me.com  wrote:
 On 2011-06-19 19:02, Johannes Pfau wrote:

 I still don't understand that completely. So does it list the files
 which will be contained in the package later, or file dependencies
 contained in other packages?
 (I'm asking because I'm not familiar
 with file-dependencies in package management systems. Most package
 management systems make a package depend on other packages, but
 not on the files in the packages)

 Ok, let me explain. When developing a package management system the
 first thing one has do decide is if the package should contain
 pre-built binaries/libraries, we can call these binary packages, or
 the necessary files to build the package when installing, we can
 call these source package (not to be confused with the source type
 you've mentioned below). As a third option, one could have a mixed
 package system containing both binary and source packages. Maybe
 even mixed packages could be possible.

 Why decide on file package? This only works with packages that can
 be compiled. Think non-D source code packages and close source
 packages. Even one of the most commonly known file package manager
 (Gentoo's portage) allows for binary packages.

I guess we could have a mixed system, with both source and binary
packages.

Definitely. Standardised source packages allow automated binary package
building, even for different architectures. Users should also be able
to make small changes to source packages and create their own binary
packages easily. Source packages only wouldn't work either, think of
users on embedded systems. Compiling everything on a machine with 16MB
ram and 200mhz isn't fun. Also binary packages are quite convenient.

-- 
Johannes Pfau



Re: Article discussing Go, could well be D

2011-06-20 Thread Jacob Carlborg

On 2011-06-20 10:46, Johannes Pfau wrote:

Jacob Carlborg wrote:

[...]
I hope this explains most of the things and I'm sorry for any
confusion I may have caused.


Thanks for that detailed explanation, I think I understand. This system
also seems more flexible than the traditional 'this directory will be
the root of the package, copy all files to be packaged into this
directory'


Ok, I think I understand so far. I was thinking something similar. But
is a four digit version really necessary?


I thought of variable length version numbers, this is what most package
management systems use. Whats wrong with variable length versions?
Look at 'compareBaseVer' in the source linked later for an example of
how to compare such versions.


Currently I have the three-part-version as default and then a custom 
version (which basically can contain anything). The reason for the 
three-part-version scheme is explained in the wiki.



This got quite complex. When I was thinking about SCM integration I
was thinking about you only specify the address to the repository,
which will mean the latest commit on the main branch. Then you could
also specify tags, branches and perhaps specific commits. But you
could never specify, for example, a release (or commit) newer then
another commit. This wouldn't work:

orb dwt, ~  0.3.4, :git =
git://github.com/jacob-carlborg/libjson.git

I see now that I've specified a version in the git example on the
wiki. This was a mistake, I removed the version now.



I think we look at 2 different approaches here: If I understood
correctly you want to allow the _user_ to grab the lastest git version.
Whenever he wants to update, he has to do that manually. He also always
downloads the source code and compiles it on his machine (no binary git
packages).


Yes.


My approach let's the _packager_ create git packages. From these source
packages binary packages can be build and distributed to end users like
any other package (release, prerelease). Snapshots are 'first
class packages', which means everything working with releases and other
packages will also work with snapshots.
The downside of this approach is that it complicates things a lot. It
needs a versioning scheme capable of sorting snapshots, releases and
prereleases reliably.

Here's some proof of concept code:
https://gist.github.com/1035294
200 LOC for a versioning scheme seems to be alot though.


I don't think I understand your approach.

--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-20 Thread Daniel Gibson
Am 20.06.2011 10:52, schrieb Johannes Pfau:
 Jacob Carlborg wrote:
 On 2011-06-19 21:59, Jose Armando Garcia wrote:
 On Sun, Jun 19, 2011 at 4:19 PM, Jacob Carlborgd...@me.com  wrote:
 On 2011-06-19 19:02, Johannes Pfau wrote:

 I still don't understand that completely. So does it list the files
 which will be contained in the package later, or file dependencies
 contained in other packages?
 (I'm asking because I'm not familiar
 with file-dependencies in package management systems. Most package
 management systems make a package depend on other packages, but
 not on the files in the packages)

 Ok, let me explain. When developing a package management system the
 first thing one has do decide is if the package should contain
 pre-built binaries/libraries, we can call these binary packages, or
 the necessary files to build the package when installing, we can
 call these source package (not to be confused with the source type
 you've mentioned below). As a third option, one could have a mixed
 package system containing both binary and source packages. Maybe
 even mixed packages could be possible.

 Why decide on file package? This only works with packages that can
 be compiled. Think non-D source code packages and close source
 packages. Even one of the most commonly known file package manager
 (Gentoo's portage) allows for binary packages.

 I guess we could have a mixed system, with both source and binary
 packages.
 
 Definitely. Standardised source packages allow automated binary package
 building, even for different architectures. Users should also be able
 to make small changes to source packages and create their own binary
 packages easily. Source packages only wouldn't work either, think of
 users on embedded systems. Compiling everything on a machine with 16MB
 ram and 200mhz isn't fun. Also binary packages are quite convenient.
 

1. Will you develop or compile your own software (that uses software
from the package manager) on the embedded system? I guess it's more
common to develop the software on a PC or whatever and upload it to the
embedded system.

2. Will an embedded system with such restricted resources have a x86
arch - or will it more likely be ARM or even something completely different?
Should there be binaries available for any architecture (that's hard,
because most developers probably only have x86/amd64)? If not, you'd
have to compile yourself anyway.
(And of course we need a working compiler for that architecture first)

Cheers,
- Daniel


Re: Article discussing Go, could well be D

2011-06-20 Thread Russel Winder
On Sun, 2011-06-19 at 21:19 +0200, Jacob Carlborg wrote:
[ . . . ]
 When I first started thinking about Orbit I decided for source packages. 
 The reason for this is that the developer only have to create one 
 package or doesn't have to build the app/lib for all supported platforms 
 when releasing a new version of the package (although it would be good 
 to know that it works on all supported platforms).
[ . . . ]

OS-level package manages have this issue, Ports went for source and
compiling as needed on the grounds that this is most flexible, Debian,
Fedora, etc. went for binary on the grounds it is far, far easier for
the users.

I find that most of the time MacPorts is fine as long as you only own
one computer, but for things like Boost, MacQt, etc. my machines takes
hours and hours to upgrade which really, really pisses me off.  I find
Debian package far more straightforward and furthermore binary packages
can be cached locally so I only have to download once for all 4 machines
I have.  With source download I end up compiling twice one for each Mac
OS X machine.  So overall source packages suck -- even though they are
reputedly safer against security attacks.

Ubuntu has introduced the idea of personal build farms, aka PPAs, which
work very well.  This handles creating packages for all the version of
Ubuntu still in support.  Using something like Buildbot, which although
supposedly a CI system can easily be subverted into being a package
creation farm.

I guess the question is really should the package manager be easy for
developers or easy for users?  If there are no packages because it is
too hard for developers to package then no users either.  If developers
can do things easily, but it is hard for users, then no users so no
point in creating packages.

It's worth noting that there is massive move in the Java arena to issue
binary, source and documentation artefacts -- where originally only
binary artefacts were released.  This is for supporting IDEs.  Clearly
source only packaging gets round this somewhat, but this means
compilation on the user's machine during install, and that leads to
suckiness -- see above for mild rant.

-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@russel.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


signature.asc
Description: This is a digitally signed message part


Re: Article discussing Go, could well be D

2011-06-20 Thread Johannes Pfau
Russel Winder wrote:
On Sun, 2011-06-19 at 21:19 +0200, Jacob Carlborg wrote:
[ . . . ]
 When I first started thinking about Orbit I decided for source
 packages. The reason for this is that the developer only have to
 create one package or doesn't have to build the app/lib for all
 supported platforms when releasing a new version of the package
 (although it would be good to know that it works on all supported
 platforms).
[ . . . ]

OS-level package manages have this issue, Ports went for source and
compiling as needed on the grounds that this is most flexible, Debian,
Fedora, etc. went for binary on the grounds it is far, far easier for
the users.

I find that most of the time MacPorts is fine as long as you only own
one computer, but for things like Boost, MacQt, etc. my machines takes
hours and hours to upgrade which really, really pisses me off.  I find
Debian package far more straightforward and furthermore binary packages
can be cached locally so I only have to download once for all 4
machines I have.  With source download I end up compiling twice one
for each Mac OS X machine.  So overall source packages suck -- even
though they are reputedly safer against security attacks.

Ubuntu has introduced the idea of personal build farms, aka PPAs, which
work very well.  This handles creating packages for all the version of
Ubuntu still in support.  Using something like Buildbot, which although
supposedly a CI system can easily be subverted into being a package
creation farm.

I guess the question is really should the package manager be easy for
developers or easy for users?  If there are no packages because it is
too hard for developers to package then no users either.  If developers
can do things easily, but it is hard for users, then no users so no
point in creating packages.

It's worth noting that there is massive move in the Java arena to issue
binary, source and documentation artefacts -- where originally only
binary artefacts were released.  This is for supporting IDEs.  Clearly
source only packaging gets round this somewhat, but this means
compilation on the user's machine during install, and that leads to
suckiness -- see above for mild rant.


It's possible to combine binary and source packages. Archlinux did
that: by default you install prebuilt binary packages, but you can
specify that you want to build certain packages by yourself. Archlinux
also has a huge repository of source-only packages which always need to
be build by the end user. AFAIK this system works quite well.
-- 
Johannes Pfau



Re: Article discussing Go, could well be D

2011-06-20 Thread Johannes Pfau
Daniel Gibson wrote:
Am 20.06.2011 10:52, schrieb Johannes Pfau:
 Jacob Carlborg wrote:
 On 2011-06-19 21:59, Jose Armando Garcia wrote:
 On Sun, Jun 19, 2011 at 4:19 PM, Jacob Carlborgd...@me.com
 wrote:
 On 2011-06-19 19:02, Johannes Pfau wrote:

 I still don't understand that completely. So does it list the
 files which will be contained in the package later, or file
 dependencies contained in other packages?
 (I'm asking because I'm not familiar
 with file-dependencies in package management systems. Most
 package management systems make a package depend on other
 packages, but not on the files in the packages)

 Ok, let me explain. When developing a package management system
 the first thing one has do decide is if the package should contain
 pre-built binaries/libraries, we can call these binary packages,
 or the necessary files to build the package when installing, we
 can call these source package (not to be confused with the source
 type you've mentioned below). As a third option, one could have a
 mixed package system containing both binary and source packages.
 Maybe even mixed packages could be possible.

 Why decide on file package? This only works with packages that
 can be compiled. Think non-D source code packages and close source
 packages. Even one of the most commonly known file package
 manager (Gentoo's portage) allows for binary packages.

 I guess we could have a mixed system, with both source and binary
 packages.
 
 Definitely. Standardised source packages allow automated binary
 package building, even for different architectures. Users should
 also be able to make small changes to source packages and create
 their own binary packages easily. Source packages only wouldn't work
 either, think of users on embedded systems. Compiling everything on
 a machine with 16MB ram and 200mhz isn't fun. Also binary packages
 are quite convenient.
 

1. Will you develop or compile your own software (that uses software
from the package manager) on the embedded system? I guess it's more
common to develop the software on a PC or whatever and upload it to the
embedded system.

Maybe I misunderstood something, but I thought orbit will also manage
shared libraries once supported by the d compilers. Even on resource
limited embedded systems it's likely that a library is needed by more
than one program, so it can't really be shipped with the program. Static
libraries, documentation and d headers are not needed on these
platforms. Of course package managers for embedded systems (something
like openembedded) can be used, but then all libraries have to be
packaged again into a different package format.

2. Will an embedded system with such restricted resources have a x86
arch - or will it more likely be ARM or even something completely
different? Should there be binaries available for any architecture
(that's hard, because most developers probably only have x86/amd64)?
If not, you'd have to compile yourself anyway.
(And of course we need a working compiler for that architecture first)

Arm, mips (popular in internet routers), sh4 (settop boxes), ppc

Ideally we'd have a package build system like launchpad: The developer
(or packager) creates a source package, uploads it to the build service,
build service transfers the source package to buildbot machines, those
build binary packages for different architectures. The binary packages
are then added to a repository. We won't have something like that from
the beginning, but in a few years such a build service might be useful.

Cheers,
- Daniel


-- 
Johannes Pfau



Re: Article discussing Go, could well be D

2011-06-20 Thread Johannes Pfau
Jacob Carlborg wrote:
On 2011-06-20 10:46, Johannes Pfau wrote:
 Jacob Carlborg wrote:
 [...]
 I hope this explains most of the things and I'm sorry for any
 confusion I may have caused.

 Thanks for that detailed explanation, I think I understand. This
 system also seems more flexible than the traditional 'this directory
 will be the root of the package, copy all files to be packaged into
 this directory'

 Ok, I think I understand so far. I was thinking something similar.
 But is a four digit version really necessary?

 I thought of variable length version numbers, this is what most
 package management systems use. Whats wrong with variable length
 versions? Look at 'compareBaseVer' in the source linked later for an
 example of how to compare such versions.

Currently I have the three-part-version as default and then a custom 
version (which basically can contain anything). The reason for the 
three-part-version scheme is explained in the wiki.

So it's to have defined semantics for version changes, to standardize
thing like api breakage. I think this makes sense, although it forces a
special versioning scheme on users it might be worth it.

 This got quite complex. When I was thinking about SCM integration I
 was thinking about you only specify the address to the repository,
 which will mean the latest commit on the main branch. Then you could
 also specify tags, branches and perhaps specific commits. But you
 could never specify, for example, a release (or commit) newer then
 another commit. This wouldn't work:

 orb dwt, ~  0.3.4, :git =
 git://github.com/jacob-carlborg/libjson.git

 I see now that I've specified a version in the git example on the
 wiki. This was a mistake, I removed the version now.


 I think we look at 2 different approaches here: If I understood
 correctly you want to allow the _user_ to grab the lastest git
 version. Whenever he wants to update, he has to do that manually. He
 also always downloads the source code and compiles it on his machine
 (no binary git packages).

Yes.

It probably comes down to the questions if binary 'git' packages are
worth the effort. I only know linux distribution package management
systems where it's common to package snapshots. But it might be
overkill for a package system dealing mostly with libraries.


 My approach let's the _packager_ create git packages. From these
 source packages binary packages can be build and distributed to end
 users like any other package (release, prerelease). Snapshots are
 'first class packages', which means everything working with releases
 and other packages will also work with snapshots.
 The downside of this approach is that it complicates things a lot. It
 needs a versioning scheme capable of sorting snapshots, releases and
 prereleases reliably.

 Here's some proof of concept code:
 https://gist.github.com/1035294
 200 LOC for a versioning scheme seems to be alot though.

I don't think I understand your approach.


It might really be overkill. But consider this example:
package FOO requires libjson = 0.0.1 as a dynamic library.
package BAR requires latest libjson from git as a dynamic library.

now FOO could use libjson-git, but how does the package manager know
that? It cannot know whether the git version is more recent than 0.0.1.
It's also not possible to install both libraries at a time, as both are
dynamic libraries with the same name.
We now have a conflict where you can only install FOO or BAR, but not
both.

-- 
Johannes Pfau



Re: Article discussing Go, could well be D

2011-06-20 Thread Jacob Carlborg

On 2011-06-20 13:07, Russel Winder wrote:

On Sun, 2011-06-19 at 21:19 +0200, Jacob Carlborg wrote:
[ . . . ]

When I first started thinking about Orbit I decided for source packages.
The reason for this is that the developer only have to create one
package or doesn't have to build the app/lib for all supported platforms
when releasing a new version of the package (although it would be good
to know that it works on all supported platforms).

[ . . . ]

OS-level package manages have this issue, Ports went for source and
compiling as needed on the grounds that this is most flexible, Debian,
Fedora, etc. went for binary on the grounds it is far, far easier for
the users.

I find that most of the time MacPorts is fine as long as you only own
one computer, but for things like Boost, MacQt, etc. my machines takes
hours and hours to upgrade which really, really pisses me off.  I find
Debian package far more straightforward and furthermore binary packages
can be cached locally so I only have to download once for all 4 machines
I have.  With source download I end up compiling twice one for each Mac
OS X machine.  So overall source packages suck -- even though they are
reputedly safer against security attacks.

Ubuntu has introduced the idea of personal build farms, aka PPAs, which
work very well.  This handles creating packages for all the version of
Ubuntu still in support.  Using something like Buildbot, which although
supposedly a CI system can easily be subverted into being a package
creation farm.

I guess the question is really should the package manager be easy for
developers or easy for users?  If there are no packages because it is
too hard for developers to package then no users either.  If developers
can do things easily, but it is hard for users, then no users so no
point in creating packages.

It's worth noting that there is massive move in the Java arena to issue
binary, source and documentation artefacts -- where originally only
binary artefacts were released.  This is for supporting IDEs.  Clearly
source only packaging gets round this somewhat, but this means
compilation on the user's machine during install, and that leads to
suckiness -- see above for mild rant.


Both source and binary packages have their weaknesses and advantages. If 
you have a package only available on one platform then binary packages 
would probably be the best. Maybe it's best to support both binary and 
source packages.


You mention that Java packages are getting distributed with the sources 
as well to support IDEs. For D, compared with Java, you need to at least 
distribute imports, *.di, files to be able to use libraries.


--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-20 Thread Jacob Carlborg

On 2011-06-20 14:02, Johannes Pfau wrote:

Jacob Carlborg wrote:

Currently I have the three-part-version as default and then a custom
version (which basically can contain anything). The reason for the
three-part-version scheme is explained in the wiki.


So it's to have defined semantics for version changes, to standardize
thing like api breakage. I think this makes sense, although it forces a
special versioning scheme on users it might be worth it.


It doesn't force a version scheme, you can always use the a custom 
version but then you won't be able to use the ~ operator. Which is 
the whole reason for using this version scheme.



It might really be overkill. But consider this example:
package FOO requires libjson= 0.0.1 as a dynamic library.
package BAR requires latest libjson from git as a dynamic library.

now FOO could use libjson-git, but how does the package manager know
that? It cannot know whether the git version is more recent than 0.0.1.
It's also not possible to install both libraries at a time, as both are
dynamic libraries with the same name.
We now have a conflict where you can only install FOO or BAR, but not
both.


Ok, I think I understand now. Thanks for the explanation.

--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-19 Thread Jacob Carlborg

On 2011-06-18 21:25, Russel Winder wrote:

On Sat, 2011-06-18 at 21:00 +0200, Johannes Pfau wrote:
[ . . . ]

It seems like building orb packages would only work with one specific
build system, Dake. I understand that we need a standard way to build
packages to allow automated package builds, but I think it should also
work with other build systems (waf, make, autotools...).


Or SCons.


The solution most linux package managers use is to let the 'source
package' provide 'build' and 'package' methods. Those methods are then
required to store the files in a specific temporary folder and all files
from that folder will form the package. Having the config files in Ruby
seems like a perfect fit for this approach.

Also: why does a orbspec have to specify its imports? I think it
should rather specify the packages it uses. With some more work it
could be possible to even let dmd find all needed imports and guess the
needed packages from these imports.


If the source code contains imports then surely Dake can deduce this
fact rather than it having to be specified a second time in the Dakefile
-- replication of data is a bad thing.

[ . . . ]


Read my reply to Johannes.

--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-19 Thread Jacob Carlborg

On 2011-06-18 21:00, Johannes Pfau wrote:

Jacob Carlborg wrote:

On 2011-06-16 23:27, Andrei Alexandrescu wrote:

On 6/16/11 4:19 PM, Jacob Carlborg wrote:

I'm already working on a package management tool for D.


Excellent. Suggestion: at the risk of getting flooded with
suggestions, post your design early and often.

Andrei


Posting my ideas here as well:
https://github.com/jacob-carlborg/orbit/wiki/Orbit-Package-Manager-for-D



Some comments to start the suggestion flood ;-)

It seems like building orb packages would only work with one specific
build system, Dake. I understand that we need a standard way to build
packages to allow automated package builds, but I think it should also
work with other build systems (waf, make, autotools...).
The solution most linux package managers use is to let the 'source
package' provide 'build' and 'package' methods. Those methods are then
required to store the files in a specific temporary folder and all files
from that folder will form the package. Having the config files in Ruby
seems like a perfect fit for this approach.


The default build system is Dake. Other build systems are supported as 
well, like make, dsss, cmake and others. I been thinking about either 
having methods for different events, like before/after 
building/installing. Or having a shell build method available. For 
example, if autotools is not an available build method you could run 
that any way. The tool would basically just execute a string in the shell.


You can also read at the top: These tools can work individually on 
their own but work much better together..


Also note that this is kind of like an overview of my ideas. I can go 
into much more detail if necessary. But I though it was too much detail 
(for now) if I wrote down basically the complete orbspec specification.



Also: why does a orbspec have to specify its imports? I think it
should rather specify the packages it uses. With some more work it
could be possible to even let dmd find all needed imports and guess the
needed packages from these imports.


I didn't think straight when I wrote that at first. I was thinking about 
having pre-built libraries in the package and that listed the import 
files needed by the library. But I have already changed that to just 
files, meaning all files necessary to build the package.



Another detail: I wouldn't use .orb for package extensions. We might
want to change the compression type later (tar+lzma for example),
so .orb.zip would be better. Then we could just use .orb.tar.xz with
the new compression. (This is also how archlinux works, for
example .pkg.tar.xz)


Ok, I can do that. I chose zip because that is available in Tango and 
Phobos.



It seems like C libraries would also be packaged with orb (the sqlite
example). This might be needed, but it will be a major pita for linux
packagers, as it'll likely cause conflicts. I think it should be
possible for those linux packages to hook into orb. Orb should
recognize something like 'orb --external libsqlite:library
--version 3.7.0' and then just assume that sqlite is installed (but it
should not assume that sqlites dependencies are installed - those would
have to be registered with --external again). This approach should work
well for D packages (so a D package is in Orb first, but some
distribution decides to package it. In this case they can add the orb
hooks to their packages). It's unlikely that a distribution will change
all C packages though. Probably at some time orb should interact with
'pkg-config' to look for already installed C packages, I'm not sure
what's a good solution for this problem.


With the sqlite example, I was actually thinking about bindings. But as 
you say, it would be good to be able to specify external dependencies, 
like C libraries.



'type :library' in the orbspec suggests that there'll be different
package types. I think this is a good idea so we don't have to use
package name hacks like 'libsqlite' 'libsqlite-dev' (debian)
Package types which make sense:
:doc --  documentation. Later possibly in a specific format?
:lib --  shared libraries (.so/.dll) when available
:slib --  static lib (.a/.lib)
:dev --  header files (.di)
:src --  source package used to build other packages


Yes, exactly.


We should also think about how the versioning scheme would interact with
git/hg/svn whatever snapshots and alpha/beta/rc releases. The debian
package system doesn't have explicit support for this which leads to
strange version numbers. Archlinux even uses different packages for git
versions (libsqlite-git) which also isn't a good solution.


If you have any ideas I'm listening.


Also here's a list of variables a source package can set in Archlinux:
https://wiki.archlinux.org/index.php/PKGBUILD
It might be a good idea to have a look at this and take some
inspiration from it. Most of these variables are also useful to orbit.

Here's an example Archlinux PKGBUILD:
http://pastebin.com/MeXiLDV9
The archlinux 

Re: Article discussing Go, could well be D

2011-06-19 Thread Johannes Pfau
Jacob Carlborg wrote:
On 2011-06-18 21:00, Johannes Pfau wrote:
 Jacob Carlborg wrote:
 On 2011-06-16 23:27, Andrei Alexandrescu wrote:
 On 6/16/11 4:19 PM, Jacob Carlborg wrote:
 I'm already working on a package management tool for D.

 Excellent. Suggestion: at the risk of getting flooded with
 suggestions, post your design early and often.

 Andrei

 Posting my ideas here as well:
 https://github.com/jacob-carlborg/orbit/wiki/Orbit-Package-Manager-for-D


 Some comments to start the suggestion flood ;-)

 It seems like building orb packages would only work with one specific
 build system, Dake. I understand that we need a standard way to build
 packages to allow automated package builds, but I think it should
 also work with other build systems (waf, make, autotools...).
 The solution most linux package managers use is to let the 'source
 package' provide 'build' and 'package' methods. Those methods are
 then required to store the files in a specific temporary folder and
 all files from that folder will form the package. Having the config
 files in Ruby seems like a perfect fit for this approach.

The default build system is Dake. Other build systems are supported as 
well, like make, dsss, cmake and others. I been thinking about either 
having methods for different events, like before/after 
building/installing. Or having a shell build method available. For 
example, if autotools is not an available build method you could run 
that any way. The tool would basically just execute a string in the
shell.

You can also read at the top: These tools can work individually on 
their own but work much better together..

Sorry, I must have missed that sentence.
Also note that this is kind of like an overview of my ideas. I can go 
into much more detail if necessary. But I though it was too much
detail (for now) if I wrote down basically the complete orbspec
specification.

I understand that. I just wanted to post my thoughts about some things
I consider important to package management.

 Also: why does a orbspec have to specify its imports? I think it
 should rather specify the packages it uses. With some more work it
 could be possible to even let dmd find all needed imports and guess
 the needed packages from these imports.

I didn't think straight when I wrote that at first. I was thinking
about having pre-built libraries in the package and that listed the
import files needed by the library. But I have already changed that to
just files, meaning all files necessary to build the package.

I still don't understand that completely. So does it list the files
which will be contained in the package later, or file dependencies
contained in other packages?
(I'm asking because I'm not familiar
with file-dependencies in package management systems. Most package
management systems make a package depend on other packages, but not on
the files in the packages)
 Another detail: I wouldn't use .orb for package extensions. We might
 want to change the compression type later (tar+lzma for example),
 so .orb.zip would be better. Then we could just use .orb.tar.xz with
 the new compression. (This is also how archlinux works, for
 example .pkg.tar.xz)

Ok, I can do that. I chose zip because that is available in Tango and 
Phobos.

Yes, right now, zip is seems to be the best choice, but at some point
the small size difference between zip and lzma could matter.

 It seems like C libraries would also be packaged with orb (the sqlite
 example). This might be needed, but it will be a major pita for linux
 packagers, as it'll likely cause conflicts. I think it should be
 possible for those linux packages to hook into orb. Orb should
 recognize something like 'orb --external libsqlite:library
 --version 3.7.0' and then just assume that sqlite is installed (but
 it should not assume that sqlites dependencies are installed - those
 would have to be registered with --external again). This approach
 should work well for D packages (so a D package is in Orb first, but
 some distribution decides to package it. In this case they can add
 the orb hooks to their packages). It's unlikely that a distribution
 will change all C packages though. Probably at some time orb should
 interact with 'pkg-config' to look for already installed C packages,
 I'm not sure what's a good solution for this problem.

With the sqlite example, I was actually thinking about bindings. But
as you say, it would be good to be able to specify external
dependencies, like C libraries.

I totally forgot about bindings! I'm quite uncertain about packaging C
libs though: If we don't package C libs windows users
will have to acquire all C libs manually. But if we do provide C
libraries we have to decide if we also ship the C headers, etc. and it
will be some more maintenance work.

 'type :library' in the orbspec suggests that there'll be different
 package types. I think this is a good idea so we don't have to use
 package name hacks like 'libsqlite' 'libsqlite-dev' (debian)
 

Re: Article discussing Go, could well be D

2011-06-19 Thread Jacob Carlborg

On 2011-06-19 19:02, Johannes Pfau wrote:

I still don't understand that completely. So does it list the files
which will be contained in the package later, or file dependencies
contained in other packages?
(I'm asking because I'm not familiar
with file-dependencies in package management systems. Most package
management systems make a package depend on other packages, but not on
the files in the packages)


Ok, let me explain. When developing a package management system the 
first thing one has do decide is if the package should contain pre-built 
binaries/libraries, we can call these binary packages, or the necessary 
files to build the package when installing, we can call these source 
package (not to be confused with the source type you've mentioned 
below). As a third option, one could have a mixed package system 
containing both binary and source packages. Maybe even mixed packages 
could be possible.


When I first started thinking about Orbit I decided for source packages. 
The reason for this is that the developer only have to create one 
package or doesn't have to build the app/lib for all supported platforms 
when releasing a new version of the package (although it would be good 
to know that it works on all supported platforms).


When I first wrote down my ideas about Orbit on the wiki I was, 
incorrectly, thinking it should have binary packages, hence the 
confusion (even I'm confused). This was when the orbspec examples 
contained the imports method. I then corrected this error and changed 
imports to files to reflect that the packages are source packages.


Now, files contains all the necessary files to build the package when 
installing it. These files most somehow be referenced in the orbspec 
because the tool needs to know what files to put in the package. This is 
for a package with no dependencies on other packages.


Note that usually you don't need to explicitly specify all the necessary 
files, thanks to Ruby's fleshed out standard library. For example, you 
could do like this:


imports Dir[**/*.d]

Which will, recursively, include all *.d files in the current directory. 
If you use Orbit together with Dake you don't have to specify any files 
at all since Dake will know what files to include (this is noted in the 
wiki).


If the package depends on other package this needs to be listed as well 
in the orbspec. This is not showed in any of the examples on the wiki.


I hope this explains most of the things and I'm sorry for any confusion 
I may have caused.



Another detail: I wouldn't use .orb for package extensions. We might
want to change the compression type later (tar+lzma for example),
so .orb.zip would be better. Then we could just use .orb.tar.xz with
the new compression. (This is also how archlinux works, for
example .pkg.tar.xz)


Ok, I can do that. I chose zip because that is available in Tango and
Phobos.


Yes, right now, zip is seems to be the best choice, but at some point
the small size difference between zip and lzma could matter.


It seems like C libraries would also be packaged with orb (the sqlite
example). This might be needed, but it will be a major pita for linux
packagers, as it'll likely cause conflicts. I think it should be
possible for those linux packages to hook into orb. Orb should
recognize something like 'orb --external libsqlite:library
--version 3.7.0' and then just assume that sqlite is installed (but
it should not assume that sqlites dependencies are installed - those
would have to be registered with --external again). This approach
should work well for D packages (so a D package is in Orb first, but
some distribution decides to package it. In this case they can add
the orb hooks to their packages). It's unlikely that a distribution
will change all C packages though. Probably at some time orb should
interact with 'pkg-config' to look for already installed C packages,
I'm not sure what's a good solution for this problem.


With the sqlite example, I was actually thinking about bindings. But
as you say, it would be good to be able to specify external
dependencies, like C libraries.


I totally forgot about bindings! I'm quite uncertain about packaging C
libs though: If we don't package C libs windows users
will have to acquire all C libs manually. But if we do provide C
libraries we have to decide if we also ship the C headers, etc. and it
will be some more maintenance work.


Yeah, I don't know exactly what to do with external dependencies. The 
easiest would be to have it just as information for the user of the package.





'type :library' in the orbspec suggests that there'll be different
package types. I think this is a good idea so we don't have to use
package name hacks like 'libsqlite' 'libsqlite-dev' (debian)
Package types which make sense:
:doc --   documentation. Later possibly in a specific format?
:lib --   shared libraries (.so/.dll) when available
:slib --   static lib (.a/.lib)
:dev --   header files (.di)
:src --   source 

Re: Article discussing Go, could well be D

2011-06-19 Thread Jose Armando Garcia
On Sun, Jun 19, 2011 at 4:19 PM, Jacob Carlborg d...@me.com wrote:
 On 2011-06-19 19:02, Johannes Pfau wrote:

 I still don't understand that completely. So does it list the files
 which will be contained in the package later, or file dependencies
 contained in other packages?
 (I'm asking because I'm not familiar
 with file-dependencies in package management systems. Most package
 management systems make a package depend on other packages, but not on
 the files in the packages)

 Ok, let me explain. When developing a package management system the first
 thing one has do decide is if the package should contain pre-built
 binaries/libraries, we can call these binary packages, or the necessary
 files to build the package when installing, we can call these source package
 (not to be confused with the source type you've mentioned below). As a third
 option, one could have a mixed package system containing both binary and
 source packages. Maybe even mixed packages could be possible.

Why decide on file package? This only works with packages that can
be compiled. Think non-D source code packages and close source
packages. Even one of the most commonly known file package manager
(Gentoo's portage) allows for binary packages.

Another example is caching. Many software development organization
keep internal library/program repository that have been clear by the
organization for many reasons (e.g. licensing, security, support,
etc). Our packaging solution should work such an environment.

-Jose


Re: Article discussing Go, could well be D

2011-06-18 Thread Russel Winder
On Fri, 2011-06-17 at 21:29 +0200, Jacob Carlborg wrote:
 On 2011-06-16 23:27, Andrei Alexandrescu wrote:
  On 6/16/11 4:19 PM, Jacob Carlborg wrote:
  I'm already working on a package management tool for D.
 
  Excellent. Suggestion: at the risk of getting flooded with suggestions,
  post your design early and often.
 
  Andrei
 
 Posting my ideas here as well: 
 https://github.com/jacob-carlborg/orbit/wiki/Orbit-Package-Manager-for-D

Just to chip in that when Groovy added the Grapes subsystem so that the
@Grab annotation could be used to specify dependencies, the usability of
Groovy for writing scripts shot up markedly.

The default resolver is the Maven repository, but other resolvers can be
added using the @GrabResolver annotation.

For Dake/Orb it might be wise to allow for alternate repositories as
well as the central one.

Lessons from the Debian/Ubuntu/PPA systems can be picked up here as
well.  The central repository is great for authorized and accepted
packages (by whatever authority authorizes) but having PPAs gives Ubuntu
an edge over Debian in the flexibility and ability to run specialist
configurations.


-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@russel.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


signature.asc
Description: This is a digitally signed message part


Re: Article discussing Go, could well be D

2011-06-18 Thread Jacob Carlborg

On 2011-06-18 11:17, Russel Winder wrote:

On Fri, 2011-06-17 at 21:29 +0200, Jacob Carlborg wrote:

On 2011-06-16 23:27, Andrei Alexandrescu wrote:

On 6/16/11 4:19 PM, Jacob Carlborg wrote:

I'm already working on a package management tool for D.


Excellent. Suggestion: at the risk of getting flooded with suggestions,
post your design early and often.

Andrei


Posting my ideas here as well:
https://github.com/jacob-carlborg/orbit/wiki/Orbit-Package-Manager-for-D


Just to chip in that when Groovy added the Grapes subsystem so that the
@Grab annotation could be used to specify dependencies, the usability of
Groovy for writing scripts shot up markedly.

The default resolver is the Maven repository, but other resolvers can be
added using the @GrabResolver annotation.

For Dake/Orb it might be wise to allow for alternate repositories as
well as the central one.


Yes, of course. I'll provide a source function that sets the 
repository. I didn't go in to every detail on the wiki, specially not 
which functions are available in the config/spec files.



Lessons from the Debian/Ubuntu/PPA systems can be picked up here as
well.  The central repository is great for authorized and accepted
packages (by whatever authority authorizes) but having PPAs gives Ubuntu
an edge over Debian in the flexibility and ability to run specialist
configurations.



--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-18 Thread Johannes Pfau
Jacob Carlborg wrote:
On 2011-06-16 23:27, Andrei Alexandrescu wrote:
 On 6/16/11 4:19 PM, Jacob Carlborg wrote:
 I'm already working on a package management tool for D.

 Excellent. Suggestion: at the risk of getting flooded with
 suggestions, post your design early and often.

 Andrei

Posting my ideas here as well: 
https://github.com/jacob-carlborg/orbit/wiki/Orbit-Package-Manager-for-D


Some comments to start the suggestion flood ;-)

It seems like building orb packages would only work with one specific
build system, Dake. I understand that we need a standard way to build
packages to allow automated package builds, but I think it should also
work with other build systems (waf, make, autotools...).
The solution most linux package managers use is to let the 'source
package' provide 'build' and 'package' methods. Those methods are then
required to store the files in a specific temporary folder and all files
from that folder will form the package. Having the config files in Ruby
seems like a perfect fit for this approach.

Also: why does a orbspec have to specify its imports? I think it
should rather specify the packages it uses. With some more work it
could be possible to even let dmd find all needed imports and guess the
needed packages from these imports.

Another detail: I wouldn't use .orb for package extensions. We might
want to change the compression type later (tar+lzma for example),
so .orb.zip would be better. Then we could just use .orb.tar.xz with
the new compression. (This is also how archlinux works, for
example .pkg.tar.xz)

It seems like C libraries would also be packaged with orb (the sqlite
example). This might be needed, but it will be a major pita for linux
packagers, as it'll likely cause conflicts. I think it should be
possible for those linux packages to hook into orb. Orb should
recognize something like 'orb --external libsqlite:library
--version 3.7.0' and then just assume that sqlite is installed (but it
should not assume that sqlites dependencies are installed - those would
have to be registered with --external again). This approach should work
well for D packages (so a D package is in Orb first, but some
distribution decides to package it. In this case they can add the orb
hooks to their packages). It's unlikely that a distribution will change
all C packages though. Probably at some time orb should interact with
'pkg-config' to look for already installed C packages, I'm not sure
what's a good solution for this problem.

'type :library' in the orbspec suggests that there'll be different
package types. I think this is a good idea so we don't have to use
package name hacks like 'libsqlite' 'libsqlite-dev' (debian)
Package types which make sense:
:doc -- documentation. Later possibly in a specific format?
:lib -- shared libraries (.so/.dll) when available
:slib -- static lib (.a/.lib)
:dev -- header files (.di)
:src -- source package used to build other packages

We should also think about how the versioning scheme would interact with
git/hg/svn whatever snapshots and alpha/beta/rc releases. The debian
package system doesn't have explicit support for this which leads to
strange version numbers. Archlinux even uses different packages for git
versions (libsqlite-git) which also isn't a good solution.

Also here's a list of variables a source package can set in Archlinux:
https://wiki.archlinux.org/index.php/PKGBUILD
It might be a good idea to have a look at this and take some
inspiration from it. Most of these variables are also useful to orbit.

Here's an example Archlinux PKGBUILD:
http://pastebin.com/MeXiLDV9
The archlinux package system has the easiest source package syntax I
know.

-- 
Johannes Pfau



Re: Article discussing Go, could well be D

2011-06-18 Thread Russel Winder
On Sat, 2011-06-18 at 21:00 +0200, Johannes Pfau wrote:
[ . . . ]
 It seems like building orb packages would only work with one specific
 build system, Dake. I understand that we need a standard way to build
 packages to allow automated package builds, but I think it should also
 work with other build systems (waf, make, autotools...).

Or SCons.

 The solution most linux package managers use is to let the 'source
 package' provide 'build' and 'package' methods. Those methods are then
 required to store the files in a specific temporary folder and all files
 from that folder will form the package. Having the config files in Ruby
 seems like a perfect fit for this approach.
 
 Also: why does a orbspec have to specify its imports? I think it
 should rather specify the packages it uses. With some more work it
 could be possible to even let dmd find all needed imports and guess the
 needed packages from these imports.

If the source code contains imports then surely Dake can deduce this
fact rather than it having to be specified a second time in the Dakefile
-- replication of data is a bad thing.

[ . . . ]

-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@russel.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


signature.asc
Description: This is a digitally signed message part


Re: Article discussing Go, could well be D

2011-06-17 Thread Jacob Carlborg

On 2011-06-11 01:14, Nick Sabalausky wrote:

Andrei Alexandrescuseewebsiteforem...@erdani.org  wrote in message
news:isovj2$2133$1...@digitalmars.com...


That's it. We need a package management expert on board to either revive
dsss or another similar project, or define a new package manager
altogether. No yeah I have some code somewhere feel free to copy from
it; we need professional execution. Then we need to make that tool part
of the standard distribution such that library discovery, installation,
and management is as easy as running a command.

I'm putting this up for grabs. It's an important project of high impact.
Wondering what you could do to help D? Take this to completion.



Just a thought: DVM is already set up to handle managing multiple versions
of DMD. And I don't think it's a stretch to figure that support for GDC and
LDC would be natural extensions at some point, plus some dmd.conf/sc.ini
management functionality (which would be needed for installing D libraries).
So maybe DVM could be expanded to handle arbitrary D packages as well?


DVM will never handle arbitrary D packages. I'm working another tool for 
that though: 
https://github.com/jacob-carlborg/orbit/wiki/Oribt-Package-Manager-for-D


I'm working on both of the tools mentioned in the above link.

--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-17 Thread Jacob Carlborg

On 2011-06-16 23:27, Andrei Alexandrescu wrote:

On 6/16/11 4:19 PM, Jacob Carlborg wrote:

I'm already working on a package management tool for D.


Excellent. Suggestion: at the risk of getting flooded with suggestions,
post your design early and often.

Andrei


I usually post late, when I actually have something useful to show. As 
you've said in another thread, perhaps in the log thread, that we should 
stop the discussion and just implement something.


--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-17 Thread Jacob Carlborg

On 2011-06-16 23:27, Andrei Alexandrescu wrote:

On 6/16/11 4:19 PM, Jacob Carlborg wrote:

I'm already working on a package management tool for D.


Excellent. Suggestion: at the risk of getting flooded with suggestions,
post your design early and often.

Andrei


Posting my ideas here as well: 
https://github.com/jacob-carlborg/orbit/wiki/Orbit-Package-Manager-for-D


--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-16 Thread Jacob Carlborg

On 2011-06-11 01:18, Andrei Alexandrescu wrote:

On 6/10/11 6:14 PM, Nick Sabalausky wrote:

Andrei Alexandrescuseewebsiteforem...@erdani.org wrote in message
news:isovj2$2133$1...@digitalmars.com...


That's it. We need a package management expert on board to either revive
dsss or another similar project, or define a new package manager
altogether. No yeah I have some code somewhere feel free to copy from
it; we need professional execution. Then we need to make that tool part
of the standard distribution such that library discovery, installation,
and management is as easy as running a command.

I'm putting this up for grabs. It's an important project of high impact.
Wondering what you could do to help D? Take this to completion.



Just a thought: DVM is already set up to handle managing multiple
versions
of DMD. And I don't think it's a stretch to figure that support for
GDC and
LDC would be natural extensions at some point, plus some dmd.conf/sc.ini
management functionality (which would be needed for installing D
libraries).
So maybe DVM could be expanded to handle arbitrary D packages as well?


I think that's an excellent idea. Jacob, would you be interested in
working on that?

Andrei


I'm already working on another tool for handling D packages,
DVM will never be able to do that. To elaborate, I'm building this tool 
(and later rebuilding DVM) as a library with a thin wrapper consisting 
of the command line interface. So they could be build into one single 
tool (from the users point of view) if people would want this.


--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-16 Thread Jacob Carlborg

On 2011-06-11 09:28, Nick Sabalausky wrote:

Andrei Alexandrescuseewebsiteforem...@erdani.org  wrote in message
news:isu8vs$d2f$1...@digitalmars.com...

On 6/10/11 6:14 PM, Nick Sabalausky wrote:

Andrei Alexandrescuseewebsiteforem...@erdani.org   wrote in message
news:isovj2$2133$1...@digitalmars.com...


That's it. We need a package management expert on board to either revive
dsss or another similar project, or define a new package manager
altogether. No yeah I have some code somewhere feel free to copy from
it; we need professional execution. Then we need to make that tool part
of the standard distribution such that library discovery, installation,
and management is as easy as running a command.

I'm putting this up for grabs. It's an important project of high impact.
Wondering what you could do to help D? Take this to completion.



Just a thought: DVM is already set up to handle managing multiple
versions
of DMD. And I don't think it's a stretch to figure that support for GDC
and
LDC would be natural extensions at some point, plus some dmd.conf/sc.ini
management functionality (which would be needed for installing D
libraries).
So maybe DVM could be expanded to handle arbitrary D packages as well?


I think that's an excellent idea. Jacob, would you be interested in
working on that?



If he isn't interested and no one else wants to jump in, then I'd be willing
to volunteer for it. I'm already familiar with DVM's internals from doing
the Windows port.

Or maybe Andrew Wiley would want to be involved. He did say that he hoped to
turn his xfbuild-like tool into a DSSS replacement. Might be good not to
duplicate efforts.



See my reply to Andrei.

--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-16 Thread Jacob Carlborg

On 2011-06-09 01:06, Andrei Alexandrescu wrote:

On 6/8/11 4:38 PM, Brad Anderson wrote:

On Wed, Jun 8, 2011 at 12:46 AM, Lars T. Kyllingstad
public@kyllingen.nospamnet wrote:

http://www.reddit.com/r/programming/comments/hudvd/
the_go_programming_language_or_why_all_clike/

The author presents a wish list for his perfect systems programming
language, and claims that Go is the only one (somewhat) fulfilling it.
With the exception of item 7, the list could well be an
advertisement for
D.

-Lars


I found the comments on the Hacker News post
http://news.ycombinator.com/item?id=2631964 about this article more
interesting.

Regards,
Brad Anderson


Agreed. The top poster does repeat a point made by others: D does fail
on point 7. Allow me to paste it:

=
7. Module Library and Repository
I want all the niceties I have grown used to in scripting languages
built-in or part of the standard library. A public package repository
with a decent portable package manager is even better. Typical packages
include internet protocols, parsing of common syntaxes, GUI, crypto,
common mathematical algorithms, data processing and so on. (Example:
Perl 5 CPAN)
=

That's it. We need a package management expert on board to either revive
dsss or another similar project, or define a new package manager
altogether. No yeah I have some code somewhere feel free to copy from
it; we need professional execution. Then we need to make that tool part
of the standard distribution such that library discovery, installation,
and management is as easy as running a command.

I'm putting this up for grabs. It's an important project of high impact.
Wondering what you could do to help D? Take this to completion.


Andrei


I'm already working on a package management tool for D.

--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-16 Thread Jacob Carlborg

On 2011-06-10 20:00, Andrew Wiley wrote:

On Fri, Jun 10, 2011 at 9:29 AM, Caligo iteronve...@gmail.com
mailto:iteronve...@gmail.com wrote:

On Wed, Jun 8, 2011 at 6:06 PM, Andrei Alexandrescu
seewebsiteforem...@erdani.org
mailto:seewebsiteforem...@erdani.org wrote:
  That's it. We need a package management expert on board to either
revive
  dsss or another similar project, or define a new package manager
altogether.
  No yeah I have some code somewhere feel free to copy from it;
we need
  professional execution. Then we need to make that tool part of
the standard
  distribution such that library discovery, installation, and
management is as
  easy as running a command.
 
  I'm putting this up for grabs. It's an important project of high
impact.
  Wondering what you could do to help D? Take this to completion.
 
 
  Andrei
 

Andrei, I have to respectfully disagree with you on that, sorry.

D is supposed to be a system programming language, not some scripting
language like Ruby.  Besides, the idea of some kind of package
management for a programming language is one of the worst ideas ever,
specially when it's a system programming language.  You have no idea
how much pain and suffering it's going to cause the OS developers and
package maintainers.  I can see how the idea might be attractive to
non-*nix users, but most other *nix OSs have some kind of package
management system and searching for, installing, and managing software
is as easy as running a command.

It doesn't have to be hard if you build the package manager in such a
way that it can be integrated into the OS package manager, whether that
means letting the OS package manager modify the language package
manager's database or just adding a switch that turns your package
manager into a dumb build tool so dependency checks can be left to the
OS package manager. That's my theory, anyway.


Windows doesn't have a OS package and Mac OS X doesn't have one out of 
the box. Only on Linux there are several package managers to integrate 
with, seems to be a lot of work. I think it's easier to build a custom, 
specific for D.


--
/Jacob Carlborg


Re: Article discussing Go, could well be D

2011-06-16 Thread Andrei Alexandrescu

On 6/16/11 4:19 PM, Jacob Carlborg wrote:

I'm already working on a package management tool for D.


Excellent. Suggestion: at the risk of getting flooded with suggestions, 
post your design early and often.


Andrei


Re: Article discussing Go, could well be D

2011-06-15 Thread Kagamin
Nick Sabalausky Wrote:

 But Arora is still really lacking in some things, for instance, *really* bad 
 handling of SSL certs that aren't 100% perfect (such as self-signed ones, 
 which prevents me from using it for a lot of dev work on my local machine).

Maybe you should import your CA certificate as trusted?

 And even though it's WebKit, which I thought was supposed to be really fast, 
 it's actually just about as slow to load a page as FF2. Surprisingly slow.

WebKit is not meant to be fast, it's slower than gecko (at least on windows).

 It's by far the most promising-looking browser out there (Hell, it's the 
 only one still around with a UI that doesn't completely look like ass

I don't remember, did you try Orca?
Or you can write skin/plugin/extension for FF4 to make your sweet interface :)


Re: Article discussing Go, could well be D

2011-06-15 Thread Nick Sabalausky
Kagamin s...@here.lot wrote in message 
news:it9ti2$2etv$1...@digitalmars.com...
 Nick Sabalausky Wrote:

 But Arora is still really lacking in some things, for instance, *really* 
 bad
 handling of SSL certs that aren't 100% perfect (such as self-signed ones,
 which prevents me from using it for a lot of dev work on my local 
 machine).

 Maybe you should import your CA certificate as trusted?


Arora's SSL capabilities are extremely limited. As far as I could tell, it 
didn't even have a way to do that. I've even had it crash when the cert 
wasn't perfect.

 And even though it's WebKit, which I thought was supposed to be really 
 fast,
 it's actually just about as slow to load a page as FF2. Surprisingly 
 slow.

 WebKit is not meant to be fast, it's slower than gecko (at least on 
 windows).


Isn't WebKit what Chrome uses? I thought that was supposed to be fast.

 It's by far the most promising-looking browser out there (Hell, it's the
 only one still around with a UI that doesn't completely look like ass

 I don't remember, did you try Orca?

First I've heard of it. I'll look it up.

 Or you can write skin/plugin/extension for FF4 to make your sweet 
 interface :)

Yea, but that's the problem with FF. Everything about it sucks 
out-of-the-box, and it gives you no way to disable most of the suck. So you 
*have to* cram it full of add-ons just to make the damn thing usable. (At 
least it actually *has* a good range of addons available...)





Re: Article discussing Go, could well be D

2011-06-15 Thread Kagamin
Nick Sabalausky Wrote:

  WebKit is not meant to be fast, it's slower than gecko (at least on 
  windows).
 
 
 Isn't WebKit what Chrome uses? I thought that was supposed to be fast.

I heard they hacked in their js engine which is supposed to be fast. Ever saw 
googlesyndication.js?

  Or you can write skin/plugin/extension for FF4 to make your sweet 
  interface :)
 
 Yea, but that's the problem with FF. Everything about it sucks 
 out-of-the-box, and it gives you no way to disable most of the suck. So you 
 *have to* cram it full of add-ons just to make the damn thing usable. (At 
 least it actually *has* a good range of addons available...)

That's what's meant by extensibility: if default doesn't suit your preferences, 
you can customize it. Opera used to follow an opposite approach: mix up all 
usable stuff so that the user has no need to extend it, but now it supports 
ff-style extensions.


Re: Article discussing Go, could well be D

2011-06-15 Thread Jérôme M. Berger
Nick Sabalausky wrote:
 Isn't WebKit what Chrome uses? I thought that was supposed to be fast.
 
Hah, you fell for their advertising, you of all people! It is
fast for javascript heavy sites. For static HTML, all engines are
pretty close to each other.

Jerome
-- 
mailto:jeber...@free.fr
http://jeberger.free.fr
Jabber: jeber...@jabber.fr



signature.asc
Description: OpenPGP digital signature


Re: Article discussing Go, could well be D

2011-06-11 Thread Nick Sabalausky
Andrei Alexandrescu seewebsiteforem...@erdani.org wrote in message 
news:isu8vs$d2f$1...@digitalmars.com...
 On 6/10/11 6:14 PM, Nick Sabalausky wrote:
 Andrei Alexandrescuseewebsiteforem...@erdani.org  wrote in message
 news:isovj2$2133$1...@digitalmars.com...

 That's it. We need a package management expert on board to either revive
 dsss or another similar project, or define a new package manager
 altogether. No yeah I have some code somewhere feel free to copy from
 it; we need professional execution. Then we need to make that tool part
 of the standard distribution such that library discovery, installation,
 and management is as easy as running a command.

 I'm putting this up for grabs. It's an important project of high impact.
 Wondering what you could do to help D? Take this to completion.


 Just a thought: DVM is already set up to handle managing multiple 
 versions
 of DMD. And I don't think it's a stretch to figure that support for GDC 
 and
 LDC would be natural extensions at some point, plus some dmd.conf/sc.ini
 management functionality (which would be needed for installing D 
 libraries).
 So maybe DVM could be expanded to handle arbitrary D packages as well?

 I think that's an excellent idea. Jacob, would you be interested in 
 working on that?


If he isn't interested and no one else wants to jump in, then I'd be willing 
to volunteer for it. I'm already familiar with DVM's internals from doing 
the Windows port.

Or maybe Andrew Wiley would want to be involved. He did say that he hoped to 
turn his xfbuild-like tool into a DSSS replacement. Might be good not to 
duplicate efforts.





Re: Article discussing Go, could well be D

2011-06-11 Thread Walter Bright

On 6/8/2011 11:56 PM, Nick Sabalausky wrote:

What you said above is also why I *strongly* believe that good (and I mean
*good*) documentation is every bit as important as actually
writing/releasing a tool or library in the first place. I've seen so much
already-made work that's rendered barely-usable due to less-than-stellar
documentation (or even worse: bad or non-existant documentation). What's the
point out of putting stuff out there if nobody knows how to use it? What's
the point of using something if figuring it out and getting it to work takes
about as much effort as DIY? That's why (for public projects anyway) I force
myself, even if I don't want to, to put all the effort I need to into
documentation to make things as easy as possible. Otherwise, all that effort
writing the code would likely have been for nothing anyway.



Sure. I struggle with writing documentation myself, and Ddoc has cut my effort 
involved in doing it by more than half. (I even use Ddoc to build Kindle ebooks, 
4 so far!)


Re: Article discussing Go, could well be D

2011-06-11 Thread Walter Bright

On 6/8/2011 7:18 PM, Jonathan M Davis wrote:

So, being able to call C code is fantastic and buys us a lot, but for a lot of
programmers, that just doesn't cut it. They want the libraries to be in D.


I think we've got some good traction lately in providing interfaces to popular c 
libraries in etc.c. It's a great first step.




Re: Article discussing Go, could well be D

2011-06-11 Thread Andrew Wiley
On Fri, Jun 10, 2011 at 3:48 PM, Nick Sabalausky a@a.a wrote:

 Andrew Wiley wiley.andre...@gmail.com wrote in message
 news:mailman.776.1307728872.14074.digitalmar...@puremagic.com...
  On Fri, Jun 10, 2011 at 9:29 AM, Caligo iteronve...@gmail.com wrote:
 
  On Wed, Jun 8, 2011 at 6:06 PM, Andrei Alexandrescu
  seewebsiteforem...@erdani.org wrote:
   That's it. We need a package management expert on board to either
   revive
   dsss or another similar project, or define a new package manager
  altogether.
   No yeah I have some code somewhere feel free to copy from it; we
 need
   professional execution. Then we need to make that tool part of the
  standard
   distribution such that library discovery, installation, and management
   is
  as
   easy as running a command.
  
   I'm putting this up for grabs. It's an important project of high
   impact.
   Wondering what you could do to help D? Take this to completion.
  
  
   Andrei
  
 
  Andrei, I have to respectfully disagree with you on that, sorry.
 
  D is supposed to be a system programming language, not some scripting
  language like Ruby.  Besides, the idea of some kind of package
  management for a programming language is one of the worst ideas ever,
  specially when it's a system programming language.  You have no idea
  how much pain and suffering it's going to cause the OS developers and
  package maintainers.  I can see how the idea might be attractive to
  non-*nix users, but most other *nix OSs have some kind of package
  management system and searching for, installing, and managing software
  is as easy as running a command.
 
 
  It doesn't have to be hard if you build the package manager in such a way
  that it can be integrated into the OS package manager, whether that means
  letting the OS package manager modify the language package manager's
  database or just adding a switch that turns your package manager into a
  dumb
  build tool so dependency checks can be left to the OS package manager.
  That's my theory, anyway.
 

 I'd say one critical requirement for a package manager is that it be based
 around the idea of supporting multiple versins of the same lib at the same
 time. If you're just going to re-invent your own little DLL hell you'd
 almost be better off just going with the OS package manager.


Well, yes, but if the OS package manager can't handle multiple versions of
the same lib (and so far, I haven't seem one that can), making that work
isn't a necessary part of OS package manager integration. I agree that the
language package manager should be able to manage multiple versions in
whatever local stores it maintains.
The trick is that if I install a package through the OS package manager,
there needs to be a way for the language package manager to know what was
installed and use that if possible. And, when an application is released, it
needs to be possible for it to be built as an OS package depending entirely
on other OS packages instead of the language package manager's local stores,
and if the language package manager is built in such a way that this is
feasible, it should become much more useful.
This is all just hand-waving at this point, but it seems like if a sane
method can be devised to make this sort of thing happen, the end result will
be much better.


Re: Article discussing Go, could well be D

2011-06-10 Thread Jeff Nowakowski

On 06/09/2011 03:27 AM, Nick Sabalausky wrote:


Once again, I wasn't Pike-bashing. You're misinterpreting my words
and assuming I did. Billions of people, obviously myself included,
have never done *anything* of real significant note whether recently
or 800 years ago. And everyone knows that. So how the heck can saying
some guy who did something significant 40 years ago and hasn't done
a damn thing of note since even *possibly* be taken as an insult?


Maybe because he has done things of note since? Who is it for you to
judge? And then comparing him against Andrei, to boot. I don't want to
get into a debate on his career, or turn this into an Andre vs Pike
flamefest, so I won't drag up what people have worked on. My point is
you didn't have to go there.

Yes, what you did was inflammatory and ad hominem.


Re: Article discussing Go, could well be D

2011-06-10 Thread Jeff Nowakowski

On 06/09/2011 03:36 AM, Nick Sabalausky wrote:


So he flat out *states* that he passed over D and gave Issue 9 a try
*because* of what was done decades ago by one of the people involved.


OK, I missed that, because I searched for Pike in the article, and he 
mentioned Thompson. Your post didn't mention anybody explicitly by name, 
except for that Issue 9 guy. Considering that Pike has been the face 
of Go, it was a reasonable assumption.


You still didn't need to pass judgment on what is notable or not in 
their later careers. It's enough to say that dismissing D as being 
irrelevant without justification is the problem.


Also, there's nothing wrong with taking a look at a C-like language 
because the inventors were heavily involved with the original C and Unix 
environments. Much like people are encouraged to look at D because of 
Walter's past work with a C++ compiler and Andrei's C++ experience. As a 
way to pique interest, it's valid. However, that should not be a 
determination of a language's actual merit.


Re: Article discussing Go, could well be D

2011-06-10 Thread Caligo
On Wed, Jun 8, 2011 at 6:06 PM, Andrei Alexandrescu
seewebsiteforem...@erdani.org wrote:
 That's it. We need a package management expert on board to either revive
 dsss or another similar project, or define a new package manager altogether.
 No yeah I have some code somewhere feel free to copy from it; we need
 professional execution. Then we need to make that tool part of the standard
 distribution such that library discovery, installation, and management is as
 easy as running a command.

 I'm putting this up for grabs. It's an important project of high impact.
 Wondering what you could do to help D? Take this to completion.


 Andrei


Andrei, I have to respectfully disagree with you on that, sorry.

D is supposed to be a system programming language, not some scripting
language like Ruby.  Besides, the idea of some kind of package
management for a programming language is one of the worst ideas ever,
specially when it's a system programming language.  You have no idea
how much pain and suffering it's going to cause the OS developers and
package maintainers.  I can see how the idea might be attractive to
non-*nix users, but most other *nix OSs have some kind of package
management system and searching for, installing, and managing software
is as easy as running a command.


Re: Article discussing Go, could well be D

2011-06-10 Thread Lutger Blijdestijn
Caligo wrote:

 On Wed, Jun 8, 2011 at 6:06 PM, Andrei Alexandrescu
 seewebsiteforem...@erdani.org wrote:
 That's it. We need a package management expert on board to either revive
 dsss or another similar project, or define a new package manager
 altogether. No yeah I have some code somewhere feel free to copy from
 it; we need professional execution. Then we need to make that tool part
 of the standard distribution such that library discovery, installation,
 and management is as easy as running a command.

 I'm putting this up for grabs. It's an important project of high impact.
 Wondering what you could do to help D? Take this to completion.


 Andrei

 
 Andrei, I have to respectfully disagree with you on that, sorry.
 
 D is supposed to be a system programming language, not some scripting
 language like Ruby.  Besides, the idea of some kind of package
 management for a programming language is one of the worst ideas ever,
 specially when it's a system programming language.  You have no idea
 how much pain and suffering it's going to cause the OS developers and
 package maintainers.  I can see how the idea might be attractive to
 non-*nix users, but most other *nix OSs have some kind of package
 management system and searching for, installing, and managing software
 is as easy as running a command.

For software libraries it is a different case imho, for the following 
reasons:
- for most software development needs, not enough libraries get packaged by 
the major distro's
- there's no way library authors are going to maintain packages of their 
libs for all the popular distro's with their incompatible systems
- distro maintainers often package older versions, sometimes they are years 
behind
- most, if not all native package management systems deal poorly with the 
need for having several versions of a library available. So there is still a 
need for tools like virtualenv. With dsss it's also trivial to setup 
multiple installations to manage version requirements
- language specific package management can span across operating systems

The net result is that languages which have package managers (python, ruby, 
haskell, perl and now also .net) have in fact far more and up to date 
libraries available than any distro will ever be able to manage.



Re: Article discussing Go, could well be D

2011-06-10 Thread bearophile
Caligo:

 Besides, the idea of some kind of package
 management for a programming language is one of the worst ideas ever,
 specially when it's a system programming language.

D seems acceptable as an application programming language too. And in Haskell I 
am appreciating Cabal with Hackage:
http://www.haskell.org/cabal/

Bye,
bearophile


Re: Article discussing Go, could well be D

2011-06-10 Thread Jonathan M Davis
On 2011-06-10 09:29, Caligo wrote:
 On Wed, Jun 8, 2011 at 6:06 PM, Andrei Alexandrescu
 
 seewebsiteforem...@erdani.org wrote:
  That's it. We need a package management expert on board to either revive
  dsss or another similar project, or define a new package manager
  altogether. No yeah I have some code somewhere feel free to copy from
  it; we need professional execution. Then we need to make that tool part
  of the standard distribution such that library discovery, installation,
  and management is as easy as running a command.
  
  I'm putting this up for grabs. It's an important project of high impact.
  Wondering what you could do to help D? Take this to completion.
  
  
  Andrei
 
 Andrei, I have to respectfully disagree with you on that, sorry.
 
 D is supposed to be a system programming language, not some scripting
 language like Ruby. Besides, the idea of some kind of package
 management for a programming language is one of the worst ideas ever,
 specially when it's a system programming language. You have no idea
 how much pain and suffering it's going to cause the OS developers and
 package maintainers. I can see how the idea might be attractive to
 non-*nix users, but most other *nix OSs have some kind of package
 management system and searching for, installing, and managing software
 is as easy as running a command.

Personally, I don't care much. However, there _are_ other *nix languages which 
do this sort of thing - e.g. Perl has CPAN. And even if the distro doesn't use 
it, it's likely to make their job in getting their packages set up properly. 
And if having a packaging system for D libraries helps boost the language, 
then I have no problem with it. But ultimately, how much value it adds will 
depend on what it does and how it works, and we won't know that until it's 
been design and implemented, which obviously hasn't been done yet.

- Jonathan M Davis


Re: Article discussing Go, could well be D

2011-06-10 Thread Andrei Alexandrescu

On 6/10/11 11:29 AM, Caligo wrote:

On Wed, Jun 8, 2011 at 6:06 PM, Andrei Alexandrescu
seewebsiteforem...@erdani.org  wrote:

That's it. We need a package management expert on board to either revive
dsss or another similar project, or define a new package manager altogether.
No yeah I have some code somewhere feel free to copy from it; we need
professional execution. Then we need to make that tool part of the standard
distribution such that library discovery, installation, and management is as
easy as running a command.

I'm putting this up for grabs. It's an important project of high impact.
Wondering what you could do to help D? Take this to completion.


Andrei



Andrei, I have to respectfully disagree with you on that, sorry.

D is supposed to be a system programming language, not some scripting
language like Ruby.  Besides, the idea of some kind of package
management for a programming language is one of the worst ideas ever,
specially when it's a system programming language.  You have no idea
how much pain and suffering it's going to cause the OS developers and
package maintainers.  I can see how the idea might be attractive to
non-*nix users, but most other *nix OSs have some kind of package
management system and searching for, installing, and managing software
is as easy as running a command.


I don't find this counterargument very strong but am attracted to me 
because it entails no work on my part :o).


FWIW other language distributions that position themselves as system 
languages do embed package management. I personally don't think the two 
notions exclude one another (without being an expert). At least, a 
variety of non-standard libraries should avail themselves of a simple 
just works package and versioning amenity.



Andrei


Re: Article discussing Go, could well be D

2011-06-10 Thread Andrew Wiley
On Fri, Jun 10, 2011 at 9:29 AM, Caligo iteronve...@gmail.com wrote:

 On Wed, Jun 8, 2011 at 6:06 PM, Andrei Alexandrescu
 seewebsiteforem...@erdani.org wrote:
  That's it. We need a package management expert on board to either revive
  dsss or another similar project, or define a new package manager
 altogether.
  No yeah I have some code somewhere feel free to copy from it; we need
  professional execution. Then we need to make that tool part of the
 standard
  distribution such that library discovery, installation, and management is
 as
  easy as running a command.
 
  I'm putting this up for grabs. It's an important project of high impact.
  Wondering what you could do to help D? Take this to completion.
 
 
  Andrei
 

 Andrei, I have to respectfully disagree with you on that, sorry.

 D is supposed to be a system programming language, not some scripting
 language like Ruby.  Besides, the idea of some kind of package
 management for a programming language is one of the worst ideas ever,
 specially when it's a system programming language.  You have no idea
 how much pain and suffering it's going to cause the OS developers and
 package maintainers.  I can see how the idea might be attractive to
 non-*nix users, but most other *nix OSs have some kind of package
 management system and searching for, installing, and managing software
 is as easy as running a command.


It doesn't have to be hard if you build the package manager in such a way
that it can be integrated into the OS package manager, whether that means
letting the OS package manager modify the language package manager's
database or just adding a switch that turns your package manager into a dumb
build tool so dependency checks can be left to the OS package manager.
That's my theory, anyway.


Re: Article discussing Go, could well be D

2011-06-10 Thread Andrew Wiley
On Wed, Jun 8, 2011 at 4:06 PM, Andrei Alexandrescu 
seewebsiteforem...@erdani.org wrote:

 On 6/8/11 4:38 PM, Brad Anderson wrote:

 On Wed, Jun 8, 2011 at 12:46 AM, Lars T. Kyllingstad
 public@kyllingen.nospamnet wrote:

http://www.reddit.com/r/programming/comments/hudvd/
the_go_programming_language_or_why_all_clike/

The author presents a wish list for his perfect systems programming
language, and claims that Go is the only one (somewhat) fulfilling it.
With the exception of item 7, the list could well be an
advertisement for
D.

-Lars


 I found the comments on the Hacker News post
 http://news.ycombinator.com/item?id=2631964 about this article more
 interesting.

 Regards,
 Brad Anderson


 Agreed. The top poster does repeat a point made by others: D does fail on
 point 7. Allow me to paste it:

 =
 7. Module Library and Repository
I want all the niceties I have grown used to in scripting languages
 built-in or part of the standard library. A public package repository with a
 decent portable package manager is even better. Typical packages include
 internet protocols, parsing of common syntaxes, GUI, crypto, common
 mathematical algorithms, data processing and so on. (Example: Perl 5 CPAN)
 =

 That's it. We need a package management expert on board to either revive
 dsss or another similar project, or define a new package manager altogether.
 No yeah I have some code somewhere feel free to copy from it; we need
 professional execution. Then we need to make that tool part of the standard
 distribution such that library discovery, installation, and management is as
 easy as running a command.

 I'm putting this up for grabs. It's an important project of high impact.
 Wondering what you could do to help D? Take this to completion.



I'm not an expert, but I've been quietly working on a build tool that I'm
hoping to make into a drop-in replacement for dsss with the incremental
build advantages of xfbuild. I'll toss it on github when it can parse a dsss
config and build from that. Right now, it's basically a very simple xfbuild.
As for the packaging aspect of dsss, I'll have to take a closer look at how
it was originally implemented.


Re: Article discussing Go, could well be D

2011-06-10 Thread Adam D. Ruppe
I think we should go for immutable packages. It makes the
package managed infinitely simpler: if the file is there, use it.
If not, download it, then use it. Since it's immutable, you can
always use your file.

How do you push updates then? Easy - change the name. Put the version
number in the module name.


Re: Article discussing Go, could well be D

2011-06-10 Thread Andrew Wiley
On Fri, Jun 10, 2011 at 11:10 AM, Adam D. Ruppe
destructiona...@gmail.comwrote:

 I think we should go for immutable packages. It makes the
 package managed infinitely simpler: if the file is there, use it.
 If not, download it, then use it. Since it's immutable, you can
 always use your file.

 How do you push updates then? Easy - change the name. Put the version
 number in the module name.


I agree, and this is the approach of Java tools like Maven and Ant/Ivy.
Package a release and label it with the version, then never ever modify it.
This makes it hard to work with the trunk of a project (though an
exceptional case could be made if there's enough justification), but with
enough developmental releases, it seems to work pretty well.


Re: Article discussing Go, could well be D

2011-06-10 Thread Russel Winder
On Fri, 2011-06-10 at 11:29 -0700, Andrew Wiley wrote:
[ . . . ]
 
 I agree, and this is the approach of Java tools like Maven and
 Ant/Ivy. Package a release and label it with the version, then never
 ever modify it. This makes it hard to work with the trunk of a
 project (though an exceptional case could be made if there's enough
 justification), but with enough developmental releases, it seems to
 work pretty well.

Working with trunk is easy, there is the snapshots repository (at least
at Codehaus).  artefacts in this repository are NOT immutable and build
frameworks have a responsibility to check and act accordingly.  Gradle
does, Maven sometimes does, Ant/Ivy tends to get it wrong without extra
help.
-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@russel.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder


signature.asc
Description: This is a digitally signed message part


Re: Article discussing Go, could well be D

2011-06-10 Thread Nick Sabalausky
Jeff Nowakowski j...@dilacero.org wrote in message 
news:ist8n0$1952$1...@digitalmars.com...

 You still didn't need to pass judgment on what is notable or not in their 
 later careers.

Why the hell can't I? Is there some thought police I don't know about?

*He* passed judgement on the guy's earlier career. And *you* said Maybe 
because he has done things of note since? so clearly, *you're* passing 
judgement on his later career.

Oh, I see, passing judgement is only ok when the verdict happens to be 
thumbs up...

If you're unimpressed with something then that's passing judgement, but if 
you are impressed then that's not a judgement at all. What the hell did I 
step into, some New Age/Flower Child-Bizarro-World where only positive 
uplifting ideas are valid ones? Bunch of hippocritical bullcrap.

 It's enough to say that dismissing D as being irrelevant without 
 justification is the problem.

 Also, there's nothing wrong with taking a look at a C-like language 
 because the inventors were heavily involved with the original C and Unix 
 environments. Much like people are encouraged to look at D because of 
 Walter's past work with a C++ compiler and Andrei's C++ experience. As a 
 way to pique interest, it's valid. However, that should not be a 
 determination of a language's actual merit.

Perhaps, but that's not the full extent of the situation here. He labeled D 
as stay[ing] in the spheres of irrelevancy, and the *only* conceivable 
reason for him to have made such an assesement is that D lacks Go's Google, 
Pike, and Thompson. I'm not allowed to be annoyed by that and voice my 
reasons?




Re: Article discussing Go, could well be D

2011-06-10 Thread Nick Sabalausky
Jeff Nowakowski j...@dilacero.org wrote in message 
news:ist7oe$17ge$1...@digitalmars.com...
 On 06/09/2011 03:27 AM, Nick Sabalausky wrote:

 Once again, I wasn't Pike-bashing. You're misinterpreting my words
 and assuming I did. Billions of people, obviously myself included,
 have never done *anything* of real significant note whether recently
 or 800 years ago. And everyone knows that. So how the heck can saying
 some guy who did something significant 40 years ago and hasn't done
 a damn thing of note since even *possibly* be taken as an insult?

 Maybe because he has done things of note since? Who is it for you to
 judge? And then comparing him against Andrei, to boot. I don't want to
 get into a debate on his career, or turn this into an Andre vs Pike
 flamefest, so I won't drag up what people have worked on. My point is
 you didn't have to go there.


Yea, I didn't *have* to go there. I don't *have* post anything here at all. 
So what? That obviously that doesn't imply that I can't or shouldn't.

 Yes, what you did was inflammatory and ad hominem.

No, what I'm starting to do *now* is inflammatory. What I did before is make 
an observational statement which you twisted around into a condemnation. If 
I made a statement about someone (who apperently seems to be some demigod) 
and that statement that didn't involve any gushing over the guy, then tough 
shit, them's the breaks.

As for ad hominem, you don't seem to even understand the concept. What makes 
something an ad hominem fallacy is assigning truth value based on *who* 
agrees with, disagrees with, or is otherwise associated with it. What *I* 
did was make a statement *about* a person. No, that is *not* an ad hominem 
fallacy. And no, just because it wasn't a *good* statement doesn't imply it 
was a *bad* statement. And even if it *were* a bad statement, which it 
clearly wasn't, I don't have to be an elected or appointed judge, or God, or 
anything like that to be entited to have that viewpoint and voice it.




Re: Article discussing Go, could well be D

2011-06-10 Thread Andrei Alexandrescu

On 6/10/11 4:08 PM, Nick Sabalausky wrote:

Jeff Nowakowskij...@dilacero.org  wrote in message
news:ist8n0$1952$1...@digitalmars.com...


You still didn't need to pass judgment on what is notable or not in their
later careers.


Why the hell can't I? Is there some thought police I don't know about?

*He* passed judgement on the guy's earlier career. And *you* said Maybe
because he has done things of note since? so clearly, *you're* passing
judgement on his later career.

Oh, I see, passing judgement is only ok when the verdict happens to be
thumbs up...


Fair point. It corroborates well with the advice I got from a specialist 
in public speaking - avoid saying Good question in preface to your 
response to a question. His argument was that that's a signal you pass 
judgment on the question itself (albeit positively), and others may feel 
uncomfortable that you'd judge their own question poorly.


Anyway, perhaps it's not worth to escalate this any further. My opinion 
(judgment :o)) is that there are things one says over a beer to a 
friend, things that one says to a near-stranger (notorious or not) in a 
social setting, and things that one shares on the net. I think it's 
reasonable to ascribe to human nature that the three sets are different 
without a thought police being necessary.



Andrei


Re: Article discussing Go, could well be D

2011-06-10 Thread Nick Sabalausky
Andrew Wiley wiley.andre...@gmail.com wrote in message 
news:mailman.776.1307728872.14074.digitalmar...@puremagic.com...
 On Fri, Jun 10, 2011 at 9:29 AM, Caligo iteronve...@gmail.com wrote:

 On Wed, Jun 8, 2011 at 6:06 PM, Andrei Alexandrescu
 seewebsiteforem...@erdani.org wrote:
  That's it. We need a package management expert on board to either 
  revive
  dsss or another similar project, or define a new package manager
 altogether.
  No yeah I have some code somewhere feel free to copy from it; we need
  professional execution. Then we need to make that tool part of the
 standard
  distribution such that library discovery, installation, and management 
  is
 as
  easy as running a command.
 
  I'm putting this up for grabs. It's an important project of high 
  impact.
  Wondering what you could do to help D? Take this to completion.
 
 
  Andrei
 

 Andrei, I have to respectfully disagree with you on that, sorry.

 D is supposed to be a system programming language, not some scripting
 language like Ruby.  Besides, the idea of some kind of package
 management for a programming language is one of the worst ideas ever,
 specially when it's a system programming language.  You have no idea
 how much pain and suffering it's going to cause the OS developers and
 package maintainers.  I can see how the idea might be attractive to
 non-*nix users, but most other *nix OSs have some kind of package
 management system and searching for, installing, and managing software
 is as easy as running a command.


 It doesn't have to be hard if you build the package manager in such a way
 that it can be integrated into the OS package manager, whether that means
 letting the OS package manager modify the language package manager's
 database or just adding a switch that turns your package manager into a 
 dumb
 build tool so dependency checks can be left to the OS package manager.
 That's my theory, anyway.


I'd say one critical requirement for a package manager is that it be based 
around the idea of supporting multiple versins of the same lib at the same 
time. If you're just going to re-invent your own little DLL hell you'd 
almost be better off just going with the OS package manager.





Re: Article discussing Go, could well be D

2011-06-10 Thread Nick Sabalausky
Andrei Alexandrescu seewebsiteforem...@erdani.org wrote in message 
news:isovj2$2133$1...@digitalmars.com...

 That's it. We need a package management expert on board to either revive 
 dsss or another similar project, or define a new package manager 
 altogether. No yeah I have some code somewhere feel free to copy from 
 it; we need professional execution. Then we need to make that tool part 
 of the standard distribution such that library discovery, installation, 
 and management is as easy as running a command.

 I'm putting this up for grabs. It's an important project of high impact. 
 Wondering what you could do to help D? Take this to completion.


Just a thought: DVM is already set up to handle managing multiple versions 
of DMD. And I don't think it's a stretch to figure that support for GDC and 
LDC would be natural extensions at some point, plus some dmd.conf/sc.ini 
management functionality (which would be needed for installing D libraries). 
So maybe DVM could be expanded to handle arbitrary D packages as well?




Re: Article discussing Go, could well be D

2011-06-10 Thread Andrei Alexandrescu

On 6/10/11 6:14 PM, Nick Sabalausky wrote:

Andrei Alexandrescuseewebsiteforem...@erdani.org  wrote in message
news:isovj2$2133$1...@digitalmars.com...


That's it. We need a package management expert on board to either revive
dsss or another similar project, or define a new package manager
altogether. No yeah I have some code somewhere feel free to copy from
it; we need professional execution. Then we need to make that tool part
of the standard distribution such that library discovery, installation,
and management is as easy as running a command.

I'm putting this up for grabs. It's an important project of high impact.
Wondering what you could do to help D? Take this to completion.



Just a thought: DVM is already set up to handle managing multiple versions
of DMD. And I don't think it's a stretch to figure that support for GDC and
LDC would be natural extensions at some point, plus some dmd.conf/sc.ini
management functionality (which would be needed for installing D libraries).
So maybe DVM could be expanded to handle arbitrary D packages as well?


I think that's an excellent idea. Jacob, would you be interested in 
working on that?


Andrei


Re: Article discussing Go, could well be D

2011-06-10 Thread Jeff Nowakowski

On 06/10/2011 05:27 PM, Nick Sabalausky wrote:


No, what I'm starting to do *now* is inflammatory. What I did before is make
an observational statement which you twisted around into a condemnation.


Bullshit. It's not an observational statement to pass judgment on a 
man's later career. You make it sound like you're recording astronomical 
position of the stars. Factually, people have noted what both Pike and 
Thompson have done past the 1970s, so your observational statement is 
just an opinion, and a demeaning one.



As for ad hominem, you don't seem to even understand the concept. What makes
something an ad hominem fallacy is assigning truth value based on *who*
agrees with, disagrees with, or is otherwise associated with it. What *I*
did was make a statement *about* a person.


That statement added nothing to the argument. Instead, it subtracted 
from the argument by introducing a contentious point, just like the 
original author did with his sphere of irrelevancy comment. Pike and 
Thompson are notable figures in the history of C and Unix, and there's 
nothing wrong with having more interest in a systems language from them 
because of that. Whether their careers were notable after that is a moot 
and inflammatory point.



I don't have to be an elected or appointed judge, or God, or
anything like that to be entited to have that viewpoint and voice it.


Of course you don't. I never suggested otherwise. However, that doesn't 
make it beyond reproach.


Anyways, this is my last post on the matter.


Re: Article discussing Go, could well be D

2011-06-10 Thread Caligo
On Fri, Jun 10, 2011 at 5:48 PM, Nick Sabalausky a@a.a wrote:
 Andrew Wiley wiley.andre...@gmail.com wrote in message
 news:mailman.776.1307728872.14074.digitalmar...@puremagic.com...
 On Fri, Jun 10, 2011 at 9:29 AM, Caligo iteronve...@gmail.com wrote:

 On Wed, Jun 8, 2011 at 6:06 PM, Andrei Alexandrescu
 seewebsiteforem...@erdani.org wrote:
  That's it. We need a package management expert on board to either
  revive
  dsss or another similar project, or define a new package manager
 altogether.
  No yeah I have some code somewhere feel free to copy from it; we need
  professional execution. Then we need to make that tool part of the
 standard
  distribution such that library discovery, installation, and management
  is
 as
  easy as running a command.
 
  I'm putting this up for grabs. It's an important project of high
  impact.
  Wondering what you could do to help D? Take this to completion.
 
 
  Andrei
 

 Andrei, I have to respectfully disagree with you on that, sorry.

 D is supposed to be a system programming language, not some scripting
 language like Ruby.  Besides, the idea of some kind of package
 management for a programming language is one of the worst ideas ever,
 specially when it's a system programming language.  You have no idea
 how much pain and suffering it's going to cause the OS developers and
 package maintainers.  I can see how the idea might be attractive to
 non-*nix users, but most other *nix OSs have some kind of package
 management system and searching for, installing, and managing software
 is as easy as running a command.


 It doesn't have to be hard if you build the package manager in such a way
 that it can be integrated into the OS package manager, whether that means
 letting the OS package manager modify the language package manager's
 database or just adding a switch that turns your package manager into a
 dumb
 build tool so dependency checks can be left to the OS package manager.
 That's my theory, anyway.


 I'd say one critical requirement for a package manager is that it be based
 around the idea of supporting multiple versins of the same lib at the same
 time. If you're just going to re-invent your own little DLL hell you'd
 almost be better off just going with the OS package manager.





I think what you are describing is called atomic builds.  I think any
package manager should have it.  I only know of Nix that supports such
a feature.  http://nixos.org/nix/


Re: Article discussing Go, could well be D

2011-06-09 Thread Daniel Gibson
Am 09.06.2011 07:43, schrieb Nick Sabalausky:
 Robert Clipsham rob...@octarineparrot.com wrote in message 
 news:isovbb$20ea$1...@digitalmars.com...
 On 08/06/2011 22:46, Nick Sabalausky wrote:
 Walter Brightnewshou...@digitalmars.com  wrote in message
 news:isopmf$1lov$1...@digitalmars.com...
 On 6/8/2011 1:12 PM, Nick Sabalausky wrote:
 But yea, maybe I will go ahead and just do it...

 I think it's important that you do.

 Hmm, well, I'm trying, but this time I can't even get the register link 
 to
 work at all.  I turn on JS, reload, it sits there loading for about 
 three
 minutes (as opposed to a few seconds without JS), and after all that,
 clicking the register link still doesn't do anything at all.

 Seriously, how completely incompetent do they have to be to screw up
 something as incredibly basic as a link? Bunch of morons over there.

 Meh, maybe when someone makes a reddit alternative that actually fucking
 works I'll use it...

 To be fair, they probably don't test in Firefox 2 any more, given that 
 there have been numerous releases since and it's now unsupported.

 
 1. It's a link for fuck's sake. It doesn't take IE9/Opera11/FF4 for a 
 trivial damn a href=../a to work properly. The fucking things have 
 worked *exactly the same* since Mosaic (save for the frame extensions that 
 nobody should ever use anyway). There *is no* cross-browser testing needed 
 to get it right. There's barely any *thinking* needed to get it right. I 
 could teach my sister to get it right.
 
 2. If Mozilla ever decides to put out a successor to FF2 that isn't shit, 
 and actually *does* follow the customizability that they constantly 
 *pretend* to have, then I'll happily upgrade.
 
 Besides, every time I come across some self-important asshole of a site that 
 feels it's their duty to try to tell me what fucking browser I should be 
 using, it makes me want to stick with FF2 that much more. They're so anxious 
 to cram half-assed under-engineered so-called-technologies down my throat? 
 Well then fuck them. I'd go back to FF1 if I thought doing so would give 
 them a hard time. (At least it looks nicer out-of-the-box without having to 
 install winestripe.)
 
 It's not my fault everyone insists on making their software worse with each 
 release.
 

I thought you were switching to Arora?
FF2 is not just outdated and incompatible with some websites, it's not
maintained anymore (since 2008 I think) and most probably contains known
(and actively exploited) security holes (some of them may even work with
JS disabled).

Cheers,
- Daniel


Re: Article discussing Go, could well be D

2011-06-09 Thread Jeff Nowakowski

On 06/08/2011 03:55 PM, Nick Sabalausky wrote:


It's not that I have anything against Pike or Thompson. I don't. I
just think that as dumb as it is to use ad hominem reasoning in the
first place, it's even dumber to invoke it in such an anachronistic
way.


Then don't do it yourself. Your Pike bashing was uncalled for. The
author didn't say anything about Pike except to mention him as one of
the original developers. If he was gushing over the man or saying Go is
worthwhile because of him, then you'd have a point.


Re: Article discussing Go, could well be D

2011-06-09 Thread Nick Sabalausky
Adam D. Ruppe destructiona...@gmail.com wrote in message 
news:isp7bj$2fmh$1...@digitalmars.com...

 (Sometimes I think people forget that D has a *bigger* library
 ecosystem than C, since every C library is also usable from D!
 And thanks to D features, like scope guards and array ops, they
 tend to be pretty easy to use straight up too.)


Yea. Just recently I was porting DVM to Windows, which required accessing 
the registry. Tango didn't seem to have any real registry functions, just 
some Win32 bindings, and it didn't take long at all before I had both a 
heavily D-ified low-level wrapper (complete with a fairly robust conversion 
system for windows error code - D exception), and a nice easy high-level 
RAII struct interface to go on top of it. And most of the work came from 
figuring out all the details of the Win32's registry API, which I had never 
even dealt with before.

I ended up feeling doing the same thing in C/C++ would have been very 
painful indeed, and it's a C-native API!




Re: Article discussing Go, could well be D

2011-06-09 Thread Nick Sabalausky
Daniel Gibson metalcae...@gmail.com wrote in message 
news:ispnrd$1rc$1...@digitalmars.com...
 Am 09.06.2011 07:43, schrieb Nick Sabalausky:
 Robert Clipsham rob...@octarineparrot.com wrote in message
 news:isovbb$20ea$1...@digitalmars.com...
 On 08/06/2011 22:46, Nick Sabalausky wrote:
 Walter Brightnewshou...@digitalmars.com  wrote in message
 news:isopmf$1lov$1...@digitalmars.com...
 On 6/8/2011 1:12 PM, Nick Sabalausky wrote:
 But yea, maybe I will go ahead and just do it...

 I think it's important that you do.

 Hmm, well, I'm trying, but this time I can't even get the register 
 link
 to
 work at all.  I turn on JS, reload, it sits there loading for about
 three
 minutes (as opposed to a few seconds without JS), and after all that,
 clicking the register link still doesn't do anything at all.

 Seriously, how completely incompetent do they have to be to screw up
 something as incredibly basic as a link? Bunch of morons over there.

 Meh, maybe when someone makes a reddit alternative that actually 
 fucking
 works I'll use it...

 To be fair, they probably don't test in Firefox 2 any more, given that
 there have been numerous releases since and it's now unsupported.


 1. It's a link for fuck's sake. It doesn't take IE9/Opera11/FF4 for a
 trivial damn a href=../a to work properly. The fucking things 
 have
 worked *exactly the same* since Mosaic (save for the frame extensions 
 that
 nobody should ever use anyway). There *is no* cross-browser testing 
 needed
 to get it right. There's barely any *thinking* needed to get it right. I
 could teach my sister to get it right.

 2. If Mozilla ever decides to put out a successor to FF2 that isn't shit,
 and actually *does* follow the customizability that they constantly
 *pretend* to have, then I'll happily upgrade.

 Besides, every time I come across some self-important asshole of a site 
 that
 feels it's their duty to try to tell me what fucking browser I should be
 using, it makes me want to stick with FF2 that much more. They're so 
 anxious
 to cram half-assed under-engineered so-called-technologies down my 
 throat?
 Well then fuck them. I'd go back to FF1 if I thought doing so would give
 them a hard time. (At least it looks nicer out-of-the-box without having 
 to
 install winestripe.)

 It's not my fault everyone insists on making their software worse with 
 each
 release.


 I thought you were switching to Arora?
 FF2 is not just outdated and incompatible with some websites, it's not
 maintained anymore (since 2008 I think) and most probably contains known
 (and actively exploited) security holes (some of them may even work with
 JS disabled).


Meh, In the process of, really. Which is unfortunate. I often use Arora 
for GitHub and BitBucket (I really don't like BitBucket though, GitHub and 
Gitorious are much better even though I'm an Hg guy, but now I'm digressing 
even more...)

But Arora is still really lacking in some things, for instance, *really* bad 
handling of SSL certs that aren't 100% perfect (such as self-signed ones, 
which prevents me from using it for a lot of dev work on my local machine). 
And even though it's WebKit, which I thought was supposed to be really fast, 
it's actually just about as slow to load a page as FF2. Surprisingly slow. 
And I've come across a number of missing settings that, well, that I really 
miss.

It's by far the most promising-looking browser out there (Hell, it's the 
only one still around with a UI that doesn't completely look like ass - 
first it was music players and disc authoring that all turned fisher-price, 
and now browsers, too, especially Chrome: my god what were they thinking on 
that horrid mess? Damn thing manages to make WinAmp look good). But there's 
a lot of contributions I'd want to make to Arora before I'd want to 
completely switch from FF2. Of course, that's easier said than done since 1. 
I'm spread way too thin already, and 2. It's C++ instead of something nice 
and modern like D (which probably has something to do with the occasional 
crashes I get with Arora).





Re: Article discussing Go, could well be D

2011-06-09 Thread Nick Sabalausky
Adam D. Ruppe destructiona...@gmail.com wrote in message 
news:isovu6$21k6$1...@digitalmars.com...
I find it interesting that so many people complain about the lack
 of libraries.


 software library: a way to waste a programmer's time

 reinventing wheels: a lie some programmers, who are paid by the
 hour, perpetuated so they can justify the use of software libraries

 The project could have been done in one day if he just sat down and
 got to work. Instead, he made up some bullshit about how reinventing
 wheels is bad.

 Thus, he now spends 3 days searching for a library. Another 5
 days trying to make it work. Another 10 days reading the
 godawful documentation. A day bitching about the suckiness on the
 internet.

 Then, finally, two days to integrate the library into his project.
 For bonus points, force the end users to install it too, because
 the more time wasted, the better.

Yup. There's definitely a lot of cases where pre-made libs are a huge help 
and a much better option, but I've gotten really fed up with the Anti-NIH 
Holy Crusaders, largely for the reasons you stated above. (Another good 
reason to actually embrace NIH-syndrome instead knee-jerking away from it 
out of principle is for mission-critical things where you can't afford the 
possibility of being left at the mercey of some outside group.)

What you said above is also why I *strongly* believe that good (and I mean 
*good*) documentation is every bit as important as actually 
writing/releasing a tool or library in the first place. I've seen so much 
already-made work that's rendered barely-usable due to less-than-stellar 
documentation (or even worse: bad or non-existant documentation). What's the 
point out of putting stuff out there if nobody knows how to use it? What's 
the point of using something if figuring it out and getting it to work takes 
about as much effort as DIY? That's why (for public projects anyway) I force 
myself, even if I don't want to, to put all the effort I need to into 
documentation to make things as easy as possible. Otherwise, all that effort 
writing the code would likely have been for nothing anyway.






Re: Article discussing Go, could well be D

2011-06-09 Thread Nick Sabalausky
Jeff Nowakowski j...@dilacero.org wrote in message 
news:ispo9o$f4e$1...@digitalmars.com...
 On 06/08/2011 03:55 PM, Nick Sabalausky wrote:

 It's not that I have anything against Pike or Thompson. I don't. I
 just think that as dumb as it is to use ad hominem reasoning in the
 first place, it's even dumber to invoke it in such an anachronistic
 way.

 Then don't do it yourself. Your Pike bashing was uncalled for. The
 author didn't say anything about Pike except to mention him as one of
 the original developers. If he was gushing over the man or saying Go is
 worthwhile because of him, then you'd have a point.

Once again, I wasn't Pike-bashing. You're misinterpreting my words and 
assuming I did. Billions of people, obviously myself included, have never 
done *anything* of real significant note whether recently or 800 years ago. 
And everyone knows that. So how the heck can saying some guy who did 
something significant 40 years ago and hasn't done a damn thing of note 
since even *possibly* be taken as an insult? So what if he hasn't? Most 
people don't do a damn thing of note their entire lives. I'll probably never 
do a damn thing of note my entire life (even as much as I try). Who cares? 
It's just fact (well, aside from the definition of noteworthy being a bit 
vague). The only thing my statement *could* rationally be taken as is that 
I'm just simply *not* praising him. Not praising someone is hardly the same 
as insulting them (unless you consider them some deity).

Again, my entire point for even bringing it up was that the association with 
Google/Pike/Thompson (plus all the buzz around the language, which all 
boils down to little more than It's Google/Pike/Thompson! anyway) seems to 
be his only real reason for giving Issue 9 a real chance and dismissing D 
outright. Which is, yes, anachronistic ad hominem reasoning. And considering 
the actual realities of both D and Issue 9, I can't think of anything else 
besides that buzz/fame factor for why he would reject D as being so much 
more irrelevant than Issue 9.




Re: Article discussing Go, could well be D

2011-06-09 Thread Nick Sabalausky
Jeff Nowakowski j...@dilacero.org wrote in message 
news:ispo9o$f4e$1...@digitalmars.com...
 On 06/08/2011 03:55 PM, Nick Sabalausky wrote:

 It's not that I have anything against Pike or Thompson. I don't. I
 just think that as dumb as it is to use ad hominem reasoning in the
 first place, it's even dumber to invoke it in such an anachronistic
 way.

 Then don't do it yourself. Your Pike bashing was uncalled for. The
 author didn't say anything about Pike except to mention him as one of
 the original developers. If he was gushing over the man or saying Go is
 worthwhile because of him, then you'd have a point.

And no, the author wasn't *just* mentioning him as one one the original 
creators:

I was a bit skeptical when I read about Google's new programming language. 
I simply ignored the news. After all, the next New Great Language is just 
around the corner. Some of them enjoy a phase of hype, but then fade again, 
others stay in the spheres of irrelevancy [Linked to the D homepage], while 
yet others will be ready for public consumption any decade now.

Some time later I stumbled over it again. This time I took a closer look. 
One thing I didn't notice at first: One of the inventors is Ken Thompson of 
Unix and Plan9 fame, and he was indirectly involved with C as well. Now if a 
new programming language is designed by someone who already served in the 
trenches of the great mainframe era, maybe there is something to it.

So he flat out *states* that he passed over D and gave Issue 9 a try 
*because* of what was done decades ago by one of the people involved.





Re: Article discussing Go, could well be D

2011-06-09 Thread Adam Ruppe
Nick Sabalausky wrote:
 (or even worse: bad or non-existant documentation)

Actually, I think no doc is better than bad doc. At least with no
docs, you're immediately informed to not waste your time trying to
read it!

I work with a lot of web apps. I wish they were completely undocumented;
that'd be better than spending an hour reading something just to find
it is completely wrong!

(The worst part is we're conditioned to think other people's code is
generally more correct than your code. So when a problem comes up, you
blame yourself and spend hours tilting at windmills...)


Re: Article discussing Go, could well be D

2011-06-08 Thread Nick Sabalausky
Walter Bright newshou...@digitalmars.com wrote in message 
news:isopmf$1lov$1...@digitalmars.com...
 On 6/8/2011 1:12 PM, Nick Sabalausky wrote:
 But yea, maybe I will go ahead and just do it...

 I think it's important that you do.

Hmm, well, I'm trying, but this time I can't even get the register link to 
work at all.  I turn on JS, reload, it sits there loading for about three 
minutes (as opposed to a few seconds without JS), and after all that, 
clicking the register link still doesn't do anything at all.

Seriously, how completely incompetent do they have to be to screw up 
something as incredibly basic as a link? Bunch of morons over there.

Meh, maybe when someone makes a reddit alternative that actually fucking 
works I'll use it...




Re: Article discussing Go, could well be D

2011-06-08 Thread Brad Anderson
On Wed, Jun 8, 2011 at 12:46 AM, Lars T. Kyllingstad
public@kyllingen.nospamnet wrote:

 http://www.reddit.com/r/programming/comments/hudvd/
 the_go_programming_language_or_why_all_clike/

 The author presents a wish list for his perfect systems programming
 language, and claims that Go is the only one (somewhat) fulfilling it.
 With the exception of item 7, the list could well be an advertisement for
 D.

 -Lars


I found the comments on the Hacker News post 
http://news.ycombinator.com/item?id=2631964 about this article more
interesting.

Regards,
Brad Anderson


Re: Article discussing Go, could well be D

2011-06-08 Thread Robert Clipsham

On 08/06/2011 22:46, Nick Sabalausky wrote:

Walter Brightnewshou...@digitalmars.com  wrote in message
news:isopmf$1lov$1...@digitalmars.com...

On 6/8/2011 1:12 PM, Nick Sabalausky wrote:

But yea, maybe I will go ahead and just do it...


I think it's important that you do.


Hmm, well, I'm trying, but this time I can't even get the register link to
work at all.  I turn on JS, reload, it sits there loading for about three
minutes (as opposed to a few seconds without JS), and after all that,
clicking the register link still doesn't do anything at all.

Seriously, how completely incompetent do they have to be to screw up
something as incredibly basic as a link? Bunch of morons over there.

Meh, maybe when someone makes a reddit alternative that actually fucking
works I'll use it...


To be fair, they probably don't test in Firefox 2 any more, given that 
there have been numerous releases since and it's now unsupported.


--
Robert
http://octarineparrot.com/


Re: Article discussing Go, could well be D

2011-06-08 Thread Andrei Alexandrescu

On 6/8/11 4:38 PM, Brad Anderson wrote:

On Wed, Jun 8, 2011 at 12:46 AM, Lars T. Kyllingstad
public@kyllingen.nospamnet wrote:

http://www.reddit.com/r/programming/comments/hudvd/
the_go_programming_language_or_why_all_clike/

The author presents a wish list for his perfect systems programming
language, and claims that Go is the only one (somewhat) fulfilling it.
With the exception of item 7, the list could well be an
advertisement for
D.

-Lars


I found the comments on the Hacker News post
http://news.ycombinator.com/item?id=2631964 about this article more
interesting.

Regards,
Brad Anderson


Agreed. The top poster does repeat a point made by others: D does fail 
on point 7. Allow me to paste it:


=
7. Module Library and Repository
I want all the niceties I have grown used to in scripting languages 
built-in or part of the standard library. A public package repository 
with a decent portable package manager is even better. Typical packages 
include internet protocols, parsing of common syntaxes, GUI, crypto, 
common mathematical algorithms, data processing and so on. (Example: 
Perl 5 CPAN)

=

That's it. We need a package management expert on board to either revive 
dsss or another similar project, or define a new package manager 
altogether. No yeah I have some code somewhere feel free to copy from 
it; we need professional execution. Then we need to make that tool part 
of the standard distribution such that library discovery, installation, 
and management is as easy as running a command.


I'm putting this up for grabs. It's an important project of high impact. 
Wondering what you could do to help D? Take this to completion.



Andrei


Re: Article discussing Go, could well be D

2011-06-08 Thread Adam D. Ruppe
I find it interesting that so many people complain about the lack
of libraries.


software library: a way to waste a programmer's time

reinventing wheels: a lie some programmers, who are paid by the
hour, perpetuated so they can justify the use of software libraries

The project could have been done in one day if he just sat down and
got to work. Instead, he made up some bullshit about how reinventing
wheels is bad.

Thus, he now spends 3 days searching for a library. Another 5
days trying to make it work. Another 10 days reading the
godawful documentation. A day bitching about the suckiness on the
internet.

Then, finally, two days to integrate the library into his project.
For bonus points, force the end users to install it too, because
the more time wasted, the better.


Re: Article discussing Go, could well be D

2011-06-08 Thread Daniel Gibson
Am 09.06.2011 01:17, schrieb Adam D. Ruppe:
 I find it interesting that so many people complain about the lack
 of libraries.
 
 
 software library: a way to waste a programmer's time
 
 reinventing wheels: a lie some programmers, who are paid by the
 hour, perpetuated so they can justify the use of software libraries
 
 The project could have been done in one day if he just sat down and
 got to work. Instead, he made up some bullshit about how reinventing
 wheels is bad.
 
 Thus, he now spends 3 days searching for a library. Another 5
 days trying to make it work. Another 10 days reading the
 godawful documentation. A day bitching about the suckiness on the
 internet.
 
 Then, finally, two days to integrate the library into his project.
 For bonus points, force the end users to install it too, because
 the more time wasted, the better.

*g*

This really depends on what you want the library to do. If you can
implement it yourself in a day.. great. Especially using fat libraries
for trivial features (= you just use a very small part of it) is stupid.

OTOH libraries are (hopefully) tested and stable - even if you can hack
together similar functionality in a day or two, you may still have bugs
that could be avoided by using a library.

And if what you want is non-trivial it gets much worse.. you'd maybe
need weeks to implement it and much much longer until it's really stable.

I guess few people really want to reimplement OpenSSLs functionality
(even though the library is a PITA to use as far as I know) - it'd take
a lot of effort and you'd rather want to use a well tested library for
critical security stuff.

Another example is GUI libraries - sure, maybe you can write one
yourself, but you usually want one that integrates with the desktop
environment you're using, so you probably either end up either using the
C-bindings of an existent GUI library or a D-wrapper thereof.

So I can understand that people want better library support for D -
especially for non-trivial stuff.
Is there any crossplatform GUI lib that is really ready to use yet? (OK,
maybe GtkD, but many people dislike Gtk, especially when they're using
Windows, OSX or KDE. QtD and DWT aren't that stable yet AFAIK.)
What about crypto stuff?
And there certainly are other examples for libraries providing features
you usually don't want to implement yourself.

Cheers,
- Daniel


Re: Article discussing Go, could well be D

2011-06-08 Thread Andrej Mitrovic
C libraries are great. They're flat and have little overhead.You can
build your own OOP/whatever-oriented interfaces around the library,
referencing just the functions that you need. Simple stuff compared to
some monsters like QtD.


Re: Article discussing Go, could well be D

2011-06-08 Thread Daniel Gibson
Am 09.06.2011 03:31, schrieb Andrej Mitrovic:
 C libraries are great. They're flat and have little overhead.You can
 build your own OOP/whatever-oriented interfaces around the library,
 referencing just the functions that you need. Simple stuff compared to
 some monsters like QtD.

You still have to generate/write the D bindings (and generating only
works on windows) before you can use them.
This may not be too hard in most cases, but certainly discourages
newbies who just want to have ready to use libs.

And in some cases it can be hard, like when non-trivial macros are used
(like for some unix socket stuff), or when there are a lot of custom
types (and you can't just generate the bindings but have to write them
yourself). In these cases it may sometimes be easier to write the code
in C, exposing an even simpler interface suitable for your needs and
call your own C functions from D (that's what I've done for
aforementioned unix socket stuff: passing socket/file descriptors to
another process needs those cmsg macros and structs).

But stuff like this probably discourages newbies even more, especially
when they're not coming from C/C++ but Java or Python or something.

Cheers,

- Daniel



Re: Article discussing Go, could well be D

2011-06-08 Thread Daniel Gibson
Am 09.06.2011 03:24, schrieb Adam D. Ruppe:
 OTOH libraries are (hopefully) tested and stable
 
 That's what they *want* you to think! :-P
 
 Of course, I'm exaggerating a little, but I stand by it in many
 cases: yeah, there's some hard stuff like crypto and gui, but
 most stuff isn't that bad.
 

I agree.
Something else that comes to mind are database bindings - native D
bindings that allow you to use D types and integrate well with ranges
etc would certainly be preferable to using raw C bindings.

 For that hard stuff though, there's always C libraries. The
 popular C libs are generally fairly stable and not hard to use
 in D, license permitting.
 

As long as not too many macros or custom types are involved and getting
the D bindings isn't too hard

 (Sometimes I think people forget that D has a *bigger* library
 ecosystem than C, since every C library is also usable from D!
 And thanks to D features, like scope guards and array ops, they
 tend to be pretty easy to use straight up too.)
 
 
 Another example is GUI libraries
 
 Aye, GUI is the biggest example of hard stuff to implement well
 that's also hard to use from C.
 
 Crypto isn't bad since C libraries implement them with a pretty
 easy interface; it's generally just a handful of functions in
 my experience. (Contrast to guis where it's often hundreds of
 classes each with dozens of methods and callbacks... just writing
 out their prototypes can take a while!)

Ok


Re: Article discussing Go, could well be D

2011-06-08 Thread Jonathan M Davis
On 2011-06-08 18:50, Daniel Gibson wrote:
 Am 09.06.2011 03:31, schrieb Andrej Mitrovic:
  C libraries are great. They're flat and have little overhead.You can
  build your own OOP/whatever-oriented interfaces around the library,
  referencing just the functions that you need. Simple stuff compared to
  some monsters like QtD.
 
 You still have to generate/write the D bindings (and generating only
 works on windows) before you can use them.
 This may not be too hard in most cases, but certainly discourages
 newbies who just want to have ready to use libs.
 
 And in some cases it can be hard, like when non-trivial macros are used
 (like for some unix socket stuff), or when there are a lot of custom
 types (and you can't just generate the bindings but have to write them
 yourself). In these cases it may sometimes be easier to write the code
 in C, exposing an even simpler interface suitable for your needs and
 call your own C functions from D (that's what I've done for
 aforementioned unix socket stuff: passing socket/file descriptors to
 another process needs those cmsg macros and structs).
 
 But stuff like this probably discourages newbies even more, especially
 when they're not coming from C/C++ but Java or Python or something.

Yeah. It's fantastic that D can call C code, and it opens up a lot of 
libraries to us. But for a lot of programmers (particularly non-C/C++ 
programmers), that's a complete non-starter. They expect the libraries in D, 
not C, and requiring them to deal with C bindings is more than they're willing 
to put up with - particularly if they don't understand how easy it is to call 
C code, since you can call C code in many other languages, but it's generally 
much harder. And for many programmers from languages such as python and Java, 
they're used to having a _ton_ of libraries which do a ton of stuff for them 
where it's much harder to find C libraries which do it or it's much harder to 
do it with the C libraries than it is in those languages.

So, being able to call C code is fantastic and buys us a lot, but for a lot of 
programmers, that just doesn't cut it. They want the libraries to be in D.

- Jonathan M Davis


Re: Article discussing Go, could well be D

2011-06-08 Thread Andrej Mitrovic
It's a systems programming language, no? ^_^

@Daniel: I completely forgot that htod is only a windows goodie. But
can't it be ran via wine?


Re: Article discussing Go, could well be D

2011-06-08 Thread Brad Roberts


On Jun 8, 2011, at 7:18 PM, Jonathan M Davis jmdavisp...@gmx.com wrote:

 So, being able to call C code is fantastic and buys us a lot, but for a lot 
 of 
 programmers, that just doesn't cut it. They want the libraries to be in D.
 
 - Jonathan M Davis

Close, but I think the real want / need is for the library to be easy to use.  
Language is a distant second.

Re: Article discussing Go, could well be D

2011-06-08 Thread Daniel Gibson
Am 09.06.2011 04:24, schrieb Andrej Mitrovic:
 It's a systems programming language, no? ^_^
 

Yeah, but it's also general purpose and supposed to be as easily usable
as Java or C#, isn't it? ;)

 @Daniel: I completely forgot that htod is only a windows goodie. But
 can't it be ran via wine?

I don't know.
I guess it won't work too well if the headers you're trying to convert
include system headers with system specific defines etc (these defines
AFAIK end up in really system specific gcc headers that gcc choses
depending on your architecture and depending on if you use -m32 etc).
Maybe it works if you do the preprocessing with gcc -E (Stop after the
preprocessing stage) and feed the result to htod.

Cheers,
- Daniel


Re: Article discussing Go, could well be D

2011-06-08 Thread Adam D. Ruppe
 Something else that comes to mind are database bindings - native D
 bindings that allow you to use D types and integrate well with
 ranges etc would certainly be preferable to using raw C bindings.

Yes, indeed. I wrapped the C database functions for my own use
to get that kind of stuff. But that's not hard to do.

 As long as not too many macros or custom types are involved and
 getting the D bindings isn't too hard

Meh, it's like ten minutes of cut+paste, less if you give up type
safety and use in void* everywhere or only use a fraction of the
lib.


Re: Article discussing Go, could well be D

2011-06-08 Thread Adam D. Ruppe
 They want the libraries to be in D.

I don't mind writing the prototypes myself, but I've thought in the
past that simply putting some common C lib's bindings in etc.c.* -
not the actual implementation or binary, just the header, to minimize
copyright impact - might help this.

While a lot of people still seem to fear the C interface, it might
help lower the bar for both direct use and third party wrappers.


Re: Article discussing Go, could well be D

2011-06-08 Thread Jonathan M Davis
On 2011-06-08 19:32, Brad Roberts wrote:
 On Jun 8, 2011, at 7:18 PM, Jonathan M Davis jmdavisp...@gmx.com wrote:
  So, being able to call C code is fantastic and buys us a lot, but for a
  lot of programmers, that just doesn't cut it. They want the libraries to
  be in D.
  
  - Jonathan M Davis
 
 Close, but I think the real want / need is for the library to be easy to
 use.  Language is a distant second.

True, but that generally means that the libraries be written in D. A well 
written, easy-to-use C library might be more desirable than a poorly written, 
hard-to-use D library, but in general, if the libraries are well written, then 
it's going to be easier to use pure D code than it is to use C code. And a lot 
of people are going to think that C code is harder to use in D than it 
actually is before they actually do it, so it's generally going to seem worse 
to D newbies that it really is. So, in general, people are going to be looking 
for libraries to be written in D rather than having to figure out how to 
interface with C libraries.

- Jonathan M Davis


Re: Article discussing Go, could well be D

2011-06-08 Thread Nick Sabalausky
Robert Clipsham rob...@octarineparrot.com wrote in message 
news:isovbb$20ea$1...@digitalmars.com...
 On 08/06/2011 22:46, Nick Sabalausky wrote:
 Walter Brightnewshou...@digitalmars.com  wrote in message
 news:isopmf$1lov$1...@digitalmars.com...
 On 6/8/2011 1:12 PM, Nick Sabalausky wrote:
 But yea, maybe I will go ahead and just do it...

 I think it's important that you do.

 Hmm, well, I'm trying, but this time I can't even get the register link 
 to
 work at all.  I turn on JS, reload, it sits there loading for about 
 three
 minutes (as opposed to a few seconds without JS), and after all that,
 clicking the register link still doesn't do anything at all.

 Seriously, how completely incompetent do they have to be to screw up
 something as incredibly basic as a link? Bunch of morons over there.

 Meh, maybe when someone makes a reddit alternative that actually fucking
 works I'll use it...

 To be fair, they probably don't test in Firefox 2 any more, given that 
 there have been numerous releases since and it's now unsupported.


1. It's a link for fuck's sake. It doesn't take IE9/Opera11/FF4 for a 
trivial damn a href=../a to work properly. The fucking things have 
worked *exactly the same* since Mosaic (save for the frame extensions that 
nobody should ever use anyway). There *is no* cross-browser testing needed 
to get it right. There's barely any *thinking* needed to get it right. I 
could teach my sister to get it right.

2. If Mozilla ever decides to put out a successor to FF2 that isn't shit, 
and actually *does* follow the customizability that they constantly 
*pretend* to have, then I'll happily upgrade.

Besides, every time I come across some self-important asshole of a site that 
feels it's their duty to try to tell me what fucking browser I should be 
using, it makes me want to stick with FF2 that much more. They're so anxious 
to cram half-assed under-engineered so-called-technologies down my throat? 
Well then fuck them. I'd go back to FF1 if I thought doing so would give 
them a hard time. (At least it looks nicer out-of-the-box without having to 
install winestripe.)

It's not my fault everyone insists on making their software worse with each 
release.