Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×

Comment Re:Balance taxes? (Score 1) 299

And there are much better ways to teach programming. For a very long time there has been a movement to bring programming to the masses, as if, somehow, everyone would be able to write beautiful, intricate code to solve their most complex problems.

You probably already know how to program, and I think that's why you seem to miss the point entirely. ;-) "Programming for the masses" is like basic literacy/alphabetization, not like formal training in High Literature: its goal is not to solve complex problems with programming tools, just like the point of literacy is not that all people will be able to write poetry. It's that they can manage the very basic, trivial tasks on their own, without having to hire a scribe (for reading and writing) or developer (for programming) to do simple tasks like basic accounting, sending letters, or in the case of programming, building simple automation tasks - like setting an alarm or opening your garage's door when the right circumstances happen. Note how there is no universal system nowadays that the general public could use to create those two trivial examples.

That niche is mostly served nowadays with apps for phones and tablets, which the end user can discover and use on their own from the app store to solve most common needs; but the developer is not totally removed from the equation yet, as even for really simple needs, the user is restricted to the subset of interactions that developers have created in advance, and the user can't build their own on top of them.

Writing programs requires clear, linear thought. It requires thinking in terms of structures and systems.

That's true of most current programming environments, but it's not an inherent property of what we call "programming" if understood in a general sense (that of creating new automated behaviours), specially when we restrict it to the basic tasks I'm talking about. Programming by example, case-based reasoning, procedural inference, constraint-based layouts... or even dexlarative markup languages are tools that allow creating some kinds of automations without using a procedural language nor learning an exact syntax.

The field of End-user Development studies those tools in a scientific context, and has some achievements in their history. Many of these tools are limited in scope (they apply to special situations) and are not general-purpose tools; but some of these, like the spreadsheet and Hypercard, are Turing machines at their core and can ultimately be used for any programming task.

The essence of EUD tools is not defined in terms of linear thought but in terms of semantics and inference of meaning - i.e. being able to make sense of the system as presented and use it to solve your current problems. All humans are good at sense-making, provided the tools are tailored to cover their needs and knowledge background. I've learned some research on semiotics applied to Human-computer interaction, and it shows how to study and build such tools. That is not the approach that is taught in common comp-sci curricula, though.

There are plenty of graphical programming languages that reduce the need for precise syntax, but they only REDUCE it, not eliminate it, and they still require procedural thinking which, ultimately, presents an insurmountable difficulty for many people.

True again, but again not an insurmountable problem. Information workers have managed to use Excel as a shared database with abstract datatypes and Outlook as a workflow management and collaborative creation tool, and as structured personal storage, all without learning how to create a single function definition. That's a Good Thing, though it would be better if they could use similar tools created specifically for those purposes.

Sure, everyone should be given basic skills in writing, and perhaps in drawing or painting as a child, and so perhaps everyone should be given basic skills in programming, but beyond that, why?

Who says there needs to be anything beyond that? The main problem for end users is that their essential needs are still not covered with current programing platforms, as basic programming skills are not enough to build even the most basic automation. The knowledge required to build anything practical like a simple app or Web page is still too much; the learning curve is just too steep. That's where a tool like Hypercard, with its hands-on approach and simple conceptual model, would help.

Comment Re:I don't like (Score 1) 47

Wikipedia is dead, for anything other than keeping track of trivia about popular media anyway. All the policies about removing content in the name of improving quality, without adding proper quality processes on top, killed it around 2007 - not coincidentally, that's where the decline of editors started.

The huge knowledge base that is Wikipedia is merely waiting for someone to successfully fork it; it may very well be Google graph, as they're the best positioned.

The first company that manages to define a process to separate spam from good content, and keeps the knowledge clean and growing from all valid contributions through a semi-automated technique, that avoids all the drama over rules and edit warring over content, will be the one to keep all the users. And then it will be instantly bought up by Google, who have been eager for a way to replace Wikipedia for a long time.

Comment Re:I don't get the rage (Score 1) 239

The gamers behing GamerGate make a really good point: that they like their games violent and showing b00bs, female bare skin and women in scant armor, and these games should not cease to exist merely because some people are offended by them.

The journalists against GamerGate make an equally really point, though: that such games do not belong in mainstream titles intended for all audiences; they should be distributed through special channels as the soft porn they are.

Comment Re:Rose Glasses (Score 2, Interesting) 320

