Live data from Hacker News

Where is the casual programming?

iamsamy.blogspot.com

61–70 of 83 posts

Re: Where is the casual programming?

#61

Earlier quoted context omitted.

Cars aren't used to cross the continent today, airplanes are. And most people have no idea how to use (pilot) an airplane, they pay someone else to do it for them.

For now.

They never will. Before that happens we'll have fully automated planes operated by -- guess what? -- software.

Software is not really comparable to cars because it's not a solution -- it's a tool to build solutions. Comparably, we have devised easier ways to drive nails into wood (nailguns instead of hammers), but nails still exist and have to be driven into wood. So I don't think software will ever really be casual, just like building construction will never really be casual. Just too many variables to take into consideration.

Re: Where is the casual programming?

#62

As a direct answer to the question and based on the problems the author raises, OS X's "Automator" is just that. It's casual yet still pretty powerful automation/programming. It loads fast, it has a visual IDE of sorts, and it can do a lot of jobs you'd otherwise use shell scripts for.

(author here) I'm not a Mac user, but took a look at Automator now. It seems a big step in that direction. Still, I'm not sure it makes the casual programming problem solved. Maybe I misrepresented the problem; let me give some more examples on casual programs that could be made easier... * Quickly testing small game ideas or demos (programming as self-expression). * Solving an ACM problem or one of those programming…

Give this a shot http://docs.racket-lang.org/quick/index.html

See the bottom link too.

Re: Where is the casual programming?

#63

As a direct answer to the question and based on the problems the author raises, OS X's "Automator" is just that. It's casual yet still pretty powerful automation/programming. It loads fast, it has a visual IDE of sorts, and it can do a lot of jobs you'd otherwise use shell scripts for.

(author here) I'm not a Mac user, but took a look at Automator now. It seems a big step in that direction. Still, I'm not sure it makes the casual programming problem solved. Maybe I misrepresented the problem; let me give some more examples on casual programs that could be made easier... * Quickly testing small game ideas or demos (programming as self-expression). * Solving an ACM problem or one of those programming…

I think there are two problems here, both of which could be chipped away at, but neither will be completely solved anytime soon.

First, you have the fact that users don't know enough to solve abstract problems with programming. As programmers we have this deep base knowledge that we subconsciously draw upon. It's impossible to create a platform that makes it trivially easy to "test small game ideas" without narrowing the scope to trivial game types. People need a foundation to figure out how to put the pieces together. Fortunately, a lot of this is just familiarity with computers, so every new generation gets better at this, making the problem more tractable over time.

