October 18, 2014
On Saturday, 18 October 2014 at 20:50:42 UTC, ketmar via Digitalmars-d-learn wrote:
> On Sat, 18 Oct 2014 19:42:50 +0000
> Joakim via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com>
> wrote:
>
>> > most people are stupid.
>> No disagreement there, but even the smart ones can only learn so much.
> that's why we should teach kids alot of things while their minds are
> "clear" and ready to absorb alot of knowledge. and, of course, we must
> teach them how to *use* that knowledge.

So much of what's taught today is so worthless that I'm skeptical of anyone claiming kids should be taught "a lot," as if you know what that is.  And given our long history of barely being able to teach any knowledge, with almost no success in getting people to "use" it for something original, that seems like a dead end too.  Better to just let people take their own path and find what works best for them.

>> Many people do not learn simple physics in school, and even if they did, wouldn't necessarily be able to figure out how to fix a specific mechanical system like a washing machine from the general physical principles.
> yes, figuring this out without manuals will be hard. but learning
> physics (proper learning of *anything* for that matter) will give 'em
> understanding of base principles (mechanics, electricity, etc) and the
> ability to extract information from books. it's enough for simple fixes
> that doesn't require to produce hi-tech parts.

I disagree, as there is a large gap of knowledge between the base principles and the complex systems we build on top.  How many people would be able to diagnose and force reallocation of bad sectors in their hard disk if hit with that problem, given the basics of how hard disks work?  I actually ran into this recently and found little info about it, meaning not many people do it.

>> Yeah, we agree if you truly mean making most of what they learn optional, not just "fun" but still required.  Most of the stuff we force on kids today, like multiplication tables, how to divide numbers by hand, or memorizing historical dates, is utterly useless.
> ah, i hated that so-called "history lessons" where i was forced to
> remebmer that in year i don't care about somebody who i don't care
> about did something i equally don't care about. ;-)
>
> yes, i'm sure that we should teach kids how to do things, not just
> making 'em remember that 4*8 is 32. tell 'em what multiplication is and
> then play games with them, games which involves using of
> multiplication. this way kids will learn how to use multiplication. no
> need to remember any tables.
>
> or let 'em build a simple robot and program it to do some funny things.
> it's exciting and they will learn many things about mechanics,
> electricity, programming...
>
> let 'em play a role of factory manager, for example, and they will
> develop a good understanding of how economics works.
>
> and so on.

We agree that practical application is a better way to motivate learning than absorbing theory from a book first, at least for most students.  But some kids are just not going to enjoy those multiplication games or robot building and I'd say it's better for them to choose something else to pursue, rather than forcing them to pick up multiplication when it's a completely useless skill, now that everybody carries around a calculator with them in their phone these days.

>> >> Yet, civilization is made up of people like you, who would all miss those mechanical systems far more than computers.
>> > it's a huge difference between "i miss my washing machine" and "all our
>> > communication and data processing systems are foobared".
>> Yet, I bet you they'll want that washing machine working far more than the internet.
> most people can't see a whole picture. it's bad. we must teach kids to
> understand how different things are interconnected too.

At this point, _I_ can't see your "whole picture." :) I made a simple point, that building and fixing washing machines or software is something most people don't want to do.  Saying they should learn those things anyway doesn't make sense.

>> Isn't that what people use Excel macros for?
> aren't writing excel macros a programming?

My understanding is that you can write simple mathematical formulas, which is as far as most probably go, even though it may also allow iteration and other programming constructs.  My point, that I made below, is that people who need some of the power of programming without the training can use cruder tools like these most of the time.

>> There are specialized tools for the job, that are more limited than full programming languages but easier to use for the average person.
> i never meant that all people should learn "full programming
> languages". they have to know how to write algorithms, but not
> necessary what "pointer" is or what is the difference between manual
> memory management and garbage collecting. yet if i'll show 'em simple
> recursive fibonacci function, they must be able to understand it. hey,
> it's lambda calculus, and lambda calculus is so simple, that even
> 7-year kid can understand it! i checked that, kids are really able to
> understand it. ;-)