While I enjoyed those older cartoons as a child, now, as an adult I can totally see why they are no longer screening. They were rife with racism, violence, sexism and other crap that I wouldn't wan pumped directly into my child's brain.

On the other hand, you watched them and grew to know it as crap. Your children, not being exposed, will not learn to recognize it, and as adults they may be more likely to fall prey to it.

There's something to be said about playing with risky or shameful behaviors in safe environments - it's the natural way for learning to face the darkest aspects of life.

Comment Re:Why? (Score 1) 549

Uh... because each particular species can't choose to be within the survivors or the extinct? That's mostly a random outcome, based on their adaptability to the new environment - which you don't know a priori what will be, or what survival skills will require.

We were as a species on the verge of extinction once, it could very well happen again.

Comment Re:Hexidecimal (Score 1) 169

Actually, the message in that OS version is fairly acceptable for its purpose and context. It identifies the nature of the problem using understandable words, offers a course of action for recovering from it, and explains the potential outcomes of following it. That's pretty much what the user needs to know.

If you want to debug it you should use the logs anyway, so the message for the end user is better written in plain English.

Comment Re:Coding at that level becomes art (Score 1) 172

There's a very basic level of hygienic measures that are are taught to first graders and nobody disagrees with. Things like don't overuse global variables, don't build one-mile-long procedures, avoid spaghetti code by banning goto, declare the type of your parameters in C.

For other rules of style, yes, every house has their own rulebook.

Comment Re:Institutional hypocrisy (Score 1) 186

Anyone claiming that the Streisand effect somehow harmed this guy because of the original information is now widely known , doesn't understand a damn thing about the case.

The man didn't want to hide that he was once in debt to the point of having his home auctioned - had that been his only goal, starting a legal case on it would be idiotic. The point was to remove a very prominent display that implied the false impression he was still in debt, that was shown without any context to antone who Googled his name.

Anyone looking for him now will know about tge corrections he made. As this was his goal, it's a net win for him.

Comment Re:I still can't understand this insanity. (Score 1) 186

There is no, cannot be any, justification for removing indexes of factual reference

Suppose someone covers the walls all over your neighbourhood with signboards saying "See at <URL> photos of ReekRend [your real name here] picking his nose/drunk as a skunk/bathing nude at the beach that night/whatever" that is factual but inconsequential, though makes you and your loved ones ashamed of something in your past, up for anyone visiting you to see them. Would you want those to be removed, or would you be OK with those being a permanent feature of your street?

Now does it make a difference if the signboards are virtual?

Comment Perspectives on End-User Development (Score 1) 30

With today programming languages, creating new new software requires learning a complex syntax with very specialized rules on how to combine words, even for creating very simple software (for example, web pages with trivial interactions such as folding and dragging items).

Some approaches to allow end users to build automated behavior exist, but they can only go so far. There are "drag and drop" interface builders for building web pages with forms, and graph languages for transforming data. But they only allow reusing pre-defined components which are built with traditional languages. Any behavior not supported by those components can not be added to the program.

There are also rule-based visual systems like Agentsheets that allow defining new behaviors without a strict complex syntax, but those are difficult to reason about when behaviors depend on several levels of nested rules.

My question is: what would be your preferred approach to achieve the goal of allowing end users build their own simple software programs? This assumes that we define "program" in a loose way, not necessarily in the traditional way but referring to any software artifacts for defining repeatable processes to handle information such as:
* building and classifying collections of related data, transforming the shape of parts of a document...
* or for automation of actions in time (turning on and off lights and engines at particular times or in a pre-defined pattern, sending messages to groups of people that follow certain criteria under some triggering condition)...

All this without requiring that the user learns a scripting language or otherwise needs to form a mental model of how exactly the program's execution evolves in time within the machine components.

Comment Re:Copyright owners (Score 1) 108

Did you get that in writing? If not, don't treat it as a gift. If you include it in the GPL code without explicit permission, you may taint the whole project. In fact, many people contribute to FLOSS and Open Knowledge projects with the explicit expectation that it won't be relicensed, and we refrain from contributing to such projects without those guarantees - so yes, there's a strong expectation that contributing to a GPL project is done under GPL terms and no others. The GPL was explicitly designed with that goal in mind.

You're not the copyright owner of content you didn't write, period. And if you didn't write it you can't relicense it without written permission. The FSF requests that contributors assign them their copyrights because of this very reason.

Slashdot Top Deals

Arithmetic is being able to count up to twenty without taking off your shoes. -- Mickey Mouse

Working...