Live data from Hacker News

I Botched a Perl 6 Release

perl6.party

51–59 of 59 posts

Re: I Botched a Perl 6 Release

#51
post #4

Maybe it's just me, but I've worked with a handful of source control systems over the years, and none of them (not even git) has done a terrific job of encapsulating the #1 scenario, which is "I copied some stuff locally and changed it and now I want to put it back on the server so other people can get my stuff (and of course I want undo in case I mess up and merge in case we both change the same file)" without inven…

Git has done a terrific job of it. It just doesn't do a great job at communicating what it does, how it does it, why it does it that way and how to achieve those results. In other word, git's great internally... externally it just has a poor UI. But what's new there.

Every source control system has had a terrible UI. I mean, most of them don't even really make an attempt. (Unless you count things like Time Machine or Microsoft Word's revision tracking, those are both acceptably decent.)

But Git is a whole 'nother layer of awful beyond all of them.

Another one of the "reasons I can't get along with Linux users" is that they see something like Git and just kind of shrug and deal with it instead of getting angry that we have a piece of basically brand new software that was built without even attempting to incorporate any UI concepts we knew about at the time it was written. And since it's a CLI that about a thousand other scripts and tools consume (instead of having proper separation of the human interface from the machine interface), it basically cannot be improved at this point, not without breaking thousands of third-party tools. Sigh.

Re: I Botched a Perl 6 Release

#52
post #4

Maybe it's just me, but I've worked with a handful of source control systems over the years, and none of them (not even git) has done a terrific job of encapsulating the #1 scenario, which is "I copied some stuff locally and changed it and now I want to put it back on the server so other people can get my stuff (and of course I want undo in case I mess up and merge in case we both change the same file)" without inven…

Git has done a terrific job of it. It just doesn't do a great job at communicating what it does, how it does it, why it does it that way and how to achieve those results. In other word, git's great internally... externally it just has a poor UI. But what's new there.

[deleted]

Re: I Botched a Perl 6 Release

#53

Earlier quoted context omitted.

Git has done a terrific job of it. It just doesn't do a great job at communicating what it does, how it does it, why it does it that way and how to achieve those results. In other word, git's great internally... externally it just has a poor UI. But what's new there.

Every source control system has had a terrible UI. I mean, most of them don't even really make an attempt. (Unless you count things like Time Machine or Microsoft Word's revision tracking, those are both acceptably decent.) But Git is a whole 'nother layer of awful beyond all of them. Another one of the "reasons I can't get along with Linux users" is that they see something like Git and just kind of shrug and deal wi…

That's pretty much true of the entire baroque edifice of unix-based CLI tools. They are what they are, and they can't really change much. Its an increasing hill to climb to become proficient, and those already comfortable have no incentive to change it.

Re: I Botched a Perl 6 Release

#54

Earlier quoted context omitted.

Git has done a terrific job of it. It just doesn't do a great job at communicating what it does, how it does it, why it does it that way and how to achieve those results. In other word, git's great internally... externally it just has a poor UI. But what's new there.

I think it's a problem that you don't need to know Git that well to use it productively. Once you get the basic commands you can pretty much put away Git's documentation for a few years until something goes particularly wrong. It's been on my "list" for a long time now to deep dive into it but I've just never had the impetus to do so despite the fact that I use Git every single day.

If Git were well-designed, it'd be free of rough edges and "gotchas", and it would teach you how to use it as you used it by making use of discoverability. If Git were a well-engineered piece of software, it wouldn't even have a manual (certainly not a "required reading" manual).

Re: I Botched a Perl 6 Release

#55

Earlier quoted context omitted.

Every source control system has had a terrible UI. I mean, most of them don't even really make an attempt. (Unless you count things like Time Machine or Microsoft Word's revision tracking, those are both acceptably decent.) But Git is a whole 'nother layer of awful beyond all of them. Another one of the "reasons I can't get along with Linux users" is that they see something like Git and just kind of shrug and deal wi…

That's pretty much true of the entire baroque edifice of unix-based CLI tools. They are what they are, and they can't really change much. Its an increasing hill to climb to become proficient, and those already comfortable have no incentive to change it.

Which is awful, because there's nothing stopping usability development in CLI environments (look at Cortana or Siri, for example, or to a lesser extent PowerShell) except that awful stagnation.

People shouldn't have to bend their brain to work with a machine. The machine should be designed to work with human brains.

And to be that snarky person for a second: I've heard a lot of people who actually love Linux CLIs still complaining about Git's weird-ass behaviors. https://stevebennett.me/2012/02/24/10-things-i-hate-about-gi...

Re: I Botched a Perl 6 Release

#56
post #3

Always wondered how coding in Perl is, guess I will have some fun with it tomorrow :)

Perl is a great language. I haven't had an op to use 6 yet but 5 is great for small programs. The big problem with Perl is it requires discipline to prevent creating a mess for your team or eventual successor.

I completely agree with you. Perl is absolutely terrible for basic oo. Basic getters and setters needs the moose module which instantly slows down your code base beyond.

I'm a very competent oo perl developer. I recently wrote a complex large platform in Perl5. It's simply not good enough.

In addition cpan is like walking the dungeons of moria. amazing relics of complexity frozen in time.

Re: I Botched a Perl 6 Release

#58

Earlier quoted context omitted.

Perl is a great language. I haven't had an op to use 6 yet but 5 is great for small programs. The big problem with Perl is it requires discipline to prevent creating a mess for your team or eventual successor.

I completely agree with you. Perl is absolutely terrible for basic oo. Basic getters and setters needs the moose module which instantly slows down your code base beyond. I'm a very competent oo perl developer. I recently wrote a complex large platform in Perl5. It's simply not good enough. In addition cpan is like walking the dungeons of moria. amazing relics of complexity frozen in time.

> Perl is absolutely terrible for basic oo.

To clarify for readers who might not know...

* Perl 5 (the language this comment appears to focus on) and Perl 6 (the language the OP is about) are different languages in the same family, like Common Lisp and Clojure.

* Perl 6 OO is syntactically and semantically elegant. "In using Perl 6, one of the things that constantly floors me is how elegant objects are..." [1].

* Perl 6, which has this elegant OO built in, outperforms Perl 5 + Moose for some things and trails it for others.

[1] https://www.reddit.com/r/perl6/comments/4ud7vc/a_python_guy_...

Re: I Botched a Perl 6 Release

#59
post #45

This is where I have to point out that this would have been unlikely to happen with BitKeeper. :) BitKeeper doesn't provide a 'pull --rebase' and instead puts this in separate commands 'bk pull; bk collapse -e@; bk citool'. By default, collapse will refuse to replace an already released cset. Yeah less powerful, but we believe more predictable. Also, tags are fully revisioned controlled and propagate with every pull.…

And open source and has submodules that actually work and has a binary manager that works for world wide development (no single server).

Oh, and has bk fast-import so any git project can try it out. And of course has bk fast-export so you can bail out if you don't like it. Incremental fast-import coming.

Post reply on HN