I wasn't going that far either, but I'd say even simple python is useless for most people.  As for lambda calculus, I don't know what that is: I'm not a CS major. :) But even if some kids can understand it, that doesn't mean most should learn simple programming.

>> All of the above, anything you'd use a portable computer for that doesn't require much typing and would benefit from a larger screen than your smartphone.
> instagram and social networks. ;-) two of the most useless things on
> the planet.

I'm not on any of those, but I have occasionally seen them on other people's phones.  People love checking each other out and those apps give them what they want.  Just because you and I don't do it doesn't mean many people don't find it worthwhile.  It's like TV, most of it is junk but there's some good stuff on there too.

>> And you're not limited to the junk on the idiot box, you can download any video from the web and watch on the go.
> and can't easily mark and categorize that until someone wrote
> "web-service" for it. 'cause for doing it locally i need... ah, to
> write some scripts. and i have no keyboard (no, that on-screen crap may
> be good for tweeting, but it's generally unusable). i.e. tablets *are*
> idiot boxes, just with fancy pictures from over the world.

I believe that's what people use facebook and youtube "likes" and tags for.  You may consider anything without a full keyboard an idiot box, but there's a lot of stuff on the web that's much better than anything on TV, but doesn't require text input.

>> I don't read books anymore
> even technical ones? ;-)

I think the only technical book I've read in the last decade is Andrei's TDPL, which I bought in print and got about halfway through.  I've probably read bits and pieces of maybe five other non-technical books here and there in the same timespan, which were all given to me as gifts.  I've never read an ebook, yet I read extensively online.  Books are an outdated form, now that we have blogs.

>> but with their high-res displays up to 200-300 ppi these days, reading text is very nice on tablets too.
> i prefer to use some specialised device to reading text. it's smaller,
> it was made especially for reading texts and it can last alot longer
> without recharging.

I've never understood the appeal of e-ink devices, but my 10", 1.3 lb tablet is fatiguing to hold for extended periods of time, constantly reloads webpages because it vacates their memory, and only lasts for about 5-6 hours of uninterrupted use, so I don't use it as much as I thought I would when I got it almost two years ago.  I'm hopeful that a smaller, newer tablet will fix most of those issues, whenever I pick up my next one.

> i mean that tablets can do all that things, but specialised devices are
> just better. and if i know that i'll have to spend some time waithing
> for something, i'll take my player and "ebook" with me. or subnotebook
> -- hey, it has real keyboard!

It sounds like you have different priorities than others.  That's great, you can carry around all those devices and they can carry around their tablets. :)

>> Actually, the progression went the other way, people dropped text UIs for graphical UIs. :)
> that's 'cause they never used good UIs and we have no truly component
> environments. Oberon system was great even with it's TUI, and it was
> really exciting with it's gadgets UI. i'm still missing my Oberon
> system.

I don't know much about Oberon, but that gadgets UI sounds like it's still a GUI.

> by the way, if D will develop good runtime reflection (which is
> required for precise and moving GCs anyway), we can resurrect Oberon
> gadgets with it.
> fast compiler + runtime reflection + dynamic modules == excellent
> component system.
>
>> I'm not saying _you_ need to leave the terminal, but for most people GUI tools like Automator are enough.
> terminal is not the best thing too. ;-) and i have nothing against
> automator-like tools when they allow flexible scripting when user needs
> it. but anyway such tools just trying to achieve what component system
> has out of the box. ;-)
>
> there is no such thing as "application" in true component system (nor
> even a "file" for that matter). user can combine and glue components in
> any way he wants, building anything he wants.
>
> e-mail reader? ok, create new document, drop treeview component into
> it, drop html viewer into it, drop "e-mail data source" into it,
> connect 'em and voila! you have a simple working e-mail reader!
>
> want some filtering? drop proxy data source into document, connect it
> to e-mail data source, reconnect tree view to proxy, write some filters
> and... voila, you have e-mail reader with filtering.
>
> save this document and voila: you have "e-mail reading application"!
>
> the magic works both ways: take complex e-mail reading application,
> replace some components, add another components -- and you have e-mail
> reading application which is customized to your tasks.
>
> open two documents -- and you'll have two automatically synchronized
> readers.