The other, is that software is truly an organic ecosystem. There is no designer that is coordinating the software world. The closest we have are closed platforms like Apple provides (which is still limited in overall scope) or standards (which are defined in a deliberately narrow scope for modularity's sake). So to make a single uniform environment that could do everything a casual programmer might want to do, and make it consistent, you'd have to write some kind of monolithic standard and convince a large minority of all software writers to support it in some fashion. The UNIX philosophy and POSIX are attenots to do something like this, but as you alluded to, it's still highly non-trivial to get your footing underneath you. To create an even higher-level standard seems almost impossibly difficult, but I suppose it's possible that progress could be made by focusing purely on a new high-level language and GUI. I'm not holding my breath though.

Re: Where is the casual programming?

#64
Where is the casual carpentry? Why can't I make my own tables and chairs? How do I know which tools to buy? Why so many different types of screw heads with no clear indication in the box as to which kind should I use? Tapered shank what? How do rivets even work?! And it's not like it's a new thing either we have had wood manufacture for millennia!

IMHO some things will never get past the hobbist-accessible stage.

Re: Where is the casual programming?

#65
post #64

Where is the casual carpentry? Why can't I make my own tables and chairs? How do I know which tools to buy? Why so many different types of screw heads with no clear indication in the box as to which kind should I use? Tapered shank what? How do rivets even work?! And it's not like it's a new thing either we have had wood manufacture for millennia! IMHO some things will never get past the hobbist-accessible stage.

I agree. If the OP was talking about mechanics, he could be saying: "I want to build a hotrod from scratch, but oh look so many little parts!".

I think that what many people fail to realize is that although the intended purpose seems simple enough, the tools to do it are sitting atop so many levels of abstractions that without prior knowledge you just have no way to figure where to start assembling the parts. The only way for a hobbist to manage that, would be with the right tools pre-assembled for some finite set of purposes that could guide most of the work.

Re: Where is the casual programming?

#66
post #49

Earlier quoted context omitted.

> var n = 42; n.[[TAB]] No auto-complete. It's severely limited to only live objects. Which may be an argument for REPL, but it's not an argument for "dynamic languages can have autocomplete".

I have intelligent object method/property auto-completion in Python in Emacs. The argument for "dynamic languages can have autocomplete" is that they already do in a variety of modern editors (like Emacs) and IDEs (like PyCharm et al). You're not only ignorant, but proudly so.

Vim can be a decent, fast Python IDE with the right plugins too: http://dancingpenguinsoflight.com/2009/02/python-and-vim-mak...

Re: Where is the casual programming?

#67

Earlier quoted context omitted.

I'm sorry, but this analogy is awful. Getting from coast to coast certainly HAS changed in the last 100 years. 100 years ago, you had railroads or mostly dirt roads. A crap ton of infrastructure has been put into it (interstates and the intensely complex logistics of maintaining them). A pile of services exists around this problem (airlines, and the even more complex logistics of keeping them running safely and profi…

"Further, a car is simple to use out of the box" Exactly my point. They didn't use to be simple. Crank, choke, throttle, water in the battery, where's the next fuel repository, where are my goggles, where is the rug for my legs, etc. Now they are, and you just think of moving your body from here to there, and almost not at all about how to make your car help you do that. Now people use a car casually . It's that kind…

My point was that a car is an application. Facebook is also simple to use out of the box, and is far more "a car for the web" than a "transportation logistics engine for the web". There is NOT an intuitive interface out there for designing a car or a robust transportation logistics system.

Re: Where is the casual programming?

#68

There is one statically typed language with a nice toolchain that allows interactive (REPL) programming and scripting: F#. Try the steps here[1]. They're old, but still work, and work pretty well. It's fast; there's no need to create a project or solution. You can type your code all you want, use IntelliSense and all that, then select and Alt-Enter to execute it. If you don't want to load VS, you can just run "fsi" f…

And F# is not the only statically typed language with a (built-in or out of the box) REPL: ML, Haskell, OCaml, and Scala all have REPLs. Some of these predate Java and C#, but I don't know what it is about those languages and the cultures around them that has ignored the value of a REPL. I guess part of it is just inertia at this point, but it's definitely one of the biggest things I miss when working in Java on Andr…

The problem is F# has arguably the best tool chain out of all of the languages you listed. Hell, I still have problems getting Scala to work with Netbeans 7.1 and I'm not sure of any IDE (for windows at least) for ML, Haskell or OCaml.

Re: Where is the casual programming?

#69
post #65
post #64

Where is the casual carpentry? Why can't I make my own tables and chairs? How do I know which tools to buy? Why so many different types of screw heads with no clear indication in the box as to which kind should I use? Tapered shank what? How do rivets even work?! And it's not like it's a new thing either we have had wood manufacture for millennia! IMHO some things will never get past the hobbist-accessible stage.

I agree. If the OP was talking about mechanics, he could be saying: "I want to build a hotrod from scratch, but oh look so many little parts!" . I think that what many people fail to realize is that although the intended purpose seems simple enough, the tools to do it are sitting atop so many levels of abstractions that without prior knowledge you just have no way to figure where to start assembling the parts. The on…

There are many facets to the problem, some of them are easily solved with the technology we have. We need to learn from the tools people already casually program with: VBA, Matlab, Excel, Turbo pascal in its days...etc.

They may have many defects as languages, but they got a lot of the 'casual' right; we could start from there.

Re: Where is the casual programming?

#70
post #62

Earlier quoted context omitted.

(author here) I'm not a Mac user, but took a look at Automator now. It seems a big step in that direction. Still, I'm not sure it makes the casual programming problem solved. Maybe I misrepresented the problem; let me give some more examples on casual programs that could be made easier... * Quickly testing small game ideas or demos (programming as self-expression). * Solving an ACM problem or one of those programming…

Give this a shot http://docs.racket-lang.org/quick/index.html See the bottom link too.

Certainly does a lot of what I wish in a casual programming tool! I just wish the IDE had the autocomplete, quickfix, refactoring features of Eclipse...
Post reply on HN