Re: [9fans] c++
On 11/20/2012 03:42 PM, Steve Simon wrote: How do you studiously not do something? Doesn't the imply working hard at something? Indeed, everything I did read about Go made it look very attractive so I am ignoring it as I know myself. If I read more I will start to get annoyed that I am wasting my time learning C++ when Go is a much better solution. Its the sam reason I use plan9 and not Windows/Linux/OSX etc. its a backhanded compliment to the Go authors that I must not look at their work (yet). Me, OTOH, would like see Go go out of fashion ASAP; What's so special a C/C++ programmer can't do what she/he can do with Go? -- Balwinder S bdheeman Dheeman (http://werc.homelinux.net/contact/)
Re: [9fans] c++
Me, OTOH, would like see Go go out of fashion ASAP; What's so special a C/C++ programmer can't do what she/he can do with Go? What is so special a COBOL programmer can't do? ++L
Re: [9fans] c++
On Thu, Nov 22, 2012 at 09:54:34AM +, Balwinder S Dheeman wrote: On 11/20/2012 03:42 PM, Steve Simon wrote: How do you studiously not do something? Doesn't the imply working hard at something? Indeed, everything I did read about Go made it look very attractive so I am ignoring it as I know myself. If I read more I will start to get annoyed that I am wasting my time learning C++ when Go is a much better solution. Its the sam reason I use plan9 and not Windows/Linux/OSX etc. its a backhanded compliment to the Go authors that I must not look at their work (yet). Me, OTOH, would like see Go go out of fashion ASAP; What's so special a C/C++ programmer can't do what she/he can do with Go? I find big wins in go, but I hope it will be still improved. The lack of header files is very nice, to mention only one big annoyance I see in C/C++. :) C/C++ don't have so fast (and ready) 'goroutines'. I hate writing state machines; let the per-goroutine-stack hold every state!
Re: [9fans] go forth and ulong no more!
On Thu Nov 22 04:03:29 EST 2012, charles.fors...@gmail.com wrote: usize is indeed the same size as uintptr. Instead of either for purely integer values, it would be better to make all integers 64 bit, and use uint and int (for pointer differences), but that causes other problems, at the moment. On 22 November 2012 03:44, Bruce Ellis bruce.el...@gmail.com wrote: i'd like an example of where usize wins, as it has to be same as uintptr my reading of various standards says that usize doesn't need to be the same size as uintptr, since the implementation could limit the address space used to smaller than could be addressed by the full pointer range. and in fact due to the inbetween state of things, usize is 32-bits on nix. i see the strategy as first ulong→usize, then redefine usize. i agree that that's gross. if we got rid of usize, the type signature of malloc would be void*malloc(uintptr) which i think is quite confusing. imo, types should be as self- documenting as possible. - erik
Re: [9fans] c++
Halo 4 On Nov 22, 2012, at 11:07 AM, lu...@proxima.alt.za wrote: What is so special a COBOL programmer can't do?
Re: [9fans] go forth and ulong no more!
I hadn't noticed that particularly, but having grep'd the source, I see it's also used for variables that are counters and numbers of things. Is that right too? I suspect it's more out of expediency. Some other type usage looks odd too. int32 where int would do. Curious. On 22 November 2012 03:44, Bruce Ellis bruce.el...@gmail.com wrote: ntptr in all over the go packages because it is right.
Re: [9fans] go forth and ulong no more!
.B char can generally be assumed to be a signed value. What does generally mean here? Is it safe to assume or not? There are no signed variants of these as they are not useful where size-specific types are appropriate. Not useful seems an arbitrary judgment. There are certainly cases where widths are fixed by hardware (eg device registers) but values are semantically signed (eg address increment/decrement value in a DMA controller). .B Usize represents the type returned by the C .B sizeof operator. It is typically the same width as a virtual address. What does typically mean here? Is it or isn't it? In order to ease the transition to 64-bits, the AMD64 compiler currently uses a 32-bit .BR usize . Oh, so it isn't. .B uintptr as a physical address may be the same size, larger (PAE), or smaller than a virtual address. Should that be uintmem? .B Uintmem also stores the sizes of things that .B uintmem might address. Strange inconsistency - why then doesn't uintptr store the sizes of things that uintptr might address? .B schar is used when porting to other systems where it may matter. It should not generally be used. Is this saying it doesn't matter in Plan 9 whether chars are signed or not? What is the exception to the generally? My opinion: A type system is useful if and only if it helps you write code which will be correct in every environment in which it might run. Guidelines for usage which will be generally or typically correct just encourage bad habits. (Of which I am as guilty as anyone.) OTOH, it's not worth making special provision for physical memory addresses. I think that any code which is dealing with those is not likely to be portable to another architecture for many other reasons. I can't envision a single mmu.c being applicable to both 386 and amd64 ...
Re: [9fans] go forth and ulong no more!
usize is indeed the same size as uintptr. Instead of either for purely integer values, it would be better to make all integers 64 bit I hope that was intended as a joke. It's not that long ago I was writing C for a 16-bit processor (in a smart card). I would hate to lose the meaning of int as whatever fits in a CPU register.
Re: [9fans] go forth and ulong no more!
On 22 November 2012 11:00, Richard Miller 9f...@hamnavoe.com wrote: OTOH, it's not worth making special provision for physical memory addresses. I think that any code which is dealing with those is not likely to be portable to another architecture for many other reasons. I can't envision a single mmu.c being applicable to both 386 and amd64 ... It's more useful than you think, which is why both jmk and I separately added it (I called mine physaddr, but changed to his name). Even port refers to physical addresses (eg, Page), and previously those were ulong. It also needs a name to cast values to the right size when doing calculations.
Re: [9fans] go forth and ulong no more!
To try to clarify: most existing Plan 9 code doesn't worry about the actual type of sizeof or pointer differences. They assume int/long or uint/ulong. It's obvious from this discussion that hardly anyone noticed usize. Since its introduction years ago, grep shows that only kernel code has used usize. size_t is more popular in ANSI C code, but I suspect even there neither size_t nor ptrdiff_t are used everywhere they ought to be. An arbitrary sample (my src directory on Linux) shows 4995 uses of size_t, and only 54 of ptrdiff_t, but perhaps pointer subtraction just isn't that common. That's why I say that it would be better to make int and uint the same size as uintptr, although it's a bit of a waste, since existing code that needs bigger int values will use another type, but after the change it's easy to have code casually assume 64 bits. One reason 6c doesn't make int and long 64 bits is that it's quite hard to find code (automatically) that assumes they are 32 bits. Hence the drive to use explicit types when it matters. Again, I'll note that erik's manual page doesn't propose or introduce anything new: even allowing for the ill-chosen typically and usually it is still a fair reflection of the current state, or aims to be. Perhaps the unfortunate qualifications should be in BUGS. On 22 November 2012 11:10, Richard Miller 9f...@hamnavoe.com wrote: usize is indeed the same size as uintptr. Instead of either for purely integer values, it would be better to make all integers 64 bit I hope that was intended as a joke. It's not that long ago I was writing C for a 16-bit processor (in a smart card). I would hate to lose the meaning of int as whatever fits in a CPU register.
Re: [9fans] go forth and ulong no more!
Even port refers to physical addresses (eg, Page) You're right, I should have thought a bit longer. This is why my PAE hack for xen only supports 4GB of physical (well, virtually physical) memory.
Re: [9fans] go forth and ulong no more!
I meant, detect code. It's easy to find: just look at libflate, but there were many more. On 22 November 2012 11:32, Charles Forsyth charles.fors...@gmail.com wrote: it's quite hard to find code (automatically) that assumes they are 32 bits.
Re: [9fans] go forth and ulong no more!
New C programmers are often confused by size_t being unsigned (even experienced ones at times) Especially experienced ones. My 1978 copy of KR says The expression sizeof(object) yields an integer equal to the size of the specified object. Not unsigned integer. Old habits die hard.
Re: [9fans] go forth and ulong no more!
It was in v6 (and a nasty bug): /* * sizeof gets turned into a number here. * Bug: sizeof(structure-member-array) is 2 because * the array has been turned into a ptr already. */ if (op==SIZEOF) { t1 = length(p1); p1-op = CON; p1-type = INT; p1-dimp = 0; p1-value = t1; *cp++ = p1; return; } but in v7 (without the bug): /* * sizeof gets turned into a number here. */ if (op==SIZEOF) { t1 = cblock(length(p1)); t1-type = UNSIGN; *cp++ = t1; return; } It's not surprising, since unsigned didn't originally exist (use char*!) On 22 November 2012 11:36, Richard Miller 9f...@hamnavoe.com wrote: New C programmers are often confused by size_t being unsigned (even experienced ones at times) Especially experienced ones. My 1978 copy of KR says The expression sizeof(object) yields an integer equal to the size of the specified object. Not unsigned integer. Old habits die hard.
Re: [9fans] go forth and ulong no more!
On Thu Nov 22 06:01:38 EST 2012, 9f...@hamnavoe.com wrote: .B char can generally be assumed to be a signed value. What does generally mean here? Is it safe to assume or not? good point. There are no signed variants of these as they are not useful where size-specific types are appropriate. Not useful seems an arbitrary judgment. There are certainly cases where widths are fixed by hardware (eg device registers) but values are semantically signed (eg address increment/decrement value in a DMA controller). .B Usize represents the type returned by the C .B sizeof operator. It is typically the same width as a virtual address. What does typically mean here? Is it or isn't it? do you think this should be changed. i don't mind. i didn't want to state an absolte then break it. :-). .B uintptr as a physical address may be the same size, larger (PAE), or smaller than a virtual address. Should that be uintmem? yes. A type system is useful if and only if it helps you write code which will be correct in every environment in which it might run. Guidelines for usage which will be generally or typically correct just encourage bad habits. (Of which I am as guilty as anyone.) so what do you want to do about usize. i can't easily just make it 64-bits on nix, because that would require that we get some changes in sources. malloc would need to be fixed, etc. OTOH, it's not worth making special provision for physical memory addresses. I think that any code which is dealing with those is not likely to be portable to another architecture for many other reasons. I can't envision a single mmu.c being applicable to both 386 and amd64 ... you need it for PAE. i also find it to be great documentation. imo, it helps in writing correct code, and understanding it later. - erik
Re: [9fans] go forth and ulong no more!
i put up corrections - erik
Re: [9fans] go forth and ulong no more!
The expression sizeof(object) yields an integer equal to the size of the specified object. Not unsigned integer. Old habits die hard. I feel your pain. We use lint a lot here and it irritates me greatly when it grumbles about loss of precision in assignment from sizeof() or nelem() to an int, e.g. int i; struct Result Results[4096]; for(i = 0; i nelem(Results); i++) memset(Results[i], 0, sizeof(Result)); I wish I had been in the standards meeting with a big stick when somone suggested sizeof() returned an unsigned. No doubt somone will pipe up and explain why its a very good idea, but it still annoys me. -Steve
Re: [9fans] go forth and ulong no more!
It was changed in Ritchie's own compiler in v7 as I noted earlier. It was that, use long, or limit your sizeof'd data to half the 16-bit address space. On 22 November 2012 11:54, Steve Simon st...@quintile.net wrote: I wish I had been in the standards meeting with a big stick when somone suggested sizeof() returned an unsigned. No doubt somone will pipe up and explain why its a very good idea, but it still annoys me.
Re: [9fans] go forth and ulong no more!
Charles Forsyth charles.fors...@gmail.com once said: On 22 November 2012 03:44, Bruce Ellis bruce.el...@gmail.com wrote: uintptr in all over the go packages because it is right. I hadn't noticed that particularly, but having grep'd the source, I see it's also used for variables that are counters and numbers of things. Can you give an example? Nothing jumped out after a quick glance. Is that right too? I suspect it's more out of expediency. Some other type usage looks odd too. int32 where int would do. Curious. Such as? The only one I can think of is (*os.File).Fd returning a uintptr but that was changed from int for a reason (Windows). Cheers, Anthony
Re: [9fans] go forth and ulong no more!
this is just a sample, but there were other likely candidates: ./src/pkg/runtime/cpuprof.c: uintptr count; ./src/pkg/runtime/cpuprof.c: uintptr count; // tick count ./src/pkg/runtime/cpuprof.c: uintptr evicts; // eviction count ./src/pkg/runtime/cpuprof.c: uintptr lost; // lost ticks that need to be logged ./src/pkg/runtime/cpuprof.c: uintptr totallost; // total lost ticks ./src/pkg/runtime/zmprof_386.c:uintptr allocs; ./src/pkg/runtime/zmprof_386.c:uintptr frees; ./src/pkg/runtime/zmprof_386.c:uintptr alloc_bytes; ./src/pkg/runtime/zmprof_386.c:uintptr free_bytes; ./src/pkg/runtime/zmprof_386.c:uintptr recent_allocs; ./src/pkg/runtime/zmprof_386.c:uintptr recent_frees; ./src/pkg/runtime/zmprof_386.c:uintptr recent_alloc_bytes; ./src/pkg/runtime/zmprof_386.c:uintptr recent_free_bytes; ./src/pkg/runtime/zmprof_386.c:uintptr hash; ./src/pkg/runtime/zmprof_386.c:uintptr nstk; ./src/pkg/runtime/runtime.h: uintptr n; // number of parameters ./src/pkg/runtime/thread_netbsd.c: uintptr nout; ./src/pkg/runtime/cpuprof.c: uintptr nlog; On 22 November 2012 12:39, Anthony Martin al...@pbrane.org wrote: Charles Forsyth charles.fors...@gmail.com once said: On 22 November 2012 03:44, Bruce Ellis bruce.el...@gmail.com wrote: uintptr in all over the go packages because it is right. I hadn't noticed that particularly, but having grep'd the source, I see it's also used for variables that are counters and numbers of things. Can you give an example? Nothing jumped out after a quick glance. Is that right too? I suspect it's more out of expediency. Some other type usage looks odd too. int32 where int would do. Curious. Such as? The only one I can think of is (*os.File).Fd returning a uintptr but that was changed from int for a reason (Windows). Cheers, Anthony
Re: [9fans] go forth and ulong no more!
Charles Forsyth charles.fors...@gmail.com once said: this is just a sample, but there were other likely candidates: Ah. I thought we were talking about Go code not C. Carry on. Anthony
Re: [9fans] go forth and ulong no more!
so what do you want to do about usize. i can't easily just make it 64-bits on nix, because that would require that we get some changes in sources. malloc would need to be fixed, etc. Just tell the plain truth - have I got this right? Usize is an unsigned integer which can hold the maximum size of an object declared statically (the sizeof operator returns a value of type usize) or created by the usual allocation functions (the size argument of malloc is - or should be? - type usize). Usize may be smaller than uintptr, for example on amd64 where uintptr is 64 bits and usize is 32. On such machines it may still be possible to make larger allocations (eg by writing a megamalloc function with a size argument in megabyte units) but not to use a usize variable to represent the length of the returned objects. OTOH, it's not worth making special provision for physical memory addresses. ... you need it for PAE. i also find it to be great documentation. imo, it helps in writing correct code, and understanding it later. Yes, I've come around to agree with this.
Re: [9fans] c++
On Mon, Nov 19, 2012 at 7:10 AM, Kurt H Maier kh...@intma.in wrote: On Mon, Nov 19, 2012 at 09:56:33AM -0500, Calvin Morrison wrote: On 19 November 2012 04:59, Steve Simon st...@quintile.net wrote: Isn't all C code valid C++? problem solved. As of c99, they have diverged. They weren't the same in 1998 either.
Re: [9fans] c++
On Thu Nov 22 08:50:13 EST 2012, 23h...@gmail.com wrote: Java was not in high school, but in 9th grade in a normal German school. i think you're trying to make a subtile distinction about the german educational system using american terms. if so, it would be much less confusing with untranslated terms. 9th grade is usually 1st year high school in the us. - erik
Re: [9fans] c++
VisitorFactoryBuilderFactorySingletonDecoratorFactory. On Thu, Nov 22, 2012 at 6:57 AM, Charles Forsyth charles.fors...@gmail.comwrote: I'm writing Java now, after a long gap, and it's ok. It has its share of annoying aspects, but it's not too bad. Java is a bit like a high-level assembler for the JVM, and there are too many packages, many with intricate interfaces and conventions. C# fixes every one of my complaints about the Java language, and generally seems more thoughtful. I simply ignore the philosophy as much as I can, although it's hard to escape the terminology (all those factories). On 22 November 2012 11:34, hiro 23h...@gmail.com wrote: java feel highly inconsistent and are full of stupid busywork and strange programming philosophies that you have to learn about, but teach you nothing.
Re: [9fans] c++
Personally, I think that all of this language posturing is geekier-than-thou nonsense. Calling C++ or Java a disease? Really? Suggesting that if you use one of those languages you're somehow mentally deficient? Really? Suggesting someone change jobs because they're asked to program in C++? Really? In the big scheme of things, absolutely none of this matters. Whether one programs in Java, C, Go, COBOL or 370 assembler doesn't really make any difference; one could die tomorrow, and would anyone care what language s/he programmed in? really? This world has bigger problems than that. Programming languages are tools; nothing more. Use whichever one fits the problem at hand. If you're the kind of person who geeks out on and enjoys playing around with new tools; the kind that appreciates the relative aesthetic quality of one versus the other, more power to you: but understand that trying to reformulate problems so that one can apply one's whizz-bang new shiny SuperHammer when the thing that comes out of parents' toolbox will do is just wasting time. I came across this recently, and it really resonated: http://www.lindsredding.com/2012/03/11/a-overdue-lesson-in-perspective/ - Dan C.
Re: [9fans] c++
i agree with your point. but i think that you the statments you point out are hyperbole. In the big scheme of things, absolutely none of this matters. Whether one programs in Java, C, Go, COBOL or 370 assembler doesn't really make any difference; one could die tomorrow, and would anyone care what language s/he programmed in? really? This world has bigger problems than that. this argument isn't a good one. this is a variation of the finish your plate there are starving kids in africa argument. the fact that there are starving kids in africa has no bearing on if the kid in the quote has had enough to eat. the fact that there are bigger problems in the world does not imply that we ourselves are in a position to do anything about them. heck, i see problems very close to home that i can't do much about. i can try to make arguments, but very often there is no direct influence that can be made. and being right is no comfort. - erik
Re: [9fans] go forth and ulong no more!
Usize is an unsigned integer which can hold the maximum size of an object declared statically (the sizeof operator returns a value of type usize) or created by the usual allocation functions (the size argument of malloc is - or should be? - type usize). Usize may be smaller than uintptr, for example on amd64 where uintptr is 64 bits and usize is 32. On such machines it may still be possible to make larger allocations (eg by writing a megamalloc function with a size argument in megabyte units) but not to use a usize variable to represent the length of the returned objects. unfortuntely, most of this is either not true yet, or the goal is to make it false. the current signature of malloc is void* malloc(ulong), the goal is to make it void* malloc(usize), additionally usize is always ulong now, but the goal is to make it 64-bits on amd64, and perhaps other 64-bit architectures. therefore, i wanted to emphasis what it should be, and that the current situtation must change. terrible, no? is there a better way? (you can get a large hunk of memory with segbrk, which is cheating and probablly dangerous.) - erik
Re: [9fans] c++
On Nov 22, 2012, at 9:54 AM, Balwinder S Dheeman bsd.sans...@anu.homelinux.net wrote: Me, OTOH, would like see Go go out of fashion ASAP; What's so special a C/C++ programmer can't do what she/he can do with Go? Is this opinion born out of experience with Go or due to a lack of experience? They are all Turing complete but if that was the only important criterion most prog. languages wouldn't exist.
Re: [9fans] c++
On Thursday 22 of November 2012 09:38:06 Dan Cross wrote: In the big scheme of things, absolutely none of this matters. Whether one programs in Java, C, Go, COBOL or 370 assembler doesn't really make any difference; one could die tomorrow, and would anyone care what language s/he programmed in? really? This world has bigger problems than that. Programming languages are tools; nothing more. (...) that assumes any programming language is (at best) a constant or linear factor in problem solving time and complexity. some circles hold opinion that more powerfull programming languages provide polynominal or exponential factor. aside of that, in various publications number of bugs is found to correlate with line counts or similar metrics, making a more concise language a net win. -- dexen deVries [[[↓][→]]] Reality is just a convenient measure of complexity. -- Alvy Ray Smith
Re: [9fans] c++
Halo 4 Whatever it is, I haven't needed it in the past 38 years, should I have? ++L
Re: [9fans] c++
On Thu, Nov 22, 2012 at 03:54:11PM +0100, Hugo Rivera wrote: Of course, it depends on the problem considered. But I think the big problems in the world have little to do with programming languages, particularly c++, which is the topic at hand. But you are wrong... There are numerous big and desastrous problems caused because of the inteconnections, the almost instantaneous and worldwide speculation, not to count instantaneous and worldwide bugs, all linked to programming. This is not butterfly's wings in Far East that can cause a earthquake in Occident, but a software bug in something used or relied upon everywhere... -- Thierry Laronde tlaronde +AT+ polynum +dot+ com http://www.kergis.com/ Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
Re: [9fans] c++
C++ and java feel highly inconsistent and are full of stupid busywork and strange programming philosophies that you have to learn about, Chances are Go would not be what it is, if it was anything at all, without the mistakes of C++ and Java (the latter are a mystery to me I am not even remotely interested in unravelling - but I'm lucky that way). For what that's worth. I enjoy the facility with which bugs are identified and often even avoided in Go, I'm not as keen on the Program development by progressive approximation development technique I seem to have fallen into :-) ++L
Re: [9fans] c++
On Thu Nov 22 10:48:35 EST 2012, tlaro...@polynum.com wrote: On Thu, Nov 22, 2012 at 03:54:11PM +0100, Hugo Rivera wrote: Of course, it depends on the problem considered. But I think the big problems in the world have little to do with programming languages, particularly c++, which is the topic at hand. But you are wrong... There are numerous big and desastrous problems caused because of the inteconnections, the almost instantaneous and worldwide speculation, not to count instantaneous and worldwide bugs, all linked to programming. This is not butterfly's wings in Far East that can cause a earthquake in Occident, but a software bug in something used or relied upon everywhere... putting aside that i don't believe that the big problems like war and hunger have anything to do with programming errors, i don't know which bugs you're talking about, but there is little chance that any of us choose the programming language these unknown systems were implemented in. so i see this as a perpetuation of the clean your plate argument. it's spurious. and even that aside, can you cite studies that show that the choice of programming language is the dominant term in determining the error rate of the resulting code? - erik
Re: [9fans] c++
Of course, it depends on the problem considered. But I think the big problems in the world have little to do with programming languages, particularly c++, which is the topic at hand. Well, in the unequal world of long-post-apartheid rural South Africa where I live, my hope is to teach unspoilt, but also uneducated kids programming using Go on a Plan 9 platform (the teaching, mostly). Doing the same in C++ or Java would demand much more effort on my part and much more powerful resources than I have at my disposal. Eventually, we may get over these obstacles, but by then I'm hoping the ability to solve problems using Go will already be an asset for the kids. Am I delusional? Maybe, but it's worth a try. ++L
Re: [9fans] c++
Well, in the unequal world of long-post-apartheid rural South Africa where I live, my hope is to teach unspoilt, but also uneducated kids programming using Go on a Plan 9 platform (the teaching, mostly). Doing the same in C++ or Java would demand much more effort on my part and much more powerful resources than I have at my disposal. Eventually, we may get over these obstacles, but by then I'm hoping the ability to solve problems using Go will already be an asset for the kids. Am I delusional? Maybe, but it's worth a try. that sounds reasonable to me! and good for you. - erik
Re: [9fans] c++
Great, you have my admiration, for what's worth. I truly mean that, no sarcasm or anything alike. It would be much better if I could offer my support instead, and maybe some day I could try to do something similar as you are. 2012/11/22 lu...@proxima.alt.za: Of course, it depends on the problem considered. But I think the big problems in the world have little to do with programming languages, particularly c++, which is the topic at hand. Well, in the unequal world of long-post-apartheid rural South Africa where I live, my hope is to teach unspoilt, but also uneducated kids programming using Go on a Plan 9 platform (the teaching, mostly). Doing the same in C++ or Java would demand much more effort on my part and much more powerful resources than I have at my disposal. Eventually, we may get over these obstacles, but by then I'm hoping the ability to solve problems using Go will already be an asset for the kids. Am I delusional? Maybe, but it's worth a try. ++L -- Hugo
Re: [9fans] c++
Exactly this, Dan. Thanks. On Thu, Nov 22, 2012 at 6:38 AM, Dan Cross cro...@gmail.com wrote: Personally, I think that all of this language posturing is geekier-than-thou nonsense. Calling C++ or Java a disease? Really? Suggesting that if you use one of those languages you're somehow mentally deficient? Really? Suggesting someone change jobs because they're asked to program in C++? Really? In the big scheme of things, absolutely none of this matters. Whether one programs in Java, C, Go, COBOL or 370 assembler doesn't really make any difference; one could die tomorrow, and would anyone care what language s/he programmed in? really? This world has bigger problems than that. Programming languages are tools; nothing more. Use whichever one fits the problem at hand. If you're the kind of person who geeks out on and enjoys playing around with new tools; the kind that appreciates the relative aesthetic quality of one versus the other, more power to you: but understand that trying to reformulate problems so that one can apply one's whizz-bang new shiny SuperHammer when the thing that comes out of parents' toolbox will do is just wasting time. I came across this recently, and it really resonated: http://www.lindsredding.com/2012/03/11/a-overdue-lesson-in-perspective/ - Dan C. -- Christopher Nielsen They who can give up essential liberty for temporary safety, deserve neither liberty nor safety. --Benjamin Franklin The tree of liberty must be refreshed from time to time with the blood of patriots tyrants. --Thomas Jefferson
Re: [9fans] c++
and even that aside, can you cite studies that show that the choice of programming language is the dominant term in determining the error rate of the resulting code? Come on, Erik, are you suggesting that because there are no studies, the situation could not exist? It is only my opinion, but I miss the ability to design and build arbitrary adapters for the most common desktop platform(s) available with my limited skills, something I could do and did in the early 1980s. The growth in complexity in that platform has created a much higher entry bar that I certainly can't surmount any more. The associated growth in complexity in programming paradigms goes hand in hand with the more powerful, but less accessible platforms and the occurrence of bugs has almost certainly grown with both. For one of those bugs to creep into a decision making computer and cause real harm is not to be excluded. Sorry if the relevance isn't obvious, I'm always fearful of boring the reader :-) ++L
Re: [9fans] c++
On Thu, Nov 22, 2012 at 11:00:51AM -0500, erik quanstrom wrote: putting aside that i don't believe that the big problems like war and hunger have anything to do with programming errors, There have been already numerous hundreds of millions if not billions of money losses by financial teams due to software bugs. And since, more and more, programs make decisions based only on superficiality (no semantics), software acts as an amplifier. There is the example of big mirrors that are hand polished, not because a human is less error prone : on the contrary, but because a machine makes few errors but always the sames, in this case always in the same area, while a human will make far more errors but random ones, not localized leading to a more even surface. and even that aside, can you cite studies that show that the choice of programming language is the dominant term in determining the error rate of the resulting code? No, i have none since I'm already too busy programming so I have time to gain not to loose... But I will make an assumption: one will find that the most desastrous software bugs are from the softwares the most widely deployed and the more high level ones; that these are put in the wild because they are easy and need to catch an audience in the hurry; and that these have been wanted by people with the most high level view of programming that is the more farther, enforcing the use of the language du jour. So the results are biaised: the languages are not bad by themselves, but because some people use them not by need and not by understanding the needs, but because this is the mandatory language of the trend... -- Thierry Laronde tlaronde +AT+ polynum +dot+ com http://www.kergis.com/ Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
Re: [9fans] c++
it's an Xbox game. and yes, you need it ;) On Nov 22, 2012, at 4:37 PM, lu...@proxima.alt.za wrote: Halo 4 Whatever it is, I haven't needed it in the past 38 years, should I have? ++L
Re: [9fans] c++
Great, you have my admiration, for what's worth. I truly mean that, no sarcasm or anything alike. It would be much better if I could offer my support instead, and maybe some day I could try to do something similar as you are. Nice as it is to receive support, I must warn you that I have not yet embarked on much of a project, although I have the excuse that right now the kids are writing exams and I am busy with an active task that involves programming in Go and learning the ropes as I go. I do not want to give the impression that this is an accomplished thing, just something I am hopefully getting closer to achive. But thanks for the kind words, they do serve to encourage me. ++L
Re: [9fans] c++
it's an Xbox game. and yes, you need it ;) Xbox-360? Surely it runs IBM code? :-) ++L
Re: [9fans] c++
On Thu Nov 22 11:15:36 EST 2012, lu...@proxima.alt.za wrote: and even that aside, can you cite studies that show that the choice of programming language is the dominant term in determining the error rate of the resulting code? Come on, Erik, are you suggesting that because there are no studies, the situation could not exist? i don't know that they do or don't. but to me that was the clear assumption. my hunch is that there is more evidence that development practice and culture have a stronger bearing on the quality of the code than the implementation language. for example, the folks who wrote the space shuttle software (originally ibm) downplayed their language, but made a point of talking about how they developed code. their results were quite good. one software-caused failsafe in all the launches. so that's just an anecdote. i'd like to know more about the subject. - erik
Re: [9fans] c++
9th grade is usually 1st year high school in the us. DeutschlandUSA - - Hochschule college Gymnasium high school Sporthalle gymnasium
Re: [9fans] c++
On Nov 22, 2012, at 8:06 AM, lu...@proxima.alt.za wrote: Of course, it depends on the problem considered. But I think the big problems in the world have little to do with programming languages, particularly c++, which is the topic at hand. Well, in the unequal world of long-post-apartheid rural South Africa where I live, my hope is to teach unspoilt, but also uneducated kids programming using Go on a Plan 9 platform (the teaching, mostly). Doing the same in C++ or Java would demand much more effort on my part and much more powerful resources than I have at my disposal. Eventually, we may get over these obstacles, but by then I'm hoping the ability to solve problems using Go will already be an asset for the kids. Linux + python seems to be succeeding in the raspberryPi world. Then there are things like MIT Scratch which is even easier for kids. In the end what matters is developing thinking/problem solving skills. Simpler languages allow to focus on problem solving. Also, many uneducated or less educated kids have problems with more basic skills of math etc. Hopefully inexpensive tablets can be used to develop proficiency in such subjects (very few good teachers in the kind of places you mention). A friend is developing such web/tablet based lessons for similar kids in India (India has as big a problem of poor ed. as the whole of Africa).
Re: [9fans] c++
On Nov 22, 2012 9:50 AM, erik quanstrom quans...@quanstro.net wrote: i agree with your point. but i think that you the statments you point out are hyperbole. That is fair to an extent. In the big scheme of things, absolutely none of this matters. Whether one programs in Java, C, Go, COBOL or 370 assembler doesn't really make any difference; one could die tomorrow, and would anyone care what language s/he programmed in? really? This world has bigger problems than that. this argument isn't a good one. this is a variation of the finish your plate there are starving kids in africa argument. the fact that there are starving kids in africa has no bearing on if the kid in the quote has had enough to eat. the fact that there are bigger problems in the world does not imply that we ourselves are in a position to do anything about them. heck, i see problems very close to home that i can't do much about. i can try to make arguments, but very often there is no direct influence that can be made. and being right is no comfort. Well, my point was Not, there are kids starving in X, so instead of complaining about language Y, go there and dig a well... but rather to try and put these things in perspective. The point was really aimed at those who seem emotionally consumed by trivial things like programming languages and command shells: there are probably more important things in their own lives that they could devote that same energy towards to better effect. To put it another way, I consider emotional arguments about programming languages so unimportant that they pale in comparison to encouraging my daughter to eat a healthy breakfast; starving kids in other countries didn't even enter my mind. - Dan C.
Re: [9fans] c++
On Nov 22, 2012 9:56 AM, dexen deVries dexen.devr...@gmail.com wrote: On Thursday 22 of November 2012 09:38:06 Dan Cross wrote: In the big scheme of things, absolutely none of this matters. Whether one programs in Java, C, Go, COBOL or 370 assembler doesn't really make any difference; one could die tomorrow, and would anyone care what language s/he programmed in? really? This world has bigger problems than that. Programming languages are tools; nothing more. (...) that assumes any programming language is (at best) a constant or linear factor in problem solving time and complexity. some circles hold opinion that more powerfull programming languages provide polynominal or exponential factor. I'm not sure what that has to do with programming languages being tools: I can drive a nail by banging on it with a screwdriver or my fist, but it's much more convenient to use a hammer. Which tool I choose really depends on the problem I'm trying to solve. In other words, what it assumes is that different languages are better suited to different tasks. aside of that, in various publications number of bugs is found to correlate with line counts or similar metrics, making a more concise language a net win. Ha! Ever programmed in APL? - Dan C.
Re: [9fans] c++
On Thu, Nov 22, 2012 at 09:38:06AM -0500, Dan Cross wrote: Personally, I think that all of this language posturing is geekier-than-thou nonsense. And the rest of this email is wiser-than-thou bullshit. Programming languages ARE tools. If you enjoy using shitty tools to earn your living, when superior tools are available, you ARE mentally deficient. If someone came to me and asked me to rebuild an engine with a hammer and a screwdriver, I would change jobs. With sufficient effort, I'm sure it's possible, but my work would not be enjoyable. It's not all about blogging, Dan.
Re: [9fans] c++
On Thu, Nov 22, 2012 at 05:18:03PM +, Charles Forsyth wrote: Yes, that would be silly. You need only the screwdriver, provided it's sonic, but I suppose that just emphasises your point about tools. You did not get the big picture: the screwdriver is for the engine; the hammer is to deal with people coming arguing about why you use a screwdriver... On 22 November 2012 17:10, Kurt H Maier kh...@intma.in wrote: If someone came to me and asked me to rebuild an engine with a hammer and a screwdriver, -- Thierry Laronde tlaronde +AT+ polynum +dot+ com http://www.kergis.com/ Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
Re: [9fans] c++
On Thu, 22 Nov 2012 18:22:33 +0100 tlaro...@polynum.com wrote: On Thu, Nov 22, 2012 at 05:18:03PM +, Charles Forsyth wrote: Yes, that would be silly. You need only the screwdriver, provided it's soni c, but I suppose that just emphasises your point about tools. You did not get the big picture: the screwdriver is for the engine; the hammer is to deal with people coming arguing about why you use a screwdriver... A big enough screwdriver can be used to deal with people. You guys are so spoiled!
Re: [9fans] c++
so that's just an anecdote. i'd like to know more about the subject. It's not going to be a popular subject, I don't think your curiosity will be rewarded. I do agree that culture is very important. I also think that I was extremely lucky to learn computing at the time when there were many diverse architectures and assembler programming was how you gat the most from the limited resources available. I wish I could teach my target audience the same way, despite the perception that such knowledge is no longer relevant. ++L
Re: [9fans] c++
A friend is developing such web/tablet based lessons for similar kids in India (India has as big a problem of poor ed. as the whole of Africa). The BBC reports exceptional success by some NGOs introducing tablets in rural (central) Africa amongst children. But the price is wrong. Scrappy, perfectly adequate, if antiquated, computer equipment discarded in the West and even locally, by urban residents and organisations, on the other hand, is much more affordable. Electricity is an issue, but the cost of PV panels and inverters is dropping. Please continue with suggestions, I have a few weeks to get started and there may well be many ideas I have not considered (MIT Scratch is one such idea Charles already mentioned) and may make all the difference. Maybe in private mail? Also, I have never seen any educational games for the PS2 (I bought one a while back as an experiment). I would have thought it would be something worthwhile, maybe I'm too far from the mainstream to have come across such games? ++L
Re: [9fans] c++
On Thu, Nov 22, 2012 at 5:32 PM, Richard Miller 9f...@hamnavoe.com wrote: 9th grade is usually 1st year high school in the us. DeutschlandUSA - - Hochschule college Gymnasium high school Sporthalle gymnasium It's much more complex than that, so I didn't even attempt to explain. We can talk about this in Greek though if you like...
Re: [9fans] c++
Ha! Ever programmed in APL? Don't knock it, to learn APL I had to shift paradigm and it was a very important lesson in my programming education. ++L
Re: [9fans] c++
and even that aside, can you cite studies that show that the choice of programming language is the dominant term in determining the error rate of the resulting code? Could it help? http://archive.adaic.com/intro/ada-vs-c/cada_art.html Pavel
Re: [9fans] c++
dan, I don't care about your children. You may sing a different tune if/when Dan's daughter becomes the President of the USA. ++L
Re: [9fans] c++
Nor should you. What she eats is my problem not yours, and it's an incredibly minor problem. Like, only a little more important than worrying about C++ and Java. On Nov 22, 2012 12:33 PM, hiro 23h...@gmail.com wrote: dan, I don't care about your children.
Re: [9fans] c++
Thanks for making my point for me. On Nov 22, 2012 12:13 PM, Kurt H Maier kh...@intma.in wrote: On Thu, Nov 22, 2012 at 09:38:06AM -0500, Dan Cross wrote: Personally, I think that all of this language posturing is geekier-than-thou nonsense. And the rest of this email is wiser-than-thou bullshit. Programming languages ARE tools. If you enjoy using shitty tools to earn your living, when superior tools are available, you ARE mentally deficient. If someone came to me and asked me to rebuild an engine with a hammer and a screwdriver, I would change jobs. With sufficient effort, I'm sure it's possible, but my work would not be enjoyable. It's not all about blogging, Dan.
Re: [9fans] c++
a computer is a multiple purpose device, not an education. Prove it. ++L
Re: [9fans] c++
On Nov 22, 2012 12:43 PM, lu...@proxima.alt.za wrote: Ha! Ever programmed in APL? Don't knock it, to learn APL I had to shift paradigm and it was a very important lesson in my programming education. No doubt. As a learning exercise, such things are great. But I don't know that the brand of brevity engendered by APL really leads to fewer defects. :-) - Dan C.
Re: [9fans] c++
PS2 development is generally too expensive for the cost model of education games, sadly. On Thu, Nov 22, 2012 at 9:39 AM, lu...@proxima.alt.za wrote: A friend is developing such web/tablet based lessons for similar kids in India (India has as big a problem of poor ed. as the whole of Africa). The BBC reports exceptional success by some NGOs introducing tablets in rural (central) Africa amongst children. But the price is wrong. Scrappy, perfectly adequate, if antiquated, computer equipment discarded in the West and even locally, by urban residents and organisations, on the other hand, is much more affordable. Electricity is an issue, but the cost of PV panels and inverters is dropping. Please continue with suggestions, I have a few weeks to get started and there may well be many ideas I have not considered (MIT Scratch is one such idea Charles already mentioned) and may make all the difference. Maybe in private mail? Also, I have never seen any educational games for the PS2 (I bought one a while back as an experiment). I would have thought it would be something worthwhile, maybe I'm too far from the mainstream to have come across such games? ++L
Re: [9fans] c++
In the big scheme of things, absolutely none of this matters. Whether one programs in Java, C, Go, COBOL or 370 assembler doesn't really make any difference; one could die tomorrow, and would anyone care what language s/he programmed in? really? This world has bigger problems than that. My experience with APL suggested otherwise. Assembler programming teaches you what computers can and cannot do and a language like APL teaches you what concepts your mind is able to embrace. COBOL shows you the value of code discipline and fortran the benefits of shortcutting functionality you don't really need in a certain sphere of programming. No one language gives you everything and many programmers only get to see and solve a fraction of the possible problem space. I think it is important for programmers to at least know that their knowledge base is incomplete and, hopefully, come closer to rather than further away from a broader knowledge by attempting to use more rather than fewer tools. That some tools may lead to bad habits, that could be termed a judgement call, or an occupational hazard. ++L
Re: [9fans] c++
No doubt. As a learning exercise, such things are great. But I don't know that the brand of brevity engendered by APL really leads to fewer defects. No, although you don't have to look as far to find the errors :-) ++L
Re: [9fans] c++
On Thu, Nov 22, 2012 at 05:40:25PM +, Pavel Klinkovsky wrote: and even that aside, can you cite studies that show that the choice of programming language is the dominant term in determining the error rate of the resulting code? Could it help? http://archive.adaic.com/intro/ada-vs-c/cada_art.html The study is interesting and the conclusion so too, since there is a way to use a language, partly due to the language, partly due to the know-how and habits of the language (Ada programmers made more comments about what the code was supposed to do, and there was a better locality of bugs indicating a better partitionning). FWIW, litterate programming (cweb) has improved the quality of my C code, precisely because of comments (but learning not to make books, but to get to the point), and subdivision. Fixing or improving is also easier then. But it took me some time to find my style or to understand better how to use it, and the first uses were disastrous (a lengthy discussion beating around the bush and not helping in anyway to describe the problem---not to speak about smart reflexions that were, on re-reading, mathematical nonsense---, followed by a lengthy code that was not directly related to the discussion since I had spent to much time discussing and needed to have the job done...). It was no miracle per se, but a tool helping to improve if used correctly. The situation is complexe. But there are languages that give you the power but enforcing some strict rules (I simply hate the implicit features or automatic polymorphic features of languages; source code where non visible chars have syntactic meaning; I prefer strong type checking enforcements etc.) And there are habits that are taught and learned, and with the very same language, there may be schools, correct and bad ones... That's why, BTW, the trend to think that a programmer or a developer should be dropped when he gets old, is dropping the know-how that has probably not a small effect on the quality of code, independantly from the language by itself. -- Thierry Laronde tlaronde +AT+ polynum +dot+ com http://www.kergis.com/ Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
Re: [9fans] c++
I remembering finding Iverson's book A Programming Language quite interesting. I don't remember the book any more, but I did read the library copy in its entirety, maybe even more than once and was thrilled when the university almost accidentally got an APL interpreter from Univac for their 1106. It got me into real trouble with the cycle counters, it was expensive to run and interactive time was even more expensive. Today it is just a topic for nostalgic conversation, but it really made a difference to me, it was as if a switch had been thrown in my head. ++L
Re: [9fans] c++
Books do still get printed btw. I'm still looking for a copy of Hollindale and Toothill's Digital Computers (from memory, of course), which I remember being another of the formative books I was privileged to read. ++L
Re: [9fans] go forth and ulong no more!
On Nov 22, 2012, at 6:38 AM, Charles Forsyth charles.fors...@gmail.com wrote: I wonder if there's an assumption that usize is a novelty. It has been in u.h for at least 5 years. yes, there was such assumption on my behalf. I haven't seen it before erik posted the man page, now after some grep'ing I see it's being used in the near ports. --- Federico G. Benavento benave...@gmail.com
Re: [9fans] c++
I remembering finding Iverson's book A Programming Language quite interesting. ... Today it is just a topic for nostalgic conversation, What Iverson did next: http://9fans.net/archive/2009/07/265
Re: [9fans] c++
On Thu, Nov 22, 2012 at 07:47:07PM +0200, lu...@proxima.alt.za wrote: a computer is a multiple purpose device, not an education. Prove it. Have you even contacted IAEP or one of the dozens of OLPC working groups in your area?
Re: [9fans] c++
On Thu, Nov 22, 2012 at 12:45:51PM -0500, Dan Cross wrote: Thanks for making my point for me. Someone had to. It sure wasn't you.
Re: [9fans] c++
On Thu, 22 Nov 2012, Richard Miller wrote: 9th grade is usually 1st year high school in the us. DeutschlandUSA - - Hochschule college Gymnasium high school Sporthalle gymnasium I thought that Uni was equal to college here in the states. -- Veety
Re: [9fans] c++
Only if she give me free healthcare and hookers. -- Veety
Re: [9fans] c++
On Nov 22, 2012, at 10:02 AM, Charles Forsyth wrote: I remembering finding Iverson's book A Programming Language quite interesting. I highly recommended Iverson's Turing Award lecture Notation as a tool of thought. http://www.jsoftware.com/papers/tot.htm http://awards.acm.org/images/awards/140/articles/9147499.pdf
Re: [9fans] c++
On Nov 22, 2012, at 10:12 AM, lu...@proxima.alt.za wrote: I remembering finding Iverson's book A Programming Language quite interesting. I don't remember the book any more, but I did read the library copy in its entirety, maybe even more than once and was thrilled when the university almost accidentally got an APL interpreter from Univac for their 1106. It got me into real trouble with the cycle counters, it was expensive to run and interactive time was even more expensive. At school I had a part time job with a cancer epidemiology group (associated with the same school). I used up so much of their funny money at the school computer center (all IBM computers with expensive compute time) by using APL, I had to drop back to using PL/I for them! The thing is, you make far fewer mistakes in APL but they can cause a lot more damage! I wonder if the financial quants made such mistakes in 2008 :-) Today it is just a topic for nostalgic conversation, but it really made a difference to me, it was as if a switch had been thrown in my head. Iverson's papers are still very useful when programming in APL2 or languages like k, j or q.
Re: [9fans] c++
To put it another way, I consider emotional arguments about programming languages so unimportant that they pale in comparison to encouraging my daughter to eat a healthy breakfast; starving kids in other countries didn't even enter my mind. emotional areguments are poor arguments, regardless of the subject. i'm not sure though that i follow that x is more important than y implies that i should not be bothered about potentially important topics within y. - erik
[9fans] C++
Ay, Curamba! This discussion is exactly why we need Boyd. But, let the record show, C++ has been scientifically shown to be an unbelievably crap and monstrously complex language, even though I earn my daily bread by using it. I was a contemporary of Dr Stroustrup when he was spending his time dragging the Cambridge mainframe to its knees using the Simula compiler - the kindest description I ever heard from friends in the computer lab was stubborn- and occasionally, ok frequently, or indeed always, am tempted to view C++ as his revenge on the world for pointing out that he doesn't have a clue how to program efficiently.
Re: [9fans] c++
On Thu, Nov 22, 2012 at 07:47:07PM +0200, lu...@proxima.alt.za wrote: a computer is a multiple purpose device, not an education. Prove it. Have you even contacted IAEP or one of the dozens of OLPC working groups in your area? Sounds more like an accusation than a response. What I choose to do with a general-purpose tool (your argument) is to use it for education. Show me how your argument invalidates my objectives. As for your issue with suppliers of computing resources, there are political dynamics in place around me that render the question moot. Plus, I don't want to get involved in conventional teaching (C++, Java, Windows, etc.) and that closes quite a few doors. ++L
Re: [9fans] c++
On Fri, Nov 23, 2012 at 05:31:52AM +0200, lu...@proxima.alt.za wrote: On Thu, Nov 22, 2012 at 07:47:07PM +0200, lu...@proxima.alt.za wrote: a computer is a multiple purpose device, not an education. Prove it. Have you even contacted IAEP or one of the dozens of OLPC working groups in your area? Sounds more like an accusation than a response. What I choose to do with a general-purpose tool (your argument) is to use it for education. Show me how your argument invalidates my objectives. There was a typo in my message. The word even should have read ever. I love your instant defensive whining, however, as well as your misattribution of the other email. So far, you're the only proven general-purpose tool here. As for your issue with suppliers of computing resources, there are political dynamics in place around me that render the question moot. Plus, I don't want to get involved in conventional teaching (C++, Java, Windows, etc.) and that closes quite a few doors. This is frankly bizarre, since IAEP and OLPC aren't in the business of peddling C++, Java, or Windows. I apologize for misinterpreting your message as anything but another attempt to climb to some rhetorical moral high ground; I thought you were interested in using computers to further education in underserved areas. I withdraw my interest, and apologize for attempting to point out relevant efforts in the areas you claim to espouse. My bad. Carry on.