I actually agree with you that some sort of component system like that is likely the future, even if it's only ultimately used to make developers' lives easier and largely unconfigured by users themselves, though I haven't looked much into the complex historical reasons why it hasn't happened yet.

> have you ever seen BlackBox Component Builder? it's written in
> Component Pascal, but the basic principles are language-independent.
> i'm dreaming about BCB with D as base language...

No, never heard of it, sounds interesting.

>> I wouldn't be so quick to call it "stupid" as much as learning takes effort and you only have so much time and effort to learn so much stuff.  Better to focus on the stuff that interests you and leave the programming to others, at least for most people.
> simple scripting *is* programming! ;-) i'm not talking about "everybody
> must know how to write kernel module" here, as i mentioned above. it's
> more like writing in general: most people can write, but we still have
> professional writers. yet almost anyone can write a page of text
> describing what he did last evening. this will not be a bestseller ;-),
> of couse, but there's no need to hire a professional writer for such
> task.

I'd say simple scripting is more like learning how to use basic Photoshop, a niche skill that most people don't need and don't want to learn, so they pay the few people who enjoy doing it instead.
October 19, 2014
On Sat, 18 Oct 2014 23:38:35 +0000
Joakim via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com>
wrote:

don't you think that we are going in circles now? not that i'm tired of this conversation, but i see that we get each other's POVs, and have no more arguments to convince each other. ;-)

i respect your opinions but just don't agree with them. ;-)
besides, it's increasingly hard for me to answer, 'cause my English
writing skill is awful. i can understand you but can't clearly express
myself.


> >> I don't read books anymore
> > even technical ones? ;-)
> I think the only technical book I've read in the last decade is Andrei's TDPL, which I bought in print and got about halfway through.  I've probably read bits and pieces of maybe five other non-technical books here and there in the same timespan, which were all given to me as gifts.  I've never read an ebook, yet I read extensively online.  Books are an outdated form, now that we have blogs.
i believe that blog posts and textbooks compliments each other. i prefer textbook for learning new language, for example, and read blogs to learn some interesting/funny/hidden features.

> I don't know much about Oberon, but that gadgets UI sounds like it's still a GUI.
sure, it's GUI, but with some "consolish" pieces dropped in. you can connect components and you can write some textual commands/scripts to modify component behavior. best from both worlds! ;-)

> I actually agree with you that some sort of component system like that is likely the future, even if it's only ultimately used to make developers' lives easier and largely unconfigured by users themselves
it's simple enough for users to modify. changing layouts by dragging components, embedding components into components and so on. this things are mostly "visual" and easy.

people love to customize their working environment if it's easy enough. ;-)

> though I haven't looked much into the complex historical reasons why it hasn't happened yet.
'cause so-called "software industry" is not ready to die yet. ;-) with proper component system there will be no much sense in selling "applications". and selling components is much harder: how many people will buy "e-mail data source component"? it's not even visual!

and selling "e-mail reader" is worthless, 'cause people will deconstruct it to basic parts and build their own "application", and will not buy "shiny new version with improved interface". they will not even buy the "full package" if they only need one part of it, like "faster e-mail data source component".

so the only way to keep "software bussines" (as we know it) running is turning component system back to non-component one. take, for example, COM technology (which is badly done, but still usable component system). how much software uses COM to decouple application in reusable parts? even microsoft realised that this will be disaster and turned COM to "advancing scripting interface" instead of truly component system.

