Live data from Hacker News

Where is the casual programming?

iamsamy.blogspot.com

71–80 of 83 posts

Re: Where is the casual programming?

#71

Earlier quoted context omitted.

The difference is that it was easier in the past for people to program casually; it hasn't gotten easier. Consider the microcomputers of the 80's: it was very difficult to own one without knowing at least a bit of some BASIC dialect. Consider microcomputers now: most people get away without ever knowing what it's like to write a program. People who actually want to learn how to program must go out of their way to do…

You used to have to type in 1s and 0s on a keyboard, or cut little square holes in a piece of cardboard with an Exacto knife. You had to learn what opcodes were represented by those 1s and 0s, in which contexts, and reverently hand your stack of cards full of holes to the Keeper of the Card Reader. You had to really, really want to program, with books open on the desk and your lap, and a grilled cheese sandwich holdi…

Just because it's not difficult doesn't mean it's casual. There's a higher barrier to entry now than there was in the 80s, and that makes programming much less accessible to the casual computer user. The average user perceives coding as a feat attainable by only wicked smart, socially inept nerds.

Re: Where is the casual programming?

#72
post #62

Earlier quoted context omitted.

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...

Racket is Scheme... which is probably as far away from Java as it gets.

You don't need these features in Scheme. By not needing, I mean that they get in the way more than they help. Give it a shot.

Re: Where is the casual programming?

#73
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.

You're right that autocomplete does exist, but in my experience it's very limited in dynamic languages.

For example, the following code does not give me any auto-completion suggestions in eclipse or in vim:

  str = "hello"
  test(str)
  
  def test(val):
    val.[TAB]

Re: Where is the casual programming?

#74

Earlier quoted context omitted.

You used to have to type in 1s and 0s on a keyboard, or cut little square holes in a piece of cardboard with an Exacto knife. You had to learn what opcodes were represented by those 1s and 0s, in which contexts, and reverently hand your stack of cards full of holes to the Keeper of the Card Reader. You had to really, really want to program, with books open on the desk and your lap, and a grilled cheese sandwich holdi…

Just because it's not difficult doesn't mean it's casual. There's a higher barrier to entry now than there was in the 80s, and that makes programming much less accessible to the casual computer user. The average user perceives coding as a feat attainable by only wicked smart, socially inept nerds.

Are you serious? The barrier to entry for learning programming has never been lower than it is now.

I remember what it was like beginning programming in the 80's and trust me, it was much harder then.

Back then BASIC was the only language I could get for free. In order to learn C I had to (1) buy an upgraded version of my computer (CoCo 3) that had more memory to run an OS, (2) buy the OS-9 operating system (3) buy a C compiler for said OS (4) buy the K&R book. In total, I think that cost around $400, which explains why I didn't learn C until after I graduated (EE, not CS) and had a job to pay for that stuff.

Last year, to learn Javascript I opened my browser, got a free download of Notepad++, searched a Javascript tutorial and began programming. If I wanted to learn C from scratch today, it would be as simple as downloading gcc. Not to mention that expert help if I get stuck is all over the net.

Getting started in technology, at any level I can think of, is much easier today than at any time in the past.

Re: Where is the casual programming?

#75
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.

I wasn't saying it's not possible to have autocomplete for dynamic languages. I've used VJET, a pretty good Eclipse plugin for JS development.

I was saying that "Even something as Spartan as the Javascript REPL in Chrome" can't do "real" autocomplete.

Re: Where is the casual programming?

#76
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…

... or to learn what the abstractions are, why they are used, and break through them to learn the basic steps.

What you describe is a very common problem on electronics forums. Consumer electronics are cheap, sophisticated and ubiquitous, so the newcomer to electronics DIY thinks that a cell phone as a first project should be easy and then gets angry when everyone tells him how hard it is to actually design & build one and that he should start by learning how to make an Arduino blink an LED instead.

When I consider all the problems that had to be solved to make a disposable $20 phone, it's absolutely mindblowing that we could ever have reached this point in technology.

Re: Where is the casual programming?

#77
post #68

Earlier quoted context omitted.

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.

You may be right, but on the other hand F#'s toolchain isn't that hot on OS X and Linux (being facetious, but I'm half-serious). Anyway I was really only talking about the presence of a "first-class" REPL.

Re: Where is the casual programming?

#78

Earlier quoted context omitted.

Just because it's not difficult doesn't mean it's casual. There's a higher barrier to entry now than there was in the 80s, and that makes programming much less accessible to the casual computer user. The average user perceives coding as a feat attainable by only wicked smart, socially inept nerds.

Are you serious? The barrier to entry for learning programming has never been lower than it is now. I remember what it was like beginning programming in the 80's and trust me, it was much harder then. Back then BASIC was the only language I could get for free. In order to learn C I had to (1) buy an upgraded version of my computer (CoCo 3) that had more memory to run an OS, (2) buy the OS-9 operating system (3) buy a…

Good points. I suppose I'm just being nostalgic about instant-on computers with a welcoming BASIC prompt. My Timex Sinclair 1000 even came with a couple of BASIC manuals!

My point was that you now have to go out of your way to learn to program. There are a lot of options, and casual programming involves a lot of libraries (which usually themselves depend on libraries). Those microcomputers were very inviting in that regard.

Re: Where is the casual programming?

#79
post #13

He sounds like's he's described VBA

VBA was a very nice step towards the goals I've described!

As a person who did a good bit of that professionally back in the day (I wrote interface layers between it and deeper C++ code), I'd have to say, it's probably not "the thing" you really need, but it does sound quite close to what you requested.

Re: Where is the casual programming?

#80
The question is, do people at large even want to do casual programming?

Stepping back, what does "casual programming" mean anyway? Automate certain repetitive tasks? Do some complicated calculation? Write a two-player tic-tac-toe? Make a Sudoku solver?

For the most part, "casual programming" for people who are not into the abstraction layer have been mostly done in Excel/VBA. Most people just don't realize that IS a valid form of "programming" (albeit a very limited subset of it). It's like people who play Angry Birds/Farmville (or Minesweeper in the '90s) obsessively don't consider themselves as gamers, even though they might have spent more time "gaming" than most Counter Strike "gamers".

On the other hand, if you want to dig more into programming, tools like Lego Mindstorm or Scratch teach the concepts rather beautifully. It makes moving onto an actual general purpose programming language much easier.

Post reply on HN