I really do hate sounding like one of these ivory tower theorists, but in a real OS with a real capabilities security system, this sort of thing wouldn't happen. Since when do I want my mp3 player having access to my ENTIRE FILESYSTEM? Or when I do want it to have access, why the hell does it have this access when I don't have a file picker dialog open?
Let's see an OS that grants and revokes facilities like filesystem and network access using a protocol that's difficult to forge (e.g. cryptographically secure capabilities, it's doable). Clients will need to request the capability, relinquish it when done. Any unexpected request to a capability would result in a warning. I'm flabbergasted that a chat client with a single off-by-one error can be caused to erase my entire home directory. You don't need non-executable stacks, you don't need to audit every last source line, and those concerned about performance could still run apps wide open without any security if they really wanted to.
Adding on (I wish slash supported something like.5e's editing), the overloading problem's even worse than lacking ad-hoc polymorphism. I don't think there's even a type for operators (e.g. ordinal, sequence) like haskell has, so you couldn't make a type implement the list operators if you wanted to. Add to that having different infix operators for float and int. I can see not mixing them (implicit promotion is evil) but you can't even add two floats with + and you must use +. instead. I don't want to sound like I hate ocaml, but those are some real turn-offs that could and should be fixed.
Ocaml is fabulous, except for one big wart: it lacks overloading. Declaring a function again with a different parameter signature simply replaces the function. This forces you to make the type polymorphic instead of the function, which isn't cool when you don't want to touch the type. This tends to make adaptors come into play when they shouldn't have to. Compare to Haskell, which does have overloading (but forces very weird monad syntax and semantics on you when you want state). Is anything being done to address this rather annoying problem? It's not a complete show-stopper, but it does make me feel like I've been limited where I shouldn't have been.
Okay, then, we should just never make any other computer languages until someone can come up with one that solves every one of those problems you listed.
Solving just one would be a good start. I'd be okay with no one ever writing a half-assed language again and calling it mother's milk to programmers everywhere. Learning projects are one thing, but the D emperor still has no clothes.
E is also used as the name of a language for the Java VM. Has distributed parallelism built in much like Obliq, but with java-like or VB-like syntax (your choice) and based on static closures like scheme. Wonderful research language, though it lacks some library support to make distribution easy, documentation is sorely lacking, and it's just too slow for general purpose work.
> I'm going to go out on a limb and assume that D is probably written in C/C++ or at least partially. So that would be one good reason not to discredit C/C++ in favor of D.
No, it's a bloody stupid reason. Would you refuse to use a hammer because it wasn't made with nothing but hammers? My computer is made, at a basic level, with transistors, but I'm not forcing myself to wire CMOS logic circuits in order to make my program run (this incidentally is the counterargument to the popular canard that asm is required to truly grok programming. Might be to grok a von neumann architecture, but that's not the aim of programming)
> The only way of truely solving bugs is to know exactly whats going on in the code
Ah, isn't that sort of a given? That's like saying the only way to find your keys is to know exactly where everything is. Debuggers exist to let you see exactly what's going on.
> Another feature that I really wanted to see would be a popup that tells you what O() order a function call would be, and have the compiler determine it based on analysis and corrective comments for difficult functions
Collect your nobel prize when you do this. It's not possible. Okay, you could do a 99% solution, but I don't see a demand for it in debugging, and it's something a code coverage tool and a profiler will point out in very short order anyway.
> 2. I tell my development team to implement my innovation. Implemented.
Sure, they work for you. You sign their paychecks, or at least your boss does. When I run into a frank deficiency in the internal software in the organization, even when I know exactly what code to change in what file, what the scope of the change is, what it could break, and so forth... I still have to push rocks uphill, grease palms, and blow smoke up the collective asses of everyone in the organization to get them to acknowledge that I might even have a remote clue what I'm talking about... then I can talk about code. And meanwhile get chewed out by my own boss for not doing my job, telling customers that what's breaking is their fault... all right, I'm starting to go over the edge.
Know how I fix a broken web app with the source? I change it, I submit it, they take it or they don't. If they don't, I put the patch into a new build tarball, and post to the list to find the fixed version at this new URL.
god only knows where you can get the talkback quality feedback agent (fullcircle.com is a different company now) but you can put something similar into your app. Build for your internal dev folks an extra info field in so that they can add notes to the reports. Add a "report bug" menu option to the app, and make it only require a very few options to fill in (system affected, severity, summary, and notes). Give out a prize for the person who reports the most bugs (we are assuming professionals are not going to spam you with bogus reports). Pay for the prize yourself if you have to (it could be a big candy bar or $10 gift cert for starters) then get management to pay for it once you get things going.
Don't kvetch endlessly about specifics in the interface, just say "it needs to be easy and fast to report bugs. average time to file a bug report (now): xxx minutes. goal: xxx seconds."
I have yet to see a single bugzilla that even came close to end-user ease of use of Request Tracker.. Bugzilla might have a million knobs and dials to twist, but that's precisely what I don't want to expose submitters to.
I used to do this all the time when I was pair programming with someone, but I got to waiting til he finished the line or sometimes the entire function. If it's on my mind "hey he made a typo" and bugging me that the function's not going to work because of it, then I can't very well discuss tactics.
It helped that he was already a good friend. I think more realistically, one person should get the keyboard and screen and another should get the whiteboard. Both should be chatting continuously. Looking over your buddy's shoulder is going overboard IMHO.
Overall, I think the main benefit to pair programming is that it puts the programmer in the position of having human contact through the day, which helps them articulate issues to managers and customers. Even if you're not a completel socially stunted nerd, going without talking to people day after day will really warp your thinking in ways that make you hard to deal with.
XP & 2000 have full text indexing. You can either run a service that contantly indexes your files to search quickly, or it will just search through your files but it takes a while.
Naturally they couldn't be bothered to change the goddam file picker common dialog so you can actually search when you need to actually find the file from your application. All they needed to do was place a "find" icon on that left-side panel.
More to the point, so the users I'm trying to support over the phone can find their photos that some app uploaded with some filename to some directory somewhere... Right now I just have to say I can't help them, it just takes too long.
The "find" dialog is pretty useless even though it brings up draggable icons, largely because the interface is unusable.
Shit we should be so lucky, do you know they have conjugal visits there? Really? Yes. Shit, I'm a free man and I haven't had a conjugal visit in 6 months.
Damn straight, they should be sending him to a federal pound-me-in-the-ass prison!
(gotta love Mike Judge. but hey that's conjugal too.)
2. Make a system that can take the `pain' (such as it is) out of compiling installing the source, e.g. just automatically doing `configure' with the right args, and then `make; make install'. Sure this would only work with packages that follow some sort of standard for configuration and installation, but hey getting developers to do that shouldn't be any harder than getting them to provide standard binary packages, and it's far more powerful.
It's called FreeBSD. And it runs linux binaries flawlessly as well.
> Anyone else harking for the days of gopher and html 3.2?
You. Feel free to use them. Anyone who cares will join you. You don't need to ask anyone's permission, and the protocols are quite well documented with RFC's. When/if IPv6 becomes the standard, you can go tunnel IP4.
HTML 3.2 was the "good old days", eh? They sure get their grey hairs early, this crowd.
BTW, if I had mod points, I would mod you down just for whining about maybe being modded. Put your point out there or don't.
Re:You misunderstand completely
on
E ~ mc^2
·
· Score: 2
The job of the scientist is thus to question *everything.*
I really do hate sounding like one of these ivory tower theorists, but in a real OS with a real capabilities security system, this sort of thing wouldn't happen. Since when do I want my mp3 player having access to my ENTIRE FILESYSTEM? Or when I do want it to have access, why the hell does it have this access when I don't have a file picker dialog open?
Let's see an OS that grants and revokes facilities like filesystem and network access using a protocol that's difficult to forge (e.g. cryptographically secure capabilities, it's doable). Clients will need to request the capability, relinquish it when done. Any unexpected request to a capability would result in a warning. I'm flabbergasted that a chat client with a single off-by-one error can be caused to erase my entire home directory. You don't need non-executable stacks, you don't need to audit every last source line, and those concerned about performance could still run apps wide open without any security if they really wanted to.
Adding on (I wish slash supported something like .5e's editing), the overloading problem's even worse than lacking ad-hoc polymorphism. I don't think there's even a type for operators (e.g. ordinal, sequence) like haskell has, so you couldn't make a type implement the list operators if you wanted to. Add to that having different infix operators for float and int. I can see not mixing them (implicit promotion is evil) but you can't even add two floats with + and you must use +. instead. I don't want to sound like I hate ocaml, but those are some real turn-offs that could and should be fixed.
Ocaml is fabulous, except for one big wart: it lacks overloading. Declaring a function again with a different parameter signature simply replaces the function. This forces you to make the type polymorphic instead of the function, which isn't cool when you don't want to touch the type. This tends to make adaptors come into play when they shouldn't have to. Compare to Haskell, which does have overloading (but forces very weird monad syntax and semantics on you when you want state). Is anything being done to address this rather annoying problem? It's not a complete show-stopper, but it does make me feel like I've been limited where I shouldn't have been.
Okay, then, we should just never make any other computer languages until someone can come up with one that solves every one of those problems you listed.
Solving just one would be a good start. I'd be okay with no one ever writing a half-assed language again and calling it mother's milk to programmers everywhere. Learning projects are one thing, but the D emperor still has no clothes.
I'm such a doofus. link to the E Language here
E is also used as the name of a language for the Java VM. Has distributed parallelism built in much like Obliq, but with java-like or VB-like syntax (your choice) and based on static closures like scheme. Wonderful research language, though it lacks some library support to make distribution easy, documentation is sorely lacking, and it's just too slow for general purpose work.
> I'm going to go out on a limb and assume that D is probably written in C/C++ or at least partially. So that would be one good reason not to discredit C/C++ in favor of D.
No, it's a bloody stupid reason. Would you refuse to use a hammer because it wasn't made with nothing but hammers? My computer is made, at a basic level, with transistors, but I'm not forcing myself to wire CMOS logic circuits in order to make my program run (this incidentally is the counterargument to the popular canard that asm is required to truly grok programming. Might be to grok a von neumann architecture, but that's not the aim of programming)
I wonder if they'll play Ogg Vorbis and my DivX;) files ...
HA HA! HOO HOO HOO!
Laugh at this. Oggs play flawlessly on windows media player.
C.J. Date, no? Damned if I can remember his actual first name, everyone just calls him C.J.
Probably a bad name for a conference room. "The conference has been moved to Date." "Can we get Date for Friday?"
> The only way of truely solving bugs is to know exactly whats going on in the code
Ah, isn't that sort of a given? That's like saying the only way to find your keys is to know exactly where everything is. Debuggers exist to let you see exactly what's going on.
> Another feature that I really wanted to see would be a popup that tells you what O() order a function call would be, and have the compiler determine it based on analysis and corrective comments for difficult functions
Collect your nobel prize when you do this. It's not possible. Okay, you could do a 99% solution, but I don't see a demand for it in debugging, and it's something a code coverage tool and a profiler will point out in very short order anyway.
Better known as a heisenbug. Race conditions are notorious for being heisenbugs...
> 2. I tell my development team to implement my innovation. Implemented.
... I still have to push rocks uphill, grease palms, and blow smoke up the collective asses of everyone in the organization to get them to acknowledge that I might even have a remote clue what I'm talking about ... then I can talk about code. And meanwhile get chewed out by my own boss for not doing my job, telling customers that what's breaking is their fault ... all right, I'm starting to go over the edge.
Sure, they work for you. You sign their paychecks, or at least your boss does. When I run into a frank deficiency in the internal software in the organization, even when I know exactly what code to change in what file, what the scope of the change is, what it could break, and so forth
Know how I fix a broken web app with the source? I change it, I submit it, they take it or they don't. If they don't, I put the patch into a new build tarball, and post to the list to find the fixed version at this new URL.
> I've always wondered why MS never did something like this
The fifth item in the "Help" menu in Internet Explorer, just above "About Internet Explorer", is "Send Feedback".
god only knows where you can get the talkback quality feedback agent (fullcircle.com is a different company now) but you can put something similar into your app. Build for your internal dev folks an extra info field in so that they can add notes to the reports. Add a "report bug" menu option to the app, and make it only require a very few options to fill in (system affected, severity, summary, and notes). Give out a prize for the person who reports the most bugs (we are assuming professionals are not going to spam you with bogus reports). Pay for the prize yourself if you have to (it could be a big candy bar or $10 gift cert for starters) then get management to pay for it once you get things going.
Don't kvetch endlessly about specifics in the interface, just say "it needs to be easy and fast to report bugs. average time to file a bug report (now): xxx minutes. goal: xxx seconds."
> Bugzilla is by far easiest
I have yet to see a single bugzilla that even came close to end-user ease of use of Request Tracker.. Bugzilla might have a million knobs and dials to twist, but that's precisely what I don't want to expose submitters to.
> You can use the search to look for Pictures and Photos with a total of 4 clicks.
On windows XP. And if you actually read what I said, my rant was that you cannot use the results of a find to answer a popup "open file" dialog.
I used to do this all the time when I was pair programming with someone, but I got to waiting til he finished the line or sometimes the entire function. If it's on my mind "hey he made a typo" and bugging me that the function's not going to work because of it, then I can't very well discuss tactics.
It helped that he was already a good friend. I think more realistically, one person should get the keyboard and screen and another should get the whiteboard. Both should be chatting continuously. Looking over your buddy's shoulder is going overboard IMHO.
Overall, I think the main benefit to pair programming is that it puts the programmer in the position of having human contact through the day, which helps them articulate issues to managers and customers. Even if you're not a completel socially stunted nerd, going without talking to people day after day will really warp your thinking in ways that make you hard to deal with.
XP & 2000 have full text indexing. You can either run a service that contantly indexes your files to search quickly, or it will just search through your files but it takes a while.
Naturally they couldn't be bothered to change the goddam file picker common dialog so you can actually search when you need to actually find the file from your application. All they needed to do was place a "find" icon on that left-side panel.
More to the point, so the users I'm trying to support over the phone can find their photos that some app uploaded with some filename to some directory somewhere... Right now I just have to say I can't help them, it just takes too long.
The "find" dialog is pretty useless even though it brings up draggable icons, largely because the interface is unusable.
Atari released a ground-breaking game too. Broke a lot of ground to bury all those millions of E.T. cartridges in the landfill, sure did...
Shit we should be so lucky, do you know they have conjugal visits there? Really? Yes. Shit, I'm a free man and I haven't had a conjugal visit in 6 months.
Damn straight, they should be sending him to a federal pound-me-in-the-ass prison!
(gotta love Mike Judge. but hey that's conjugal too.)
2. Make a system that can take the `pain' (such as it is) out of compiling installing the source, e.g. just automatically doing `configure' with the right args, and then `make; make install'. Sure this would only work with packages that follow some sort of standard for configuration and installation, but hey getting developers to do that shouldn't be any harder than getting them to provide standard binary packages, and it's far more powerful.
It's called FreeBSD. And it runs linux binaries flawlessly as well.
If you think I'm over-reacting, then I can only say that we are as Germany was in 1936.
You lose.
> Anyone else harking for the days of gopher and html 3.2?
You. Feel free to use them. Anyone who cares will join you. You don't need to ask anyone's permission, and the protocols are quite well documented with RFC's. When/if IPv6 becomes the standard, you can go tunnel IP4.
HTML 3.2 was the "good old days", eh? They sure get their grey hairs early, this crowd.
BTW, if I had mod points, I would mod you down just for whining about maybe being modded. Put your point out there or don't.
The job of the scientist is thus to question *everything.*
Why?
Why do you ask?