> > have you ever seen BlackBox Component Builder? it's written in
> > Component Pascal, but the basic principles are
> > language-independent.
> > i'm dreaming about BCB with D as base language...
> No, never heard of it, sounds interesting.
try it, it's fun and free! ;-) you'll see "component programming system" in action. it's not "component OS", but it's great programming environment nevertheless. D is almost capable of powering such system.

if only i had more free time and motivation... creating something BCB-like can be that "killer app" D needs.


October 19, 2014
On Thursday, 16 October 2014 at 22:26:51 UTC, RBfromME wrote:
> I'm a newbie to programming and have been looking into the D lang as a general purposing language to learn, yet the D overview indicates that java would be a better language to learn for your first programming language. Why?  Looks like D is easier than Java...

I have taught programming and programming language for several years, last 4 in University. In Belarus we have traditionally program that starts with C as subset of C++ (or even pure C), than C++ and only after that Java or C#. There are many high-qualified programmers, who absolve such program. Thus we have a proof, that even C can be first language. But in my opinion C is not the simplest way in programming for beginners. D is perfectly suite education purpose (in place of C and C++ of our belarusian program), because it has C-like syntax (Pascal hasn't), it is multi-paradigmal and has procedural-structural paradigm as C and C++ (but not Java or C#) and this paradigm is start point of programing for years, D also has more convenient and clearer syntax than C and C++. The main objection vs. dlang is that D is unpopular and probably you can't find job offer in this language. But this objection is weak, if D is your first language, because IT-student learn much more than one language during education, and D is very good start and view point for such languages as C/C++, Java and C#, the most popular professional languages. And many habits that will be learned in D (such is unittesting, contract programing and many others) will serve well in future for language without intrinsic support of these features.


RBfromME, I have interest to teach D as first language and also to teach foreigner. So if you want, I can tutor you through e-mail and github totally free.

harald_zealot@tut.by
October 19, 2014
On Sunday, 19 October 2014 at 04:55:55 UTC, ketmar via Digitalmars-d-learn wrote:
> On Sat, 18 Oct 2014 23:38:35 +0000
> Joakim via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com>
> wrote:
>
> don't you think that we are going in circles now? not that i'm tired of
> this conversation, but i see that we get each other's POVs, and have no
> more arguments to convince each other. ;-)

I guess, when does anyone ever convince anyone else online?  People usually just throw their arguments at each other and leave holding the same opinion. ;)

>> >> I don't read books anymore
>> > even technical ones? ;-)
>> I think the only technical book I've read in the last decade is Andrei's TDPL, which I bought in print and got about halfway through.  I've probably read bits and pieces of maybe five other non-technical books here and there in the same timespan, which were all given to me as gifts.  I've never read an ebook, yet I read extensively online.  Books are an outdated form, now that we have blogs.
> i believe that blog posts and textbooks compliments each other. i
> prefer textbook for learning new language, for example, and read blogs
> to learn some interesting/funny/hidden features.

That may be true now, but soon it will be just blogs.

>> I don't know much about Oberon, but that gadgets UI sounds like it's still a GUI.
> sure, it's GUI, but with some "consolish" pieces dropped in. you can
> connect components and you can write some textual commands/scripts to
> modify component behavior. best from both worlds! ;-)

The desktop UI paradigm needs to be completely redone, from the ground up.  Current desktop GUIs are too limiting and the terminal is powerful but antiquated.  The problem is how best to combine the two, since one is focused on keyboard input whether the other mostly uses trackpad/mouse.  I suspect voice will have to be the new input to this new desktop GUI.

>> I actually agree with you that some sort of component system like that is likely the future, even if it's only ultimately used to make developers' lives easier and largely unconfigured by users themselves
> it's simple enough for users to modify. changing layouts by dragging
> components, embedding components into components and so on. this things
> are mostly "visual" and easy.
>
> people love to customize their working environment if it's easy
> enough. ;-)

I agree that customization should be made really easy, but what percentage of users ever configure their settings themselves now?  I bet it's a negligible percentage.  What I think is more likely is that they will pay someone to configure the component desktop you envision to suit them, but that person won't necessarily be a developer, more likely a power user.

>> though I haven't looked much into the complex historical reasons why it hasn't happened yet.
> 'cause so-called "software industry" is not ready to die yet. ;-) with
> proper component system there will be no much sense in selling
> "applications". and selling components is much harder: how many people
> will buy "e-mail data source component"? it's not even visual!
>
> and selling "e-mail reader" is worthless, 'cause people will
> deconstruct it to basic parts and build their own "application", and
> will not buy "shiny new version with improved interface". they will not
> even buy the "full package" if they only need one part of it, like
> "faster e-mail data source component".
>
> so the only way to keep "software bussines" (as we know it) running is
> turning component system back to non-component one. take, for example,
> COM technology (which is badly done, but still usable component
> system). how much software uses COM to decouple application in reusable
> parts? even microsoft realised that this will be disaster and turned
> COM to "advancing scripting interface" instead of truly component
> system.

I agree that the software business likely just didn't do it right, but I doubt that's all of it.  Any component system isn't going to be as fast and efficient as a bespoke system.  Maybe the hardware just wasn't fast enough for that lack of efficiency, but with how powerful hardware has gotten these days, maybe we're finally ready for it.

>> > have you ever seen BlackBox Component Builder? it's written in
>> > Component Pascal, but the basic principles are language-independent.
>> > i'm dreaming about BCB with D as base language...
>> No, never heard of it, sounds interesting.
> try it, it's fun and free! ;-) you'll see "component programming
> system" in action. it's not "component OS", but it's great programming
> environment nevertheless. D is almost capable of powering such system.
>
> if only i had more free time and motivation... creating something
> BCB-like can be that "killer app" D needs.

I've loaded up a chapter from this pdf book about it:

http://www.cslab.pepperdine.edu/warford/ComputingFundamentals/

I'll take a look.
October 20, 2014
On Sun, 19 Oct 2014 23:34:17 +0000
Joakim via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com>
wrote:

> The desktop UI paradigm needs to be completely redone, from the ground up.  Current desktop GUIs are too limiting and the terminal is powerful but antiquated.  The problem is how best to combine the two, since one is focused on keyboard input whether the other mostly uses trackpad/mouse.  I suspect voice will have to be the new input to this new desktop GUI.
i'm not sure that voice is the way. but i'm very bad as a prophet. ;-)

> I agree that customization should be made really easy, but what
> percentage of users ever configure their settings themselves now?
>   I bet it's a negligible percentage.  What I think is more likely
> is that they will pay someone to configure the component desktop
> you envision to suit them, but that person won't necessarily be a
> developer, more likely a power user.
that's 'cause people need to click some obscure checkboxes to change something. yet if they can just drag a color from color picker to paint element, move some parts of UI around, change size and all this without digging in "preferences" windows (which aren't very appealing to average Joe), they doing this. it's all about making simple things simple and complex things possible. ;-)

when people see how easy they can change some visual aspects, they may eventually try to go deeper. add a button with a simple text command. add another button with two commands. and so on. ;-)

sure, most people will just recolor their UIs and change some layout. but that's important too, 'cause small things can have a big impact.

> I agree that the software business likely just didn't do it right, but I doubt that's all of it.
ah, sure, that's not the *only* reason. everything has more than one reason. ;-)

> Any component system isn't going to be as fast and efficient as a bespoke system.
it's a common misconception based on wrong attempts to build component systems. having one uniform language (thus dropping attempts to build "one-size-fits-all" system) makes component system very fast. at least not slower than any other system with dynamic libraries, and sometimes even faster. Oberon system was really fast, even with it's very poor compiler.

the key is the solid language foundation, and D can give us this.

> I've loaded up a chapter from this pdf book about it: http://www.cslab.pepperdine.edu/warford/ComputingFundamentals/ I'll take a look.
you can download BCB itself, it has nice dox and full sources. and it works under wine.


October 20, 2014
On Friday, 17 October 2014 at 23:31:46 UTC, Joakim wrote:
> Tablets are optimized for basic usage, not saving files and document editing and whatever else you might want to do on a PC.  Most people just need a basic appliance that isn't going to catch viruses or require registry hacks.

LOL http://wmpoweruser.com/infected-android-phones-now-outnumber-infected-pcs-on-mobile-networks/
October 20, 2014
On Monday, 20 October 2014 at 13:52:10 UTC, Kagamin wrote:
> On Friday, 17 October 2014 at 23:31:46 UTC, Joakim wrote:
>> Tablets are optimized for basic usage, not saving files and document editing and whatever else you might want to do on a PC.  Most people just need a basic appliance that isn't going to catch viruses or require registry hacks.
>
> LOL http://wmpoweruser.com/infected-android-phones-now-outnumber-infected-pcs-on-mobile-networks/

Are you laughing because of this? :)

"Android devices accounted for 60% of total mobile network infections, and 40% of mobile malware originated from Windows laptops connected to a phone or connected directly through a mobile USB stick or W-Fi hub.

Infections on Windows Phone, iPhone and BlackBerry devices made up less than 1%

'Android smartphones are the easiest malware target,' said Kevin McNamee, security architect and director of Alcatel-Lucent’s Kindsight Security Labs, but noted 'but Windows laptops are still the favourite of hard core professional cybercriminals.'”

Note my original reference to not being able to save files and the very low rate of infection on the iPhone.  Android is a little different because it's so open, just like Windows, and I bet most of those infected Android devices were rooted or old.  If you do the math, there are a lot more Android devices than Windows laptops, so the fact that there are almost as many infected Windows laptops means the infection rate of Windows is much higher.
October 20, 2014
On Mon, Oct 20, 2014 at 2:40 PM, Joakim via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
> On Monday, 20 October 2014 at 13:52:10 UTC, Kagamin wrote:

> If you do the math, there are a lot more Android
> devices than Windows laptops, so the fact that there are almost as many
> infected Windows laptops means the infection rate of Windows is much higher.

All the more, those numbers reflecting infection rates on mobile networks.
October 21, 2014
On Thursday, 16 October 2014 at 22:26:51 UTC, RBfromME wrote:
> I'm a newbie to programming and have been looking into the D lang as a general purposing language to learn, yet the D overview indicates that java would be a better language to learn for your first programming language. Why?  Looks like D is easier than Java...

Honestly, I'd recommend starting with VB.net or C# (preferably C#) over D, as:
1) They're simpler, no template magic, not as low level, etc.
2) Having an excellent IDE is very nice for starting out, seeing errors right as you type them, seeing all the methods and how to call them, having the documentation right there in your IDE, and not having to worry about whether what you just wrote is something that the IDE's parser can't handle or is actually invalid code.
3) Being significantly more popular is in general a boon, more tutorials are available (though D has some nice resources like Ali's book), and you're more likely to find a solution to a problem through Google as more people have come across it.
4) Having to deal with any compiler bugs would be very frustrating when starting to learn programming. D still has plenty, even if they're much less noticeable now. Trying to figure out why something doesn't work only to realize it's a compiler bug is frustrating.
5) Having a drag-and-drop GUI designer is very nice. D is still difficult to use for GUIs, and when starting it's really nice to see something significant on the screen right away.
6) You probably won't use most of D's features when you're just learning, so much of D's advantages are gone.

D is an awesome language, but I would not recommend it for someone completely new to programming. Once you get the hang of programming, D is an excellent language, until then something simpler, more popular, and more supported, would be better.
October 21, 2014
On Tue, 21 Oct 2014 09:01:32 +0000
Kapps via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:

> no template magic
that's very bad. it's time to stop making people think that templates are inevitably arcane.